/* Fonts */

@font-face {
  font-family: "Lexend";
  src: url("../fonts/Lexend-VariableFont_wght.woff2") format("woff2");
  font-weight: 300 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Material Symbols Outlined';
  src: url('../fonts/MaterialSymbolsOutlined.woff2') format('woff2');
  font-weight: 100 700;
  font-style: normal;
  font-display: block;
}

.material-symbols-outlined {
  font-family: 'Material Symbols Outlined';
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  display: inline-block;
  vertical-align: middle;
  white-space: nowrap;
  user-select: none;
  font-variation-settings:
    "FILL" 1,
    "wght" 600,
    "GRAD" 0,
    "opsz" 24;
}

/* -----------------------------
   Variables & Base
------------------------------ */
:root{
--orange:#f59e0b;
--orange-dark: #e09510;
--bg: rgba(255, 255, 255, 0.9);
--bg-light : rgba(250, 178, 76, 0.2);
--bg-secondary: #f8f8f6;
--white:#ffffff;
--border-color:rgba(15, 23, 42, 0.15);

--text:#1B1F3B;
--text-soft:#475569;
--text-mute:#64748b;

--transition: all 0.3s ease-out;
  
--radius-sm: 0.25rem;
--radius-md: 0.5rem;
--radius-lg:0.75rem;
--radius-xl: 1rem;
--radius-2xl: 1.5rem;
--radius-3xl: 2.5rem;

--container:1280px;
--header-h: 4.3rem; 
  
/* === Shadows === */
--shadow-xs: 0 1px 2px rgba(0,0,0,.05);
--shadow-sm: 0 4px 10px rgba(0,0,0,.06);
  
/* === CTA === */
	
--cta-grad: linear-gradient(
	  135deg,
	  rgba(244, 166, 42, 0.12),
	  rgba(255, 255, 255, 0.9)
);
--cta-shadow-halo: 0 0 0 4px rgba(244, 166, 42, 0.05);
--cta-shadow: var(--shadow-xs), var(--cta-shadow-halo);
}

*{
margin: 0;
padding: 0;
box-sizing: border-box;
}

body{
  font-family:"Lexend", sans-serif;
  background:var(--bg-secondary);
  color:var(--text);
  line-height:1.6;
  -webkit-font-smoothing: antialiased;
}

