.otdc-ps{--red:#da3828;--red-dark:#ad2b21;--cream:#fff9f6;--text:#171717;--muted:#6c6c6c;--border:#e8e1da;max-width:1280px;margin:0 auto;color:var(--text);font-family:Arial,Helvetica,sans-serif;background:#fff}
.otdc-ps *{box-sizing:border-box}
.otdc-ps a{text-decoration:none}
.otdc-ps h1,.otdc-ps h2,.otdc-ps h3{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.02em;color:#121212;margin:0 0 12px}
.otdc-ps h1{font-size:64px;line-height:.95;font-weight:700;text-transform:uppercase}
.otdc-ps h2{font-size:52px;line-height:1.02}
.otdc-ps h3{font-size:30px;line-height:1.1}
.otdc-ps p{margin:0 0 12px;line-height:1.55}
.otdc-ps-hero{display:grid;grid-template-columns:1.05fr 1.2fr;gap:0;background:#111;color:#fff;overflow:hidden}
.otdc-ps-hero__content{padding:46px 44px 44px;display:flex;flex-direction:column;justify-content:center}
.otdc-ps-hero__content h1,.otdc-ps-hero__content h2,.otdc-ps-hero__content h3{color:#fff}
.otdc-ps-hero__image img{width:100%;height:100%;object-fit:cover;display:block;min-height:520px}
.otdc-ps-label{font-size:14px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:16px;color:#f4e8e2}
.otdc-ps-subtitle{font-size:22px;line-height:1.3;font-weight:700;color:#fff;margin:10px 0 14px}
.otdc-ps-divider{width:70px;height:4px;background:var(--red);margin:6px 0 18px}
.otdc-ps-date{font-size:36px;font-weight:700;line-height:1.1;margin:0 0 16px;color:#fff}
.otdc-ps-hero p{font-size:21px;color:#f1f1f1;max-width:590px}
.otdc-ps-top-actions{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.otdc-ps-top-action{display:flex;gap:18px;padding:28px 36px;background:#fff;color:inherit;border-right:1px solid var(--border)}
.otdc-ps-top-action:last-child{border-right:0}
.otdc-ps-top-action.is-active{box-shadow:inset 0 -4px 0 var(--red)}
.otdc-ps-top-action .icon{font-size:36px;line-height:1}
.otdc-ps-top-action strong{display:block;color:var(--red);font-size:19px;margin-bottom:6px}
.otdc-ps-top-action span{display:block;color:#555;line-height:1.4}
.otdc-ps-section{padding:40px 40px 0}
.otdc-ps-section__header{margin-bottom:22px}
.otdc-ps-section__header--split{display:flex;gap:30px;justify-content:space-between;align-items:flex-end}
.otdc-ps-section__header--split p{max-width:470px;color:#666;font-size:20px}
.otdc-ps-filters{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;padding:0 0 6px}
.otdc-ps-filter{display:flex;flex-direction:column;gap:8px}
.otdc-ps-filter label{font-size:15px;font-weight:700;color:#252525}
.otdc-ps-filter select{border:1px solid #dbdbdb;border-radius:4px;background:#fff;padding:15px 16px;font-size:16px;color:#222;min-height:52px}
.otdc-ps-filter--button{justify-content:flex-end}
.otdc-ps-btn{display:inline-block;background:var(--red);color:#fff;padding:16px 28px;border-radius:4px;font-weight:700;transition:.2s;background-image:none}
.otdc-ps-btn:hover{background:var(--red-dark);color:#fff}
.otdc-ps-btn--small{padding:14px 18px;font-size:15px}
.otdc-ps-grid{display:grid;gap:22px}
.otdc-ps-grid--3{grid-template-columns:repeat(3,1fr)}
.otdc-ps-grid--4{grid-template-columns:repeat(4,1fr)}
.otdc-ps-card{background:#fff;border:1px solid var(--border);overflow:hidden;display:flex;flex-direction:column}
.otdc-ps-card img{width:100%;height:220px;object-fit:cover;display:block;background:#eee}
.otdc-ps-card__body{padding:18px 18px 20px;position:relative;display:flex;flex-direction:column;flex:1}
.otdc-ps-card--venue h3{font-size:24px;margin-bottom:8px}
.otdc-ps-card__subtitle{font-weight:700;color:var(--red);font-size:18px;margin-bottom:10px}
.otdc-ps-card--venue p{color:#444;white-space:pre-line;padding-right:48px}
.otdc-ps-arrow{position:absolute;right:18px;bottom:18px;width:40px;height:40px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-size:24px}
.otdc-ps-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.otdc-ps-tags .tag{display:inline-block;background:#f0ebe4;color:#3a3a3a;font-size:13px;padding:6px 10px;border-radius:999px;font-weight:700}
.otdc-ps-tags .tag--lang{background:#cf3b28;color:#fff}
.otdc-ps-card__artist{font-size:15px;font-weight:700;color:#545454;margin-bottom:10px}
.otdc-ps-card--show p{font-size:15px;color:#525252;min-height:66px}
.otdc-ps-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:14px;color:#4f4f4f;margin:10px 0 18px}
.otdc-ps-outreach{display:grid;grid-template-columns:1.05fr 1fr;gap:0;align-items:stretch;padding:42px 40px 0}
.otdc-ps-outreach__image img{width:100%;height:100%;object-fit:cover;display:block;min-height:340px}
.otdc-ps-outreach__content{padding:28px 28px 28px 36px;background:#fff8f4;border:1px solid var(--border);display:flex;flex-direction:column;justify-content:center}
.otdc-ps-kicker{color:var(--red);font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px}
.otdc-ps-card--action img{height:205px}
.otdc-ps-link{color:var(--red);font-weight:700;margin-top:auto}
.otdc-ps-grid--resources{align-items:stretch}
.otdc-ps-resource{border-top:1px solid var(--border);padding:22px 18px 18px}
.otdc-ps-resource__icon{font-size:34px;margin-bottom:12px}
.otdc-ps-resource h3{font-size:27px;margin-bottom:8px}
.otdc-ps-resource p{font-size:15px;color:#555;min-height:70px}
.otdc-ps-footer{display:grid;grid-template-columns:180px 1fr auto;gap:24px;align-items:center;border-top:1px solid var(--border);padding:28px 40px 34px;margin-top:28px}
.otdc-ps-footer__brand{color:var(--red);font-family:Georgia,"Times New Roman",serif;font-weight:700;font-size:26px;line-height:.95}
.otdc-ps-footer__nav{display:flex;flex-wrap:wrap;gap:20px}
.otdc-ps-footer__nav a{color:#6a6a6a;font-size:14px}
.otdc-ps-footer__social{display:flex;gap:14px}
.otdc-ps-footer__social a{width:34px;height:34px;border:1px solid #222;border-radius:50%;display:grid;place-items:center;color:#000;font-weight:700}
@media (max-width: 1100px){.otdc-ps h1{font-size:52px}.otdc-ps h2{font-size:42px}.otdc-ps-grid--4{grid-template-columns:repeat(2,1fr)}.otdc-ps-filters{grid-template-columns:repeat(2,1fr)}.otdc-ps-filter--button{grid-column:span 2}.otdc-ps-hero,.otdc-ps-outreach{grid-template-columns:1fr}}
@media (max-width: 780px){.otdc-ps-section,.otdc-ps-outreach,.otdc-ps-footer{padding-left:20px;padding-right:20px}.otdc-ps-top-actions,.otdc-ps-grid--3,.otdc-ps-grid--4,.otdc-ps-filters,.otdc-ps-footer{grid-template-columns:1fr}.otdc-ps-top-action{border-right:0;border-bottom:1px solid var(--border)}.otdc-ps-top-action:last-child{border-bottom:0}.otdc-ps-section__header--split{flex-direction:column;align-items:flex-start}.otdc-ps h1{font-size:42px}.otdc-ps h2{font-size:34px}.otdc-ps-subtitle{font-size:19px}.otdc-ps-date{font-size:28px}.otdc-ps-hero__content{padding:28px 20px}.otdc-ps-hero__image img{min-height:260px}.otdc-ps-outreach__content{padding:22px 20px}.otdc-ps-card img{height:180px}.otdc-ps-resource{border:1px solid var(--border)}}

/* V1.3 festival visual refresh */
.otdc-ps{--text:#18212a;--border:#e4e7ea}
.otdc-ps h1,.otdc-ps h2,.otdc-ps h3{font-family:inherit;font-weight:850;letter-spacing:-.045em}
.otdc-ps-hero{background:#181e29}
.otdc-ps-top-action{transition:background .2s}
.otdc-ps-top-action:hover{background:#faf7f6}
.otdc-ps-card{border-radius:0;box-shadow:none;transition:transform .2s,box-shadow .2s}
.otdc-ps-card:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(0,0,0,.08)}
.otdc-ps-btn{border-radius:2px}
.otdc-ps-card--venue h3{font-size:25px}
.otdc-ps-outreach__content{background:#f8f6f4}

/* 1.4.0 – parcours scolaire allégé et réservation prioritaire */
.otdc-ps{max-width:1400px;--red:#d63b2d}
.otdc-ps-hero{grid-template-columns:1fr 1fr;min-height:350px}
.otdc-ps-hero__content{padding:36px 42px;align-items:flex-start}
.otdc-ps-hero h1{font-size:clamp(36px,4.2vw,57px);line-height:1.02;letter-spacing:-.04em;margin-bottom:10px}
.otdc-ps-hero__image img{min-height:350px;max-height:420px}
.otdc-ps-label{font-size:11px;margin-bottom:10px}
.otdc-ps-subtitle{font-size:20px;margin:4px 0 12px}
.otdc-ps-date{font-size:23px;margin-bottom:8px}
.otdc-ps-hero p{font-size:15px;line-height:1.45;margin-bottom:18px}
.otdc-ps-divider{margin:0 0 12px}
.otdc-ps-main-cta{font-size:16px;padding:16px 24px;box-shadow:0 5px 18px rgba(0,0,0,.15)}
.otdc-ps-top-actions{margin:0 40px;gap:12px;border:0;padding:22px 0 4px}
.otdc-ps-top-action{padding:18px 20px;border:1px solid #e9e4e2!important;background:#faf9f8;gap:12px}
.otdc-ps-top-action .icon{font-size:23px}
.otdc-ps-top-action strong{font-size:16px}
.otdc-ps-top-action span{font-size:13px}
.otdc-ps-section{padding-top:27px}
.otdc-ps h2{font-size:clamp(25px,2.7vw,35px);margin-bottom:18px}
.otdc-ps-grid--3{gap:16px}
.otdc-ps-card--venue img{height:170px}
.otdc-ps-card--venue h3{font-size:22px}
.otdc-ps-reservation-prompt{display:flex;align-items:center;justify-content:space-between;gap:22px;background:#f8f5f4;border-left:4px solid var(--red);padding:24px 26px;margin-top:24px}
.otdc-ps-reservation-prompt strong{font-size:19px}
.otdc-ps-reservation-prompt p{font-size:14px;margin:5px 0 0;color:#5b5555}
.otdc-ps-reservation-prompt .otdc-ps-btn{white-space:nowrap}
@media(max-width:900px){.otdc-ps-hero{grid-template-columns:1fr}.otdc-ps-hero__image img{max-height:330px;min-height:220px}.otdc-ps-top-actions{margin:0 20px}}
@media(max-width:600px){.otdc-ps-hero__content{padding:28px 22px}.otdc-ps-top-actions{grid-template-columns:1fr}.otdc-ps-reservation-prompt{flex-direction:column;align-items:flex-start}.otdc-ps-main-cta{width:100%;text-align:center}}

/* 1.5.0 – compact hero and integrated Source Plurielle school booking */
.otdc-ps{max-width:1320px}
.otdc-ps-hero{grid-template-columns:55% 45%;min-height:0;background:#4e3451}
.otdc-ps-hero__content{padding:25px 36px 28px;justify-content:center}
.otdc-ps-hero h1{font-size:clamp(30px,3vw,43px);line-height:1.03;margin:5px 0 9px}
.otdc-ps-label{font-size:10px;margin:0 0 5px}
.otdc-ps-subtitle{font-size:17px;margin:2px 0 8px}
.otdc-ps-divider{width:40px;margin:3px 0 9px}
.otdc-ps-date{font-size:18px;margin-bottom:6px}
.otdc-ps-hero p{font-size:13px;line-height:1.4;margin:0 0 13px;max-width:440px}
.otdc-ps-hero__image,.otdc-ps-hero__image img{height:330px;min-height:0;max-height:330px}
.otdc-ps-hero__image img{object-fit:cover;width:100%}
.otdc-ps-main-cta{display:inline-flex!important;align-items:center;justify-content:center;width:auto!important;min-width:0!important;align-self:flex-start;padding:11px 17px;font-size:13px;box-shadow:none}
.otdc-ps-top-actions{padding-top:12px;margin:0 30px;gap:10px}
.otdc-ps-top-action{padding:12px 16px;background:#fff}
.otdc-ps-top-action .icon{font-size:19px}
.otdc-ps-top-action strong{font-size:14px}
.otdc-ps-section{padding-top:23px}
.otdc-ps-embedded-booking{scroll-margin-top:105px;padding-bottom:35px}
.otdc-ps-booking-heading{border-top:2px solid #e9e1e6;padding-top:24px;margin-bottom:18px}
.otdc-ps-booking-heading h2{margin:5px 0 8px}
.otdc-ps-booking-heading p{font-size:15px;color:#5d5860;margin:0}
.otdc-ps-booking-eyebrow{color:#8a597c;font-size:11px;font-weight:800;letter-spacing:.12em}
.otdc-ps-booking-fallback{font-size:13px;color:#555;margin:12px 0}.otdc-ps-booking-fallback a{color:#9b3244;text-decoration:underline}
@media(max-width:900px){.otdc-ps-hero{grid-template-columns:1fr}.otdc-ps-hero__image,.otdc-ps-hero__image img{height:220px;max-height:220px}.otdc-ps-hero__content{padding:24px}.otdc-ps-top-actions{margin:0 16px}}
@media(max-width:600px){.otdc-ps-main-cta{width:auto!important}.otdc-ps-hero h1{font-size:34px}.otdc-ps-hero__image,.otdc-ps-hero__image img{height:185px;max-height:185px}}

/* v1.6.0 — parcours enseignant simplifié */
.otdc-ps-top-actions{padding-bottom:6px}
.otdc-ps-top-action{min-height:76px}
.otdc-ps-section{scroll-margin-top:105px}
.otdc-ps-embedded-booking iframe{width:100%;max-height:none!important;overflow:hidden;border-radius:8px}
.otdc-ps-reservation-prompt{display:none!important}
.otdc-ps-grid--resources:empty{display:none}
.otdc-ps-outreach-page .otdc-ps-outreach{margin-bottom:0}
@media(max-width:780px){.otdc-ps-embedded-booking iframe{min-height:650px}}

/* v1.7.0 — example session, clearly separated from live programming */
.otdc-ps-demo{grid-column:1/-1;border:1px solid #e5dfe5;background:#fff;padding:22px 24px;max-width:100%;box-sizing:border-box}
.otdc-ps-demo__top{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center}
.otdc-ps-demo__eyebrow{font-size:11px;font-weight:800;letter-spacing:.07em;color:#6b4267}
.otdc-ps-demo__status{font-size:11px;background:#f4edf3;color:#583651;padding:6px 9px;font-weight:700}
.otdc-ps-demo h3{font-size:22px;margin:12px 0 8px;color:#1b1b20}
.otdc-ps-demo p{font-size:14px;line-height:1.55;color:#4c4850;margin:0 0 14px}
.otdc-ps-demo__facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;padding:16px 0;margin:8px 0 14px;border-top:1px solid #eae6e9;border-bottom:1px solid #eae6e9}
.otdc-ps-demo__facts span{font-size:13px;color:#25212a}
.otdc-ps-demo__facts b{display:block;font-size:11px;color:#766d77;margin-bottom:3px}
.otdc-ps-demo .otdc-ps-demo__note{font-size:12px;color:#766d77}
.otdc-ps-demo__link{display:inline-block;color:#c73529;font-size:13px;font-weight:700;text-decoration:none}
@media(max-width:600px){.otdc-ps-demo{padding:16px}.otdc-ps-demo__facts{grid-template-columns:1fr}}

/* v1.8.0 : informations de visite et suite de réservation */
.otdc-ps-after-booking[hidden]{display:none!important}
.otdc-ps-after-booking{margin:20px 0 12px;padding:24px;background:#f7f2f5;border-left:4px solid #d83d2e}
.otdc-ps-after-booking__kicker{font-size:11px;font-weight:700;letter-spacing:.09em;color:#8b465f}
.otdc-ps-after-booking h3{font-size:23px;margin:8px 0}.otdc-ps-after-booking p{margin:0 0 15px;max-width:680px}
.otdc-ps-visit__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:18px}
.otdc-ps-visit__grid article{border-top:2px solid #ded7df;padding-top:14px}.otdc-ps-visit__grid h3{font-size:17px;margin:0 0 7px}.otdc-ps-visit__grid p{font-size:14px;line-height:1.55;margin:0}.otdc-ps-visit__extra{margin:14px 0 0}
@media(max-width:700px){.otdc-ps-visit__grid{grid-template-columns:1fr;gap:16px}}

/* v2.0 : parcours d'inscription sans choix d'artiste ou de lieu */
.otdc-ps-v2-intro,.otdc-ps-v2-process{max-width:1180px;margin-left:auto;margin-right:auto}
.otdc-ps-v2-intro>p{max-width:780px;line-height:1.7}
.otdc-ps-v2-heading h2{margin-top:7px}
.otdc-ps-v2-note{background:#f7f2f5;border-left:3px solid #713b64;padding:16px 19px;line-height:1.6;margin:20px 0;color:#342b35}
.otdc-ps-v2-levels{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}
.otdc-ps-v2-levels span{background:#f4f1f3;border:1px solid #e9e0e6;padding:8px 13px;font-size:13px;color:#4d364b}
.otdc-ps-v2-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:25px 0}
.otdc-ps-v2-steps article{padding:21px 17px;border:1px solid #e9e3e7;background:#fff}
.otdc-ps-v2-number{color:#a16e85;font-weight:700;font-size:13px;letter-spacing:.1em}
.otdc-ps-v2-steps h3{font-size:17px;line-height:1.35;margin:11px 0 8px;color:#342539}
.otdc-ps-v2-steps p{font-size:14px;line-height:1.6;margin:0;color:#615963}
.otdc-ps-v2-important{font-size:14px;line-height:1.6;margin:10px 0 19px}
@media(max-width:900px){.otdc-ps-v2-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.otdc-ps-v2-steps{grid-template-columns:1fr}.otdc-ps-v2-steps article{padding:16px}}

/* v2.1 — page scolaire éditoriale et épurée */
.otdc-ps .otdc-ps-v21-intro{max-width:1120px;margin:0 auto;padding:32px 28px 23px;display:grid;grid-template-columns:1.15fr .85fr;gap:30px;align-items:center}
.otdc-ps-v21-intro h2{font-size:clamp(23px,2.6vw,31px);line-height:1.17;letter-spacing:-.025em;margin:7px 0 11px}
.otdc-ps-v21-intro p{font-size:15px;line-height:1.55;margin:0 0 9px;color:#312c33}
.otdc-ps-v21-intro .otdc-ps-v21-detail{font-size:13px;color:#726a72;margin:0}
.otdc-ps-v21-devis{display:flex;gap:13px;align-items:flex-start;background:#f7f3f6;border-left:3px solid #754164;padding:20px 21px}
.otdc-ps-v21-devis__icon{font-size:25px;line-height:1;color:#754164}
.otdc-ps-v21-devis h3{font-size:17px;line-height:1.3;margin:0 0 7px;color:#33253a}
.otdc-ps-v21-devis p{font-size:13px;line-height:1.55;margin:0;color:#514b52}
.otdc-ps .otdc-ps-embedded-booking{max-width:1120px;margin:0 auto;padding:8px 28px 25px}
.otdc-ps .otdc-ps-booking-heading{border-top:1px solid #e9e2e8;padding-top:22px;margin-bottom:13px}
.otdc-ps .otdc-ps-booking-heading h2{font-size:clamp(24px,2.5vw,30px);margin:5px 0 6px}
.otdc-ps .otdc-ps-booking-heading p{font-size:14px;line-height:1.5;max-width:690px}
.otdc-ps .otdc-ps-visit{max-width:1120px;margin:0 auto;padding:22px 28px}
.otdc-ps .otdc-ps-visit h2{font-size:clamp(22px,2.4vw,28px)}
.otdc-ps .otdc-ps-visit__grid{gap:18px}
.otdc-ps .otdc-ps-visit__grid h3{font-size:15px}
.otdc-ps .otdc-ps-visit__grid p{font-size:13px}
.otdc-ps .otdc-ps-v21-outreach{max-width:1120px;margin:0 auto 26px;padding:24px 28px;display:flex;justify-content:space-between;align-items:center;gap:24px;border-top:1px solid #e9e2e8}
.otdc-ps-v21-outreach h2{font-size:clamp(20px,2.2vw,25px);margin:6px 0 5px}
.otdc-ps-v21-outreach p{font-size:14px;line-height:1.5;margin:0;color:#655b65}
.otdc-ps-v21-outreach__link{font-size:13px;font-weight:700;color:#a52d34;text-decoration:none;white-space:nowrap}
.otdc-ps-v21-outreach__link:hover{text-decoration:underline}
@media(max-width:760px){.otdc-ps .otdc-ps-v21-intro{grid-template-columns:1fr;gap:17px;padding:24px 17px}.otdc-ps .otdc-ps-embedded-booking,.otdc-ps .otdc-ps-visit{padding-left:17px;padding-right:17px}.otdc-ps .otdc-ps-v21-outreach{padding:21px 17px;align-items:flex-start;flex-direction:column;gap:12px}.otdc-ps-v21-outreach__link{white-space:normal}}
