/* =========================================================
   Pharmacie Gloria — interface moderne, centrée, adaptative
   ========================================================= */
:root{
  --font:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --green:#0b6b43; --green-d:#064a2e; --green-dd:#04331f; --green-l:#e8f5ed; --mint:#7ad39a; --lime:#b6e24a; --blue:#2a8fc7;
  --ink:#10231a; --muted:#5a6b62; --line:#e1ebe5; --bg:#f4f8f5; --card:#fff;
  --warn:#b45309; --red:#c0392b;
  --r:20px; --r-sm:14px;
  --shadow:0 1px 2px rgba(6,74,46,.06),0 8px 28px rgba(6,74,46,.08);
  --shadow-lg:0 2px 4px rgba(6,74,46,.06),0 18px 50px rgba(6,74,46,.16);
  --gutter:clamp(16px,4.5vw,48px); --maxw:1240px;
  --header-h:68px; --tab-h:66px;
  --safe-b:env(safe-area-inset-bottom,0px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 12px)}
body{margin:0;font:16px/1.6 var(--font);color:var(--ink);background:var(--bg);overflow-x:clip;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{max-width:100%}
img{display:block;height:auto}
a{color:var(--green);text-decoration-thickness:1px;text-underline-offset:3px}
h1,h2,h3,h4{font-weight:800;line-height:1.15;letter-spacing:-.02em;color:var(--green-d);margin:0 0 .5em;text-wrap:balance}
h1{font-size:clamp(1.9rem,5.2vw,3.2rem)} h2{font-size:clamp(1.45rem,3.4vw,2.3rem)} h3{font-size:1.1rem;letter-spacing:-.01em}
p{margin:0 0 1em;text-wrap:pretty}
small{color:var(--muted)}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:10px 14px;z-index:200;border-radius:10px}
.skip:focus{left:10px;top:10px}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:8px}
[hidden]{display:none!important}
.ic{width:1.25em;height:1.25em;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ---------- en-tête ---------- */
.top{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.8);backdrop-filter:saturate(1.5) blur(16px);-webkit-backdrop-filter:saturate(1.5) blur(16px);border-bottom:1px solid rgba(6,74,46,.08)}
.bar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;min-height:var(--header-h)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--green-d)}
.brand img{border-radius:12px}
.brand-t{display:flex;flex-direction:column;line-height:1.1}
.brand-t b{font-size:1.05rem;letter-spacing:-.01em;font-weight:800}
.brand-t small{font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600}
#nav{justify-self:center;display:flex;gap:2px;background:var(--green-l);padding:4px;border-radius:999px}
#nav a{padding:9px 15px;border-radius:999px;text-decoration:none;color:var(--ink);font-weight:600;font-size:.9rem;white-space:nowrap;transition:background .15s,color .15s}
#nav a:hover{background:rgba(255,255,255,.7)}
#nav a.on{background:#fff;color:var(--green-d);box-shadow:0 1px 3px rgba(6,74,46,.18)}
.actions{display:flex;align-items:center;gap:8px;justify-self:end}
.iconbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;min-width:44px;padding:0 12px;border-radius:14px;border:1px solid var(--line);background:#fff;color:var(--green-d);font:inherit;font-weight:700;font-size:.9rem;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.iconbtn:hover{border-color:var(--mint);box-shadow:0 2px 10px rgba(11,107,67,.12)}
.iconbtn .ic{width:22px;height:22px}
.badge{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--green);color:#fff;font-size:.72rem;font-weight:800;display:grid;place-items:center;border:2px solid #fff;font-variant-numeric:tabular-nums}
.badge[data-n="0"]{display:none}
.pill{font-size:.75rem;font-weight:700;padding:6px 12px;border-radius:999px;background:var(--green-l);color:var(--green-d);white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.pill::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.pill.open{background:#d9f5e3;color:#0a6b35} .pill.closed{background:#fdeaea;color:#a02a1f} .pill.garde{background:var(--green);color:#fff}

/* ---------- boutons ---------- */
button{font:inherit;cursor:pointer}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 24px;border:0;border-radius:14px;font-weight:700;font-size:.98rem;text-decoration:none;color:#fff;background:linear-gradient(135deg,var(--green),var(--green-d));box-shadow:0 8px 20px rgba(11,107,67,.28);transition:transform .15s,box-shadow .15s,filter .15s;text-align:center;line-height:1.2}
.btn:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(11,107,67,.34);filter:brightness(1.05)}
.btn:active{transform:none}
.btn.alt{background:#fff;color:var(--green-d);border:1px solid var(--line);box-shadow:none}
.btn.alt:hover{border-color:var(--mint);box-shadow:0 4px 14px rgba(11,107,67,.12)}
.btn.wa{background:linear-gradient(135deg,#25b866,#17924f);box-shadow:0 8px 20px rgba(23,146,79,.3)}
.btn.light{background:#fff;color:var(--green-d);box-shadow:0 8px 24px rgba(0,0,0,.18)}
.btn.sm{min-height:40px;padding:0 16px;font-size:.9rem;border-radius:12px}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

/* ---------- accueil ---------- */
.garde-banner{background:linear-gradient(90deg,var(--green-d),var(--green));color:#fff;padding:11px var(--gutter);text-align:center;font-weight:600;font-size:.92rem;display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap}
.garde-banner a{color:#fff;font-weight:800}
.hero{position:relative;isolation:isolate;color:#fff;text-align:center;background:var(--green-dd);overflow:hidden}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;z-index:-2;opacity:.6}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(4,51,31,.5) 0%,rgba(4,51,31,.88) 100%)}
.hero .wrap{display:flex;flex-direction:column;align-items:center;padding-block:clamp(48px,9vw,112px) clamp(88px,13vw,170px)}
.hero h1{color:#fff;max-width:18ch;font-size:clamp(2.1rem,6.4vw,4.2rem);margin-bottom:.4em}
.hero p{max-width:58ch;margin-inline:auto;font-size:clamp(1rem,2.3vw,1.2rem);color:#e3f3ea}
.hero .btn-row{margin-top:10px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(6px);padding:7px 14px;border-radius:999px;font-size:.8rem;font-weight:700;letter-spacing:.03em;margin-bottom:18px;color:#fff}
.eyebrow.dark{background:var(--green-l);border-color:transparent;color:var(--green-d);backdrop-filter:none}
.quick{position:relative;z-index:2;margin-top:calc(-1 * clamp(52px,8vw,84px));display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:14px}
.quick a{display:flex;align-items:center;gap:14px;padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}
.quick a:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.quick .ico{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--green),var(--green-d));flex:none}
.quick .ico .ic{width:24px;height:24px}
.quick b{display:block;font-size:1rem;line-height:1.2;color:var(--green-d)}
.quick small{display:block;line-height:1.3}
.quick .go{margin-left:auto;color:var(--mint)}
.sec{padding-block:clamp(48px,8vw,96px)}
.sec.alt{background:#fff}
.sec-h{text-align:center;max-width:64ch;margin:0 auto clamp(24px,4vw,44px)}
.sec-h p{color:var(--muted);font-size:1.05rem;margin-bottom:0}
.sec-h h2::after{content:"";display:block;width:56px;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--green),var(--lime));margin:14px auto 0}
.center{text-align:center}
.grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:24px;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.card .ico{width:54px;height:54px;border-radius:16px;background:linear-gradient(135deg,var(--green),var(--green-d));color:#fff;display:grid;place-items:center;margin-bottom:12px;box-shadow:0 8px 18px rgba(11,107,67,.25)}
.card .ico .ic{width:26px;height:26px}
.card h3{margin-bottom:.35em;color:var(--green-d)}
.card p{color:var(--muted);margin:0 0 .8em;font-size:.95rem}
.card .btn{margin-top:auto}
.price{display:inline-flex;align-items:center;background:var(--green-l);color:var(--green-d);font-weight:800;border-radius:999px;padding:3px 12px;font-size:.84rem;margin:0 6px 8px 0}
.split{display:grid;gap:clamp(24px,5vw,56px);grid-template-columns:1fr;align-items:center}
@media(min-width:900px){.split{grid-template-columns:1.05fr 1fr}.split.rev>:first-child{order:2}}
.photo{border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-lg)}
.photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-top:22px}
.stat{background:var(--green-l);border-radius:var(--r-sm);padding:16px 10px;text-align:center}
.stat b{display:block;font-size:clamp(1.4rem,3vw,1.9rem);color:var(--green-d);line-height:1.1}
.stat span{font-size:.82rem;color:var(--muted);font-weight:600}
.steps{counter-reset:s;list-style:none;padding:0;margin:0;display:grid;gap:16px}
.steps li{counter-increment:s;position:relative;padding:2px 0 2px 56px;min-height:44px}
.steps li::before{content:counter(s);position:absolute;left:0;top:0;width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--green),var(--green-d));color:#fff;display:grid;place-items:center;font-weight:800;box-shadow:0 6px 14px rgba(11,107,67,.25)}
.hours{width:100%;border-collapse:collapse}
.hours td{padding:10px 0;border-bottom:1px dashed var(--line)}
.hours td:last-child{text-align:right;font-weight:700}
.hours tr.today td{color:var(--green);font-weight:800}

/* ---------- pages intérieures ---------- */
.page{padding:clamp(28px,5vw,56px) 0 clamp(48px,8vw,96px);background:linear-gradient(180deg,var(--green-l) 0,rgba(232,245,237,0) 340px)}
.page .wrap>h1,.page .wrap>.lead{text-align:center;margin-inline:auto}
.page .wrap>h1{max-width:20ch}
.page .wrap>h1::after{content:"";display:block;width:56px;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--green),var(--lime));margin:14px auto 0}
.lead{color:var(--muted);max-width:64ch;font-size:1.05rem}
.page .wrap>.lead{margin-bottom:28px}
.notice{background:#fff8e6;border:1px solid #f3dca0;color:#6b4b00;border-radius:var(--r-sm);padding:12px 16px;font-size:.92rem;margin:14px auto;max-width:880px;line-height:1.5}
.notice .ic{vertical-align:-.25em;margin-right:6px}
.hero .pill{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.28)}
.hero .pill.open::before{background:#3ddc84}
.sec .wrap>p:has(>.btn),.page .wrap>p:has(>.btn){text-align:center}
.notice.err{background:#fdeeee;border-color:#f1c1bd;color:#8a2a20}
.notice.ok{background:#e7f6ec;border-color:#b7e0c4;color:#0a5a2e}
.tools{display:flex;flex-wrap:wrap;gap:10px;margin:16px auto;max-width:720px}
.tools input[type=search]{flex:1;min-width:200px}

/* ---------- formulaires ---------- */
input,select,textarea{font:inherit;width:100%;min-height:48px;padding:0 14px;border:1px solid #cfe0d6;border-radius:12px;background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s}
input[type=search]{padding-left:44px;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%235a6b62' stroke-width='2' stroke-linecap='round'><circle cx='11' cy='11' r='7.5'/><path d='m21 21-4.3-4.3'/></svg>") no-repeat 14px center}
select{appearance:none;-webkit-appearance:none;padding-right:38px;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%235a6b62' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>") no-repeat right 12px center}
textarea{min-height:100px;padding:12px 14px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--green);box-shadow:0 0 0 4px rgba(11,107,67,.14)}
input[type=checkbox],input[type=radio]{width:auto;min-height:0}
label{display:block;font-weight:700;font-size:.88rem;margin:14px 0 6px;color:var(--green-d)}
.form{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:clamp(18px,3vw,30px);box-shadow:var(--shadow);max-width:720px;margin-inline:auto}
.row2{display:grid;gap:12px;grid-template-columns:1fr 1fr}
.row2.dial{grid-template-columns:150px 1fr}
@media(max-width:560px){.row2{grid-template-columns:1fr}.row2.dial{grid-template-columns:130px 1fr}}

/* ---------- onglets, puces, segments ---------- */
.chips{display:flex;gap:8px;overflow-x:auto;padding:6px 2px 10px;justify-content:safe center;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin-bottom:6px}
.chips::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;scroll-snap-align:center;min-height:42px;padding:0 18px;border-radius:999px;border:1px solid var(--line);background:#fff;font-weight:700;font-size:.9rem;color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:background .15s,color .15s,border-color .15s}
.chip:hover{border-color:var(--mint)}
.chip.on{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 6px 14px rgba(11,107,67,.25)}
.seg{display:flex;gap:4px;background:var(--green-l);padding:4px;border-radius:14px}
.seg button{flex:1;min-height:44px;padding:0 10px;border:0;border-radius:11px;background:transparent;font-weight:700;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;gap:6px}
.seg button.on{background:#fff;color:var(--green-d);box-shadow:0 1px 4px rgba(6,74,46,.2)}
.seg button[disabled]{opacity:.45;cursor:not-allowed}

/* ---------- boutique ---------- */
.banners{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));margin-bottom:14px}
.banners img{border-radius:var(--r);width:100%;max-height:190px;object-fit:cover;box-shadow:var(--shadow)}
.products{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));margin-top:10px}
.prod{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px;display:flex;flex-direction:column;gap:8px;position:relative;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}
.prod:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.prod h3{font-size:1rem;margin:0;color:var(--ink)}
.prod .pr{margin-top:auto;font-weight:800;font-size:1.15rem;color:var(--green-d)}
.prod .old{text-decoration:line-through;color:var(--muted);font-weight:500;font-size:.9rem;margin-right:6px}
.tag{position:absolute;top:12px;right:12px;background:var(--red);color:#fff;border-radius:999px;font-size:.7rem;font-weight:800;padding:3px 10px}
.tag.off{background:#8b9a92}
.pickup{color:var(--warn);font-weight:700;display:flex;align-items:center;gap:6px}
.empty{text-align:center;color:var(--muted);padding:36px 12px}
.skel{height:150px;border-radius:var(--r);background:linear-gradient(90deg,#eaf1ed,#f6faf8,#eaf1ed);background-size:200% 100%;animation:sk 1.2s infinite}
@keyframes sk{to{background-position:-200% 0}}

/* ---------- panier, fenêtres ---------- */
.drawer,.modal{position:fixed;inset:0;z-index:80}
.drawer-back,.modal-back{position:absolute;inset:0;background:rgba(4,40,25,.55);backdrop-filter:blur(3px)}
.drawer-box{position:absolute;top:0;right:0;bottom:0;width:min(460px,100%);background:#fff;padding:20px;padding-bottom:calc(20px + var(--safe-b));overflow:auto;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow-lg);animation:slidein .25s ease-out}
@keyframes slidein{from{transform:translateX(30px);opacity:0}to{transform:none;opacity:1}}
.modal{display:grid;place-items:center;padding:14px}
.modal-box{position:relative;background:#fff;border-radius:24px;padding:clamp(20px,4vw,30px);width:min(500px,100%);max-height:92dvh;overflow:auto;box-shadow:var(--shadow-lg);animation:pop .2s ease-out}
@keyframes pop{from{transform:scale(.96);opacity:0}to{transform:none;opacity:1}}
.xbtn{position:absolute;top:12px;right:14px;width:40px;height:40px;border:0;border-radius:12px;background:var(--green-l);font-size:1.5rem;line-height:1;color:var(--green-d);display:grid;place-items:center}
.line{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}
.qty{display:inline-flex;align-items:center;gap:6px;background:var(--green-l);border-radius:12px;padding:3px}
.qty button{width:34px;height:34px;border-radius:10px;border:0;background:#fff;font-weight:800;color:var(--green-d);box-shadow:0 1px 2px rgba(6,74,46,.15)}
.qty b{min-width:24px;text-align:center}
.tot{display:flex;justify-content:space-between;font-weight:800;font-size:1.2rem;padding:12px 0}
.order{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:14px 16px;margin-bottom:12px;box-shadow:var(--shadow)}
.st{display:inline-block;border-radius:999px;padding:3px 12px;font-size:.78rem;font-weight:800;background:var(--green-l);color:var(--green-d)}
.st.cancelled{background:#fdeaea;color:#a02a1f}
.toast{position:fixed;left:50%;bottom:calc(var(--safe-b) + 24px);transform:translateX(-50%);background:var(--green-dd);color:#fff;padding:13px 20px;border-radius:14px;z-index:120;box-shadow:var(--shadow-lg);max-width:min(92vw,520px);font-weight:600;text-align:center}

/* ---------- garde ---------- */
.banner-img{width:100%;max-width:960px;margin:0 auto 18px;border-radius:var(--r);box-shadow:var(--shadow-lg)}
.week{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));margin:16px 0}
.wk{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;font-size:.92rem}
.wk.me{background:linear-gradient(135deg,var(--green),var(--green-d));color:#fff;border-color:transparent}
.wk.now{outline:3px solid var(--mint)}
.wk b{display:block}
.garde-list{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr))}
.gp{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:16px;box-shadow:var(--shadow)}
.gp.me{border:2px solid var(--green);background:var(--green-l)}
.gp h3{margin:0 0 2px}
.gp .arr{font-size:.74rem;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.gp a.tel{display:inline-block;margin:8px 10px 0 0;font-weight:700}
#gardeBox h2,#urgBox h2{text-align:center;margin-top:34px}
#gardeBox>.lead,#urgBox>.lead{text-align:center;margin-inline:auto}

/* ---------- rendez-vous ---------- */
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;margin-top:6px}
.slot{min-height:44px;border:1px solid var(--line);border-radius:12px;background:#fff;font-weight:700}
.slot.on{background:var(--green);color:#fff;border-color:var(--green);box-shadow:0 6px 14px rgba(11,107,67,.25)}

/* ---------- équipe, conseils, actualités ---------- */
.titu{display:grid;gap:20px;grid-template-columns:1fr;align-items:center;justify-items:center;text-align:center;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px;margin:0 auto 16px;box-shadow:var(--shadow);max-width:820px}
@media(min-width:700px){.titu{grid-template-columns:200px 1fr;justify-items:start;text-align:left}}
.titu img{width:100%;max-width:200px;aspect-ratio:1/1;object-fit:contain;border-radius:var(--r);background:linear-gradient(160deg,#dff1e6,#bfe3cc)}
.titu h3{font-size:1.5rem;margin:.2em 0}
.pers{display:flex;align-items:center;gap:12px;margin:0 0 .5em;color:var(--ink);font-weight:600;font-size:.95rem}
.pers img,.pers .av0{width:48px;height:48px;border-radius:50%;object-fit:cover;flex:none;background:linear-gradient(160deg,#dff1e6,#bfe3cc)}
.pers .av0{display:grid;place-items:center;color:var(--green)}
.faq{display:grid;gap:10px;margin:14px auto 0;max-width:820px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:0 18px;box-shadow:var(--shadow)}
.faq summary{cursor:pointer;font-weight:700;padding:16px 0;color:var(--green-d);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";width:22px;height:22px;flex:none;background:var(--green-l) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b6b43' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>") center/14px no-repeat;border-radius:50%;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(180deg)}
.faq details[open] summary{border-bottom:1px dashed var(--line);margin-bottom:12px}
.faq p{margin:0 0 16px}
.newsgrid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr))}
.news{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}
.news:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.news small{font-weight:700;color:var(--green)}
.news h3{margin:0;font-size:1.02rem;color:var(--ink)}
.news h3 a{color:inherit;text-decoration:none}.news h3 a:hover{color:var(--green);text-decoration:underline}
.news p{margin:0;color:var(--muted);font-size:.92rem}
.news .more{margin-top:auto;font-weight:700;font-size:.9rem;text-decoration:none}
.day{display:flex;gap:14px;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 16px;margin:0 auto 10px;max-width:820px;box-shadow:var(--shadow)}
.day>span{font-size:1.7rem;line-height:1.2}.day small{display:block}.day p{margin:.2em 0 0;font-size:.92rem}
.push{position:fixed;left:var(--gutter);bottom:calc(var(--tab-h) + var(--safe-b) + 16px);z-index:90;display:grid;gap:10px;width:min(400px,calc(100vw - 2*var(--gutter)))}
.push-card{position:relative;display:flex;gap:12px;background:#fff;border:1px solid var(--line);border-left:6px solid var(--green);border-radius:var(--r-sm);padding:14px 46px 14px 14px;box-shadow:var(--shadow-lg);animation:pushin .35s ease-out}
.push-card .xbtn{top:6px;right:8px;width:34px;height:34px;font-size:1.3rem}
.push-card small{display:block;color:var(--green);font-weight:800}.push-card p{margin:.3em 0 0;font-size:.9rem}
.push-ico{font-size:1.8rem;line-height:1}
@keyframes pushin{from{transform:translateY(20px);opacity:0}to{transform:none;opacity:1}}

/* ---------- Pass Santé ---------- */
.passcover{background:linear-gradient(160deg,#1747c8,#2f8be6);color:#fff;border-radius:var(--r);padding:28px 18px;text-align:center;margin:0 auto 18px;box-shadow:var(--shadow-lg);max-width:560px;position:relative;overflow:hidden}
.passcover::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.07) 0 1px,transparent 1px 28px),repeating-linear-gradient(90deg,rgba(255,255,255,.07) 0 1px,transparent 1px 28px)}
.passcover>*{position:relative}
.passcover img{margin:0 auto 8px;background:#fff;border-radius:14px;padding:6px 12px}
.passcover h2,.passcover h3{color:#fff;letter-spacing:.1em;margin:.3em 0}
.passcover .rod{display:grid;place-items:center;margin:6px 0}.passcover .rod .ic{width:38px;height:38px}
.passcover p{margin:.2em 0;font-weight:700}.passcover small{color:rgba(255,255,255,.85)}
.passcover.mini{max-width:280px;padding:20px}
#passBox{max-width:820px;margin-inline:auto}
.tablewrap{overflow-x:auto;margin-top:12px;-webkit-overflow-scrolling:touch}
.tbl{width:100%;border-collapse:collapse;font-size:.9rem}
.tbl th,.tbl td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.tbl th{color:var(--green-d);font-weight:800}
.x{border:0;background:none;color:var(--red);font-size:1.3rem;cursor:pointer;min-width:36px;min-height:36px}
.list .order{position:relative}.list .x{position:absolute;top:6px;right:8px}

/* ---------- pied de page ---------- */
.foot{background:linear-gradient(180deg,var(--green-d),var(--green-dd));color:#cfe6d8;margin-top:0}
.foot-grid{display:grid;gap:clamp(24px,4vw,44px);grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));padding-block:clamp(40px,6vw,72px) 28px}
.foot h4{color:#fff;margin:0 0 12px;font-size:1rem;letter-spacing:.02em}
.foot p{margin:0 0 .6em}
.foot a{color:#fff;text-decoration:none}.foot a:hover{text-decoration:underline}
.logo-card{display:inline-block;background:#fff;border-radius:16px;padding:10px 16px;margin-bottom:10px}
.logo-card img{width:140px;height:auto}
.social{display:flex;gap:10px;margin-top:10px}
.social a{width:44px;height:44px;border-radius:14px;background:rgba(255,255,255,.1);display:grid;place-items:center;color:#fff;transition:background .15s}
.social a:hover{background:rgba(255,255,255,.22);text-decoration:none}
.ci{display:flex;align-items:flex-start;gap:10px;margin-bottom:.6em}.ci .ic{margin-top:3px;color:var(--mint)}
.legal{border-top:1px solid rgba(255,255,255,.14);padding-block:22px 28px;font-size:.82rem;color:#a7c9b6;text-align:center}
.legal-links{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:center;margin-bottom:10px}
.legal a{color:#d3e9dc}
.counters{margin-bottom:12px;color:#d3e9dc;font-weight:600;font-size:.88rem}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#3ddc84;margin-right:4px;box-shadow:0 0 0 4px rgba(61,220,132,.2)}

/* ---------- bouton WhatsApp flottant ---------- */
.wa-float{position:fixed;right:16px;bottom:calc(var(--safe-b) + var(--tab-h) + 16px);z-index:60;background:linear-gradient(135deg,#25b866,#17924f);color:#fff;border-radius:999px;min-height:56px;min-width:56px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800;text-decoration:none;box-shadow:0 12px 28px rgba(23,146,79,.45)}
.wa-float .ic{width:26px;height:26px}
.wa-float span{display:none}

/* ---------- barre d'onglets et menu (téléphone, tablette) ---------- */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:70;display:none;grid-template-columns:repeat(5,1fr);gap:2px;padding:8px 10px calc(8px + var(--safe-b));background:rgba(255,255,255,.88);backdrop-filter:saturate(1.5) blur(18px);-webkit-backdrop-filter:saturate(1.5) blur(18px);border-top:1px solid rgba(6,74,46,.1);box-shadow:0 -8px 30px rgba(6,74,46,.08)}
.tabbar a,.tabbar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:50px;border:0;background:none;border-radius:16px;color:var(--muted);text-decoration:none;font-size:.7rem;font-weight:700;transition:background .15s,color .15s}
.tabbar .ic{width:24px;height:24px}
.tabbar a.on{color:var(--green-d);background:var(--green-l)}
.sheet{position:fixed;inset:0;z-index:100}
.sheet-back{position:absolute;inset:0;background:rgba(4,40,25,.5);backdrop-filter:blur(3px)}
.sheet-box{position:absolute;left:0;right:0;bottom:0;max-height:88dvh;overflow:auto;background:#fff;border-radius:26px 26px 0 0;padding:10px var(--gutter) calc(20px + var(--safe-b));box-shadow:var(--shadow-lg);animation:sheetup .28s ease-out}
@keyframes sheetup{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.sheet-grip{width:44px;height:5px;border-radius:5px;background:#d3e0d8;margin:4px auto 14px}
.sheet-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.sheet-grid a{display:flex;flex-direction:column;gap:10px;align-items:flex-start;padding:16px;border-radius:18px;background:var(--green-l);color:var(--green-d);font-weight:700;text-decoration:none;font-size:.95rem;line-height:1.2}
.sheet-grid a .ic{width:26px;height:26px;color:var(--green)}
.sheet-grid a.on{background:var(--green);color:#fff}.sheet-grid a.on .ic{color:#fff}
.sheet-close{width:100%;margin-top:14px}
@media(min-width:620px){.sheet-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:760px){.sheet-box{left:50%;right:auto;bottom:50%;transform:translate(-50%,50%);width:min(660px,92vw);border-radius:28px;animation:pop .2s ease-out}.sheet-grip{display:none}}

/* ---------- adaptation aux écrans ---------- */
@media(max-width:1279px){
  #nav,.pill{display:none}
  .bar{grid-template-columns:1fr auto}
  .tabbar{display:grid}
  body{padding-bottom:calc(var(--tab-h) + var(--safe-b))}
  .foot .legal{padding-bottom:12px}
}
@media(max-width:700px){
  :root{--header-h:62px}
  .brand-t small{display:none}
  .brand img{width:38px;height:38px}
  .iconbtn .lbl{display:none}
  .iconbtn{padding:0}
  #ctaOrd span{display:none}
  #ctaOrd{padding:0;min-width:44px}
  .hero .btn-row .btn{flex:1 1 220px}
  .titu{padding:18px}
  .card{padding:20px}
}
@media(min-width:1280px){
  .tabbar,.sheet{display:none!important}
  .wa-float{bottom:24px;right:24px}
  .wa-float span{display:inline}
  .push{bottom:24px}
  .toast{bottom:28px}
}
/* En-tête de bureau : trois colonnes égales, le menu est exactement centré ; le statut d'ouverture est affiché dans l'accueil */
@media(min-width:1280px){
  .bar{grid-template-columns:1fr auto 1fr}
  .brand{justify-self:start}
  #nav a{padding:8px 12px;font-size:.88rem}
  .iconbtn .lbl,.top .pill{display:none}
}
@media(min-width:1280px) and (max-width:2199px){#ctaOrd span{display:none}#ctaOrd{padding:0;min-width:44px}}
@media(min-width:1600px){html{font-size:17px}:root{--maxw:1360px}}
@media(min-width:2200px){html{font-size:19px}:root{--maxw:1560px}}
@media(max-width:360px){
  :root{--gutter:14px}
  h1{font-size:1.75rem}
  .btn{padding:0 16px}
  .quick a{padding:14px}
}
@media(max-height:480px) and (orientation:landscape){
  :root{--tab-h:54px;--header-h:56px}
  .tabbar a,.tabbar button{min-height:42px;flex-direction:row;gap:6px;font-size:.72rem}
  .hero .wrap{padding-block:28px 64px}
  .sheet-box{max-height:94dvh}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.top,.foot,.wa-float,#push,.tabbar,.chips,[data-pexport],[data-pwipe],.notice{display:none!important}body{background:#fff;padding:0}.form{box-shadow:none;border:0}}
.price.alt{background:#fff3df;color:#8a5200}

/* ---------- espace patient / professionnel ---------- */
.lock{max-width:660px;margin:20px auto}
.lock .btn-row{margin-top:10px}
.quick-t{position:relative;display:flex;align-items:center;gap:14px;padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}
.quick-t:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.quick-t .ico{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--green),var(--green-d));flex:none}
.quick-t .ico .ic{width:24px;height:24px}
.quick-t b{display:block;color:var(--green-d);line-height:1.2}.quick-t small{display:block;line-height:1.3}
.quick-t.locked .ico{background:linear-gradient(135deg,#9aa9a1,#6b7a72)}
.quick-t .lk{position:absolute;top:10px;right:12px;font-size:.7rem;font-weight:800;color:var(--warn);display:inline-flex;gap:4px;align-items:center}
.quick-t .lk .ic{width:14px;height:14px}
.docf{margin-top:12px}.docf small{display:block;margin-bottom:6px}
.docprev img{max-height:150px;border-radius:12px;margin-top:8px;border:1px solid var(--line)}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:500;font-size:.88rem;margin:16px 0 8px;color:var(--ink)}
.check input{margin-top:3px;width:20px;height:20px;flex:none}
.subform{margin-top:8px;width:100%}
.cardcv{width:100%;max-width:560px;height:auto;display:block;margin:0 auto;border-radius:24px;box-shadow:var(--shadow-lg)}
.czlist{display:grid;gap:12px;margin:16px auto;max-width:820px}
.czq{display:flex;gap:10px;align-items:center;margin-top:8px;flex-wrap:wrap}.czq input{width:90px}.czq label{margin:0}
.cztot{max-width:820px;margin:16px auto;gap:10px}
.vl{margin:0;padding-left:1.1em}.vl li{margin:.25em 0}
.vaxs.done{opacity:.6}.vaxs.late{border-color:#e9b0a8;background:#fff6f4}.vaxs.next{border-color:var(--mint);background:var(--green-l)}
.verif .ico{width:72px;height:72px}.verif .ico .ic{width:36px;height:36px}
.verif.ok{border-color:#b7e0c4;background:#f1fbf4}.verif.ko{border-color:#f1c1bd;background:#fff6f4}
@media print{.page .chips,.page .btn,.page .notice{display:none!important}.cardcv{box-shadow:none}}
.choose{max-width:860px;margin:22px auto 8px}
.pick{text-decoration:none;color:inherit;cursor:pointer;border:2px solid var(--line)}
.pick:hover{border-color:var(--green)}
.pick .btn{margin-top:10px}
.typebar{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--green-l);border-radius:14px;padding:10px 14px;font-weight:700;color:var(--green-d)}
.typebar span{display:inline-flex;align-items:center;gap:8px}
.paybox{margin-top:10px;width:100%}
.steps.small li{font-size:.92rem;padding-left:48px}
.steps.small li::before{width:34px;height:34px;border-radius:11px;font-size:.9rem}

/* ---------- chiffres en direct ---------- */
.live-sec{padding:34px 0 0}
.live-h{display:flex;align-items:center;justify-content:center;gap:10px;font-weight:800;color:var(--green-d);letter-spacing:.06em;text-transform:uppercase;font-size:.78rem;margin-bottom:14px}
.live-h .dot{margin:0;animation:pulse 1.6s infinite}
.live{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}
.lv{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px 14px 14px;text-align:center;box-shadow:var(--shadow);overflow:hidden}
.lv .ico{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;margin:0 auto 6px;color:#fff;background:linear-gradient(135deg,var(--green),var(--green-d))}
.lv b{display:block;font-size:clamp(1.7rem,4vw,2.3rem);line-height:1.1;color:var(--green-d);font-variant-numeric:tabular-nums;font-weight:800}
.lv small{display:block;color:var(--muted);font-weight:600}
.lv em{display:block;font-style:normal;font-size:.78rem;color:var(--green);font-weight:700;margin-top:2px;min-height:1.1em}
.lv.now::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 2px rgba(61,220,132,.6);animation:glow 2.4s ease-in-out infinite;pointer-events:none}
.lv b.pop{animation:pop2 .6s ease-out}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(61,220,132,.65)}70%{box-shadow:0 0 0 10px rgba(61,220,132,0)}100%{box-shadow:0 0 0 0 rgba(61,220,132,0)}}
@keyframes glow{50%{opacity:.2}}
@keyframes pop2{40%{transform:scale(1.18);color:var(--green)}100%{transform:none}}

/* boutique native : photos produits, publicité défilante, devises */
.prod .pimg{margin:-18px -18px 6px;aspect-ratio:4/3;overflow:hidden;border-radius:var(--r) var(--r) 0 0;background:var(--green-l)}
.prod .pimg img{width:100%;height:100%;object-fit:cover;display:block}
.prod .tag{z-index:1}
.xcur{color:var(--muted);font-weight:600}
.adcar{position:relative;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:12/5;background:var(--green-l);margin-bottom:14px}
.adslide{position:absolute;inset:0;opacity:0;transition:opacity .6s;pointer-events:none}
.adslide.on{opacity:1;pointer-events:auto}
.adslide a,.adslide img{display:block;width:100%;height:100%}
.adslide img{object-fit:cover;max-height:none;border-radius:0;box-shadow:none}
.addots{position:absolute;left:0;right:0;bottom:8px;display:flex;justify-content:center;gap:6px}
.addots button{width:9px;height:9px;border-radius:50%;border:0;padding:0;background:rgba(255,255,255,.6);cursor:pointer}
.addots button.on{background:#fff;width:22px;border-radius:6px}
@media (max-width:600px){.adcar{aspect-ratio:16/8}}

/* messagerie : pastille, bulles */
#accBtn{position:relative}
.ubadge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#d93025;color:#fff;font:700 .7rem/18px var(--font,inherit);font-style:normal;text-align:center}
.msg{max-width:92%;margin:8px 0;padding:10px 14px;border-radius:16px;border:1px solid var(--line);background:#fff}
.msg.ph{background:var(--green-l);border-color:transparent;margin-right:auto}
.msg.me{margin-left:auto;background:#fff}
.msg p{margin:.3em 0;white-space:pre-wrap}.msg small{color:var(--muted);font-weight:600}

/* réservation, bandeau de garde, annonces dans la grille */
.pbtns{display:grid;gap:6px;margin-top:6px}.pbtns .btn{justify-content:center;width:100%}
.adcar.garde{aspect-ratio:auto;height:170px;background:linear-gradient(135deg,var(--green-d),var(--green))}
.adslide.affiche{display:grid;place-items:center;text-align:center;color:#fff;padding:18px 22px}
.adslide.affiche>div{display:grid;gap:6px;justify-items:center;max-width:560px}
.adslide.affiche b{font-size:1.35rem;line-height:1.2}.adslide.affiche small{font-size:.95rem;opacity:.92}
.adslide.affiche .ico svg{width:34px;height:34px;color:#fff}
.prod.adinline{padding:0;overflow:hidden;grid-column:span 2;min-height:140px;background:var(--green-l)}
.prod.adinline a,.prod.adinline img{display:block;width:100%;height:100%;object-fit:cover}
@media (max-width:600px){.adcar.garde{height:190px}.prod.adinline{grid-column:1/-1}}
.adtag{position:absolute;left:8px;bottom:6px;background:rgba(0,0,0,.45);color:#fff;border-radius:6px;padding:1px 7px;font-size:.68rem}
.prod.adinline{position:relative}
#adAll:empty{display:none}#adAll{margin:30px auto 10px}
.audience{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin:16px 0}
.audience .lv{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;text-align:center}.audience b{display:block;font-size:1.7rem;color:var(--green-d)}

/* visite virtuelle 2D / 3D */
.vtabs{justify-content:center;margin:14px 0}
.vstage{position:relative;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);background:#e8e4da}
.v3d{position:relative;height:min(68vh,560px);min-height:340px;touch-action:none}.v3d[hidden],.v2d[hidden]{display:none}
.vcanvas{display:block;width:100%;height:100%;cursor:grab}
.vtag{position:absolute;left:0;top:0;transform:translate(-50%,-50%);background:#fff;border:2px solid var(--green);border-radius:999px;padding:4px 10px;font:700 .72rem/1.2 inherit;color:#0b3b2a;box-shadow:0 4px 14px rgba(0,0,0,.25);cursor:pointer;white-space:nowrap;max-width:70vw;overflow:hidden;text-overflow:ellipsis}
.vtag.on{background:var(--green-d);color:#fff}
.vpad{position:absolute;left:12px;bottom:12px;display:grid;grid-template-columns:repeat(3,44px);grid-template-areas:". u ." "l d r";gap:6px;user-select:none}
.vpad button{width:44px;height:44px;border-radius:12px;border:0;background:rgba(255,255,255,.88);font-size:1rem;color:#0b3b2a;box-shadow:0 2px 8px rgba(0,0,0,.25);touch-action:none}
.vpad [data-k=arrowup]{grid-area:u}.vpad [data-k=arrowleft]{grid-area:l}.vpad [data-k=arrowdown]{grid-area:d}.vpad [data-k=arrowright]{grid-area:r}
.vhint{position:absolute;right:12px;bottom:12px;max-width:55%;background:rgba(0,0,0,.6);color:#fff;border-radius:10px;padding:6px 10px;font-size:.78rem;text-align:right;pointer-events:none}
.v2d{background:#fff;padding:10px}.v2d svg{width:100%;height:auto;display:block}.v2d [data-zone]{cursor:pointer;transition:opacity .2s}.v2d .dim{opacity:.28}
.vlegend{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.vlegend button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px;font:600 .88rem inherit;cursor:pointer}.vlegend i{width:14px;height:14px;border-radius:4px;flex:none}
.vinfo{margin-top:14px}.vthumbs{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.vthumbs button{border:0;padding:0;background:none;cursor:zoom-in}.vthumbs img{width:90px;height:120px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.vgal{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.vz{position:relative;border:0;padding:0;border-radius:var(--r);overflow:hidden;cursor:pointer;aspect-ratio:4/3;background:var(--green-l)}.vz img{width:100%;height:100%;object-fit:cover}.vz span{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.72));color:#fff;font:700 .9rem/1.2 inherit;padding:22px 12px 10px;text-align:left;border-bottom:4px solid}
.rayons{margin:6px 0 18px}.rayons-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.rayons-h h2{margin:0}
.rayons-g{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-top:10px}
.rayon{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;box-shadow:var(--shadow);display:block}.rayon img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.rayon:hover img{transform:scale(1.05)}
.rayon span{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.75));color:#fff;font-weight:700;padding:26px 12px 10px}
@media (max-width:600px){.v3d{height:62vh}.vhint{display:none}}

/* ambiance sonore */
.sndbtn{position:fixed;left:14px;bottom:calc(86px + env(safe-area-inset-bottom));z-index:60;width:46px;height:46px;border-radius:50%;border:0;background:#fff;color:var(--green-d);box-shadow:0 6px 18px rgba(0,0,0,.22);display:grid;place-items:center;cursor:pointer}
.sndbtn.on{background:var(--green-d);color:#fff}.sndbtn.on::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--green);opacity:.5;animation:sndp 2.4s ease-out infinite}
@keyframes sndp{from{transform:scale(.9);opacity:.6}to{transform:scale(1.35);opacity:0}}
.sndpanel{max-height:calc(100vh - 170px - env(safe-area-inset-bottom));overflow:auto;position:fixed;left:14px;bottom:calc(142px + env(safe-area-inset-bottom));z-index:61;width:min(320px,calc(100vw - 28px));background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 16px 40px rgba(0,0,0,.28);padding:14px}
.sndpanel[hidden]{display:none}.snd-h{display:flex;justify-content:space-between;align-items:center}.snd-p{font-size:.85rem;color:var(--muted);margin:.4em 0 .8em}
.snd-l{font-size:.8rem;font-weight:700;color:var(--muted);margin:.9em 0 .3em}.snd-s{display:flex;flex-wrap:wrap;gap:6px}.snd-s .chip{font-size:.78rem;padding:6px 10px}
.sndpanel input[type=range]{width:100%}
.sndhint{position:fixed;left:68px;bottom:calc(94px + env(safe-area-inset-bottom));z-index:60;background:#0b3b2a;color:#fff;border-radius:14px;padding:8px 12px;font-size:.82rem;max-width:210px;box-shadow:0 6px 18px rgba(0,0,0,.25);animation:sndh .4s ease}
@keyframes sndh{from{opacity:0;transform:translateX(-8px)}}
@media (min-width:1280px){.sndbtn{bottom:20px}.sndpanel{bottom:76px}.sndhint{bottom:28px}}
@media print{.sndbtn,.sndpanel,.sndhint{display:none}}

/* rubriques réservées aux membres : cadenas */
a.locked::after{content:"";display:inline-block;width:.8em;height:.8em;margin-left:5px;vertical-align:-1px;background:currentColor;opacity:.75;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10V7a5 5 0 0 1 10 0v3h1a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2zm2 0h6V7a3 3 0 0 0-6 0z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10V7a5 5 0 0 1 10 0v3h1a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2zm2 0h6V7a3 3 0 0 0-6 0z'/%3E%3C/svg%3E") center/contain no-repeat}
#tabbar a.locked::after{position:absolute;top:6px;right:calc(50% - 20px);margin:0;width:.75em;height:.75em}#tabbar a{position:relative}
.gate{max-width:560px;margin:6vh auto;text-align:center}.gate .ico{margin:0 auto 10px;width:64px;height:64px;font-size:1.6rem}.gate .btn-row{justify-content:center;margin-top:14px}

/* menu « Plus » du bureau : donne accès aux mêmes rubriques que le menu du téléphone */
.navmore{position:relative}
#moreBtn{display:flex;align-items:center;gap:4px;padding:9px 15px;border:0;background:none;border-radius:999px;font:600 .9rem inherit;color:var(--ink);cursor:pointer;white-space:nowrap}
#moreBtn .ic{width:14px;height:14px;transition:transform .2s}#moreBtn[aria-expanded=true] .ic{transform:rotate(180deg)}
#moreBtn:hover,#moreBtn.on{background:rgba(255,255,255,.7)}#moreBtn.on{color:var(--green-d)}
.moremenu{position:absolute;right:0;top:calc(100% + 10px);z-index:80;min-width:260px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 44px rgba(0,0,0,.2);padding:8px;display:grid;gap:2px}
.moremenu[hidden]{display:none}
#nav .moremenu a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:none;box-shadow:none;font-size:.9rem}
#nav .moremenu a:hover{background:var(--green-l)}#nav .moremenu a.on{background:var(--green-l);color:var(--green-d)}
.moremenu .ic{width:18px;height:18px;color:var(--green)}

/* proposition d'abonnement */
.push-abo{max-width:min(480px,calc(100vw - 24px));max-height:calc(100vh - 120px);overflow:auto}
.abo-price{display:block;font-size:1.5rem;color:var(--green-d);margin:.1em 0 .3em}.abo-price small{font-size:.85rem;font-weight:600;color:var(--muted)}
.abo-list{list-style:none;margin:.4em 0;padding:0;display:grid;gap:7px}.abo-list li{display:flex;gap:9px;font-size:.84rem;line-height:1.35;text-align:left}.abo-list li .ic{flex:none;width:18px;height:18px;margin-top:2px;color:var(--green-d)}
@media (min-width:1280px) and (max-width:1599px){.brand-t small{display:none}#nav a,#moreBtn{padding:8px 10px;font-size:.85rem}#nav a.locked::after{margin-left:3px}}

.seg a{flex:1;min-height:44px;padding:0 10px;border-radius:11px;background:transparent;font-weight:700;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;text-align:center}
.seg a.on{background:#fff;color:var(--green-d);box-shadow:0 1px 4px rgba(6,74,46,.2)}

.abo-save{margin:.5em 0 .7em;padding:12px 14px;border-radius:16px;background:linear-gradient(135deg,#eaf7ef,#f3fbd9);border:1px solid #bfe3cd;text-align:left}
.abo-save>b{display:block;font-size:.95rem;color:var(--green-d)}
.abo-save table{width:100%;border-collapse:collapse;margin:.4em 0;font-size:.84rem}
.abo-save td{padding:5px 0;border-bottom:1px solid rgba(11,122,75,.15);vertical-align:top}
.abo-save td:last-child{text-align:right;font-weight:700;white-space:nowrap;padding-left:10px}
.abo-save td small{display:block;color:var(--muted);font-weight:500}
.abo-save .sum td{font-weight:800;border-bottom:0}
.abo-save .gain td{font-size:1.05rem;font-weight:800;color:var(--green-d);border-bottom:0;border-top:2px solid var(--green-d)}
.abo-x{margin:.2em 0 0;font-weight:700;font-size:.85rem;color:var(--green-d)}
.welcome-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0;padding:12px max(16px,calc((100% - 1100px)/2));background:linear-gradient(90deg,#fff6d6,#eaf7ef);border-bottom:1px solid #ecd98a;font-size:.92rem;line-height:1.35}
.welcome-banner[hidden]{display:none}.welcome-banner>div{flex:1 1 280px}.welcome-banner .wb-ico{font-size:1.6rem}
.ac-chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}.ac-chips .chip{min-height:38px;padding:0 14px;font-size:.88rem}.ac-chips .chip.on{background:var(--green);color:#fff;border-color:var(--green)}
.ac-card h4{font-size:1.02rem}.ac-warn{margin:.35em 0;font-size:.85rem;font-weight:700;color:#b45309}.ac-ci{margin:.4em 0;padding-left:1.2em;font-size:.82rem;color:var(--muted)}
.ac-shelf{margin-top:8px;padding:8px 10px;border-radius:12px;background:var(--green-l);font-size:.86rem}.ac-shelf ul{margin:.2em 0 .5em;padding-left:1.1em}.ac-day{border-left:4px solid var(--green)}

.dg-tabs{justify-content:flex-start;flex-wrap:wrap;overflow:visible}.dg-types{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;margin:8px 0 12px}
.dg-type{display:flex;flex-direction:column;gap:2px;text-align:left;padding:10px 12px;border-radius:14px;border:1px solid var(--line);background:#fff;cursor:pointer;font:inherit}.dg-type small{color:var(--muted);font-size:.76rem;line-height:1.3}.dg-type.on{border-color:var(--green);background:var(--green-l);box-shadow:inset 0 0 0 1px var(--green)}
.dg-steps{list-style:none;counter-reset:s;margin:.6em 0;padding:0;display:grid;gap:12px}.dg-steps li{counter-increment:s;position:relative;padding-left:40px}.dg-steps li::before{content:counter(s);position:absolute;left:0;top:0;width:28px;height:28px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:800;font-size:.85rem}
.dg-steps li>b{display:block}.dg-steps li>span{display:block;font-size:.9rem;color:var(--ink-2,#3b4a43)}
.dg-prods{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.dg-prod{display:flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;border-radius:12px;background:var(--green-l);text-decoration:none;color:inherit;max-width:260px}
.dg-prod img{width:44px;height:44px;border-radius:8px;object-fit:cover}.dg-prod i{font-style:normal;font-size:1.6rem;width:44px;text-align:center}.dg-prod span{font-size:.82rem;line-height:1.25}.dg-prod span b{display:block;color:var(--green-d)}
.dg-card{display:flex;flex-direction:column;gap:4px;text-align:left;cursor:pointer;font:inherit}.dg-card small{color:var(--green-d);font-weight:700;text-transform:uppercase;font-size:.7rem;letter-spacing:.04em}.dg-card .mut{font-size:.86rem}
@media print{.dg-tabs,#dgBack,#dgSave,.btn{display:none!important}}
/* rubriques non accessibles (compte ou abonnement requis) : grisées, cadenas rouge ; elles restent cliquables pour expliquer comment y accéder */
a.locked,#nav a.locked,#tabbar a.locked,.moremenu a.locked,#sheet a.locked{color:#9aa5a0!important;opacity:.8}
a.locked::after{background:#c0392b!important;opacity:1!important}
a.locked:hover,#nav a.locked:hover{background:#fdecea!important;color:#a93226!important;opacity:1;filter:none}
a.locked .ic,#tabbar a.locked svg:first-child{opacity:.6}
.quick a.locked,.quick-t.locked{opacity:.78}.quick a.locked:hover{background:#fdecea}

.check>span{flex:1;min-width:0}.check a{display:inline;white-space:normal}

details.kycopt{border:1px solid var(--line);border-radius:14px;padding:10px 14px;margin:14px 0;background:#fff}details.kycopt>summary{cursor:pointer;font-weight:700;color:var(--green-d)}details.kycopt[open]>summary{margin-bottom:6px}
/* en-tête PC : le logo et « Pharmacie Gloria » gardent leur place, le menu se centre dans l'espace restant et se resserre si besoin */
@media (min-width:1280px){.bar{grid-template-columns:auto minmax(0,1fr) auto;column-gap:16px}.brand{flex:none;justify-self:start}.brand-t b{white-space:nowrap}#nav{justify-self:center;min-width:0;max-width:100%}}
@media (min-width:1280px) and (max-width:1439px){#nav a,#moreBtn{padding:8px 7px;font-size:.8rem}#nav a.locked::after{margin-left:2px}.brand-t b{font-size:.98rem}}
@media (min-width:1440px) and (max-width:1599px){#nav a,#moreBtn{padding:8px 9px;font-size:.84rem}}
@media print{.noprint{display:none!important}}

/* ===================== Refonte professionnelle 2026 : symétrie, centrage, rythme ===================== */
:root{--r-card:24px}
body{background:radial-gradient(900px 420px at 12% -6%,#e3f3ea 0,transparent 62%),radial-gradient(800px 420px at 100% 0,#eef7e0 0,transparent 55%),var(--bg,#f4f9f6)}
h1,h2{text-wrap:balance}p{text-wrap:pretty}
.page h1,.wrap>h1{text-align:center}.page .lead,.wrap>.lead{text-align:center;max-width:62ch;margin-inline:auto}
/* cartes de service et de rubrique : tout est centré */
.grid>.card:has(>.ico){align-items:center;text-align:center;gap:4px;padding:28px 22px 24px;border-radius:var(--r-card);border:1px solid rgba(11,107,67,.1)}
.grid>.card:has(>.ico) .ico{width:62px;height:62px;border-radius:20px;margin:0 auto 10px}.grid>.card:has(>.ico) .ico .ic{width:30px;height:30px}
.grid>.card:has(>.ico) h3{text-align:center;margin:.2em 0 .15em}
.grid>.card:has(>.ico) p{text-align:center;max-width:36ch;margin:0 auto .8em}
.grid>.card:has(>.ico)>div:has(>.price){width:100%;display:flex;flex-direction:column;align-items:center;gap:6px;margin:2px 0 8px}
.grid>.card:has(>.ico) .price,.grid>.card:has(>.ico) .price.alt{display:block;width:fit-content;max-width:100%;margin:0;border-radius:14px;padding:7px 14px;text-align:center;line-height:1.3;white-space:normal;overflow-wrap:anywhere}
.grid>.card:has(>.ico) .btn{margin:auto auto 0;align-self:center}
.grid>.card:has(>.ico)>.btn:first-of-type,.grid>.card:has(>.ico)>a.btn{margin-top:10px}
/* pastilles et prix partout : rectangles arrondis, texte centré, retour à la ligne propre */
.price,.price.alt{border-radius:14px;text-align:center;line-height:1.3;white-space:normal;overflow-wrap:anywhere}
.tag,.tagp,.pill{overflow-wrap:anywhere}
/* bandeaux d'accueil */
.garde-banner{flex-wrap:wrap;line-height:1.45;text-wrap:balance}
.welcome-banner{justify-content:center;text-align:center}.welcome-banner>div{flex:1 1 300px}
@media (max-width:640px){.welcome-banner{flex-direction:column;gap:8px;padding-block:14px}.welcome-banner .btn{align-self:center}.welcome-banner .wb-ico{margin-bottom:-2px}}
/* sections : titres centrés, séparation nette, rythme régulier */
.sec{padding-block:clamp(40px,6vw,76px)}
.split{align-items:center}
.steps li{padding-top:4px;padding-bottom:4px}.steps li b{color:var(--green-d)}
/* messages push : jamais plus hauts que l'écran */
.push-card{max-height:82vh;overflow:auto;overscroll-behavior:contain}
.push-abo .abo-list{max-height:34vh;overflow:auto}
/* boutons : contenu toujours centré, taille tactile homogène */
.btn{justify-content:center;text-align:center}.btn-row{justify-content:center}
/* pied de page : colonnes alignées et centrées sur téléphone */
@media (max-width:700px){.foot-grid{text-align:center}.foot-brand,.foot-grid>div{display:flex;flex-direction:column;align-items:center}.social{justify-content:center}.legal,.legal-links{text-align:center;justify-content:center}}
/* formulaires : champs et étiquettes alignés */
.form label,.form .lead{text-align:left}.form h3{margin-top:22px}
@media (max-width:520px){.grid{gap:14px}.card{padding:20px}.grid>.card:has(>.ico){padding:24px 18px 20px}}
@media (max-width:640px){.welcome-banner>div{flex:0 0 auto}}

.printonly{display:none}@media print{.printonly{display:inline}.cv-t th,.cv-t td{font-size:.9rem}}
body:has(#cvBox) #push,body:has(#rvBox) #push{display:none!important}
