
/* ==========================================================================
   STUDIO LE LABORATOIRE.® — V5
   ========================================================================== */
.studio-page{--studio-blue:#5078ff;--studio-orange:#ff9b35;--studio-green:#43d17b}
.studio-main{position:relative;z-index:2}
.studio-hero{position:relative;min-height:82svh;display:flex;align-items:flex-end;padding:150px 0 90px;overflow:hidden;border-bottom:1px solid var(--line)}
.studio-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,6,.98) 0 42%,rgba(5,5,6,.42) 70%,rgba(5,5,6,.82)),radial-gradient(circle at 76% 42%,rgba(227,6,19,.24),transparent 30%)}
.studio-hero-visual{position:absolute;inset:0;overflow:hidden}
.studio-wave{position:absolute;left:43%;right:3%;top:38%;height:180px;display:flex;align-items:center;gap:5px;opacity:.62;mask-image:linear-gradient(90deg,transparent,#000 16%,#000 80%,transparent)}
.studio-wave i{flex:1;max-width:7px;height:calc(8px + (sin(var(--wave-index) * .7) + 1) * 48px);border-radius:999px;background:linear-gradient(to top,rgba(227,6,19,.16),var(--red),rgba(255,255,255,.65));box-shadow:0 0 14px rgba(227,6,19,.45);animation:studioWave 2.4s ease-in-out infinite;animation-delay:calc(var(--wave-index) * -45ms)}
@keyframes studioWave{50%{transform:scaleY(.35);opacity:.35}}
.studio-rings i{position:absolute;border:1px solid rgba(227,6,19,.16);border-radius:50%;right:9%;top:16%;width:42vw;height:42vw;box-shadow:inset 0 0 80px rgba(227,6,19,.035),0 0 80px rgba(227,6,19,.04);animation:studioRing 20s linear infinite}
.studio-rings i:nth-child(2){transform:scale(.7);animation-direction:reverse;animation-duration:15s}.studio-rings i:nth-child(3){transform:scale(.4);animation-duration:11s}
@keyframes studioRing{to{rotate:360deg}}
.studio-hero-content{position:relative;z-index:2}
.studio-hero h1{margin:0;font:700 clamp(48px,8.6vw,132px)/.9 Space Grotesk,sans-serif;letter-spacing:-.055em}.studio-hero h1 em{font-style:normal;color:transparent;-webkit-text-stroke:1px var(--red);filter:drop-shadow(0 0 20px rgba(227,6,19,.3))}
.studio-hero p{max-width:680px;margin:26px 0;color:var(--muted);font-size:clamp(15px,1.5vw,19px);line-height:1.75}
.studio-hero-meta{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px}.studio-hero-meta span{padding:9px 12px;border-radius:999px;border:1px solid var(--line2);background:rgba(255,255,255,.025);font:500 10px JetBrains Mono,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.studio-section{padding:95px 0}.studio-section:nth-of-type(even){background:rgba(255,255,255,.014);border-block:1px solid var(--line)}
.studio-section-head{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:34px}.studio-section-head h2{margin:0;font:700 clamp(31px,5vw,62px)/1 Space Grotesk}.studio-section-head p{margin:12px 0 0;color:var(--muted)}
.calendar-legend{display:flex;gap:14px;flex-wrap:wrap}.calendar-legend span{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px}.calendar-legend i{width:9px;height:9px;border-radius:3px}.legend-recording{background:var(--studio-orange)}.legend-location{background:var(--studio-blue)}.legend-closed{background:#333}
.calendar-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:18px;padding:8px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.02)}
.calendar-nav a{display:flex;align-items:center;gap:10px;min-height:46px;padding:0 14px;color:var(--muted);font-size:12px;border-radius:12px}.calendar-nav a:last-child{justify-content:flex-end}.calendar-nav a:hover{color:#fff;background:rgba(255,255,255,.04)}.calendar-nav a span{font-size:19px;color:var(--red)}.calendar-today{justify-content:center!important;border:1px solid var(--line)}.calendar-today.is-active{border-color:rgba(227,6,19,.4);background:rgba(227,6,19,.09);color:#fff}
.calendar-desktop{display:block}.calendar-mobile{display:none}
.calendar-scroll{overflow:auto;border:1px solid var(--line);border-radius:22px;background:rgba(7,7,9,.84);box-shadow:0 32px 80px rgba(0,0,0,.35);scrollbar-color:var(--red) #111}
.studio-calendar{width:100%;min-width:1040px;border-collapse:separate;border-spacing:0;table-layout:fixed}.studio-calendar th,.studio-calendar td{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.studio-calendar thead th{position:sticky;top:0;z-index:4;height:78px;padding:12px;background:rgba(13,13,16,.97);backdrop-filter:blur(16px);font:600 12px Space Grotesk}.studio-calendar thead th span,.studio-calendar thead th small{display:block}.studio-calendar thead th small{margin-top:5px;font:500 8px JetBrains Mono;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.studio-calendar thead th.is-today{color:var(--red);box-shadow:inset 0 2px var(--red)}.studio-calendar thead th.is-sunday{color:#555}
.time-heading,.time-cell{position:sticky!important;left:0;z-index:5!important;width:82px;background:#0b0b0d!important}.time-cell{height:44px;padding:0 10px;font:500 10px JetBrains Mono;color:var(--muted);text-align:center}
.calendar-slot{height:44px;padding:5px 7px;text-align:center;position:relative;transition:background .25s,border-color .25s}.calendar-slot strong,.calendar-slot small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-slot strong{font:600 10px Space Grotesk}.calendar-slot small{margin-top:2px;font:500 7px JetBrains Mono;text-transform:uppercase;letter-spacing:.05em;opacity:.75}
.calendar-slot.is-available{background:rgba(255,255,255,.006)}.calendar-slot.is-available:hover{background:rgba(255,255,255,.035)}.calendar-slot.is-past{opacity:.22;background:repeating-linear-gradient(135deg,transparent 0 6px,rgba(255,255,255,.03) 6px 7px)}.calendar-slot.is-closed{color:#4b4b50;background:repeating-linear-gradient(135deg,#0b0b0d 0 7px,#101014 7px 14px)}.calendar-slot.is-current{box-shadow:inset 0 0 0 1px var(--red)}.calendar-slot.is-current::after{content:"";position:absolute;right:5px;top:5px;width:5px;height:5px;border-radius:50%;background:var(--red);box-shadow:0 0 10px var(--red)}
.calendar-slot.is-reserved{color:#fff}.calendar-slot.is-recording{background:linear-gradient(135deg,rgba(255,155,53,.28),rgba(255,155,53,.12));box-shadow:inset 3px 0 var(--studio-orange)}.calendar-slot.is-location{background:linear-gradient(135deg,rgba(80,120,255,.28),rgba(80,120,255,.12));box-shadow:inset 3px 0 var(--studio-blue)}.calendar-slot.is-meeting{background:rgba(227,6,19,.18);box-shadow:inset 3px 0 var(--red)}.calendar-slot.is-other{background:rgba(255,255,255,.07)}
.studio-notice{overflow:hidden;background:var(--red);height:38px}.studio-notice-track{height:100%;display:flex;align-items:center;gap:70px;width:max-content;animation:studioTicker 25s linear infinite}.studio-notice span{white-space:nowrap;font:600 10px JetBrains Mono;letter-spacing:.1em;text-transform:uppercase;color:#fff}@keyframes studioTicker{to{transform:translateX(-25%)}}
.booking-layout{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(480px,1.25fr);gap:48px;align-items:start}.booking-intro{position:sticky;top:115px}.booking-intro h2{margin:0;font:700 clamp(36px,5vw,64px)/1 Space Grotesk}.booking-intro>p{color:var(--muted);line-height:1.75}
.booking-rules{display:grid;gap:12px;margin-top:30px}.booking-rules article{display:flex;gap:15px;padding:17px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.02)}.booking-rules article>span{font:500 9px JetBrains Mono;color:var(--red)}.booking-rules strong{font:700 14px Space Grotesk}.booking-rules p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
.booking-card{padding:30px}.studio-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.studio-field{display:flex;flex-direction:column;gap:8px}.studio-field label{font:600 10px JetBrains Mono;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.studio-field small{display:none;color:#ffb55f;font-size:10px}.studio-field.is-late small{display:block}.pass-culture-link{display:none;margin-top:4px;color:var(--red);font-size:10px;text-decoration:underline}.pass-culture-link.is-visible{display:block}
.studio-checkbox{grid-column:1/-1;display:flex;align-items:flex-start;gap:10px;padding:15px;border:1px solid var(--line);border-radius:14px;color:var(--muted);font-size:12px}.studio-checkbox input{width:auto;min-height:0;margin-top:2px}.studio-checkbox button{padding:0;border:0;background:none;color:var(--red);font:inherit;text-decoration:underline}
.booking-summary{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px}.booking-summary div{padding:17px;border-radius:15px;background:rgba(255,255,255,.025);border:1px solid var(--line)}.booking-summary span,.booking-summary strong{display:block}.booking-summary span{font:500 9px JetBrains Mono;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.booking-summary strong{margin-top:5px;font:700 22px Space Grotesk}.booking-submit{grid-column:1/-1;width:100%;border:0}
.studio-alert{padding:17px 19px;border-radius:15px;margin-bottom:22px;border:1px solid;line-height:1.5}.studio-alert-error{color:#ff9ca3;border-color:rgba(227,6,19,.45);background:rgba(227,6,19,.08)}.studio-alert-success{color:#9ff0bb;border-color:rgba(67,209,123,.4);background:rgba(67,209,123,.08)}
.pricing-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.pricing-card{padding:30px}.pricing-card>span{font:600 9px JetBrains Mono;color:var(--red);letter-spacing:.1em;text-transform:uppercase}.pricing-card h3{font:700 22px Space Grotesk}.pricing-card>strong{display:block;margin:28px 0;font:700 47px Space Grotesk}.pricing-card>strong small{font-size:14px;color:var(--muted)}.pricing-card p{color:var(--muted);line-height:1.65}.pricing-card.is-featured{border-color:rgba(227,6,19,.42);background:linear-gradient(145deg,rgba(227,6,19,.11),rgba(255,255,255,.018))}
.studio-work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.studio-work-card{overflow:hidden}.studio-work-media{aspect-ratio:16/10;background:#000}.studio-work-media img,.studio-work-media iframe{width:100%;height:100%;object-fit:cover;border:0}.studio-work-info{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px}.studio-work-info h3{margin:0;font:700 16px Space Grotesk}.studio-work-info a{color:var(--red);font-size:11px}
.studio-footer img{width:58px;height:58px;object-fit:contain}
.studio-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(3,3,4,.9);backdrop-filter:blur(16px);opacity:0;visibility:hidden;transition:.35s}.studio-modal.is-open{opacity:1;visibility:visible}.studio-modal-dialog{width:min(560px,100%);max-height:90vh;overflow:auto;border:1px solid var(--line2);border-radius:22px;background:#101013;box-shadow:0 35px 100px rgba(0,0,0,.65);transform:translateY(18px) scale(.96);transition:.4s var(--ease)}.studio-modal.is-open .studio-modal-dialog{transform:none}.studio-modal-dialog header{display:flex;justify-content:space-between;align-items:start;padding:22px;border-bottom:1px solid var(--line)}.studio-modal-dialog header small{font:500 9px JetBrains Mono;color:var(--red);text-transform:uppercase}.studio-modal-dialog h2{margin:5px 0 0;font:700 25px Space Grotesk}.studio-modal-dialog header button{width:38px;height:38px;border:1px solid var(--line2);border-radius:50%;background:transparent;color:#fff;font-size:22px}.studio-modal-body{padding:24px;color:var(--muted);line-height:1.65}.payment-amount{display:flex;justify-content:space-between;align-items:center;padding:18px;margin-bottom:20px;border:1px solid var(--line);border-radius:15px}.payment-amount strong{font:700 27px Space Grotesk;color:#fff}
body.studio-modal-open{overflow:hidden}
@media(max-width:980px){.studio-hero{min-height:68svh;padding:130px 0 70px}.studio-wave{left:20%;opacity:.35}.studio-rings i{width:78vw;height:78vw;right:-28vw}.studio-section{padding:70px 0}.studio-section-head{align-items:start;flex-direction:column}.calendar-desktop{display:none}.calendar-mobile{display:block}.booking-layout{grid-template-columns:1fr}.booking-intro{position:relative;top:auto}.pricing-cards{grid-template-columns:1fr}.studio-work-grid{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.studio-hero{min-height:74svh;padding:112px 0 58px}.studio-hero h1{font-size:clamp(43px,13.8vw,72px)}.studio-hero-meta{gap:7px}.studio-hero-meta span{font-size:8px}.calendar-nav{grid-template-columns:1fr auto 1fr}.calendar-nav small{display:none}.calendar-nav a{justify-content:center!important}.calendar-legend{gap:10px}.mobile-day-tabs{display:flex;gap:8px;overflow-x:auto;margin-inline:-15px;padding:2px 15px 14px;scroll-snap-type:x mandatory;scrollbar-width:none}.mobile-day-tabs::-webkit-scrollbar{display:none}.mobile-day-tabs button{position:relative;flex:0 0 76px;min-height:78px;padding:10px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.018);color:var(--muted);scroll-snap-align:start}.mobile-day-tabs button strong,.mobile-day-tabs button span,.mobile-day-tabs button i{display:block}.mobile-day-tabs button strong{font:700 13px Space Grotesk}.mobile-day-tabs button span{font:500 10px JetBrains Mono;margin-top:4px}.mobile-day-tabs button i{margin-top:5px;font-style:normal;font-size:7px;color:var(--red)}.mobile-day-tabs button.is-active{border-color:rgba(227,6,19,.45);background:rgba(227,6,19,.1);color:#fff;box-shadow:0 12px 30px rgba(227,6,19,.10)}.mobile-day-tabs button.is-disabled{opacity:.45}.mobile-day-panel{display:none}.mobile-day-panel.is-active{display:block}.mobile-day-panel>header{display:flex;justify-content:space-between;gap:15px;align-items:start;margin-bottom:15px}.mobile-day-panel>header small{font:500 8px JetBrains Mono;color:var(--red);text-transform:uppercase}.mobile-day-panel>header h3{margin:5px 0 0;font:700 21px Space Grotesk}.mobile-day-panel>header>span{padding:7px 9px;border-radius:999px;border:1px solid var(--line);font:500 8px JetBrains Mono;color:var(--muted)}.mobile-slots{display:grid;gap:7px}.mobile-slot{display:grid;grid-template-columns:62px 1fr auto;align-items:center;gap:10px;min-height:48px;padding:8px 11px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.015)}.mobile-slot time{font:600 11px JetBrains Mono;color:#fff}.mobile-slot span{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-slot small{font:500 7px JetBrains Mono;text-transform:uppercase;color:var(--muted)}.mobile-slot.is-past{opacity:.28}.mobile-slot.is-current{border-color:var(--red);box-shadow:inset 3px 0 var(--red)}.mobile-slot.is-reserved{color:#fff}.mobile-slot.is-reserved span{color:#fff;font-weight:600}.mobile-slot.is-recording{background:rgba(255,155,53,.12);border-color:rgba(255,155,53,.32)}.mobile-slot.is-location{background:rgba(80,120,255,.12);border-color:rgba(80,120,255,.32)}.mobile-closed-card{padding:28px;border:1px dashed var(--line2);border-radius:18px;text-align:center;color:var(--muted)}.mobile-closed-card strong{color:#fff}.studio-form{grid-template-columns:1fr}.studio-checkbox,.booking-summary,.booking-submit{grid-column:auto}.booking-card{padding:20px}.pricing-card{padding:24px}.studio-work-grid{grid-template-columns:1fr}.studio-notice{height:34px}}
@media(max-width:380px){.mobile-day-tabs button{flex-basis:70px}.booking-summary{grid-template-columns:1fr}.studio-hero p{font-size:14px}}
@media(prefers-reduced-motion:reduce){.studio-wave i,.studio-rings i,.studio-notice-track{animation:none!important}}


/* ==========================================================================
   HERO — ACTION VISITE INTERACTIVE V6.4.3
   ========================================================================== */

.studio-hero-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}

.studio-tour-btn{
  position:relative;
  min-height:52px;
  padding:7px 14px 7px 8px!important;
  gap:11px!important;
  overflow:hidden;
  border-color:rgba(80,120,255,.36)!important;
  background:
    radial-gradient(circle at 18% 50%,rgba(80,120,255,.14),transparent 34%),
    rgba(255,255,255,.025)!important;
  color:#fff!important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.015),
    0 14px 35px rgba(0,0,0,.22);
}

.studio-tour-btn::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.08),transparent 68%);
  transform:translateX(-125%);
  transition:transform .75s cubic-bezier(.16,1,.3,1);
}

.studio-tour-btn:hover{
  border-color:rgba(80,120,255,.72)!important;
  background:
    radial-gradient(circle at 18% 50%,rgba(80,120,255,.23),transparent 36%),
    rgba(80,120,255,.07)!important;
  box-shadow:
    0 18px 42px rgba(0,0,0,.32),
    0 0 30px rgba(80,120,255,.10)!important;
}

.studio-tour-btn:hover::before{
  transform:translateX(125%);
}

.studio-tour-btn-icon{
  position:relative;
  width:38px;
  height:38px;
  flex:0 0 38px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid rgba(80,120,255,.42);
  border-radius:50%;
  background:rgba(80,120,255,.10);
  box-shadow:
    0 0 20px rgba(80,120,255,.10),
    inset 0 0 16px rgba(80,120,255,.06);
}

.studio-tour-btn-icon i{
  position:absolute;
  border:1px solid rgba(80,120,255,.22);
  border-radius:50%;
  animation:studioTourOrbit 7s linear infinite;
}

.studio-tour-btn-icon i:nth-child(1){
  inset:5px;
}

.studio-tour-btn-icon i:nth-child(2){
  inset:10px;
  border-style:dashed;
  animation-duration:4.5s;
  animation-direction:reverse;
}

.studio-tour-btn-icon i:nth-child(3){
  width:4px;
  height:4px;
  border:0;
  background:#5078ff;
  box-shadow:0 0 9px rgba(80,120,255,.9);
}

.studio-tour-btn-icon b{
  position:relative;
  z-index:2;
  font:600 12px/1 Inter,sans-serif;
  color:#fff;
  transform:translate(1px,-1px);
}

@keyframes studioTourOrbit{
  to{transform:rotate(360deg)}
}

.studio-tour-btn-copy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
  line-height:1;
}

.studio-tour-btn-copy small{
  color:rgba(255,255,255,.42);
  font:500 7px/1 "JetBrains Mono",monospace;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.studio-tour-btn-copy strong{
  color:#fff;
  font:600 11px/1.2 Inter,sans-serif;
}

@media(max-width:720px){
  .studio-hero-actions{
    width:100%;
    align-items:stretch;
  }

  .studio-hero-actions > .atlas-btn{
    flex:1 1 100%;
    justify-content:center;
  }

  .studio-tour-btn{
    justify-content:flex-start!important;
  }

  .studio-tour-btn-copy{
    align-items:flex-start;
  }
}

@media(prefers-reduced-motion:reduce){
  .studio-tour-btn-icon i{
    animation:none!important;
  }
}
