:root {
    --primary-blue: #1D4C7D;
    --secondary-gold: #AA8D53;
    --light-bg: #F5F5F5;
    --text-muted: #333;
    --border-light: #e2e2e2;
    --input-bg: #f6f6f6;
    --focus-ring-blue: rgba(21, 53, 90, 0.12);

    --page-width: 1200px;
    --page-gutter: 60px;
    --page-gutter-mobile: 30px;
    --page-gutter-small: 24px;

    --shadow-card: 2px 2px 9px rgba(0, 0, 0, 0.18);
    --box-shadow: 2px 2px 9px rgba(0, 0, 0, 0.18);
    --radius-large: 15px;
    --radius-card: 12px;
    --radius-form: 10px;
    --border-radius: 15px;
    --transition-fast: 0.15s;

    --section-line-width: 58px;
    --section-line-height: 3px;
}

* {
    box-sizing: border-box;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

html {
    min-height: 100%;
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;
    margin: 0;
    display: flex;
    flex-direction: column;

    color: black;
    background-color: white;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='24' viewBox='0 0 88 24'%3E%3Cg fill-rule='evenodd'%3E%3Cg id='autumn' fill='%23aa8d53' fill-opacity='0.06'%3E%3Cpath d='M10 0l30 15 2 1V2.18A10 10 0 0 0 41.76 0H39.7a8 8 0 0 1 .3 2.18v10.58L14.47 0H10zm31.76 24a10 10 0 0 0-5.29-6.76L4 1 2 0v13.82a10 10 0 0 0 5.53 8.94L10 24h4.47l-6.05-3.02A8 8 0 0 1 4 13.82V3.24l31.58 15.78A8 8 0 0 1 39.7 24h2.06zM78 24l2.47-1.24A10 10 0 0 0 86 13.82V0l-2 1-32.47 16.24A10 10 0 0 0 46.24 24h2.06a8 8 0 0 1 4.12-4.98L84 3.24v10.58a8 8 0 0 1-4.42 7.16L73.53 24H78zm0-24L48 15l-2 1V2.18A10 10 0 0 1 46.24 0h2.06a8 8 0 0 0-.3 2.18v10.58L73.53 0H78z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    background-repeat: repeat;
    background-position: top left;
    background-attachment: fixed;
}

main {
    flex: 1 0 auto;
}

footer {
    margin-top: auto;
}

h1,
h2,
h3,
p {
    margin: 0;
    padding: 0;
}

a {
    text-decoration: none;
}

ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.page-container,
.header-container {
    width: min(var(--page-width), calc(100% - var(--page-gutter)));
    margin: 0 auto;
}

/* =========================
   SHARED PAGE HEADERS
========================= */

.standard-page,
.course-page,
.course-detail,
.contact-page,
.lecturers-page,
.diagnostics-page,
.exam-form-page,
.order-page,
.news-archive,
.single-news-page {
    padding-top: 54px;
    padding-bottom: 90px;
    background: transparent;
}

.standard-page-header,
.course-page-header,
.course-detail-header,
.contact-page-header,
.lecturers-header,
.exam-form-header,
.order-header,
.single-news-header {
    margin-bottom: 34px;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.section-title {
    position: relative;
    display: inline-block;
    max-width: 1050px;
    margin: 0;
    padding-bottom: 16px;
    color: black;
    font-size: 1.75rem;
    line-height: 1.25;
    font-weight: 700;
}

.section-title::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: var(--section-line-width);
    height: var(--section-line-height);
    background-color: var(--primary-blue);
    border-radius: 999px;
}

.standard-page-content {
    max-width: 900px;
    background: transparent;
    font-size: 0.98rem;
    line-height: 1.65;
}

.standard-page-content p, h2, h3 {
    margin-bottom: 16px;
    text-align: justify;
}

.standard-page-content ul {
    margin: 18px 0 22px;
    padding-left: 0;
    margin-left: 22px;
    list-style: none;
}

.standard-page-content li {
    position: relative;
    margin-bottom: 10px;
    padding-left: 22px;
    line-height: 1.65;
}

.standard-page-content li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.72em;
    width: 7px;
    height: 7px;
    background-color: var(--primary-blue);
    border-radius: 50%;
}