::selection{ background:var(--orange); color:#fff; }

/* Scrollbar (comme ton style inline) */
::-webkit-scrollbar{ width:8px; }
::-webkit-scrollbar-track{ background:#f1f1f1; }
::-webkit-scrollbar-thumb{ background:#cbd5e1; border-radius:4px; }
::-webkit-scrollbar-thumb:hover{ background:#94a3b8; }

/* -----------------------------
   Utils
------------------------------ */

a{ 
color:inherit; 
text-decoration:none; 
}

ul{
list-style: none;
}
		
img{ 
max-width:100%; 
height: auto;
display:block; 
}

.container{
  max-width:var(--container);
  margin:0 auto;
  padding:0 1.5rem;
}

@media (min-width: 640px){
  .container{ padding:0 1rem; }
}

@media (min-width: 1500px){
  .container{ padding:0 .75rem; }
}

.section-header {
text-align: center;
margin-bottom: 2rem;
}

.section-title {
font-size: clamp(1.625rem, 3vw, 2.25rem);
font-weight: 700;
letter-spacing: -0.03em;
line-height: 1.12;
margin: 0rem auto 0.5rem;
text-align: center;
}

.section-subtitle {
color: var(--text-soft);
margin: 0 auto;
font-weight: 300;
max-width: 50ch;
text-align: center;
font-size: 1rem;
}

.section {
padding: 2rem 0;
}

@media (min-width: 1024px) {
	.section {
	padding: 4rem 0;
	}
}

.section-alt { 
background: var(--bg);
}

.text-center { text-align: center; }
.text-left   { text-align: left; }

@media (min-width: 1024px) {
  .lg-text-left   { text-align: left; max-width: 50rem;}
  .lg-text-center { text-align: center; }
}

.label {
display: inline-flex;
align-items: center;
color: var(--orange);
font-weight: 800;
text-transform: uppercase;
letter-spacing: 0.1em;
font-size: 0.75rem;
gap: 0.5rem;
margin-bottom: 1rem;
}

/* ==============================
   Legal pages
------------------------------ */

.legal-content {
  max-width: 960px;
}

.legal-update {
  margin: 0 0 2.5rem;
  color: var(--text-soft);
  font-size: 0.875rem;
}

.legal-section {
  padding: 0 0 2rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid var(--border-color);
}

.legal-section:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: 0;
}

.legal-section h2 {
  margin: 0 0 1rem;
  color: var(--text);
  font-size: clamp(1.25rem, 2vw, 1.5rem);
  line-height: 1.3;
}

.legal-section p {
  margin: 0 0 1rem;
  color: var(--text-soft);
  line-height: 1.75;
}

.legal-section p:last-child {
  margin-bottom: 0;
}

.legal-placeholder {
  color: var(--orange-dark);
  font-weight: 700;
}

.legal-details {
  margin: 1.25rem 0 0;
}

.legal-details div {
  display: grid;
  grid-template-columns: minmax(160px, 220px) 1fr;
  gap: 1rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--border-color);
}

.legal-details div:last-child {
  border-bottom: 0;
}

.legal-details dt {
  color: var(--text);
  font-weight: 700;
}

.legal-details dd {
  margin: 0;
  color: var(--text-soft);
  overflow-wrap: anywhere;
}

.legal-list {
  display: grid;
  gap: 0.75rem;
  margin: 1rem 0;
  padding-left: 1.25rem;
  list-style: disc;
}

.legal-list li {
  color: var(--text-soft);
  line-height: 1.7;
}

.legal-list li::marker {
  color: var(--orange);
}

.legal-link {
  color: var(--orange-dark);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.legal-link:hover {
  color: var(--orange);
}

.legal-table-wrap {
  margin-top: 1.25rem;
  overflow-x: auto;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
}

.legal-table {
  width: 100%;
  min-width: 680px;
  border-collapse: collapse;
  background: var(--white);
}

.legal-table th,
.legal-table td {
  padding: 1rem;
  border-bottom: 1px solid var(--border-color);
  color: var(--text-soft);
  line-height: 1.55;
  text-align: left;
  vertical-align: top;
}

.legal-table thead th,
.legal-table tbody th {
  color: var(--text);
  font-weight: 700;
}

.legal-table thead th {
  background: var(--bg-secondary);
}

.legal-table tbody tr:last-child th,
.legal-table tbody tr:last-child td {
  border-bottom: 0;
}

@media (max-width: 640px) {
  .legal-details div {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }

  .legal-section {
    padding-bottom: 1.5rem;
    margin-bottom: 1.5rem;
  }
}

/* ==============================
   Buttons
============================== */

.btn{
display:inline-flex;
align-items:center;
justify-content:center;
vertical-align: middle;
padding:0.5rem 1rem;
gap: 0.5rem;
border-radius: var(--radius-lg);
border: none;
font-size: 0.855rem;
font-weight:600;
letter-spacing: .01em;
text-decoration:none;
user-select:none;
cursor: pointer;
transition: var(--transition);
}


.btn:active{
  transform: translateY(0);
}

.btn-primary{
  background: var(--orange);
  color: var(--text);
  border-color: var(--border-color);
}

.btn-primary:hover{
  background: var(--orange-dark);
  transform: translateY(-2px);
  box-shadow:
    0 10px 15px rgba(244,166,42,.28),
	0 1px 0 rgba(255,255,255,.45) inset;
}

.btn:focus-visible{
  outline: none;
  box-shadow:
    0 0 0 4px rgba(244,166,42,.20),
    0 10px 25px rgba(0,0,0,.08);
}

.btn-ghost{
background: rgba(255,255,255,1);
color: var(--text);
border: 1px solid rgba(31, 41, 55, 0.15);
box-shadow: var(--shadow-xs);
}

.btn-ghost:hover{
  background: var(--white);
  color: var(--text);
  border-color: var(--orange);
  transform: translateY(-1px);
  box-shadow: var(--shadow-sm);
}

.btn-lg{
  padding: 1rem 2rem;
  font-size:1rem;
  border-radius: var(--radius-lg);
}

.btn-xl{
  padding: 1rem 2rem;
  font-size:1.15rem;
  border-radius: var(--radius-lg);
}

/* ==============================
   Formulaires
============================== */

.form-card {
  border: 1px solid var(--border-color);
  border-radius: var(--radius-xl);
  background: var(--white);
  padding: clamp(1.35rem, 3vw, 2rem);
  box-shadow: 0 20px 45px rgba(27, 31, 59, 0.08);
}

.form-header {
  margin-bottom: 1.5rem;
}

.form-title {
  margin-bottom: 24px;
  color: var(--text);
  font-size: clamp(1.375rem, 2vw, 1.75rem);
  line-height: 1.15;
  font-weight: 800;
}

.form-header .form-title {
  margin-bottom: 0.45rem;
}

.form-intro {
  color: var(--text-mute);
  font-size: 0.95rem;
  line-height: 1.6;
}

.form-group {
  margin-bottom: 20px;
}

.form-group label {
  display: block;
  margin-bottom: 6px;
  color: var(--text);
  font-size: 14px;
  font-weight: 700;
}

.form-required {
  color: var(--orange);
  font-weight: 800;
}

.form-group label span:not(.form-required) {
  color: var(--text-mute);
  font-weight: 400;
}

.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  padding: 12px 16px;
  border: 1.5px solid var(--border-color);
  border-radius: var(--radius-md);
  background: var(--white);
  color: var(--text);
  font-size: 14px;
  outline: none;
  transition: border-color .2s, box-shadow .2s;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--orange);
  box-shadow: 0 0 0 3px rgba(245,166,35,.1);
}

.form-group textarea {
  min-height: 140px;
  resize: vertical;
}

.form-group select {
  cursor: pointer;
  appearance: none;
  padding-right: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

/* Pays et téléphone restent lisibles dans les cartes et sur petit écran. */
.phone-fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 16px;
  /* Séparer l’aide du téléphone du champ suivant sur les trois formulaires. */
  margin-bottom: 24px;
  min-width: 0;
}
.phone-fields .form-group {
  min-width: 0;
  margin-bottom: 0;
}
.phone-fields .form-help {
  grid-column: 1 / -1;
  margin-bottom: 0;
}
@media (max-width: 600px) {
  .phone-fields {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 12px;
  }
}

.form-consent {
  display: grid;
  grid-template-columns: 1.1rem 1fr;
  gap: 0.75rem;
  align-items: start;
  margin: 0.35rem 0 1.25rem;
  color: var(--text-mute);
  font-size: 0.82rem;
  line-height: 1.55;
}

.form-consent input {
  width: 1rem;
  height: 1rem;
  margin-top: 0.15rem;
  accent-color: var(--orange);
}

.form-submit,
.btn-submit {
  width: 100%;
  border: none;
  border-radius: var(--radius-lg);
  padding: 14px;
  background: var(--orange);
  color: var(--text);
  font-size: 15px;
  font-weight: 800;
  cursor: pointer;
  transition: background .2s, transform .15s;
  box-shadow: 0 4px 16px rgba(245,166,35,.3);
}

.form-submit:hover,
.btn-submit:hover {
  background: var(--orange-dark);
  transform: translateY(-1px);
}

.form-submit-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

.form-submit-icon .material-symbols-outlined {
  font-size: 1.2rem;
}

.form-note {
  margin-top: 12px;
  color: var(--text-mute);
  font-size: 12px;
  text-align: center;
}

.form-trust {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem 1rem;
  margin-top: 1rem;
  color: var(--text-mute);
  font-size: 0.78rem;
}

.form-trust span {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.form-trust .material-symbols-outlined {
  color: var(--orange);
  font-size: 1rem;
}

.form-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.form-feedback {
  margin-bottom: 1.25rem;
  padding: 0.9rem 1rem;
  border: 1px solid;
  border-radius: var(--radius-md);
  font-size: 0.875rem;
  line-height: 1.55;
}

.form-feedback-error {
  border-color: #fecaca;
  background: #fef2f2;
  color: #991b1b;
}

.form-feedback-info {
  border-color: #fed7aa;
  background: #fff7ed;
  color: #9a3412;
}

.form-feedback ul {
  margin-top: 0.35rem;
  padding-left: 1.2rem;
  list-style: disc;
}

@media (max-width: 640px) {
  .form-row {
    grid-template-columns: 1fr;
  }
}

/* Page candidature */
.candidature-section {
  padding-top: 0;
}

.candidature-container {
  max-width: 960px;
}

.admission-status {
  margin-bottom: 2rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid rgba(245, 158, 11, 0.35);
  border-radius: var(--radius-xl);
  background: var(--white);
}

.admission-status-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2rem;
}

.admission-status .label {
  margin-bottom: 0.5rem;
}

.admission-status h2 {
  margin: 0;
  font-size: clamp(1.35rem, 3vw, 1.9rem);
  line-height: 1.2;
  letter-spacing: 0;
}

.admission-status p {
  max-width: 62ch;
  margin-top: 0.55rem;
  color: var(--text-mute);
  line-height: 1.6;
}

.admission-status-value {
  display: inline-flex;
  flex: 0 0 auto;
  padding: 0.5rem 0.75rem;
  border-radius: var(--radius-md);
  background: var(--bg-light);
  color: var(--text);
  font-size: 0.8rem;
  white-space: nowrap;
}

.admission-progress {
  appearance: none;
  display: block;
  width: 100%;
  height: 8px;
  margin: 1.35rem 0 0.65rem;
  overflow: hidden;
  border: 0;
  border-radius: 4px;
  background: #e5e7eb;
}

.admission-progress::-webkit-progress-bar {
  background: #e5e7eb;
}

.admission-progress::-webkit-progress-value {
  background: var(--orange);
}

.admission-progress::-moz-progress-bar {
  background: var(--orange);
}

.admission-stages {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  color: var(--text-mute);
  font-size: 0.75rem;
}

.admission-stages span:last-child {
  text-align: right;
}

.admission-stages .is-current,
.admission-stages .is-complete {
  color: var(--text);
  font-weight: 700;
}

.candidature-form-card {
  padding: clamp(1.5rem, 4vw, 2.5rem);
}

.form-section {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.form-section + .form-section {
  margin-top: 1.75rem;
  padding-top: 1.75rem;
  border-top: 1px solid var(--border-color);
}

.form-section-title {
  width: 100%;
  margin-bottom: 1.1rem;
  color: var(--text);
  font-size: 1.05rem;
  font-weight: 800;
}

.form-help {
  margin-top: 0.45rem;
  color: var(--text-mute);
  font-size: 0.75rem;
  line-height: 1.5;
}

.form-consent a {
  color: var(--orange-dark);
  font-weight: 700;
  text-decoration: underline;
}

@media (max-width: 640px) {
  .admission-status-header {
    display: block;
  }

  .admission-status-value {
    margin-top: 1rem;
    white-space: normal;
  }

  .admission-stages {
    gap: 0.75rem;
  }
}

/* -----------------------------
   Header
------------------------------ */
.site-header{
	display: flex;
	flex-direction: column;
	
	align-items: stretch;
	width:100%;
	position:sticky;
	top: 0;
	z-index:100;
	border-bottom: 1px solid var(--border-color);
	background: var(--bg);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}

.header-announcement {
  width: 100%;
  background: var(--text);
  color: #fff;
  text-align: center;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.01em;
}

.announcement-text {
  padding: 8px 0;
}

.announcement-text span {
  margin: 0 0.5rem;
  color: var(--orange);
}

@media (max-width: 600px) {
  .header-announcement {
    font-size: 0.78rem;
  }

  .announcement-text {
    padding: 7px 0;
  }

  .announcement-text span {
    margin: 0 0.25rem;
  }
}

.header-content{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width: 100%;
  height: var(--header-h);
}

.brand{ 
display:flex; 
align-items:center; 
gap:8px; }

.brand-logo {
  display: block;
  width: clamp(145px, 15vw, 190px);
  height: auto;
}

/* .brand-icon{
width: 2rem;
height: 2rem;
display: flex;
align-items: center;
justify-content: center;
background:var(--orange);
border-radius: var(--radius-md);
color:var(--text);
font-weight:800;
font-size:24px;
} */
		
.brand-name{
  font-weight:800;
  letter-spacing:-0.02em;
  font-size:18px;
}
.brand-accent{ color:var(--orange); }

/* ==============================
   Menu
============================== */

.nav-toggle{
  border:0;
  background:transparent;
  padding:8px;
  border-radius: var(--radius-md);
  cursor:pointer;
  color:var(--text-soft);
}

.nav-desktop{ display:none; }

.nav-link{
  color:var(--text);
  font-weight:500;
}
.nav-link:hover{ color:var(--orange); }

.header-cta{ display:none; }

@media (min-width: 860px){
  .nav-desktop{
    display:flex;
    align-items:center;
    justify-content:center;
    gap: clamp(22px,2svw,90px);
    position: relative; 
  }
  .header-cta{
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .nav-toggle{ display:none; }
}

.header-content {
  position: relative;
}

.nav-mobile {
  position: absolute;
  top: calc(100% + 0.75rem);
  left: 0;
  right: 0;
  display: none;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1rem;
  background: var(--white);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-xl);
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
}

.nav-mobile.is-open {
  display: flex;
}

@media (min-width: 860px) {
  .nav-mobile {
    display: none !important;
  }
}

/* -----------------------------
   Footer
------------------------------ */

.site-footer{
  color:var(--text-soft);
  padding-top:56px;
  border-top:1px solid var(--border-color);
}

/* Grid */
.footer-grid{
  display:grid;
  gap:36px;
  padding-bottom:40px;
}

@media (min-width: 768px){
  .footer-grid{ grid-template-columns: 1.2fr 1fr; }
}

@media (min-width: 1024px){
  .footer-grid{ grid-template-columns: 1.2fr 1fr 1fr 1fr; }
}

/* Brand */

.footer-brand-row{ margin-bottom:16px; }

.footer-brand-row .brand-logo {
  width: min(220px, 100%);
}

.footer-desc{
	margin:0 0 1.50rem;
	color:var(--text-mute);
	font-size:0.85rem;
	font-weight:400;
}

/* Social */

.footer-social{
  display:flex;
  gap:2rem;
}

.footer-social-link{
  color:var(--text-mute);
  transition:color .15s ease;
}

.footer-social-icon{
  width:22px;
  height:22px;
  display:block;
}

.footer-social-link:hover{
  color:var(--orange);
}

/* Titles */

.footer-title{
  text-transform: uppercase;
  letter-spacing:.05em;
  margin:0 0 1rem;
  font-size: 0.75rem;
  font-weight:700;
  color:var(--text);
}

/* Links */

.footer-links{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:10px;
  font-size:.85rem;
}

.footer-links a{
  color:var(--text-mute);
  transition:color .15s ease;
  text-decoration:none;
  line-height:1.65;
  font-weight:400;
}

.footer-links a:hover{
  color:var(--orange);
}

/* Contact */

.footer-contact{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:16px;
  font-size:0.85rem;
  color:var(--text-mute);
  font-weight:400;
}

.footer-contact li{
  display:flex;
  gap:10px;
  align-items:flex-start;
}

.footer-contact .material-symbols-outlined{
  color:var(--orange);
  font-size:18px;
  margin-top:2px;
}

/* Bottom */

.footer-bottom{
  border-top:1px solid rgba(0,0,0,.06);
  padding-top:18px;
  padding-bottom:28px;
  display:flex;
  flex-direction:column;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  text-align:center;
}

@media (min-width: 768px){
  .footer-bottom{
    flex-direction:row;
    align-items:center;
    text-align:left;
  }

  .footer-legal{
    justify-content:flex-end;
  }
}

.footer-copy{
  margin:0;
  font-size:13px;
  color:var(--text-mute);
}

.footer-legal{
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  justify-content:center;
  font-size:13px;
}

.footer-legal a{
  color:var(--text-mute);
  transition:color .15s ease;
}

.footer-legal a:hover{
  color:var(--orange);
}

.footer-cookie-settings {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text-mute);
  font: inherit;
  cursor: pointer;
  transition: color .15s ease;
}

.footer-cookie-settings:hover,
.footer-cookie-settings:focus-visible {
  color: var(--orange);
}

/* -----------------------------
   Consentement aux cookies
------------------------------ */

.cookie-banner {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2000;
  padding: 1rem;
  pointer-events: none;
}

.cookie-banner-inner {
  width: min(100%, 1120px);
  margin: 0 auto;
  padding: 1rem;
  border: 1px solid var(--border-color);
  border-top: 4px solid var(--orange);
  border-radius: var(--radius-md);
  background: var(--white);
  box-shadow: 0 16px 44px rgba(15, 23, 42, .18);
  display: grid;
  gap: 1rem;
  pointer-events: auto;
}

.cookie-banner-content {
  display: flex;
  gap: .875rem;
  align-items: flex-start;
}

.cookie-banner-icon {
  flex: 0 0 auto;
  margin-top: .15rem;
  color: var(--orange);
  font-size: 1.75rem;
}

.cookie-banner-content h2 {
  margin: 0 0 .25rem;
  font-size: 1rem;
  line-height: 1.35;
}

.cookie-banner-content p {
  margin: 0;
  max-width: 74ch;
  color: var(--text-soft);
  font-size: .82rem;
  line-height: 1.55;
}

.cookie-banner-content a {
  color: var(--orange-dark);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.cookie-banner-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .625rem;
}

.cookie-choice {
  min-height: 44px;
  padding: .65rem 1rem;
  border: 1px solid transparent;
  border-radius: var(--radius-md);
  color: var(--white);
  font: inherit;
  font-size: .85rem;
  font-weight: 700;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.cookie-choice:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-sm);
}

