.odr-grid{display:grid;grid-template-columns:repeat(var(--odr-cols,3),minmax(0,1fr));gap:28px}
@media(max-width:900px){.odr-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}
.odr-card{display:flex;flex-direction:column;background:#fff;border:1px solid #e6e6e1;border-radius:16px;overflow:hidden;transition:border-color .15s,box-shadow .15s,transform .15s}
.odr-card:hover{border-color:#111316;box-shadow:0 18px 40px -28px rgba(17,19,22,.5);transform:translateY(-2px)}
.odr-card__media{position:relative;display:block;background:#f2f2ee;aspect-ratio:16/10;overflow:hidden}
.odr-card__media img{width:100%;height:100%;object-fit:contain;object-position:center;display:block;mix-blend-mode:multiply}
.odr-badge{position:absolute;top:12px;left:12px;font:600 11px/1 Archivo,Helvetica,Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;padding:7px 10px;border-radius:99px;color:#fff}
.odr-badge--ok{background:#1d7a3f}
.odr-badge--warn{background:#b26a00}
.odr-card__body{display:flex;flex-direction:column;gap:14px;padding:20px 22px 22px}
.odr-card__title{margin:0;font:600 20px/1.2 Archivo,Helvetica,Arial,sans-serif;letter-spacing:-.01em}
.odr-card__title a{color:#111316;text-decoration:none}
.odr-specs{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.odr-specs li{font-size:12.5px;color:#4a4c50;background:#f4f4f0;border-radius:6px;padding:5px 9px}
.odr-card__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:6px;border-top:1px solid #efefeb}
.odr-prix{font-size:14px;color:#6f7175}
.odr-prix strong{font:600 22px/1 Archivo,Helvetica,Arial,sans-serif;color:#111316}
.odr-btn{display:inline-block;font:600 14px/1 Archivo,Helvetica,Arial,sans-serif;color:#fff;background:#e8492b;border:0;border-radius:9px;padding:13px 18px;cursor:pointer;text-decoration:none;transition:background .15s}
.odr-btn:hover{background:#c23a20;color:#fff}
.odr-btn--full{width:100%;padding:16px;font-size:15px}
.odr-vide{padding:20px;background:#f6f6f4;border-radius:12px;color:#6f7175}

.odr-reserver{display:flex;flex-direction:column;gap:24px;max-width:560px}
.odr-reserver__titre{margin:0;font:600 26px/1.15 Archivo,Helvetica,Arial,sans-serif;letter-spacing:-.01em;color:#111316}
.odr-calbox{border:1px solid #ececea;border-radius:18px;padding:18px;background:#fff;max-width:380px}
.odr-cals{display:block}
.odr-cal{border:0;padding:0;background:none}
.odr-cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;text-align:center}
.odr-cal__dow{font:700 11px/1 Archivo,Helvetica,Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#a6a8ad;padding-bottom:10px}
.odr-cal__day{font:600 14px/38px Archivo,Helvetica,Arial,sans-serif;border-radius:11px;color:#1c1e22}
.odr-cal__day.is-libre{background:#f5f5f3;color:#1c1e22}
.odr-cal__day.is-pris{background:#fff;color:#cfd0d3;text-decoration:line-through}
.odr-cal__day.is-passe{color:#c9cacd}
.odr-cal__day.is-libre{cursor:pointer;transition:background .12s,color .12s}
.odr-cal__day.is-libre:hover{background:#e8492b;color:#fff}
.odr-cal__day.is-pris,.odr-cal__day.is-passe{cursor:not-allowed}
.odr-cal__day.is-selection{background:#e8492b;color:#fff;font-weight:600}
.odr-cal__day.is-apercu{background:#f9d3ca;color:#8f3520;font-weight:600}
.odr-cal__day.is-debut,.odr-cal__day.is-fin{background:#e8492b;color:#fff;font-weight:700}
.odr-aide{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:13px;color:#3c3e42;background:#f6f6f7;border-radius:9px;padding:9px 12px;margin:0 0 12px}
.odr-aide button{background:none;border:0;padding:0;font:inherit;color:#e8492b;text-decoration:underline;cursor:pointer}
.odr-calbox .odr-legende{margin-top:12px;padding-top:12px;border-top:1px solid #f0f0ee}
.odr-legende{display:flex;gap:18px;font-size:12.5px;color:#6f7175}
.odr-legende i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px}
.odr-legende i.is-libre{background:#1d7a3f}
.odr-legende i.is-pris{background:#e8492b}

.odr-form{display:flex;flex-direction:column;gap:16px}
.odr-form label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600;color:#3c3e42}
.odr-form__row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:600px){.odr-form__row{grid-template-columns:1fr}}
.odr-form input,.odr-form textarea{font:400 15px/1.4 inherit;color:#111316;padding:13px 15px;border:1px solid #dcdcd8;border-radius:10px;background:#fff;transition:border-color .15s,box-shadow .15s}
.odr-form input:focus,.odr-form textarea:focus{outline:0;border-color:#e8492b;box-shadow:0 0 0 3px rgba(232,73,43,.14)}
.odr-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.odr-estimation{margin:0;font-size:14px;color:#3c3e42;background:#f4f4f0;border-radius:10px;padding:13px 15px}
.odr-estimation strong{font:600 17px/1 Archivo,Helvetica,Arial,sans-serif}
.odr-mentions{margin:0;font-size:12.5px;color:#8b8d92}
.odr-alert{margin:0;font-size:14px;line-height:1.5;border-radius:10px;padding:14px 16px}
.odr-alert--ok{color:#12592e;background:#eef7f1;border:1px solid #c6e3d1}
.odr-alert--ko{color:#8f2413;background:#fdeeea;border:1px solid #f6cfc6}

.odr-calnav{display:flex;align-items:center;gap:12px;margin:0 0 18px}
.odr-calnav__btn{width:36px;height:36px;flex:0 0 36px;border:1px solid #ececea;background:#fff;border-radius:12px;font-size:18px;line-height:1;color:#1c1e22;cursor:pointer}
.odr-calnav__btn:hover:not(:disabled){border-color:#e8492b;color:#e8492b}
.odr-calnav__btn:disabled{opacity:.35;cursor:not-allowed}
.odr-calnav__select{flex:1;min-width:0;text-transform:capitalize;padding:9px 12px;border:1px solid #ececea;border-radius:12px;background:#fff;font:700 14.5px/1.2 Archivo,Helvetica,Arial,sans-serif;color:#111316}
.odr-datefield{background:#fff;cursor:pointer}
.odr-datefield:read-only{color:#3c3e42}
.odr-aide.is-flash{background:#fdeeea;color:#b5432a}
.odr-calnav__select--an{flex:0 0 84px;text-transform:none}

/* ---- bandeau de recherche ---- */
.odr-bar{background:#fff;border:1px solid #e6e6e1;border-radius:18px;padding:16px;box-shadow:0 12px 30px rgba(17,19,22,.06)}
.odr-bar__titre{margin:0 0 12px;font:600 18px/1.2 Archivo,Helvetica,Arial,sans-serif;color:#111316}
.odr-bar__grille{display:grid;grid-template-columns:minmax(140px,1fr) minmax(140px,1fr) minmax(320px,1.6fr) minmax(150px,auto);gap:20px;align-items:end}
.odr-bar__champ--dates{grid-column:span 1}
@media(max-width:1180px){.odr-bar__grille{grid-template-columns:1fr 1fr}.odr-bar__champ--dates{grid-column:span 2}.odr-bar__submit{grid-column:span 2;justify-self:start}}
.odr-bar__champ{display:flex;flex-direction:column;gap:6px;min-width:0}
.odr-bar__champ>span{font:700 10.5px/1 Archivo,Helvetica,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#a6a8ad}
.odr-bar__submit{white-space:nowrap;height:52px;font-weight:700;padding:0 26px;position:relative;z-index:1}
@media(max-width:900px){.odr-bar__grille{grid-template-columns:1fr}}

/* ---- sélecteur de dates ---- */
.odr-picker{position:relative;display:flex;gap:16px;flex-wrap:wrap}
.odr-picker__paire{display:flex;align-items:center;gap:14px;flex:1;min-width:290px;border:1px solid #ececea;border-radius:14px;padding:0 14px 0 18px;height:52px;background:#fff}
.odr-picker.is-ouvert .odr-picker__paire{border-color:#e8492b}
.odr-picker__lab{font:700 10.5px/1 Archivo,Helvetica,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#a6a8ad}
.odr-datefield{flex:1;min-width:130px;border:0;background:none;font:600 15px/1.2 Archivo,Helvetica,Arial,sans-serif;text-align:left;color:#a6a8ad;cursor:pointer;padding:0 4px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.odr-datefield.is-rempli{color:#111316;font-weight:700}
.odr-heure,.odr-lieu{border:1px solid #e0e0e2;border-radius:9px;background:#fff;font:inherit;font-size:13.5px;color:#3c3e42;padding:7px 8px}
.odr-heure{border:0;border-left:1px solid #ececea;border-radius:0;padding:0 0 0 14px;height:30px;font:700 14px/1 Archivo,Helvetica,Arial,sans-serif;color:#111316}
.odr-lieu{height:52px;width:100%;border-radius:14px;border-color:#ececea;padding:0 14px;font-weight:600;color:#111316}
.odr-pop{position:absolute;z-index:40;top:calc(100% + 10px);left:0;background:#fff;border:1px solid #ececea;border-radius:20px;padding:6px;box-shadow:0 22px 54px rgba(17,19,22,.16)}
.odr-pop .odr-calbox{border:0;padding:18px 18px 4px;max-width:none;width:326px}
.odr-pop__foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 18px 14px;padding-top:14px;border-top:1px solid #f2f2f0;font:600 12.5px/1.35 Archivo,Helvetica,Arial,sans-serif;color:#6f7175}
.odr-pop__actions{display:flex;gap:14px;align-items:center}
.odr-pop__foot button{background:none;border:0;font:inherit;font-size:12.5px;color:#6f7175;text-decoration:underline;cursor:pointer;padding:0}
.odr-pop__foot .odr-pop__ok{background:#111316;color:#fff;text-decoration:none;border-radius:10px;padding:9px 18px;font-weight:700}
.odr-pop.is-haut{top:auto;bottom:calc(100% + 10px)}
.odr-pop.is-droite{left:auto;right:0}
.odr-bar,.odr-bar__grille,.odr-bar__champ,.odr-picker,.odr-reserver,.odr-form{overflow:visible}
.odr-indispo{display:flex;flex-direction:column;gap:4px;background:#fdf2ee;border:1px solid #f6d5cb;border-radius:14px;padding:14px 16px;margin:0;font-size:14px;color:#8f3520}
.odr-indispo strong{font:700 14.5px/1.3 Archivo,Helvetica,Arial,sans-serif}

/* ---- téléphone ---- */
@media(max-width:640px){
	.odr-bar{padding:14px;border-radius:16px}
	.odr-bar__grille{grid-template-columns:1fr;gap:14px}
	.odr-bar__champ--dates,.odr-bar__submit{grid-column:span 1}
	.odr-bar__submit{width:100%;justify-self:stretch;text-align:center}
	.odr-lieu,.odr-heure,.odr-datefield{box-sizing:border-box}
	.odr-lieu{width:100%;max-width:100%}
	.odr-picker{flex-direction:column;gap:12px}
	.odr-picker__paire{width:100%;min-width:0;height:auto;padding:12px 14px;display:grid;grid-template-columns:1fr auto;grid-template-areas:"lab lab" "date heure";gap:6px 12px;align-items:center}
	.odr-picker__lab{grid-area:lab}
	.odr-datefield{grid-area:date;min-width:0;padding:0}
	.odr-heure{grid-area:heure;align-self:center;border-left:1px solid #ececea;padding-left:12px;height:24px}
	.odr-pop{left:0;right:0}
	.odr-pop .odr-calbox{width:auto;max-width:100%;padding:14px 14px 4px}
	.odr-pop__foot{margin:0 14px 12px;flex-wrap:wrap;gap:10px}
}
.odr-req{color:#e8492b;font-weight:700}
