:root{--red:#e62b1e;--ink:#101010;--muted:#696969;--paper:#fff;--soft:#f4f4f2;--line:#deded9;--dark:#0b0b0b;--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);line-height:1.55;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}a{color:inherit}.wrap{width:min(calc(100% - 48px),var(--max));margin-inline:auto}.skip{position:absolute;left:-9999px}.skip:focus{left:10px;top:10px;background:#fff;padding:10px;z-index:99}
.site-header{position:sticky;top:0;z-index:20;background:rgba(11,11,11,.96);border-bottom:1px solid #282828;color:#fff;backdrop-filter:blur(12px)}.nav{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{text-decoration:none;font-size:28px;font-weight:900;letter-spacing:-1.6px;line-height:1}.brand span{color:var(--red)}nav{display:flex;gap:28px}nav a{text-decoration:none;font-weight:700;font-size:14px;letter-spacing:.01em}nav a:hover{color:var(--red)}
.hero{background:var(--dark);color:#fff;position:relative;overflow:hidden}.hero:after{content:"x";position:absolute;right:-.06em;bottom:-.46em;font-size:min(72vw,850px);font-weight:900;color:#121212;line-height:1;pointer-events:none}.hero-inner{position:relative;z-index:1;padding:clamp(86px,12vw,160px) 0}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:12px;font-weight:900;color:var(--red);margin:0 0 14px}.hero h1,.page-hero h1,.speaker-hero h1{font-size:clamp(48px,7.7vw,96px);line-height:.94;letter-spacing:-.055em;margin:.08em 0}.hero h1 span{color:var(--red)}.lead{font-size:clamp(18px,2vw,23px);color:#d0d0d0;max-width:760px;margin:26px 0 30px}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--red);color:#fff;text-decoration:none;padding:14px 20px;font-weight:900;border-radius:2px;border:0}.button:hover{filter:brightness(.93)}.button.secondary{background:#222}
.section{padding:clamp(58px,7vw,90px) 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:34px}.section-head h2{font-size:clamp(34px,4vw,48px);line-height:1;margin:0;letter-spacing:-.035em}.section-head>a,.text-link{font-weight:800;text-decoration-color:var(--red);text-underline-offset:5px}
.speaker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.speaker-card{background:#fff}.speaker-card a{text-decoration:none;display:block}.portrait{aspect-ratio:1/1;background:var(--soft);overflow:hidden}.portrait img,.program-photo img,.speaker-portrait img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.speaker-card:hover img,.program-photo:hover img{transform:scale(1.025)}.card-body{padding:17px 2px}.card-body h3{font-size:22px;line-height:1.05;margin:0 0 7px;letter-spacing:-.02em}.card-body p{color:var(--muted);margin:0 0 10px;font-size:14px}.card-body strong{font-size:14px;line-height:1.3;display:block}
.page-hero{background:var(--dark);color:#fff;padding:clamp(70px,9vw,115px) 0}.page-hero h1{max-width:1000px}.edition-list{border-top:1px solid var(--line)}.edition-row{display:grid;grid-template-columns:130px 1fr auto;align-items:center;gap:28px;padding:28px 6px;text-decoration:none;border-bottom:1px solid var(--line);transition:background .2s,padding .2s}.edition-row:hover{background:var(--soft);padding-left:14px;padding-right:14px}.edition-row .year{font-size:32px;font-weight:900;color:var(--red)}.edition-row strong{font-size:24px;line-height:1.1;display:block}.edition-row small{display:block;color:var(--muted);margin-top:4px}.edition-row>span:last-child{font-size:27px}
.program-grid{display:grid;gap:0}.program-item{display:grid;grid-template-columns:minmax(240px,340px) 1fr;gap:48px;align-items:center;padding:44px 0;border-bottom:1px solid var(--line)}.program-item:first-child{padding-top:0}.program-photo{aspect-ratio:1/1;background:var(--soft);overflow:hidden}.program-item h2{font-size:clamp(32px,4vw,46px);line-height:1;margin:0;letter-spacing:-.035em}.program-item h2 a{text-decoration:none}.program-item h3{font-size:clamp(21px,2.5vw,28px);line-height:1.15;margin:20px 0}.role,.speaker-role{font-size:19px;color:var(--muted)}
.speaker-hero{padding:clamp(60px,8vw,100px) 0;background:var(--dark);color:#fff}.speaker-hero-grid{display:grid;grid-template-columns:minmax(260px,390px) 1fr;align-items:center;gap:clamp(38px,6vw,75px)}.speaker-portrait{aspect-ratio:1/1;background:#222;overflow:hidden}.speaker-role{color:#c8c8c8;font-size:clamp(18px,2vw,23px);max-width:700px}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,520px);gap:clamp(45px,7vw,85px)}.prose{font-size:18px;max-width:760px}.prose h2{font-size:36px;line-height:1.05;letter-spacing:-.03em}.prose p{margin:0 0 1.15em}.talk-panel{background:var(--soft);padding:clamp(24px,3vw,34px);margin-bottom:24px}.talk-panel h2{font-size:32px;line-height:1.12;letter-spacing:-.025em}.video-placeholder,.video-frame{width:100%;aspect-ratio:16/9;border:0}.video-placeholder{display:grid;place-items:center;background:#222 center/cover no-repeat;cursor:pointer;margin:22px 0}.video-placeholder span{display:grid;place-items:center;width:66px;height:66px;border-radius:50%;background:var(--red);color:#fff;font-size:27px;padding-left:4px}
.site-footer{background:var(--dark);color:#bbb;padding:48px 0 25px;margin-top:0}.footer-grid{display:flex;justify-content:space-between;gap:40px}.footer-brand{color:#fff}.footer-grid p{margin:10px 0 0}.footer-links{display:grid;grid-template-columns:repeat(2,auto);gap:8px 28px}.footer-links a{color:#ddd;text-decoration:none}.footer-links a:hover{color:#fff}.tedx-note{border-top:1px solid #292929;margin-top:35px;padding-top:20px;font-size:12px;color:#777}.imported-content [class*="h-"]{max-width:100%!important}.imported-content img{height:auto!important}
@media(max-width:850px){nav{gap:15px}nav a:nth-child(2),nav a:nth-child(3){display:none}.speaker-grid{grid-template-columns:repeat(2,1fr)}.program-item,.speaker-hero-grid,.content-grid{grid-template-columns:1fr}.speaker-portrait{max-width:430px}.edition-row{grid-template-columns:85px 1fr auto}.footer-grid{display:block}.footer-links{margin-top:28px;grid-template-columns:1fr 1fr}}
@media(max-width:520px){.wrap{width:min(calc(100% - 30px),var(--max))}.nav{min-height:66px}.brand{font-size:25px}.speaker-grid{grid-template-columns:1fr 1fr;gap:12px}.card-body{padding:11px 1px}.card-body h3{font-size:18px}.card-body p,.card-body strong{font-size:12px}.program-item{gap:24px;padding:34px 0}.section{padding:52px 0}.page-hero{padding:62px 0}.edition-row{grid-template-columns:70px 1fr auto;gap:12px}.edition-row .year{font-size:25px}.edition-row strong{font-size:19px}}


/* Prochaine édition */
.event-hero{background:var(--dark);color:#fff;overflow:hidden}.event-hero-grid{min-height:590px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:64px;align-items:center;padding:clamp(70px,8vw,110px) 0}.event-copy h1{font-size:clamp(58px,8.5vw,112px);line-height:.88;letter-spacing:-.065em;margin:.08em 0 .2em}.event-copy h1 span{color:var(--red)}.event-theme{font-size:clamp(25px,3.3vw,43px);font-weight:800;line-height:1.08;margin:0 0 38px;max-width:800px}.event-meta{display:grid;grid-template-columns:minmax(180px,.65fr) minmax(260px,1fr);gap:22px;margin:0 0 32px}.event-meta>div{border-top:1px solid #333;padding-top:14px}.event-meta small{display:block;color:#999;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:800;margin-bottom:5px}.event-meta strong{display:block;font-size:19px}.event-meta span{display:block;color:#bbb;font-size:14px;margin-top:3px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.button.ghost{background:transparent;border:1px solid #777}.button.ghost:hover{border-color:#fff}.event-visual{aspect-ratio:1/1;background:#171717;overflow:hidden}.event-visual img{width:100%;height:100%;object-fit:cover}.event-mark{aspect-ratio:1/1;border:1px solid #292929;display:flex;flex-direction:column;justify-content:center;padding:12%;background:linear-gradient(145deg,#111,#080808)}.event-mark span{font-size:clamp(45px,6vw,82px);font-weight:900;color:var(--red);letter-spacing:-.06em;line-height:.8}.event-mark strong{font-size:clamp(90px,11vw,155px);letter-spacing:-.08em;line-height:.9}

.quick-info{background:#fff;border-bottom:1px solid var(--line)}.quick-info-grid{display:grid;grid-template-columns:repeat(3,1fr)}.quick-info-grid>div{padding:27px 28px 28px 0;border-right:1px solid var(--line)}.quick-info-grid>div+div{padding-left:28px}.quick-info-grid>div:last-child{border-right:0}.quick-info .eyebrow{display:block;margin-bottom:7px}.quick-info strong{font-size:20px;display:block}.quick-info small{display:block;color:var(--muted);margin-top:3px}

.speakers-home{background:#fff}.intro-grid{display:grid;grid-template-columns:220px minmax(0,760px);gap:60px;align-items:start}.intro-grid h2{font-size:clamp(38px,5vw,62px);line-height:.98;letter-spacing:-.045em;margin:0 0 22px}.intro-grid>div>p{font-size:20px;color:#444}.event-intro{background:var(--soft)}

.ticket-cta{background:var(--red);color:#fff;padding:54px 0}.ticket-cta .eyebrow{color:#fff;opacity:.75}.ticket-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.ticket-cta h2{font-size:clamp(35px,4.5vw,56px);letter-spacing:-.04em;line-height:1;margin:0 0 8px}.ticket-cta p{margin:0}.ticket-cta .button{background:#fff;color:#111}

.previous-home{background:var(--soft)}.past-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.past-card{background:#fff;border:1px solid var(--line);padding:24px;text-decoration:none;min-height:165px;display:grid;grid-template-rows:auto 1fr auto}.past-card strong{font-size:34px;color:var(--red)}.past-card span{font-size:20px;font-weight:800;line-height:1.1;margin-top:10px}.past-card b{justify-self:end;font-size:24px}.past-card:hover{border-color:#bbb}

.program-meta{display:flex;gap:18px;flex-wrap:wrap;margin-top:24px;color:#ccc;font-size:18px}.program-meta strong{color:#fff}.program-ticket{margin-top:55px;padding:34px;background:var(--soft);display:flex;justify-content:space-between;align-items:center;gap:25px}.program-ticket h2{margin:0;font-size:30px}

.ticket-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.7fr);gap:60px;align-items:start}.ticket-details h2{font-size:42px;letter-spacing:-.035em}.ticket-details p{font-size:18px;padding:14px 0;border-bottom:1px solid var(--line)}.ticket-box{background:var(--soft);padding:34px}.ticket-box h2{font-size:34px;line-height:1.05}.ticket-main{width:100%;margin-top:15px}.muted-note{font-size:13px;color:var(--muted)}

@media(max-width:850px){.event-hero-grid{grid-template-columns:1fr;min-height:auto;gap:35px}.event-visual,.event-mark{max-width:520px}.quick-info-grid{grid-template-columns:1fr}.quick-info-grid>div,.quick-info-grid>div+div{padding:20px 0;border-right:0;border-bottom:1px solid var(--line)}.quick-info-grid>div:last-child{border-bottom:0}.intro-grid,.ticket-page{grid-template-columns:1fr;gap:25px}.ticket-cta-inner{align-items:flex-start;flex-direction:column}.past-grid{grid-template-columns:1fr}.program-ticket{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.event-hero-grid{padding:58px 0}.event-copy h1{font-size:58px}.event-meta{grid-template-columns:1fr}.event-mark{max-width:none}.hero-actions .button{width:100%}}

/* Équipe */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px 22px}.team-card{min-width:0}.team-photo{aspect-ratio:1/1;background:var(--soft);overflow:hidden;margin-bottom:16px}.team-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.team-card:hover .team-photo img{transform:scale(1.02)}.team-card h2{font-size:23px;line-height:1.05;letter-spacing:-.025em;margin:0 0 6px}.team-card p{margin:0;color:var(--muted);font-size:15px}
@media(max-width:900px){.team-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.team-grid{grid-template-columns:repeat(2,1fr);gap:20px 12px}.team-card h2{font-size:19px}.team-card p{font-size:13px}}


/* Équipe — front V2 */
.team-intro{
  background:#fff;
  border-bottom:1px solid var(--line);
}
.team-intro-inner{
  padding:clamp(64px,8vw,105px) 0 clamp(52px,7vw,82px);
  text-align:center;
}
.team-intro h1{
  margin:0;
  font-size:clamp(48px,6.5vw,78px);
  line-height:.98;
  font-weight:300;
  letter-spacing:-.045em;
  color:#20282b;
}
.team-intro-copy{
  max-width:980px;
  margin:44px auto 0;
  text-align:left;
  font-size:18px;
  line-height:1.65;
  color:#333;
}
.team-intro-copy p{
  margin:0 0 16px;
}
.team-section{
  background:#f7f7f5;
}
.team-head{
  margin-bottom:34px;
}
.team-head h2{
  max-width:760px;
}
.team-grid-cards{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:28px;
}
.team-grid-cards .team-card{
  background:#fff;
  border:1px solid #e4e4df;
  box-shadow:0 2px 8px rgba(0,0,0,.035);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  overflow:hidden;
}
.team-grid-cards .team-card:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 24px rgba(0,0,0,.075);
  border-color:#d7d7d1;
}
.team-grid-cards .team-photo{
  aspect-ratio:1/1;
  margin:0;
  background:#fff;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:14px 14px 0;
  overflow:hidden;
  border-bottom:1px solid #ededE8;
}
.team-grid-cards .team-photo img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center bottom;
  display:block;
  transition:none;
}
.team-grid-cards .team-card:hover .team-photo img{
  transform:none;
}
.team-card-body{
  padding:20px 18px 22px;
  text-align:center;
}
.team-card-body h3{
  margin:0 0 7px;
  font-size:22px;
  line-height:1.08;
  letter-spacing:-.02em;
}
.team-card-body p{
  margin:0;
  color:#4f4f4f;
  font-size:16px;
  line-height:1.3;
}
@media(max-width:980px){
  .team-grid-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:700px){
  .team-intro-copy{font-size:16px}
  .team-grid-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .team-grid-cards .team-photo{padding:8px 8px 0}
  .team-card-body{padding:14px 10px 16px}
  .team-card-body h3{font-size:18px}
  .team-card-body p{font-size:13px}
}


/* Équipe — alignée sur le reste du site */
.team-page-hero{padding:clamp(60px,7vw,88px) 0}
.team-page-hero h1{font-size:clamp(54px,7vw,88px)}
.team-story{background:#fff;border-bottom:1px solid var(--line);padding:clamp(52px,6vw,76px) 0}
.team-story-grid{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(0,1.25fr);gap:clamp(40px,7vw,90px);align-items:start}
.team-story h2{font-size:clamp(34px,4vw,50px);line-height:1;letter-spacing:-.04em;margin:0}
.team-section{background:var(--soft)}
.team-grid-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.team-grid-cards .team-card{background:#fff;border:1px solid var(--line);overflow:hidden}
.team-grid-cards .team-photo{margin:0;padding:12px 12px 0;background:#fff;border-bottom:1px solid #eee}
.team-grid-cards .team-photo img{object-fit:contain;object-position:center bottom;transform:none!important}
.team-card-body{text-align:center;padding:18px 14px 20px}
.team-card-body h3{font-size:21px;line-height:1.08;margin:0 0 6px}
.team-card-body p{font-size:14px;color:var(--muted);margin:0}
@media(max-width:900px){.team-story-grid{grid-template-columns:1fr}.team-grid-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.team-grid-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.team-card-body h3{font-size:18px}.team-card-body p{font-size:12px}}

/* Partenaires */
.partners-hero{padding:clamp(66px,8vw,100px) 0}
.partners-page{background:#fff}
.partner-category{padding:18px 0 56px;border-bottom:1px solid var(--line)}
.partner-category:last-child{border-bottom:0}
.partner-category-head{margin-bottom:22px}
.partner-logo-grid{display:grid;align-items:stretch}
.partner-logo-card{background:#fff;border:1px solid #e4e4df;display:flex;align-items:center;justify-content:center;text-decoration:none;padding:22px;min-height:150px;transition:border-color .2s,box-shadow .2s,transform .2s}
a.partner-logo-card:hover{border-color:#c8c8c2;box-shadow:0 8px 24px rgba(0,0,0,.06);transform:translateY(-2px)}
.partner-logo-card img{display:block;width:100%;height:100%;max-width:100%;object-fit:contain}
.partners-official .partner-logo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.partners-official .partner-logo-card{min-height:250px;padding:34px}
.partners-official .partner-logo-card img{max-height:160px}
.partners-gold .partner-logo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.partners-gold .partner-logo-card{min-height:205px;padding:28px}
.partners-gold .partner-logo-card img{max-height:125px}
.partners-silver .partner-logo-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.partners-silver .partner-logo-card{min-height:170px}
.partners-silver .partner-logo-card img{max-height:95px}
.partners-bronze .partner-logo-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.partners-bronze .partner-logo-card{min-height:135px;padding:18px}
.partners-bronze .partner-logo-card img{max-height:72px}
.partner-cta{background:var(--dark);color:#fff;padding:clamp(64px,8vw,100px) 0}
.partner-cta-grid{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(0,1.15fr);gap:clamp(45px,7vw,90px);align-items:start}
.partner-cta h2{font-size:clamp(40px,5vw,62px);line-height:.98;letter-spacing:-.045em;margin:0}
.partner-cta-grid>div:last-child{font-size:18px;color:#d0d0d0}
.partner-cta .button{margin-top:16px}
.partners-empty{padding:30px 0;color:var(--muted)}
@media(max-width:900px){
  .partners-official .partner-logo-grid,.partners-gold .partner-logo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .partners-silver .partner-logo-grid,.partners-bronze .partner-logo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .partner-cta-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .partners-official .partner-logo-grid,.partners-gold .partner-logo-grid,.partners-silver .partner-logo-grid,.partners-bronze .partner-logo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .partners-official .partner-logo-card{min-height:170px;padding:20px}
  .partners-gold .partner-logo-card{min-height:150px}
  .partners-silver .partner-logo-card{min-height:130px}
  .partners-bronze .partner-logo-card{min-height:110px}
}

/* Signature TEDxBelfort dans les en-têtes de page */
.brand-eyebrow{
  display:flex;
  align-items:baseline;
  margin:0 0 20px;
  padding:0;
  font-size:15px;
  line-height:1;
  font-weight:800;
  letter-spacing:-.025em;
  text-transform:none;
}
.brand-eyebrow .brand-tedx{color:var(--red,#eb2b20)}
.brand-eyebrow .brand-city{color:#fff}

/* Signature TEDxBelfort — couleurs et graisse forcées */
.brand-eyebrow,
.brand-eyebrow .brand-tedx,
.brand-eyebrow .brand-city{
  font-weight:800 !important;
}
.brand-eyebrow .brand-tedx{
  color:#eb2b20 !important;
}
.brand-eyebrow .brand-city{
  color:#ffffff !important;
}


/* TED / TEDx — refonte complète */
.tedx-hero{padding:clamp(70px,9vw,118px) 0}
.tedx-hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:70px;align-items:end}
.tedx-hero h1{font-size:clamp(64px,9vw,118px);line-height:.86;letter-spacing:-.065em;margin:0}
.tedx-hero-copy{padding-bottom:8px}
.tedx-hero-copy p{font-size:clamp(20px,2.1vw,27px);line-height:1.35;color:#d0d0d0;max-width:520px}
.light-link{color:#fff;text-decoration-color:var(--red)}
.tedx-intro-grid,.tedxbelfort-local-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:clamp(45px,7vw,95px)}
.tedx-intro h2,.tedxbelfort-local h2{font-size:clamp(42px,5vw,66px);line-height:.96;letter-spacing:-.05em;margin:0}
.tedx-prose{font-size:19px}
.tedx-x-section{background:var(--dark);color:#fff;overflow:hidden}
.tedx-x-grid{display:grid;grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr);gap:clamp(35px,7vw,95px);align-items:center;padding:clamp(62px,8vw,105px) 0}
.giant-x{font-size:clamp(240px,31vw,470px);line-height:.65;font-weight:900;color:var(--red);letter-spacing:-.14em;transform:translateX(-.07em)}
.tedx-x-copy h2{font-size:clamp(46px,6vw,76px);line-height:.95;letter-spacing:-.05em;margin:0 0 28px}
.tedx-x-copy p{font-size:19px;line-height:1.65;color:#d5d5d5;max-width:760px}
.ted-compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.ted-compare-card{padding:clamp(28px,4vw,48px);border:1px solid var(--line);min-height:310px}
.ted-compare-card h3{font-size:30px;line-height:1.05;letter-spacing:-.03em;margin:28px 0 16px}
.ted-compare-card p{font-size:17px;color:#555}
.compare-mark{font-size:38px;font-weight:900;letter-spacing:-.06em}
.tedx-card{background:#111;color:#fff;border-color:#222}.tedx-card .compare-mark span{color:var(--red)}.tedx-card p{color:#bbb}
.tedx-principles{background:var(--soft)}
.principles-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #d8d8d3;border-left:1px solid #d8d8d3}
.principle{padding:30px 24px;border-right:1px solid #d8d8d3;border-bottom:1px solid #d8d8d3;min-height:230px;background:#fff}
.principle>strong{color:var(--red);font-size:13px;letter-spacing:.12em}
.principle h3{font-size:27px;margin:45px 0 10px}.principle p{color:#666;margin:0}
.tedx-video-section{background:#111;color:#fff;padding:clamp(64px,8vw,104px) 0}
.tedx-video-grid{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);gap:clamp(45px,7vw,90px);align-items:center}
.tedx-video-grid h2{font-size:clamp(42px,5vw,66px);line-height:.96;letter-spacing:-.05em;margin:0 0 20px}
.tedx-video-grid p{color:#bbb;font-size:18px}
.tedx-video{aspect-ratio:16/9;background:#000}.tedx-video iframe{width:100%;height:100%;border:0;display:block}
.tedxbelfort-local{background:#fff}.brand-eyebrow-on-white .brand-city{color:#111!important}
.tedx-local-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.tedx-disclaimer{background:#f0f0ed;border-top:1px solid var(--line);padding:24px 0}.tedx-disclaimer p{margin:0;font-size:13px;color:#666}
@media(max-width:900px){
  .tedx-hero-grid,.tedx-intro-grid,.tedx-x-grid,.tedx-video-grid,.tedxbelfort-local-grid{grid-template-columns:1fr}
  .giant-x{font-size:250px}
  .principles-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:620px){
  .ted-compare-grid{grid-template-columns:1fr}
  .principles-grid{grid-template-columns:1fr}
  .tedx-hero h1{font-size:62px}
  .giant-x{font-size:210px}
}


/* Galerie */
.gallery-hero{padding:clamp(68px,8vw,104px) 0}
.gallery-photos{background:#fff}
.gallery-feature-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:clamp(45px,7vw,90px);align-items:center}
.gallery-photo-mark{aspect-ratio:4/3;background:#111;display:grid;place-items:center;overflow:hidden;position:relative}
.gallery-photo-mark:before,.gallery-photo-mark:after{content:"";position:absolute;width:170px;height:170px;border:2px solid #333}
.gallery-photo-mark:before{transform:translate(-35px,-20px) rotate(-7deg)}
.gallery-photo-mark:after{transform:translate(45px,25px) rotate(8deg)}
.gallery-photo-mark span{position:relative;z-index:1;font-size:clamp(48px,7vw,86px);font-weight:900;letter-spacing:-.06em;color:#fff}
.gallery-feature-copy h2{font-size:clamp(40px,5vw,62px);line-height:.98;letter-spacing:-.045em;margin:0 0 22px}
.gallery-feature-copy p{font-size:18px;color:#555;max-width:700px}
.gallery-feature-copy .button{margin-top:14px}
.gallery-movies{background:var(--soft)}
.aftermovie-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.aftermovie-card{background:#fff;border:1px solid var(--line);overflow:hidden}
.aftermovie-card.featured-aftermovie{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr)}
.aftermovie-video{aspect-ratio:16/9;background:#000}
.aftermovie-video video,.aftermovie-video iframe{display:block;width:100%;height:100%;border:0;object-fit:cover}
.featured-aftermovie .aftermovie-video{aspect-ratio:auto;min-height:360px}
.aftermovie-body{padding:24px}
.aftermovie-body .eyebrow{margin-bottom:9px}
.aftermovie-body h3{font-size:30px;line-height:1.05;letter-spacing:-.03em;margin:0 0 12px}
.aftermovie-body p:last-child{color:#666;margin-bottom:0}
.gallery-footer-cta{background:var(--dark);color:#fff;padding:clamp(60px,7vw,88px) 0}
.gallery-footer-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:clamp(45px,7vw,90px);align-items:start}
.gallery-footer-grid h2{font-size:clamp(40px,5vw,60px);line-height:.98;letter-spacing:-.045em;margin:0}
.gallery-footer-grid>div:last-child{font-size:18px;color:#c9c9c9}
.gallery-footer-grid .button{margin-top:12px}
@media(max-width:850px){
  .gallery-feature-grid,.gallery-footer-grid{grid-template-columns:1fr}
  .aftermovie-grid{grid-template-columns:1fr}
  .aftermovie-card.featured-aftermovie{grid-column:auto;display:block}
  .featured-aftermovie .aftermovie-video{aspect-ratio:16/9;min-height:0}
}


/* Billetterie dynamique */
.nav-ticket{
  background:var(--red);
  color:#fff !important;
  padding:10px 14px;
  border-radius:2px;
}
.nav-ticket:hover{filter:brightness(.93)}
.ticketing-hero{padding:clamp(64px,8vw,96px) 0}
.ticketing-page{background:#f7f7f5}
.ticketing-info-bar{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  background:#fff;
  border:1px solid var(--line);
  margin-bottom:28px;
}
.ticketing-info-bar>div{padding:20px 24px;border-right:1px solid var(--line)}
.ticketing-info-bar>div:last-child{border-right:0}
.ticketing-info-bar span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:800;color:var(--red);margin-bottom:6px}
.ticketing-info-bar strong{display:block;font-size:20px}
.ticketing-info-bar small{display:block;color:var(--muted);margin-top:3px}
.helloasso-wrap{background:#fff;border:1px solid var(--line)}
.helloasso-head{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding:26px 28px;border-bottom:1px solid var(--line);align-items:end}
.helloasso-head h2{margin:0;font-size:34px;letter-spacing:-.035em}
.helloasso-head>p{margin:0;color:var(--muted);text-align:right}
.helloasso-widget{
  display:block;
  width:100%;
  height:750px;
  min-height:750px;
  border:0;
  background:#fff;
}
@media(max-width:760px){
  .ticketing-info-bar{grid-template-columns:1fr}
  .ticketing-info-bar>div{border-right:0;border-bottom:1px solid var(--line)}
  .ticketing-info-bar>div:last-child{border-bottom:0}
  .helloasso-head{grid-template-columns:1fr}
  .helloasso-head>p{text-align:left}
  .helloasso-widget{min-height:850px}
}


/* CTA Billetterie en fin de navigation */
.site-nav .nav-ticket,
header nav .nav-ticket{
  margin-left:8px;
  white-space:nowrap;
}


/* Accueil : pas de faux visuel si l'édition n'a pas d'image principale */
.event-hero-grid.no-visual{
  grid-template-columns:1fr;
}
.event-hero-grid.no-visual .event-copy{
  max-width:1000px;
}
.event-hero-grid.no-visual .event-copy h1{
  max-width:900px;
}
.event-hero-grid.no-visual .event-meta{
  max-width:900px;
}


/* Mentions légales & vie privée */
.legal-hero{padding:clamp(66px,8vw,104px) 0}
.legal-hero h1 span{color:var(--red)}
.legal-page{background:#f7f7f5}
.legal-layout{display:grid;grid-template-columns:240px minmax(0,820px);gap:clamp(48px,7vw,100px);align-items:start}
.legal-nav{position:sticky;top:96px;display:flex;flex-direction:column;border-top:1px solid var(--line)}
.legal-nav .eyebrow{margin:22px 0 12px}
.legal-nav a{padding:10px 0;border-bottom:1px solid var(--line);color:#555;text-decoration:none;font-size:14px}
.legal-nav a:hover{color:var(--red)}
.legal-content{min-width:0}
.legal-section{padding:0 0 58px;margin:0 0 58px;border-bottom:1px solid var(--line);scroll-margin-top:110px}
.legal-section:last-child{border-bottom:0}
.legal-section h2{font-size:clamp(38px,5vw,58px);line-height:.98;letter-spacing:-.045em;margin:0 0 24px}
.legal-section p,.legal-section dd,.legal-address{font-size:17px;line-height:1.7}
.legal-facts{margin:28px 0 0;border-top:1px solid var(--line)}
.legal-facts>div{display:grid;grid-template-columns:190px minmax(0,1fr);gap:24px;padding:18px 0;border-bottom:1px solid var(--line)}
.legal-facts dt{text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:800;color:#777}
.legal-facts dd{margin:0}
.legal-address{font-style:normal}
.legal-treatment{background:#fff;border:1px solid var(--line);padding:34px;margin-bottom:58px}
.legal-treatment-head{display:flex;justify-content:space-between;gap:20px;align-items:start}
.legal-treatment-head span{background:var(--red);color:#fff;padding:7px 10px;text-transform:uppercase;letter-spacing:.11em;font-size:10px;font-weight:800}
.legal-treatment-head h2{font-size:clamp(34px,4vw,48px)}
.legal-purpose{font-size:20px!important;padding:20px 0;margin:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.legal-note,.legal-thirdparty{background:#f2f2ef;padding:18px 20px;margin-top:24px}
.legal-thirdparty h3{font-size:22px;margin:0 0 10px}
.legal-cookie-box{background:#111;color:#fff;padding:24px 26px;margin:28px 0}
.legal-cookie-box strong{color:var(--red);font-size:18px}
.legal-cookie-box p{color:#d2d2d2;margin-bottom:0}
.legal-update{font-size:13px;color:#777}
@media(max-width:820px){
  .legal-layout{grid-template-columns:1fr}
  .legal-nav{position:static;display:none}
  .legal-facts>div{grid-template-columns:1fr;gap:6px}
  .legal-treatment{padding:24px 20px}
  .legal-treatment-head{display:block}
  .legal-treatment-head span{display:inline-block;margin-bottom:18px}
}


/* Contact */
.contact-hero{padding:clamp(66px,8vw,100px) 0}
.contact-page{background:#f7f7f5}
.contact-grid{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:clamp(45px,7vw,90px);align-items:start}
.contact-intro h2{font-size:clamp(44px,5vw,64px);line-height:.98;letter-spacing:-.045em;margin:0 0 22px}
.contact-intro>p{font-size:18px;line-height:1.65;color:#555}
.contact-points{margin-top:35px;border-top:1px solid var(--line)}
.contact-points>div{padding:17px 0;border-bottom:1px solid var(--line)}
.contact-points strong{display:block;font-size:17px;margin-bottom:4px}.contact-points span{font-size:14px;color:#666;line-height:1.5}
.contact-form-wrap{background:#fff;border:1px solid var(--line);padding:clamp(24px,4vw,42px)}
.contact-form label{display:block;font-weight:750;margin:0 0 7px}.contact-form label>span{color:var(--red)}.contact-form label small{font-weight:400;color:#777}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;box-sizing:border-box;border:1px solid #bbb;background:#fff;padding:13px 14px;font:inherit;border-radius:0}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:2px solid var(--red);outline-offset:1px;border-color:var(--red)}
.contact-form textarea{min-height:220px;resize:vertical}.contact-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.contact-form>label{margin-top:18px}.contact-privacy{font-size:13px;line-height:1.55;color:#666;margin:18px 0}
.contact-privacy a{color:#333}.contact-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.contact-errors{background:#fff1ef;border-left:4px solid var(--red);padding:16px 18px;margin-bottom:22px}.contact-errors ul{margin-bottom:0}
.contact-success{padding:38px;background:#f0f5f0;border:1px solid #bfd2bf}.contact-success strong{display:block;font-size:28px;margin-bottom:8px}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr}.contact-row{grid-template-columns:1fr}}

/* ==========================================================
   PARTENAIRES — frontend
   ========================================================== */
.partners-hero{
  padding:clamp(68px,8.5vw,112px) 0;
}
.partners-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(280px,.65fr);
  gap:clamp(48px,8vw,110px);
  align-items:end;
}
.partners-hero h1{
  margin:0;
  font-size:clamp(64px,8.5vw,112px);
  line-height:.84;
  letter-spacing:-.065em;
}
.partners-hero-copy{
  padding-bottom:7px;
}
.partners-hero-copy p{
  max-width:500px;
  margin:0;
  color:#d0d0d0;
  font-size:clamp(20px,2vw,27px);
  line-height:1.4;
}

.partners-intro{
  background:#fff;
  padding:clamp(58px,7vw,86px) 0;
  border-bottom:1px solid var(--line);
}
.partners-intro-grid{
  display:grid;
  grid-template-columns:minmax(270px,.78fr) minmax(0,1.22fr);
  gap:clamp(45px,7vw,92px);
  align-items:start;
}
.partners-intro h2{
  margin:0;
  max-width:560px;
  font-size:clamp(40px,5vw,62px);
  line-height:.98;
  letter-spacing:-.045em;
}

.partners-list{
  background:#f7f7f5;
}
.partner-tier{
  padding:0 0 clamp(56px,7vw,84px);
  margin:0 0 clamp(55px,7vw,82px);
  border-bottom:1px solid #d9d9d4;
}
.partner-tier:last-child{
  margin-bottom:0;
  border-bottom:0;
}
.partner-tier-head{
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  align-items:baseline;
  gap:18px;
  margin:0 0 28px;
}
.partner-tier-head>span{
  color:var(--red);
  font-size:11px;
  font-weight:800;
  letter-spacing:.14em;
}
.partner-tier-head h2{
  margin:0;
  font-size:clamp(31px,3.8vw,48px);
  line-height:1;
  letter-spacing:-.04em;
}
.partner-tier-grid{
  display:grid;
  align-items:stretch;
}
.partner-logo-card{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  overflow:hidden;
  background:#fff;
  border:1px solid #dfdfda;
  text-decoration:none;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
a.partner-logo-card:hover{
  transform:translateY(-3px);
  border-color:#c9c9c3;
  box-shadow:0 12px 28px rgba(0,0,0,.065);
}
.partner-logo-card img{
  display:block;
  width:100%;
  max-width:100%;
  height:100%;
  object-fit:contain;
}
.partner-name-fallback{
  text-align:center;
  color:#111;
  font-size:20px;
}

/* Niveau 1 — Officiels */
.partner-tier-official .partner-tier-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
}
.partner-tier-official .partner-logo-card{
  min-height:270px;
  padding:44px;
}
.partner-tier-official .partner-logo-card img{
  max-height:160px;
}

/* Niveau 2 — Or */
.partner-tier-gold .partner-tier-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
}
.partner-tier-gold .partner-logo-card{
  min-height:215px;
  padding:34px;
}
.partner-tier-gold .partner-logo-card img{
  max-height:125px;
}

/* Niveau 3 — Argent */
.partner-tier-silver .partner-tier-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:17px;
}
.partner-tier-silver .partner-logo-card{
  min-height:170px;
  padding:26px;
}
.partner-tier-silver .partner-logo-card img{
  max-height:92px;
}

/* Niveau 4 — Bronze */
.partner-tier-bronze .partner-tier-grid{
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:14px;
}
.partner-tier-bronze .partner-logo-card{
  min-height:132px;
  padding:20px;
}
.partner-tier-bronze .partner-logo-card img{
  max-height:66px;
}

.partners-empty-state{
  max-width:760px;
  padding:30px 0 60px;
}
.partners-empty-state h2{
  margin:0;
  font-size:clamp(38px,5vw,58px);
  line-height:1;
  letter-spacing:-.045em;
}

.partner-join{
  background:#111;
  color:#fff;
  padding:clamp(68px,8vw,108px) 0;
}
.partner-join-grid{
  display:grid;
  grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);
  gap:clamp(45px,8vw,110px);
  align-items:start;
}
.partner-join h2{
  margin:0;
  max-width:650px;
  font-size:clamp(46px,6vw,76px);
  line-height:.94;
  letter-spacing:-.055em;
}
.partner-join-copy{
  color:#d0d0d0;
  font-size:18px;
  line-height:1.65;
}
.partner-join-copy p:first-child{
  margin-top:0;
}
.partner-join-copy .button{
  margin-top:18px;
}

@media(max-width:980px){
  .partners-hero-grid,
  .partners-intro-grid,
  .partner-join-grid{
    grid-template-columns:1fr;
  }
  .partner-tier-official .partner-tier-grid,
  .partner-tier-gold .partner-tier-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .partner-tier-silver .partner-tier-grid,
  .partner-tier-bronze .partner-tier-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media(max-width:620px){
  .partner-tier-head{
    grid-template-columns:40px minmax(0,1fr);
  }
  .partner-tier-official .partner-tier-grid,
  .partner-tier-gold .partner-tier-grid,
  .partner-tier-silver .partner-tier-grid,
  .partner-tier-bronze .partner-tier-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }
  .partner-tier-official .partner-logo-card{
    min-height:170px;
    padding:22px;
  }
  .partner-tier-gold .partner-logo-card{
    min-height:148px;
    padding:20px;
  }
  .partner-tier-silver .partner-logo-card{
    min-height:126px;
    padding:17px;
  }
  .partner-tier-bronze .partner-logo-card{
    min-height:108px;
    padding:14px;
  }
  .partner-tier-official .partner-logo-card img{max-height:100px}
  .partner-tier-gold .partner-logo-card img{max-height:82px}
  .partner-tier-silver .partner-logo-card img{max-height:66px}
  .partner-tier-bronze .partner-logo-card img{max-height:52px}
}


/* ==========================================================
   SPEAKERS — hiérarchie typographique biographie / talk
   ========================================================== */

/* Biographie : légèrement plus confortable que le texte du talk */
.speaker-bio .prose,
.speaker-biography .prose,
.speaker-page .speaker-bio {
  font-size: 17px;
  line-height: 1.58;
}

/* Description de l'intervention : volontairement plus compacte */
.speaker-talk-card .prose,
.speaker-talk-card .talk-description,
.speaker-talk .prose,
.speaker-talk .talk-description {
  font-size: 16px;
  line-height: 1.55;
}

.speaker-talk-card .prose p,
.speaker-talk-card .talk-description p,
.speaker-talk .prose p,
.speaker-talk .talk-description p {
  font-size: inherit;
  line-height: inherit;
}

/* Le titre du talk conserve sa présence visuelle */
.speaker-talk-card h2,
.speaker-talk-card h3,
.speaker-talk h2,
.speaker-talk h3 {
  line-height: 1.08;
}

@media (max-width: 700px) {
  .speaker-bio .prose,
  .speaker-biography .prose,
  .speaker-page .speaker-bio {
    font-size: 16px;
  }

  .speaker-talk-card .prose,
  .speaker-talk-card .talk-description,
  .speaker-talk .prose,
  .speaker-talk .talk-description {
    font-size: 15.5px;
    line-height: 1.55;
  }
}


/* ==========================================================
   SPEAKER — taille réelle du texte des interventions
   Le HTML utilise .talk-panel > .prose
   ========================================================== */

.content-grid aside .talk-panel .prose {
  font-size: 16px !important;
  line-height: 1.55 !important;
}

.content-grid aside .talk-panel .prose p,
.content-grid aside .talk-panel .prose li,
.content-grid aside .talk-panel .prose div {
  font-size: 16px !important;
  line-height: 1.55 !important;
}

.content-grid aside .talk-panel .prose p {
  margin-top: 0;
  margin-bottom: 1.05em;
}

/* La biographie reste légèrement plus grande */
.content-grid > article.prose,
.content-grid > article.prose p,
.content-grid > article.prose li {
  font-size: 17px;
  line-height: 1.58;
}

@media (max-width:700px) {
  .content-grid aside .talk-panel .prose,
  .content-grid aside .talk-panel .prose p,
  .content-grid aside .talk-panel .prose li,
  .content-grid aside .talk-panel .prose div {
    font-size: 15px !important;
    line-height: 1.55 !important;
  }

  .content-grid > article.prose,
  .content-grid > article.prose p,
  .content-grid > article.prose li {
    font-size:16px;
  }
}


/* Texte brut : conservation des retours à la ligne */
.preserve-lines{
  white-space:normal;
}
.preserve-lines br{
  content:"";
}
.preserve-lines br + br{
  display:block;
  margin-top:.55em;
}


/* ==========================================================
   NAVIGATION MOBILE
   ========================================================== */
.nav-toggle{
  display:none;
  width:44px;
  height:44px;
  padding:10px;
  margin-left:auto;
  border:0;
  background:transparent;
  cursor:pointer;
}
.nav-toggle span{
  display:block;
  width:24px;
  height:2px;
  margin:5px auto;
  background:#fff;
  transition:transform .2s ease, opacity .2s ease;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}
.nav-toggle[aria-expanded="true"] span:nth-child(2){
  opacity:0;
}
.nav-toggle[aria-expanded="true"] span:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}

@media(max-width:900px){
  .site-header{
    position:relative;
    z-index:1000;
  }

  .site-header .nav{
    min-height:72px;
    position:relative;
  }

  .nav-toggle{
    display:block;
    position:relative;
    z-index:1002;
  }

  .site-header #main-nav{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    z-index:1001;
    padding:12px max(20px,calc((100vw - var(--max))/2)) 22px;
    background:#111;
    border-top:1px solid #2a2a2a;
    box-shadow:0 14px 30px rgba(0,0,0,.28);
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }

  body.nav-open .site-header #main-nav{
    display:flex;
  }

  .site-header #main-nav a,
  .site-header #main-nav a:nth-child(2),
  .site-header #main-nav a:nth-child(3){
    display:block;
    width:100%;
    box-sizing:border-box;
    padding:15px 0;
    border-bottom:1px solid #292929;
    font-size:16px;
    text-align:left;
  }

  .site-header #main-nav a:last-child{
    border-bottom:0;
  }

  .site-header #main-nav .nav-ticket{
    width:100%;
    margin:14px 0 0;
    padding:14px 16px;
    text-align:center;
    border-bottom:0;
    background:var(--red);
  }

  body.nav-open{
    overflow:hidden;
  }
}

@media(max-width:520px){
  .site-header .brand{
    font-size:24px;
  }
  .site-header .nav{
    min-height:64px;
  }
}


/* ==========================================================
   TEXTES LONGS — justification desktop
   ========================================================== */
@media (min-width:701px){
  /* Pages speakers : biographie et description du talk */
  .content-grid > article.prose .preserve-lines,
  .content-grid > article.prose .preserve-lines p,
  .content-grid aside .talk-panel .prose,
  .content-grid aside .talk-panel .prose p{
    text-align:justify;
    text-justify:inter-word;
    hyphens:auto;
  }

  /* Mentions légales / RGPD */
  .legal-content .legal-section > p,
  .legal-content .legal-section dd,
  .legal-content .legal-purpose,
  .legal-content .legal-note,
  .legal-content .legal-thirdparty p,
  .legal-content .legal-cookie-box p{
    text-align:justify;
    text-justify:inter-word;
    hyphens:auto;
  }
}

/* ==========================================================
   SPEAKER — encadré de mise à jour / avertissement
   ========================================================== */
.speaker-update{
  position:relative;
  margin:30px 0 8px;
  padding:26px 26px 24px 92px;
  border:2px solid #e62b1e;
  border-radius:6px;
  background:#fff4f2;
  color:#171717;
  box-sizing:border-box;
}

/* Icône d'alerte, sans image externe */
.speaker-update::before{
  content:"!";
  position:absolute;
  top:25px;
  left:24px;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:50%;
  background:#e62b1e;
  color:#fff;
  font-size:28px;
  line-height:1;
  font-weight:900;
}

.speaker-update > p{
  margin:0 0 18px !important;
  font-size:16px !important;
  line-height:1.62 !important;
}

.speaker-update > p:first-child{
  margin-bottom:18px !important;
  padding-bottom:14px;
  border-bottom:1px solid rgba(230,43,30,.35);
  color:#e62b1e;
  text-align:left !important;
}

.speaker-update > p:first-child strong{
  display:block;
  font-size:17px;
  line-height:1.2;
  text-transform:uppercase;
  letter-spacing:.045em;
}

.speaker-update > p:last-child{
  margin-bottom:0 !important;
  padding:15px 0 0 42px;
  border-top:1px solid rgba(230,43,30,.35);
  position:relative;
  color:#3d3d3d;
}

/* Petit symbole "balance" textuel pour la présomption d'innocence */
.speaker-update > p:last-child::before{
  content:"⚖";
  position:absolute;
  left:0;
  top:13px;
  color:#e62b1e;
  font-size:25px;
  line-height:1;
}

.speaker-update > p:last-child em{
  font-size:15px;
  line-height:1.58;
}

/* Le bloc d'alerte reste lisible sans justification forcée sur mobile */
@media (max-width:700px){
  .speaker-update{
    padding:76px 20px 20px;
    margin-top:24px;
  }

  .speaker-update::before{
    top:20px;
    left:20px;
  }

  .speaker-update > p{
    font-size:15.5px !important;
    text-align:left !important;
  }

  .speaker-update > p:last-child{
    padding-left:0;
    padding-top:48px;
  }

  .speaker-update > p:last-child::before{
    top:14px;
    left:0;
  }
}

/* ==========================================================
   ACCESSIBILITÉ — contraste AA, ajustements visuels minimaux
   ----------------------------------------------------------
   Le rouge TEDx historique est conservé partout où il passe
   déjà le contraste. Les petits textes utilisent deux variantes
   quasi identiques selon le fond :
   - fond clair : #e22b1e
   - fond sombre : #eb2b20
   ========================================================== */

/* Petits libellés rouges sur fonds clairs */
.quick-info .eyebrow,
.speakers-home .eyebrow,
.event-intro .eyebrow,
.previous-home .eyebrow,
.tedxbelfort-local .eyebrow,
.section:not(.ticket-cta) .eyebrow {
  color:#e22b1e;
}

/* Petits libellés rouges sur fonds sombres */
.hero .eyebrow,
.page-hero .eyebrow,
.speaker-hero .eyebrow,
.event-hero .eyebrow,
.tedx-hero .eyebrow,
.tedx-x-section .eyebrow,
.partner-cta .eyebrow,
.gallery-footer-cta .eyebrow {
  color:#eb2b20;
}

/* Signature TEDxBelfort affichée sur fond blanc */
.brand-eyebrow-on-white .brand-tedx,
.tedxbelfort-local .brand-eyebrow .brand-tedx {
  color:#e22b1e !important;
}

/* La signature sur fond sombre conserve le rouge TEDx légèrement
   éclairci, visuellement quasi identique mais conforme AA. */
.page-hero .brand-eyebrow .brand-tedx,
.hero .brand-eyebrow .brand-tedx,
.event-hero .brand-eyebrow .brand-tedx,
.speaker-hero .brand-eyebrow .brand-tedx {
  color:#eb2b20 !important;
}

/* Mention secondaire du footer : #777 était juste sous 4.5:1
   sur #0b0b0b. #7a7a7a franchit le seuil sans modifier le rendu. */
.tedx-note {
  color:#7a7a7a;
}

/* ==========================================================
   ACCESSIBILITÉ — correctif contraste desktop/mobile v2
   ----------------------------------------------------------
   Les petits libellés rouges posés sur le fond #f4f4f2
   nécessitent un rouge légèrement plus sombre que sur blanc.
   ========================================================== */

/* Rouge AA sur fonds clairs et fonds "soft" (#f4f4f2). */
.quick-info .eyebrow,
.speakers-home .eyebrow,
.event-intro .eyebrow,
.previous-home .eyebrow,
.tedxbelfort-local .eyebrow,
.section:not(.ticket-cta) .eyebrow,
.brand-eyebrow-on-white .brand-tedx,
.tedxbelfort-local .brand-eyebrow .brand-tedx {
  color:#d52b1e !important;
}

/* La variante claire garde l'identité TEDx sur fonds très sombres. */
.hero .eyebrow,
.page-hero .eyebrow,
.speaker-hero .eyebrow,
.event-hero .eyebrow,
.tedx-hero .eyebrow,
.tedx-x-section .eyebrow,
.partner-cta .eyebrow,
.gallery-footer-cta .eyebrow,
.page-hero .brand-eyebrow .brand-tedx,
.hero .brand-eyebrow .brand-tedx,
.event-hero .brand-eyebrow .brand-tedx,
.speaker-hero .brand-eyebrow .brand-tedx {
  color:#ef3024 !important;
}

/* Cas générique de la signature TEDx sur fond clair. */
body .brand-tedx {
  color:#d52b1e;
}
.hero .brand-tedx,
.page-hero .brand-tedx,
.event-hero .brand-tedx,
.speaker-hero .brand-tedx,
.site-header .brand-tedx,
.site-footer .brand-tedx {
  color:#ef3024;
}


/* ==========================================================
   ACCESSIBILITÉ — signature TEDxBelfort sur fond clair
   Le sélecteur historique .brand-eyebrow .brand-tedx est plus
   spécifique que body .brand-tedx : on le surcharge explicitement.
   ========================================================== */
body .brand-eyebrow .brand-tedx {
  color:#d52b1e !important;
}

/* Sur les en-têtes sombres, on conserve le rouge TEDx plus lumineux. */
.hero .brand-eyebrow .brand-tedx,
.page-hero .brand-eyebrow .brand-tedx,
.event-hero .brand-eyebrow .brand-tedx,
.speaker-hero .brand-eyebrow .brand-tedx,
.tedx-hero .brand-eyebrow .brand-tedx,
.site-header .brand-tedx,
.site-footer .brand-tedx {
  color:#ef3024 !important;
}