.cookie-choice-refuse {
  background: var(--text);
}

.cookie-choice-refuse:hover {
  background: #11152d;
}

.cookie-choice-accept {
  background: var(--orange);
}

.cookie-choice-accept:hover {
  background: var(--orange-dark);
}

@media (min-width: 820px) {
  .cookie-banner-inner {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    padding: 1rem 1.125rem;
  }

  .cookie-banner-actions {
    grid-template-columns: repeat(2, minmax(148px, 1fr));
  }
}

/* -----------------------------
   HERO
------------------------------ */

.home-hero{
  min-height: 0; 
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}

@media (min-width: 1024px){
	.home-hero{
	  min-height: 0; 
	  padding-top: 4rem;
	  padding-bottom: 4rem;
	}
}

.home-hero-grid{
  height: 100%;
  display: grid;
  align-items: center;
  align-content: center;
  justify-content: center;
  gap: 2rem;
}

.home-hero-content {
	max-width: 720px;
	width: 100%;
}


/* Pill */

.pill {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .3rem .8rem;
  border-radius: var(--radius-xl);
  background: var(--bg);
  border: 1px solid var(--border-color);
  color: var(--text);
  font-weight: 600;
  font-size: .875rem;
  margin-bottom: 1.5rem;
}

.pill-dot{
	width: 0.8rem;
	height: 0.8rem;
	background-color: var(--orange);
	border-radius: 50%;
}

.pill-text{
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--orange);
}

.animate-pulse {
	animation: pulse 2s infinite ease-in-out;
}

@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: .45; transform: scale(.85); }
}

/* Title */
.home-hero-title{
  margin: 0 0 2rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--text);
  font-size: clamp(3.3rem, 1rem + 4vw, 4.5rem);
  line-height: 1.12;
  text-align: center;
}

.home-hero-highlight{
  color: var(--orange);
  position: relative;
  white-space: nowrap;
}

/* Subtitle */
.home-hero-subtitle{
  margin: 0 0 2rem;
  text-align: center;
  color: var(--text-soft);
  font-size: clamp(1rem, .8rem + .6vw, 1.3rem);
}

/* Actions */
.home-hero-actions{
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  gap: 1.2rem;
}

/* Icône brochure */
.brochure-icon{
  font-size: 1.1em;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform .2s ease;
  opacity: .85;
  transform: translateY(1px);
}

/* -----------------------------
   HERO MEDIA
------------------------------ */

.home-hero-media{
  position: relative;
  gap: 1rem;
  width: 100%;
  max-width: 580px;
  margin: 0 auto;
}

.home-hero-image-glow {
position: absolute;
inset: -1rem;
background: var(--bg-light);
filter: blur(40px);
z-index: -1;
border-radius: var(--radius-3xl);
}

.home-hero-image {
object-fit: cover;
border-radius: var(--radius-3xl);
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
border: 1px solid rgba(255, 255, 255, 0.2);
}

/* responsive layout */

@media (max-width: 900px) {
  .home-hero-actions {
    align-items: center;
  }

  .home-hero-actions .btn {
    width: 100%;
    max-width: 420px;
    min-width: 0;
    margin: 0 auto;
  }
}

@media (min-width: 1090px){
  .home-hero-grid{
	grid-template-columns: 1.1fr 0.90fr;
    padding-bottom: 0;
	gap: 4rem;
  }
  .home-hero-actions{
	flex-direction: row;
  }
  .home-hero-title{
    text-align: left;
  }
  .home-hero-subtitle{
	text-align: left;
	max-width: 32rem;
  }
}

/* -----------------------------
   Bachelor Section
------------------------------ */

.home-programme-card {
background: var(--bg-secondary);
border: 1px solid var(--border-color);
border-radius: 2rem;
overflow: hidden;
display: flex;
flex-direction: column;
box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
}

.home-programme-img-wrapper {
  display: none;
}

@media (min-width: 1024px) {
  .home-programme-img-wrapper {
    display: block;
    height: auto;
  }
}


.home-programme-img {
display: none;
}
        
.home-programme-content {
flex: 1;
padding: 2.5rem;
display: flex;
flex-direction: column;
justify-content: center;
}
	
@media (min-width: 1024px) {
	.home-programme-card {
	flex-direction: row;
	}
	
	.home-programme-img-wrapper {
		height: auto;
	}
	.home-programme-img {
	display: flex;
	width: 100%;
	height: 100%;
	object-fit: cover;
	}
	.home-programme-content {
		padding: 3rem;
	}
}

.home-programme-tags {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
justify-content: center;
margin: .75rem 0 2rem 0;
}

.tag {
padding: 0.5rem 0.5rem;
background: var(--bg-light);
color: var(--orange);
border-radius: var(--radius-md);
font-size: 0.875rem;
font-weight: 700;
}
	
.home-programme-content .btn {
	gap: 0.5rem;
	margin: 0 auto;
}

@media (min-width: 1024px) {
	
	.home-programme-tags {
	justify-content: left;
	}

	.home-programme-content .btn {
	gap: 0.5rem;
	width: fit-content;
	margin: 0;
	}
}

/* Metrics 
.hero-metrics{
  display: flex;
  flex-wrap: wrap;
  color: var(--text-mute);
  font-size: .875rem;
  font-weight: 400;
}

.highlight-degree{ font-weight: 600; }

.metric{
  display: flex;
  align-items: center;
  gap: 8px;
}
.metric-icon{
  color: var(--orange);
  font-size: 20px;
}
*/

.bachelor-features{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  margin:1rem 0 1.5rem 0;
  padding: 1rem;
}

.feature{
  display:flex;
  gap:12px;
}

.feature-icon{
  color:var(--orange);
  margin-top:2px;
}

.feature-title{
  margin:0;
  font-size:14px;
  font-weight:800;
  color:#0f172a;
}

.feature-text{
  margin:2px 0 0;
  font-size:13px;
  color:rgba(100,116,139,.95);
}

@media (max-width: 1024px){

  .bachelor-features{
    justify-items: center;
    text-align: center;
  }

  .feature{
    flex-direction: column;   
    align-items: center;
    text-align: center;
    max-width: 420px;
  }

  .feature-text{
    text-align: center;
  }
}

@media (min-width: 1024px){
	
  .bachelor-features{
  grid-template-columns: 1fr 1fr;
  gap: 2rem 2rem;
  max-width: 900px;
  margin:1.5rem auto 3rem 0;
  }
}

/* -----------------------------
   Why Section
------------------------------ */   

.why {
padding: 3rem 0;
}

.why .container {
  padding-left: 2rem;
  padding-right: 2rem;
}

.why-grid {
display: grid;
gap: 2rem;
}

