/* Gridbox Stories - all selectors are scoped; does not alter Gridbox menu or header. */
.gbs-root,.gbs-root *, .gbs-tooltip,.gbs-tooltip * { box-sizing: border-box; }
.gbs-root {
  --gbs-final-size: var(--gbs-size-desktop,46px);
  display: flex; align-items: center; justify-content: flex-start;
  width: max-content; max-width: 100%; min-width: 0;
  position: relative; isolation: isolate;
  font-family: inherit; line-height: normal;
}
.gbs-root.gbs-align-center { justify-content: center; margin-inline: auto; }
.gbs-root.gbs-align-end { justify-content: flex-end; margin-inline-start: auto; }
.gbs-list { display: flex !important; gap: var(--gbs-gap,9px) !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: center; width: max-content; max-width: 100%; min-width: 0; margin: 0; padding: 0; }
.gbs-story { flex: 0 0 auto; margin: 0 !important; padding: 0 !important; position: relative; min-width: 0; }
.gbs-story__link {
  display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important;
  gap: 4px; text-decoration: none !important; margin: 0 !important; padding: 0 !important;
  border: 0 !important; background: none !important; box-shadow: none !important;
  line-height: 1.2 !important; border-radius: 999px; cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.gbs-story__link:hover, .gbs-story__link:focus { text-decoration: none !important; }
.gbs-story__link:focus-visible { outline: 2px solid var(--gbs-ring-a); outline-offset: 5px; }
.gbs-circle {
  display: flex !important; align-items: center; justify-content: center; position: relative;
  flex: 0 0 var(--gbs-final-size); width: var(--gbs-final-size); height: var(--gbs-final-size);
  border-radius: 50%; padding: calc(var(--gbs-ring,3px) + 2px); overflow: hidden;
  transition: transform .25s ease; background: transparent;
}
.gbs-circle::before {
  content: ""; position: absolute; inset: 0; border-radius: 50%;
  background: conic-gradient(from 0deg, var(--gbs-ring-a) 0%, var(--gbs-ring-b) 25%, #fff1b8 45%, var(--gbs-ring-a) 70%, var(--gbs-ring-b) 100%);
  animation: gbs-rotate var(--gbs-spin,4s) linear infinite; will-change: transform;
}
.gbs-circle::after {
  content: ""; position: absolute; inset: var(--gbs-ring,3px); border-radius: 50%;
  background: var(--gbs-bg, #fff); pointer-events: none;
}
.gbs-picture {
  display: flex !important; align-items: center; justify-content: center; position: relative;
  z-index: 2; overflow: hidden; border-radius: 50%;
  width: 100%; height: 100%; background: linear-gradient(145deg,#f0f7fa,#dceaf3);
  color: #6589a0; box-shadow: 0 0 0 1px rgba(50,75,85,.07);
}
.gbs-picture img { display: block !important; width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: center !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 50%; }
.gbs-fallback { width: 46%; height: 46%; display:block; }
.gbs-story__link:hover .gbs-circle { transform: scale(1.06); }
.gbs-story.is-seen .gbs-circle::before { animation: none !important; opacity: 0; }
.gbs-story.is-seen .gbs-circle::after { background: transparent; }
.gbs-story.is-seen .gbs-picture { box-shadow: 0 0 0 1px rgba(100,130,145,.16); }
.gbs-caption { display: block; max-width: calc(var(--gbs-final-size) + 16px); font-weight: 500; font-size: 10px; line-height: 1.25; color: inherit; text-align: center; overflow:hidden; text-overflow: ellipsis; white-space: nowrap; }
@keyframes gbs-rotate { to { transform: rotate(360deg); } }
@media (max-width:1024px) { .gbs-root { --gbs-final-size: var(--gbs-size-tablet,42px); } }
@media (max-width:767px) { .gbs-root { --gbs-final-size: var(--gbs-size-mobile,38px); } }
@media (prefers-reduced-motion: reduce) { .gbs-circle::before { animation: none !important; will-change: auto; } .gbs-circle { transition: none; } }
/* Tooltip is moved to document.body so Gridbox header overflow cannot crop it. */
.gbs-tooltip {
  --gbs-arrow-x: 50%;
  display: block; position: fixed; inset: auto; z-index: 2147483000;
  width: max-content; max-width: min(var(--gbs-tooltip-width,244px), calc(100vw - 16px));
  min-width: 156px; padding: 12px 15px; pointer-events: none;
  border-radius: 13px; background: var(--gbs-tooltip-bg,#172330) !important; color: var(--gbs-tooltip-fg,#fff) !important;
  box-shadow: 0 10px 35px rgba(7,18,35,.18), 0 3px 8px rgba(7,18,35,.1);
  text-align: left; line-height: 1.3; font-family: inherit;
  opacity: 0; transform: translateY(5px); transition: opacity .23s ease, transform .23s ease;
}
.gbs-tooltip[hidden] { display: none !important; }
.gbs-tooltip.is-visible { opacity: 1; transform: translateY(0); }
.gbs-tooltip::after {
  content: ""; position: absolute; bottom: -6px; left: var(--gbs-arrow-x,50%);
  width: 13px; height: 13px; background: inherit; border-radius: 2px;
  transform: translateX(-50%) rotate(45deg);
}
.gbs-tooltip.gbs-tooltip--below::after { top: -6px; bottom: auto; }
.gbs-tooltip__heading { font-size: 13px; line-height: 1.4; font-weight: 650; display: block; color: inherit !important; white-space: normal; }
.gbs-tooltip__subtitle { font-size: 11px; font-weight: 400; line-height: 1.4; opacity: .81; display: block; margin-top: 3px; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: inherit !important; }
@media (prefers-reduced-motion: reduce) { .gbs-tooltip { transition: none; } }

/* 1.8.1 — Instagram-like preview slides, rendered in browser top layer via native dialog.
   The stylesheet intentionally includes NO copy of PhotoSwipe or another vendor library. */
.gbs-preview-stage, .gbs-preview-stage *, .gbs-viewer, .gbs-viewer * { box-sizing: border-box; }
.gbs-preview-stage {
  --gbs-preview-timer: 10s;
  width: 100%; height: 100%; min-height: 0;
  display: flex; align-items: center; justify-content: center;
  pointer-events: none; color: #fff; font-family: inherit;
  padding: clamp(10px,2.5vh,24px) 42px;
}
.gbs-preview {
  position: relative; isolation: isolate; overflow: hidden;
  width: min(430px,100%); height: min(760px,calc(100dvh - 48px));
  min-height: 340px; border-radius: 20px; background: #121b28;
  color: #fff; pointer-events: auto;
  box-shadow: 0 28px 90px rgba(0,0,0,.42), 0 4px 18px rgba(0,0,0,.25);
  display: flex; flex-direction: column; justify-content: flex-end;
}
.gbs-preview__picture, .gbs-preview__gradient {
  position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none;
}
/* 1.7.1 — the photo is a real <img class="gbs-preview__img"> created by viewer.js from a list of
   candidate URLs. The gradient below is only a PLACEHOLDER: visible while the photo is loading
   (.is-pending) or when every candidate failed (.is-empty). Once loaded (.is-loaded) it is gone. */
.gbs-preview__picture {
  z-index:0; overflow:hidden;
  background:linear-gradient(145deg,#1c2b3f,#506c77);
}
.gbs-preview__picture.is-loaded { background:#0f1824; }
.gbs-preview__picture .gbs-preview__img {
  position:absolute !important; inset:0 !important; z-index:1 !important;
  display:block !important; width:100% !important; height:100% !important;
  max-width:none !important; max-height:none !important; margin:0 !important; padding:0 !important;
  border:0 !important; border-radius:0 !important; box-shadow:none !important;
  object-fit:var(--gbs-image-fit,cover) !important; object-position:center !important;
  opacity:1 !important; visibility:visible !important; filter:none !important; transform:none !important;
  animation:none !important; transition:none !important;
}
.gbs-preview__no-image { font-size: 8rem; opacity: .4; width:100%;height:100%;display:grid;place-items:center; }
/* Independent overlay: can be disabled without interfering with photo rendering. */
.gbs-preview__gradient {
  z-index:2;
  background:linear-gradient(180deg,rgba(5,11,22,.25) 0%,transparent 24%,transparent 43%,rgba(5,11,22,.58) 74%,rgba(5,11,22,.86) 100%);
}
.gbs-preview-stage[data-gbs-overlay="strong"] .gbs-preview__gradient {
  background:linear-gradient(180deg,rgba(5,11,22,.48) 0%,transparent 24%,rgba(5,11,22,.1) 43%,rgba(5,11,22,.78) 74%,rgba(5,11,22,.96) 100%);
}
.gbs-preview-stage[data-gbs-overlay="none"] .gbs-preview__gradient { background:none !important; }
.gbs-preview__top { position:absolute; z-index:3; inset: 33px auto auto 22px; display:flex; align-items:center; gap:9px; font-size:12px; letter-spacing:.045em; text-transform:uppercase; font-weight:700; text-shadow:0 1px 6px #0005; }
.gbs-preview__dot { width:9px; height:9px; flex:0 0 9px; border-radius:50%; background:#a6d4e7; box-shadow: 0 0 0 4px #84acc247; }
.gbs-preview__text { position:relative; z-index:4; padding: 24px clamp(20px,5vw,30px) 32px; min-width:0; max-height: min(65%,520px); overflow: auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#ffffff68 transparent; }
.gbs-preview__heading { color:#fff !important; font-family:inherit; font-size:clamp(22px,3vw,30px) !important; font-weight:750 !important; letter-spacing:-.025em; line-height:1.17 !important; margin:0 0 14px !important; padding:0 !important; text-wrap:balance; text-shadow:0 1px 7px #0005; }
.gbs-preview__excerpt { color:rgba(255,255,255,.9) !important; font-family:inherit; font-size:14px !important; font-weight:400; line-height:1.55 !important; margin:0 0 22px !important; padding:0 !important; white-space:normal; overflow-wrap:anywhere; }
.gbs-preview__button {
  display:flex !important; align-items:center; justify-content:center; gap:11px;
  color:#112332 !important; background:#fff !important; border:1px solid #fff !important;
  padding:13px 17px !important; border-radius:999px !important;
  font-size:13px !important; line-height:1.4 !important; font-family:inherit; font-weight:700;
  text-align:center; text-decoration:none !important; cursor:pointer;
  transition:transform .2s ease,background .2s ease;
  box-shadow: 0 8px 20px rgba(0,0,0,.2);
}
.gbs-preview__button:hover { background:#d8edf7 !important; color:#112332 !important; transform:translateY(-1px); }
.gbs-preview__button:focus-visible { outline:3px solid #84acc2 !important;outline-offset:3px; }
.gbs-preview__button span { font-size:18px; line-height:1; }
.gbs-preview__progress { position:absolute; z-index:6; top:13px;left:15px;right:15px; display:flex; gap:5px; pointer-events:none; }
.gbs-preview__bar { position:relative; display:block; height:3px; flex:1; background:rgba(255,255,255,.37); border-radius:3px; overflow:hidden; }
.gbs-preview__bar::before { content:"";display:block;width:100%;height:100%;background:#fff;transform:scaleX(0);transform-origin:left center; }
.gbs-preview__bar.is-complete::before { transform:scaleX(1); }
.gbs-preview__bar.is-current::before { transform:scaleX(.12); }
.gbs-preview-stage.is-playing .gbs-preview__bar.is-current::before { animation:gbs-preview-progress var(--gbs-preview-timer,10s) linear both; }
@keyframes gbs-preview-progress { from {transform:scaleX(0)} to {transform:scaleX(1)} }

/* Highest browser top layer: modern native modal dialog appended to <body>.
   Not clipped by overflow:hidden / transforms on the Gridbox menu or header. */
.gbs-viewer {
  position:fixed !important; inset:0 !important; width:100vw !important;
  width:100dvw !important; height:100vh !important; height:100dvh !important;
  max-width:none !important;max-height:none !important;
  margin:0 !important; padding:0 !important; border:0 !important;
  background:var(--gbs-viewer-backdrop-color,rgba(5,10,18,.94)) !important;
  -webkit-backdrop-filter:blur(var(--gbs-viewer-backdrop-blur,7px)) !important;
  backdrop-filter:blur(var(--gbs-viewer-backdrop-blur,7px)) !important;
  color:#fff !important; overflow:hidden !important;
  z-index:2147483002 !important; font-family:inherit; isolation:isolate;
}
.gbs-viewer:not([open]) { display:none !important; }
/* The full-viewport dialog is the per-instance adjustable scrim. Its genuine
   ::backdrop stays clear so it cannot fight the theme or double-darken the page. */
.gbs-viewer::backdrop { background:transparent !important; backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
.gbs-viewer__shell { position:relative; width:100%;height:100%; display:flex; align-items:center;justify-content:center; }
/* Separate absolute slide layers let the old and new story crossfade/slide without jumps. */
.gbs-viewer__frame { position:relative; width:100%;height:100%; min-height:0; overflow:hidden; }
.gbs-viewer__frame > .gbs-preview-stage { position:absolute; inset:0; }
.gbs-viewer__frame > .gbs-preview-stage:not([data-gbs-active-stage]) .gbs-preview {pointer-events:none !important;}
.gbs-viewer__frame > .gbs-preview-stage.gbs-slide-enter-next {animation:gbs-v181-enter-next var(--gbs-slide-duration,360ms) cubic-bezier(.22,.74,.22,1) both !important;}
.gbs-viewer__frame > .gbs-preview-stage.gbs-slide-enter-prev {animation:gbs-v181-enter-prev var(--gbs-slide-duration,360ms) cubic-bezier(.22,.74,.22,1) both !important;}
.gbs-viewer__frame > .gbs-preview-stage.gbs-slide-leave-next {animation:gbs-v181-leave-next var(--gbs-slide-duration,360ms) cubic-bezier(.22,.74,.22,1) both !important;}
.gbs-viewer__frame > .gbs-preview-stage.gbs-slide-leave-prev {animation:gbs-v181-leave-prev var(--gbs-slide-duration,360ms) cubic-bezier(.22,.74,.22,1) both !important;}
.gbs-viewer__frame > .gbs-preview-stage.gbs-fade-enter {animation:gbs-v181-fade-enter var(--gbs-slide-duration,360ms) ease both !important;}
.gbs-viewer__frame > .gbs-preview-stage.gbs-fade-leave {animation:gbs-v181-fade-leave var(--gbs-slide-duration,360ms) ease both !important;}
@keyframes gbs-v181-enter-next {from {opacity:0;transform:translate3d(28px,0,0) scale(.985);} to {opacity:1;transform:translate3d(0,0,0) scale(1);}}
@keyframes gbs-v181-enter-prev {from {opacity:0;transform:translate3d(-28px,0,0) scale(.985);} to {opacity:1;transform:translate3d(0,0,0) scale(1);}}
@keyframes gbs-v181-leave-next {from {opacity:1;transform:translate3d(0,0,0);} to {opacity:0;transform:translate3d(-22px,0,0) scale(.985);}}
@keyframes gbs-v181-leave-prev {from {opacity:1;transform:translate3d(0,0,0);} to {opacity:0;transform:translate3d(22px,0,0) scale(.985);}}
@keyframes gbs-v181-fade-enter {from {opacity:0;} to {opacity:1;}}
@keyframes gbs-v181-fade-leave {from {opacity:1;} to {opacity:0;}}
/* Icon geometry is independent of the site's font, line-height and button defaults. */
.gbs-viewer button.gbs-viewer__close, .gbs-viewer button.gbs-viewer__nav {
  position:absolute !important; z-index:10 !important;
  display:flex !important; align-items:center !important; justify-content:center !important;
  flex-direction:row !important; box-sizing:border-box !important;
  width:44px !important;height:44px !important; min-width:44px !important; min-height:44px !important;
  padding:0 !important; margin:0 !important;
  appearance:none !important;-webkit-appearance:none !important;
  background:rgba(255,255,255,.13) !important;
  border:1px solid rgba(255,255,255,.19) !important; border-radius:50% !important;
  color:#fff !important; font-size:0 !important; line-height:0 !important;
  letter-spacing:0 !important;text-indent:0 !important;
  cursor:pointer; -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  box-shadow:none !important;text-decoration:none !important;
}
.gbs-viewer button.gbs-viewer__close svg, .gbs-viewer button.gbs-viewer__nav svg {
  display:block !important; position:static !important; flex:none !important;
  width:20px !important;height:20px !important; min-width:20px !important;min-height:20px !important;
  margin:0 !important;padding:0 !important;transform:none !important;
  fill:none !important; stroke:currentColor !important;stroke-width:2.4 !important;
  stroke-linecap:round !important;stroke-linejoin:round !important;
  pointer-events:none !important;
}
.gbs-viewer button.gbs-viewer__close svg {width:19px !important;height:19px !important;min-width:19px !important;min-height:19px !important;}
.gbs-viewer__close:hover, .gbs-viewer__nav:hover { background:rgba(255,255,255,.27) !important; }
.gbs-viewer__close:focus-visible, .gbs-viewer__nav:focus-visible { outline:2px solid #fff;outline-offset:3px; }
.gbs-viewer__close { top: max(16px,env(safe-area-inset-top)); right:max(16px,env(safe-area-inset-right)); }
.gbs-viewer__nav { top:50%;transform:translateY(-50%); }
.gbs-viewer__nav--prev { left: max(12px,calc((100vw - 540px)/2 - 20px)); }
.gbs-viewer__nav--next { right:max(12px,calc((100vw - 540px)/2 - 20px)); }
.gbs-viewer__nav:disabled { opacity:.22;pointer-events:none; }
.gbs-viewer__nav[hidden] { display:none !important; }
.gbs-viewer__counter { position:absolute;bottom:7px;left:0;right:0;text-align:center;color:#c8d1dc;font:500 11px/1.3 system-ui,sans-serif;pointer-events:none; }
@media(max-width:600px) {
  .gbs-preview-stage { padding:0; }
  .gbs-preview { width:100%;height:100%;max-width:none;max-height:none;border-radius:0; }
  .gbs-preview__text { padding:22px 24px max(40px,env(safe-area-inset-bottom));max-height:63%; }
  .gbs-preview__heading {font-size:clamp(24px,7vw,30px) !important;}
  .gbs-preview__progress {top:max(12px,env(safe-area-inset-top));}
  .gbs-preview__top {top:max(34px,calc(env(safe-area-inset-top) + 24px));}
  .gbs-viewer__close {top:34px;right:15px;background:rgba(0,0,0,.37) !important;}
  .gbs-viewer button.gbs-viewer__nav {width:36px !important;height:36px !important;min-width:36px !important;min-height:36px !important;background:rgba(0,0,0,.35) !important;}
  .gbs-viewer__nav--prev {left:6px;}
  .gbs-viewer__nav--next {right:6px;}
  .gbs-viewer__counter {bottom:7px;}
}
@media(prefers-reduced-motion:reduce) {
 .gbs-preview__button {transition:none;}
 .gbs-preview-stage.is-playing .gbs-preview__bar.is-current::before {animation:none;}
 .gbs-viewer__frame > .gbs-preview-stage.gbs-slide-enter-next,
 .gbs-viewer__frame > .gbs-preview-stage.gbs-slide-enter-prev,
 .gbs-viewer__frame > .gbs-preview-stage.gbs-slide-leave-next,
 .gbs-viewer__frame > .gbs-preview-stage.gbs-slide-leave-prev,
 .gbs-viewer__frame > .gbs-preview-stage.gbs-fade-enter,
 .gbs-viewer__frame > .gbs-preview-stage.gbs-fade-leave {animation:none !important;}
}

/* 1.5.0: optional VISIBLE editorial link section for internal linking.
   Compact header mode remains unchanged. Do not hide this section from users
   while showing its content to crawlers. No JavaScript is required. */
.gbs-navigation { display:block; width: max-content; max-width:100%; }
.gbs-root.gbs-with-seo { width:min(100%,560px); flex-direction:column; align-items:stretch; gap:18px; }
.gbs-root.gbs-with-seo .gbs-navigation { width:100%; }
.gbs-root.gbs-with-seo .gbs-list { width:100%; }
.gbs-root.gbs-with-seo.gbs-align-center .gbs-list { justify-content:center !important; }
.gbs-root.gbs-with-seo.gbs-align-end .gbs-list { justify-content:flex-end !important; }
.gbs-root .gbs-seo { width:100%; min-width:0; max-width:100%; font-family:inherit; text-align:left; }
.gbs-root .gbs-seo__heading { margin:0 0 13px !important; padding:0 !important; color:inherit !important; font-size:clamp(17px,1.45vw,21px) !important; line-height:1.3 !important; font-weight:700 !important; text-transform:none; letter-spacing:normal; }
.gbs-root .gbs-seo__items { margin:0 !important; padding:0 !important; list-style:none !important; display:grid; gap:14px; }
.gbs-root .gbs-seo__item { list-style:none !important; margin:0 !important; padding:0 0 12px !important; border-bottom:1px solid rgba(126,139,152,.18); }
.gbs-root .gbs-seo__link { display:inline !important; text-decoration:underline !important; text-decoration-thickness:1px !important; text-underline-offset:.18em; color:inherit !important; font-size:14px !important; line-height:1.5 !important; font-weight:650 !important; overflow-wrap:anywhere; }
.gbs-root .gbs-seo__link:hover { text-decoration-thickness:2px !important; }
.gbs-root .gbs-seo__link:focus-visible, .gbs-root .gbs-seo__archive:focus-visible { outline:2px solid var(--gbs-ring-a);outline-offset:3px; }
.gbs-root .gbs-seo__excerpt { padding:0 !important; margin:6px 0 0 !important; color:inherit !important; opacity:.78; font-size:13px !important; line-height:1.55 !important; font-weight:400; overflow-wrap:anywhere; }
.gbs-root .gbs-seo__date { display:block; margin-top:6px; opacity:.60; font-size:11px;line-height:1.4; }
.gbs-root .gbs-seo__archive { display:inline-flex !important; gap:8px; margin-top:13px; font-size:12px !important; font-weight:650; line-height:1.5; color:inherit !important; text-decoration:underline !important; text-underline-offset:3px; }

/* 1.7.1: optional on-page image diagnostics in lightbox (candidate list + disk check). */
.gbs-preview__debug { position:absolute;z-index:9;left:14px;right:14px;top:68px;
 padding:8px 10px;border-radius:8px;background:rgba(8,39,27,.9);font:500 11px/1.45 monospace;
 color:#e2ffec;overflow-wrap:anywhere;white-space:pre-wrap;max-height:34vh;overflow:auto; }
.gbs-preview__debug.is-error { background:rgba(90,17,21,.93);color:#fff5f5; }
.gbs-preview__debug[hidden] {display:none !important;}
