@font-face { font-family: Tajawal; src: url('/fonts/Tajawal-Regular.ttf'); font-weight: 400; font-display: swap; }
@font-face { font-family: Tajawal; src: url('/fonts/Tajawal-Bold.ttf'); font-weight: 700; font-display: swap; }
@font-face { font-family: Tajawal; src: url('/fonts/Tajawal-ExtraBold.ttf'); font-weight: 800; font-display: swap; }
:root { --ink:#163c40; --muted:#738687; --teal:#087f80; --dark:#073c43; --mint:#67e1cf; --line:#e1eae7; --paper:#f7f9f6; --white:#fff; --radius:16px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--white); font-family:Tajawal,'Segoe UI',sans-serif; font-size:16px; line-height:1.7; }
button,input,select,textarea { font:inherit; }
a { color:inherit; text-decoration:none; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button:disabled { opacity:.6; cursor:wait; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:3px solid #18bfa8; outline-offset:4px; }
img { max-width:100%; }
svg { flex-shrink:0; vertical-align:middle; }
h1,h2,h3,h4,p { margin-top:0; }
h1,h2,h3,h4 { line-height:1.35; }
h1 { font-size:52px; font-weight:800; letter-spacing:-1px; }
h1:focus { outline:none; }
h2 { font-size:38px; font-weight:800; letter-spacing:-.6px; margin-bottom:16px; }
h3 { font-size:23px; }
p { color:var(--muted); }
small { font-size:13px; }
hr { border:0; border-top:1px solid var(--line); margin:25px 0; }
.container { max-width:1216px; width:calc(100% - 96px); margin-inline:auto; }
.topbar { background:var(--dark); color:#d4eae7; font-size:12px; padding:7px 0 4px; }
.topbar .container { display:flex; justify-content:space-between; }
.dot { display:inline-block; width:6px; height:6px; border-radius:50%; background:#58cbb9; margin:0 9px 1px; }
.site-header { background:#fff; border-bottom:1px solid var(--line); position:relative; z-index:10; }
.nav-row { min-height:94px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand { display:flex; align-items:center; gap:12px; white-space:nowrap; }
.brand img { width:64px; height:64px; object-fit:contain; }
.brand strong { display:block; font-size:20px; font-weight:800; }
.brand small { display:block; font-size:11px; color:var(--muted); margin-top:1px; letter-spacing:.3px; }
.nav-row nav { display:flex; gap:29px; align-items:center; }
.nav-row nav a { position:relative; font-size:15px; font-weight:700; padding:34px 0 30px; }
.nav-row nav a:hover,.nav-row nav a.active { color:var(--teal); }
.nav-row nav a.active:after { content:''; position:absolute; bottom:22px; inset-inline:0; margin:auto; width:5px; height:5px; background:var(--teal); border-radius:50%; }
.btn { display:inline-flex; gap:18px; align-items:center; justify-content:center; min-height:49px; padding:13px 23px 10px; border:1px solid transparent; border-radius:8px; font-weight:700; font-size:16px; transition:transform .2s,background .2s; }
.btn:hover { transform:translateY(-2px); }
.primary { background:var(--teal); color:#fff; }
.primary:hover { background:#05696b; }
.mint { background:var(--mint); color:var(--dark); }
.glass { border-color:#ffffff40; background:#ffffff06; color:white; }
.secondary { background:#edf3f1; color:var(--ink); }
.full-width { width:100%; }
.hero { min-height:620px; background:var(--dark); color:#fff; position:relative; overflow:hidden; isolation:isolate; }
.hero-photo { position:absolute; inset:0; z-index:-2; background-image:linear-gradient(270deg,rgba(3,45,51,.97) 0%,rgba(4,49,56,.91) 35%,rgba(4,49,56,.34) 70%,rgba(4,49,56,.08)),linear-gradient(0deg,rgba(3,38,46,.5),transparent 45%),url('/images/doha.jpg'); background-size:cover; background-position:center 58%; }
.hero:after { content:''; position:absolute; width:590px; height:590px; border:1px solid #ffffff13; border-radius:50%; left:-100px; top:-210px; z-index:-1; box-shadow:0 0 0 65px #ffffff03,0 0 0 130px #ffffff03; }
.hero-content { padding-top:70px; padding-bottom:80px; position:relative; }
.eyebrow { color:var(--teal); font-size:13px; font-weight:700; letter-spacing:.4px; margin-bottom:14px; display:block; }
.eyebrow.light { color:#9dd9d0; }
.hero .eyebrow { display:flex; align-items:center; gap:12px; }
.hero .eyebrow>span { width:27px; height:1px; background:var(--mint); }
.hero h1 { font-size:clamp(52px,5.25vw,76px); line-height:1.24; margin:0 0 23px; font-weight:800; }
.hero h1 em { color:var(--mint); font-style:normal; }
.hero p { color:#c3d6d5; font-size:19px; line-height:1.9; margin-bottom:28px; }
.hero-actions { display:flex; gap:12px; }
.hero-signature { display:flex; align-items:center; gap:13px; margin-top:37px; }
.signature-icon { border:1px solid #79b1a73b; border-radius:50%; width:37px; height:37px; display:grid; place-items:center; color:var(--mint); }
.hero-signature strong { font-size:13px; display:block; color:#e0eeeb; }
.hero-signature small { color:#9bbebc; font-size:11px; display:block; }
.hero-caption { position:absolute; left:52px; bottom:95px; text-align:left; }
.hero-caption span { display:block; font:10px 'Segoe UI',sans-serif; letter-spacing:4px; color:#ade1d9; margin-bottom:8px; }
.hero-caption strong { font-size:17px; font-weight:400; }
.hero-index { position:absolute; left:52px; bottom:28px; display:flex; align-items:center; gap:14px; direction:ltr; }
.hero-index span { font-size:18px; }
.hero-index div { width:55px; height:1px; background:#ffffff55; }
.hero-index small { font-size:9px; letter-spacing:2px; color:#aec6c6; }
.pillars { background:#f6f8f5; border-bottom:1px solid var(--line); }
.pillars-grid { display:grid; grid-template-columns:repeat(4,1fr); padding-block:29px; }
.pillars-grid>div { display:flex; align-items:center; justify-content:center; gap:15px; border-left:1px solid #dbe4df; }
.pillars-grid>div:last-child { border:0; }
.feature-icon { width:45px; height:45px; background:#e6efea; border-radius:12px; display:inline-grid; place-items:center; color:var(--teal); flex-shrink:0; }
.pillars strong { display:block; font-size:16px; }
.pillars small { display:block; color:var(--muted); font-size:12px; }
.section { padding-block:78px; }
.section-header { display:flex; align-items:center; justify-content:space-between; gap:25px; margin-bottom:31px; }
.section-header h2 { margin-bottom:8px; }
h2 span,h1 span { color:var(--teal); }
.section-header p { font-size:15px; margin:0; }
.text-link { display:inline-flex; align-items:center; gap:19px; color:var(--teal); font-weight:700; font-size:15px; }
.course-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.course-card { background:#fff; border:1px solid var(--line); border-radius:13px; overflow:hidden; transition:transform .25s,box-shadow .25s; }
.course-card:hover { transform:translateY(-5px); box-shadow:0 18px 36px #123d4010; }
.course-art { height:205px; display:block; position:relative; overflow:hidden; background:#0d474e; isolation:isolate; }
.art-2 { background:#344f59; }
.art-3 { background:#76634a; }
.art-grid { position:absolute; inset:0; background-image:linear-gradient(#ffffff07 1px,transparent 1px),linear-gradient(90deg,#ffffff07 1px,transparent 1px); background-size:26px 26px; z-index:-1; transform:rotate(-15deg) scale(1.4); }
.course-art:after { content:''; position:absolute; height:210px; width:210px; border:1px solid #b0dace2e; border-radius:50%; top:20px; left:-15px; z-index:-1; box-shadow:0 0 0 25px #ffffff04,0 0 0 50px #ffffff03; }
.category-label { position:absolute; top:17px; right:18px; background:#ffffffeb; color:var(--ink); font-size:11px; padding:4px 11px 2px; border-radius:5px; font-weight:700; }
.art-symbol { color:#a6d8ca; position:absolute; left:45px; top:55px; transform:rotate(-8deg); }
.art-2 .art-symbol { color:#bbd4e2; }
.art-3 .art-symbol { color:#e6d5af; }
.art-caption { position:absolute; bottom:18px; right:21px; color:#ffffffb0; font-family:'Segoe UI',sans-serif; font-weight:700; letter-spacing:3px; font-size:18px; }
.art-caption span { display:block; font-size:7px; font-weight:400; letter-spacing:2px; }
.course-body { padding:23px 22px 18px; }
.course-meta { display:flex; justify-content:space-between; gap:10px; color:var(--muted); font-size:11px; margin-bottom:13px; }
.course-meta span:first-child { display:flex; gap:5px; align-items:center; }
.course-card h3 { font-size:21px; margin-bottom:11px; min-height:56px; }
.course-card p { font-size:14px; line-height:1.85; min-height:52px; margin-bottom:22px; }
.course-bottom { border-top:1px solid var(--line); padding-top:16px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.course-bottom strong { font-family:'Segoe UI',sans-serif; font-size:21px; }
.course-bottom small { color:var(--muted); }
.course-bottom a { display:flex; align-items:center; gap:9px; color:var(--teal); font-size:12px; font-weight:700; }
.about-strip { background:var(--paper); padding-block:76px; border-block:1px solid #e9efea; }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:85px; align-items:center; }
.about-visual { background:#e4eee8; border-radius:18px; min-height:360px; display:grid; place-items:center; position:relative; overflow:hidden; }
.outline-square { position:absolute; width:240px; height:240px; border:1px solid #8aaca075; transform:rotate(30deg); box-shadow:0 0 0 35px #668b7d09,0 0 0 70px #668b7d05; }
.giant-maq { font:bold 96px 'Segoe UI',sans-serif; letter-spacing:-7px; color:#1b625c; text-align:center; position:relative; }
.giant-maq span { display:block; font-size:9px; letter-spacing:5px; font-weight:400; }
.about-stamp { position:absolute; background:#fff; padding:15px 23px; bottom:25px; right:25px; display:flex; align-items:center; gap:15px; border-radius:10px; box-shadow:0 9px 30px #163c400b; font-size:12px; }
.about-stamp svg { color:var(--teal); }
.about-grid p { line-height:1.95; font-size:16px; }
.check-lines { display:grid; gap:12px; margin:22px 0 27px; }
.check-lines>span { display:flex; align-items:flex-start; gap:10px; font-size:15px; }
.check-lines svg { color:var(--teal); background:#e4f3eb; border-radius:50%; padding:3px; }
.cta-panel { padding:48px; border-radius:16px; background:var(--dark); color:#fff; display:flex; align-items:center; justify-content:space-between; gap:24px; background-image:radial-gradient(ellipse at left bottom,#1d6d6833,transparent 65%); }
.cta-panel h2 { font-size:33px; margin-bottom:12px; }
.cta-panel h2 span { color:var(--mint); }
.cta-panel p { color:#adc8c5; margin:0; }
.cta-panel .btn { flex-shrink:0; }
footer { background:#f6f8f5; border-top:1px solid var(--line); padding-top:48px; }
.footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1.2fr 1.2fr; gap:38px; padding-bottom:40px; }
.footer-grid h4 { font-size:16px; margin-bottom:20px; }
.footer-grid>div>a:not(.brand) { display:block; font-size:13px; margin-bottom:8px; color:#617c7a; }
.footer-grid p { font-size:14px; margin-top:14px; line-height:1.8; }
.footer-brand img { width:48px; height:48px; }
.footer-brand strong { font-size:18px; }
.demo-note { color:#849490; font-size:10px; display:block; margin-top:20px; }
.footer-bottom { padding-block:17px; border-top:1px solid var(--line); display:flex; justify-content:space-between; font-size:11px; color:#8a9993; }
.page-heading { background:var(--paper); padding:65px 0 55px; text-align:center; border-bottom:1px solid var(--line); }
.page-heading h1 { margin:0 0 18px; }
.page-heading p { margin:0; font-size:18px; }
.filter-row { display:flex; align-items:center; gap:24px; margin-bottom:36px; }
.search-box { position:relative; display:flex; align-items:center; margin:0; flex:1; max-width:480px; }
.search-box svg { position:absolute; right:15px; color:var(--muted); }
.search-box input { padding-right:47px; margin:0; background:#fff; }
.select-filter { display:flex; align-items:center; gap:12px; white-space:nowrap; margin:0; }
.select-filter select { margin:0; min-width:170px; }
.muted { color:var(--muted); font-size:14px; }
.empty-state { text-align:center; padding:50px 20px; color:var(--muted); border:1px dashed var(--line); border-radius:12px; }
.empty-state h3 { color:var(--ink); margin:16px 0 8px; font-size:20px; }
.empty-state p { margin:0; }
label { display:block; font-size:14px; font-weight:700; margin-bottom:16px; }
input,select,textarea { display:block; width:100%; border:1px solid #d9e4df; padding:11px 13px 8px; border-radius:7px; background:white; color:var(--ink); margin-top:7px; min-height:46px; font-size:15px; }
textarea { resize:vertical; }
input::placeholder { color:#a0afaa; font-weight:400; }
input[type=email],input[type=tel],input[type=password] { direction:ltr; text-align:right; }
input[type=checkbox] { width:18px; height:18px; min-height:0; padding:0; margin:0; accent-color:var(--teal); }
.checkbox { display:flex; align-items:flex-start; gap:9px; font-weight:400; font-size:13px; }
.checkbox input { margin-top:3px; flex-shrink:0; }
.checkbox a { text-decoration:underline; color:var(--teal); }
.checkbox-group { padding-top:20px; }
.detail-hero { background:var(--dark); color:#fff; padding:50px 0 55px; }
.detail-hero h1 { font-size:43px; max-width:850px; margin-bottom:18px; }
.detail-hero p { color:#b8d3cf; font-size:18px; max-width:800px; }
.breadcrumb { display:block; font-size:12px; color:#9fbfba; margin-bottom:28px; }
.detail-meta { display:flex; gap:30px; color:#d9e9e4; font-size:14px; }
.detail-meta span { display:flex; gap:9px; align-items:center; }
.details-grid { display:grid; grid-template-columns:minmax(0,1fr) 370px; gap:60px; align-items:start; }
.detail-section { margin-bottom:42px; }
.detail-section h2 { font-size:27px; }
.preserve-lines { white-space:pre-line; }
.lesson { border:1px solid var(--line); border-radius:9px; margin-bottom:12px; overflow:hidden; }
.lesson summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:15px; padding:18px; font-weight:700; }
.lesson summary>span:last-child { margin-right:auto; color:var(--teal); }
.lesson-number { color:var(--teal); font-size:13px; }
.lesson p { padding:0 22px 15px; font-size:15px; }
.registration-card { border:1px solid var(--line); box-shadow:0 10px 40px #103e4009; padding:28px; border-radius:14px; }
.registration-card .price { font-size:38px; font-weight:800; }
.price small { font-weight:400; font-size:14px; }
.registration-card h3 { font-size:22px; }
.registration-card .muted { font-size:12px; }
.registration-card label { font-size:13px; }
.success-message { text-align:center; color:var(--teal); padding:20px 0; }
.success-message h3 { margin-top:20px; }
.success-message code { display:block; background:var(--paper); padding:12px; margin-top:7px; }
.about-content>div:first-child { max-width:720px; margin:auto; text-align:center; }
.info-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin:35px 0; }
.info-grid article { padding:32px; border:1px solid var(--line); border-radius:13px; }
.info-grid article>svg { color:var(--teal); margin-bottom:20px; }
.info-grid p { font-size:15px; }
.about-content>.btn { display:flex; width:max-content; margin:35px auto 0; }
.trainer-card h2 { font-size:25px; }
.trainer-avatar { height:140px; background:var(--paper); display:grid; place-items:center; border-radius:9px; margin-bottom:24px; color:var(--teal); }
.prose { max-width:850px; }
.prose h2 { font-size:25px; }
.login-section { padding:70px 20px; background:var(--paper); }
.login-card { max-width:440px; margin:auto; background:#fff; border:1px solid var(--line); box-shadow:0 20px 80px #173e4008; padding:38px; border-radius:18px; }
.login-card>.feature-icon { margin-bottom:25px; }
.login-card h1 { font-size:36px; margin-bottom:7px; }
.login-card p { font-size:15px; }
.subtle-link { display:block; text-align:center; font-size:13px; margin-top:23px; color:var(--muted); }
.alert { border:1px solid #bfdad0; background:#eef8f1; color:#286350; padding:14px 18px; border-radius:9px; margin-bottom:20px; font-size:14px; }
.alert.error { background:#fff1ee; border-color:#f3c9be; color:#963d2b; }
.validation-errors { color:#a83f2e; font-size:13px; padding-right:20px; }
.invalid { border-color:#c97361; }
.skip-link { position:absolute; top:-100px; z-index:100; background:white; padding:15px; }
.skip-link:focus { top:0; }
#blazor-error-ui { display:none; position:fixed; bottom:0; left:0; right:0; z-index:1000; background:#fff2d2; padding:20px; text-align:center; }
.admin-shell { display:flex; min-height:100vh; background:#f5f7f6; }
.admin-sidebar { width:250px; background:#fff; border-left:1px solid var(--line); position:fixed; top:0; bottom:0; right:0; display:flex; flex-direction:column; padding:26px 19px; z-index:20; overflow-y:auto; }
.admin-sidebar .brand { margin-bottom:45px; }
.admin-sidebar .brand img { width:55px; height:55px; }
.admin-sidebar .brand strong { font-size:20px; }
.sidebar-label { color:#98a5a1; font-size:11px; padding:0 13px; margin-bottom:14px; }
.admin-sidebar nav { display:grid; gap:6px; }
.admin-sidebar nav a { padding:12px 13px 10px; display:flex; gap:13px; align-items:center; border-radius:8px; font-size:14px; color:#6b817c; font-weight:700; }
.admin-sidebar nav a.active { color:var(--teal); background:#e9f3ee; }
.admin-sidebar nav a:hover { background:#f4f7f5; }
.sidebar-bottom { margin-top:auto; border-top:1px solid var(--line); padding:24px 13px 0; font-size:14px; }
.logout { border:0; padding:0; background:none; color:#8c9b96; margin-top:14px; font-size:13px; }
.admin-main { margin-right:250px; width:calc(100% - 250px); }
.admin-top { height:78px; background:#fff; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; padding:0 36px; font-size:13px; color:#7c9089; }
.admin-user { display:flex; gap:9px; align-items:center; color:var(--teal); font-weight:700; }
.admin-user span { font-size:12px; color:#5a756c; }
.admin-content { max-width:1500px; margin:auto; padding:37px; }
.admin-heading { display:flex; justify-content:space-between; align-items:center; gap:25px; margin-bottom:28px; }
.admin-heading h1 { font-size:31px; letter-spacing:0; margin-bottom:9px; }
.admin-heading .eyebrow { font-size:11px; margin-bottom:7px; }
.admin-heading p { margin:0; font-size:14px; }
.admin-heading .btn { font-size:14px; flex-shrink:0; }
.stats-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin-bottom:29px; }
.stats-grid article { padding:22px; background:white; border:1px solid var(--line); border-radius:12px; position:relative; }
.stats-grid .feature-icon { float:left; width:37px; height:37px; border-radius:9px; }
.stats-grid small { display:block; color:var(--muted); margin-top:11px; font-size:12px; }
.stats-grid strong { display:block; font-family:'Segoe UI',sans-serif; font-size:38px; line-height:1.7; }
.stats-grid article>span:last-child { font-size:10px; color:#8ba096; }
.dashboard-grid { display:grid; grid-template-columns:1.6fr 1fr; gap:24px; align-items:start; }
.admin-panel { background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; margin-bottom:25px; }
.panel-heading { padding:22px 25px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); }
.panel-heading h2 { font-size:19px; margin:0; letter-spacing:0; }
.panel-heading a { font-size:12px; color:var(--teal); }
.upcoming-row { display:flex; align-items:center; gap:16px; padding:20px 24px; border-bottom:1px solid #edf1ed; }
.upcoming-row:last-child { border:0; }
.upcoming-row>div:nth-child(2) { flex:1; }
.upcoming-row strong { font-size:14px; }
.upcoming-row small { display:block; font-size:11px; color:#8a9c94; margin-top:4px; }
.date-tile { background:#f1f5ef; border:1px solid #e5ece1; border-radius:8px; min-width:48px; text-align:center; padding:4px 8px; }
.date-tile strong { display:block; font-family:'Segoe UI',sans-serif; font-size:22px; color:#4b7260; }
.date-tile span { display:block; font-size:10px; color:#789281; }
.badge { display:inline-block; padding:3px 9px 1px; font-size:11px; color:#328065; background:#eaf6ed; border:1px solid #d8ecde; border-radius:5px; white-space:nowrap; }
.badge.pending { color:#92702e; background:#fcf6e7; border-color:#f0e7ca; }
.quick-panel { padding:25px; background:#f0f6f1; }
.quick-panel h2 { font-size:23px; }
.quick-panel .eyebrow { font-size:11px; }
.quick-panel>a { display:flex; gap:13px; align-items:center; padding:18px 0; border-bottom:1px solid #dce7dd; font-size:14px; }
.quick-panel>a:last-child { border:0; }
.quick-panel>a>span { font-family:'Segoe UI',sans-serif; font-size:12px; color:#8ca492; }
.quick-panel>a>div { flex:1; }
.quick-panel small { display:block; color:#879c8c; font-size:11px; }
.admin-footer { color:#9aaa9f; text-align:center; font-size:10px; padding:15px; }
.table-tools { padding:20px 23px; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.table-tools .search-box { max-width:350px; }
.table-scroll { overflow-x:auto; }
table { width:100%; border-collapse:collapse; text-align:right; font-size:13px; }
th { background:#f7f9f7; color:#7e9186; padding:13px 21px; font-weight:400; border-block:1px solid var(--line); white-space:nowrap; }
td { padding:19px 21px; border-bottom:1px solid #edf1eb; }
tr:last-child td { border-bottom:0; }
td small { display:block; font-size:11px; color:#91a197; margin-top:5px; }
td select { min-width:115px; font-size:12px; min-height:36px; padding:5px 9px; margin:0; }
.row-actions { display:flex; gap:14px; }
.row-actions button,.archive-confirm button { border:0; padding:0; background:transparent; color:var(--teal); font-size:12px; }
.row-actions .danger-text { color:#a27162; }
.archive-confirm { background:#fff4eb; padding:10px; border-radius:5px; display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; font-size:12px; }
.editor-panel { padding:0 25px 25px; }
.editor-panel .panel-heading { padding-inline:0; margin-bottom:24px; }
.icon-button { border:0; background:#f1f5ef; color:var(--ink); border-radius:50%; width:30px; height:30px; font-size:20px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; column-gap:24px; }
.span-two { grid-column:span 2; }
.form-actions { display:flex; gap:12px; margin-top:13px; }
.form-actions .btn { font-size:14px; }
@media(min-width:1600px) { .hero-photo { background-position:center 65%; } }
@media(max-width:1100px) {
    .container { width:calc(100% - 56px); }
    .nav-row { gap:18px; }
    .nav-row nav { gap:18px; }
    .brand strong { font-size:17px; }
    .brand img { width:52px; height:52px; }
    .nav-cta { padding-inline:16px; font-size:14px; }
    .about-grid { gap:45px; }
    .course-body { padding:18px; }
    .course-card h3 { font-size:19px; }
    .admin-sidebar { width:215px; padding-inline:13px; }
    .admin-main { margin-right:215px; width:calc(100% - 215px); }
    .admin-content { padding:26px; }
    .stats-grid { grid-template-columns:repeat(2,1fr); }
    .dashboard-grid { grid-template-columns:1fr; }
}
@media(max-width:800px) {
    .container { width:calc(100% - 40px); }
    .topbar .container>span:last-child { display:none; }
    .nav-row { flex-wrap:wrap; padding-top:12px; gap:8px; }
    .nav-row nav { order:3; width:100%; justify-content:space-between; gap:12px; }
    .nav-row nav a { padding:13px 0; font-size:13px; }
    .nav-row nav a.active:after { bottom:5px; }
    .hero { min-height:570px; }
    .hero-content { padding-top:55px; padding-bottom:85px; }
    .hero h1 { font-size:56px; }
    .hero p { font-size:17px; }
    .hero-photo { background-image:linear-gradient(270deg,#03323af5,#04313aaa),url('/images/doha.jpg'); }
    .hero-caption { display:none; }
    .hero-index { left:24px; bottom:19px; }
    .pillars-grid { grid-template-columns:1fr 1fr; gap:25px 10px; padding-block:25px; }
    .pillars-grid>div { justify-content:flex-start; border:0; gap:12px; }
    .pillars strong { font-size:14px; }
    .pillars small { font-size:10px; }
    .feature-icon { width:38px; height:38px; }
    .section { padding-block:50px; }
    h2 { font-size:31px; }
    .course-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
    .about-grid { grid-template-columns:1fr; }
    .about-visual { min-height:280px; }
    .about-strip { padding-block:48px; }
    .cta-panel { flex-direction:column; align-items:flex-start; padding:30px; }
    .cta-panel h2 { font-size:29px; }
    .footer-grid { grid-template-columns:1fr 1fr; }
    .details-grid { grid-template-columns:1fr; gap:15px; }
    .registration-card { max-width:560px; width:100%; }
    .info-grid { grid-template-columns:1fr; }
    .filter-row { flex-wrap:wrap; gap:16px; }
    .filter-row .search-box { flex-basis:100%; max-width:none; }
    .detail-meta { flex-wrap:wrap; gap:15px; }
    .page-heading h1 { font-size:41px; }
    .admin-shell { display:block; }
    .admin-sidebar { position:static; width:100%; padding:15px 20px; border:0; border-bottom:1px solid var(--line); }
    .admin-sidebar .brand { margin:0 0 15px; }
    .admin-sidebar nav { display:flex; overflow-x:auto; padding-bottom:5px; }
    .admin-sidebar nav a { white-space:nowrap; padding:8px 12px; font-size:12px; }
    .admin-sidebar nav svg { width:17px; }
    .sidebar-label { display:none; }
    .sidebar-bottom { border:0; padding:10px 0 0; display:flex; justify-content:space-between; align-items:center; }
    .logout { margin:0; }
    .admin-main { width:100%; margin:0; }
    .admin-top { height:50px; padding:0 20px; }
    .admin-content { padding:25px 20px; }
    .admin-heading { flex-wrap:wrap; gap:15px; }
    .admin-heading h1 { font-size:27px; }
}
@media(max-width:480px) {
    .container { width:calc(100% - 32px); }
    .brand strong { font-size:16px; }
    .brand small { font-size:9px; }
    .nav-cta { font-size:12px; padding:9px 12px; min-height:40px; gap:8px; }
    .hero h1 { font-size:47px; }
    .hero p { font-size:16px; }
    .hero-actions { flex-wrap:wrap; }
    .hero-actions .btn { font-size:14px; padding:12px 17px; }
    .hero-signature strong { font-size:11px; }
    .hero-signature small { font-size:9px; }
    .hero { min-height:580px; }
    .pillars strong { font-size:12px; }
    .pillars-grid>div { gap:8px; }
    .pillars .feature-icon { width:31px; height:35px; border-radius:7px; }
    .section-header { align-items:flex-start; flex-direction:column; gap:15px; }
    .course-grid { grid-template-columns:1fr; }
    .course-card h3 { min-height:0; font-size:23px; }
    .course-card p { min-height:0; }
    .course-art { height:220px; }
    .footer-grid { gap:25px; }
    .footer-grid>div:first-child { grid-column:span 2; }
    .footer-grid>div:last-child { grid-column:span 2; }
    .footer-bottom { flex-direction:column; gap:8px; }
    .page-heading h1 { font-size:35px; }
    .page-heading p { font-size:16px; }
    .detail-hero h1 { font-size:34px; }
    .login-card { padding:25px; }
    .form-grid { grid-template-columns:1fr; }
    .span-two { grid-column:span 1; }
    .table-tools { flex-wrap:wrap; padding:15px; }
    .table-tools .search-box { min-width:100%; }
    .stats-grid { gap:12px; }
    .stats-grid article { padding:16px; }
    .stats-grid .feature-icon { float:none; margin-bottom:8px; }
    .stats-grid strong { font-size:33px; }
    .upcoming-row { flex-wrap:wrap; padding:17px; gap:10px; }
    .upcoming-row .badge { margin-right:58px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }

/* Trainer directory and database-backed profiles */
.trainers-heading { background:linear-gradient(135deg,#f1f7f1,#e7f2ef); }
.trainer-directory { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.trainer-profile-card { display:flex; flex-direction:column; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:white; box-shadow:0 12px 35px #123f4008; }
.trainer-photo-link { display:block; position:relative; overflow:hidden; background:#e6ece7; }
.trainer-photo-link img { display:block; width:100%; height:330px; object-fit:cover; object-position:center; }
.trainer-photo-link:hover img { transform:none; }
.fictional-tag { position:absolute; bottom:16px; right:16px; background:#fffffff0; color:#536d67; padding:4px 11px; border-radius:6px; font-size:11px; }
.trainer-card-content { padding:25px; display:flex; flex-direction:column; flex:1; }
.trainer-card-content h2 { font-size:26px; margin-bottom:12px; }
.trainer-card-content .eyebrow { font-size:12px; margin-bottom:10px; min-height:20px; }
.trainer-facts { display:flex; flex-wrap:wrap; gap:7px 16px; font-size:12px; color:var(--teal); padding-bottom:16px; border-bottom:1px solid var(--line); }
.trainer-card-content p { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; margin:17px 0 23px; font-size:14px; line-height:1.9; min-height:80px; }
.trainer-card-content .text-link { font-size:13px; margin-top:auto; align-self:flex-start; }
.trainer-detail-hero { background:var(--dark); color:white; padding:55px 0; }
.trainer-profile-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr); gap:65px; align-items:center; }
.trainer-profile-image { display:block; width:100%; height:475px; object-fit:contain; object-position:center; background:#eaf0ed; border-radius:18px; border:1px solid #ffffff30; }
.trainer-profile-intro h1 { margin-bottom:20px; }
.trainer-profile-facts { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:25px; }
.trainer-profile-facts span { border:1px solid #ffffff30; border-radius:6px; padding:5px 13px; font-size:13px; color:#cae6df; }
.trainer-profile-intro>p { color:#c4dcd6; font-size:17px; line-height:1.95; }
.trainer-profile-intro .profile-disclosure { font-size:12px; color:#96b7b0; margin:22px 0 0; }
.trainer-about-grid { display:grid; grid-template-columns:1fr 1.4fr; gap:65px; border-bottom:1px solid var(--line); }
.qualification-list { display:grid; gap:17px; }
.qualification-list>div { display:flex; align-items:center; gap:16px; padding:17px; border:1px solid var(--line); border-radius:10px; }
.photo-editor { border:1px dashed var(--line); border-radius:9px; padding:20px; margin:12px 0; }
.photo-upload-preview { width:100px; height:100px; object-fit:cover; border-radius:9px; }
@media(max-width:900px) { .trainer-directory { grid-template-columns:repeat(2,minmax(0,1fr)); } .trainer-profile-grid { gap:30px; } .trainer-profile-intro h1 { font-size:38px; } }
@media(max-width:600px) { .trainer-directory { grid-template-columns:1fr; } .trainer-profile-grid,.trainer-about-grid { grid-template-columns:1fr; gap:30px; } .trainer-profile-image { grid-row:1; height:350px; } .trainer-profile-intro h1 { font-size:35px; } .trainer-detail-hero { padding:30px 0; } .trainer-photo-link img { height:350px; } }

/* Course images are served from SQL Server, shared by every course card. */
.course-photo-art { background:#eaf0ed; }
.course-photo-art::after { display:none; }
.course-cover { display:block; width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .3s; }
.course-photo-art:hover .course-cover { transform:scale(1.04); }
.course-photo-art .category-label { z-index:1; box-shadow:0 2px 12px #173a4015; }
.course-photo-empty { display:grid; place-items:center; background:#eaf0ed; color:#738687; font-size:13px; padding:20px; }
.course-detail-cover { width:100%; height:auto; max-height:420px; aspect-ratio:3/2; object-fit:cover; border-radius:14px; margin-bottom:35px; }

/* Preserve official posters in full; portrait viewports retain the original photography. */
.course-photo-art { height:400px; background:#eef8f7; }
.course-cover { object-fit:contain; }
.course-detail-cover { display:block; width:100%; height:auto; max-height:none; object-fit:contain; border-radius:16px; }
.trainer-photo-link .trainer-portrait { display:block; width:100%; height:330px; }
.trainer-profile-image.trainer-portrait { width:100%; height:475px; }
.official-services { grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); }
.official-session { border-bottom:1px solid #dce8e6; padding:12px 0; font-size:14px; }
.official-session p { margin:6px 0; }
@media(max-width:600px) { .course-photo-art { height:420px; } .trainer-profile-image.trainer-portrait { height:350px; } }
/* Fixed portrait frames keep every trainer card aligned regardless of source dimensions. */
.trainer-photo-link { height:400px; background:#eaf0ed; }
.trainer-photo-link > img,
.trainer-photo-link > .trainer-portrait { position:absolute; inset:0; display:block; width:100%; height:100%; max-height:100%; object-fit:contain; object-position:center; }
@media(max-width:600px) { .trainer-photo-link { height:380px; } }

/* Gentle display contrast only: original photo pixels and facial features are retained. */
.trainer-photo-link > img, .trainer-profile-image { filter:contrast(1.025); }

/* Compact public page introductions; the photograph is managed in the database. */
.page-intro { position:relative; isolation:isolate; overflow:hidden; padding:20px 0; background:#d6e9e5; border-bottom:1px solid #bfd6d1; }
.page-intro::before { content:""; position:absolute; z-index:-2; inset:-12px; background:url('/api/v1/center/image') center 48% / cover no-repeat; filter:blur(5px); }
.page-intro::after { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(110deg,rgba(7,60,67,.65),rgba(8,127,128,.32),rgba(103,225,207,.35)); }
.page-intro-glass { text-align:center; padding:14px 24px 18px; border:1px solid rgba(255,255,255,.7); border-radius:18px; background:rgba(244,251,248,.88); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); box-shadow:0 8px 28px #073c4314,inset 0 1px 0 #fff; }
.page-breadcrumb ol { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:0 0 8px; font-size:13px; color:#496d6c; }
.page-breadcrumb li+li::before { content:"/"; margin-inline-end:8px; color:#6c8e89; }
.page-breadcrumb a { color:var(--teal); text-decoration:underline; text-underline-offset:3px; }
.page-intro .eyebrow { margin:0 0 4px; font-size:12px; }
.page-intro h1 { font-size:clamp(27px,3vw,38px); line-height:1.4; margin:0 0 5px; letter-spacing:-.5px; }
.page-intro h1 span { color:var(--teal); }
.page-intro p { font-size:16px; color:#4d6e6e; margin:0; }
.page-intro-actions { margin-top:12px; }
.page-intro-actions .btn { padding:8px 18px; min-height:40px; font-size:14px; }
@media(max-width:600px) { .page-intro { padding:14px 0; } .page-intro-glass { width:calc(100% - 32px); padding:12px 16px 16px; border-radius:14px; } .page-intro p { font-size:14px; } }

.evaluation-page { max-width:900px; }
.evaluation-note { background:var(--paper); padding:24px; border-radius:16px; margin-bottom:24px; }
.evaluation-note p { margin:8px 0 0; }
.evaluation-form fieldset { border:1px solid var(--line); border-radius:16px; padding:24px; margin:0 0 24px; min-width:0; }
.evaluation-form legend { font-size:20px; font-weight:700; padding:0 10px; color:var(--teal); }
.evaluation-form label { display:block; margin-bottom:18px; font-weight:700; }
.evaluation-form input:not([type=checkbox]),.evaluation-form select,.evaluation-form textarea { display:block; width:100%; padding:12px; border:1px solid #bdcfcb; border-radius:8px; margin-top:6px; background:white; color:var(--ink); }
.evaluation-form label.checkbox { display:flex; gap:10px; align-items:flex-start; font-weight:400; }
.evaluation-form .validation-errors { color:#a22; }
.evaluation-response { margin:18px 0; padding:22px; }
.evaluation-response summary { cursor:pointer; padding-bottom:12px; }
.summit-feature { position:relative; background:linear-gradient(270deg,rgba(4,40,47,.96),rgba(4,40,47,.79) 52%,rgba(4,40,47,.25)),url('/api/v1/summit/image') center/cover; color:white; padding:70px 0; }
.summit-feature-content h2,.summit-feature-content h1 { max-width:800px; color:white; margin:18px 0; font-size:clamp(30px,4vw,48px); }
.summit-feature-content p { color:#d9eeeb; max-width:650px; font-size:20px; }
.summit-meta { color:#bce3db; margin-bottom:24px; }
.summit-page-hero nav { margin-bottom:28px; font-size:14px; color:#c9e5df; }
.summit-page-hero nav a { text-decoration:underline; }
.summit-intro { display:grid; grid-template-columns:1.5fr 1fr; gap:48px; align-items:start; }
.summit-facts { background:var(--paper); border:1px solid var(--line); border-radius:18px; padding:28px; }
.summit-numbers { display:flex; flex-wrap:wrap; gap:22px; border-top:1px solid var(--line); padding-top:20px; }
.summit-numbers strong { display:block; font-size:32px; color:var(--teal); }
.summit-section { padding-top:0; }
.summit-topics,.summit-leaders { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.summit-topics article,.summit-leaders article { background:white; border:1px solid var(--line); border-radius:14px; padding:22px; }
.summit-topics h3,.summit-leaders h3 { font-size:19px; margin:12px 0 0; }
.summit-leaders p { margin:10px 0 0; }
.summit-tracks { display:flex; flex-wrap:wrap; gap:12px; }
.summit-tracks span { background:#e8f3ef; border:1px solid #d0e4de; padding:10px 20px; border-radius:28px; color:var(--teal); font-weight:700; }
.summit-subheading { margin-top:36px; }
.summit-source { font-size:13px; margin-top:22px; }
.summit-source a { text-decoration:underline; }
@media(max-width:760px) { .summit-intro { grid-template-columns:1fr; gap:24px; } .summit-topics,.summit-leaders { grid-template-columns:1fr; } .summit-feature { padding:42px 0; } .summit-feature-content p { font-size:17px; } }
.sadad-payment-callout { padding:20px; background:#edf7f2; border:1px solid #b8dcd1; border-radius:14px; margin:18px 0 26px; }
.sadad-payment-callout h3 { font-size:22px; margin:8px 0; }
.sadad-payment-callout p { color:#365d5e; font-size:15px; }
.sadad-payment-callout small { display:block; margin-top:12px; color:#567170; }
.sadad-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; }
@media(max-width:700px){.sadad-fields{grid-template-columns:1fr;}}
/* Native horizontal rails: all cards are rendered and links remain normal navigation. */
.card-carousel { position:relative; padding-inline:26px; }
.carousel-track { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 48px)/3); gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; padding:6px 2px 22px; scrollbar-width:thin; scrollbar-color:#087f80 #eaf2f0; }
.carousel-track > * { min-width:0; scroll-snap-align:start; }
.carousel-track:focus-visible { outline:2px solid #087f80; outline-offset:4px; }
.carousel-arrow { position:absolute; top:38%; z-index:2; width:48px; height:48px; border-radius:50%; background:#087f80; color:white; border:3px solid white; font-size:25px; cursor:pointer; box-shadow:0 6px 20px #143d4030; }
.carousel-right { right:0; }.carousel-left { left:0; }
.carousel-arrow:disabled { background:#dae6e3; color:#718a88; cursor:default; }
.carousel-arrow:focus-visible { outline:3px solid #143d40; outline-offset:3px; }
.upcoming-section { background:linear-gradient(125deg,#e5f3ef,#f8fbfa); }
.upcoming-feature { display:grid; grid-template-columns:280px 1fr; gap:40px; align-items:center; background:white; border:1px solid #d7e8e3; border-radius:24px; padding:28px; margin-bottom:24px; box-shadow:0 12px 40px #123f4008; }
.upcoming-art { display:block; background:#edf7f4; border-radius:16px; overflow:hidden; }
.upcoming-art .course-cover { width:100%; height:330px; object-fit:contain; display:block; }
.upcoming-date { display:inline-flex; gap:10px; align-items:center; padding:9px 15px; background:#e5f5ef; color:#087b7c; border-radius:24px; font-size:14px; font-weight:700; }
.upcoming-copy h3 { font-size:clamp(23px,3vw,36px); line-height:1.55; margin:18px 0 10px; }
.upcoming-copy p { color:#596f71; line-height:1.9; }.upcoming-meta { display:flex; flex-wrap:wrap; gap:24px; margin:20px 0; color:#174448; font-weight:700; }
.course-description p { margin:0; white-space:pre-line; }.course-description p:empty { height:18px; }
.course-contact { padding:22px; margin:24px 0; background:#edf8f5; border:1px solid #c7e4dc; border-radius:16px; }
.course-contact > strong { display:block; color:#174448; font-size:18px; margin-bottom:14px; }
.course-contact-numbers { display:flex; flex-wrap:wrap; gap:12px; }
.course-contact-numbers a { display:flex; align-items:center; gap:12px; padding:12px 18px; background:white; border:1px solid #b8dcd4; border-radius:10px; color:#087b7c; font-size:22px; font-weight:800; }
.course-contact-numbers bdi { white-space:nowrap; font-variant-numeric:tabular-nums; }
.course-contact-numbers a:hover { background:#087f80; color:white; }
@media(max-width:1000px) { .carousel-track { grid-auto-columns:calc((100% - 24px)/2); } }
@media(max-width:600px) { .card-carousel { padding-inline:14px; }.carousel-track { grid-auto-columns:92%; }.carousel-arrow { width:40px;height:40px; }.upcoming-feature { grid-template-columns:1fr; gap:20px; padding:20px; }.upcoming-art .course-cover { height:300px; }.course-contact-numbers a { font-size:20px; width:100%; justify-content:center; } }
/* Mobile layout and touch interaction */
.mobile-menu,.mobile-course-shortcuts { display:none; }
@media(max-width:800px) {
    html { scroll-padding-top:95px; }
    body { overflow-wrap:break-word; }
    .site-header { position:sticky; top:0; box-shadow:0 3px 16px #163c4008; }
    .nav-row { min-height:76px; padding-block:8px; flex-wrap:nowrap; gap:12px; position:relative; }
    .brand { min-width:0; gap:8px; white-space:normal; }
    .nav-row .brand img { width:46px; height:46px; }
    .nav-row .brand strong { font-size:16px; line-height:1.4; }.nav-row .brand small { font-size:12px; }
    .nav-row .desktop-navigation,.nav-row .nav-cta { display:none; }
    .mobile-menu { display:block; flex-shrink:0; }
    .mobile-menu summary { list-style:none; display:flex; align-items:center; gap:8px; min-height:46px; padding:8px 12px; border:1px solid #d2e5df; border-radius:10px; background:#edf7f3; color:var(--teal); font-weight:700; cursor:pointer; }
    .mobile-menu summary::-webkit-details-marker { display:none; }
    .mobile-menu summary span { font-size:22px; }
    .nav-row .mobile-menu nav { position:absolute; inset-inline:0; top:100%; display:grid; width:auto; gap:4px; padding:12px; background:#fff; border:1px solid var(--line); border-radius:0 0 16px 16px; box-shadow:0 16px 30px #163c4020; max-height:70dvh; overflow-y:auto; }
    .nav-row .mobile-menu nav a { padding:12px 16px; font-size:16px; min-height:48px; border-radius:8px; }
    .mobile-menu nav a.active { background:#edf7f3; }.nav-row .mobile-menu nav a.active:after { display:none; }
    .hero { min-height:0; }.hero-content { padding-block:36px 42px; }
    .hero h1 { font-size:clamp(34px,9vw,48px); line-height:1.4; letter-spacing:0; }
    .hero p { font-size:17px; }.hero-index { display:none; }.hero-signature { margin-top:22px; }
    .hero-signature strong { font-size:13px; }.hero-signature small { font-size:12px; }
    .hero-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.hero-actions .btn { padding:12px 8px; font-size:15px; gap:8px; }
    .section { padding-block:36px; }.section-header { align-items:flex-start; flex-direction:column; gap:10px; margin-bottom:20px; }
    h2 { font-size:28px; letter-spacing:0; }.section-header p { font-size:16px; }.text-link { min-height:44px; }
    .pillars-grid { gap:18px 12px; }.pillars small { font-size:12px; }.pillars strong { font-size:14px; }
    .card-carousel { padding-inline:0; padding-bottom:52px; }
    .carousel-track { grid-auto-columns:88%; gap:16px; padding-bottom:12px; scroll-padding-inline:2px; }
    .carousel-arrow { top:auto; bottom:0; width:46px; height:46px; border-width:2px; }
    .carousel-right { right:0; }.carousel-left { left:0; }
    .course-photo-art { height:320px; }.course-body { padding:18px; }.course-card h3 { font-size:22px; }
    .course-meta { flex-wrap:wrap; font-size:13px; }.course-bottom { flex-wrap:wrap; }.course-bottom a { min-height:44px; display:inline-flex; align-items:center; }
    .trainer-photo-link { height:300px; }.trainer-photo-link img { height:100%; object-fit:contain; }
    .trainer-card-content { padding:18px; }.trainer-card-content h2 { font-size:23px; }.trainer-card-content .eyebrow { font-size:14px; }
    .upcoming-feature { padding:18px; gap:18px; grid-template-columns:1fr; border-radius:18px; }
    .upcoming-art .course-cover { height:260px; }.upcoming-date { flex-wrap:wrap; font-size:14px; line-height:1.8; }
    .upcoming-copy h3 { font-size:24px; }.upcoming-copy .btn { width:100%; }.upcoming-meta { gap:10px 20px; }
    .detail-hero { padding:26px 0; }.detail-hero h1 { font-size:30px; line-height:1.5; letter-spacing:0; }.detail-hero p { font-size:16px; }
    .mobile-course-shortcuts { display:flex; gap:10px; padding-top:18px; }.mobile-course-shortcuts .btn { flex:1; padding:10px 8px; font-size:15px; }
    .registration-card { padding:20px; max-width:none; }.registration-card label { font-size:16px; }.registration-card .muted { font-size:14px; }
    .details-grid { gap:24px; }.details-grid > * { min-width:0; }#register,#course-content { scroll-margin-top:90px; }
    .course-contact { padding:16px; }.course-contact-numbers a { padding:12px; font-size:20px; }
    .filter-row { gap:12px; }.filter-row .select-filter { width:100%; }.filter-row select { max-width:100%; }
    input:not([type=checkbox]),select,textarea { font-size:16px!important; max-width:100%; min-height:48px; }
    input[type=checkbox] { width:22px; height:22px; flex-shrink:0; }.checkbox { gap:10px; align-items:flex-start; }
    .evaluation-note { padding:18px; }.evaluation-form fieldset { padding:18px 14px; margin-bottom:20px; }.evaluation-form legend { font-size:18px; }.evaluation-form > button { width:100%; }
    .btn { min-height:48px; }.btn:hover,.course-card:hover { transform:none; }.course-photo-art:hover .course-cover { transform:none; }
    .footer-grid { gap:24px 16px; }.footer-grid > div { min-width:0; }.footer-grid>div>a:not(.brand) { font-size:15px; padding-block:8px; min-height:44px; margin:0; }
    .footer-bottom { padding-bottom:max(20px,env(safe-area-inset-bottom)); }
    .admin-content { padding:22px 14px; }.admin-sidebar nav a { font-size:14px; min-height:44px; }.table-scroll { max-width:100%; overflow:auto; }.admin-panel { min-width:0; }
}
@media(max-width:360px) {
    .nav-row .brand strong { font-size:14px; }.mobile-menu summary { padding-inline:9px; }
    .hero-actions { grid-template-columns:1fr; }.pillars-grid { grid-template-columns:1fr; }
    .carousel-track { grid-auto-columns:94%; }.course-contact-numbers a { font-size:18px; }
}
.center-services-grid,.center-partners-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.center-service,.center-partner { padding:28px; border:1px solid var(--line); border-radius:18px; background:white; }
.center-service>svg,.center-partner>svg { color:var(--teal); margin-bottom:18px; }.center-service h3,.center-partner h3 { font-size:22px; }.center-service p,.center-partner p { margin-bottom:0; line-height:1.9; }
.center-section-action { margin-top:24px; }.partners-section { background:#f1f7f4; }
.partner-excerpt { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.center-value-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }.center-value-grid article { display:flex; align-items:flex-start; gap:14px; padding:24px; background:#edf7f4; border-radius:14px; }.center-value-grid svg { color:var(--teal); }.center-value-grid p { margin:0; color:var(--ink); }
.contact-layout { display:grid; grid-template-columns:1fr 1.1fr; gap:40px; align-items:start; }.contact-details,.contact-map { min-width:0; }.contact-address { font-size:18px; }.contact-map iframe { display:block; width:100%; height:440px; border:0; border-radius:18px; background:#eaf2ef; }.contact-map>a { display:block; padding:14px 0; color:var(--teal); font-weight:700; }.map-coordinates { margin-top:16px; font-size:14px; }.contact-inline { display:flex; gap:20px; flex-wrap:wrap; margin-top:18px; }.contact-inline a { padding-block:8px; font-size:19px; font-weight:700; }
@media(max-width:1100px) and (min-width:801px){.nav-row nav { gap:12px; }.nav-row nav a { font-size:14px; }.nav-row .brand strong { font-size:17px; }}
@media(max-width:800px){.center-services-grid,.center-partners-grid,.center-value-grid,.contact-layout{grid-template-columns:1fr;gap:18px;}.center-service,.center-partner{padding:22px;}.contact-map iframe{height:320px;}.contact-details h2{font-size:26px;}.contact-inline{gap:8px 18px;}}
/* Recorded learning and the financial register */
.workshop-player{display:block;width:100%;max-height:70vh;aspect-ratio:16/9;background:#102e34;border-radius:20px;margin:28px 0}
.recording-detail{max-width:1100px}.recording-detail .course-meta{display:flex;flex-wrap:wrap;gap:16px;margin:22px 0}.preserve-lines{white-space:pre-line;line-height:2}
.recording-access{padding:clamp(22px,4vw,48px);background:linear-gradient(135deg,#e7f4f1,#f7faf8);border:1px solid #cfe2df;border-radius:24px;margin:24px 0}.recording-access h2{margin-top:0}.recording-access form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:16px;margin-top:25px;max-width:720px}.recording-access label,.finance-filters label{display:grid;gap:8px}.recording-access input{font-size:20px;letter-spacing:2px}.recording-access>.text-link{display:inline-block;margin:12px}
.finance-filters{display:grid;grid-template-columns:2fr repeat(4,minmax(120px,1fr));gap:14px;margin:20px 0}.finance-total{display:flex;flex-direction:column;gap:8px;padding:26px;border-radius:18px;background:#e8f4f1;color:#0b5559;margin:18px 0}.finance-total strong{font-size:clamp(25px,4vw,38px)}.finance-methods{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}.finance-methods>span{padding:8px 14px;background:#f1f6f5;border-radius:10px}.admin-panel>details>summary{font-weight:800;font-size:20px;cursor:pointer;padding:12px 0}.photo-editor progress{width:100%;accent-color:#098588}.admin-panel td>button{display:block;margin:7px 0;min-height:40px;padding:8px 12px;border:1px solid #c8ddda;border-radius:8px;color:#086b70;background:#f1f8f7;cursor:pointer}
@media(max-width:1200px){.finance-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.desktop-navigation{gap:18px}.desktop-navigation a{font-size:15px}}
@media(max-width:600px){.recording-access form,.finance-filters{grid-template-columns:1fr}.recording-access input{font-size:16px;letter-spacing:1px}.recording-access .btn{width:100%}.workshop-player{border-radius:12px}.recording-detail .course-meta{font-size:14px}.finance-total{padding:18px}}

/* Partner marks retain their original colors and proportions in equal frames. */
.partner-logos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;list-style:none;padding:0;margin:0}
.partner-logo{display:flex;align-items:center;justify-content:center;height:220px;min-width:0;padding:22px;background:#fff;border:1px solid #dce9e7;border-radius:20px;box-shadow:0 8px 28px #123b3f05;overflow:hidden}
.partner-logo img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
@media(max-width:1000px){.partner-logos{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}}
@media(max-width:640px){.partner-logos{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.partner-logo{height:160px;padding:14px;border-radius:14px}}
@media(max-width:360px){.partner-logo{height:140px;padding:10px}}
/* Profile download sits opposite the hero signature on every screen. */
.hero-bottom { display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; max-width:530px; margin-top:32px; }
.hero-bottom .hero-signature { margin-top:0; }
.hero-profile { min-height:48px; padding:12px 16px; font-size:15px; white-space:nowrap; }
.hero-profile:focus-visible { outline:3px solid var(--mint); outline-offset:4px; }
@media(max-width:640px) {
    .hero-bottom { margin-top:22px; gap:10px; }
    .hero-profile { padding:10px; font-size:14px; gap:7px; }
}
@media(max-width:360px) {
    .hero-bottom { flex-wrap:wrap; }
    .hero-profile { margin-inline-start:auto; }
}

/* Administrator forms need breathing room inside their bordered panels. */
.admin-users-panel { padding:clamp(20px,3vw,36px); }
.admin-users-panel h2 { margin:0 0 24px; }
.admin-users-panel .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 24px; }
.admin-users-panel .form-grid>label { min-width:0; margin:0; }
.admin-users-panel .table-wrap { overflow-x:auto; }
.admin-permissions { min-width:0; margin:8px 0 0; padding:20px 24px; border:1px solid var(--line); border-radius:12px; }
.admin-permissions legend { padding:0 10px; font-weight:700; }
.admin-permissions .checkbox { margin:0 0 14px; }
.admin-permissions p { margin:16px 0 0; line-height:1.8; }
.admin-user-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:24px; }
.account-share textarea { width:100%; resize:vertical; min-height:210px; padding:16px; line-height:1.9; unicode-bidi:plaintext; }
@media(max-width:650px) { .admin-users-panel .form-grid { grid-template-columns:minmax(0,1fr); }.admin-permissions { padding:16px; }.admin-user-actions .btn { width:100%; } }
.admin-password-field { min-width:0; }
.admin-password-field>label { margin-bottom:8px; }
.admin-password-input { display:flex; align-items:stretch; gap:10px; }
.admin-password-input input { min-width:0; flex:1; margin:0; }
.admin-password-input .btn { flex-shrink:0; white-space:nowrap; }
.admin-user-actions [data-copy-status] { flex-basis:100%; }
[data-copy-fallback] { width:100%; min-height:180px; }
@media(max-width:650px) { .admin-password-input { flex-wrap:wrap; }.admin-password-input input { flex-basis:100%; }.admin-password-input .btn { width:100%; } }

/* A single, persistent, accessible error popup across public and administration pages. */
.maq-error-toast { position:fixed; inset:24px 50% auto auto; transform:translateX(50%); z-index:100000; width:min(560px,calc(100vw - 32px)); max-height:70vh; overflow:auto; padding:22px 24px; border:3px solid #c62828; border-radius:16px; background:#fff5f5; color:#861c1c; box-shadow:0 16px 55px #72151538; direction:rtl; }
.maq-error-toast[hidden] { display:none; }
.maq-error-toast header { display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:20px; font-weight:800; }
.maq-error-toast button { border:1px solid #c62828; border-radius:8px; padding:6px 12px; color:#861c1c; background:white; cursor:pointer; font:inherit; }
.maq-error-toast p { white-space:pre-line; margin:14px 0 0; line-height:1.8; color:inherit; }
[data-app-error], .validation-message, .validation-errors { color:#b42323; }
.admin-password-input { flex-wrap:wrap; }
.admin-password-input input { flex-basis:100%; }
@media(prefers-reduced-motion:no-preference) { .maq-error-toast { animation:maq-error-appear .18s ease-out; } @keyframes maq-error-appear { from { opacity:0; margin-top:-10px; } to { opacity:1; margin-top:0; } } }
.admin-password-field { grid-column:1/-1; }
.admin-password-input input { flex:1 1 200px; }
@media(max-width:650px) { .admin-password-input input { flex-basis:100%; } }

/* Glass administrator dialog: page stays behind a fixed, softly blurred overlay. */
body:has(.admin-modal-backdrop:not([hidden]) [data-admin-modal]) { overflow:hidden; }
.admin-modal-backdrop { position:fixed; inset:0; z-index:5000; display:flex; align-items:center; justify-content:center; padding:24px; background:rgba(9,42,46,.38); backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px); }
.admin-account-modal { width:min(960px,100%); max-height:calc(100dvh - 48px); overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; padding:0 32px 26px; border:1px solid rgba(255,255,255,.94); border-radius:26px; background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(246,252,251,.94)); backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px); box-shadow:0 30px 100px #052b3940,inset 0 1px 0 #fff; direction:rtl; }
.admin-modal-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:28px 0 22px; margin-bottom:24px; border-bottom:1px solid #dceae7; }
.admin-modal-heading h2 { font-size:clamp(25px,3vw,34px); margin:6px 0 8px; }
.admin-modal-heading p { margin:0; color:#647b7d; font-size:14px; }
.admin-modal-close { flex-shrink:0; display:grid; place-items:center; width:42px; height:42px; border:1px solid #d4e5e2; border-radius:50%; background:#ffffffcf; color:#285d61; font-size:28px; cursor:pointer; }
.admin-modal-close:hover { background:#e6f3f0; }
.admin-modal-close:focus-visible { outline:3px solid #0fb8ac; outline-offset:3px; }
.admin-account-modal input:not([type=checkbox]),.admin-account-modal textarea { background:#ffffffdf; }
.admin-account-modal .admin-permissions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 20px; background:#ffffff8c; }
.admin-account-modal .admin-permissions .checkbox { margin:0; padding:8px; border-radius:9px; align-items:flex-start; }
.admin-account-modal .admin-permissions .checkbox:hover { background:#e9f5f2; }
.admin-account-modal .admin-permissions p { grid-column:1/-1; font-size:13px; }
.admin-account-modal .admin-user-actions { position:sticky; bottom:-26px; margin-top:24px; padding:18px 0; background:#f9fdfcf5; border-top:1px solid #dceae7; backdrop-filter:blur(12px); }
@media(max-width:650px) { .admin-modal-backdrop { padding:10px; }.admin-account-modal { max-height:calc(100dvh - 20px); padding:0 18px 18px; border-radius:20px; }.admin-modal-heading { padding-top:20px; }.admin-account-modal .admin-permissions { grid-template-columns:minmax(0,1fr); }.admin-account-modal .admin-user-actions { position:static; }.admin-account-modal .admin-user-actions .btn { width:100%; } }
@media(prefers-reduced-motion:no-preference) { .admin-account-modal { animation:admin-modal-enter .2s ease-out; } @keyframes admin-modal-enter { from { opacity:0; transform:translateY(14px) scale(.98); } to { opacity:1; transform:none; } } }
.admin-account-modal [data-copy-status] { order:3; }
.admin-account-modal [data-copy-status]:empty { display:none; }

/* Shared modal: fixed header and close control, inset scroll area with a subtle teal thumb. */
.admin-modal-backdrop[hidden] { display:none; }
.admin-account-modal { display:flex; flex-direction:column; overflow:hidden; padding:0; scrollbar-gutter:auto; }
.admin-account-modal .admin-modal-heading { flex:0 0 auto; margin:0; padding:24px 30px 20px; background:rgba(255,255,255,.6); }
.admin-account-modal .admin-modal-body { min-height:0; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#79aaa6 transparent; padding:24px 30px; margin:0 7px 8px; }
.admin-modal-body::-webkit-scrollbar { width:7px; height:7px; }
.admin-modal-body::-webkit-scrollbar-track { background:transparent; margin-block:12px; }
.admin-modal-body::-webkit-scrollbar-thumb { background:#8db7b2; border:1px solid #f7fbfa; border-radius:20px; }
.admin-modal-body::-webkit-scrollbar-thumb:hover { background:#448e89; }
.admin-modal-body::-webkit-scrollbar-button { display:none; width:0; height:0; }
.admin-account-modal .admin-modal-close { width:42px; height:42px; border-radius:13px; border:1px solid #dceae8; background:linear-gradient(145deg,#fff,#eef6f4); color:#427b7b; box-shadow:0 3px 10px #1b565812; transition:background .15s,box-shadow .15s; padding:0; }
.admin-account-modal .admin-modal-close:hover { color:#a82e3a; background:#fff0f1; border-color:#f0cbd0; box-shadow:0 4px 14px #ab344018; }
.admin-account-modal .admin-modal-close:disabled { cursor:wait; opacity:.5; }
.admin-account-modal .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 24px; }
.admin-account-modal .form-grid>* { min-width:0; }
.admin-account-modal .evaluation-form { padding:0; margin:0; }
.admin-account-modal .form-actions,.admin-account-modal .admin-user-actions { position:static; display:flex; flex-wrap:wrap; gap:12px; padding:20px 0 0; margin:24px 0 0; border-top:1px solid #dceae7; background:transparent; }
@media(max-width:650px) { .admin-account-modal .admin-modal-heading { padding:18px; }.admin-account-modal .admin-modal-body { padding:18px 12px; margin:0 4px 6px; }.admin-account-modal .form-grid { grid-template-columns:minmax(0,1fr); }.admin-account-modal .form-actions .btn { width:100%; }.admin-account-modal .admin-modal-close { width:40px; height:40px; } }

@supports selector(::-webkit-scrollbar) { .admin-account-modal .admin-modal-body { scrollbar-width:auto; scrollbar-color:auto; } }

/* Compact administrator list with accessible icon actions. */
.admin-users-table-wrap { border:1px solid #e0ebe8; border-radius:14px; }
.admin-users-table { width:100%; min-width:720px; border-collapse:collapse; }
.admin-users-table th { padding:14px 18px; font-size:13px; font-weight:700; color:#4f7172; background:#f3f8f6; white-space:nowrap; }
.admin-users-table td { padding:16px 18px; vertical-align:middle; border-bottom:1px solid #edf2f0; font-size:14px; }
.admin-users-table tbody tr:last-child td { border-bottom:0; }
.admin-users-table tbody tr:hover { background:#f9fcfb; }
.admin-table-name { font-size:14px; line-height:1.7; }
.admin-table-email { color:#4e696d; font-size:13px; overflow-wrap:anywhere; }
.admin-permission-summary { display:inline-block; max-width:260px; font-size:12px; line-height:1.9; color:#406e6e; }
.admin-account-status { display:inline-flex; align-items:center; gap:6px; padding:4px 9px; border-radius:20px; font-size:12px; font-weight:700; white-space:nowrap; }
.admin-account-status>span { width:6px; height:6px; border-radius:50%; background:currentColor; }
.admin-account-status.is-active { background:#eaf7f0; color:#277d56; }
.admin-account-status.is-inactive { background:#f1f3f4; color:#6d777d; }
.admin-users-table .admin-actions-cell { width:112px; }
.admin-table-actions { display:flex; align-items:center; gap:8px; }
.admin-table-actions .admin-table-icon { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; min-width:38px; padding:0; margin:0; border:1px solid #d4e5e1; border-radius:10px; color:#247477; background:#f1f8f6; cursor:pointer; transition:background .15s,border-color .15s; }
.admin-table-icon svg { pointer-events:none; flex-shrink:0; }
.admin-table-actions .admin-table-icon:hover { background:#def0ec; border-color:#80b9b2; }
.admin-table-actions .admin-table-icon:focus-visible { outline:3px solid #0fa99d; outline-offset:3px; }
.admin-table-actions .admin-table-icon:disabled { opacity:.4; cursor:not-allowed; }
.admin-table-copy-status { display:block; max-width:155px; margin-top:6px; font-size:11px; color:#287559; }
.admin-table-copy-status:empty { display:none; }
@media(max-width:650px) { .admin-users-table th,.admin-users-table td { padding:12px; }.admin-table-actions .admin-table-icon { width:42px; height:42px; min-width:42px; } }

/* Three equal calls to action, in the same RTL order on all screen sizes. */
.hero .hero-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; width:100%; max-width:720px; align-items:stretch; }
.hero .hero-actions .btn { display:flex; align-items:center; justify-content:center; min-width:0; width:100%; height:58px; padding:12px; gap:10px; font-size:16px; line-height:1.4; text-align:center; white-space:normal; }
.hero-actions .hero-action-label { min-width:0; }
.hero-actions svg,.hero-actions .hero-action-symbol { flex-shrink:0; width:20px; height:20px; font-size:20px; line-height:20px; }
@media(max-width:800px) {
    .hero .hero-actions { gap:8px; }
    .hero .hero-actions .btn { height:60px; padding:8px 3px; flex-direction:row; gap:3px; font-size:clamp(12px,3.6vw,15px); font-weight:700; border-radius:10px; white-space:nowrap; }
    .hero-actions .hero-action-label { display:flex; align-items:center; justify-content:center; min-height:40px; line-height:20px; white-space:nowrap; }
    .hero-actions svg,.hero-actions .hero-action-symbol { width:18px; height:18px; font-size:18px; line-height:18px; stroke-width:2.2; }
}
@media(max-width:360px) { .hero .hero-actions { gap:6px; } }

@media(max-width:800px) {
    .hero .hero-actions .btn.glass { color:#fff; background:rgba(3,40,46,.68); border-color:rgba(255,255,255,.55); backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px); }
    .hero .hero-actions .btn.mint { color:#073f44; }
}

/* Mobile keeps download directly below About, opposite the signature. */
@media(max-width:800px) {
    .hero-cta-layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 8px; width:100%; max-width:530px; align-items:center; }
    .hero .hero-cta-layout .hero-actions { display:contents; }
    .hero-cta-layout .hero-actions>a:nth-child(1) { grid-column:1; grid-row:1; }
    .hero-cta-layout .hero-actions>a:nth-child(2) { grid-column:2; grid-row:1; }
    .hero-cta-layout .hero-profile-action { grid-column:2; grid-row:2; }



    .hero-cta-layout .hero-bottom { grid-column:1; grid-row:2; width:100%; margin:0; min-width:0; }
    .hero-cta-layout .hero-signature { gap:7px; min-width:0; }
    .hero-cta-layout .signature-icon { width:30px; height:30px; min-width:30px; }
    .hero-cta-layout .hero-signature strong { font-size:12px; line-height:1.7; }
    .hero-cta-layout .hero-signature small { font-size:10px; }
}
@media(max-width:360px) { .hero-cta-layout { column-gap:6px; } }