@media (min-width: 860px) {
	.why-grid {
	grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.why-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.why-card {
background: var(--white);
padding: 2.5rem;
border-radius: var(--radius-2xl);
border: 1px solid var(--white);
transition: var(--transition);
}

@media (max-width: 640px) {
  .why-card {
    padding: 1.5rem;
  }

  .why-grid {
    gap: 1rem;
  }
}

.why-card:hover {
box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.1);
transform: translateY(-4px);
}

.icon-box {
width: 3.5rem;
height: 3.5rem;
background: var(--bg-light);
color: var(--orange);
border-radius: var(--radius-lg);
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 1.5rem;
transition: var(--transition);
}

.why-card:hover .icon-box {
background: var(--orange);
color: var(--text);
font-weight: 700;
}

.why-title {
color: var(--text);
font-size: 1.25rem;
font-weight: 700;
margin-bottom: 0.75rem;
}

.why-text {
color: var(--text-soft);
font-size: 0.9375rem;
font-weight: 500;
}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* -----------------------------
   Pedagogy Section
------------------------------ */

.pedagogy-grid {
	display: grid;
	gap: 4rem;
	align-items: center;
}
		
.image-gallery {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

.gallery-col {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.gallery-col-offset {
	padding-top: 2rem;
}

.gallery-img {
	border-radius: var(--radius-2xl);
	box-shadow: 0 10px 20px -5px rgba(0,0,0,0.1);
	border: 1px solid var(--border-color);
	width: 100%;
	object-fit: cover;
}

.square { aspect-ratio: 1/1; }
.video { aspect-ratio: 16/10; }

.pedagogy-list {
	margin-top: 2rem;
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
}

.pedagogy-item {
	display: flex;
	gap: 1rem;
}

.pedagogy-item .material-symbols-outlined {
	color: var(--orange);
	font-size: 2rem;
}
		
.pedagogy-item-title {
	font-weight: 700;
	font-size: 1.125rem;
}

.pedagogy-item-text {
	color: var(--text);
	font-size: 0.875rem;
}
		
@media (min-width: 1024px) {
	.pedagogy-grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 1024px){

  .pedagogy-list{
    align-items: center; 
  }

  .pedagogy-item{
    flex-direction: column; 
    align-items: center;      
    text-align: center;
    max-width: 320px;     
  }

  .pedagogy-item-text{
    text-align: center;
  }
}

/* -----------------------------
   Trust strip
------------------------------ 
.trust{
  border-top:1px solid var(--border-color);
  border-bottom:1px solid var(--border-color);
  background:#fff;
  padding:28px 0;
}


.trust-title{
  text-align:center;
  font-size:12px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(100,116,139,.85);
  margin:0 0 18px;
}

.trust-logos{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:26px 48px;
  opacity:.65;
  filter:grayscale(1);
  transition:filter .5s ease, opacity .5s ease;
}
.trust-logos:hover{
  filter:grayscale(0);
  opacity:.9;
}
.trust-logo{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:900;
  color:rgba(71,85,105,.95);
}
*/

/* -----------------------------
   FEATURES BAND
------------------------------ 

.proof-band{
  padding: 3rem 0 1.5rem;
  width: 100%;
}

.proof-inner{
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}

.proof-head{
  text-align: center;
  max-width: 56rem;
  margin: 0 auto;
}

.proof-kicker{
  margin: 0 0 .6rem;
  font-weight: 800;
  letter-spacing: .02em;
  text-transform: uppercase;
  font-size: .85rem;
  color: var(--text-mute);
}

.proof-title{
  margin: 0;
  font-weight: 900;
  color: var(--text);
  letter-spacing: -0.02em;
  line-height: 1.1;
  font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem);
}

.proof-lead{
  margin: .9rem auto 0;
  color: var(--text-soft);
  font-weight: 600;
  line-height: 1.6;
  font-size: 1.05rem;
  max-width: 48rem;
}
*/

/* -----------------------------
   CTA
------------------------------ */
.cta{
  border-top:1px solid var(--border-color);
}

.cta-inner{
  text-align:center;
  max-width: 860px;
  padding: 72px;
  margin: 0 auto;
  border-radius: var(--radius-lg);
  background: var(--text);
  border: 1px solid var(--border-color);
  box-shadow: var(--cta-shadow)
}

.cta-title{
  margin:0 0 10px;
  font-size:46px;
  font-weight:900;
  color: var(--white);
}

@media (max-width: 640px) {
  .cta-inner {
    padding: 4rem 2rem;
  }

  .cta-title {
    font-size: 1.75rem;
    line-height: 1.15;
  }
}

.cta-text{
  margin:0 auto 22px;
  color: #D3D3D3;
  font-weight:400;
  max-width:680px;
}

.cta-actions{
  display:flex;
  gap:12px;
  justify-content:center;
  flex-direction:column;
}
@media (min-width: 640px){
  .cta-actions{ flex-direction:row; }
}

 /* =========================
 PAGE BACHELOR
========================= */

/* ─── HERO ALT (pour toutes les pages sauf home) ────────────────────────────────────────────── */

.hero-alt{
  min-height: 0; 
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

@media (min-width: 1024px){
	.hero-alt{
	  min-height: 0; 
	  padding-top: 6rem;
	  padding-bottom: 6rem;
	}
}

.hero-alt h1 {
font-weight: 800; 
font-size: clamp(2.25rem, 5vw, 3.375rem);
color: var(--text); 
line-height: 1.1; 
margin-bottom: 20px;
overflow-wrap: anywhere;
}

.hero-alt h1 span { 
color: var(--orange); 
}

.hero-alt p { 
max-width: 640px; 
margin: 0 auto 36px; 
color: var(--text-mute); 
font-size: 16px; 
line-height: 1.7;
overflow-wrap: break-word;
}

@media (max-width: 640px) {
  .hero-alt{
    padding-top: 2rem;
    padding-bottom: 2rem;
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .hero-alt h1 {
    font-size: clamp(1.85rem, 9vw, 2.5rem);
  }

  .hero-alt p {
    font-size: 0.95rem;
    margin-bottom: 1.5rem;
  }
}

.hero-alt-badges { 
  display: flex; 
  gap: 12px; 
  justify-content: center; 
  flex-wrap: wrap; 
}
  
.hero-alt-badge {
    background: var(--white); 
	border: 1.5px solid var(--border-color);
    border-radius: 30px; 
	padding: 8px 18px;
    font-size: 13px; 
	font-weight: 700; 
	color: var(--text);
    display: flex; 
	align-items: center; 
	gap: 7px;
  }
  
.hero-alt-badge .hero-alt-dot { 
  width: 8px; 
  height: 8px; 
  border-radius: 50%; 
  background: var(--orange); 
  flex-shrink: 0; 
}


/* ─── CHIFFRES CLÉS ───────────────────────────────────── */

.stats-grid { 
display: grid; 
grid-template-columns: repeat(4, 1fr); 
gap: 20px; 
}

.stat-card {
background: var(--white); 
border: 1.5px solid var(--border-color); 
border-radius: var(--radius-xl);
padding: 28px 24px; 
text-align: center; 
transition: border-color .2s, box-shadow .2s;
min-width: 0;
}

.stat-card:hover { 
border-color: var(--orange); 
box-shadow: 0 4px 20px rgba(245,166,35,.1); 
}

.stat-num {
font-weight: 800; 
font-size: 40px; 
color: var(--orange); 
line-height: 1; 
}

.stat-label { 
font-size: 13px; 
color: var(--text-mute); 
margin-top: 8px; 
}

@media (max-width: 900px) {
  .stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .stats-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .stat-card {
    padding: 22px 18px;
  }
}
  

/* ─── PROGRAMME ACCORDION ─────────────────────────────── */

.year-label {
font-weight: 800; 
font-size: 18px; 
color: var(--text);
margin-bottom: 20px; 
display: flex; 
align-items: center;
gap: 10px;
}
  
.year-label::before {
content: ""; width: 12px; 
height: 12px; 
border-radius: 50%;
background: var(--orange); 
flex-shrink: 0;
}
  
.tracks-list { 
display: flex; 
flex-direction: column; 
gap: 0; 
border-left: 2px solid var(--border-color); 
margin-left: 5px; 
padding-left: 0; 
}
  
details.track-item {
background: var(--white); 
border: 1.5px solid var(--border-color); 
border-radius: var(--radius-xl);
margin-left: 24px; 
margin-bottom: 12px; 
overflow: hidden;
transition: border-color .2s;
position: relative;
}
  
details.track-item::before {
content: ""; 
position: absolute; 
left: -31px; 
top: 22px;
width: 12px; 
height: 12px; 
border-radius: 50%;
background: var(--white); 
border: 2px solid var(--border-color);
}

details.track-item[open] { 
border-color: var(--orange); 
}

details.track-item[open]::before { 
background: var(--text); 
border-color: var(--text); 
}

details.track-item.stage[open] { 
border-color: var(--orange); 
}

details.track-item.stage[open]::before { 
background: var(--orange); 
border-color: var(--orange); 
}
 
details.track-item summary {
    list-style: none; 
	cursor: pointer;
    padding: 16px 20px; 
	display: flex; 
	align-items: center; 
	gap: 14px;
}

details.track-item summary::-webkit-details-marker { 
display: none; 
}

.module-badge {
    font-weight: 800; 
	font-size: 11px; 
	letter-spacing: .06em;
    padding: 5px 12px; 
	border-radius: 20px; 
	white-space: nowrap; 
	flex-shrink: 0;
}

.module-badge.num { 
background: var(--text); 
color: var(--white); 
}

.module-badge.stage { 
background: var(--text); 
color: var(--white); 
}

.module-badge.alternance { 
background: var(--orange); 
color: var(--white);
}
.track-summary-text { 
flex: 1; 
}

.track-summary-text h4 { 
font-weight: 800; 
font-size: 16px; 
color: var(--text); 
}

.track-summary-text .track-duration { 
font-size: 12px; color: var(--text-mute);
margin-top: 2px; 
text-transform: uppercase; 
letter-spacing: .05em; 
font-weight: 700; 
}

.track-chevron { 
color: var(--text-mute); 
font-size: 20px; 
transition: transform .3s; 
flex-shrink: 0; 
}

details.track-item[open] .track-chevron { 
transform: rotate(180deg); 
color: var(--text); 
}
 
.track-body { 
padding: 4px 20px 20px 20px; 
}

.track-body .track-info {
background: var(--bg); 
border-radius: 8px; 
padding: 10px 14px;
font-size: 13px; 
color: var(--text-mute); 
margin-bottom: 14px;
display: flex; 
align-items: center; 
gap: 8px;
}
  
.track-body .track-info .material-symbols-outlined { 
font-size: 16px; 
color: var(--orange); 
}

.track-body ul { 
list-style: none; 
}

.track-body ul li {
font-size: 14px; 
color: var(--text); 
padding: 5px 0;
display: flex; 
align-items: flex-start; 
gap: 10px;
border-bottom: 1px solid var(--bg);
}

.track-body ul li:last-child { 
border-bottom: none; 
}

.track-body ul li::before {
content: "✓"; 
color: var(--orange); 
font-weight: 800; 
flex-shrink: 0; 
margin-top: 1px; 
}

/* ─── PROGRAMME TABS ──────────────────────────────────── */
.programme-tabs { 
display: flex; 
gap: 8px; 
margin-bottom: 40px; 
flex-wrap: wrap; 
justify-content: center; 
}

.tab-btn {
background: var(--white); 
border: 1.5px solid var(--border-color); 
border-radius: 30px;
padding: 9px 20px;
font-weight: 700; 
font-size: 14px;
color: var(--text-mute); 
cursor: pointer; 
transition: all .2s;
}

.tab-btn.active {
background: var(--text); 
border-color: var(--text); 
color: var(--white); 
}

.tab-content { 
display: none; 
}

.tab-content.active { 
display: block; 
}
  
/* ─── TITRE RNCP ──────────────────────────────────────── */

.rncp-wrap { 
display: grid; 
grid-template-columns: minmax(0, 1fr) minmax(280px, 0.9fr); 
gap: 48px; 
align-items: center;
}

.rncp-text,
.rncp-card {
min-width: 0;
}

.rncp-text h2 { 
font-size: clamp(1.625rem, 3vw, 2.25rem);
color: var(--text); 
margin-bottom: 16px; 
letter-spacing: -0.03em;
line-height: 1.12;
}

.rncp-text p { 
font-size: 15px; 
color: var(--text-mute);
margin-bottom: 24px; 
max-width: 550px;
}

.rncp-text h3 { 
font-weight: 800; 
font-size: 15px; 
color: var(--text); 
margin-bottom: 12px; 
}

.blocs-list { 
list-style: none; 
display: flex; 
flex-direction: column; 
gap: 8px; 
max-width: 550px;
}

.blocs-list li {
background: var(--bg-secondary); 
border-radius: 8px; 
padding: 10px 16px;
font-size: 14px; 
color: var(--text); 
display: flex; 
align-items: flex-start; 
gap: 10px;
}

.blocs-list li::before { 
content: ""; 
width: 8px; 
height: 8px; 
border-radius: 50%; 
background: var(--orange); 
flex-shrink: 0; 
margin-top: 6px; 
}

.rncp-card { 
background: var(--text); 
border-radius: var(--radius-xl); 
padding: 36px 32px; 
}

.rncp-card .label-tag { 
color: var(--orange); 
margin-bottom: 20px; 
}

.rncp-card .rncp-level { 
font-weight: 800; font-size: clamp(2.25rem, 5vw, 3.25rem); 
color: var(--white); 
line-height: 1; 
overflow-wrap: break-word;
}

.rncp-card .rncp-level span { 
font-size: 20px; 
color: rgba(255,255,255,.5); 
}

.rncp-card .rncp-title { 
font-size: 15px; 
color: rgba(255,255,255,.75); 
margin-top: 8px; 
margin-bottom: 4px; 
overflow-wrap: break-word;
}

.rncp-card .rncp-num { 
font-size: 12px; 
color: rgba(255,255,255,.35);
margin-bottom: 24px; 
}

.rncp-card hr { 
border: none; 
border-top: 1px solid rgba(255,255,255,.1); 
margin: 20px 0; 
}

.rncp-info-row { 
display: flex; 
align-items: flex-start; 
gap: 10px; 
font-size: 14px; 
color: rgba(255,255,255,.75); 
margin-bottom: 12px; 
overflow-wrap: break-word;
}

.rncp-info-row .material-symbols-outlined { 
font-size: 18px; 
color: var(--orange); 
flex-shrink: 0;
}

@media (max-width: 980px) {
  .rncp-wrap {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .rncp-card {
    padding: 28px 24px;
  }
}
 
  /* ─── MÉTIERS ─────────────────────────────────────────── */
  
.metiers-grid { 
display: grid; 
grid-template-columns: repeat(3, 1fr); 
gap: 16px; 
}

.metier-card {
    background: var(--white); 
	border: 1.5px solid var(--border-color); 
	border-radius: var(--radius-xl);
    padding: 24px 20px; 
	transition: border-color .2s, box-shadow .2s;
    min-width: 0;
}

.metier-card:hover {
box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.1);
transform: translateY(-4px);
}

.metier-icon { 
width: 2.5rem;
height: 2.5rem;
border-radius: var(--radius-lg);
background: var(--bg-light);
color: var(--orange);
display: flex; 
align-items: center; 
justify-content: center; 
margin-bottom: 1rem;
transition: var(--transition);
}

.metier-card:hover .metier-icon { 
background: var(--orange);
color: var(--text);
font-weight: 700;
}

.metier-card h3 { 
font-weight: 800; 
font-size: 15px; 
color: var(--text); 
margin-bottom: 6px;
overflow-wrap: break-word;
}

.metier-card p { 
font-size: 13px; 
color: var(--text-mute); 
}

.metier-salaire { 
display: inline-block; 
margin-top: 10px; 
font-size: 12px; 
font-weight: 700; 
color: #1a7a4a; 
background: #e6f7ee; 
padding: 3px 10px; 
border-radius: 20px; 
white-space: normal;
}

@media (max-width: 900px) {
  .metiers-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .metiers-grid {
    grid-template-columns: 1fr;
  }
}
 
/* ─── INTERVENANTS ────────────────────────────────────── */

.intervenants-wrap { 
display: grid; 
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); 
gap: 48px; 
align-items: start; 
}

.intervenants-wrap > * {
min-width: 0;
}
  
.intervenants-text h2 { 
font-size: clamp(1.625rem, 3vw, 2.25rem);
color: var(--text); 
margin-bottom: 16px; 
letter-spacing: -0.03em;
line-height: 1.12;
}

.intervenants-text p { 
font-size: 15px; 
color: var(--text-mute); 
margin-bottom: 20px; 
}

.intervenants-text .check-list { 
list-style: none;
}

.intervenants-text .check-list li { 
font-size: 14px; 
color: var(--text);
padding: 7px 0; display: flex; 
align-items: flex-start; 
gap: 8px; 
border-bottom: 1px solid var(--border-color); 
}

.intervenants-text .check-list li:last-child { 
border-bottom: none; 
}

.intervenants-text .check-list li::before { 
content: "✓"; 
color: var(--orange); 
font-weight: 800; 
flex-shrink: 0; 
margin-top: 1px; 
}

.intervenant-card {
background: var(--white); 
border: 1.5px solid var(--border-color); 
border-radius: var(--radius-xl);
padding: 24px 20px; 
display: flex; 
flex-direction: column; 
gap: 12px; 
margin-bottom: 16px;
min-width: 0;
}

.intervenant-card:hover {
border: 1.5px solid var(--orange); 
}

.intervenant-avatar {
width: 3rem;
height: 3rem;
background: var(--bg-light);
color: var(--orange);
border-radius: var(--radius-lg);
display: flex; 
align-items: center; 
justify-content: center;
font-weight: 800; 
font-size: 1rem;
transition: var(--transition);
}

.intervenant-card:hover .intervenant-avatar {
background: var(--orange);
color: var(--text);
}

.intervenant-card h4 { 
font-weight: 800; 
font-size: 15px; 
color: var(--text); 
}

.intervenant-card .role { 
font-size: 13px; 
color: var(--orange); 
font-weight: 700; 
}

.intervenant-card .matiere { 
font-size: 13px; 
color: var(--text-mute); 
padding-top: 10px; 
border-top: 1px solid var(--border-color); }

@media (max-width: 900px) {
  .intervenants-wrap {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

/* ─── FAQ ─────────────────────────────────────────────── */

.faq-list { 
  display: flex; 
  flex-direction: column; 
  gap: 12px; 
}
  
details.faq-item {
    border: 1.5px solid var(--border-color); 
	border-radius: var(--radius-xl);
    overflow: hidden; 
	background: var(--white);
    transition: border-color .2s;
  }
  
details.faq-item[open] { 
  border-color: var(--orange); 
}

details.faq-item summary 
{
list-style: none; 
cursor: pointer;
padding: 20px 24px; 
display: flex; 
justify-content: space-between; 
align-items: center;
gap: 16px;
font-weight: 800; 
font-size: 15px; 
color: var(--text);
}

details.faq-item summary::-webkit-details-marker { display: none; }

.faq-q .arrow {
    width: 28px; 
	height: 28px; 
	border-radius: 50%;
    background: #f0f0f0; 
	display: flex; 
	align-items: center; 
	justify-content: center;
    flex-shrink: 0; 
	transition: background .2s, transform .3s;
    font-size: 14px;
}

details.faq-item[open] summary .arrow { 

background: var(--orange); 
color: white; 
transform: rotate(180deg); }

.faq-a {
    padding: 0 24px 20px;
    font-size: 14px; 
	color: var(--text-mute); 
	line-height: 1.7;
  }

/* ─── RÉPERTOIRE FAQ ─────────────────────────────────── */

.faq-directory .section-header {
  max-width: 760px;
  margin-inline: auto;
}

.faq-category-nav {
  display: flex;
  max-width: 920px;
  margin: 0 auto;
  overflow-x: auto;
  border-bottom: 1px solid var(--border-color);
  scrollbar-width: thin;
  scroll-snap-type: x proximity;
}

.faq-category-link {
  min-width: 180px;
  flex: 1 0 auto;
  padding: 14px 18px;
  border-bottom: 3px solid transparent;
  color: var(--text-mute);
  text-decoration: none;
  text-align: left;
  scroll-snap-align: start;
  transition: border-color .2s, color .2s, background-color .2s;
}

.faq-category-link:hover,
.faq-category-link:focus-visible {
  border-bottom-color: var(--orange);
  color: var(--text);
  background: var(--bg-light);
}

.faq-category-link span,
.faq-category-link small {
  display: block;
}

.faq-category-link span {
  font-size: 15px;
  font-weight: 800;
}

.faq-category-link small {
  margin-top: 3px;
  font-size: 12px;
  color: var(--text-mute);
}

.faq-groups {
  display: grid;
  gap: 64px;
  max-width: 920px;
  margin: 56px auto 0;
}

.faq-group {
  scroll-margin-top: 96px;
}

.faq-group-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 20px;
}

.faq-group-title {
  margin: 0;
  color: var(--text);
  font-size: 26px;
  line-height: 1.2;
}

.faq-group-description {
  margin: 6px 0 0;
  color: var(--text-mute);
  font-size: 14px;
}

.faq-group-link {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 6px;
  color: var(--text);
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}

.faq-group-link:hover,
.faq-group-link:focus-visible {
  color: var(--orange-dark);
}

.faq-group-link .material-symbols-outlined {
  font-size: 18px;
}

@media (max-width: 640px) {
  .faq-category-link {
    min-width: 150px;
    padding-inline: 14px;
  }

  .faq-groups {
    gap: 48px;
    margin-top: 40px;
  }

  .faq-group-header {
    display: block;
  }

  .faq-group-link {
    margin-top: 12px;
  }

  details.faq-item summary {
    padding: 18px;
  }

  .faq-a {
    padding: 0 18px 18px;
  }
}
  
/* =========================
   PAGE ADMISSION
========================= */


/* ─── CRITÈRES D'ÉLIGIBILITÉ ──────────────────────────── */

.criteria-grid {
    display: grid; 
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); 
	gap: 20px;
	margin: 2rem 0 0 0;
  }

.criteria-card {
    background: var(--white); 
	border: 1.5px solid var(--border-color);
    border-radius: var(--radius-xl); 
	padding: 28px 24px;
    transition: border-color .2s, box-shadow .2s;
}

.criteria-card:hover { 
border-color: var(--orange); 
box-shadow: 0 4px 20px rgba(245,166,35,.12); 
}

.criteria-icon {
    width: 44px; 
	height: 44px; 
	border-radius: var(--radius-md); 
    background: var(--bg-light);
	display: flex; 
	align-items: center; 
	justify-content: center;
    font-size: 22px; 
	margin-bottom: 16px;
}

.criteria-card h3 { 
font-weight: 800; 
font-size: 16px; 
color: var(--text); 
margin-bottom: 8px; 
}

.criteria-card p { 
font-size: 14px; 
color: var(--text-mute); 
line-height: 1.6; 
}

.criteria-card .check-list { 
list-style: none; 
margin-top: 10px; 
}

.criteria-card .check-list li { 
font-size: 13.5px; 
color: var(--text); 
padding: 4px 0; 
display: flex; 
align-items: flex-start; 
gap: 8px; 
}

.criteria-card .check-list li::before { 
content: "✓"; 
color: var(--orange); 
font-weight: 800; 
flex-shrink: 0; 
margin-top: 1px; }
  
  
/* ─── ETAPES ──────────────────────────── */

.process-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr));
	gap: 20px;
}
.step-card {
	background: var(--white);
	padding: clamp(1.5rem, 3vw, 2.5rem);
	border-radius: var(--radius-xl); 
	min-height: 320px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	transition: var(--transition);
	box-shadow: 0 10px 40px rgba(0,0,0,0.03);
}

.step-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 20px 60px rgba(0,0,0,0.08);
}
		
