/* NMTC brand layer on top of UIkit 3.25 (assets/vendor/uikit). Layout and components come from UIkit;
   this file only sets the brand: type, colours (from the NMTC logo), shapes and a few bespoke pieces. */

:root {
    --nmtc-blue: #1736c4;
    --nmtc-blue-deep: #0d1f5c;
    --nmtc-red: #d90005;
    --nmtc-bg: #faf7f2;
    --nmtc-tint: #f2ede4;
    --nmtc-ink: #1d2433;
    --nmtc-muted: #5b6275;
    --nmtc-line: rgba(13, 31, 92, 0.12);
    --nmtc-radius: 18px;
    --nmtc-shadow: 0 10px 30px -12px rgba(13, 31, 92, 0.18);
    --nmtc-shadow-hover: 0 22px 44px -16px rgba(13, 31, 92, 0.28);
    --nmtc-heading: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    --nmtc-body: "Open Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
    --nmtc-serif: var(--nmtc-heading);
}

/* Base ------------------------------------------------------------------ */
html {
    font-family: var(--nmtc-body);
    font-size: 16px;
    line-height: 1.65;
    color: var(--nmtc-ink);
    background: var(--nmtc-bg);
}
button, input, select, textarea {
    font-family: inherit;
}

h1, h2, h3, h4, h5, h6,
.uk-h1, .uk-h2, .uk-h3, .uk-h4, .uk-h5, .uk-h6,
.uk-heading-small, .uk-heading-medium, .uk-heading-large, .uk-heading-xlarge, .uk-heading-2xlarge,
.uk-card-title, .uk-modal-title, .uk-article-title {
    font-family: var(--nmtc-heading);
    font-weight: 500;
    color: var(--nmtc-blue-deep);
    letter-spacing: -0.01em;
}

a, .uk-link { color: var(--nmtc-blue); }
a:hover, .uk-link:hover { color: var(--nmtc-blue-deep); }
.uk-text-muted { color: var(--nmtc-muted) !important; }
.uk-text-emphasis { color: var(--nmtc-ink) !important; }
::selection { background: var(--nmtc-blue); color: #fff; }

.nmtc-skip {
    position: absolute;
    left: -9999px;
    top: 12px;
    z-index: 1100;
}
.nmtc-skip:focus { left: 12px; }

/* Buttons, labels, icons ------------------------------------------------- */
.uk-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 26px;
    border-radius: 999px;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 48px;
    text-transform: none;
    transition: background-color 0.2s, color 0.2s, border-color 0.2s, transform 0.2s;
}
.uk-button:active { transform: translateY(1px); }
.uk-button .nmtc-icon { transition: transform 0.2s; }
.uk-button:hover .nmtc-icon { transform: translateX(3px); }
.nmtc-button-sm { line-height: 40px; padding: 0 20px; }

.uk-button-primary { background: var(--nmtc-blue); }
.uk-button-primary:hover,
.uk-button-primary:focus { background: var(--nmtc-blue-deep); }

.uk-button-default {
    border-color: rgba(13, 31, 92, 0.25);
    color: var(--nmtc-blue-deep);
}
.uk-button-default:hover,
.uk-button-default:focus {
    border-color: var(--nmtc-blue-deep);
    background: transparent;
    color: var(--nmtc-blue-deep);
}

