/* Atlas public — refonte visuelle. Chargé après les styles propres aux pages.
   Tous les sélecteurs sont limités à .atlas-public : aucun effet sur l'admin. */
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap');

body.atlas-public {
  --bg: #101113;
  --pbg: #101113;
  --p-bg: #101113;
  --bg-soft: #16181b;
  --bg-panel: #1b1d21;
  --panel: #1b1d21;
  --p-panel: #1b1d21;
  --p-panel2: #22252a;
  --line: rgba(255,255,255,.12);
  --line2: rgba(255,255,255,.22);
  --p-line: rgba(255,255,255,.12);
  --p-line2: rgba(255,255,255,.22);
  --txt: #f7f4ee;
  --ivory: #f7f4ee;
  --p-white: #f7f4ee;
  --muted: #b2b3b9;
  --p-muted: #b2b3b9;
  --muted-dim: #91939b;
  --red: #ef293b;
  --p-red: #ef293b;
  --accent-red: #ef293b;
  --red-glow: rgba(239,41,59,.18);
  --font-display: 'Space Grotesk', sans-serif;
  --f-display: 'Space Grotesk', sans-serif;
  --f-body: 'Inter', sans-serif;
  --public-width: 1240px;
  --public-gutter: clamp(18px,4vw,64px);
  --public-radius: 16px;
  --header-h: 80px;
  margin: 0;
  background: var(--bg);
  color: var(--ivory);
  font-family: var(--f-body);
  font-size: 16px;
  line-height: 1.65;
  padding-bottom: 112px;
  -webkit-font-smoothing: antialiased;
}
.atlas-public *, .atlas-public *::before, .atlas-public *::after { box-sizing: border-box; }
.atlas-public::before { background: none !important; }
.atlas-public :is(main,section,article,form,fieldset,nav,div) { min-width: 0; }
.atlas-public :is(h1,h2,h3,h4) { font-family: var(--f-display); text-wrap: balance; overflow-wrap: anywhere; }
.atlas-public :is(p,label,li,.card-copy,.bio) { overflow-wrap: anywhere; }
.atlas-public :is(a,button,input,select,textarea):focus-visible { outline: 3px solid #ff8b96; outline-offset: 4px; }
.atlas-public :is(button,a,input,textarea,select) { touch-action: manipulation; }
.atlas-public :is(img,video,iframe,audio) { max-width: 100%; }
.atlas-public :is(audio,video):not(.hero-video):not(.atlas-intro-video) { border-radius: 12px; }
.atlas-public :is(section,[id]) { scroll-margin-top: 104px; }
.atlas-public :is(.container,.inner-container,.portal-shell,.partner-feed-container) {
  width: min(var(--public-width),calc(100% - var(--public-gutter) * 2));
  margin-inline: auto;
}
.atlas-public :is(.grain-overlay,.vignette-overlay,.scanline-overlay,.aurora-overlay,.depth-grid,.inner-grid,.inner-noise,.portal-grid,.portal-grain,.hud) { display: none; }
.atlas-public :is(.reveal,.reveal-page,.reveal-portal,.member-reveal,.reveal-intro) { opacity: 1 !important; transform: none !important; visibility: visible !important; }

/* Navigation : les liens et sous-menus existants sont conservés. */
.atlas-public .ar-header {
  height: var(--header-h);
  background: rgba(16,17,19,.96);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(12px);
}
.atlas-public .ar-header-inner { width: calc(100% - var(--public-gutter) * 2); max-width: 1520px; gap: 24px; }
.atlas-public .ar-brand-logo { width: 38px; height: 38px; object-fit: contain; filter: none; }
.atlas-public .ar-brand-copy strong { font-size: 15px; letter-spacing: -.02em; }
.atlas-public .ar-brand-copy small { color: var(--muted); font-size: 10px; }
.atlas-public .ar-nav { gap: 4px; }
.atlas-public .ar-nav-link { padding: 10px 9px; font-size: 11px; letter-spacing: 0; text-transform: none; border-radius: 7px; }
.atlas-public .ar-nav-link.active { background: rgba(239,41,59,.12); color: #ff8390; }
.atlas-public :is(.ar-burger,.ar-mobile-close) { width: 46px; height: 46px; border-radius: 10px; }
.atlas-public .ar-mobile-panel { background: #16181b; }
.atlas-public .ar-mobile-atmosphere { display: none; }
.atlas-public .ar-mobile-shell { padding: 20px var(--public-gutter) max(24px,env(safe-area-inset-bottom)); max-width: 900px; }
.atlas-public .ar-mobile-heading { margin-block: 24px 12px; }
.atlas-public .ar-mobile-link { min-height: 68px; padding: 13px 0; border-bottom: 1px solid var(--line); border-radius: 0; }
.atlas-public .ar-mobile-link-copy strong { font-size: clamp(17px,3vw,24px); letter-spacing: -.025em; }
.atlas-public .ar-mobile-link-copy small { font-size: 12px; color: var(--muted); }
.atlas-public .ar-mobile-index { color: var(--red); }
.atlas-public .ar-mobile-meta { margin-top: 24px; }
.atlas-public .ar-dock-wrapper { bottom: max(14px,env(safe-area-inset-bottom)); max-width: calc(100% - 24px); }
.atlas-public .ar-dock-main { background: #1b1d21; border: 1px solid var(--line2); border-radius: 14px; box-shadow: 0 12px 32px #0006; backdrop-filter: none; }
.atlas-public .ar-dock-inner { border-radius: 14px; padding: 7px; gap: 3px; }
.atlas-public .ar-dock-item { min-height: 52px; padding: 8px 12px; border-radius: 9px; }
.atlas-public .ar-dock-item.active,.atlas-public .ar-dock-item.is-expanded { background: rgba(239,41,59,.13); }
.atlas-public .ar-subdock { background: #22252a; border-radius: 14px; border-color: var(--line2); }
.atlas-public .ar-dock-label { font-size: 10px; letter-spacing: 0; text-transform: none; }
.atlas-public .atlas-back-top { bottom: 110px; right: 20px; border-radius: 10px; box-shadow: none; }

/* Typographie, actions et cartes. */
.atlas-public :is(.inner-kicker,.portal-kicker,.section-kicker,.hero-kicker,.eyeline,.member-kicker) { font-size: 11px; line-height: 1.5; letter-spacing: .1em; }
.atlas-public :is(.inner-title,.portal-title,.studio-hero h1,.bpmfinder-title,.partner-hero-section h1) {
  font-size: clamp(38px,5.8vw,84px);
  line-height: 1.06;
  letter-spacing: -.055em;
  margin: 0;
}
.atlas-public :is(.inner-title,.portal-title,.studio-hero h1) em {
  color: var(--red); -webkit-text-stroke: 0; filter: none; font-style: normal;
}
.atlas-public :is(.section-title,.section-head h2,.studio-section-head h2) { font-size: clamp(28px,3.5vw,48px); line-height: 1.12; letter-spacing: -.04em; }
.atlas-public :is(.inner-lead,.portal-lead,.studio-hero p,.bpmfinder-lead) { max-width: 720px; color: var(--muted); font-size: clamp(15px,1.35vw,18px); line-height: 1.75; margin-top: 22px; }
.atlas-public :is(.atlas-btn,.btn,.portal-btn,.filter-btn,.member-button,.contact-btn,.atelier-site-btn) {
  min-height: 48px;
  border-radius: 9px;
  padding: 12px 20px;
  font-family: var(--f-body);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0;
  text-transform: none;
  white-space: normal;
  text-align: center;
  box-shadow: none;
  transition: background .2s,border-color .2s,transform .2s;
}
.atlas-public :is(.atlas-btn.primary,.btn-red,.portal-btn.primary,.member-button) { background: #d91d30; border-color: #d91d30; color: #fff; }
.atlas-public :is(.atlas-btn,.btn,.portal-btn,.filter-btn):hover { transform: translateY(-2px); box-shadow: none; }
.atlas-public :is(.atlas-card,.portal-card,.bpmfinder-card,.atelier-card,.pres-card,.pricing-card,.partner-v6-card,.mix-distance-card,.booking-conditions-box) {
  border: 1px solid var(--line);
  border-radius: var(--public-radius);
  background: var(--bg-panel);
  box-shadow: none;
  backdrop-filter: none;
}
.atlas-public :is(.atlas-card,.portal-card)::before { display: none; }
.atlas-public :is(.atlas-card,.portal-card):hover { transform: none; box-shadow: none; border-color: var(--line2); }
.atlas-public :is(.inner-chip,.portal-chip,.tag,.tag-pill,.studio-hero-meta span) { border-radius: 6px; font-size: 11px; line-height: 1.5; letter-spacing: .025em; }
.atlas-public :is(.section-head,.section-top,.studio-section-head,.portal-section-head) { gap: 24px; margin-bottom: 28px; }
.atlas-public :is(.inner-section,.studio-section,.portal-section,main > .section,.bpmfinder-section) { padding-block: clamp(44px,6vw,88px); }
.atlas-public :is(.inner-section.alt,.studio-section:nth-of-type(even),.section.alt) { background: #15171a; border-block-color: var(--line); }

/* Entrées de pages : un bandeau éditorial compact, décliné par activité. */
.atlas-public :is(.inner-hero,.portal-hero,.studio-hero,.bpmfinder-hero,.partner-hero-section) {
  min-height: 0;
  padding: 150px 0 64px;
  display: flex;
  align-items: center;
  background: linear-gradient(115deg,#1d2025,#121315 75%);
  border-bottom: 1px solid var(--line);
}
.atlas-public :is(.inner-hero,.portal-hero,.studio-hero,.bpmfinder-hero)::before {
  background: linear-gradient(90deg,rgba(16,17,19,.98),rgba(16,17,19,.85) 48%,rgba(16,17,19,.42));
  z-index: 1;
}
.atlas-public :is(.inner-hero,.portal-hero,.studio-hero,.bpmfinder-hero)::after { display: none; }
.atlas-public :is(.inner-hero-content,.studio-hero-content,.portal-hero-inner,.bpmfinder-hero-inner) { position: relative; z-index: 2; }
.atlas-public :is(.studio-rings,.bpmfinder-orbit) { display: none; }
.atlas-public .studio-wave { opacity: .15; left: 60%; }
.atlas-public.atlas-page-studio-labo .studio-hero { background: url('uploads/visite/1.JPG') right center / cover no-repeat,#191b20; }
.atlas-public .studio-hero-actions { gap: 10px; margin-top: 28px; }
.atlas-public .studio-tour-btn { border-radius: 9px; box-shadow: none !important; }
.atlas-public .studio-tour-btn-icon { border-radius: 6px; }
.atlas-public .studio-hero-meta { margin-block: 20px; }

/* Accueil : même contenu, nouvelles proportions et organisation des blocs. */
.atlas-public .cinematic-hero { min-height: 680px; padding: 155px 0 64px; display: flex; align-items: center; background: #16181b; }
.atlas-public .hero-content { padding-top: 0; position: relative; z-index: 4; }
.atlas-public .hero-media { inset: 0 0 0 38%; opacity: .8; border-left: 1px solid var(--line); }
.atlas-public .hero-video { opacity: .55; object-fit: cover; }
.atlas-public .hero-media::after { background: linear-gradient(90deg,#16181b,transparent 75%),linear-gradient(0deg,#16181b,transparent 45%); }
.atlas-public :is(.hero-beams,.hero-orbit,.hero-shards,#heroCanvas,.hero-interface,.hero-bottomline) { display: none; }
.atlas-public .hero-title { display: flex; flex-direction: row; flex-wrap: nowrap; gap: 0; white-space: nowrap; font-size: clamp(25px,8vw,112px); line-height: 1.12; letter-spacing: -.055em; margin: 22px 0; text-transform: none; text-shadow: none; text-wrap: nowrap; }
.atlas-public .hero-title > span { flex: 0 0 auto; display: inline; }
.atlas-public .hero-title-accent { margin-left: 0; color: var(--red); -webkit-text-stroke: 0; text-shadow: none; }
.atlas-public .hero-sub { max-width: 590px; margin-top: 24px; font-size: 17px; line-height: 1.75; }
.atlas-public .hero-actions { max-width: 760px; gap: 10px; flex-wrap: wrap; }
.atlas-public .hero-link { font-size: 13px; min-height: 48px; display: inline-flex; align-items: center; padding-inline: 12px; }
.atlas-public .hero-signals { width: min(620px,100%); gap: 28px; margin-top: 36px; padding-top: 22px; border-top: 1px solid var(--line2); }
.atlas-public .hero-signals b { font-size: 27px; }
.atlas-public .hero-signals span { font-size: 11px; line-height: 1.5; }
.atlas-public .home-applications { padding-block: 24px 0; }
.atlas-public .home-applications-card {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  min-height: 0;
  gap: 28px;
  padding: 28px 32px;
  border-radius: var(--public-radius);
  background: #1b1d21;
  box-shadow: none !important;
}
.atlas-public :is(.home-applications-orbit,.home-applications-signal) { display: none; }
.atlas-public .home-applications-copy { padding: 0; }
.atlas-public .home-applications-copy h2 { font-size: clamp(26px,3vw,38px); line-height: 1.12; }
.atlas-public .home-applications-copy p { max-width: 750px; font-size: 14px; }
.atlas-public .home-applications-action { align-self: center; border-radius: 9px; min-height: 48px; }
.atlas-public .pinned-news-section { padding-block: 40px; }
.atlas-public .pinned-carousel-wrapper { border-radius: var(--public-radius); border: 1px solid var(--line); }
.atlas-public .pinned-card { min-height: 0; grid-template-columns: .85fr 1.15fr; background: var(--bg-panel); }
.atlas-public .pinned-media { min-height: 280px; max-height: 420px; background: #121315; }
.atlas-public .pinned-content { padding: 32px 52px; }
.atlas-public .pinned-desc { display: block; -webkit-line-clamp: unset; overflow: visible; }
.atlas-public .pinned-tag { color: #fff; background: #d91d30; box-shadow: none; border-radius: 4px; }
.atlas-public .pinned-nav-btn { width: 44px; height: 44px; }
.atlas-public .pinned-dot { min-width: 24px; height: 24px; border-radius: 6px; }
.atlas-public .manifesto { min-height: 0; padding: 56px var(--public-gutter); background: #f0ede5; color: #181a1e; }
.atlas-public .manifesto-sticky { position: relative; top: auto; width: 100%; max-width: var(--public-width); margin: auto; display: grid; grid-template-columns: 180px minmax(0,1fr); gap: 32px; align-items: start; }
.atlas-public .manifesto h2 { font-size: inherit; line-height: 1.3; letter-spacing: 0; max-width: 900px; margin: 0; color: #181a1e; opacity: 1 !important; }
.atlas-public .vision-intro { display: block; max-width: 48ch; font: 500 clamp(16px,1.5vw,20px)/1.65 var(--f-body); margin-bottom: 12px; }
.atlas-public .manifesto h2 em { display: block; max-width: 26ch; font: 700 clamp(28px,3.6vw,48px)/1.14 var(--f-display); letter-spacing: -.035em; color: #b0192b; -webkit-text-stroke: 0; }
.atlas-public .manifesto-label { color: #b0192b; margin: 4px 0 0; line-height: 1.5; }
.atlas-public .manifesto-stream { position: relative; inset: auto; max-width: var(--public-width); margin: 24px auto 0; padding-top: 20px; border-top: 1px solid #181a1e26; display: flex; flex-wrap: wrap; gap: 10px 24px; white-space: normal; opacity: 1; overflow: visible; transform: none !important; }
.atlas-public .manifesto-stream span { color: #646065; -webkit-text-stroke: 0; font: 600 12px/1.5 var(--f-body); letter-spacing: .08em; }
.atlas-public .ecosystem { padding-block: 80px; background: #101113; }
.atlas-public .ecosystem-head { margin-bottom: 32px; }
.atlas-public .ecosystem-stage {
  width: min(var(--public-width),calc(100% - var(--public-gutter) * 2));
  min-height: 0; display: grid; grid-template-columns: 320px minmax(0,1fr); grid-template-rows: auto; gap: 24px;
}
.atlas-public .ecosystem-nav { grid-column: 1; display: flex; flex-direction: column; gap: 8px; }
.atlas-public .ecosystem-tab { min-width: 0; max-width: none !important; min-height: 72px; padding: 18px; border-radius: 10px; background: #191b1f; }
.atlas-public .ecosystem-tab.active { border-color: var(--red); background: #242026; }
.atlas-public .ecosystem-copy { grid-column: 2; min-height: 0; border-radius: var(--public-radius); background: var(--bg-panel); border: 1px solid var(--line); }
.atlas-public .ecosystem-panel { padding: 36px; min-height: 0; }
.atlas-public .ecosystem-panel h3 { font-size: clamp(28px,3.2vw,46px); line-height: 1.12; white-space: normal; }
.atlas-public .ecosystem-panel p { font-size: 15px; line-height: 1.8; }
.atlas-public .portal-band { height: auto; padding: 18px 0; background: #d91d30; }
.atlas-public .portal-copy { font-size: 18px; }
.atlas-public .portal-copy span { color: white; -webkit-text-stroke: 0; font-size: 18px; }
.atlas-public :is(.manifesto,.ecosystem,.portal-band,main > .section,.footer) { content-visibility: visible !important; contain-intrinsic-size: none; }
.atlas-public :is(.news-layout,.grid-4,.grid-2,.atlas-tools-home-grid,.partners-home-grid) { gap: 20px; }
.atlas-public .news-layout { grid-template-columns: repeat(3,minmax(0,1fr)); }
.atlas-public :is(.news-card,.artist-card,.made-card,.release-card,.atlas-tool-home-card,.partner-home-card) { border-radius: var(--public-radius); box-shadow: none; border-color: var(--line); }
.atlas-public .news-card { min-height: 350px; grid-column: auto; grid-row: auto; }
.atlas-public .card-content { padding: 24px; }
.atlas-public .releases-scroll { gap: 20px; scroll-padding: 4px; }
.atlas-public .release-card { flex-basis: 260px; }
.atlas-public .release-cover { border-radius: 12px; }
.atlas-public .atlas-tools-home-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.atlas-public .atlas-tool-home-card { grid-column: auto; min-height: 190px; padding: 28px; background: #1b1d21; }
.atlas-public :is(.atlas-tool-home-orbit,.atlas-tool-home-upload) { opacity: .25; }
.atlas-public .partners-home-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.atlas-public .partner-home-logo img { filter: none; }
.atlas-public .map-card { border-radius: var(--public-radius); overflow: hidden; }
.atlas-public .atlas-map { min-height: 340px; }

/* Artistes, productions, partenaires et galeries. */
.atlas-public .atlas-grid { gap: 24px; }
.atlas-public .staff-card { padding: 18px; }
.atlas-public .staff-visual { border-radius: 10px; margin-bottom: 20px; }
.atlas-public .staff-visual img { filter: none; }
.atlas-public .card-title { font-size: 25px; line-height: 1.2; }
.atlas-public .profile-shell { grid-template-columns: minmax(240px,360px) minmax(0,1fr); gap: 48px; }
.atlas-public .profile-image { border-radius: var(--public-radius); top: 100px; }
.atlas-public .profile-copy h1 { font-size: clamp(36px,4.5vw,64px); line-height: 1.08; }
.atlas-public .profile-copy .bio { line-height: 1.8; }
.atlas-public :is(.prod-info,.job-card) { padding: 28px; }
.atlas-public .job-card { min-height: 260px; }
.atlas-public .release-row { gap: 24px; }
.atlas-public .release img { border-radius: 12px; }
.atlas-public .partner-hero-section { text-align: left; }
.atlas-public .partner-hero-section :is(.section-kicker,.section-note) { justify-content: flex-start !important; text-align: left !important; margin-left: 0 !important; }
.atlas-public .partner-feed-container { display: grid; gap: 28px; padding-block: 56px; }
.atlas-public .partner-v6-card { margin: 0; }
.atlas-public .partner-v6-header { background: #22252a; padding: 14px 28px; }
.atlas-public .partner-v6-body { padding: 28px; }
.atlas-public .partner-v6-top { gap: 28px; }
.atlas-public .partner-v6-title { font-size: clamp(27px,3vw,42px); line-height: 1.12; }
.atlas-public .partner-v6-logo-wrap { border-radius: 12px; background: #f0ede5; }
.atlas-public .partner-v6-desc { color: var(--muted); line-height: 1.75; }
.atlas-public :is(.atelier-grid,.pres-cards-grid,.studio-work-grid) { gap: 24px; }
.atlas-public .atelier-card { padding: 24px; }
.atlas-public .atelier-main > .inner-container { padding-block: 48px; }
.atlas-public :is(.media-carousel,.atelier-carousel,.media-v6-scroll) { scroll-padding: 4px; gap: 16px; }
.atlas-public :is(.atelier-photo-item,.media-v6-item) { border-radius: 10px; }
.atlas-public .mc-block { margin-block: 44px; padding: 28px; border-radius: var(--public-radius); border: 1px solid var(--line); background: #1b1d21; }
.atlas-public .nav-scroller { gap: 10px; padding: 12px 0; }
.atlas-public .nav-scroller a { border-radius: 8px; min-height: 44px; padding: 10px 16px; }
.atlas-public .hero-group-teaser { background: #1b1d21; border-radius: 12px; max-width: 780px; }
.atlas-public .adh-hero-contact { flex-wrap: wrap; gap: 20px; }
.atlas-public .adh-section-block { padding: clamp(20px,3vw,36px); border-radius: var(--public-radius); background: #1b1d21; }
.atlas-public .adh-grid-info { gap: 20px; }
.atlas-public .adh-card { background: #22252a; border-radius: 12px; }
.atlas-public .adh-contact-text strong { overflow-wrap: anywhere; }

/* Planning : tableau PC, liste du jour tactile sur tous les formats inférieurs. */
.atlas-public .calendar-nav { padding: 10px; border-radius: 12px; background: #1b1d21; gap: 12px; }
.atlas-public .calendar-nav a { min-height: 44px; padding: 10px; border-radius: 8px; font-size: 13px; }
.atlas-public .calendar-nav > div { text-align: center; }
.atlas-public .calendar-nav strong { font-size: 15px; line-height: 1.4; }
.atlas-public .calendar-legend span { font-size: 12px; }
.atlas-public .calendar-desktop { display: block; border-radius: var(--public-radius); overflow: hidden; border: 1px solid var(--line); }
.atlas-public .calendar-mobile { display: none; }
.atlas-public .calendar-scroll { overflow: auto; max-height: 750px; scrollbar-color: #575a63 #191b1f; }
.atlas-public .studio-calendar { width: 100%; table-layout: fixed; border-collapse: collapse; min-width: 800px; }
.atlas-public .studio-calendar thead th { position: sticky; top: 0; z-index: 3; background: #22252a; padding: 18px 6px; font-size: 12px; }
.atlas-public .studio-calendar :is(td,th) { border-color: var(--line); }
.atlas-public .studio-calendar td { height: 48px; padding: 7px; font-size: 12px; }
.atlas-public .studio-calendar td small { font-size: 10px; }
.atlas-public .studio-calendar .time-cell { background: #191b1f; width: 70px; color: var(--muted); font-size: 12px; }
.atlas-public .studio-calendar .is-past { opacity: .55; }
.atlas-public .mobile-day-tabs { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 8px; margin: 0 0 20px; padding: 0; }
.atlas-public .mobile-day-tabs button {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-height: 76px; padding: 10px 6px; border: 1px solid var(--line); border-radius: 10px; background: #1b1d21; color: var(--muted);
}
.atlas-public .mobile-day-tabs button strong { font-size: 13px; }
.atlas-public .mobile-day-tabs button span { font-size: 12px; }
.atlas-public .mobile-day-tabs button i { font-size: 10px; font-style: normal; color: #ff8390; }
.atlas-public .mobile-day-tabs button.is-active { background: #352025; color: #fff; border-color: var(--red); box-shadow: none; }
.atlas-public .mobile-day-tabs button.is-disabled { opacity: .65; }
.atlas-public .mobile-day-panel { display: none !important; }
.atlas-public .mobile-day-panel.is-active { display: block !important; }
.atlas-public .mobile-day-panel > header { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 20px; }
.atlas-public .mobile-day-panel > header h3 { margin: 4px 0; font-size: 24px; }
.atlas-public .mobile-day-panel > header small { font-size: 11px; color: var(--muted); }
.atlas-public .mobile-day-panel > header > span { font-size: 12px; padding: 7px 10px; border-radius: 6px; background: #22252a; white-space: nowrap; }
.atlas-public .mobile-slots { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.atlas-public .mobile-slot { display: grid; grid-template-columns: 60px minmax(0,1fr) auto; align-items: center; gap: 12px; min-height: 54px; padding: 12px; border-radius: 9px; border: 1px solid var(--line); background: #1b1d21; }
.atlas-public .mobile-slot time { font-size: 13px; color: var(--ivory); }
.atlas-public .mobile-slot span { font-size: 13px; white-space: normal; overflow: visible; overflow-wrap: anywhere; }
.atlas-public .mobile-slot small { font-size: 10px; }
.atlas-public .mobile-slot.is-available { border-left: 3px solid #6dce96; }
.atlas-public .mobile-slot.is-recording { background: #32261c; border-color: #8a5a32; }
.atlas-public .mobile-slot.is-location { background: #202945; border-color: #4c61a4; }
.atlas-public .mobile-slot.is-current { border-color: var(--red); }
.atlas-public .mobile-slot.is-past { opacity: .58; }
.atlas-public .mobile-closed-card { padding: 32px; border-radius: 12px; background: #1b1d21; }
.atlas-public .booking-layout { grid-template-columns: minmax(0,1fr) minmax(0,1.05fr); gap: 40px; align-items: start; }
.atlas-public .booking-intro { position: static; }
.atlas-public .booking-intro h2 { font-size: clamp(28px,3vw,42px); line-height: 1.16; }
.atlas-public .booking-card { padding: 28px; }
.atlas-public .booking-rules article { border-radius: 10px; padding: 16px; background: #191b1f; }
.atlas-public .booking-conditions-box { margin-top: 24px; padding: 20px; }
.atlas-public .studio-urgent-notice { animation: none !important; padding: 20px; background: #352025 !important; border: 1px solid #8e3543; border-radius: 12px; box-shadow: none !important; }
.atlas-public .urgent-text strong { font-size: 13px; }
.atlas-public .urgent-text p { font-size: 14px; line-height: 1.65; }
.atlas-public .direct-contact-card { gap: 24px; }
.atlas-public .direct-contact-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.atlas-public .contact-btn { display: flex; justify-content: center; align-items: center; }
.atlas-public .pass-culture-box { padding: 20px 0 0; margin-top: 24px; border-top: 1px solid var(--line); }
.atlas-public .pass-culture-btn { display: inline-flex; min-height: 44px; align-items: center; font-size: 13px; }
.atlas-public .pricing-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.atlas-public .pricing-card { padding: 28px; }
.atlas-public .pricing-card h3 { font-size: 24px; }
.atlas-public .pricing-card > strong { font-size: 48px; }
.atlas-public .pricing-card.is-featured { border-color: #d91d30; background: #292025; }
.atlas-public .mix-distance-card { padding: 28px; }
.atlas-public .studio-work-info { padding: 24px; }
.atlas-public :is(.studio-modal-dialog,.portal-modal-card,.popup-box) { border-radius: var(--public-radius); background: #1b1d21; box-shadow: 0 24px 70px #0008; }
.atlas-public :is(.studio-modal-dialog,.portal-modal-card,.popup-box) { max-height: calc(100dvh - 40px); overflow-y: auto; }
.atlas-public :is(.studio-modal-dialog header button,.popup-close,.lightbox-close) { min-width: 44px; min-height: 44px; }

/* Formulaires, connexion et pages utilitaires : mêmes actions et données. */
.atlas-public :is(.form-card,.portal-panel,.transfer-card) { padding: clamp(20px,3vw,36px); }
.atlas-public .form-shell { max-width: 900px; }
.atlas-public :is(.form-grid,.studio-form,.portal-form,.options-grid,.settings-grid) { gap: 22px; }
.atlas-public :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]) {
  width: 100%; min-width: 0; min-height: 48px; padding: 12px 14px; font: 400 16px/1.5 var(--f-body);
  color: var(--ivory); background: #121416; border: 1px solid #4b4e56; border-radius: 8px; box-shadow: none;
}
.atlas-public textarea { min-height: 150px; resize: vertical; }
.atlas-public :is(input,textarea)::placeholder { color: #a4a6ae; opacity: 1; }
.atlas-public input[type=file] { overflow: hidden; }
.atlas-public input[type=file]::file-selector-button { min-height: 34px; border: 0; border-radius: 5px; background: #343740; color: #fff; margin-right: 12px; padding: 6px 10px; }
.atlas-public :is(input[type=checkbox],input[type=radio]) { accent-color: #d91d30; flex-shrink: 0; }
.atlas-public :is(.form-group,.studio-field,.portal-field,.auth-field) > label { display: block; font-size: 13px; line-height: 1.5; margin-bottom: 8px; color: var(--ivory); }
.atlas-public :is(.application-layout,.chat-layout,.file-stage) { gap: 28px; }
.atlas-public .application-aside { top: 104px; }
.atlas-public :is(.upload-zone,.drop-zone,.bpmfinder-drop) { background: #16181b; border-radius: 12px; border-color: #61646d; }
.atlas-public :is(.converter-box,.metronome-card) { max-width: 920px; padding: clamp(24px,4vw,48px); }
.atlas-public .metronome-shell { max-width: 920px; }
.atlas-public .bpmfinder-layout { grid-template-columns: minmax(0,1.6fr) minmax(0,1fr); gap: 24px; }
.atlas-public .bpmfinder-card { padding: 28px; }
.atlas-public .bpmfinder-results { gap: 16px; }
.atlas-public .bpm-number { font-size: clamp(70px,12vw,120px); color: var(--ivory); text-shadow: none; }
.atlas-public :is(.bpm-btn-step,.preset-chip) { min-width: 44px; min-height: 44px; border-radius: 8px; }
.atlas-public .tempo-presets { gap: 8px; flex-wrap: wrap; }
.atlas-public .harmonic-shell { gap: 24px; }
.atlas-public .pitch-box { background: #22252a; border-radius: 12px; }
.atlas-public .key-badge { min-height: 40px; min-width: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; }
.atlas-public .auth-page { padding: 130px var(--public-gutter) 64px !important; min-height: 100svh; }
.atlas-public .auth-shell { width: min(1040px,100%); display: grid; grid-template-columns: .95fr 1.05fr; border-radius: 20px !important; border: 1px solid var(--line); background: #1b1d21; overflow: hidden; }
.atlas-public .auth-visual { padding: 48px !important; background: linear-gradient(150deg,#302026,#191b1f) !important; display: flex; flex-direction: column; justify-content: space-between; border-right: 1px solid var(--line); }
.atlas-public .auth-logo { max-width: 80px !important; margin-bottom: 56px !important; }
.atlas-public .auth-visual-copy h1 { font-size: clamp(30px,3.8vw,48px) !important; line-height: 1.12 !important; }
.atlas-public .auth-visual-copy p { font-size: 15px !important; line-height: 1.8; color: var(--muted); }
.atlas-public .auth-panel { padding: 40px !important; }
.atlas-public .auth-tab { min-height: 48px; font-size: 14px; border-radius: 8px; }
.atlas-public .auth-link { min-height: 44px; display: inline-flex; align-items: center; font-size: 13px; }
.atlas-public .auth-field { margin-bottom: 20px; }
.atlas-public .accordion-header { min-height: 54px; padding: 16px 20px; border-radius: 10px; font-size: 16px; }
.atlas-public .accordion-content { line-height: 1.75; }
.atlas-public.atlas-page-politique-confidentialite .inner-section .inner-container { max-width: 900px; }
.atlas-public.atlas-page-politique-confidentialite .inner-section h2 { margin-top: 36px; }
.atlas-public.atlas-page-confirm_atelier { min-height: 100svh; display: grid; place-items: center; padding: 28px; }
.atlas-public.atlas-page-confirm_atelier > .card { width: min(600px,100%); padding: 36px; border-radius: 20px; background: #1b1d21; border: 1px solid var(--line); }
.atlas-public.atlas-page-confirm_rdv { padding: 40px var(--public-gutter); }
.atlas-public.atlas-page-confirm_rdv > .container { width: min(700px,100%); margin: auto; padding: 32px; border-radius: 20px; background: #1b1d21; border: 1px solid var(--line); }
.atlas-public.atlas-page-confirm_rdv .info-row { flex-wrap: wrap; gap: 10px; }
.atlas-public.atlas-page-confirm_rdv .info-val { overflow-wrap: anywhere; }
.atlas-public.atlas-page-share_drive .share-container { width: min(1000px,calc(100% - 36px)); padding-top: 60px; margin: auto; }
.atlas-public.atlas-page-share_drive .playlist-card { border-radius: 16px; background: #1b1d21; }
.atlas-public.atlas-page-share_drive .track-item { min-height: 72px; padding: 18px; }
.atlas-public.atlas-page-share_drive .share-player-bar { background: #22252a; border-top: 1px solid var(--line2); padding: 16px 24px; }
.atlas-public.atlas-page-share_drive .player-ctrl-btn { min-height: 44px; min-width: 44px; }
.atlas-public.atlas-page-maintenance { padding: 0; }
.atlas-public .maintenance-stage { background: #101113; }
.atlas-public .maintenance-stage::before { display: none; }
.atlas-public .maintenance-panel { padding: 40px; background: #1b1d21; border: 1px solid var(--line); border-radius: 20px; }

/* Pieds de page : une conclusion lisible et cohérente. */
.atlas-public :is(.atlas-footer,.portal-footer,.footer) { padding: 56px 0 32px; background: #191b1f; border-top: 1px solid var(--line); text-align: left; }
.atlas-public .footer::before { display: none; }
.atlas-public :is(.atlas-footer,.portal-footer) > :is(.inner-container,.portal-shell) { display: grid; grid-template-columns: 54px minmax(0,1fr); column-gap: 20px; align-items: center; }
.atlas-public :is(.atlas-footer,.portal-footer) img { width: 48px; grid-row: span 2; margin: 0; }
.atlas-public :is(.atlas-footer,.portal-footer) strong { font-size: 24px; }
.atlas-public :is(.atlas-footer,.portal-footer) p { margin: 4px 0 0; font-size: 13px; }
.atlas-public :is(.footer-actions,.portal-footer-actions,.footer-links) { grid-column: 1 / -1; justify-content: flex-start; gap: 12px; margin-top: 24px; flex-wrap: wrap; }
.atlas-public .footer-brand-zone { justify-content: flex-start; margin-bottom: 28px; }
.atlas-public .footer-contact-actions { gap: 16px; }
.atlas-public .footer-action { border-radius: 12px; box-shadow: none; background: #22252a; }
.atlas-public .footer-signature { text-align: left; color: var(--muted); }

/* Visites virtuelles : cadre adapté à la hauteur réelle, commandes conservées. */
body.atlas-public.atlas-tour { padding: 0; height: 100dvh; overflow: hidden; }
.atlas-public.atlas-tour .tour-topbar { padding-inline: 20px; background: #16181be8; border-bottom: 1px solid var(--line); }
.atlas-public.atlas-tour :is(.tour-grain,.tour-vignette) { display: none; }
.atlas-public.atlas-tour :is(.tour-exit-top,.btn-editor-toggle) { min-height: 44px; padding: 12px 16px; border-radius: 8px; font-size: 12px; }
.atlas-public.atlas-tour .tour-info-panel { border-radius: 16px; background: #1b1d21f2; }
.atlas-public.atlas-tour .tour-empty { height: 100dvh !important; padding: 24px; }

@media (max-width: 1279px) {
  .atlas-public .ar-nav { display: none; }
  .atlas-public .ar-burger { display: flex; }
  .atlas-public .grid-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 980px) {
  .atlas-public .calendar-desktop { display: none; }
  .atlas-public .calendar-mobile { display: block; }
  .atlas-public :is(.booking-layout,.bpmfinder-layout,.file-stage,.chat-layout) { grid-template-columns: 1fr; }
  .atlas-public .booking-layout { gap: 24px; }
  .atlas-public .pricing-cards { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .atlas-public .pricing-card { padding: 20px; }
  .atlas-public .ecosystem-stage { grid-template-columns: 260px minmax(0,1fr); }
  .atlas-public .ecosystem-panel { padding: 28px; }
  .atlas-public .news-layout { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .atlas-public .news-layout > :last-child { grid-column: 1 / -1; }
  .atlas-public .partners-home-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .atlas-public .studio-work-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .atlas-public .application-layout { grid-template-columns: 260px minmax(0,1fr); }
}
@media (max-width: 720px) {
  body.atlas-public { --public-gutter: 20px; --header-h: 68px; font-size: 15px; padding-bottom: 96px; }
  .atlas-public :is(.inner-hero,.portal-hero,.studio-hero,.bpmfinder-hero,.partner-hero-section) { padding: 112px 0 36px; min-height: 0; }
  .atlas-public :is(.inner-title,.portal-title,.studio-hero h1,.bpmfinder-title,.partner-hero-section h1) { font-size: clamp(34px,9vw,56px); line-height: 1.1; }
  .atlas-public :is(.section-head,.section-top,.studio-section-head,.portal-section-head) { flex-direction: column; align-items: flex-start; gap: 16px; }
  .atlas-public .cinematic-hero { min-height: 0; padding: 112px 0 44px; }
  .atlas-public .hero-media { left: 0; opacity: .3; border: 0; }
  .atlas-public .hero-title { font-size: clamp(25px,11vw,64px); line-height: 1.12; }
  .atlas-public .hero-sub { margin-top: 22px; font-size: 15px; }
  .atlas-public .hero-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .atlas-public .hero-actions .btn { width: auto; padding-inline: 12px; min-height: 52px; font-size: 12px; }
  .atlas-public .hero-link { margin: 0; justify-content: center; }
  .atlas-public .hero-signals { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 28px; }
  .atlas-public .hero-signals div { text-align: left; }
  .atlas-public .hero-signals b { font-size: 24px; }
  .atlas-public .hero-signals span { font-size: 10px; }
  .atlas-public .home-applications-card { grid-template-columns: 1fr; padding: 24px; gap: 20px; }
  .atlas-public .home-applications-action { justify-self: start; width: auto; }
  .atlas-public .home-applications-copy h2 { font-size: 28px; }
  .atlas-public .pinned-card { grid-template-columns: 1fr; }
  .atlas-public .pinned-media { min-height: 220px; max-height: 300px; }
  .atlas-public .pinned-content { padding: 24px 28px 48px; }
  .atlas-public .pinned-badge-header { flex-wrap: wrap; }
  .atlas-public .manifesto { padding: 36px var(--public-gutter); }
  .atlas-public .manifesto-sticky { grid-template-columns: 1fr; gap: 16px; }
  .atlas-public .manifesto h2 { font-size: inherit; }
  .atlas-public .manifesto h2 em { font-size: clamp(26px,6.8vw,38px); }
  .atlas-public .ecosystem { padding-block: 48px; }
  .atlas-public .ecosystem-stage { display: flex; flex-direction: column; gap: 16px; }
  .atlas-public .ecosystem-nav { display: grid; grid-template-columns: 1fr 1fr; overflow: visible; order: 0; }
  .atlas-public .ecosystem-tab { min-width: 0; padding: 14px 12px; min-height: 72px; }
  .atlas-public .ecosystem-tab:last-child { grid-column: 1 / -1; }
  .atlas-public .ecosystem-tab strong { font-size: 14px; }
  .atlas-public .ecosystem-copy { order: 1; min-height: 0; }
  .atlas-public .ecosystem-panel { padding: 24px; }
  .atlas-public :is(.hscroll-mobile,.news-mobile-carousel) { display: grid; grid-template-columns: 1fr; overflow: visible; margin-inline: 0; padding-inline: 0; }
  .atlas-public :is(.hscroll-mobile,.news-mobile-carousel) > * { width: auto; min-width: 0; max-width: none; flex-basis: auto; }
  .atlas-public .news-swipe-hint { display: none; }
  .atlas-public .news-layout > :last-child { grid-column: auto; }
  .atlas-public .news-card { min-height: 320px; }
  .atlas-public .atlas-tools-home-grid { grid-template-columns: 1fr; }
  .atlas-public .atlas-tool-home-card { min-height: 150px; padding: 24px; }
  .atlas-public .partners-home-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .atlas-public .partner-home-card { padding: 20px 12px; }
  .atlas-public .partner-home-name { font-size: 16px; }
  .atlas-public .release-card { flex-basis: min(260px,76vw); }
  .atlas-public .atlas-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
  .atlas-public :is(.staff-card,.prod-card,.job-card) { grid-column: auto; }
  .atlas-public .profile-shell { grid-template-columns: 1fr; gap: 28px; }
  .atlas-public .profile-image { position: relative; top: auto; width: min(420px,100%); aspect-ratio: 4 / 5; }
  .atlas-public :is(.partner-v6-top,.partner-v6-audio) { flex-direction: column; align-items: flex-start; }
  .atlas-public .partner-v6-body { padding: 24px; }
  .atlas-public .partner-v6-header { padding: 14px 24px; flex-wrap: wrap; gap: 8px; }
  .atlas-public .partner-v6-logo-wrap { width: 120px; height: 120px; }
  .atlas-public .partner-v6-info { width: 100%; }
  .atlas-public .partner-v6-audio .audio-v6-details { width: 100%; }
  .atlas-public :is(.pricing-cards,.studio-work-grid,.pres-cards-grid,.adh-grid-info,.application-layout,.harmonic-shell) { grid-template-columns: 1fr; }
  .atlas-public .application-aside { display: block; position: static; }
  .atlas-public .application-steps { grid-template-columns: 1fr; }
  .atlas-public .calendar-nav { grid-template-columns: 1fr 1fr; gap: 6px; }
  .atlas-public .calendar-nav > div { grid-column: 1 / -1; grid-row: 1; padding: 8px; }
  .atlas-public .calendar-nav small { display: block; font-size: 11px; }
  .atlas-public .calendar-nav a { font-size: 12px; justify-content: center !important; }
  .atlas-public .mobile-day-tabs { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 4px; margin-inline: 0; padding: 0; overflow: visible; }
  .atlas-public .mobile-day-tabs button { min-height: 72px; padding: 8px 2px; border-radius: 8px; }
  .atlas-public .mobile-day-tabs button strong { font-size: 11px; }
  .atlas-public .mobile-day-tabs button span { font-size: 10px; }
  .atlas-public .mobile-day-tabs button i { font-size: 8px; overflow-wrap: anywhere; }
  .atlas-public .mobile-day-panel > header { align-items: flex-start; gap: 10px; }
  .atlas-public .mobile-day-panel > header h3 { font-size: 20px; }
  .atlas-public .mobile-slots { grid-template-columns: 1fr; }
  .atlas-public .mobile-slot { min-height: 50px; }
  .atlas-public .direct-contact-actions { grid-template-columns: 1fr; }
  .atlas-public :is(.booking-card,.mix-distance-card,.mc-block) { padding: 22px; }
  .atlas-public :is(.studio-form,.form-grid,.portal-form,.options-grid,.settings-grid) { grid-template-columns: 1fr; }
  .atlas-public :is(.form-full,.studio-checkbox,.booking-submit,.booking-summary) { grid-column: 1 / -1; }
  .atlas-public .studio-urgent-notice { align-items: flex-start; gap: 12px; padding: 16px; }
  .atlas-public .urgent-icon { font-size: 22px; }
  .atlas-public .auth-shell { grid-template-columns: 1fr !important; }
  .atlas-public .auth-visual { padding: 28px !important; border-right: 0; border-bottom: 1px solid var(--line); }
  .atlas-public .auth-logo { max-width: 56px !important; margin-bottom: 24px !important; }
  .atlas-public .auth-visual-copy h1 { font-size: 32px !important; }
  .atlas-public .auth-visual-copy p { font-size: 14px !important; }
  .atlas-public .auth-panel { padding: 28px !important; }
  .atlas-public .copy-row { flex-direction: column; }
  .atlas-public .footer-contact-actions { grid-template-columns: 1fr; }
  .atlas-public :is(.footer-actions,.portal-footer-actions) { display: grid; grid-template-columns: 1fr; width: 100%; }
  .atlas-public .footer-links { gap: 10px 20px; }
  .atlas-public .footer-links a { min-height: 44px; display: inline-flex; align-items: center; }
  .atlas-public .ar-dock-wrapper { left: 10px; right: 10px; max-width: none; bottom: max(8px,env(safe-area-inset-bottom)); transform: none; }
  .atlas-public .ar-dock-inner { min-height: 62px; gap: 2px; overflow-x: auto; justify-content: flex-start; scroll-padding: 8px; }
  .atlas-public .ar-dock-item { flex: 0 0 64px; min-height: 48px; padding: 6px 4px; }
  .atlas-public .ar-dock-short { font-size: 9px; line-height: 1.3; }
  .atlas-public .ar-dock-icon { width: 20px; height: 20px; }
  .atlas-public .atlas-back-top { bottom: 96px; right: 14px; }
  .atlas-public.atlas-page-share_drive { padding-bottom: 210px; }
  .atlas-public.atlas-page-share_drive .share-player-bar { padding: 14px; gap: 12px; flex-wrap: wrap; }
  .atlas-public.atlas-tour .tour-topbar { padding-inline: 12px; height: 64px; gap: 8px; }
  .atlas-public.atlas-tour .tour-brand small { font-size: 7px; }
}
@media (max-width: 480px) {
  body.atlas-public { --public-gutter: 16px; }
  .atlas-public .atlas-grid { grid-template-columns: 1fr; }
  .atlas-public .hero-actions { grid-template-columns: 1fr; }
  .atlas-public .hero-actions .btn { font-size: 13px; min-height: 48px; }
  .atlas-public .hero-link { justify-content: flex-start; padding-left: 0; }
  .atlas-public .studio-hero-actions { display: grid; grid-template-columns: 1fr; }
  .atlas-public .studio-hero-actions > a { width: 100%; justify-content: center; }
  .atlas-public .mobile-slot { grid-template-columns: 52px minmax(0,1fr); gap: 6px 10px; }
  .atlas-public .mobile-slot small { grid-column: 2; }
  .atlas-public .auth-panel { padding: 22px !important; }
  .atlas-public .auth-visual { padding: 24px !important; }
  .atlas-public .studio-hero-meta span { font-size: 10px; }
  .atlas-public .social-row { grid-template-columns: minmax(0,1fr) auto; }
  .atlas-public .modal-actions { grid-template-columns: 1fr; }
  .atlas-public.atlas-page-confirm_rdv > .container { padding: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .atlas-public *, .atlas-public *::before, .atlas-public *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  .atlas-public :is(.ar-header,.ar-dock-wrapper,.atlas-back-top,.social-bar) { display: none !important; }
  body.atlas-public { padding: 0; background: white; color: black; }
}

/* Compatibilité avec les règles historiques intégrées aux menus/catalogues. */
.atlas-public .ar-dock-inner {
  background: #1b1d21 !important; border-radius: 14px !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
}
.atlas-public .ar-dock-item { min-height: 48px; border-radius: 9px !important; }
.atlas-public .ar-subdock .ar-dock-inner { background: #22252a !important; box-shadow: none !important; }
.atlas-public .catalog-grid { display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px !important; }
.atlas-public :is(.artist-catalog-card,.release-catalog-card) { grid-column: auto; border-radius: 16px; min-width: 0; }
.atlas-public .artist-catalog-card { min-height: 420px; }
.atlas-public .artist-catalog-visual img { filter: brightness(.9); }
.atlas-public .catalog-tools { gap: 20px; align-items: center; margin-bottom: 28px; }
.atlas-public .catalog-search { width: min(560px,100%); }
.atlas-public .catalog-count { font-size: 13px; color: var(--muted); }
.atlas-public .atlas-tools-grid { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px !important; }
.atlas-public .atlas-tools-card { min-height: 320px; padding: 28px; grid-row: auto; }
.atlas-public .atlas-tools-card-main { min-height: 320px; }
.atlas-public .atlas-tools-card h2 { font-size: 32px; line-height: 1.15; }
.atlas-public .atlas-tools-wave { height: 80px; left: auto; right: 28px; top: 20px; opacity: .25; }
.atlas-public .atlas-tools-wave i { max-height: 72px; }
.atlas-public :is(.atlas-tools-upload-icon,.atlas-tools-key-icon) { width: 48px; height: 48px; right: 28px; top: 20px; font-size: 26px; border-radius: 10px; }
.atlas-public .atlas-tools-orbit { opacity: .2; }
.atlas-public :is(.extrait-card,.player-box,.next-date-card) { border-radius: 16px; background: #1b1d21; border: 1px solid var(--line); box-shadow: none; }
.atlas-public .extrait-card { padding: 28px; margin-bottom: 24px; }
.atlas-public .players-comparison-grid { gap: 24px; }
.atlas-public :is(.play-toggle-btn,.player-btn) { min-width: 44px; min-height: 44px; }
.atlas-public .player-progress-bar { min-height: 12px; }
.atlas-public .player-time-display { font-size: 12px; }
.atlas-public :is(.portal-footer-links) { display: flex; flex-wrap: wrap; grid-column: 1 / -1; gap: 12px 24px; margin-top: 24px; }
.atlas-public .portal-footer-links a { min-height: 44px; display: inline-flex; align-items: center; font-size: 13px; color: var(--muted); }
.atlas-public .auth-visual::before,.atlas-public .auth-visual::after,.atlas-public .auth-shell::before { display: none; }
.atlas-public .auth-visual { position: relative; overflow: hidden; }
.atlas-public .auth-shell { background: #1b1d21 !important; border-color: var(--line) !important; box-shadow: none !important; }
.atlas-public .auth-visual-copy h1 em { color: var(--red) !important; text-shadow: none; }
.atlas-public .auth-tab.active,.atlas-public .member-button { background: #d91d30 !important; border-color: #d91d30 !important; box-shadow: none !important; }
.atlas-public .member-button { min-height: 48px !important; border-radius: 9px !important; font-size: 14px !important; letter-spacing: 0 !important; text-transform: none !important; }
.atlas-public .auth-panel { background: #1b1d21 !important; }
.atlas-public .auth-field label { color: var(--ivory) !important; font-size: 13px !important; letter-spacing: 0 !important; text-transform: none !important; }
.atlas-public .atlas-intro { background: #101113; }
.atlas-public :is(.atlas-intro-grid,.atlas-intro-sphere) { display: none; }
.atlas-public.atlas-tour .tour-info-panel { bottom: max(74px,calc(env(safe-area-inset-bottom) + 64px)); max-height: 38dvh; overflow: auto; }
.atlas-public.atlas-tour .btn-toggle-menu { bottom: max(16px,env(safe-area-inset-bottom)); min-height: 44px; border-radius: 8px; background: #22252a; box-shadow: none; }
.atlas-public.atlas-tour .tour-quick-nav button { min-height: 44px; font-size: 11px; padding: 10px 14px; }
.atlas-public.atlas-tour .tour-info-copy p { font-size: 13px; color: var(--muted); }
@media (max-width: 980px) {
  .atlas-public .catalog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 720px) {
  .atlas-public .ar-dock-wrapper { bottom: max(8px,env(safe-area-inset-bottom)) !important; }
  .atlas-public .ar-dock-item { flex-direction: column !important; min-width: 60px !important; gap: 4px !important; }
  .atlas-public .ar-dock-short { font: 500 10px/1.3 var(--f-body) !important; }
  .atlas-public .catalog-grid { overflow: visible !important; padding: 0 !important; }
  .atlas-public :is(.artist-catalog-card,.release-catalog-card):not([hidden]) { width: auto !important; max-width: none !important; flex: none !important; margin: 0 !important; }
  .atlas-public .artist-catalog-card:not([hidden]) { display: flex !important; flex-direction: column !important; justify-content: flex-end; }
  .atlas-public .artist-catalog-visual { position: absolute; }
  .atlas-public .atlas-tools-grid { grid-template-columns: 1fr; overflow: visible !important; margin: 0 !important; padding: 0 !important; }
  .atlas-public .atlas-tools-grid .atlas-tools-card { width: auto !important; min-height: 280px !important; flex: none !important; }
  .atlas-public .atlas-tools-grid .atlas-tools-card-copy { flex: none !important; }
  .atlas-public .calendar-nav { grid-template-columns: 1fr 1fr; }
  .atlas-public .calendar-nav .calendar-today { grid-column: 1 / -1; grid-row: 1; }
  .atlas-public .players-comparison-grid { grid-template-columns: 1fr; }
  .atlas-public .extrait-card { padding: 20px; }
}
@media (max-width: 480px) {
  .atlas-public .catalog-grid { grid-template-columns: 1fr; }
}

/* Le menu public appartient au body, hors du header et de ses filtres. */
.atlas-public > .ar-mobile-panel {
  position: fixed !important;
  inset: 0 !important;
  width: 100%; height: 100dvh;
  z-index: 10000000 !important;
  display: block; overflow-x: hidden; overflow-y: auto;
  background: #16181b; backdrop-filter: none;
  overscroll-behavior: contain; isolation: isolate;
}
.atlas-public > .ar-mobile-panel::before,.atlas-public > .ar-mobile-panel::after { display: none; }
.atlas-public > .ar-mobile-panel .ar-mobile-shell {
  width: min(100%,900px); min-height: 100%; max-width: 900px;
  margin: 0 auto; border: 0; border-radius: 0; box-shadow: none;
  overflow: visible; background: none;
  display: flex; flex-direction: column;
}
.atlas-public > .ar-mobile-panel .ar-mobile-topbar { position: sticky; top: 0; background: #16181b; z-index: 2; }
.atlas-public > .ar-mobile-panel .ar-mobile-nav { width: 100%; display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); align-items: stretch; gap: 10px; padding: 0; border: 0; }
.atlas-public > .ar-mobile-panel .ar-mobile-heading { margin: 16px 0 20px; padding: 0; }
.atlas-public > .ar-mobile-panel .ar-mobile-heading p { font-size: clamp(23px,5vw,34px); line-height: 1.15; }
.atlas-public > .ar-mobile-panel .ar-mobile-link { grid-column: span 2; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 12px; min-height: 148px; min-width: 0; padding: 12px; border: 1px solid var(--line2); border-radius: 14px; background: #202329; }
.atlas-public > .ar-mobile-panel .ar-mobile-link:nth-child(n+7) { grid-column: span 3; }
.atlas-public > .ar-mobile-panel .ar-mobile-link.active { background: #351c24; border-color: #a73545; }
.atlas-public > .ar-mobile-panel .ar-mobile-link::before { display: none; }
.atlas-public > .ar-mobile-panel .ar-mobile-link-copy { width: 100%; }
.atlas-public > .ar-mobile-panel .ar-mobile-link-copy strong { font-size: clamp(12px,3.2vw,19px); line-height: 1.25; letter-spacing: -.025em; overflow-wrap: anywhere; }
.atlas-public > .ar-mobile-panel .ar-mobile-link-copy small { display: block; font-size: clamp(9px,2.2vw,12px); line-height: 1.45; margin-top: 8px; overflow-wrap: anywhere; }
.atlas-public > .ar-mobile-panel .ar-mobile-index { width: auto; font-size: 10px; }
.atlas-public > .ar-mobile-panel .ar-mobile-indicator { display: none; }
.atlas-public > .ar-mobile-panel .ar-mobile-meta { margin: 20px 0 0; padding: 0; }
.atlas-public > .ar-mobile-panel .ar-mobile-meta > div { flex-wrap: wrap; gap: 8px 16px; }
.atlas-public > .ar-mobile-panel .ar-mobile-link { opacity: 1 !important; transform: none !important; animation: none !important; }
.atlas-public.menu-open :is(.ar-dock-wrapper,.ar-banner-stack,.atlas-social-widget,.atlas-back-top) { visibility: hidden !important; pointer-events: none !important; }

/* Carrousels : les cartes restent à leur place, accessibles au toucher et au clavier. */
.atlas-public .public-rail-shell { width: 100%; min-width: 0; }
.atlas-public .public-rail-controls { display: none; align-items: center; justify-content: flex-end; gap: 8px; margin: 0 0 12px; }
.atlas-public .public-rail-shell.has-overflow > .public-rail-controls { display: flex; }
.atlas-public .public-rail-controls > span { margin-right: auto; font-size: 12px; color: var(--muted); }
.atlas-public .public-rail-controls > button { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--line2); border-radius: 8px; background: #22252a; color: var(--ivory); font-size: 19px; }
.atlas-public .public-rail-controls > button:disabled { opacity: .35; cursor: default; }
.atlas-public .public-rail { scroll-padding-inline: 2px; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: #666975 #191b1f; }
.atlas-public .public-rail > * { scroll-snap-align: start; }
.atlas-public .public-mobile-details > summary { cursor: pointer; min-height: 44px; padding-block: 8px; }
.atlas-public .public-mobile-details > summary h4 { display: inline; font-size: 15px; margin: 0; }
.atlas-public .public-mobile-details[open] > summary { margin-bottom: 12px; }
.atlas-public .public-calendar-hint { display: none; color: var(--muted); font-size: 12px; margin: 0 0 12px; }

/* Une seule animation pour les textes défilants, avec une jonction continue. */
@keyframes atlasPublicTicker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.atlas-public .public-ticker-track {
  display: flex !important; width: max-content !important; min-width: max-content !important;
  flex-wrap: nowrap !important; gap: 0 !important;
  animation: atlasPublicTicker 32s linear infinite !important;
  animation-duration: 32s !important; animation-iteration-count: infinite !important;
  animation-play-state: paused !important;
}
.atlas-public.public-tickers-running .public-ticker-track { animation-play-state: running !important; }
.atlas-public .public-ticker-track > .public-ticker-group {
  display: flex !important; flex: 0 0 auto !important;
  align-items: center; justify-content: space-around; gap: 0;
  width: max-content; min-width: var(--public-ticker-width,300px);
  padding: 0 !important; margin: 0;
}
.atlas-public .public-ticker-group > span { flex: 0 0 auto; }
.atlas-public .public-ticker-track .public-ticker-group > span { padding: 0 32px !important; }
.atlas-public .public-ticker-row { display: flex; align-items: center; gap: 8px; min-width: 0; width: 100%; }
.atlas-public .public-ticker-viewport { flex: 1 1 0 !important; width: auto !important; min-width: 0 !important; overflow: hidden !important; }
.atlas-public .public-motion-control { display: flex; flex: 0 0 44px; pointer-events: auto; }
.atlas-public .public-motion-control button { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--line2); border-radius: 8px; background: #1b1d21; color: var(--ivory); cursor: pointer; }
.atlas-public .public-motion-control svg { width: 18px; height: 18px; }
.atlas-public .public-ticker-row:has(> .studio-notice),.atlas-public .public-ticker-row:has(> .portal-band) { background: var(--bg); padding-right: var(--public-gutter); }
.atlas-public .public-ticker-row > .studio-notice,.atlas-public .public-ticker-row > .portal-band { margin-block: 0; }
@media (max-width: 980px) {
  .atlas-public :is(.atlas-footer,.portal-footer) > :is(.inner-container,.portal-shell) { grid-template-columns: minmax(0,1fr); row-gap: 10px; }
  .atlas-public :is(.atlas-footer,.portal-footer) > :is(.inner-container,.portal-shell) > * { grid-column: 1; grid-row: auto; min-width: 0; max-width: 100%; }
  .atlas-public :is(.atlas-footer,.portal-footer) strong { font-size: clamp(21px,5vw,28px); overflow-wrap: anywhere; }
  .atlas-public :is(.atlas-footer,.portal-footer) p { width: 100%; overflow-wrap: anywhere; }
  .atlas-public :is(.footer-actions,.portal-footer-actions) { display: grid; grid-template-columns: minmax(0,1fr); width: 100%; margin-top: 14px; }
  .atlas-public :is(.footer-actions,.portal-footer-actions) > a { width: 100%; white-space: normal; text-align: center; }
  .atlas-public .footer-brand-zone { display: flex; flex-wrap: wrap; gap: 14px; }
  .atlas-public .footer-brand-zone > div { min-width: 0; flex: 1 1 190px; }
  .atlas-public .footer-brand { overflow-wrap: anywhere; }
  .atlas-public .footer-contact-actions { grid-template-columns: minmax(0,1fr); width: 100%; max-width: 560px; margin-inline: 0; }
  .atlas-public .footer-action { min-width: 0; min-height: 80px; padding: 16px; }
  .atlas-public .footer-action strong,.atlas-public .footer-text { overflow-wrap: anywhere; }
}
@media (max-width: 768px) {
  .atlas-public > .atlas-social-widget { position: fixed; top: auto; left: auto; right: 12px; bottom: calc(var(--ar-menu-safe-space,120px) + 75px); transform: none; margin: 0; z-index: 9998; }
  .atlas-public .social-widget-toggle { width: 44px; height: 44px; min-height: 44px; padding: 0; justify-content: center; border: 1px solid var(--line2); border-radius: 12px; box-shadow: none; }
  .atlas-public .social-widget-toggle:hover { padding: 0; }
.atlas-public .social-widget-accordion { top: auto; left: auto; right: 0; bottom: calc(100% + 10px); width: min(260px,calc(100vw - 24px)); max-height: clamp(0px,calc(100dvh - var(--ar-menu-safe-space,120px) - 180px),320px); overflow-y: auto; transform: none; }  .atlas-public .atlas-social-widget.open .social-widget-accordion { transform: none; }
  .atlas-public .atlas-back-top { left: 12px !important; right: auto !important; bottom: calc(var(--ar-menu-safe-space,120px) + 12px) !important; width: 44px !important; height: 44px !important; border-radius: 12px !important; }
}
@media (max-width: 720px) {
  .atlas-public .public-rail {
    display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important;
    gap: 14px !important; width: 100% !important; max-width: 100% !important;
    margin-inline: 0 !important; padding: 2px 2px 16px !important;
    overflow-x: auto !important; overflow-y: hidden !important;
    scroll-snap-type: x proximity; align-items: stretch;
  }
  .atlas-public .public-rail > :not([hidden]):not(.search-empty):not([data-catalog-empty]):not(.popup-overlay):not(.studio-modal):not(.portal-modal) {
    flex: 0 0 min(82%,360px) !important; width: min(82%,360px) !important;
    min-width: 0 !important; max-width: none !important;
    grid-column: auto !important; grid-row: auto !important; margin: 0 !important;
  }
  .atlas-public .public-rail.catalog-grid > :not([hidden]):not(.search-empty):not([data-catalog-empty]) { flex: 0 0 min(82%,360px) !important; width: min(82%,360px) !important; }
  .atlas-public .public-rail.atlas-tools-grid > .atlas-tools-card { flex: 0 0 min(82%,360px) !important; width: min(82%,360px) !important; min-height: 310px !important; }
  .atlas-public .public-rail.news-mobile-carousel .news-card { min-height: 330px; }
  .atlas-public .public-rail.partners-home-grid > :not(.popup-overlay) { flex-basis: 180px !important; width: 180px !important; }
  .atlas-public .public-rail > .search-empty,.atlas-public .public-rail > [data-catalog-empty] { flex: 0 0 100% !important; width: 100% !important; }
  .atlas-public .public-rail .atlas-btn { max-width: 100%; }
  .atlas-public .mobile-slots { max-height: clamp(280px,52svh,440px); overflow-y: auto; overscroll-behavior-y: contain; padding-right: 5px; scrollbar-color: #666975 #191b1f; }
  .atlas-public .public-calendar-hint { display: block; }
  .atlas-public .public-mobile-details:not([open]) > :not(summary) { display: none; }
}