.step-number {
	font-size: 3rem;
	font-weight: 800;
	color: var(--bg-light);
	transition: var(--transition);
}
.step-card:hover .step-number {
	color: var(--orange);
}
		
.step-card h3 {
	font-size: clamp(1.2rem, 2vw, 1.5rem);
	margin: 16px 0 12px;
}
		
.step-card p {
	color: var(--text-mute);
	font-size: 0.95rem;
	line-height: 1.6;
}
		
.step-icon-round {
	width: 50px;
	height: 50px;
	background: var(--bg-light);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: 24px;
	transition: var(--transition);
}
		
.step-card:hover .step-icon-round {
	background: var(--orange);
	color: #231b0f;
}

  /* ─── CALENDRIER ──────────────────────────────────────── */

.calendar-grid { 
display: grid; 
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); 
gap: 16px; 
}

.cal-card {
    border-radius: var(--radius-xl); 
	overflow: hidden;
    border: 1.5px solid var(--border-color);
    transition: transform .2s, box-shadow .2s;
	display: flex; 
	flex-direction: column;
}

.cal-card:hover { 
transform: translateY(-3px); 
box-shadow: 0 8px 24px rgba(0,0,0,.08); 
}

.cal-card.highlight { 
border-color: var(--orange); 
}
.cal-header {
    background: var(--text); 
	color: var(--white);
    padding: 14px 20px;
    font-weight: 800; 
	font-size: 15px;
}

