/* Accessibility layer shared by every page (loaded last-but-one, after the page's own styles).
   Skip link, a focus ring that is visible on light AND dark backgrounds (WCAG 2.4.7 / 2.4.11 / 1.4.11), form error text,
   visually-hidden helper, high-contrast and reduced-motion handling. No script needed for any of it. */

.skip-link{position:fixed;left:12px;top:-80px;z-index:200000;background:#1A2B47;color:#fff;font:700 15px/1 "Manrope","Mulish",Arial,sans-serif;
  padding:14px 18px;border-radius:4px;text-decoration:none;border:2px solid #E3C987;transition:top .15s}
.skip-link:focus,.skip-link:focus-visible{top:12px;outline:3px solid #fff;outline-offset:2px}
main:focus,[tabindex="-1"]:focus{outline:none}
main [id]{scroll-margin-top:104px} /* anchors (#impressum, #fraud) must not hide under the sticky header */

/* Two-tone focus ring: dark inner line + gold halo, so it reads on white, ivory, navy and photographs */
html :is(a,button,input,select,textarea,summary,label,[role="button"],[tabindex]:not([tabindex="-1"])):focus-visible,
html :is(input,select,textarea):focus{
  outline:3px solid #1A2B47!important;outline-offset:2px!important;box-shadow:0 0 0 6px #E3C987!important;border-radius:4px}
html :is(input[type=checkbox],input[type=radio]):focus-visible{outline-offset:3px!important}

.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* forms */
.ap-req{color:#8A1F1F;font-weight:800;margin-left:.2em}
.ap-err{display:block;margin:6px 0 0;font:600 14px/1.4 "Manrope","Mulish",Arial,sans-serif;color:#8A1F1F}
.ap-err::before{content:"\26A0\FE0E  "}
[aria-invalid="true"]{border-color:#8A1F1F!important}
.ap-note{font-size:13px;line-height:1.5;margin:8px 0 0}
.ap-note a{color:inherit;text-decoration:underline;text-underline-offset:2px}

.req-label::after{content:" *";color:#8A1F1F;font-weight:800}
.jfb .lbl{display:block;font-size:.84rem;color:#4E5768;font-weight:600;margin:12px 0 5px}

/* the 3D apps (Resort, Jobs): small legal links under the title */
.legal-line{margin:6px 0 0;font:600 12px/1.4 "Manrope","Mulish",Arial,sans-serif;pointer-events:auto;color:rgba(246,241,230,.92)}
.legal-line a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* panels that slide over the 3D scene must not stay reachable by Tab while they are closed */
html .card:not(.open),html .drawer:not(.open),html .tp:not(.open){visibility:hidden;transition:transform .35s ease,visibility 0s linear .35s}
html .team:not(.open){visibility:hidden;transition:opacity .45s ease,transform .45s ease,visibility 0s linear .45s}
html .sheet:not(.open){visibility:hidden;transition:opacity .4s,transform .4s,visibility 0s linear .4s}

/* legal pages: optional statistics choice */
.ap-choice{margin-top:28px;padding:22px 24px;border:1px solid #E0D9CB;background:#F7F3EA;border-radius:6px}
.ap-choice h2{margin-top:0!important}
.ap-choice button{font:700 15px/1 "Manrope","Mulish",Arial,sans-serif;padding:14px 20px;border-radius:4px;border:0;background:#1A2B47;color:#fff;cursor:pointer}
.ap-choice [role=status]{margin-left:12px;font-weight:600}

/* windows high-contrast: the custom cursor and decorative glows must not hide the real pointer or colours */
@media (forced-colors:active){
  .ap-dot,.ap-ring{display:none!important}
  html.ap-cursor-on,html.ap-cursor-on *{cursor:auto!important}
  .skip-link{border-color:CanvasText}
}
@media (prefers-reduced-motion:reduce){.skip-link{transition:none}}
@media (pointer:coarse){.ap-dot,.ap-ring{display:none!important}}