.uk-label {
    padding: 3px 12px;
    border-radius: 999px;
    background: rgba(23, 54, 196, 0.1);
    color: var(--nmtc-blue);
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.5;
    text-transform: none;
}
.uk-label-danger { background: var(--nmtc-red); color: #fff; }
.nmtc-label-soft { background: var(--nmtc-tint); color: var(--nmtc-ink); }
.uk-light .uk-label { background: rgba(255, 255, 255, 0.18); color: #fff; }

.nmtc-labels { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.nmtc-actions { gap: 14px 20px; margin-top: 32px; }

.nmtc-icon { vertical-align: -0.15em; }

/* Section headings ------------------------------------------------------- */
.nmtc-eyebrow {
    margin: 0 0 14px;
    color: var(--nmtc-red);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.nmtc-eyebrow a { color: inherit; }
.uk-light .nmtc-eyebrow { color: rgba(255, 255, 255, 0.8); }

.nmtc-title {
    max-width: 20ch;
    margin: 0;
    font-size: clamp(1.9rem, 1.3rem + 2vw, 3rem);
    line-height: 1.1;
}
.nmtc-title--sm { font-size: clamp(1.5rem, 1.2rem + 1vw, 2.1rem); }
.uk-text-center .nmtc-title { margin-inline: auto; }

.nmtc-section-head { gap: 20px; margin-bottom: 48px; }
.nmtc-section-head__lead { max-width: 60ch; margin: 16px 0 0; color: var(--nmtc-muted); }
.nmtc-section-tint { background: var(--nmtc-tint); }

/* Header ----------------------------------------------------------------- */
.nmtc-header .uk-navbar-container {
    background: rgba(250, 247, 242, 0.92);
    transition: box-shadow 0.3s, background-color 0.3s;
}
.nmtc-header--stuck.uk-navbar-container,
.nmtc-header .uk-navbar-container.nmtc-header--stuck {
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 6px 24px -14px rgba(13, 31, 92, 0.35);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
}
.nmtc-logo { padding-left: 0; }
.nmtc-logo img { height: 44px; width: auto; transition: height 0.3s; }
.nmtc-header--stuck .nmtc-logo img { height: 38px; }

.uk-navbar-nav > li > a {
    min-height: 84px;
    padding: 0 12px;
    color: var(--nmtc-ink);
    font-family: inherit;
    font-size: 0.93rem;
    font-weight: 500;
    text-transform: none;
    transition: color 0.2s, min-height 0.3s;
}
.nmtc-header--stuck .uk-navbar-nav > li > a { min-height: 68px; }
.uk-navbar-nav > li:hover > a,
.uk-navbar-nav > li > a[aria-expanded="true"],
.uk-navbar-nav > li.uk-active > a { color: var(--nmtc-blue); }
.uk-navbar-toggle { color: var(--nmtc-blue-deep); min-height: 84px; }

.uk-navbar-dropdown {
    width: 240px;
    padding: 18px 22px;
    border-radius: 14px;
    box-shadow: var(--nmtc-shadow-hover);
}
.uk-navbar-dropdown-nav > li > a { color: var(--nmtc-ink); font-size: 0.92rem; }
.uk-navbar-dropdown-nav > li > a:hover,
.uk-navbar-dropdown-nav > li.uk-active > a { color: var(--nmtc-blue); }

.nmtc-offcanvas { background: var(--nmtc-blue-deep); }
.nmtc-offcanvas .uk-nav-default > li > a { font-size: 1.05rem; padding: 8px 0; }
.nmtc-offcanvas .uk-nav-sub { padding-left: 14px; }

/* Cards ------------------------------------------------------------------ */
.uk-card-default {
    border-radius: var(--nmtc-radius);
    background: #fff;
    color: var(--nmtc-ink);
    box-shadow: var(--nmtc-shadow);
    overflow: hidden;
}
.uk-card-default .uk-card-title,
.uk-card-default h2, .uk-card-default h3 { color: var(--nmtc-blue-deep); }
.uk-card-media-top img { display: block; width: 100%; }

.nmtc-card { height: 100%; transition: transform 0.3s ease, box-shadow 0.3s ease; }
.nmtc-card:hover,
.nmtc-card:focus-within { transform: translateY(-4px); box-shadow: var(--nmtc-shadow-hover); }
.nmtc-card > a { color: inherit; height: 100%; }
.nmtc-card__title { margin: 0 0 8px; font-size: 1.3rem; line-height: 1.25; }
.nmtc-card__title span { color: var(--nmtc-red); font-style: italic; }

.nmtc-more {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    color: var(--nmtc-blue);
    font-size: 0.92rem;
    font-weight: 600;
}
.nmtc-more .nmtc-icon { transition: transform 0.2s; }
.uk-link-toggle:hover .nmtc-more .nmtc-icon { transform: translateX(4px); }

.nmtc-event__media { min-height: 96px; background: var(--nmtc-tint); }
.nmtc-event__date {
    min-width: 58px;
    padding: 8px 10px;
    border-radius: 12px;
    background: #fff;
    box-shadow: var(--nmtc-shadow);
    text-align: center;
    line-height: 1.1;
}
.nmtc-event__day { display: block; font-family: var(--nmtc-serif); font-size: 1.6rem; color: var(--nmtc-blue-deep); }
.nmtc-event__month { display: block; color: var(--nmtc-red); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.nmtc-event__year { display: block; color: var(--nmtc-muted); font-size: 0.7rem; }
.nmtc-meta-list .nmtc-icon { color: var(--nmtc-blue); margin-right: 4px; }

/* Inner page hero -------------------------------------------------------- */
.nmtc-page-hero { padding: 72px 0 56px; background: var(--nmtc-tint); }
.nmtc-page-hero--image {
    display: flex;
    align-items: flex-end;
    min-height: clamp(340px, 42vw, 540px);
    padding: 140px 0 56px;
    background: var(--nmtc-blue-deep);
}
.nmtc-page-hero--image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(13, 31, 92, 0.88) 0%, rgba(13, 31, 92, 0.45) 55%, rgba(13, 31, 92, 0.2) 100%);
}
.nmtc-page-hero--image > .uk-container { z-index: 1; width: 100%; box-sizing: border-box; }
.nmtc-page-hero__title { max-width: 22ch; margin: 0; font-size: clamp(2.2rem, 1.5rem + 3vw, 3.8rem); line-height: 1.08; }
.nmtc-page-hero__lead { max-width: 52ch; margin: 18px 0 0; }
.nmtc-page-hero .nmtc-labels { margin: 22px 0 0; }

/* Content ---------------------------------------------------------------- */
.nmtc-prose { font-size: 1.0625rem; }
.nmtc-prose > :first-child { margin-top: 0; }
.nmtc-prose h2 { margin-top: 2em; font-size: clamp(1.5rem, 1.25rem + 1vw, 2rem); }
.nmtc-prose h3 { margin-top: 1.6em; font-size: 1.35rem; }
.nmtc-prose ul { padding-left: 1.2em; }
.nmtc-prose li + li { margin-top: 6px; }
.nmtc-prose li::marker { color: var(--nmtc-red); }
.nmtc-prose img { border-radius: 14px; }
.nmtc-prose blockquote,
.nmtc-prose .wp-block-quote {
    margin: 2em 0;
    padding: 4px 0 4px 24px;
    border-left: 3px solid var(--nmtc-red);
    color: var(--nmtc-blue-deep);
    font-family: var(--nmtc-serif);
    font-size: 1.35rem;
    font-style: italic;
    line-height: 1.45;
}
.nmtc-prose blockquote p { margin: 0; }

.nmtc-block { margin-top: 48px; }
.nmtc-block__title { margin-bottom: 18px; font-size: 1.6rem; }
.nmtc-check-list > li { display: flex; gap: 14px; align-items: flex-start; }
.nmtc-check-list .nmtc-icon {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(23, 54, 196, 0.1);
    color: var(--nmtc-blue);
}
.nmtc-video { display: block; width: 100%; height: auto; border-radius: 16px; background: #000; }
.nmtc-video--portrait { width: auto; max-width: 100%; max-height: 80vh; margin: 0 auto; }

/* Forms (nmtc-core shortcodes) ------------------------------------------ */
.nmtc-form-wrap { margin: 2em 0; }
.uk-input, .uk-select:not([multiple]):not([size]), .uk-textarea {
    border-color: rgba(13, 31, 92, 0.18);
    border-radius: 10px;
    background-color: #fff;
}
.uk-input, .uk-select:not([multiple]):not([size]) { height: 46px; }
.uk-input:focus, .uk-select:focus, .uk-textarea:focus { border-color: var(--nmtc-blue); }
.uk-form-label { color: var(--nmtc-ink); font-size: 0.9rem; font-weight: 500; }
.nmtc-req { color: var(--nmtc-red); }
.nmtc-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.uk-alert { border-radius: 12px; }
.nmtc-form .screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.nmtc-field-group { margin-bottom: 0; }
.nmtc-field-group > .uk-form-label { display: block; margin-bottom: 8px; }
.nmtc-form__submit { position: relative; min-width: 8.5rem; }
.nmtc-form__submit[disabled] { opacity: 0.72; cursor: wait; }
.nmtc-form__spinner {
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-left: 8px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    vertical-align: -0.15em;
    animation: nmtc-spin 0.6s linear infinite;
}
.nmtc-form__spinner[hidden] { display: none; }
@keyframes nmtc-spin { to { transform: rotate(360deg); } }
.nmtc-form-success {
    padding: 8px 0 16px;
    text-align: center;
}
.nmtc-form-success__title { margin-bottom: 8px; }
.nmtc-form-status { margin-bottom: 24px; }
.nmtc-contact-form .nmtc-form-wrap { margin-top: 0; }

/* Footer ----------------------------------------------------------------- */
.nmtc-footer { background: var(--nmtc-blue-deep); }
.nmtc-footer.uk-light a { color: rgba(255, 255, 255, 0.78); }
.nmtc-footer.uk-light a:hover { color: #fff; }
.nmtc-footer .uk-text-small { color: rgba(255, 255, 255, 0.72); }
.nmtc-footer__title { margin: 0 0 12px; font-family: var(--nmtc-serif); font-size: 1.35rem; color: #fff; }
.nmtc-footer__heading { margin: 0 0 16px; color: #fff; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; }
.nmtc-footer__bottom { gap: 8px 24px; }
.nmtc-footer.uk-light .uk-icon-button { background: rgba(255, 255, 255, 0.1); }
.nmtc-footer.uk-light .uk-icon-button:hover { background: var(--nmtc-red); color: #fff; }

.nmtc-totop {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 980;
    width: 44px;
    height: 44px;
    background: var(--nmtc-blue) !important;
    color: #fff !important;
    box-shadow: var(--nmtc-shadow-hover);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity 0.3s, transform 0.3s, visibility 0.3s;
}
.nmtc-totop.is-visible { opacity: 1; visibility: visible; transform: none; }

@media (prefers-reduced-motion: reduce) {
    [class*="uk-animation-"] { animation: none !important; }
    .nmtc-card, .uk-transition-scale-up { transition: none !important; }
}