.cal-card.highlight .cal-header { 
background: var(--orange); 
}

.cal-body { 
background: var(--white); 
padding: 18px 20px; 
display: flex; 
flex-direction: column; 
flex: 1;
}

.cal-body .date { 
font-weight: 700; 
font-size: 20px; 
color: var(--text); 
}

.cal-body .desc { 
font-size: 13px; 
color: var(--text-soft); 
margin-top: 4px; 
flex: 1;
}

.cal-body .tag {
  display: inline-block; 
  margin-top: 10px; 
  align-self: flex-start;
  font-size: 11px; 
  font-weight: 700; 
  letter-spacing: .06em; 
  text-transform: uppercase;
  color: var(--orange); 
  background: var(--bg-light); 
  padding: 3px 10px; 
  border-radius: var(--radius-2xl); 
}

.cal-body .tag.urgent { 
color: #c0392b; 
background: #fdecea; 
}
  

  
/* =========================
   PAGE FINANCEMENT
========================= */

/* ─── COÛT DE LA FORMATION ────────────────────────────── */

.cout-grid { 
display: grid; 
grid-template-columns: repeat(3, 1fr);
gap: 20px; 
max-width: 1000px;
margin: 0 auto;
}

.cout-card {
border-radius: var(--radius-xl); 
overflow: hidden;
border: 1.5px solid var(--border-color);
display: flex; 
flex-direction: column;
transition: transform .2s, box-shadow .2s;
min-width: 0;
}

.cout-card:hover { 
transform: translateY(-3px); 
box-shadow: 0 8px 24px rgba(0,0,0,.08); 
}

.cout-card.alternance { 
border-color: var(--orange); 
}

.cout-header {
    background: var(--text); 
	color: var(--white);
    padding: 16px 24px;
    font-weight: 700; 
	font-size: 15px;
}

.cout-card.alternance .cout-header { 
background: var(--orange); 
}

.cout-body { 
background: var(--white); 
padding: 28px 24px; 
flex: 1; 
display: flex; 
flex-direction: column; 
}

.cout-price {
font-weight: 700; 
font-size: 40px;
color: var(--text); 
line-height: 1;
letter-spacing:-0.03em;
}

.cout-price span { 
font-size: 20px; 
font-weight: 700; 
color: var(--text-mute); 
}

.cout-price .cvec { 
font-size: 13px; 
font-weight: 600; 
color: var(--text-mute); 
display: block; 
margin-top: 6px; 
letter-spacing:-0.00em;
}

.cout-desc { 
font-size: 14px; 
color: var(--text-mute); 
margin-top: 10px; 
flex: 1; }

.cout-desc-scenarios p + p {
margin-top: 0.75rem;
}

.cout-tag {
display: inline-block; 
margin-top: 16px; 
align-self: flex-start;
font-size: 11px; 
font-weight: 700; 
letter-spacing: .06em; 
text-transform: uppercase;
padding: 4px 12px; 
border-radius: var(--radius-2xl);
  }
  
.cout-tag.green { 
color: #1a7a4a; 
background: #e6f7ee; }

.cout-tag.orange { 
color: var(--orange-dark);
background: var(--bg-light); 
}

.cout-total {
margin-top: 32px;
background: var(--bg-secondary); 
border-radius: var(--radius-xl); 
border: 1.5px solid var(--border-color);
padding: 24px 28px;
display: flex; 
align-items: center; 
justify-content: space-between; 
gap: 24px; 
flex-wrap: wrap;
}

.cout-total p { 
font-size: 15px; 
color: var(--text-mute); 
max-width: 520px; }

.cout-total strong { 
font-weight: 800; 
font-size: 1.5rem; 
color: var(--text); 
white-space: nowrap; 
}

.cvec-faq {
font-size: 13px; 
color: var(--text-mute);
}
.cvec-faq a {
color: var(--orange);
text-decoration: none; 
font-weight: 700
}

@media (max-width: 900px) {
	.cout-grid {
	grid-template-columns: 1fr;
	max-width: 640px;
	}
}

@media (max-width: 640px) {
	.cout-header {
	padding: 14px 18px;
	}

	.cout-body {
	padding: 24px 20px;
	}

	.cout-price {
	font-size: clamp(2rem, 10vw, 2.5rem);
	}

	.cout-total {
	align-items: flex-start;
	padding: 20px;
	}

	.cout-total strong {
	white-space: normal;
	}
}

/* ─── SECTION ALTERNANCE ────────────────────────────── */

.alternance-wrap {
display: grid; 
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); 
gap: 40px; 
align-items: center;
max-width: 1000px;
margin: 0 auto;
}

.alternance-wrap > * {
min-width: 0;
}

.alternance-text h2 { 
font-size: clamp(1.625rem, 3vw, 2.25rem);
color: var(--text); 
margin-bottom: 16px; 
letter-spacing: -0.03em;
line-height: 1.12;
}

.alternance-text p { 
font-size: 15px; 
color: var(--text-mute); 
margin-bottom: 24px; 
}

.alternance-text .check-list { 
list-style: none; 
}

.alternance-text .check-list li { 
font-size: 14px; 
color: var(--text); 
padding: 6px 0; 
display: flex; 
align-items: flex-start; 
gap: 8px; 
border-bottom: 1px solid var(--border-color); 
}

.alternance-text .check-list li:last-child { 
border-bottom: none; 
}

