/* Enjoy Event — screen-only readability adjustments.
   Loaded after page styles. Print documents retain their original layout. */
@media screen {
  /* The admin originally uses #A0A6B3 placeholders on white. These targeted
     light-mode colors also keep the accounting inputs and helper text legible. */
  html:not([data-theme="dark"]) #app,
  html:not([data-theme="dark"]) #login-screen {
    --placeholder: #657084;
    --text-3: #586479;
  }
  html:not([data-theme="dark"]) #contact .finput::placeholder {
    color: #657084;
    opacity: 1;
  }
  html:not([data-theme="dark"]) #contact label.fl {
    color: #8A6A28 !important;
  }
  /* Inactive category counts have a gold background; white text was weak. */
  .sim .tab:not([aria-pressed="true"]) .tab-n {
    color: #14213D;
  }
  #app .mini-label,
  #app .field > label:not(.chk),
  #login-screen .login-label,
  #contact label.fl {
    font-size: 12px;
    line-height: 1.5;
    letter-spacing: .07em;
  }
  #app .hint,
  #app .toggle-sub,
  #app .panel-sub,
  #contact #form-helper {
    line-height: 1.6;
    overflow-wrap: break-word;
  }
  /* Restore explicit keyboard focus where inputs set outline:none.
     A white halo keeps the dark outline distinguishable on navy backgrounds. */
  :is(#app, #login-screen, #nb, #contact, .sim, #gallery-grid, #lightbox)
  :is(a[href], button, input, select, textarea, [role="button"]):focus-visible {
    outline: 3px solid #8A6A28;
    outline-offset: 3px;
    box-shadow: 0 0 0 5px #FFFFFF;
  }
  .sim .pick input:focus-visible + .pick-in {
    outline: 3px solid #8A6A28;
    outline-offset: 3px;
  }
  #app .toggle input:focus-visible + .tslider {
    outline: 3px solid #8A6A28;
    outline-offset: 3px;
  }
  /* Fixed full-screen login panels need scrolling in landscape or when the
     mobile keyboard reduces the viewport. */
  #login-screen {
    overflow-y: auto;
  }
}
@media screen and (max-height: 600px) {
  #login-screen {
    align-items: flex-start;
  }
  #login-screen .login-box {
    flex-shrink: 0;
    margin-top: 12px;
    margin-bottom: 12px;
  }
}
@media screen and (max-width: 820px) {
  /* Accounting line editors and several login fields were 11–15px.
     Keep entry text at 16px without resizing native checkboxes or color chips. */
  :is(#app, #login-screen) input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="hidden"]),
  :is(#app, #login-screen) select,
  :is(#app, #login-screen) textarea,
  #contact .finput {
    font-size: 16px;
    line-height: 1.4;
    min-height: 44px;
  }
  :is(#app, #login-screen) button,
  #app .tb-btn,
  #app .sb-item,
  #app .dh-btn,
  #app [data-doc-type],
  #nb #burger,
  #nb .lang-btn,
  .sim button,
  #contact .submit-btn,
  #lightbox button {
    min-height: 44px;
    min-width: 44px;
  }
  /* icon-btn has a fixed 34px height, so min-height must accompany the rule. */
  #app .icon-btn {
    height: auto;
  }
  #app .field .chk {
    min-height: 44px;
  }
  /* Existing table-wrap scrolling and rtable mobile cards are retained. */
  #app .table-wrap {
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
  }
}
@media screen and (prefers-reduced-motion: reduce) {
  /* These are decorative page/card/menu animations, never visibility rules. */
  html {
    scroll-behavior: auto !important;
  }
  :is(#app, #login-screen, #nb, #contact, .sim, #lightbox),
  :is(#app, #login-screen, #nb, #contact, .sim, #lightbox) *,
  .reveal,
  .btn-shimmer {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Contract details shared by the public price pages. */
.ee-contract-note{max-width:1180px;margin:36px auto;padding:28px 32px;background:#F8F3E8;border:1px solid #D7C59E;border-radius:18px;color:#14213D;line-height:1.75;}
.ee-contract-note h2{font-size:clamp(20px,2.6vw,28px);line-height:1.3;margin:0 0 16px;}
.ee-contract-note p{font-size:16px;margin:0 0 14px;}
.ee-contract-note p:last-child{margin-bottom:0;}
.ee-contract-note a{color:#6D5018;text-decoration:underline;text-underline-offset:3px;}
html[data-theme="dark"] .ee-contract-note{background:#1A2742;color:#EEE7D8;border-color:#887044;}
html[data-theme="dark"] .ee-contract-note a{color:#E6D0A0;}
@media(max-width:700px){.ee-contract-note{margin:24px 16px;padding:22px 20px;}}

/* Keyboard users can bypass the repeated navigation on every public page. */
.ee-skip-link{position:fixed;left:16px;top:12px;z-index:10001;padding:12px 18px;border-radius:8px;background:#14213D;color:#fff;transform:translateY(-180%);font:600 16px/1.4 Inter,sans-serif;}
.ee-skip-link:focus{transform:translateY(0);outline:3px solid #C9A961;outline-offset:3px;}
#main-content{scroll-margin-top:100px;}
