/* Covers the content viewport from the first paint, including older saved snippets. */
[data-hadarai-page]:not([data-hadarai-loaded="ready"]) {
    position: fixed;
    inset: calc(var(--navbar-height, 59px) + 1px) 0 0;
    z-index: 1020;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    width: auto;
    max-width: none;
    margin: 0;
    padding: 24px;
    box-sizing: border-box;
    background: var(--hadarai-loader-background, #fdf9f4);
    color: #2e7191;
    text-align: center;
    font-size: 18px;
    font-weight: 500;
}
[data-hadarai-page]:not([data-hadarai-loaded="ready"]) > :not(.ha-page-loader):not(.ha-page-error) {
    display: none !important;
}
/* CSS fallback removes the old paragraph/link before the shared JS runs. */
[data-hadarai-page]:not([data-hadarai-loaded="ready"]):not(:has(> .ha-page-loader, > .ha-page-error))::before,
.ha-page-spinner {
    content: "";
    display: block;
    flex: 0 0 auto;
    width: 48px;
    height: 48px;
    box-sizing: border-box;
    border: 4px solid #d1e0e7;
    border-top-color: #2e7191;
    border-radius: 50%;
    animation: ha-page-spin 0.8s linear infinite;
}
[data-hadarai-page]:not([data-hadarai-loaded="ready"]):not(:has(> .ha-page-loader, > .ha-page-error))::after {
    content: "Loading";
    direction: ltr;
}
.ha-page-loader, .ha-page-error {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
}
.ha-page-error p { margin: 0; }
.ha-page-retry {
    border: 0;
    border-radius: 10px;
    padding: 10px 20px;
    color: #fff;
    background: #2e7191;
    font: inherit;
    cursor: pointer;
}
.ha-page-retry:focus-visible { outline: 2px solid #2e7191; outline-offset: 4px; }
body:has([data-hadarai-page]:not([data-hadarai-loaded="ready"])) { overflow: hidden; }
body:has([data-hadarai-page]:not([data-hadarai-loaded="ready"])) .local-page-admin-controls,
body:has([data-hadarai-page]:not([data-hadarai-loaded="ready"])) #s-page-footer { visibility: hidden; }
@keyframes ha-page-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
    .ha-page-spinner,
    [data-hadarai-page]:not([data-hadarai-loaded="ready"])::before { animation: none; }
}

/* Remove Space's navbar margin only on the academy's public presentation pages. */
body:is(#page-site-index, [id^="page-local-page-"], #page-local-hadarai-index, #page-local-hadarai-contact):has([data-hadarai-page], .hadarai) #page {
    margin-top: 0 !important;
}

/* Contact layout follows the approved reference; all controls remain native Moodle form fields. */
.hadarai .ha-contact-layout{grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:48px;align-items:start}
.hadarai .ha-contact-form{padding:32px;border-radius:20px}
.hadarai .ha-contact-form h2{font-size:24px;margin:0 0 24px}
.hadarai .ha-contact-form .mform{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px;margin:0}
.hadarai .ha-contact-form .mform>.fitem{margin:0!important;min-width:0;padding:0!important}
.hadarai .ha-contact-form .mform>#fitem_id_message,.hadarai .ha-contact-form .mform>#fitem_id_submitbutton,.hadarai .ha-contact-form .mform>#fitem_id_recaptcha,.hadarai .ha-contact-form .mform>#fitem_id_loginnotice{grid-column:1/-1}
.hadarai .ha-contact-form .mform .col-form-label,.hadarai .ha-contact-form .mform .felement{flex:0 0 100%;max-width:100%;padding:0;text-align:right}
.hadarai .ha-contact-form .mform .col-form-label{padding-bottom:8px}
.hadarai .ha-contact-form .mform .form-control,.hadarai .ha-contact-form .mform :is(.custom-select,.form-select){width:100%;max-width:none;min-height:46px;border:1px solid #e4d9cd;border-radius:12px;background-color:#fff;color:#173d56;padding:10px 14px;font:inherit;box-shadow:none}
.hadarai .ha-contact-form .mform select.form-select{padding-inline-end:32px;appearance:none;direction:rtl;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23173d56' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E");background-position:left 12px center;background-repeat:no-repeat;background-size:14px 14px}
.hadarai .ha-contact-form input[name="email"]{direction:ltr;text-align:left}
.hadarai .ha-contact-form .mform textarea{height:120px;min-height:120px;resize:vertical}
.hadarai .ha-contact-form .mform .btn-primary{display:block;width:100%;margin:24px 0 0;background:#2e7197;border:1px solid #2e7197;border-radius:12px;color:#fff;padding:12px 24px;min-height:52px;font:inherit;font-weight:600;box-shadow:0 6px 16px #2e71972b}
.hadarai .ha-contact-form .mform .form-control:focus,.hadarai .ha-contact-form .mform :is(.custom-select,.form-select):focus{border-color:#2e7197;box-shadow:0 0 0 3px #2e71971a}
.hadarai .ha-contact-aside{gap:14px}
.hadarai .ha-contact-info{display:flex;align-items:center;gap:14px;min-height:120px;padding:24px 20px;border-radius:20px;text-align:right}
.hadarai .ha-contact-icon{width:44px;height:44px;flex:none;display:grid;place-items:center;background:#edf5f9;color:#2e7197;border-radius:12px}
.hadarai .ha-contact-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.hadarai .ha-contact-info>div{min-width:0;flex:1}
.hadarai .ha-contact-label{display:block;font-size:13px;color:#2e6f97;margin-bottom:2px}
.hadarai .ha-contact-value{display:block;color:#173d56;font-size:16px;font-weight:600;overflow-wrap:anywhere}
.hadarai .ha-contact-info p{font-size:13px;color:#2e6f97;margin:5px 0 0}
.hadarai .ha-contact-faq{padding:24px 20px;border-radius:20px;text-align:right}
.hadarai .ha-contact-faq h3{font-size:20px;margin-bottom:10px}
.hadarai .ha-contact-faq p{font-size:14px;color:#667b88;margin-bottom:14px}
.hadarai .ha-contact-faq a{display:block;color:#2e6f97;font-size:15px;line-height:1.8;margin-top:12px}
@media(max-width:960px){.hadarai .ha-contact-layout{grid-template-columns:minmax(0,1fr);gap:24px}.hadarai .ha-contact-aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.hadarai .ha-contact-form{padding:24px 20px}.hadarai .ha-contact-form .mform{grid-template-columns:minmax(0,1fr)}.hadarai .ha-contact-aside{grid-template-columns:minmax(0,1fr)}}

.hadarai .ha-contact-form .fdescription.required{display:none}
.hadarai .ha-contact-form .rui-req-icon .text-danger{color:#2e7197!important;font-size:11px}