.alternance-text .check-list li::before { 
content: "✓"; color: var(--orange); 
font-weight: 800; 
flex-shrink: 0; 
margin-top: 2px; 
}

.alternance-card {
background: var(--text); 
border-radius: var(--radius-xl);
padding: 36px 32px; 
color: var(--white);
min-width: 0;
}

.alternance-card .label-tag { 
color: var(--orange); 
margin-bottom: 24px; 
}

.alternance-card .salaire-label { 
font-size: 13px; 
color: rgba(255,255,255,.6); 
margin-bottom: 4px; }

.alternance-card .salaire-row { 
display: flex; 
align-items: baseline; 
gap: 6px; 
margin-bottom: 20px; 
flex-wrap: wrap; }

.alternance-card .salaire-montant { 
font-weight: 800; 
font-size: clamp(2rem, 7vw, 2.25rem); 
color: var(--white); 
overflow-wrap: anywhere;
}

.alternance-card .salaire-detail { 
font-size: 13px; 
color: rgba(255,255,255,.5); 
}

.alternance-card hr { 
border: none; 
border-top: 1px solid rgba(255,255,255,.1); 
margin: 20px 0; 
}

.alternance-card .info-row { 
display: flex; 
align-items: flex-start; 
gap: 10px; 
margin-bottom: 12px; 
font-size: 14px; 
color: rgba(255,255,255,.75); 
overflow-wrap: anywhere; }

.alternance-card .info-row .material-symbols-outlined { 
font-size: 18px; 
color: var(--orange); }

@media (max-width: 900px) {
	.alternance-wrap {
	grid-template-columns: 1fr;
	gap: 28px;
	}

	.alternance-card {
	padding: 28px 24px;
	}
}

@media (max-width: 520px) {
	.alternance-card {
	padding: 24px 20px;
	}
}


/* ─── OPTIONS DE FINANCEMENT ──────────────────────────── */

.financement-grid { 
display: grid; 
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); 
gap: 20px; 
max-width: 1000px;
margin: 0 auto;
padding-top: 1rem;
}

.financement-card {
    background: var(--white); 
	border: 1.5px solid var(--border-color);
    border-radius: var(--radius-xl); 
	padding: 28px 24px;
    display: flex; 
	flex-direction: column;
    transition: border-color .2s, box-shadow .2s;
}

.financement-card:hover { 
  border-color: var(--orange); 
  box-shadow: 0 4px 20px rgba(245,166,35,.12); 
}

.financement-icon {
    width: 44px; 
	height: 44px; 
	border-radius: var(--radius-lg); 
    background: var(--bg-light); 
	display: flex; 
	align-items: center; 
	justify-content: center;
    margin-bottom: 16px;
}

.financement-icon .material-symbols-outlined { 
font-size: 22px; 
color: var(--orange); 
}

.financement-card h3 { 
font-weight: 800; 
font-size: 17px; 
color: var(--text); 
margin-bottom: 10px; 
}

.financement-card p { 
font-size: 0.875rem;
color: var(--text-mute); 
line-height: 1.5; 
flex: 1; 
}

.financement-card .check-list { 
list-style: none; 
margin-top: 1rem;
}

.financement-card .check-list li { 
font-size: 0.77rem; 
color: var(--text); 
padding: 4px 0; 
display: flex; 
align-items: flex-start; 
gap: 8px; 
}

.financement-card .check-list li::before { 
content: "✓"; 
color: var(--orange);
 font-weight: 800; 
 flex-shrink: 0; 
 margin-top: 1px; 
}

.financement-amount {
  color: var(--orange);
  font-weight: 800;
}
 
/* =========================
   PAGE ECOLE
========================= */


/* ─── PRÉSENTATION ────────────────────────────────────── */

.ecole-presentation-wrap { 
display: grid; 
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); 
gap: 64px; 
align-items: center; 
}

.ecole-presentation-wrap > * {
min-width: 0;
}

.ecole-presentation-text h2 { 
font-weight: 800; 
font-size: clamp(1.625rem, 3vw, 2.25rem); 
color: var(--text); 
margin-bottom: 20px; 
max-width: 20ch;
}

.ecole-presentation-text p { 
font-size: 15px; 
color: var(--text-mute); 
margin-bottom: 16px; 
line-height: 1.75; 
}

.ecole-presentation-text p strong { 
color: var(--text);
 font-weight: 700; 
}

.ecole-presentation-visual {
    background: var(--text); border-radius: 16px;
    padding: 40px 36px; color: var(--white);
	min-width: 0;
}
.ecole-presentation-visual .ecole-stat-row {
display: flex; 
align-items: center; 
gap: 20px; 
padding: 16px 0; 
border-bottom: 1px solid rgba(255,255,255,.1); 
}

.ecole-presentation-visual .ecole-stat-row:last-child { 
border-bottom: none; 
}

.ecole-presentation-visual .ecole-stat-num { 
font-weight: 800; 
font-size: 28px; 
color: var(--orange); 
min-width: 80px; 
flex-shrink: 0; 
}

.ecole-presentation-visual .ecole-stat-desc { 
font-size: 14px; 
color: rgba(255,255,255,.7); 
}

.ecole-founders-grid { 
display: grid; 
grid-template-columns: repeat(3, minmax(0, 1fr)); 
gap: 20px; 
margin-top: 48px; 
}

.ecole-founder-card {
    background: var(--white); 
	border: 1.5px solid var(--border-color); border-radius: var(--radius-xl);
    overflow: hidden; 
	transition: border-color .2s, box-shadow .2s;
	min-width: 0;
}
  
.ecole-founder-card:hover { 
border-color: var(--orange); 
box-shadow: 0 4px 20px rgba(245,166,35,.1); 
}
  
.ecole-founder-photo {
    width: 100%; 
	aspect-ratio: 1; 
	background: var(--bg-secondary);
    overflow: hidden;
    display: flex; 
	align-items: center; 
	justify-content: center;
    border-bottom: 1.5px solid var(--border-color);
}

/* Le contour intérieur reste visible malgré le débordement masqué de la carte. */
.ecole-founder-photo:focus-visible {
  outline: 3px solid var(--orange);
  outline-offset: -3px;
}

.ecole-founder-photo .material-symbols-outlined {
font-size: 48px; 
color: var(--border-color); 
}

.ecole-founder-image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.ecole-founder-image-mhamed {
  transform: translateY(1%) scale(1.22);
}

.ecole-founder-image-victor {
  transform: translateY(10%) scale(1.35);
  object-position: center 1%;
}

.ecole-founder-image-sylvie {
  object-position: center 10%;
}

.ecole-founder-info { 
padding: 20px; 
}

.ecole-founder-info h4 { 
font-weight: 800; 
font-size: 16px; 
color: var(--text); 
margin-bottom: 4px; 
}

.ecole-founder-info .ecole-founder-role { 
font-size: 13px; 
color: var(--orange); 
font-weight: 700; 
}


/* ─── MISSION / VALEURS ───────────────────────────────── */
  
.ecole-valeurs-grid { 
  display: grid; 
  grid-template-columns: repeat(3, minmax(0, 1fr)); 
  gap: 20px; 
  }

.ecole-valeur-card {
    background: var(--white); 
	border: 1.5px solid var(--border-color); 
	border-radius: var(--radius-xl);
    padding: 32px 24px; 
	transition: border-color .2s, box-shadow .2s;
	min-width: 0;
  }
.ecole-valeur-card:hover { 
border-color: var(--orange); 
box-shadow: 0 4px 20px rgba(245,166,35,.1); 
}

.ecole-valeur-icon { 
width: 48px; 
height: 48px; 
border-radius: var(--radius-md); 
background: var(--bg-light); 
display: flex; 
align-items: center; 
justify-content: center; 
margin-bottom: 20px; 
}

.ecole-valeur-icon .material-symbols-outlined { 
font-size: 24px; 
color: var(--orange); 
}

.ecole-valeur-card h3 { 
font-weight: 800; 
font-size: 17px; 
color: var(--text); 
margin-bottom: 10px; 
}

.ecole-valeur-card p { 
font-size: 14px; 
color: var(--text-mute); 
line-height: 1.65; 
}

