/* SPRIX portal — home page stylesheet (AR/EN, logical properties only).
   Other pages use style-ar.css / style-en.css. */

/* 1. TOKENS */
:root{
  --magenta:#E4007F; --magenta-dark:#B80066;
  --navy:#00008B; --navy-tint:rgba(0,0,139,.08);
  --ink:#1B1B2F; --ink-2:#4A4A63; --ink-3:#767690;
  --line:#E4E6F0; --paper:#FFF; --canvas:#F6F8FB; --post:#FCFCFE;
  --font:'IBM Plex Sans Arabic',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  --radius-sm:12px; --radius:16px; --radius-lg:20px; --pill:999px;
  --container:1000px; --gutter:clamp(16px,4vw,28px);
  --shadow-1:0 1px 2px rgba(16,16,48,.05),0 2px 8px rgba(16,16,48,.05);
  --shadow-2:0 4px 12px rgba(16,16,48,.07),0 12px 28px rgba(16,16,48,.07);
  --ring:0 0 0 3px #fff,0 0 0 6px var(--magenta);
}

/* 2. BASE */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
body{margin:0;font-family:var(--font);font-size:16px;line-height:1.7;color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy)}
a:hover{color:var(--magenta)}
h1,h2,h3{margin:0;line-height:1.4;font-weight:700}
p{margin:0}
button{font:inherit;color:inherit}
:focus-visible{outline:none;box-shadow:var(--ring);border-radius:8px}
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.ltr{direction:ltr;unicode-bidi:isolate;display:inline-block}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;inset-inline-start:16px;top:-100px;z-index:999;background:var(--navy);color:#fff;padding:12px 20px;border-radius:0 0 12px 12px;font-weight:700;text-decoration:none;transition:top .2s}
.skip-link:focus{top:0}

