.ool-header {
  --ool-ink: #392d32;
  --ool-rose: #d881a8;
  --ool-line: #eadde1;
  color: var(--ool-ink);
  background: #fffcfa;
  font-family: Arial, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  border-bottom: 1px solid var(--ool-line);
}
.ool-header *, .ool-header *::before, .ool-header *::after { box-sizing: border-box; }
.ool-header a { color: inherit; text-decoration: none; }
.ool-header a:focus-visible, .ool-header summary:focus-visible { outline: 3px solid var(--ool-ink); outline-offset: 5px; }
.ool-header .ool-top { background: #f9e6ef; }
.ool-header .ool-top-inner { max-width: 1320px; margin: auto; padding: 9px 32px; display: flex; justify-content: space-between; gap: 12px; font-size: 12px; letter-spacing: .025em; }
.ool-header .ool-contact { display: flex; flex-wrap: wrap; gap: 24px; }
.ool-header .ool-phone { font-weight: 700; }
.ool-header .ool-main { max-width: 1320px; margin: auto; padding: 24px 32px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.ool-header .ool-brand { display: flex; align-items: center; gap: 15px; flex-shrink: 0; }
.ool-header .ool-logo { width: 70px; height: 70px; object-fit: contain; display: block; }
.ool-header .ool-name { display: block; font-family: Georgia, serif; font-size: 24px; line-height: 1.15; letter-spacing: -.6px; }
.ool-header .ool-tagline { display: block; margin-top: 7px; font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ool-ink); background: #f9e6ef; border-left: 3px solid var(--ool-rose); padding: 5px 7px; }
.ool-header .ool-nav { display: flex; align-items: center; gap: 26px; }
.ool-header .ool-nav a { padding: 10px 0; }
.ool-header .ool-nav a:hover, .ool-header .ool-account a:hover, .ool-header .ool-mobile-links a:hover { color: var(--ool-ink); text-decoration: underline; text-underline-offset: 5px; }
.ool-header .ool-nav a[aria-current="page"] { color: var(--ool-ink); box-shadow: 0 2px var(--ool-rose); }
.ool-header .ool-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.ool-header .ool-account { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 14px; font-size: 12px; }
.ool-header a.ool-book { display: inline-flex; align-items: center; justify-content: center; gap: 22px; min-height: 46px; padding: 12px 19px; background: var(--ool-rose); color: #fff; border: 1px solid var(--ool-rose); border-radius: 4px; font-size: 13px; font-weight: 700; text-align: center; }
.ool-header a.ool-book:hover { background: var(--ool-rose); box-shadow: inset 0 0 0 2px var(--ool-ink); }
.ool-header .ool-mobile { display: none; }
@media (max-width: 1120px) {
  .ool-header .ool-main { gap: 20px; padding: 20px 24px; }
  .ool-header .ool-nav { gap: 17px; font-size: 13px; }
  .ool-header .ool-name { font-size: 21px; }
  .ool-header .ool-logo { width: 58px; height: 58px; }
}
@media (max-width: 920px) {
  .ool-header .ool-top-inner { justify-content: center; padding: 9px 16px; }
  .ool-header .ool-hours { display: none; }
  .ool-header .ool-top-location { display: none; }
  .ool-header .ool-main { padding: 18px 20px; flex-wrap: wrap; gap: 16px; }
  .ool-header .ool-nav, .ool-header .ool-actions { display: none; }
  .ool-header .ool-brand { flex-shrink: 1; min-width: 0; }
  .ool-header .ool-name { font-size: 22px; }
  .ool-header .ool-mobile { display: block; width: 100%; }
  .ool-header .ool-mobile-row { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: start; }
  .ool-header .ool-menu { min-width: 92px; }
  .ool-header .ool-menu summary { min-height: 46px; padding: 12px 14px; border: 1px solid var(--ool-line); border-radius: 4px; cursor: pointer; list-style: none; text-align: center; }
  .ool-header .ool-menu summary::-webkit-details-marker { display: none; }
  .ool-header .ool-menu summary::after { content: " +"; padding-left: 8px; }
  .ool-header .ool-menu[open] { grid-column: 1 / -1; display: flex; flex-direction: column; }
  .ool-header .ool-menu[open] summary::after { content: " −"; }
  .ool-header .ool-mobile-links { display: grid; margin-top: 10px; padding: 8px 16px; background: #f9e6ef; border-radius: 4px; }
  .ool-header .ool-mobile-links a { display: block; padding: 12px 0; border-bottom: 1px solid var(--ool-line); }
  .ool-header .ool-mobile-links a:last-child { border-bottom: 0; }
}
@media (prefers-reduced-motion: no-preference) {
  .ool-header a { transition: color .15s ease, background-color .15s ease; }
}
/* Navigation publique : capsule rose et repere de page active */
.ool-header .ool-nav{gap:4px;padding:6px;background:#f9e6ef;border:1px solid #f1d1df;border-radius:100px;box-shadow:0 4px 14px #d881a80d}
.ool-header .ool-nav a{padding:11px 16px;border-radius:100px;white-space:nowrap;font-size:13px;font-weight:600;color:#814762}
.ool-header .ool-nav a:hover{background:#f2d2e1;color:#62364b;text-decoration:none}
.ool-header .ool-nav a[aria-current="page"]{background:#d881a8;color:#fff;box-shadow:0 3px 9px #bc648735}
.ool-header .ool-nav a[aria-current="page"]:hover{background:#d881a8;color:#fff}
.ool-header .ool-mobile-links{border:1px solid #f1d1df;border-radius:12px}
.ool-header .ool-mobile-links a{padding:12px 10px}
.ool-header .ool-mobile-links a[aria-current="page"]{background:#d881a8;color:#fff;border-radius:8px;border-bottom-color:transparent}
.ool-header .ool-menu summary{background:#f9e6ef;border-color:#f1d1df;color:#814762;border-radius:8px}
@media(min-width:921px) and (max-width:1120px){.ool-header .ool-nav{gap:2px;padding:5px}.ool-header .ool-nav a{padding:10px 11px;font-size:12px}.ool-header .ool-main{gap:16px}}
/* Navigation plus ample et acces au compte */
.ool-header .ool-nav a{padding:12px 21px}
.ool-header .ool-account a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:34px;padding:6px 13px;border:1px solid #edc6d8;border-radius:100px;background:#fff8fb;color:#814762;font-size:12px;font-weight:600}
.ool-header .ool-account a:hover{background:#f9e6ef;border-color:#d881a8;text-decoration:none}
.ool-header .ool-account a.ool-profile::before{content:"";width:15px;height:17px;display:inline-block;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='7' r='4' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M4 21v-2a8 8 0 0 1 16 0v2' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat}
.ool-header .ool-actions{gap:8px}
@media(min-width:921px) and (max-width:1120px){.ool-header .ool-nav a{padding:11px 13px}}
/* Compte dans le bandeau ; bouton de rendez-vous centre sur la navigation. */
.ool-header .ool-top-inner{align-items:center}
.ool-header .ool-contact{align-items:center;margin-left:auto;gap:20px}
.ool-header .ool-top .ool-account{align-items:center;gap:8px;margin-left:12px}
.ool-header .ool-actions{align-self:center;justify-content:center}
.ool-header .ool-top .ool-account a{background:transparent;border-color:#d881a8;min-height:32px;padding:5px 12px}
.ool-header .ool-top .ool-account a:hover{background:#fff8fb}
@media(max-width:1120px){.ool-header .ool-hours{display:none}}
@media(max-width:920px){.ool-header .ool-top-inner{justify-content:space-between;flex-wrap:wrap;gap:8px}.ool-header .ool-contact{margin-left:0}.ool-header .ool-top .ool-account{margin-left:auto;gap:6px}.ool-header .ool-top .ool-account a{font-size:11px;padding:5px 9px}}
/* Bandeau mobile : horaires visibles et centres sur leur propre ligne. */
@media(max-width:920px){
 .ool-header .ool-top-inner{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;padding:10px 16px}
 .ool-header .ool-contact{display:contents}
 .ool-header .ool-phone{grid-column:1;grid-row:1;justify-self:start}
 .ool-header .ool-top .ool-account{grid-column:2;grid-row:1;margin-left:0;justify-self:end}
 .ool-header .ool-hours{display:block;grid-column:1/-1;grid-row:2;text-align:center;justify-self:center;font-size:11px}
}
/* Bouton rendez-vous : sans fleche sur mobile uniquement. */
@media(max-width:920px){.ool-header .ool-mobile .ool-book>span[aria-hidden="true"]{display:none}}
.ool-header .ool-brand-hours{display:none}
@media(max-width:920px){
 .ool-header .ool-phone{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
 .ool-header .ool-top .ool-hours{display:none}
 .ool-header .ool-brand-hours{display:block;margin-top:7px;font-size:11px;line-height:1.5;color:#755f69;font-weight:400;letter-spacing:0}
}
@media(max-width:920px){
 .ool-header .ool-mobile-row{grid-template-columns:minmax(0,1fr);gap:10px}
 .ool-header .ool-mobile-row>.ool-book{width:100%}
 .ool-header .ool-menu{width:100%;min-width:0}
 .ool-header .ool-menu summary{width:100%}
}
@media(max-width:920px){
 .ool-header .ool-menu{width:auto;min-width:110px;justify-self:center}
 .ool-header .ool-menu summary{width:auto;font-weight:700}
 .ool-header .ool-menu[open]{width:100%;justify-self:stretch}
 .ool-header .ool-menu[open] summary{align-self:center;min-width:110px}
}

/* Menu mobile aligne avec le logo, navigation deployee dans le header. */
@media(max-width:920px){
 .ool-header .ool-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 10px}
 .ool-header .ool-brand{grid-column:1;grid-row:1;gap:9px}
 .ool-header .ool-mobile,.ool-header .ool-mobile-row,.ool-header .ool-menu,.ool-header .ool-menu[open]{display:contents}
 .ool-header .ool-menu summary,.ool-header .ool-menu[open] summary{grid-column:2;grid-row:1;align-self:center;min-width:76px;padding:12px 10px;font-weight:700}
 .ool-header .ool-mobile-row>.ool-book{grid-column:1/-1;grid-row:2;width:100%}
 .ool-header .ool-menu[open] .ool-mobile-links{grid-column:1/-1;grid-row:3;margin:0;padding:8px;border-radius:16px;background:#fff5fa;box-shadow:0 10px 24px #d881a81a}
 .ool-header .ool-mobile-links a{padding:14px 16px;border-radius:8px;font-weight:600}
 .ool-header .ool-menu[open] summary{background:#d881a8;color:white;border-color:#d881a8}
}
@media(max-width:380px){
 .ool-header .ool-main{padding-left:16px;padding-right:16px;column-gap:8px}
 .ool-header .ool-logo{width:44px;height:44px}
 .ool-header .ool-name{font-size:19px}
 .ool-header .ool-tagline{font-size:8px;padding-left:5px;padding-right:5px}
 .ool-header .ool-brand-hours{font-size:9px}
 .ool-header .ool-menu summary,.ool-header .ool-menu[open] summary{min-width:64px;padding:10px 7px}
}
@media(prefers-reduced-motion:no-preference){
 .ool-header .ool-menu[open] .ool-mobile-links{animation:ool-menu-reveal .22s ease-out}
 @keyframes ool-menu-reveal{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
}
@media(max-width:920px){.ool-header .ool-menu[open] .ool-mobile-links{width:calc(100vw - 54px);box-sizing:border-box}}

/* Menu mobile entre le logo et le bouton de reservation. */
@media(max-width:920px){
 .ool-header .ool-main{grid-template-columns:minmax(0,1fr)}
 .ool-header .ool-brand{grid-column:1;grid-row:1}
 .ool-header .ool-menu summary,.ool-header .ool-menu[open] summary{grid-column:1;grid-row:2;justify-self:center;align-self:center;min-width:110px}
 .ool-header .ool-menu[open] .ool-mobile-links{grid-column:1;grid-row:3;width:100%;min-width:0}
 .ool-header .ool-mobile-row>.ool-book{grid-column:1;grid-row:3}
 .ool-header .ool-main:has(.ool-menu[open]) .ool-mobile-row>.ool-book{grid-row:4}
}

/* Presentation mobile : identite centree, menu compact et rendez-vous pleine largeur. */
@media(max-width:920px){
 .ool-header .ool-top-inner{padding:7px 20px;gap:0 10px}
 .ool-header .ool-top .ool-account a{min-height:30px;padding:4px 10px;background:#fff8fb;font-size:11px}
 .ool-header .ool-phone{font-size:12px;letter-spacing:.025em}
 .ool-header .ool-main{padding:18px 20px 16px;gap:11px;max-width:560px}
 .ool-header .ool-brand{justify-self:center;gap:13px;margin:0 0 2px;max-width:100%}
 .ool-header .ool-logo{width:66px;height:66px;flex-shrink:0}
 .ool-header .ool-name{font-size:24px;line-height:1.1;letter-spacing:-.6px}
 .ool-header .ool-tagline{margin-top:8px;padding:4px 7px;font-size:9px;letter-spacing:.035em;white-space:nowrap}
 .ool-header .ool-brand-hours{margin-top:5px;font-size:10px;line-height:1.5}
 .ool-header .ool-menu summary,.ool-header .ool-menu[open] summary{min-width:110px;min-height:40px;padding:9px 18px;border-radius:100px;font-size:12px;line-height:20px;background:#fff8fb;border-color:#edc6d8;color:#814762}
 .ool-header .ool-menu[open] summary{background:#f9e6ef;color:#62364b}
 .ool-header .ool-mobile-row>.ool-book{min-height:46px;border-radius:9px;padding:12px 18px;font-size:13px;box-shadow:0 4px 12px #d881a81a}
 .ool-header .ool-menu[open] .ool-mobile-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:8px;border-radius:14px;background:#fff5fa;box-shadow:none}
 .ool-header .ool-mobile-links a{display:flex;align-items:center;justify-content:center;min-height:46px;padding:10px 8px;border:0;background:#fffafc;border-radius:9px;text-align:center;font-size:12px;line-height:1.4}
 .ool-header .ool-mobile-links a:last-child:nth-child(odd){grid-column:1/-1}
}
@media(max-width:350px){
 .ool-header .ool-main{padding-left:16px;padding-right:16px}
 .ool-header .ool-brand{gap:10px}
 .ool-header .ool-logo{width:56px;height:56px}
 .ool-header .ool-name{font-size:22px}
 .ool-header .ool-tagline{font-size:8px}
}

/* Logo haute resolution fourni par Lisa. */
.ool-header .ool-logo{width:92px;height:92px;flex-shrink:0}
@media(min-width:921px) and (max-width:1120px){.ool-header .ool-logo{width:76px;height:76px}}
@media(max-width:920px){.ool-header .ool-logo{width:86px;height:86px}.ool-header .ool-brand{gap:12px}}
@media(max-width:350px){.ool-header .ool-logo{width:72px;height:72px}.ool-header .ool-brand{gap:8px}}

/* Logo plus present dans le header. */
.ool-header .ool-logo{width:124px;height:124px}
@media(min-width:921px) and (max-width:1120px){.ool-header .ool-logo{width:100px;height:100px}.ool-header .ool-brand{gap:10px}}
@media(max-width:920px){.ool-header .ool-logo{width:116px;height:116px}.ool-header .ool-brand{gap:10px}.ool-header .ool-name{font-size:23px}}
@media(max-width:350px){.ool-header .ool-logo{width:98px;height:98px}.ool-header .ool-brand{gap:7px}.ool-header .ool-name{font-size:20px}}
