/* Shared responsive corrections. Glass follows controls, never empty space. */
:root { --glex-reading-surface: #fffefb; --glex-soft-surface: #f6f7f2; }
.hero > .container > nav { gap: 24px; }
body:has(> .hero) { overflow-x: clip; }
.hero > .container > nav::before,
.hero > .container > nav::after { display: none !important; }
.home-nav-shell {
  display: flex; align-items: center; gap: 10px; margin-left: auto;
  padding: 6px; min-width: 0; width: max-content; max-width: 100%;
  border: 1px solid rgba(255,255,255,.25); border-radius: 999px;
  background: linear-gradient(150deg,rgba(255,255,255,.13),rgba(3,51,35,.7) 46%,rgba(5,65,44,.8));
  box-shadow: inset 0 1px 0 #ffffff40, 0 6px 20px #001b1326;
  backdrop-filter: blur(20px) saturate(140%); -webkit-backdrop-filter: blur(20px) saturate(140%);
}
.hero > .container > nav .home-nav-shell .nav-links { margin: 0; padding: 0 6px; gap: 18px; }
.hero > .container > nav .home-nav-shell .nav-actions { padding: 0; gap: 6px; }
.hero > .container > nav .brand { gap: 8px; }
body.glex-site-v3 .masthead {
  background: linear-gradient(120deg,rgba(5,44,30,.97),rgba(9,61,42,.94)) !important;
  box-shadow: 0 3px 14px #082f2017 !important;
}
body.glex-site-v3 .masthead .mast-inner { min-height: 76px !important; max-width: 1480px; }
body.glex-site-v3 .mast-nav { box-shadow: inset 0 1px 0 #ffffff33,0 5px 16px #001b1326; }
body.glex-site-v3 .with-side .filters :where(.filters-count b,.filter-opt b,.overline) { color: #e5eedf !important; }
body.glex-site-v3 .with-side .filters input[type=checkbox] { accent-color: #d9b45a; box-shadow: none; }
body.glex-site-v3 .with-side .filters .filter-opt {
  background: rgba(255,255,255,.065) !important; border: 1px solid rgba(255,255,255,.12) !important;
  box-shadow: none !important; color: #f4f6ef !important; border-radius: 9px; margin-bottom: 4px;
}
body.glex-site-v3 .with-side .filters .filter-opt:hover { background: rgba(255,255,255,.14) !important; }
body.glex-site-v3 .with-side .filters .filter-opt:has(input:checked) { background: #f0d480 !important; }
body.glex-site-v3 .with-side .filters .filter-opt:has(input:checked),
body.glex-site-v3 .with-side .filters .filter-opt:has(input:checked) :where(span,b) { color: #163a2a !important; }
body.glex-site-v3 .with-side .filters .filter-nav summary { color: #e5eedf !important; }
body.glex-site-v3 .with-side .filters-search { background: transparent !important; }
body.glex-site-v3 .with-side .filters-search { overflow: hidden; border-radius: 12px; }
body.glex-site-v3 .with-side .filters-search input { box-sizing: border-box; width: 100%; }
body.glex-reader-v2 .reader-document .doc-body {
  background: transparent !important; box-shadow: none !important; border: 0 !important;
  padding: 0 !important; width: 100%;
}
body.glex-reader-v2 .reader-document { background: var(--glex-reading-surface) !important; }
body.glex-reader-v2 .reader-document::before { display: none; }
body.glex-reader-v2 .reader-document .doc-body > :first-child { margin-top: 0; }
body.glex-reader-v2 .reader-document .doc-body section { background: transparent !important; }
body.glex-reader-v2 .reader-document .doc-body p { line-height: 1.65; margin-bottom: .85em; }
.site-footer .footer-col a { font-size: 15px; color: #e1e8df; }
.site-footer .footer-brand p { font-size: 15px; color: #b8c8bc; }
.site-footer .footer-brand .brand { font-size: 25px; }
@media (min-width: 961px) and (max-width: 1239px) {
  .hero > .container > nav .home-nav-shell .nav-links { display: flex !important; gap: 14px; }
  .hero > .container > nav .home-nav-shell .nav-links > a[href='/carte-du-droit'],
  .hero > .container > nav .home-nav-shell .nav-links > a[href='/farba'] { display: none; }
  .hero > .container > nav .home-nav-shell .nav-burger { display: none !important; }
  .hero > .container > nav .home-nav-shell .btn-gold { padding-inline: 12px; }
  body.glex-site-v3 .masthead .mast-nav { display: flex !important; gap: 0; }
  body.glex-site-v3 .masthead .mast-nav > a,
  body.glex-site-v3 .masthead .mast-nav > details > summary { padding-inline: 10px; font-size: 13px; }
  body.glex-site-v3 .masthead .nav-burger { display: none !important; }
  body.glex-reader-v2 .code-layout.reader-layout-v2 { display: grid; grid-template-columns: 220px minmax(0,1fr); gap: 20px; align-items: start; }
  body.glex-reader-v2 .code-layout.reader-layout-v2 > .toc { position: sticky; top: 90px; max-height: calc(100dvh - 110px); overflow: auto; margin: 0; }
  body.glex-reader-v2 .code-layout.reader-layout-v2 > .toc .toc-body { display: block !important; }
  body.glex-reader-v2 .code-layout.reader-layout-v2 > .reader-context { grid-column: 2; }
  body.glex-reader-v2 .reader-document { padding: 28px !important; }
}
@media (max-width: 1120px) {
  body.glex-site-v3 .masthead .mast-inner { min-height: 66px !important; }
  body.glex-site-v3 .masthead .nav-burger > summary { background: #ffffff12; border: 1px solid #ffffff40; box-shadow: inset 0 1px 0 #ffffff30; }
}
@media (max-width: 1100px) {
  body.glex-site-v3 .with-side .filters { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 12px; align-items: center; padding: 12px !important; border-radius: 16px; }
  body.glex-site-v3 .with-side .filters .filters-search { margin: 0; }
  body.glex-site-v3 .with-side .filters .filters-count { padding: 0; margin: 0; border: 0; white-space: nowrap; font: 14px/1.4 var(--sans); }
  body.glex-site-v3 .with-side .filters .filters-count b { font: inherit; font-weight: 700; }
  body.glex-site-v3 .with-side .filters .filters-more { display: inline-flex; margin: 0; padding: 8px 12px; border: 1px solid #ffffff38; border-radius: 10px; }
  body.glex-site-v3 .with-side .filters :where(.filter-group,.filter-nav,.filter-reset) { grid-column: 1/-1; }
  body.glex-site-v3 .with-side { gap: 12px; }
  body.glex-site-v3 .with-side .filters:not(.is-open) :where(.filter-group,.filter-nav) { display: none; }
}
@media (max-width: 640px) {
  .timeline .tl-item { grid-template-columns: minmax(0,1fr); gap: 8px; padding: 20px 0 20px 22px; }
  .timeline .tl-body { min-width: 0; overflow-wrap: anywhere; }
  .hero > .container > nav { gap: 12px; }
  .home-nav-shell { padding: 4px; gap: 0; }
  .hero > .container > nav .home-nav-shell #themeToggle { display: none; }
  body.glex-site-v3 .with-side .filters { grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
  body.glex-site-v3 .with-side .filters .filters-count { display: none; }
  body.glex-reader-v2 .reader-document { padding: 22px 18px !important; }
  body.glex-reader-v2 .reader-document .doc-body { font-size: 17px; }
}

/* Page-specific controls share the same rhythm and readable typography. */
body.glex-site-v3 #search.search-shell {
  padding: 0; border: 0; background: transparent !important; box-shadow: none !important;
}
body.glex-site-v3 #search .pagefind-ui__search-input {
  background: var(--glex-reading-surface) !important; color: var(--ink) !important;
  border: 1px solid var(--line-strong); border-radius: 14px; min-height: 54px;
}
body.glex-site-v3 #search .pagefind-ui__search-input::placeholder { color: var(--ink-faint); opacity: 1; }
body.glex-site-v3 .search-hero { padding: 32px !important; min-height: 0; }
body.glex-site-v3 .search-hero .doc-title { font-size: clamp(2.2rem,3.5vw,3.3rem); }
body.glex-site-v3 .farba-search-bridge > div > p:not(.overline) { color: #d6e4d8; }
body.glex-site-v3 .site-footer .wordmark { font-size: 28px; line-height: 1.2; }
body.glex-site-v3 .site-footer .footer-tag,
body.glex-site-v3 .site-footer .footer-blurb { font-size: 14px; line-height: 1.65; color: #c0cec3; }
body.glex-site-v3 .site-footer .footer-cols > div > a { display: block; width: fit-content; padding-block: 5px; }
body.glex-site-v3 .farba-page { padding: 22px 24px; max-width: 1480px; margin-inline: auto; }
body.glex-site-v3 .farba-workspace { gap: 16px; margin-top: 18px; }
body.glex-site-v3 .farba-intro { padding: 24px !important; }
body.glex-site-v3 .farba-intro h1 { font-size: clamp(2rem,3.5vw,3.5rem); }
body.glex-site-v3 .farba-portrait { width: 76px; height: 76px; }
body.glex-site-v3 .welcome-state h2 { font-size: clamp(1.8rem,2.8vw,2.6rem); }
body.glex-site-v3 .corpus3d-views button,
body.glex-site-v3 .corpus3d-modes button,
body.glex-site-v3 .corpus3d-rotation,
body.glex-site-v3 .corpus3d-relations button { min-height: 40px; font-size: 12px; }
body.glex-site-v3 .corpus3d-views button b { font-size: 12px; }
body.glex-site-v3 .corpus3d-views button span { font-size: 10px; }
body.glex-site-v3 .corpus3d-search input { font-size: 14px; min-height: 44px; }
body.glex-site-v3 .detail-number,
body.glex-site-v3 .detail-date { font-size: 12px; }
@media (max-width: 640px) {
  body.glex-site-v3 .search-hero { padding: 24px !important; }
  body.glex-site-v3 .farba-page { padding: 16px 12px; }
  body.glex-site-v3 .farba-intro { padding: 18px !important; }
  body.glex-site-v3 .farba-workspace { margin-top: 12px; }
  body.glex-site-v3 .farba-dialogue { border-radius: 18px; }
  body.glex-site-v3 .corpus3d-head { padding: 24px 20px !important; gap: 18px; }
  body.glex-site-v3 .corpus3d-title { font-size: 32px !important; line-height: 1.1; }
  body.glex-site-v3 .corpus3d-head p { font-size: 14px; line-height: 1.55; }
  body.glex-site-v3 .corpus3d-relations { display: flex; overflow-x: auto; max-width: 100%; gap: 5px; }
  body.glex-site-v3 .corpus3d-relations button { flex-shrink: 0; }
}
/* The user-selected dark theme must also apply to the added surfaces. */
html[data-theme=dark] { --glex-reading-surface: #18241f; --glex-soft-surface: #1c2b24; }
html[data-theme=dark] body.glex-site-v3 {
  background-color: #101b16 !important;
  background-image: radial-gradient(ellipse at top right,#173e2940,transparent 65%) !important;
}
html[data-theme=dark] body.glex-site-v3 :where(.toc,.reader-panel,.renvois-card) {
  background: var(--glex-soft-surface) !important; border-color: #ffffff22 !important;
}
html[data-theme=dark] body.glex-reader-v2 .reader-document .doc-body { color: #e3eae2; }
html[data-theme=dark] body.glex-reader-v2 .reader-document .doc-body > section:first-child > p { color: #c8d8cc; }

/* Keep scrolling content crisp; reserve backdrop sampling for navigation. */
body.glex-site-v3 :is(.doc-card,.doc-body,.reader-document,.toc,.reader-panel,.renvois-card,.cat-card,.corpus-metric,.tl-item,.farba-card,.side-search,.filters-search,.txt-search,.search-box,.filter-opt),
body.glex-site-v3 .masthead {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
body.glex-site-v3 .mast-nav,
.home-nav-shell {
  -webkit-backdrop-filter: blur(8px) saturate(120%) !important;
  backdrop-filter: blur(8px) saturate(120%) !important;
}
body.glex-site-v3 .with-side :is(.side,.filters) {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
body.glex-site-v3 :is(.doc-card,.cat-card,.tl-item):hover { transform: none !important; }

/* Shared menu palette and compact footer rhythm. */
body :is(.nav-more-panel,.nav-burger-panel,.account-menu) {
  background: linear-gradient(145deg,#164b39,#073425) !important;
  border: 1px solid rgba(224,239,228,.24) !important;
  box-shadow: 0 14px 32px #001d2340,inset 0 1px 0 #ffffff26 !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
}
body :is(.nav-more-panel,.nav-burger-panel,.account-menu) a {
  color: #f0f4eb !important; background: transparent !important;
  border-radius: 8px; line-height: 1.4;
}
body :is(.nav-more-panel,.nav-burger-panel,.account-menu) a:is(:hover,:focus-visible) {
  color: #fff !important; background: #ffffff18 !important;
}
body :is(.nav-more-panel,.nav-burger-panel,.account-menu) a:is(.active,[aria-current=page]) {
  color: #143425 !important; background: #e6c567 !important;
}
body .site-footer .footer-cols > div > br { display: none; }
body .site-footer :is(.footer-cols > div > a,.footer-col > a) {
  display: block; width: fit-content; margin: 0 !important;
  padding: 6px 0 !important; font-size: 15px; line-height: 1.5 !important;
}
body .site-footer :is(.footer-cols h4,.footer-col h6) {
  font-family: inherit; font-size: 12px; letter-spacing: .1em;
  margin: 0 0 14px; line-height: 1.5;
}
/* Reading surfaces must never fade through a blurred reveal state. */
body .reveal, body .reveal.in {
  opacity: 1 !important; filter: none !important; transform: none !important;
  transition: none !important;
}