.standard-page-content ol {
    margin: 18px 0 22px;
    padding-left: 24px;
    margin-left: 22px;
}

.standard-page-content ol li {
    padding-left: 4px;
}

.standard-page-content ol li::before {
    display: none;
}

.standard-page-content a,
.about a,
.course-intro-text a,
.course-text-block a,
.course-detail-table td a,
.single-news-text a,
.contact-content a {
    color: var(--primary-blue);
    font-weight: 700;
    text-decoration: none;
    transition: var(--transition-fast);
}

.standard-page-content a:hover,
.about a:hover,
.course-intro-text a:hover,
.course-text-block a:hover,
.course-detail-table td a:hover,
.single-news-text a:hover,
.contact-content a:hover {
    color: var(--secondary-gold);
}

/* =========================
   SIDE NAVIGATION
========================= */

.standard-page-layout.has-side-nav {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 54px;
    align-items: start;
}

.standard-page-sidebar {
    position: sticky;
    top: 24px;
}

.page-side-nav {
    padding: 18px 20px;
    background-color: white;
    border-left: 5px solid var(--primary-blue);
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
}

.page-side-nav a {
    display: block;
    padding: 8px 0;
    color: #222;
    font-size: 0.92rem;
    line-height: 1.35;
    transition: var(--transition-fast);
}

.page-side-nav a:hover {
    color: var(--secondary-gold);
}

.page-side-nav > ul > li > a {
    color: var(--primary-blue);
    font-size: 0.98rem;
    font-weight: 700;
}

.page-side-nav ul ul {
    margin-left: 14px;
    padding-left: 14px;
    border-left: 1px solid var(--border-light);
}

.page-side-nav .is-current > a {
    color: var(--secondary-gold);
    font-weight: 700;
}

/* =========================
   SHARED WPFORMS LAYOUT
========================= */

.order-wpforms-wrapper,
.exam-wpforms-wrapper,
.diagnostics-form-wrapper {
    width: 100%;
    max-width: 100%;
    padding: 26px 32px 30px;
    background-color: white;
    border-left: 6px solid var(--primary-blue);
    border-radius: var(--radius-form);
    box-shadow: var(--shadow-card);
}

.order-wpforms-wrapper *,
.exam-wpforms-wrapper *,
.diagnostics-form-wrapper * {
    box-sizing: border-box;
}

