/* FONTS */
@font-face{
  font-family: "Elena";
  src: url("assets/ElenaWebBasicRegular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face{
  font-family: "Elena";
  src: url("assets/ElenaWebBasicBold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face{
  font-family: "Elena";
  src: url("assets/ElenaWebBasicRegularItalic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face{
  font-family: "Sporting Grotesque";
  src: url("assets/Sporting_Grotesque-Bold_web.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
:root {
  --blue: #1f4dff;
  --bg: #f6f2e9;
  --text: #111111;
  --muted: rgba(0,0,0,0.55);
  --grid-gap: 30px;
  
  /* TES VARIABLES AJUSTÉES */
  --font-size-sporting: 19px; 
  --font-size-elena: 15px;
}

/* RESET */
* { margin: 0; padding: 0; box-sizing: border-box; }
a { text-decoration: none; color: inherit; }

body{ scrollbar-width: none; }
body::-webkit-scrollbar{ height: 0; }

body {
  color: var(--text);
  font-family: "Elena", Georgia, serif;
  margin: 0;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
  overflow-x: auto;
}

.stage { max-width: 1200px; margin: 0 auto; padding: 18px 40px; }

/* SPORTING GROTESQUE */
.main-title {
  font-family: "Sporting Grotesque", sans-serif;
  font-size: var(--font-size-sporting) !important;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: -2%; /* Ta modification */
  color: var(--text);
}

/* MARGE TITRE / PARAGRAPHE UNIFIÉE */
.case .main-title {
  margin-top: 4px;
  margin-bottom: 12px;
}

/* ELENA UNIFIÉE */
.elena-text, p, article, aside, .case__date, .topbar {
  font-size: var(--font-size-elena) !important;
  line-height: 1.5;
}
.elena-text strong, p strong, article strong, aside strong, .case__date strong, .topbar strong {
  font-size:14px !important;
}
article p {
    margin-bottom:1.5em;
}

/* GRILLES */
.grid-3, .footer-layout { 
  display: grid; 
  grid-template-columns: repeat(3, 1fr); 
  gap: var(--grid-gap); 
  margin-top: 20px; 
}

.grid-3.current {
    gap:18px;
}

.span-all { grid-column: 1 / -1; }
.span-2 { grid-column: span 2; }

/* TOPBAR */
.topbar { 
    display: grid; 
    grid-template-columns: repeat(3, 1fr); 
    gap: var(--grid-gap); 
    align-items: baseline; 
    padding-bottom: 20px; 
}
.topbar__center { text-align: left; }
.topbar__right { text-align: left; }
.topbar__availability { color: var(--blue); font-weight: 700; }
.topbar__contact--mail { color: var(--blue); font-weight: 700; }
.topbar__sep { padding: 0 4px; color: rgba(0,0,0,0.3); }

/* HERO */
.hero { margin-top: 5px; margin-bottom: 55px; }
.hero__headline { max-width: 106%; margin-left: -3%; display: block; }
.hero__sub { font-weight: 700; font-size: 17px !important; margin-top: 12px; }
.hero__sub strong { font-size: 16px !important; }

/* HELPERS */
.section-title-spacing { margin-bottom: 8px; }
.no-margin { margin: 0; }
.margin-bottom-intro { margin-bottom: 22px; }
.transition-text { color: var(--blue); margin: 70px 0 0 0; font-size: 17px !important;}
.transition-text strong { font-size: 16px !important;}
.no-margin-top { margin:0; }
.txt-blue { color: var(--blue); }
.txt-blue-bold { color: var(--blue); font-weight: 700; font-size:14px !important;}
.link-dark { font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.link-underline { text-decoration: underline; text-underline-offset: 2px; }
.txt-blue .link-underline { color: var(--blue); }
.case__date { color: var(--muted); text-transform: none; }
.footer-layout {
  margin-top: 20px;
  align-items: start;
}
.sub-cols { 
  display: grid; 
  grid-template-columns: 1fr 1fr; 
  gap: var(--grid-gap); 
}
.bonus-column {
  display: flex;
  flex-direction: column;
  gap: 28px; 
}
.stage{
  padding: 22px 0 80px;              
}
.stage::before{
  content:"";
  display:block;
  width: min(1120px, calc(100% - 2 * 24px));
  height: 95%;
  background: #FEFDF7;
  border-radius: 0px;                
  margin: 3% auto 0;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 0;
  bottom: 0;
  z-index: 0;
}
.stage{
  position: relative;
}
.page{
  position: relative;
  z-index: 1;
}
.tilt{
  transform: rotate(-1.5deg);
  transform-origin: 50% 0%;
}

.tilt{
  margin-top: 8px; 
}

@media (max-width: 1200px) {
  .page { width:90%;}
}
@media (max-width: 900px) {
  .grid-3, .footer-layout, .sub-cols, .topbar { grid-template-columns: 1fr; gap:0; }
  .span-2 { grid-column: span 1; }
  .stage::before{ width: min(1120px, calc(100% - 2 * 14px)); }
  .stage{
    max-width: none;
    width: 100%;
    margin: 0;
    padding-left: 0;
    padding-right: 0;
  }
}