/* Shared legal presentation, scoped to the four legal templates. */
body.oling-body main.oling-legal-2026 {
  --legal-ink: #122e43;
  --legal-copy: #4b6271;
  --legal-teal: #25676c;
  font-family: var(--oling-body), sans-serif;
  background: #fff !important;
}
body.oling-body .oling-legal-2026 .container { max-width: 1180px; }
body.oling-body .oling-legal-2026 :is(h1,h2,h3,h4,p,li,a) { font-family: var(--oling-body), sans-serif; hyphens: none; }
body.oling-body .oling-legal-2026 :is(h1,h2,h3,h4) { color: var(--legal-ink) !important; font-weight: 750; letter-spacing: -.035em; }
body.oling-body .oling-legal-2026 :is(p,li) { color: var(--legal-copy); font-size: 1rem; line-height: 1.7; }
body.oling-body .oling-legal-2026 .oling-kicker { color: #805166; font-size: .72rem; letter-spacing: .09em; }
body.oling-body main.oling-legal-2026 .oling-legal-hero { background: #f6f5f0 !important; border-bottom: 1px solid #e6e8e4; padding: clamp(2rem,4vw,3.75rem) 0; }
.oling-legal-hero__inner { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(0,1fr); gap: 2.5rem; align-items: center; }
body.oling-body .oling-legal-hero h1 { font-size: clamp(2rem,3.6vw,3.2rem) !important; line-height: 1.08 !important; margin: .9rem 0 1.2rem; text-wrap: balance; }
.oling-legal-hero p { max-width: 56ch; margin-bottom: 1.2rem; }
body.oling-body .oling-legal-hero .oling-legal-updated { font-size: .82rem; }
.oling-legal-hero .btn { margin-top: .4rem; white-space: nowrap; }
.oling-legal-hero figure { margin: 0; width: 100%; max-width: 440px; justify-self: center; }
.oling-legal-hero img { display: block; width: 100%; height: auto; }
.oling-legal-reading { display: grid; grid-template-columns: minmax(0,245px) minmax(0,1fr); align-items: start; gap: clamp(1.5rem,3vw,3rem); padding-block: clamp(2rem,4vw,3.5rem); }
.oling-legal-reading:has(.oling-legal-sidebar[hidden]) { grid-template-columns: minmax(0,820px); justify-content: center; }
.oling-legal-sidebar { position: sticky; top: 110px; max-height: calc(100vh - 135px); overflow-y: auto; padding: 1rem 1rem 1rem 0; }
.oling-legal-sidebar[hidden] { display: none; }
.oling-legal-toc { list-style: none; padding: 0; margin: .85rem 0 0; border-left: 2px solid #dbe6e5; }
.oling-legal-toc li { margin: 0; }
body.oling-body .oling-legal-toc a { display: block; padding: .45rem 0 .45rem 1rem; font-size: .84rem; line-height: 1.45; color: var(--legal-copy); text-decoration: none; }
body.oling-body .oling-legal-toc a:hover { color: var(--legal-teal); text-decoration: underline; }
.oling-legal-document { min-width: 0; scroll-margin-top: 110px; }
.oling-legal-document :is(h2,h3,[id]) { scroll-margin-top: 110px; }
body.oling-body .oling-legal-document h2 { font-size: clamp(1.35rem,2vw,1.8rem) !important; line-height: 1.22 !important; margin: 0 0 1rem !important; }
body.oling-body .oling-legal-document h3 { font-size: 1.15rem !important; line-height: 1.3 !important; }
.oling-legal-source > :is(div,section), .oling-legal-document > #cookies { padding: clamp(1.25rem,2.5vw,2rem); margin: 0 0 1.25rem !important; border: 1px solid #dfe7e8; border-radius: 1rem; background: #f9fbfa; }
.oling-legal-source > :is(div,section):nth-child(even) { background: #fff; }
.oling-legal-source > :is(div,section):first-child { border-top: 3px solid #8baead; }
.oling-legal-source p:last-child, .oling-legal-source ul:last-child { margin-bottom: 0; }
.oling-legal-source :is(p,li,a) { overflow-wrap: anywhere; }
.oling-legal-source ul { padding-left: 1.2rem; }
.oling-legal-source li { margin-bottom: .65rem; padding-left: .2rem; }
.oling-legal-source li::marker { color: var(--legal-teal); }
.oling-legal-source a { color: var(--legal-teal); text-decoration: underline; text-underline-offset: 3px; }
body.oling-body main.oling-legal-2026 :is(.oling-legal-source, .oling-cookie-policy) a:is(:hover, :focus, :active) {
  color: #174b50 !important;
}
/* Compact navigation within the AI charter; override legacy CMS font sizes. */
.oling-legal-source > nav:has(a[href^="#principe-"]) {
  padding: 1.25rem;
  margin-bottom: 1.25rem !important;
  border: 1px solid #dfe7e8;
  border-radius: 1rem;
  background: #f1f6f6;
}
.oling-legal-source > nav:has(a[href^="#principe-"]) ol {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .5rem;
  list-style: none;
  counter-reset: legal-principle;
  margin: 0;
  padding: 0;
}
.oling-legal-source > nav:has(a[href^="#principe-"]) li { counter-increment: legal-principle; margin: 0; padding: 0; }
body.oling-body main.oling-legal-2026 a[href^="#principe-"] {
  display: flex;
  align-items: center;
  gap: .65rem;
  height: 100%;
  padding: .65rem .75rem;
  border: 1px solid #dfe7e8;
  border-radius: .5rem;
  background: #fff;
  color: var(--legal-teal) !important;
  font-size: .85rem !important;
  line-height: 1.4;
  font-weight: 600;
  text-decoration: none;
}
body.oling-body main.oling-legal-2026 a[href^="#principe-"] :is(b, strong, font) { font-size: inherit !important; font-weight: inherit; color: inherit !important; }
.oling-legal-source a[href^="#principe-"]::before { content: counter(legal-principle, decimal-leading-zero); color: #805166; font-size: .75rem; }
body.oling-body main.oling-legal-2026 a[href^="#principe-"]:is(:hover, :focus) { background: #e4efed; border-color: var(--legal-teal); }
/* Read-only cookie inventory: all controls remain in the consent dialog. */
.oling-cookie-policy__group { margin: 1.4rem 0; }
body.oling-body main.oling-legal-2026 .oling-cookie-policy p { font-size: .82rem; line-height: 1.55; margin-bottom: .65rem; }
.oling-cookie-policy__scroll { overflow-x: auto; border: 1px solid #dbe4e5; border-radius: .6rem; }
.oling-cookie-policy__scroll:focus-visible { outline: 2px solid var(--legal-teal); outline-offset: 3px; }
.oling-cookie-policy table { width: 100%; min-width: 640px; table-layout: fixed; border-collapse: collapse; margin: 0; background: #fff; }
.oling-cookie-policy .cookie-col-name { width: 27%; }
.oling-cookie-policy .cookie-col-purpose { width: 30%; }
.oling-cookie-policy .cookie-col-recipient { width: 18%; }
.oling-cookie-policy .cookie-col-duration { width: 25%; }
body.oling-body main.oling-legal-2026 .oling-cookie-policy :is(th,td) { padding: .65rem; vertical-align: top; text-align: left; font-size: .78rem; line-height: 1.5; color: var(--legal-copy); border-bottom: 1px solid #e3eaea; overflow-wrap: anywhere; }
body.oling-body main.oling-legal-2026 .oling-cookie-policy thead th { background: #e9f1f0; color: var(--legal-ink); font-weight: 700; }
.oling-cookie-policy tbody tr:last-child :is(th,td) { border-bottom: 0; }
.oling-cookie-policy tbody th { font-weight: 500; }
.oling-cookie-policy code { display: block; margin-bottom: .2rem; font-size: .72rem; color: var(--legal-ink); overflow-wrap: anywhere; }
.oling-cookie-policy small { font-size: .7rem; color: var(--legal-copy); }
.oling-cookie-policy__notes { margin: 1rem 0; }
.oling-cookie-policy__scroll-hint { display: none; }
.oling-legal-document .btn { max-width: 100%; }
.oling-legal-2026 a:focus-visible, .oling-legal-2026 button:focus-visible { outline: 3px solid #bd3868; outline-offset: 4px; }
.oling-legal-related { padding: 2.75rem 0; background: #f1f6f6; }
body.oling-body .oling-legal-related h2 { font-size: clamp(1.5rem,2.3vw,2rem) !important; line-height: 1.2 !important; margin-bottom: 1.4rem; }
.oling-legal-related__grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .85rem; }
.oling-legal-related__grid a { display: flex; justify-content: space-between; align-items: center; gap: .7rem; padding: 1.3rem; border-radius: .8rem; border: 1px solid #dbe6e7; background: white; color: var(--legal-ink); font-weight: 650; text-decoration: none; }
body.oling-body main.oling-legal-2026 .oling-legal-related__grid a {
  color: var(--legal-ink) !important;
}
body.oling-body main.oling-legal-2026 .oling-legal-related__grid a:is(:hover, :focus, :active) {
  color: var(--legal-teal) !important;
  background: #eef5f3;
  border-color: var(--legal-teal);
}
.oling-legal-related__grid a span { color: #bd3868; }
.oling-legal-contact { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-top: 2rem; padding: 2rem; background: #122e43; border-radius: 1rem; }
body.oling-body .oling-legal-contact h2 { color: #fff !important; margin: 0; }
.oling-legal-contact .btn { white-space: nowrap; flex-shrink: 0; }
@media(min-width:992px) and (max-width:1399px) {
  body:has(.oling-legal-2026) #header .oling-topbar { gap: .5rem !important; }
  body:has(.oling-legal-2026) #header .oling-brand { margin-right: 0 !important; }
  body:has(.oling-legal-2026) #header .oling-main-menu { flex-wrap: wrap; justify-content: flex-end; }
  body:has(.oling-legal-2026) #header .oling-main-menu .nav-link { padding-inline: .5rem !important; }
}
@media(max-width:991px) {
  .oling-legal-reading { grid-template-columns: 1fr; }
  .oling-legal-sidebar { position: static; max-height: none; overflow: visible; padding: 0 0 1rem; border-bottom: 1px solid #dbe6e5; }
  .oling-legal-toc { columns: 2; }
  .oling-legal-toc li { break-inside: avoid; }
  .oling-legal-related__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:640px) {
  .oling-legal-source > nav:has(a[href^="#principe-"]) ol { grid-template-columns: 1fr; }
  .oling-cookie-policy__scroll-hint { display: block; }
  .oling-legal-hero__inner { grid-template-columns: 1fr; gap: 1.2rem; }
  .oling-legal-hero figure { max-width: 290px; }
  .oling-legal-toc { columns: 1; }
  .oling-legal-related__grid { grid-template-columns: 1fr; }
  .oling-legal-contact { flex-direction: column; align-items: flex-start; padding: 1.5rem; }
}
