/* FD-WEB-024: the binding stays still; only the reading page turns. */
:root { --book-accent: #00415a; --book-wash: rgb(0 65 90 / 6%); --book-rule: rgb(0 65 90 / 25%); --book-paper: #f5f2eb;
  --book-binding-padding: 24px; --book-logo-width: 132px; --book-logo-padding: 9px; --book-logo-gap: 18px;
  --book-library-height: 60px; --book-contents-gap: 22px; --book-group-label-height: 16.5px; --book-group-label-gap: 7px;
  --book-library-separation: 15rem;
  --book-signature-height: calc((var(--book-logo-width) - 2 * var(--book-logo-padding)) * 1187 / 2117 + 2 * var(--book-logo-padding));
  --book-page-origin: var(--book-binding-padding);
  --book-heading-offset: calc(var(--book-signature-height) + var(--book-logo-gap) + var(--book-contents-gap) + var(--book-group-label-height) + var(--book-group-label-gap));
  --book-reading-width: 56rem;
  --book-binding-shadow: 15px 0 30px -5px rgb(0 0 0 / 15%), inset -4px 0 12px -4px rgb(0 0 0 / 10%);
  --book-reading-shadow: -8px 0 24px -12px rgb(0 0 0 / 15%);
  --book-spine-direction: to left;
  --book-spine-shadow: -2px 0 4px rgb(0 0 0 / 10%);
}
/* FD-WEB-036: Arabic opens from the opposite edge of the same book. */
html[dir='rtl'] {
  --book-binding-shadow: -15px 0 30px -5px rgb(0 0 0 / 15%), inset 4px 0 12px -4px rgb(0 0 0 / 10%);
  --book-reading-shadow: 8px 0 24px -12px rgb(0 0 0 / 15%);
  --book-spine-direction: to right;
  --book-spine-shadow: 2px 0 4px rgb(0 0 0 / 10%);
}
html { scrollbar-gutter: stable; }
html::-webkit-scrollbar { width: 6px; height: 6px; }
html::-webkit-scrollbar-track { background: transparent; }
html::-webkit-scrollbar-thumb { background: var(--book-rule); border-radius: 3px; }
html::-webkit-scrollbar-thumb:hover { background: var(--book-accent); }
/* Native document snapshots: reveal the next complete leaf under the old
   one. No disappearing paper, whole-screen white pulse or moving live type. */
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
  ::view-transition { pointer-events: none; }
  ::view-transition-group(root), ::view-transition-group(book-binding) { animation: none; }
  ::view-transition-image-pair(root), ::view-transition-image-pair(book-binding) { isolation: normal; }
  ::view-transition-old(root) {
    z-index: 2; mix-blend-mode: normal;
    animation: book-document-uncover 960ms cubic-bezier(.3,.3,.25,1) both;
  }
  ::view-transition-new(root) { animation: none; mix-blend-mode: normal; opacity: 1; }
  html[dir='rtl']::view-transition-old(root) { animation-name: book-document-uncover-rtl; }
  ::view-transition-old(book-binding) { animation: book-binding-handover 240ms ease-out both; mix-blend-mode: normal; }
  ::view-transition-new(book-binding) { animation: none; opacity: 1; mix-blend-mode: normal; }
  @media (min-width: 768px) { aside.book-binding { view-transition-name: book-binding; } }
}
@keyframes book-document-uncover {
  from { clip-path: inset(0 0 0 0); }
  to { clip-path: inset(0 100% 0 0); }
}
@keyframes book-document-uncover-rtl {
  from { clip-path: inset(0 0 0 0); }
  to { clip-path: inset(0 0 0 100%); }
}
@keyframes book-binding-handover { from { opacity: 1; } to { opacity: 0; } }
aside.book-binding { padding: var(--book-binding-padding) 26px; transition: none; scroll-behavior: auto; overscroll-behavior: contain; }
.book-binding-header { flex: 0 0 auto; padding-bottom: var(--book-contents-gap); }
.book-signature-link { display: block; position: relative; width: var(--book-logo-width); padding: var(--book-logo-padding); margin: 0 auto var(--book-logo-gap); color: var(--book-accent); text-decoration: none; }
.book-signature-link img { display: block; width: 100%; height: auto; aspect-ratio: 2117 / 1187; }
.book-nav-link { position: relative; overflow: hidden; }
.book-signature-link::before, .book-signature-link::after { content: ''; position: absolute; width: 17px; height: 17px; pointer-events: none; opacity: .45; }
.book-signature-link::before { inset-block-start: 0; inset-inline-start: 0; border-block-start: 1px solid; border-inline-start: 1px solid; }
.book-signature-link::after { inset-block-end: 0; inset-inline-end: 0; border-block-end: 1px solid; border-inline-end: 1px solid; }
.book-signature-link:hover, .book-signature-link:focus-visible { background: var(--book-wash); }
.book-signature-link:hover::before, .book-signature-link:hover::after { opacity: 1; }
.book-library-shortcut { display: grid; grid-template-columns: 24px minmax(0, 1fr) 17px; gap: 12px; align-items: center; min-height: var(--book-library-height); padding: 12px 14px; text-decoration: none !important; color: var(--book-accent); background: var(--book-wash); border: 1px solid var(--book-rule); position: relative; }
.book-library-shortcut span { font-size: 15px; font-family: inherit; font-weight: 500; line-height: 1.5; }
.book-library-shortcut::after { content: ''; position: absolute; inset-block: 4px; inset-inline-start: 4px; border-inline-start: 1px solid var(--book-rule); }
.book-library-shortcut:hover, .book-library-shortcut:focus-visible { border-color: var(--book-accent); background: var(--book-paper); }
.book-library-section { flex: 0 0 auto; min-width: 0; }
.book-library-section > .book-library-shortcut { margin: 0; }
.book-library-stamp { block-size: var(--book-library-separation); display: grid; place-items: center; pointer-events: none; user-select: none; }
.book-library-stamp picture { display: block; width: 132px; opacity: .14; filter: drop-shadow(0 1px 0 rgb(255 255 255 / 70%)); }
.book-library-section .book-library-stamp img { display: block; width: 100%; height: auto; aspect-ratio: 2117 / 1187; }
.book-binding .book-contents nav { gap: 20px; }
.book-binding .book-contents nav > div { gap: 0; }
.book-binding .book-contents nav > div > div { margin-bottom: 7px; padding-inline-start: 12px; }
.book-binding .book-contents nav > div > div > div { font-size: 11px; letter-spacing: .11em; }
.book-binding .book-contents nav > div > div { line-height: 16.5px; }
.book-binding .book-contents nav > div > div > span { display: none; }
.book-binding a.book-nav-link { display: grid; grid-template-columns: minmax(0,1fr) 2rem; align-items: center; gap: 8px; min-height: 44px; padding: 10px 12px; border: 0; border-inline-start: 1px solid transparent; font-size: 14px; line-height: 1.5; font-weight: 400; position: relative; text-decoration: none; transition: color 160ms, background-color 160ms; }
.book-nav-link > span:first-child { letter-spacing: 0; }
.book-binding .book-nav-number { display: grid; place-items: center; min-width: 28px; min-height: 24px; font-size: 12px; font-family: inherit; font-variant-numeric: lining-nums tabular-nums; line-height: 1; border-inline-start: 1px solid var(--book-rule); color: inherit; }
.book-binding a.book-nav-link[aria-current='page'], .book-binding a.book-nav-link:hover, .book-binding a.book-nav-link:focus-visible { color: var(--book-accent); background: var(--book-wash); border-inline-start-color: var(--book-accent); }
.book-nav-link[aria-current='page'] .book-nav-number { background: var(--book-accent); color: var(--book-paper) !important; border-color: transparent; }
.book-binding-end { display: flex; flex-direction: column; flex: 0 0 auto; gap: 24px; margin-top: 28px; }
.book-binding-end > a { min-height: 44px; }
.book-registration { display: flex; justify-content: space-between; align-items: center; gap: 12px; border-top: 1px solid var(--book-rule); padding-top: 17px; color: var(--book-accent); }
.book-registration > div { display: grid; gap: 5px; }
.book-registration span:first-child { font-size: 11px; font-weight: 600; letter-spacing: .09em; }
.book-registration span:last-child { font-size: 15px; line-height: 1.4; font-variant-numeric: tabular-nums; }
.book-registration img.book-uae-flag { width: 56px; height: 28px; object-fit: contain; }
.book-registration img { filter: grayscale(1); opacity: .55; mix-blend-mode: normal; }
@media (hover: hover) and (pointer: fine) {
  .book-registration img:hover { filter: grayscale(0); opacity: 1; }
}
/* Static Newsroom and React pages share identical binding geometry. */
.sidebar.book-binding { scrollbar-width: none; scrollbar-gutter: auto; border-inline: 0; }
.sidebar.book-binding::-webkit-scrollbar { display: none; }
.sidebar.book-binding > .book-library-section { margin-block-end: auto; }
.sidebar.book-binding > nav { display: flex; flex-direction: column; gap: 20px; margin-block-start: 0; padding-block-start: var(--book-contents-gap); }
.sidebar.book-binding .nav-group { margin: 0; }
.sidebar.book-binding .nav-group h2 { padding-inline-start: 12px; margin: 0 0 7px; font-size: 11px; line-height: 16.5px; letter-spacing: .11em; font-family: var(--font-serif); }
.sidebar.book-binding .nav-group h2::before { display: none; }
.sidebar.book-binding .book-binding-end > .language-switch { min-height: 44px; height: 44px; margin-block-start: 0; padding: 10px; }
.sidebar.book-binding .book-binding-end > .book-registration { margin-block-start: 0; }
.sidebar.book-binding .book-registration strong { font: 400 15px/1.4 ui-monospace, Consolas, monospace; }
.sidebar.book-binding .book-registration img { width: 56px; height: 28px; }
html[dir='rtl'] .book-binding :is(.nav-group h2, .book-contents nav > div > div > div, .book-registration span:first-child) { letter-spacing: 0; }
.book-mobile-link { min-height: 44px; border-inline-start: 1px solid var(--book-rule); }
.book-mobile-link[aria-current='page'] { color: var(--book-accent); background: var(--book-wash); }
.book-page-content { min-width: 0; }
.book-page-content h2 { scroll-margin-top: 2rem; }
.book-page-content :is(a.chapter-action, .company-faq summary) { position: relative; }
.book-page-content a.chapter-action { border-bottom: 0; padding: 14px 18px; border-inline-start: 1px solid var(--book-rule); background: var(--book-wash); gap: 2rem; }
.book-page-content a.chapter-action:hover { gap: 2rem; background: var(--book-paper); box-shadow: 0 7px 14px -12px rgb(0 35 48 / 45%); }
.company-faq details[open] { padding-inline: 18px; background: var(--book-wash); }
.company-faq summary:focus-visible { outline: 2px solid var(--book-accent); outline-offset: 3px; }
@media (min-width: 768px) {
  aside.book-binding { left: auto; right: auto; inset-inline-start: 0; inset-inline-end: auto; inset-block-start: 0; height: 100dvh; box-shadow: var(--book-binding-shadow); }
  aside.book-binding::before, aside.book-binding::after { content: ''; position: absolute; inset-block: 0; z-index: 20; pointer-events: none; }
  aside.book-binding::before { inset-inline-end: 0; width: 6px; border-inline-start: 1px solid rgb(160 152 136 / 40%); background: linear-gradient(var(--book-spine-direction), #b8b0a0, #c8c0b0, transparent); box-shadow: var(--book-spine-shadow); }
  aside.book-binding::after { inset-inline-end: 6px; width: 1px; background: rgb(255 255 240 / 30%); }
  .sidebar.book-binding { display: flex; flex-direction: column; }
  .sidebar.book-binding > :is(.book-signature-link, nav) { flex: 0 0 auto; }
}
.book-binding a[data-book-pending] { background: var(--book-wash); border-inline-start-color: var(--book-accent); }
.book-binding a[data-book-pending] .book-nav-number { outline: 1px solid var(--book-accent); outline-offset: 2px; }
@media (prefers-reduced-motion: no-preference) {
  /* A matching language handover starts folded before the first body paint.
     Keep departure folded through network latency; JS clears it on cancel. */
  html[data-book-phase] { --book-turn-angle: 58deg; --book-turn-edge: left; --book-cover-angle: -16deg; --book-cover-edge: right; }
  html[dir='rtl'][data-book-phase] { --book-turn-angle: -58deg; --book-turn-edge: right; --book-cover-angle: 16deg; --book-cover-edge: left; }
  html[data-book-phase] :is(main, .mobile-navigation) { opacity: .32; transform: perspective(2200px) rotateY(var(--book-turn-angle)); transform-origin: var(--book-turn-edge) var(--book-turn-center, 50vh); }
  html[data-book-phase] aside.book-binding { opacity: .6; transform: perspective(1400px) rotateY(var(--book-cover-angle)); transform-origin: var(--book-cover-edge) center; }
  /* A chapter moves one leaf, never the binding. This pre-paint pose bridges
     native documents without a flat flash while the next response arrives. */
  html[data-book-page-phase] { --book-page-angle: 30deg; --book-page-edge: left; --book-page-light: to right; }
  html[dir='rtl'][data-book-page-phase] { --book-page-angle: -30deg; --book-page-edge: right; --book-page-light: to left; }
  html[data-book-page-phase] :is(main .book-reading-frame, .mobile-navigation) {
    opacity: 0; transform: none;
  }
  /* Keep the paper and binding at their resting luminance. Only the ink
     changes; fading the whole main introduced a broad camera-flash pulse. */
  html[data-book-page-phase] main { opacity: 1; transform: none; }
  /* Fold a viewport-sized paper surface, never the text raster. At the end
     this leaf is transparent, so its final axis alignment cannot snap glyphs. */
  html[data-book-page-phase]::after {
    content: ''; position: fixed; inset-block: 0; inset-inline-start: 0; inset-inline-end: 6px;
    z-index: 40; pointer-events: none;
    background: linear-gradient(var(--book-page-light), rgb(0 32 44 / 6%), transparent 12%), var(--book-paper);
    box-shadow: 12px 0 24px -20px rgb(0 32 44 / 15%);
    opacity: 1; transform: perspective(2200px) rotateY(var(--book-page-angle));
    transform-origin: var(--book-page-edge) center;
    will-change: transform, opacity;
  }
  @media (min-width: 768px) { html[data-book-page-phase]::after { inset-inline-start: 320px; } }
  html[data-book-page-phase='departing']::after { animation: book-leaf-close 400ms cubic-bezier(.42,0,.58,1) both; }
  html[data-book-page-phase='arriving'][data-book-motion='opening']::after { animation: book-leaf-open 960ms cubic-bezier(.3,.3,.25,1) both; }
  html[data-book-motion='settled'] :is(main, main .book-reading-frame, .mobile-navigation, aside.book-binding) { opacity: 1; transform: none; }
  html[data-book-motion='settled']::after { opacity: 0; }
  .book-registration img { transition: filter 320ms ease-out, opacity 320ms ease-out; }
  .book-signature-link::before, .book-signature-link::after { transition: transform 240ms ease-out, opacity 240ms ease-out; }
  .book-signature-link:hover::before { transform: translate(-2px, -2px); }
  .book-signature-link:hover::after { transform: translate(2px, 2px); }
  .book-library-shortcut > svg:last-of-type { transition: transform 200ms ease-out; }
  .book-library-shortcut:hover > svg:last-of-type { transform: translate(2px,-2px); }
  .book-nav-number { transition: background-color 180ms, color 180ms; }
}
@keyframes book-leaf-close {
  from { opacity: var(--book-leaf-start-opacity, 0); transform: var(--book-leaf-start-transform, perspective(2200px) rotateY(0deg)); }
  to { opacity: 1; transform: perspective(2200px) rotateY(var(--book-page-angle)); }
}
@keyframes book-leaf-open {
  from { opacity: 1; transform: perspective(2200px) rotateY(var(--book-page-angle)); }
  to { opacity: 0; transform: perspective(2200px) rotateY(0deg); }
}
@media print { .book-library-shortcut { background: none; } }

/* FD-WEB-025 / FD-WEB-030: shared rails follow the binding after moving
   Library below the contents. Folio aligns with the logo; H1 with Overview. */
.book-reading-area { margin-left: 0; margin-right: 0; box-shadow: var(--book-reading-shadow); }
.book-page-shell, main.book-newsroom-shell { position: relative; padding: 40px 24px 64px; }
.book-reading-frame, .book-newsroom-shell > .page.book-reading-frame { width: 100%; max-width: var(--book-reading-width); min-width: 0; margin-inline: auto; padding: 0; }
.book-chapter-article { width: 100%; min-width: 0; margin: 0; padding: 0; }
.book-chapter-header { padding-block-start: 0 !important; margin-block-start: 0 !important; }
.book-chapter-header > .book-chapter-meta, .book-newsroom-shell .document-line {
  position: static; min-block-size: 96px; margin: 0 0 24px; padding-block: 0 16px;
  line-height: 1.5; align-items: flex-start; box-sizing: border-box;
}
.book-chapter-header > span.book-chapter-meta { display: block; font-size: 24px; }
.book-chapter-meta > .text-8xl { font-size: 24px; line-height: 1.5; }
.book-chapter-header > h1 { margin-block-start: 0; margin-inline: 0; text-align: start; }
.system-ownership-header { container-type: inline-size; }
.book-chapter-header > .system-ownership-title { font-size: clamp(2rem, 14.6cqi, 8rem); }
.system-ownership-title > span { display: block; }
.book-newsroom-shell .page-heading { margin-block-start: 0; }
.book-newsroom-shell .book-chapter-header > .back-link { margin: 16px 0 0; min-height: 44px; display: inline-flex; align-items: center; }
.book-margin-note { display: none; }
@media (max-width: 767.99px) {
  :root { --book-library-separation: 11rem; }
  /* Keep one shared separation after Contact across the three mobile menus.
     Flex/grid gaps count toward the total, rather than adding to it. */
  .mobile-navigation nav > .book-library-section .book-library-stamp { block-size: calc(var(--book-library-separation) - 2rem); }
  .book-mobile-fallback nav > .book-library-section .book-library-stamp { block-size: calc(var(--book-library-separation) - .75rem); }
  .mobile-header details > nav { padding-block-end: 0; }
  .mobile-header details > nav > .nav-group:last-child { margin-block-end: 0; }
  .mobile-header { min-height: 92px; padding: 24px; flex-wrap: nowrap; gap: 16px; }
  .mobile-header picture img { width: 96px; }
  .mobile-header .mobile-language { display: grid; place-items: center; min-width: 44px; min-height: 44px; font-size: 12px; margin-inline-start: auto; }
  .mobile-header details { flex-basis: auto; }
  .mobile-header summary { width: 44px; height: 44px; min-height: 44px; padding: 10px; font-size: 0; list-style: none; }
  .mobile-header summary::-webkit-details-marker { display: none; }
  .mobile-header summary::before { content: ''; display: block; width: 24px; height: 24px; background: currentColor; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E") center / contain no-repeat; }
  .mobile-header:has(details[open]) { flex-wrap: wrap; }
  .mobile-header details[open] { flex-basis: 100%; }
  .mobile-header details[open] summary { margin-inline-start: auto; }
}
@media (min-width: 768px) {
  main.book-reading-area, main.book-newsroom-shell { margin-left: 0; margin-right: 0; margin-inline-start: 320px; margin-inline-end: 0; }
  .book-page-shell, main.book-newsroom-shell { padding: var(--book-page-origin) 48px 64px; }
  .book-chapter-header > .book-chapter-meta, .book-newsroom-shell .document-line { min-block-size: calc(var(--book-heading-offset) - 24px); }
}
@media (min-width: 1536px) {
  .book-margin-note { display: block; position: absolute; top: var(--book-page-origin); width: 72px; height: calc(100% - var(--book-page-origin)); }
  .book-margin-note--left { inset-inline-start: 24px; }
  .book-margin-note--right { inset-inline-end: 24px; }
}
@media print {
  .sidebar.book-binding { display: none; }
  main.book-reading-area, main.book-newsroom-shell { margin: 0; width: auto; }
  .book-page-shell, main.book-newsroom-shell { padding: 0; }
  .book-chapter-header > .book-chapter-meta, .book-newsroom-shell .document-line { min-block-size: auto; }
  .book-margin-note { display: none; }
}