/* ─── LOCAUX ──────────────────────────────────────────── */

  .ecole-locaux-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-bottom: 32px; }
  .ecole-local-card {
    background: var(--white); border: 1.5px solid var(--border-color); border-radius: var(--radius-xl);
    padding: 28px 24px; transition: border-color .2s, box-shadow .2s;
	min-width: 0;
  }
  .ecole-local-card:hover { border-color: var(--orange); box-shadow: 0 4px 20px rgba(245,166,35,.1); }
  .ecole-local-icon { width: 44px; height: 44px; border-radius: 10px; background: var(--bg-light); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
  .ecole-local-icon .material-symbols-outlined { font-size: 22px; color: var(--orange); }
  .ecole-local-card h3 { font-weight: 800; font-size: 16px; color: var(--text); margin-bottom: 8px; }
  .ecole-local-card p { font-size: 14px; color: var(--text-mute); line-height: 1.65; }
  .ecole-local-card ul { list-style: none; margin-top: 10px; }
  .ecole-local-card ul li { font-size: 13px; color: var(--text-mute); padding: 3px 0; padding-left: 14px; position: relative; }
  .ecole-local-card ul li::before { content: "-"; position: absolute; left: 0; color: var(--orange); }
  .ecole-localisation-banner {
    background: var(--text); border-radius: var(--radius-xl); padding: 24px 32px;
    display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
  }
  .ecole-localisation-banner p { color: rgba(255,255,255,.75); font-size: 15px; }
  .ecole-localisation-banner p strong { color: var(--white); }
/*   .ecole-localisation-banner .map-link {
  }
  .localisation-banner .map-link:hover { } */

@media (max-width: 980px) {
	.ecole-presentation-wrap {
	grid-template-columns: 1fr;
	gap: 36px;
	}

	.ecole-presentation-visual {
	padding: 32px 28px;
	}

	.ecole-founders-grid,
	.ecole-valeurs-grid,
	.ecole-locaux-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.ecole-presentation-wrap {
	gap: 28px;
	}

	.ecole-presentation-text h2 {
	max-width: none;
	}

	.ecole-presentation-visual {
	padding: 28px 22px;
	}

	.ecole-presentation-visual .ecole-stat-row {
	align-items: flex-start;
	gap: 14px;
	}

	.ecole-presentation-visual .ecole-stat-num {
	min-width: 64px;
	font-size: 24px;
	}

	.ecole-founders-grid,
	.ecole-valeurs-grid,
	.ecole-locaux-grid {
	grid-template-columns: 1fr;
	}

	.ecole-valeur-card,
	.ecole-local-card {
	padding: 26px 20px;
	}

	.ecole-localisation-banner {
	padding: 22px 20px;
	align-items: flex-start;
	}
}
 
/* ─── PARTENAIRES ─────────────────────────────────────── */
  
/* .ecole-partenaires-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; margin-bottom: 48px; }
.ecole-partenaires-intro h2 { font-weight: 900; font-size: clamp(1.625rem, 3vw, 2.25rem); color: var(--text); margin-bottom: 16px; }

  .ecole-partenaires-intro p { font-size: 15px; color: var(--text-mute); line-height: 1.75; }

  .ecole-partenaires-types { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }

.ecole-partenaire-type {
    background: var(--white); border: 1.5px solid var(--border); border-radius: var(--radius);
    padding: 24px 20px; text-align: center;
    transition: border-color .2s, box-shadow .2s;
  }
  .ecole-partenaire-type:hover { border-color: var(--orange); box-shadow: 0 4px 20px rgba(245,166,35,.1); }
  .ecole-partenaire-type .material-symbols-outlined { font-size: 32px; color: var(--orange); margin-bottom: 12px; display: block; }
  .ecole-partenaire-type h4 { font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 15px; color: var(--text); margin-bottom: 6px; }
  .ecole-partenaire-type p { font-size: 13px; color: var(--text-mute); }
  .ecole-partenaires-cta {
    margin-top: 32px; background: var(--bg); border-radius: var(--radius);
    border: 1.5px solid var(--border); padding: 24px 28px;
    display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
  }
  .ecole-partenaires-cta p { font-size: 15px; color: var(--text-mute); max-width: 500px; }
  .ecole-partenaires-cta a {
    background: var(--text); color: var(--white); border-radius: 8px;
    padding: 10px 20px; font-family: 'Nunito', sans-serif; font-weight: 700; font-size: 14px;
    text-decoration: none; white-space: nowrap; display: inline-block;
    transition: background .2s;
  }
  .ecole-partenaires-cta a:hover { background: #2d3258; } */

/* =========================
   PAGE BROCHURE
========================= */

.brochure-section {
	padding: 4rem 0 5rem;
}

.brochure-layout {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: start;
}

.brochure-preview-title {
	max-width: 18ch;
	margin-bottom: 1rem;
	color: var(--text);
	font-size: clamp(1.625rem, 3vw, 2.25rem);
	line-height: 1.08;
	font-weight: 800;
}

.brochure-preview-text {
	max-width: 34rem;
	margin-bottom: 1.75rem;
	color: var(--text-mute);
	line-height: 1.75;
}

.brochure-mockup-wrap {
	display: grid;
	grid-template-columns: minmax(260px, 320px) minmax(0, 1fr);
	gap: 2rem;
	align-items: center;
}

.brochure-points {
	display: grid;
	gap: 0.85rem;
	list-style: none;
}

.brochure-points li {
	display: grid;
	grid-template-columns: 1.6rem 1fr;
	gap: 0.65rem;
	align-items: start;
	color: var(--text-soft);
	line-height: 1.5;
}

.brochure-points .material-symbols-outlined {
	color: var(--orange);
	font-size: 1.25rem;
	margin-top: 0.1rem;
}

@media (max-width: 980px) {
	.brochure-layout {
	grid-template-columns: 1fr;
	}
}

.brochure-preview-visual {
  max-width: 240px;
  margin: 0;
  border-radius: 0.9rem;
  transform: rotate(-3deg);
  box-shadow: 0 24px 50px rgba(27, 31, 59, 0.18);
}

.brochure-preview-img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: inherit;
}

.brochure-preview-pages {
  display: grid;
  place-items: center;
  width: min(100%, 320px);
  margin-inline: auto;
  padding: 1.5rem 1rem 3rem;
}

.brochure-preview-pages .brochure-preview-visual {
  grid-area: 1 / 1;
  width: 82%;
  max-width: none;
  transform-origin: center;
}

.brochure-preview-visual-main {
  z-index: 1;
  transform: rotate(-13deg);
}

.brochure-preview-visual-secondary {
  z-index: 2;
  transform: translateY(1rem) rotate(6deg);
}

@media (max-width: 640px) {
	.brochure-section {
        padding: 3rem 0;
	}

	.brochure-mockup-wrap {
	grid-template-columns: 1fr;
	}

}
	
/* =========================
   PAGE CONTACT
========================= */

.infos-contact {
	padding: 4rem 0 5rem;
}

/* ─── CONTACT GRID ────────────────────────────────────── */
.contact-grid { 
display: grid; 
grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
gap: clamp(2rem, 5vw, 4.5rem);
align-items: start;
}
 
/* ─── INFOS PRATIQUES ─────────────────────────────────── */

.infos-title { 
	max-width: 18ch;
	margin-bottom: 1rem;
	color: var(--text);
	font-size: clamp(1.625rem, 3vw, 2.25rem);
	line-height: 1.08;
	font-weight: 800;
}

.infos-text {
	max-width: 34rem;
	margin-bottom: 1.75rem;
	color: var(--text-mute);
	line-height: 1.75;
}

.info-cards { 
display: flex; 
flex-direction: column; 
gap: 12px; 
margin-bottom: 32px; 
}

.info-card {
    background: var(--bg); 
	border-radius: var(--radius-xl);
    border: 1.5px solid var(--border-color); 
	padding: 20px 24px;
    display: flex; 
	align-items: flex-start; 
	gap: 16px;
    transition: border-color .2s;
}

.info-card:hover { 
border-color: var(--orange); 
}

.info-card-icon {
    width: 40px; 
	height: 40px; 
	border-radius: 10px;
    background: var(--bg-light); 
	display: flex; 
	align-items: center; 
	justify-content: center;
	flex-shrink: 0;
}


.info-card-icon .material-symbols-outlined { 
font-size: 20px; 
color: var(--orange); 
}

.info-card h4 { 
font-weight: 800; 
font-size: 14px; 
color: var(--text); 
margin-bottom: 4px;
}

.info-card p { 
font-size: 14px; 
color: var(--text-mute); 
}

.info-card a { 
color: var(--text-mute); 
text-decoration: none; 
transition: color .2s; 
}

.info-card a:hover { 
color: var(--orange); 
}

.horaires-card {
    background: var(--text); 
	border-radius: var(--radius-xl); 
	padding: 24px;
}

.horaires-card h4 { 
  font-weight: 800; 
  font-size: 15px; 
  color: var(--white); 
  margin-bottom: 16px; 
}

.horaire-row { 
display: flex; 
justify-content: space-between; 
font-size: 14px; 
padding: 6px 0; 
border-bottom: 1px solid rgba(255,255,255,.08); }

.horaire-row:last-child { 
border-bottom: none; 
}

.horaire-row .jour { 
color: rgba(255,255,255,.6); 
}

.horaire-row .heure { 
color: var(--white); 
font-weight: 700; 
}

.horaire-row .heure.ferme { 
color: rgba(255,255,255,.3); 
}
 
/* ─── ACCÈS & PLAN ────────────────────────────────────── */

.acces-grid { 
display: grid; 
grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
gap: clamp(2rem, 5vw, 4.5rem);
align-items: start;
}

@media (max-width: 980px) {
  .contact-grid,
  .acces-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .info-card > div:last-child {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .acces-grid .map-embed {
    width: 100%;
    height: clamp(360px, 60vw, 440px);
    aspect-ratio: auto;
  }
}

.acces-text h2 {
  font-weight: 800; 
  font-size: clamp(1.625rem, 3vw, 2.25rem);
  color: var(--text); 
  margin-bottom: 16px; 
  }
  
.acces-text p { 
font-size: 15px; 
color: var(--text-mute);
margin-bottom: 24px; 
}
  
.acces-list { 
list-style: none; 
display: flex; 
flex-direction: column; 
gap: 12px; 
}
  
.acces-list li { 
display: flex; 
align-items: flex-start; 
gap: 12px; 
font-size: 14px; 
color: var(--text); 
}

.acces-list .material-symbols-outlined { 
  font-size: 20px; 
  color: var(--orange); 
  flex-shrink: 0; 
  margin-top: 1px; 
}

.map-embed {
  overflow: hidden;
  border: 1.5px solid var(--border-color);
  border-radius: var(--radius-xl);
  aspect-ratio: 4 / 3;
  background: var(--bg);
}

.map-embed iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.map-consent-placeholder {
  width: 100%;
  height: 100%;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .625rem;
  text-align: center;
  background: var(--bg-secondary);
}

.map-consent-placeholder[hidden],
.map-embed iframe[hidden] {
  display: none !important;
}

.map-consent-placeholder > .material-symbols-outlined {
  color: var(--orange);
  font-size: 2.5rem;
}

.map-consent-placeholder strong {
  color: var(--text);
  font-size: 1rem;
}

.map-consent-placeholder p {
  max-width: 36ch;
  margin: 0;
  color: var(--text-soft);
  font-size: .82rem;
}

.map-consent-actions {
  margin-top: .375rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .75rem 1rem;
}

.map-consent-actions a {
  color: var(--text-soft);
  font-size: .8rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.map-consent-actions a:hover {
  color: var(--orange-dark);
}