.order-wpforms-wrapper .wpforms-container,
.order-wpforms-wrapper .wpforms-form,
.exam-wpforms-wrapper .wpforms-container,
.exam-wpforms-wrapper .wpforms-form,
.diagnostics-form-wrapper .wpforms-container,
.diagnostics-form-wrapper .wpforms-form {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.order-wpforms-wrapper .wpforms-field:not(.wpforms-field-checkbox),
.exam-wpforms-wrapper .wpforms-field:not(.wpforms-field-checkbox),
.diagnostics-form-wrapper .wpforms-field:not(.wpforms-field-checkbox) {
    display: grid !important;
    grid-template-columns: 230px minmax(0, 1fr) !important;
    align-items: center !important;
    column-gap: 18px !important;
    row-gap: 6px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 0 16px !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.order-wpforms-wrapper .wpforms-field-label,
.exam-wpforms-wrapper .wpforms-field-label,
.diagnostics-form-wrapper .wpforms-field-label {
    margin: 0 !important;
    padding: 0 !important;
    color: black !important;
    font-size: 0.86rem !important;
    line-height: 1.35 !important;
    font-weight: 700 !important;
}

.order-wpforms-wrapper .wpforms-field:not(.wpforms-field-checkbox) > .wpforms-field-label,
.exam-wpforms-wrapper .wpforms-field:not(.wpforms-field-checkbox) > .wpforms-field-label,
.diagnostics-form-wrapper .wpforms-field:not(.wpforms-field-checkbox) > .wpforms-field-label {
    grid-column: 1 !important;
}

.order-wpforms-wrapper .wpforms-required-label,
.exam-wpforms-wrapper .wpforms-required-label,
.diagnostics-form-wrapper .wpforms-required-label {
    color: #c00000 !important;
}

.order-wpforms-wrapper input[type="text"],
.order-wpforms-wrapper input[type="email"],
.order-wpforms-wrapper input[type="tel"],
.order-wpforms-wrapper input[type="number"],
.order-wpforms-wrapper select,
.order-wpforms-wrapper textarea,
.exam-wpforms-wrapper input[type="text"],
.exam-wpforms-wrapper input[type="email"],
.exam-wpforms-wrapper input[type="tel"],
.exam-wpforms-wrapper input[type="number"],
.exam-wpforms-wrapper select,
.exam-wpforms-wrapper textarea,
.diagnostics-form-wrapper input[type="text"],
.diagnostics-form-wrapper input[type="email"],
.diagnostics-form-wrapper input[type="tel"],
.diagnostics-form-wrapper input[type="number"],
.diagnostics-form-wrapper select,
.diagnostics-form-wrapper textarea {
    grid-column: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 34px !important;
    padding: 7px 12px !important;
    color: black !important;
    background-color: var(--input-bg) !important;
    border: 1px solid #d8d8d8 !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    font: inherit !important;
    font-size: 0.9rem !important;
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast) !important;
}

.order-wpforms-wrapper textarea,
.exam-wpforms-wrapper textarea,
.diagnostics-form-wrapper textarea {
    min-height: 82px !important;
    resize: vertical !important;
}

.order-wpforms-wrapper input:focus,
.order-wpforms-wrapper select:focus,
.order-wpforms-wrapper textarea:focus,
.exam-wpforms-wrapper input:focus,
.exam-wpforms-wrapper select:focus,
.exam-wpforms-wrapper textarea:focus,
.diagnostics-form-wrapper input:focus,
.diagnostics-form-wrapper select:focus,
.diagnostics-form-wrapper textarea:focus {
    outline: none !important;
    background-color: white !important;
    border-color: var(--primary-blue) !important;
    box-shadow: 0 0 0 3px var(--focus-ring-blue) !important;
}

.order-wpforms-wrapper .wpforms-field-textarea,
.exam-wpforms-wrapper .wpforms-field-textarea,
.diagnostics-form-wrapper .wpforms-field-textarea {
    align-items: start !important;
}

.order-wpforms-wrapper .wpforms-field-textarea > .wpforms-field-label,
.exam-wpforms-wrapper .wpforms-field-textarea > .wpforms-field-label,
.diagnostics-form-wrapper .wpforms-field-textarea > .wpforms-field-label {
    padding-top: 8px !important;
}

.wpforms-submit-container {
    margin: 0 !important;
    padding-top: 10px !important;
}

/* =========================
   SINGLE AKTUALITA
========================= */

.single-news-page .single-news-card {
    width: 100%;
    max-width: 900px;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.single-news-lead {
    margin-bottom: 22px;
    color: black;
    font-size: 1rem;
    line-height: 1.65;
    font-weight: 700;
}

.single-news-text {
    color: black;
    font-size: 0.98rem;
    line-height: 1.7;
}

.single-news-text p {
    margin-bottom: 16px;
}

.single-news-image {
    display: block;
    width: 100%;
    max-width: 760px;
    margin: 30px 0 0;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.single-news-image img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 14px;
    box-shadow: var(--shadow-card);
}

.single-news-back {
    margin-top: 28px;
}


/* =========================
   Regular page tables
========================= */

.page-content table,
.entry-content table,
.standard-page table {
    width: 100%;
    border-collapse: collapse;
    margin: 28px 0;
    background-color: white;
    border-radius: var(--radius-form);
    overflow: hidden;
    box-shadow: var(--shadow-card);
}

.page-content table th,
.entry-content table th,
.standard-page table th {
    background-color: var(--primary-blue);
    color: white;
    font-weight: 700;
    text-align: left;
    padding: 14px 18px;
    font-size: 0.92rem;
    line-height: 1.45;
}

.page-content table td,
.entry-content table td,
.standard-page table td {
    padding: 14px 18px;
    border-bottom: 1px solid #e5e5e5;
    font-size: 0.92rem;
    line-height: 1.55;
    vertical-align: middle;
}

.page-content table tr:last-child td,
.entry-content table tr:last-child td,
.standard-page table tr:last-child td {
    border-bottom: 0;
}

.page-content table tr:nth-child(even) td,
.entry-content table tr:nth-child(even) td,
.standard-page table tr:nth-child(even) td {
    background-color: #ffffff;
}

/* Mobile table safety */
.page-content,
.entry-content,
.standard-page {
    overflow-x: auto;
}


/* =========================================================
   404 PAGE
========================================================= */

.error-page {
    padding: 80px 0 100px;
}

.error-content {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
}

.error-icon {
    display: block;
    width: clamp(45px, 8vw, 80px);
    height: auto;
    margin: 0 auto 34px;
}

.error-content h1 {
    margin-bottom: 18px;
}

.error-content p {
    margin-bottom: 34px;
}

.error-actions {
    display: flex;
    justify-content: center;
}

.error-actions .outline-gold-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 34px;
    color: var(--secondary-gold);
    font-weight: 700;
    text-decoration: none;
    border: 2px solid var(--secondary-gold);
    border-radius: 14px;
    background: transparent;
    transition: 0.2s ease;
}

.error-actions .outline-gold-button:hover {
    color: white;
    background: var(--secondary-gold);
}


/* =========================
   RESPONSIVE
========================= */

@media (max-width: 900px) {
    .page-container,
    .header-container {
        width: min(100% - var(--page-gutter-mobile), var(--page-width));
    }

    .standard-page-layout.has-side-nav {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .standard-page-sidebar {
        position: static;
        order: -1;
    }

    .standard-page,
    .course-page,
    .course-detail,
    .contact-page,
    .lecturers-page,
    .diagnostics-page,
    .exam-form-page,
    .order-page,
    .news-archive,
    .single-news-page {
        padding-top: 38px;
        padding-bottom: 60px;
    }

    .order-wpforms-wrapper,
    .exam-wpforms-wrapper,
    .diagnostics-form-wrapper {
        padding: 24px 22px 26px !important;
    }

    .order-wpforms-wrapper .wpforms-field:not(.wpforms-field-checkbox),
    .exam-wpforms-wrapper .wpforms-field:not(.wpforms-field-checkbox),
    .diagnostics-form-wrapper .wpforms-field:not(.wpforms-field-checkbox) {
        grid-template-columns: 1fr !important;
        gap: 7px !important;
    }

    .order-wpforms-wrapper input[type="text"],
    .order-wpforms-wrapper input[type="email"],
    .order-wpforms-wrapper input[type="tel"],
    .order-wpforms-wrapper input[type="number"],
    .order-wpforms-wrapper select,
    .order-wpforms-wrapper textarea,
    .exam-wpforms-wrapper input[type="text"],
    .exam-wpforms-wrapper input[type="email"],
    .exam-wpforms-wrapper input[type="tel"],
    .exam-wpforms-wrapper input[type="number"],
    .exam-wpforms-wrapper select,
    .exam-wpforms-wrapper textarea,
    .diagnostics-form-wrapper input[type="text"],
    .diagnostics-form-wrapper input[type="email"],
    .diagnostics-form-wrapper input[type="tel"],
    .diagnostics-form-wrapper input[type="number"],
    .diagnostics-form-wrapper select,
    .diagnostics-form-wrapper textarea {
        grid-column: 1 !important;
    }
}

@media (max-width: 650px) {
    .page-container,
    .header-container {
        width: min(100% - var(--page-gutter-small), var(--page-width));
    }

    .order-wpforms-wrapper,
    .exam-wpforms-wrapper,
    .diagnostics-form-wrapper {
        border-left-width: 5px !important;
        padding: 22px 18px 24px !important;
    }
}
