/* Conciergerie des 2 ports — styles propres au commerce. */
body{font-size:17px;line-height:1.6;background:var(--background)}
.top{padding:22px 24px;gap:24px;max-width:1232px;background:#ffffffed;backdrop-filter:blur(16px)}.top .brand{display:flex;align-items:center;gap:18px}.top .brand-logo{width:82px;height:82px;max-height:none;object-fit:contain;border-radius:50%;padding:3px;background:#fff;box-shadow:0 4px 20px #2427770b}.commerce-brand-name{color:#242777}.commerce-brand-name .name-intro{display:block;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase}.commerce-brand-name strong{display:block;font-family:Georgia,serif;font-size:32px;line-height:1.15;letter-spacing:-.7px;font-weight:normal;margin-top:3px}.commerce-brand-name .name-two{font:inherit;display:inline;color:#df002e}.commerce-brand-name small{display:block;font-size:11px;letter-spacing:1.2px;color:#5e6680;margin-top:9px}.top-actions{max-width:none;flex-shrink:0;display:flex}.language-switch{display:flex;align-items:center;gap:2px;padding:2px;background:#f1f3fa;border:1px solid #e0e3ef;border-radius:999px}.language-switch a{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:6px;font-size:14px}
.hero{width:calc(100% - 48px);max-width:1184px;margin:12px auto 36px;padding:32px;gap:32px;border-radius:28px;background:#f1f3fa}.hero-copy{padding:12px}.hero h1{font-weight:600;letter-spacing:-1.8px;font-size:clamp(38px,4.3vw,58px);line-height:1.08}.hero h1 em{font-style:normal}.hero p.intro{font-size:17px;line-height:1.6}.hero-photo{height:360px;border-radius:22px}.photo-label{border-radius:12px}.button,.call{border-radius:999px;min-height:48px;font-size:16px;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-2px);box-shadow:0 8px 25px #24277718}.hero-actions{gap:10px}.hero-actions .hero-action{gap:9px;padding:12px 18px;min-height:48px;font-size:16px}.hero-actions .phone{background:#df002e;color:#fff;border-color:#df002e}.hero-actions .whatsapp,.hero-actions .directions{background:#fff;color:#242777;border-color:#dce0ef}.hero-action svg{flex-shrink:0}
h2,.tyx-copy h2{font-size:36px;line-height:1.16;letter-spacing:-1px}.eyebrow{font-size:12px;line-height:1.5;letter-spacing:1.5px}.category-nav a{font-size:15px;min-height:44px;display:flex;align-items:center}.menu-wrap,.standard-block{max-width:1232px;padding:40px 24px}.food-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.food-grid>div{min-width:0;border:1px solid #e0e3ef;border-radius:22px;overflow:hidden;padding:0 22px 18px;background:white}.salad-photo{height:210px;margin:0 -22px 24px;border-radius:0}.menu-category{margin-bottom:0}.menu-category h3{font-size:24px;line-height:1.3}.menu-category li{font-size:17px;line-height:1.6}.menu-category h3:before{display:none}.gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.gallery-grid figure{margin:0;border-radius:20px;overflow:hidden}.gallery-grid img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;cursor:zoom-in}.gallery-grid button:focus-visible{outline-offset:-4px}.brand-grid{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0}.brand-grid li{padding:9px 16px;border-radius:12px;background:#f1f3fa;border:1px solid #e0e3ef;font-size:16px;font-weight:600}.standard-block>img{width:175px;max-width:100%;margin:24px 0}#boutique-uship,#laverie{width:calc(100% - 48px);max-width:1184px;border-radius:24px;padding:32px;margin:24px auto}#boutique-uship{background:#f1f3fa}#laverie{background:#242777;color:#fff}#laverie p{color:#e4e7fa;margin-bottom:0}
.tyx-wrap{max-width:1232px;padding:24px 24px 40px}.tyx-card{border-radius:24px}.tyx-copy{padding:36px}.tyx-question{color:#fff;opacity:.85}.tyx-description{font-size:17px;line-height:1.6}.tyx-description strong{color:#fff}.tyx-primary,.tyx-secondary{border-radius:999px;font-size:16px;min-height:48px}.tyx-primary{background:#df002e;color:#fff}.tyx-button-reward{background:#fff;color:#242777;font-size:15px;font-weight:700}.tyx-reward{background:#f1f3fa;color:#242777}.tyx-reward-number{color:#df002e}.tyx-steps span{font-size:15px}.tyx-actions button:disabled{opacity:1;cursor:not-allowed}.tyx-actions .tyx-primary:disabled{background:#f1f3fa;color:#242777;border:1px dashed #c2c7df}.tyx-actions .tyx-secondary:disabled{color:#e0e3ef;text-decoration:none}.availability-badge{display:inline-block;border:1px solid #ffffff70;border-radius:999px;padding:5px 12px;margin-bottom:18px;font-size:14px;font-weight:600}.tyx-pending{font-size:14px;line-height:1.6;opacity:1;color:#e4e7fa}
#informations{padding-bottom:0}#contacter-informations{padding-top:20px}#contacter-informations .button:first-child{background:#df002e;color:#fff;border-color:#df002e}#contacter-informations .button:last-child{background:#242777;color:#fff;border-color:#242777}.phone-label{display:block;color:#5e6680;font-size:13px;margin:12px 0 4px}footer{font-size:16px}.business-hours .hours-details{font-size:15px}.business-hours summary{min-height:44px;align-content:center}
dialog.photo-dialog{width:fit-content;min-width:280px;max-width:94vw;max-height:94dvh;border:0;border-radius:24px;background:#242777;padding:48px 16px 16px}dialog.photo-dialog::backdrop{background:#10133fe8}.photo-dialog img{max-height:75dvh;width:auto;max-width:100%;border-radius:12px}.photo-dialog button{position:absolute;right:4px;top:2px;min-width:44px;min-height:44px;font-size:28px;color:#fff;background:transparent;border:0}.photo-dialog p{color:#fff;margin:10px 0 0}
@media(max-width:1000px){.food-grid{gap:16px}.food-grid>div{padding:0 18px 18px}.salad-photo{margin-left:-18px;margin-right:-18px;height:180px}.menu-category h3{font-size:22px}.hero{gap:20px;padding:24px}.hero-copy{padding:0}}
@media(max-width:700px){.top{padding:18px 20px;gap:10px}.top .brand{gap:10px}.top .brand-logo{width:54px;height:54px}.commerce-brand-name .name-intro{font-size:11px;letter-spacing:.6px}.commerce-brand-name strong{font-size:24px}.commerce-brand-name small{font-size:10px;letter-spacing:.3px;margin-top:5px}.top-actions{display:flex}.language-switch{gap:0}.language-switch a{min-width:36px;min-height:44px;font-size:14px}.hero{width:calc(100% - 40px);margin-top:8px;padding:24px;gap:22px;border-radius:24px}.hero-copy{padding:0}.hero h1{font-size:34px;letter-spacing:-1px}.hero h1 br{display:none}.hero h1 br:after{content:' '}.hero h1 em{display:block}.hero p.intro{font-size:17px}.hero-photo{height:220px;border-radius:18px}.hero-actions .hero-action{font-size:15px;padding:12px 15px}.hero-actions{gap:8px}.hero-actions .phone{flex-basis:100%}.hero-actions .whatsapp,.hero-actions .directions{flex:1}.menu-wrap,.standard-block{padding:32px 20px}.section-heading{margin-bottom:24px}h2,.tyx-copy h2{font-size:28px;letter-spacing:-.6px}.food-grid{grid-template-columns:1fr;gap:20px}.food-grid>div{padding:0 22px 22px}.salad-photo{margin-left:-22px;margin-right:-22px;height:200px}.menu-category{margin-bottom:0}.menu-category h3{font-size:23px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gallery-grid figure{border-radius:16px}#boutique-uship,#laverie{width:calc(100% - 40px);padding:28px 24px;margin:20px auto}.brand-grid li{font-size:15px;padding:8px 13px}.tyx-wrap{padding:20px 20px 32px}.tyx-copy{padding:28px 24px}.tyx-reward{padding:24px}.tyx-reward-number{font-size:68px}.tyx-steps span{font-size:14px}.tyx-primary{font-size:16px}.tyx-button-reward{font-size:14px}.tyx-description{font-size:17px}.tyx-pending{font-size:14px}#contacter-informations .service-actions{flex-direction:column;align-items:stretch}}
@media(max-width:360px){.top{padding-left:16px;padding-right:16px}.top .brand-logo{width:42px;height:42px}.commerce-brand-name strong{font-size:21px}.commerce-brand-name .name-intro{font-size:10px}.commerce-brand-name small{font-size:10px;letter-spacing:0}.language-switch a{min-width:30px}.hero{padding:20px}.hero h1{font-size:31px}}
@media(prefers-reduced-motion:reduce){.button{transition:none}.button:hover{transform:none}}

/* TYX : structure et hiérarchie de la référence fournie. */
.tyx-reference{display:grid;grid-template-columns:1fr;max-width:760px;margin:0 auto;border-radius:16px;overflow:hidden}.tyx-reference .tyx-copy{padding:30px 28px 24px}.tyx-reference .tyx-question{color:#fff;opacity:1;font-size:16px;font-weight:700;margin:0 0 12px}.tyx-reference h2{font-family:Georgia,serif;font-size:36px;line-height:1.08;font-weight:normal;max-width:420px;letter-spacing:-.6px}.tyx-reference .tyx-description{font-size:17px;line-height:1.65;margin:22px 0 24px;max-width:none}.tyx-reference .tyx-actions{align-items:center;gap:0}.tyx-reference .tyx-secondary{min-height:44px;padding:8px 0;border-radius:0;border-bottom:1px dashed #ffffff80;text-decoration:none;font-size:15px;font-weight:600;color:#fff}.tyx-reference .tyx-pending{text-align:center;color:#e4e7fa;font-size:14px;margin:14px 0 4px}.tyx-reference .tyx-reward{display:grid;grid-template-columns:auto 1fr;column-gap:24px;padding:24px 28px;align-items:center;justify-content:initial}.tyx-reference .tyx-reward-number{grid-column:1;grid-row:1;font-size:76px;line-height:1;letter-spacing:-3px;font-family:Arial,Helvetica,sans-serif;font-weight:400}.tyx-reference .tyx-reward-label{grid-column:1;grid-row:2;font-size:12px;text-align:center;letter-spacing:1px}.tyx-reference .tyx-steps{grid-column:2;grid-row:1/3;margin:0;gap:12px;max-width:none}.tyx-reference .tyx-steps span{font-size:15px;line-height:1.45}.tyx-reference .tyx-steps b{width:25px;height:25px;border-color:#242777;font-size:12px}@media(max-width:700px){.tyx-reference .tyx-copy{padding:28px 24px 24px}.tyx-reference h2{font-size:32px}.tyx-reference .tyx-reward{padding:24px;column-gap:20px}.tyx-reference .tyx-reward-number{font-size:68px}.tyx-reference .tyx-steps span{font-size:14px}}

/* Formulaire de demande avant WhatsApp. */
dialog.enquiry-dialog{width:calc(100% - 32px);max-width:560px;max-height:calc(100dvh - 32px);overflow:auto;padding:38px;border-radius:26px;border:1px solid #e0e3ef;border-top:5px solid #df002e;background:#fff;color:#242777;box-shadow:0 24px 100px #10133f40}dialog.enquiry-dialog::backdrop{background:#10133f99;backdrop-filter:blur(5px)}.enquiry-dialog h2{font-size:30px;line-height:1.15;max-width:410px}.enquiry-dialog p.enquiry-intro{color:#5e6680;font-size:16px;line-height:1.6;margin:16px 0 24px}.enquiry-dialog .eyebrow{font-size:10px;padding-right:26px;color:#242777}.enquiry-close{position:absolute;right:10px;top:10px;min-width:44px;min-height:44px;border:0;border-radius:50%;background:#f1f3fa;color:#242777;font-size:28px;line-height:1}.enquiry-form{display:flex;flex-direction:column}.enquiry-form label{font-size:15px;font-weight:600;margin:0 0 8px}.enquiry-form label span{color:#df002e}.enquiry-form input,.enquiry-form textarea{width:100%;padding:13px 15px;border:1px solid #cdd2e5;border-radius:13px;background:#f8f9fd;color:#242777;font:inherit;font-size:16px;margin:0 0 20px;min-height:48px}.enquiry-form textarea{resize:vertical;min-height:120px}.enquiry-form input:focus,.enquiry-form textarea:focus{outline:3px solid #24277720;border-color:#242777;background:#fff}.enquiry-form textarea::placeholder{color:#6b728b}.enquiry-submit{display:flex;align-items:center;justify-content:center;gap:12px;min-height:52px;border:0;border-radius:999px;background:#df002e;color:#fff;font-size:16px;font-weight:700;padding:14px 18px}.enquiry-submit:hover{background:#b60026}.enquiry-dialog p.enquiry-note{color:#5e6680;font-size:13px;line-height:1.55;margin:14px 0 0}.enquiry-dialog p.enquiry-error{color:#b60026;font-size:14px;margin:0 0 14px}@media(max-width:700px){dialog.enquiry-dialog{padding:30px 24px 24px;border-radius:22px}.enquiry-dialog h2{font-size:27px}.enquiry-dialog .eyebrow{font-size:10px}.enquiry-dialog p.enquiry-intro{font-size:16px}}

.hero-actions .contact-icon,#contacter-informations .contact-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 56px;flex-basis:56px;width:56px;height:56px;min-height:56px;padding:0;border-radius:50%}#contacter-informations .service-actions{flex-direction:row;align-items:center;gap:12px}.hero-actions .phone.contact-icon{flex-basis:56px}.hero-actions .whatsapp.contact-icon{flex:0 0 56px}@media(max-width:700px){.hero-actions .directions{flex:0 1 auto}}

/* Boutons ronds selon la référence : téléphone rouge, WhatsApp bleu. */
.hero-actions .contact-icon.contact-phone,#contacter-informations .contact-icon.contact-phone{background:#df002e;color:#fff;border:0}.hero-actions .contact-icon.contact-whatsapp,#contacter-informations .contact-icon.contact-whatsapp{background:#242777;color:#fff;border:0}.hero-actions .contact-icon,#contacter-informations .contact-icon{width:56px;height:56px;flex:0 0 56px;border-radius:50%;box-shadow:none}.hero-actions{align-items:center;gap:12px}.contact-icon svg{width:25px;height:25px}.commerce-brand-name small{letter-spacing:.3px}@media(max-width:360px){.commerce-brand-name small{font-size:9px}}
.brands-all{margin-top:22px;max-width:760px}.brands-all summary{cursor:pointer;display:inline-flex;align-items:center;gap:10px;list-style:none;color:#5e6680;font-size:14px;min-height:44px;line-height:44px;border-bottom:1px dashed #b9bfd6}.brands-all summary:focus-visible{outline:3px solid #242777;outline-offset:3px}.brands-all p{color:#5e6680;font-size:13px;line-height:1.7;margin:6px 0 0}.brands-all .brands-all-list{letter-spacing:.2px}
.brands-all summary::-webkit-details-marker{display:none}.brands-all summary::after{content:'';width:7px;height:7px;border-right:2px solid #5e6680;border-bottom:2px solid #5e6680;transform:rotate(45deg) translateY(-2px);transition:transform .2s}.brands-all[open] summary::after{transform:rotate(-135deg) translateY(-2px)}@media(prefers-reduced-motion:reduce){.brands-all summary::after{transition:none}}
.service-list{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.service-list li{padding:18px 20px;border-radius:14px;background:#f1f3fa;border:1px solid #e0e3ef;color:#242777;font-weight:700;font-size:17px;line-height:1.35}
#sur-mesure>img{width:100%;max-width:560px;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:16px;margin:8px 0 22px;display:block}#sur-mesure>p{max-width:640px}
#contacter-informations .contact-icon.contact-email,.hero-actions .contact-icon.contact-email{background:#fff;color:#242777;border:2px solid #242777}.enquiry-dialog [hidden]{display:none!important}.footer-email{display:block;overflow-wrap:anywhere}
.hero-photo .photo-label{display:none}
/* Audit : zones tactiles, textes lisibles, indice de défilement du menu */
footer a[href^="tel:"],footer a[href^="mailto:"],.footer-email{display:inline-block;padding:12px 0;min-height:44px;line-height:1.3}
@media(max-width:700px){.commerce-brand-name .name-intro{font-size:13px}.commerce-brand-name strong{font-size:25px}.commerce-brand-name small{font-size:12px;letter-spacing:.2px}.eyebrow{font-size:13px}.category-nav>div:first-child{-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent);padding-right:36px}}
@media(max-width:360px){.commerce-brand-name .name-intro{font-size:12px}.commerce-brand-name strong{font-size:22px}.commerce-brand-name small{font-size:11px;letter-spacing:0}}
.eyebrow{font-size:13px}.commerce-brand-name .name-intro,.commerce-brand-name small{font-size:12px}.footer-signature,.footer a[href*="tyx"],footer [class*="signature"],footer [class*="powered"]{font-size:13px}
@media(max-width:360px){.eyebrow{font-size:12px}}
.brand .town,.footer-brand span,.commerce-brand-name small{font-size:12px!important}
.hero-hours{margin:0 0 20px}.hero-hours:empty{display:none}.hero-hours strong{display:flex;align-items:center;gap:9px;font-size:18px;color:#df002e}.hero-hours .hours-dot{width:9px;height:9px;border-radius:50%;background:#df002e;flex-shrink:0}.hero-hours[data-state="closed"] strong{color:#5e6680}.hero-hours[data-state="closed"] .hours-dot{background:#8a90a6}.hero-hours .hours-next{display:block;margin-top:3px;font-size:15px;color:#5e6680}.hero-hours .hours-time{color:#242777}
.tyx-actions .tyx-secondary.tyx-soon:disabled{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;border:1px solid #ffffff80;border-radius:999px;background:#ffffff1f;color:#fff;font-size:16px;font-weight:600;text-decoration:none;opacity:1;cursor:default}
.tyx-copy h2{font-family:Arial,Helvetica,sans-serif;font-weight:400}
/* Finition : rythme, hiérarchie, moins de répétition de gabarit */
.section-heading .eyebrow{display:none!important}
h2,.tyx-copy h2{font-weight:600;letter-spacing:-.8px}
.standard-block,.menu-wrap{padding-top:56px;padding-bottom:56px}
.service-list{gap:0 28px;margin-top:20px}
.service-list li{background:none;border:0;border-bottom:1px solid #d6daec;border-radius:0;padding:16px 2px;font-size:17px}
#boutique-uship>img{margin:8px 0 20px;max-height:64px;width:auto}
#sur-mesure>p{margin-top:16px}
.tyx-card{max-width:none;width:100%}
.tyx-wrap{padding-top:16px;padding-bottom:56px}
#informations{padding-bottom:0}
#contacter-informations{padding-top:8px;padding-bottom:16px}
.standard-block.business-hours{padding-top:16px;padding-bottom:8px}
.hero{margin-bottom:24px}
.hero-hours{margin:20px 0 18px}
#laverie,#boutique-uship{margin:16px auto}
#contact{padding-top:40px;border-top:1px solid #e0e3ef;margin-top:40px}
@media(min-width:900px){
 #sur-mesure{display:grid;grid-template-columns:1fr 1fr;column-gap:56px;align-items:center}
 #sur-mesure>.section-heading{grid-column:1;align-self:end;margin-bottom:0}
 #sur-mesure>p{grid-column:1;align-self:start}
 #sur-mesure>img{grid-column:2;grid-row:1/span 2;max-width:none;width:100%}
 #services{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:56px;align-items:start}
 #services>.section-heading,#services>p{grid-column:1}
 #services>.service-list{grid-column:2;grid-row:1/span 3;margin-top:0;grid-template-columns:1fr 1fr}
}
@media(max-width:700px){.standard-block,.menu-wrap{padding-top:40px;padding-bottom:40px}#contact{margin-top:24px;padding-top:32px}}

@media(min-width:900px){
 .tyx-card{grid-template-columns:1.5fr 1fr}
 .tyx-copy{padding:44px 48px}
 .tyx-actions{justify-content:flex-start}
 .tyx-reward{padding:36px 40px}
}
#services{align-content:start}
.standard-block .section-heading{margin-bottom:14px}
@media(min-width:900px){#sur-mesure>.section-heading{align-self:end;margin-bottom:12px}}
/* Cohérence des tailles de texte */
.tyx-copy h2{font-size:36px;line-height:1.16}
.hero .eyebrow{font-size:13px}
.tyx-steps span{font-size:15px}
.brands-all summary{font-size:15px}
@media(max-width:700px){.tyx-copy h2{font-size:28px;letter-spacing:-.6px}.hero .eyebrow{font-size:12px}.tyx-steps span{font-size:15px}}
@media(max-width:360px){.hero .eyebrow{font-size:12px}}
@media(max-width:700px){.tyx-steps span,.tyx-steps li{font-size:15px!important}}
/* Bas de page : 3 colonnes alignées */
footer#contact{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px;max-width:1232px;padding:48px 24px 32px;align-items:start}
footer#contact>div{padding:0;margin:0}
.f-brand{display:flex;align-items:center;gap:14px}.f-brand img{width:56px;height:56px;border-radius:50%;flex:none}
.f-brand b{display:block;font-size:19px;color:#df002e;font-weight:600;line-height:1.2}.f-brand small{display:block;font-size:13px;color:#5e6680;margin-top:4px;line-height:1.35}
.f-col h3{font-size:13px;letter-spacing:1.2px;text-transform:uppercase;color:#5e6680;margin:0 0 12px;font-weight:600}.f-col h3:before,.f-col h3:after{display:none!important;content:none!important}
.f-col p,.f-col a{font-size:16px;line-height:1.5;color:#242777;margin:0}
.f-col a{display:block;padding:7px 0;text-decoration:none;min-height:0}.f-col a.go{color:#df002e;font-weight:600}
@media(max-width:900px){footer#contact{grid-template-columns:1fr 1fr;gap:32px 24px}.f-brand{grid-column:1/-1}}
@media(max-width:560px){footer#contact{grid-template-columns:1fr;padding:36px 20px 24px}}
.f-col a,.f-col a:hover,.f-col a[role=button]{text-decoration:none!important}.f-col a:not(.go):hover{text-decoration:underline!important}
.f-col a{padding:10px 0;min-height:44px;display:flex;align-items:center}
.f-legal{display:block;width:fit-content;margin:0 auto 4px;padding:12px 8px;font-size:14px;color:#5e6680;text-decoration:underline;text-underline-offset:3px;min-height:44px}.f-legal:hover{color:#242777}
/* Bloc points : chiffre et libellé alignés avec les étapes */
.tyx-reference .tyx-reward{grid-template-rows:auto auto;align-content:center;justify-content:center;row-gap:2px;column-gap:32px}
.tyx-reference .tyx-reward-number{align-self:end;justify-self:center;line-height:.9;margin:0}
.tyx-reference .tyx-reward-label{align-self:start;justify-self:center;margin:0}
.tyx-reference .tyx-steps{align-self:center}
@media(max-width:700px){.tyx-reference .tyx-reward{column-gap:24px;justify-content:start}}
.tyx-actions{align-items:flex-start!important}