/* 3. HEADER */
.site-header{background:var(--paper);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:stretch;padding-inline:0}
.header-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:16px;padding:16px var(--gutter) 12px}
.header-row{display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand-lockup{display:flex;align-items:center;gap:14px;min-width:0;text-decoration:none}
.brand-lockup img{height:40px;width:auto}
.brand-rule{width:1px;height:40px;background:var(--line);flex:none}
.brand-word{font-size:35px;font-weight:500;color:var(--ink-3)}
/* sits on its own at the row end (right in LTR, left in RTL) via .header-row's space-between */
.moete-mark{height:90px;width:auto;flex:none}
/* custom listbox rather than <select>, so the panel is styled instead of OS-rendered */
/* sits in the filters row, pushed to its end (right in LTR, left in RTL) */
.lang-switch{position:relative;display:inline-flex;align-items:center;margin-inline-start:auto}
.lang-switch__btn{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;min-width:104px;
  padding-block:9px;padding-inline:16px 14px;font-size:13px;font-weight:700;background:var(--canvas);
  border:1.5px solid var(--line);border-radius:var(--pill);color:var(--navy);cursor:pointer}
.lang-switch__btn:disabled{opacity:.45;cursor:not-allowed}
.lang-switch__chev{width:10px;height:10px;flex:none;color:var(--ink-3);transition:transform .2s}
.lang-switch__btn[aria-expanded="true"] .lang-switch__chev{transform:rotate(180deg)}
.lang-switch__menu{position:absolute;top:calc(100% + 6px);inset-inline-end:0;z-index:60;min-width:100%;
  margin:0;padding:4px;list-style:none;background:var(--paper);border:1px solid var(--line);
  border-radius:var(--radius-sm);box-shadow:var(--shadow-2);
  opacity:0;visibility:hidden;transform:translateY(-4px);
  transition:opacity .16s,transform .16s,visibility 0s .16s}
.lang-switch__menu.is-open{opacity:1;visibility:visible;transform:none;transition:opacity .16s,transform .16s}
.lang-switch__opt{padding:7px 14px;border-radius:8px;font-size:13px;font-weight:700;color:var(--ink-2);
  white-space:nowrap;cursor:pointer;transition:background .18s,color .18s}
.lang-switch__opt:hover:not([aria-selected="true"]){color:var(--navy)}
.lang-switch__opt[aria-selected="true"]{background:var(--navy);color:#fff}

/* grade / education-type pills (in the header) */
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.filter-options{display:flex;gap:10px;flex-wrap:wrap}
.filter-pill{font-size:13px;font-weight:700;padding:9px 18px;border-radius:var(--pill);border:1.5px solid var(--line);background:var(--paper);color:var(--ink-2);cursor:pointer;transition:background .18s,color .18s,border-color .18s}
.filter-pill:hover:not(:disabled):not([aria-checked="true"]){border-color:var(--navy);color:var(--navy)}
.filter-pill[aria-checked="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.filter-pill:disabled{opacity:.45;cursor:not-allowed}
.filter-divider{width:1px;height:26px;background:var(--line);margin-inline:6px}

/* 4. SECTIONS */
.section{padding-block:26px}
.section--canvas{background:var(--canvas)}

/* 5. BUTTONS */
.btn{--btn-accent:var(--navy);--btn-fg:#fff;--btn-bg:var(--btn-accent);--btn-bd:var(--btn-accent);
  display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:1;
  min-height:42px;padding:10px 16px;border:2px solid var(--btn-bd);border-radius:var(--pill);
  background:var(--btn-bg);color:var(--btn-fg);font-weight:700;font-size:14px;
  text-decoration:none;text-align:center;cursor:pointer;transition:background .18s,color .18s,border-color .18s}
.btn:hover{--btn-bg:#000073;--btn-bd:#000073;color:#fff}
.btn--magenta{--btn-accent:var(--magenta)}
.btn--magenta:hover{--btn-bg:var(--magenta-dark);--btn-bd:var(--magenta-dark)}
/* must stay last: combines with the colour variants (.btn--ghost.btn--magenta) */
.btn--ghost{--btn-bg:transparent;--btn-fg:var(--btn-accent)}
.btn--ghost:hover{--btn-bg:var(--btn-accent);--btn-bd:var(--btn-accent);--btn-fg:#fff}
/* inactive action: the card exists for every grade/type, but this one is not offered yet */
.btn--off{--btn-bg:transparent;--btn-fg:var(--ink-3);--btn-bd:var(--line);font-weight:700;cursor:default}
.btn--off:hover{--btn-bg:transparent;--btn-bd:var(--line);color:var(--ink-3)}

/* 6. NOTICES */
.notice{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);overflow:hidden}
.notice__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}
.notice__title{font-size:17px;font-weight:700;color:var(--navy)}
.notice__toggle{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--line);background:var(--paper);font-size:13px;font-weight:700;color:var(--navy);cursor:pointer;padding:7px 14px;border-radius:var(--pill)}
.notice__chev{width:12px;height:12px;flex:none;transition:transform .2s}
.notice__toggle[aria-expanded="true"] .notice__chev{transform:rotate(180deg)}
.notice__body{padding:16px 20px 18px}

.notice__frame{min-height:132px}
.notice__frame.is-open{min-height:0;max-height:420px;overflow-y:auto}
.post{padding:14px 16px;background:var(--post);border:1px solid var(--line);border-radius:var(--radius-sm);border-inline-start:3px solid var(--navy)}
.post + .post,.notice__empty + .post{margin-top:10px}
.post[hidden]{display:none}
.post__meta{display:flex;gap:10px;align-items:center;margin-bottom:4px}
.post__date{font-size:12px;font-weight:700;color:var(--ink-3);direction:ltr;unicode-bidi:isolate}
.post__tag{font-size:11px;font-weight:700;color:var(--navy);background:var(--navy-tint);border-radius:var(--pill);padding:2px 9px}
.post__title{font-size:15px;font-weight:700;color:var(--navy);line-height:1.5}
.post__text{margin-top:4px;font-size:14px;color:var(--ink-2)}
.post__text a{color:var(--magenta);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.post__text a:hover{color:var(--magenta-dark)}
.notice-link-disabled{color:var(--ink-3);font-weight:700;text-decoration:line-through;cursor:not-allowed}
.notice__empty{min-height:104px;display:flex;align-items:center;justify-content:center;background:var(--post);border:1px dashed var(--line);border-radius:var(--radius-sm);font-size:14px;font-weight:700;color:var(--ink-3)}
.notice__empty[hidden]{display:none}
.notice-tooltip{position:fixed;background:var(--navy);color:#fff;padding:6px 10px;border-radius:6px;font-size:12px;font-weight:400;max-width:300px;word-break:break-all;direction:ltr;z-index:9999;opacity:0;pointer-events:none;transition:opacity .2s}

/* 7. LEARNING HUB */
.hub{container-type:inline-size}
.panel[hidden]{display:none}
.subject + .subject{margin-top:26px}
.subject__name{font-size:16px;font-weight:700;color:var(--navy);padding-bottom:10px;margin-bottom:16px;border-bottom:2px solid var(--line)}
/* 4 / 2 / 1 per row, keyed to the container width */
.hub-grid{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}
@container (min-width:560px){.hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container (min-width:860px){.hub-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.card{min-height:198px;display:flex;flex-direction:column;gap:12px;padding:22px 18px;background:var(--paper);border:1px solid var(--line);border-radius:18px}
.card__logo{height:38px;display:flex;align-items:center;justify-content:center}
.card__logo img{max-height:32px;width:auto}
.card__logo svg{width:28px;height:28px;color:var(--navy)}
.card__role{text-align:center;font-size:15px;font-weight:700}
.card__actions{display:flex;gap:8px;margin-top:auto}

/* 8. TUTORIALS */
.tutorials{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.tutorial{display:flex;flex-direction:column;gap:12px;padding:20px;background:var(--canvas);border:1px solid var(--line);border-radius:var(--radius)}
.tutorial__logo{height:30px;width:auto;align-self:flex-start}
.tutorial h3{font-size:16px;font-weight:700;color:var(--navy);line-height:1.5}
.tutorial p{font-size:14px;color:var(--ink-2)}
.tutorial video{width:100%;display:block;border-radius:14px;background:#0B0B1A;cursor:zoom-in}
.tutorial .interface-screenshot{width:100%;display:block;border-radius:14px;border:1px solid var(--line);cursor:zoom-in}
@media (max-width:640px){.tutorials{grid-template-columns:1fr}}

/* 9. FOOTER */
.site-footer{background:var(--navy);color:#fff;padding:30px 0 22px;text-align:center}
.footer-actions{display:flex;flex-direction:column;align-items:center;gap:12px}
.footer-actions .btn{flex:none;padding-inline:26px}
.footer-actions a:not(.btn){color:rgba(255,255,255,.85);font-size:13px}
.footer-actions a:not(.btn):hover{color:#fff}
.footer-rule{height:1px;background:rgba(255,255,255,.18);margin-block:22px 20px}
.footer-brand{display:inline-block;margin-bottom:16px}
.footer-brand img{height:30px;width:auto}
.footer-lines{font-size:13px;line-height:2;color:rgba(255,255,255,.85)}
.footer-lines a{color:#fff}
.footer-legal{margin-top:16px;font-size:12px;color:rgba(255,255,255,.6)}

/* 10. LIGHTBOX */
.modal{display:none;position:fixed;inset:0;z-index:10000;background:rgba(10,10,28,.86);padding:24px}
.modal.is-open{display:flex;align-items:center;justify-content:center}
.modal__content{position:relative;width:min(1000px,100%);max-height:90vh}
.modal__close{position:absolute;top:-44px;inset-inline-end:0;width:36px;height:36px;display:grid;place-items:center;background:transparent;border:0;color:#fff;font-size:2rem;line-height:1;cursor:pointer}
.modal__close:hover{color:var(--magenta)}
.modal__media video,.modal__media img{display:block;width:100%;max-height:90vh;object-fit:contain;border-radius:var(--radius)}

/* 11. RESPONSIVE */
@media (max-width:620px){
  body{font-size:15px}
  .brand-lockup img{height:24px}
  .brand-rule{height:28px}
  .brand-word{font-size:28px}
  .moete-mark{height:40px}
  .header-main{padding-inline:16px}
  .filter-options{width:100%}
  .filter-pill{flex:1;justify-content:center}
  .filter-divider{display:none}
  .notice__head{flex-wrap:wrap;gap:10px}
  .modal{padding:16px}
  .modal__close{top:-38px}
}
@media print{
  .notice__frame,.notice__frame.is-open{max-height:none;overflow:visible;min-height:0}
  .notice__frame .post{display:block!important}
  .panel[hidden]{display:block!important}
  .card{break-inside:avoid}
  .lang-switch,.notice__toggle{display:none}
}
