:root {
    --color-primary: #005f73;
    --color-primary-dark: #003845;
    --color-surface: #f7f7f2;
    --color-text: #1f2933;
    --color-border: #d9e2ec;
    --color-admin-bg: #f3f7f6;
    --color-admin-panel: #ffffff;
    --color-admin-sidebar: #12343b;
    --color-admin-sidebar-soft: #1d4d57;
    --color-admin-accent: #e9c46a;
    --container-width: 1100px;
    --font-local-sans: "Segoe UI", "Trebuchet MS", Tahoma, Geneva, Verdana, sans-serif;
    --font-body: "Merriweather Sans", var(--font-local-sans);
    --font-heading: "DM Sans", var(--font-local-sans);
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
}

body:not(.admin-body) {
    font-family: var(--font-body);
    color: #696b7e;
    background: #ffffff;
}

body:not(.admin-body) h1,
body:not(.admin-body) h2,
body:not(.admin-body) h3,
body:not(.admin-body) h4,
body:not(.admin-body) h5,
body:not(.admin-body) h6,
body:not(.admin-body) input,
body:not(.admin-body) textarea,
body:not(.admin-body) select,
body:not(.admin-body) button,
body:not(.admin-body) .theme-btn,
body:not(.admin-body) .main-menu,
body:not(.admin-body) .sec-title,
body:not(.admin-body) .footer-widget {
    font-family: var(--font-heading) !important;
}

a {
    color: inherit;
    text-decoration: none;
}

.container {
    width: min(100% - 2rem, var(--container-width));
    margin: 0 auto;
}

.site-header,
.site-footer {
    background-color: var(--color-primary);
    color: #ffffff;
}

.site-header .container,
.site-footer .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 0;
}

nav {
    display: flex;
    gap: 1rem;
}

.hero {
    margin: 3rem 0;
    padding: 2rem;
    border: 1px solid var(--color-border);
    border-radius: 1rem;
    background-color: rgba(255, 255, 255, 0.92);
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.06);
}

.auth-panel {
    max-width: 36rem;
}

.auth-form {
    display: grid;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.auth-form input,
.auth-form button {
    width: 100%;
    padding: 0.85rem 1rem;
    border-radius: 0.75rem;
    border: 1px solid var(--color-border);
    font: inherit;
}

.auth-form button {
    border: none;
    background-color: var(--color-primary);
    color: #ffffff;
    cursor: pointer;
}

.auth-form button:hover {
    background-color: var(--color-primary-dark);
}

.alert {
    margin: 1rem 0 0;
    padding: 1rem 1.25rem;
    border-radius: 0.75rem;
}

.alert-error {
    background-color: #fdecea;
    color: #8a1c1c;
}

.alert-success {
    margin-top: 1.5rem;
    background-color: #e8f7ee;
    color: #166534;
}

.section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.button-link {
    display: inline-block;
    padding: 0.75rem 1rem;
    border-radius: 0.75rem;
    background-color: var(--color-primary);
    color: #ffffff;
}

.button-link.secondary {
    background-color: #475569;
}

.button-link.danger {
    background-color: #005F97;
    border: 0;
    cursor: pointer;
}

.status-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.6rem;
    border-radius: 999px;
    font-size: 0.82rem;
    margin-top: 0.45rem;
}

.status-badge.neutral {
    background-color: #e2e8f0;
    color: #334155;
}

.table-wrap {
    overflow-x: auto;
}

.admin-table {
    width: 100%;
    border-collapse: collapse;
}

.admin-table th,
.admin-table td {
    padding: 0.9rem;
    border-bottom: 1px solid var(--color-border);
    text-align: left;
    vertical-align: top;
}

.table-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.table-actions form {
    margin: 0;
}

.page-form-panel {
    max-width: 48rem;
}

.auth-form select,
.auth-form textarea {
    width: 100%;
    padding: 0.85rem 1rem;
    border-radius: 0.75rem;
    border: 1px solid var(--color-border);
    font: inherit;
}

.public-list {
    margin: 0;
    padding-left: 1.25rem;
}

.page-meta {
    margin-bottom: 1rem;
    color: #52606d;
}

.page-content {
    line-height: 1.7;
}

.muted-text {
    margin-top: 0.35rem;
    color: #52606d;
    font-size: 0.95rem;
}

.news-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.news-card {
    padding: 1.25rem;
    border: 1px solid var(--color-border);
    border-radius: 1rem;
    background-color: rgba(255, 255, 255, 0.88);
}

.news-card h3 {
    margin-top: 0.4rem;
    margin-bottom: 0.75rem;
}

.news-summary {
    font-size: 1.05rem;
    color: #334e68;
}

.agenda-card .page-meta,
.agenda-detail-meta .page-meta {
    margin-bottom: 0.5rem;
    font-weight: 600;
}

.agenda-meta,
.agenda-detail-meta {
    display: grid;
    gap: 0.4rem;
}

.agenda-calendar {
    border: 1px solid rgba(15, 23, 42, 0.08);
    background-color: #ffffff;
}

.agenda-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0.75rem;
}

.agenda-calendar-weekdays {
    margin-bottom: 0.75rem;
    color: #64748b;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.agenda-calendar-weekdays div {
    padding: 0 0.25rem;
}

.agenda-calendar-day {
    min-height: 132px;
    padding: 0.75rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1rem;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    overflow: hidden;
}

.agenda-calendar-day.is-muted {
    opacity: 0.55;
    background: #f8fafc;
}

.agenda-calendar-day.is-today {
    border-color: rgba(0, 95, 115, 0.42);
    box-shadow: 0 0 0 2px rgba(0, 95, 115, 0.1);
}

.agenda-calendar-day-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.85rem;
    height: 1.85rem;
    margin-bottom: 0.65rem;
    border-radius: 999px;
    color: #0f172a;
    font-weight: 700;
}

.agenda-calendar-day.is-today .agenda-calendar-day-number {
    background-color: var(--color-primary);
    color: #ffffff;
}

.agenda-calendar-events {
    display: grid;
    gap: 0.45rem;
}

.agenda-calendar-event {
    display: block;
    padding: 0.45rem 0.55rem;
    border-radius: 0.75rem;
    background-color: rgba(0, 95, 115, 0.08);
    color: var(--color-primary);
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.agenda-calendar-event span {
    display: block;
    color: #52606d;
    font-size: 0.72rem;
    font-weight: 600;
}

.agenda-calendar-event.is-past {
    background-color: #eef2f7;
    color: #64748b;
}

.admin-agenda-calendar {
    border: 1px solid rgba(15, 23, 42, 0.08);
}

.admin-agenda-calendar .fc {
    --fc-border-color: rgba(148, 163, 184, 0.24);
    --fc-page-bg-color: #ffffff;
    --fc-neutral-bg-color: #f8fafc;
    --fc-today-bg-color: rgba(132, 90, 223, 0.08);
    --fc-event-border-color: transparent;
    --fc-event-text-color: #ffffff;
    color: #0f172a;
}

.admin-agenda-calendar .fc-toolbar-title {
    color: #0f172a;
    font-size: 1.15rem;
    font-weight: 800;
    text-transform: capitalize;
}

.admin-agenda-calendar .fc-button-primary {
    border-color: rgba(132, 90, 223, 0.24);
    background-color: #ffffff;
    color: #4c1d95;
    font-weight: 700;
    box-shadow: none;
}

.admin-agenda-calendar .fc-button-primary .fc-icon,
.admin-agenda-calendar .fc-button-primary span {
    color: inherit;
}

.admin-agenda-calendar .fc-button-primary:hover,
.admin-agenda-calendar .fc-button-primary:focus,
.admin-agenda-calendar .fc-button-primary:active,
.admin-agenda-calendar .fc-button-primary:not(:disabled).fc-button-active {
    border-color: #845adf;
    background-color: #845adf;
    color: #ffffff;
    box-shadow: none;
}

.admin-agenda-calendar .fc-button-primary:disabled {
    border-color: rgba(132, 90, 223, 0.14);
    background-color: #f8fafc;
    color: #64748b;
    opacity: 1;
}

.admin-agenda-calendar .fc-col-header-cell-cushion,
.admin-agenda-calendar .fc-daygrid-day-number {
    color: #475569;
    text-decoration: none;
}

.admin-agenda-calendar .fc-daygrid-day.fc-day-today .fc-daygrid-day-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.8rem;
    height: 1.8rem;
    margin: 0.25rem;
    border-radius: 999px;
    background-color: #845adf;
    color: #ffffff;
    font-weight: 800;
}

.admin-agenda-calendar .fc-event {
    padding: 0.25rem 0.4rem;
    border-radius: 0.55rem;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.25;
    cursor: grab;
}

.admin-agenda-calendar .fc-event:active {
    cursor: grabbing;
}

.admin-agenda-calendar .fc-event.event-published {
    background-color: #26bf94;
}

.admin-agenda-calendar .fc-event.event-draft {
    background-color: #f5b849;
    color: #111827;
}

.admin-agenda-calendar .fc-event.event-archived {
    background-color: #64748b;
}

.admin-agenda-calendar .fc-list-event.event-draft td,
.admin-agenda-calendar .fc-list-event.event-published td,
.admin-agenda-calendar .fc-list-event.event-archived td {
    background-color: transparent;
}

#admin-agenda-event-modal .modal-header,
#admin-agenda-reschedule-modal .modal-header {
    align-items: flex-start;
}

#admin-agenda-event-modal .modal-title,
#admin-agenda-reschedule-modal .modal-title {
    color: #0f172a;
    font-weight: 800;
}

#admin-agenda-event-modal .modal-footer,
#admin-agenda-reschedule-modal .modal-footer {
    justify-content: flex-end;
    gap: 0.5rem;
}

.admin-agenda-toast-container {
    z-index: 1100;
}

.admin-body {
    background:
        radial-gradient(circle at top right, rgba(233, 196, 106, 0.28), transparent 28%),
        linear-gradient(180deg, #edf4f4 0%, #f8fbfb 100%);
}

.admin-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 290px 1fr;
}

.admin-sidebar {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 2rem;
    padding: 2rem 1.25rem;
    background: linear-gradient(180deg, var(--color-admin-sidebar) 0%, #0d2428 100%);
    color: #ffffff;
}

.admin-brand h1 {
    margin: 0.35rem 0 0;
    font-size: 1.65rem;
}

.admin-brand-kicker,
.admin-topbar-kicker,
.admin-eyebrow {
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-size: 0.75rem;
    color: #9ec5cc;
}

.admin-nav {
    display: grid;
    gap: 0.45rem;
}

.admin-nav a {
    padding: 0.9rem 1rem;
    border-radius: 0.85rem;
    color: #d7ecef;
    background-color: transparent;
    transition: background-color 0.15s ease, transform 0.15s ease;
}

.admin-nav a:hover,
.admin-nav a.is-active {
    background-color: var(--color-admin-sidebar-soft);
    color: #ffffff;
    transform: translateX(2px);
}

.admin-user-card {
    display: grid;
    gap: 0.35rem;
    padding: 1rem;
    border-radius: 1rem;
    background-color: rgba(255, 255, 255, 0.08);
}

.admin-user-card span {
    color: #c5dde0;
    word-break: break-word;
}

.admin-sidebar-footer {
    display: grid;
    gap: 1rem;
}

.admin-logout {
    width: 100%;
}

.admin-main {
    padding: 2rem;
}

.admin-topbar {
    margin-bottom: 1.5rem;
}

.admin-topbar h2 {
    margin: 0.35rem 0 0;
    font-size: 2rem;
}

.admin-content {
    display: grid;
    gap: 1.5rem;
}

.admin-panel {
    padding: 1.6rem;
    border: 1px solid rgba(18, 52, 59, 0.08);
    border-radius: 1.35rem;
    background-color: var(--color-admin-panel);
    box-shadow: 0 18px 45px rgba(18, 52, 59, 0.08);
}

.admin-welcome {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
}

.admin-welcome h3 {
    margin: 0.35rem 0 0.75rem;
    font-size: 1.7rem;
}

.admin-quick-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.admin-stats-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.admin-stat-card {
    display: grid;
    gap: 0.6rem;
    padding: 1.4rem;
    border-radius: 1.2rem;
    background: linear-gradient(180deg, #ffffff 0%, #f4f8f8 100%);
    border: 1px solid rgba(18, 52, 59, 0.08);
}

.admin-stat-card strong {
    font-size: 2rem;
    line-height: 1;
    color: var(--color-admin-sidebar);
}

.admin-stat-label {
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #52606d;
}

.admin-stat-card a {
    color: var(--color-primary);
    font-weight: 600;
}

.admin-toolbar {
    margin-bottom: 1rem;
}

.admin-toolbar-grid {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) 220px auto auto;
    gap: 0.75rem;
    align-items: center;
}

.admin-toolbar input,
.admin-toolbar select,
.admin-toolbar button {
    width: 100%;
    padding: 0.85rem 1rem;
    border-radius: 0.85rem;
    border: 1px solid var(--color-border);
    font: inherit;
}

.admin-toolbar button {
    border: none;
    background-color: var(--color-primary);
    color: #ffffff;
    cursor: pointer;
}

.admin-list-meta {
    margin-bottom: 1rem;
    color: #52606d;
}

.pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
}

.pagination a {
    min-width: 2.5rem;
    padding: 0.65rem 0.85rem;
    border-radius: 0.75rem;
    background-color: #edf2f7;
    text-align: center;
}

.pagination a.is-active {
    background-color: var(--color-primary);
    color: #ffffff;
}


.form-split {
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
}

.inline-link-block {
    display: grid;
    gap: 0.25rem;
    padding-bottom: 0.35rem;
}

.inline-link-block a {
    color: var(--color-primary);
    font-weight: 600;
}

.media-preview img,
.news-cover,
.news-detail-cover,
.media-card img {
    width: 100%;
    display: block;
    object-fit: cover;
    border-radius: 1rem;
}

.media-preview img,
.news-detail-cover {
    max-height: 360px;
}

.news-cover {
    height: 180px;
    margin-bottom: 1rem;
}

.media-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
}

.media-card {
    display: grid;
    gap: 0.75rem;
    padding: 1rem;
    border-radius: 1rem;
    background-color: #f8fafc;
    border: 1px solid var(--color-border);
}

.media-card img {
    height: 170px;
}

.media-card-check {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: #52606d;
}

.media-card-check span {
    overflow-wrap: normal;
}

.media-upload-dropzone {
    display: grid;
    gap: 0.35rem;
    padding: 1.2rem 1rem;
    border-radius: 1rem;
    border: 1px dashed rgba(0, 95, 115, 0.28);
    background:
        radial-gradient(circle at top right, rgba(0, 95, 115, 0.08), transparent 35%),
        #f8fafc;
    cursor: pointer;
    transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

.media-upload-dropzone:hover,
.media-upload-dropzone.is-dragover {
    border-color: rgba(0, 95, 115, 0.6);
    background-color: #eef8f9;
    transform: translateY(-1px);
}

.media-upload-dropzone-title {
    font-weight: 700;
    color: var(--color-primary);
}

.media-upload-dropzone-text {
    color: #52606d;
    font-size: 0.92rem;
}

.media-upload-dropzone-meta {
    color: #0f172a;
    font-size: 0.88rem;
}

.media-upload-preview {
    padding: 1rem;
    border-radius: 1rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background-color: #f8fafc;
}

.media-upload-preview-grid {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
}

.media-upload-preview-item {
    display: grid;
    gap: 0.6rem;
    padding: 0.7rem;
    border-radius: 0.9rem;
    background-color: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.06);
}

.media-upload-preview-image {
    width: 100%;
    height: 92px;
    object-fit: cover;
    border-radius: 0.75rem;
}

.media-upload-preview-body {
    display: grid;
    gap: 0.15rem;
}

.media-upload-preview-name {
    display: block;
    font-size: 0.88rem;
    overflow-wrap: anywhere;
}

.media-upload-preview-meta {
    color: #64748b;
    font-size: 0.8rem;
}

.media-upload-form {
    margin-bottom: 1.5rem;
}

.inline-admin-form {
    margin-bottom: 1.5rem;
}

.compact-form {
    margin-top: 0.25rem;
}

.compact-form input,
.compact-form button {
    padding: 0.7rem 0.85rem;
}

.media-delete-button {
    width: 100%;
}

.admin-news-thumb {
    width: 88px;
    height: 58px;
    object-fit: cover;
    border-radius: 0.75rem;
    display: block;
    margin-bottom: 0.6rem;
}

.editor-header {
    display: grid;
    gap: 0.6rem;
}

.editor-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.5rem;
    border: 1px solid var(--color-border);
    border-radius: 1rem;
    background-color: #ffffff;
}

.editor-toolbar.ql-toolbar .ql-formats {
    display: inline-block;
    margin-right: 0.5rem;
}

.editor-toolbar.ql-toolbar button {
    width: 28px;
    height: 28px;
}

.editor-toolbar.ql-toolbar button:hover,
.editor-toolbar.ql-toolbar button:focus,
.editor-toolbar.ql-toolbar button.ql-active {
    color: #6d28d9;
}

.editor-toolbar.ql-toolbar .ql-picker {
    color: #334155;
}

.editor-toolbar.ql-toolbar .ql-picker-label {
    display: inline-block;
    height: 28px;
    line-height: 26px;
    padding-left: 8px;
    padding-right: 22px;
}

.editor-toolbar.ql-toolbar .ql-picker.ql-expanded .ql-picker-label {
    border-color: rgba(139, 92, 246, 0.28);
}

.editor-toolbar.ql-toolbar .ql-picker-options {
    border-radius: 0.85rem;
    border-color: rgba(148, 163, 184, 0.2);
    box-shadow: 0 16px 35px rgba(15, 23, 42, 0.08);
}

.editor-toolbar.ql-toolbar .ql-picker.ql-header,
.editor-toolbar.ql-toolbar .ql-picker.ql-font,
.editor-toolbar.ql-toolbar .ql-picker.ql-size {
    min-width: 6.5rem;
}

.editor-toolbar.ql-toolbar .ql-picker.ql-color,
.editor-toolbar.ql-toolbar .ql-picker.ql-background,
.editor-toolbar.ql-toolbar .ql-picker.ql-align {
    width: 28px;
    min-width: 28px;
}

.editor-toolbar.ql-toolbar button svg {
    width: 18px;
    height: 18px;
}

.editor-toolbar.ql-toolbar .ql-picker.ql-color .ql-picker-label,
.editor-toolbar.ql-toolbar .ql-picker.ql-background .ql-picker-label,
.editor-toolbar.ql-toolbar .ql-picker.ql-align .ql-picker-label {
    width: 28px;
    min-width: 28px;
    padding-left: 2px;
    padding-right: 18px;
}

.editor-toolbar.ql-toolbar .ql-picker.ql-color .ql-picker-options,
.editor-toolbar.ql-toolbar .ql-picker.ql-background .ql-picker-options {
    width: 152px;
}

.editor-media-picker {
    display: grid;
    gap: 1rem;
    margin-top: 0.5rem;
}

.editor-media-head {
    display: grid;
    gap: 0.25rem;
}

.editor-media-head span,
.editor-preview-head span {
    color: #52606d;
}

.editor-media-grid {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}

.editor-media-search {
    margin-bottom: 0.5rem;
}

.editor-video-form {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
}

.editor-video-form input {
    width: 100%;
    padding: 0.85rem 1rem;
    border-radius: 0.75rem;
    border: 1px solid var(--color-border);
    font: inherit;
}

.editor-upload-box {
    display: grid;
    gap: 0.75rem;
}

.editor-upload-box input[type="file"],
.editor-upload-box input[type="text"] {
    width: 100%;
    padding: 0.85rem 1rem;
    border-radius: 0.75rem;
    border: 1px solid var(--color-border);
    font: inherit;
}

.editor-media-button {
    display: grid;
    gap: 0.6rem;
    padding: 0.75rem;
    border-radius: 1rem;
    border: 1px solid var(--color-border);
    background-color: #f8fafc;
    text-align: left;
    color: var(--color-text);
}

.editor-media-button img {
    width: 100%;
    height: 100px;
    object-fit: cover;
    border-radius: 0.75rem;
}

.editor-media-button span {
    overflow-wrap: anywhere;
}

.rich-editor {
    min-height: 300px;
    padding: 0;
    border: 1px solid var(--color-border);
    border-radius: 1rem;
    background-color: #ffffff;
    line-height: 1.7;
    overflow: hidden;
}

.quill-editor .ql-editor {
    min-height: 300px;
    padding: 1rem;
    font-family: inherit;
    font-size: 1rem;
    line-height: 1.7;
}

.quill-editor .ql-editor p {
    margin-bottom: 0;
}

.quill-editor .ql-editor p + p {
    margin-top: 0.85rem;
}

.quill-editor .ql-editor br {
    display: block;
    content: "";
    margin-top: 0.35rem;
}

.rich-editor-source {
    display: none;
}

.page-editor-tabs {
    margin-top: 0.75rem;
}

.page-html-editor {
    min-height: 380px;
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.95rem;
    line-height: 1.6;
    border-radius: 1rem;
}

.editor-mode-switch .nav-link {
    border-radius: 999px;
    padding: 0.45rem 0.85rem;
}

.quill-editor .ql-editor.ql-blank::before {
    left: 1rem;
    right: 1rem;
    color: #94a3b8;
    font-style: normal;
}

.page-content p,
.page-content ul,
.page-content ol,
.page-content blockquote,
.page-content h2,
.page-content h3,
.page-content h4 {
    margin-top: 0;
    margin-bottom: 1rem;
}

.page-content ul,
.page-content ol {
    padding-left: 1.4rem;
}

.page-content blockquote {
    padding-left: 1rem;
    border-left: 4px solid #cbd5e1;
    color: #475569;
}

.page-content a {
    color: var(--color-primary);
    text-decoration: underline;
}

.page-content img {
    max-width: 100%;
    height: auto;
    border-radius: 1rem;
    margin: 0 0 1rem;
}

.page-content iframe {
    width: 100%;
    min-height: 360px;
    border: 0;
    border-radius: 1rem;
    margin: 0 0 1rem;
}

.editor-modal-panel {
    gap: 1rem;
}

#editor-media-modal .tab-pane.editor-modal-panel.active,
#editor-media-modal .tab-pane.editor-modal-panel.show.active {
    display: grid;
}

.is-hidden {
    display: none !important;
}

.is-hidden-by-filter,
.is-hidden-by-page {
    display: none !important;
}

.form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
}

.form-actions button {
    width: auto;
}

.preview-submit-button {
    border: none;
    cursor: pointer;
}

@media (max-width: 980px) {
    .admin-shell {
        grid-template-columns: 1fr;
    }

    .admin-sidebar {
        padding: 1.25rem;
    }

    .admin-main {
        padding: 1rem;
    }

    .admin-welcome {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-toolbar-grid {
        grid-template-columns: 1fr;
    }

    .form-split {
        grid-template-columns: 1fr;
    }

    .form-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .form-actions button {
        width: 100%;
    }

    .editor-video-form {
        grid-template-columns: 1fr;
    }

    .table-responsive {
        border-radius: 1rem;
    }

    .admin-news-thumb {
        width: 72px;
        height: 52px;
    }

    .card-header {
        gap: 0.75rem;
    }
}

.admin-theme-shell .main-content.app-content {
    min-height: 100vh;
}

.admin-theme-content {
    display: grid;
    gap: 1.5rem;
    padding-bottom: 2rem;
}

.admin-theme-content .admin-panel {
    margin: 0;
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
}

.admin-theme-content .section-head h2,
.admin-theme-content .page-form-panel h2 {
    margin-top: 0;
}

.admin-theme-content .button-link {
    border: 0;
    cursor: pointer;
}

.admin-theme-content .button-link:hover {
    color: #ffffff;
}

.admin-theme-content .admin-table th {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
}

.admin-theme-content .admin-table td {
    background-color: transparent;
}

.admin-theme-content .auth-form input,
.admin-theme-content .auth-form select,
.admin-theme-content .auth-form textarea {
    background-color: #ffffff;
}

.admin-theme-content .admin-toolbar {
    margin-bottom: 1rem;
}

.admin-theme-content .media-card,
.admin-theme-content .admin-stat-card,
.admin-theme-content .news-card {
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

.admin-theme-content .pagination a {
    background-color: #ffffff;
}

.admin-theme-shell .app-header .btn-wave,
.admin-theme-shell .dropdown-item button {
    font: inherit;
}

.admin-hero-card {
    background:
        radial-gradient(circle at top right, rgba(0, 95, 115, 0.14), transparent 30%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(244, 248, 251, 0.98));
}

.admin-dashboard {
    display: grid;
    gap: 1.5rem;
}

.admin-dashboard-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.35rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 0.5rem;
    background-color: #ffffff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
}

.admin-dashboard-head h1 {
    margin: 0;
    color: #0f172a;
    font-size: 1.55rem;
    font-weight: 700;
    letter-spacing: 0;
}

.admin-dashboard-head p {
    margin: 0.35rem 0 0;
    color: #64748b;
}

.admin-dashboard-kicker {
    display: block;
    margin-bottom: 0.25rem;
    color: #005f73;
    font-size: 0.76rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.admin-dashboard-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.6rem;
}

.admin-dashboard-kpis {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 1rem;
}

.admin-dashboard-kpi {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    min-height: 112px;
    padding: 1rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 0.5rem;
    background-color: #ffffff;
    color: inherit;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.admin-dashboard-kpi:hover {
    transform: translateY(-2px);
    border-color: rgba(0, 95, 115, 0.28);
    box-shadow: 0 16px 30px rgba(15, 23, 42, 0.08);
}

.admin-dashboard-kpi > span:last-child {
    display: grid;
    min-width: 0;
}

.admin-dashboard-kpi strong {
    color: #0f172a;
    font-size: 1.55rem;
    line-height: 1;
}

.admin-dashboard-kpi span span {
    margin-top: 0.35rem;
    color: #1f2937;
    font-weight: 700;
}

.admin-dashboard-kpi small,
.admin-dashboard-list-item small,
.admin-attention-list-compact small {
    display: block;
    margin-top: 0.25rem;
    color: #64748b;
    line-height: 1.35;
}

.admin-dashboard-list {
    display: grid;
    gap: 0.75rem;
}

.admin-dashboard-list-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 0.75rem;
    min-height: 62px;
    padding: 0.85rem;
    border: 1px solid rgba(15, 23, 42, 0.07);
    border-radius: 0.5rem;
    background-color: #ffffff;
    color: inherit;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.admin-dashboard-list-item:hover {
    transform: translateY(-2px);
    border-color: rgba(0, 95, 115, 0.24);
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.08);
}

.admin-dashboard-list-item strong {
    display: block;
    overflow: hidden;
    color: #0f172a;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-dashboard-date {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    min-height: 38px;
    border-radius: 0.45rem;
    background-color: #eef6f8;
    color: #005f73;
    font-weight: 800;
}

.admin-attention-list-compact .admin-attention-item {
    align-items: flex-start;
    justify-content: flex-start;
    padding: 0.85rem;
    border-radius: 0.5rem;
}

.admin-attention-list-compact .admin-attention-item > span:last-child {
    min-width: 0;
}

.admin-attention-list-compact .admin-attention-item strong {
    display: block;
    color: #0f172a;
    line-height: 1.25;
}

.system-health-page {
    display: grid;
    gap: 1.5rem;
}

.system-health-header,
.system-health-summary-card,
.system-health-mini-card {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 0.5rem;
    background-color: #ffffff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
}

.system-health-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.35rem;
}

.system-health-header h1 {
    margin: 0;
    color: #0f172a;
    font-size: 1.55rem;
    font-weight: 700;
    letter-spacing: 0;
}

.system-health-header p {
    margin: 0.35rem 0 0;
    color: #64748b;
}

.system-health-kicker {
    display: block;
    margin-bottom: 0.25rem;
    color: #005f73;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.system-health-summary {
    display: grid;
    grid-template-columns: minmax(260px, 2fr) repeat(3, minmax(160px, 1fr));
    gap: 1rem;
}

.system-health-summary-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-height: 126px;
    padding: 1.2rem;
}

.system-health-summary-card strong,
.system-health-mini-card strong {
    display: block;
    color: #0f172a;
    font-size: 1.55rem;
    line-height: 1.1;
}

.system-health-summary-card span:not(.avatar),
.system-health-mini-card span {
    color: #64748b;
    font-weight: 700;
}

.system-health-summary-card small,
.system-health-mini-card small {
    display: block;
    margin-top: 0.35rem;
    color: #64748b;
}

.system-health-ok {
    border-color: rgba(34, 197, 94, 0.18);
}

.system-health-warning {
    border-color: rgba(245, 158, 11, 0.24);
}

.system-health-error {
    border-color: rgba(239, 68, 68, 0.24);
}

.system-health-mini-card {
    display: grid;
    align-content: center;
    min-height: 126px;
    padding: 1.2rem;
}

.system-health-groups {
    display: grid;
    gap: 1rem;
}

.system-health-check-list,
.system-health-info-list {
    display: grid;
    gap: 0.75rem;
}

.system-health-check {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.9rem;
    padding: 0.9rem;
    border: 1px solid rgba(15, 23, 42, 0.07);
    border-radius: 0.5rem;
    background-color: #ffffff;
}

.system-health-check strong,
.system-health-info-item strong {
    display: block;
    color: #0f172a;
    line-height: 1.25;
}

.system-health-check small {
    display: block;
    margin-top: 0.25rem;
    color: #64748b;
    overflow-wrap: anywhere;
}

.system-health-check .badge {
    max-width: 240px;
    white-space: normal;
    text-align: right;
}

.system-health-info-item {
    display: grid;
    gap: 0.3rem;
    padding: 0.85rem;
    border: 1px solid rgba(15, 23, 42, 0.07);
    border-radius: 0.5rem;
    background-color: #f8fafc;
}

.system-health-info-item span {
    color: #64748b;
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
}

.admin-kpi-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.admin-kpi-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.1);
}

.admin-dashboard-quick-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.admin-dashboard-health {
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(247, 250, 252, 0.96));
}

.admin-health-list,
.admin-attention-list,
.admin-recent-list {
    display: grid;
    gap: 0.9rem;
}

.admin-health-item,
.admin-attention-item,
.admin-recent-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.95rem 1rem;
    border-radius: 1rem;
    border: 1px solid rgba(15, 23, 42, 0.06);
    background-color: #ffffff;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.admin-health-item {
    background-color: #f8fafc;
}

.admin-health-item strong {
    font-size: 1.05rem;
}

.admin-attention-item:hover,
.admin-recent-item:hover,
.admin-shortcut-card:hover,
.admin-media-mini-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(15, 23, 42, 0.08);
}

.admin-trend-chart {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 1rem;
    align-items: end;
    min-height: 240px;
}

.admin-apex-chart {
    min-height: 280px;
}

.admin-trend-month {
    display: grid;
    gap: 0.65rem;
}

.admin-trend-bars {
    display: flex;
    align-items: end;
    justify-content: center;
    gap: 0.45rem;
    min-height: 180px;
    padding: 0.75rem 0.5rem;
    border-radius: 1rem;
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.8), rgba(241, 245, 249, 0.95));
}

.admin-trend-bar {
    width: 18px;
    min-height: 8px;
    border-radius: 999px;
}

.admin-trend-bar-pages {
    background: linear-gradient(180deg, #0ea5e9, #0284c7);
}

.admin-trend-bar-news {
    background: linear-gradient(180deg, #8b5cf6, #7c3aed);
}

.admin-trend-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1rem;
    color: #52606d;
}

.admin-media-mini-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.admin-media-mini-card {
    display: grid;
    gap: 0.65rem;
    padding: 0.85rem;
    border-radius: 1rem;
    border: 1px solid rgba(15, 23, 42, 0.06);
    background-color: #ffffff;
}

.admin-media-mini-card img {
    width: 100%;
    height: 126px;
    object-fit: cover;
    border-radius: 0.9rem;
}

.admin-shortcuts-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.admin-shortcut-card {
    display: grid;
    gap: 0.5rem;
    padding: 1.1rem;
    border-radius: 1rem;
    border: 1px solid rgba(15, 23, 42, 0.06);
    background: radial-gradient(circle at top right, rgba(139, 92, 246, 0.08), transparent 32%), #ffffff;
}

.admin-shortcut-card i {
    font-size: 1.3rem;
    color: #7c3aed;
}

.admin-theme-content .card-header .text-muted,
.admin-theme-content .card-body .text-muted {
    line-height: 1.5;
}

.admin-theme-content .media-card {
    padding: 1rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
}

.admin-theme-content .media-card img {
    border-radius: 0.85rem;
}

.admin-theme-content .media-card form {
    margin-top: 0.5rem;
}

.auth-card {
    max-width: 34rem;
    margin: 4rem auto;
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.08);
}

.editor-header {
    display: grid;
    gap: 0.75rem;
}

.editor-upload-box .form-control,
.editor-video-form .form-control {
    width: 100%;
}

.media-library-meta {
    height: 100%;
    padding: 0.9rem 1rem;
    border-radius: 1rem;
    background: linear-gradient(135deg, rgba(0, 95, 115, 0.08), rgba(0, 95, 115, 0.02));
    border: 1px solid rgba(0, 95, 115, 0.08);
}

.media-library-meta strong {
    font-size: 1.75rem;
    line-height: 1;
    color: var(--color-primary);
}

.media-library-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.media-library-pagination-controls {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.media-library-page-size {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: #52606d;
}

.media-library-page-size .form-select {
    width: auto;
    min-width: 86px;
}

.admin-list-pagination .btn.disabled {
    pointer-events: none;
    opacity: 0.55;
}

.admin-list-pagination .media-library-page-indicator {
    font-weight: 800;
    color: #475569;
}

.admin-list-page-size-form {
    margin: 0;
}

.municipal-bulletin-admin-cover {
    width: 58px;
    height: 78px;
    flex: 0 0 auto;
    border-radius: 0.75rem;
    object-fit: cover;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12);
}

.municipal-bulletin-admin-table td {
    vertical-align: middle;
}

.municipal-bulletins-section {
    background: #ffffff;
}

.municipal-bulletin-grid {
    row-gap: 30px;
}

.municipal-bulletin-archive {
    display: grid;
    gap: 46px;
}

.municipal-bulletin-year-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 22px;
    padding-bottom: 14px;
    border-bottom: 1px solid #eceef4;
}

.municipal-bulletin-year-heading span {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #1f2235;
    font-size: 34px;
    font-weight: 900;
    line-height: 1;
}

.municipal-bulletin-year-heading span::before {
    content: "";
    width: 42px;
    height: 4px;
    border-radius: 999px;
    background: var(--theme-color, #007AC2);
}

.municipal-bulletin-year-heading strong {
    padding: 9px 14px;
    border-radius: 999px;
    color: var(--theme-color, #007AC2);
    background: rgba(0, 122, 194, 0.08);
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
}

.municipal-bulletin-empty {
    text-align: center;
}

.municipal-bulletin-empty h3 {
    margin-bottom: 8px;
    color: #1f2235;
}

.municipal-bulletin-card {
    height: 100%;
    overflow: hidden;
    border: 1px solid #eceef4;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 20px 50px rgba(15, 22, 41, 0.08);
    transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.municipal-bulletin-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 28px 70px rgba(15, 22, 41, 0.13);
}

.municipal-bulletin-cover {
    position: relative;
    height: 310px;
    overflow: hidden;
    background: #f3f4f8;
}

.municipal-bulletin-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.municipal-bulletin-card:hover .municipal-bulletin-cover img {
    transform: scale(1.04);
}

.municipal-bulletin-cover span {
    position: absolute;
    right: 22px;
    bottom: 22px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: 999px;
    color: #ffffff;
    background: var(--theme-color, #007AC2);
    font-weight: 800;
}

.municipal-bulletin-content {
    padding: 30px;
}

.municipal-bulletin-content .category {
    margin-bottom: 12px;
    color: var(--theme-color, #007AC2);
    font-weight: 900;
    text-transform: uppercase;
}

.municipal-bulletin-content .category i {
    margin-right: 8px;
}

.municipal-bulletin-content h3 {
    margin-bottom: 14px;
    color: #1f2235;
    font-size: 26px;
    line-height: 1.18;
}

.municipal-bulletin-content h3 a:hover {
    color: var(--theme-color, #007AC2);
}

.municipal-bulletin-content p {
    margin-bottom: 18px;
    color: #6f7487;
    line-height: 1.7;
}

.municipal-bulletin-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 22px;
    color: #6f7487;
    font-weight: 700;
}

.municipal-bulletin-meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.municipal-bulletin-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.municipal-bulletin-actions .theme-btn,
.municipal-bulletin-detail-info .theme-btn,
.municipal-bulletin-reader-help a {
    padding: 14px 24px;
}

.municipal-bulletin-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.municipal-bulletin-detail {
    background: #ffffff;
}

.municipal-bulletin-detail-sidebar {
    position: sticky;
    top: 120px;
    overflow: hidden;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 22px 60px rgba(15, 22, 41, 0.1);
}

.municipal-bulletin-detail-sidebar > img {
    width: 100%;
    height: 420px;
    object-fit: cover;
    background: #f3f4f8;
}

.municipal-bulletin-detail-info {
    padding: 30px;
}

.municipal-bulletin-detail-info h2 {
    margin: 16px 0 14px;
    color: #1f2235;
    font-size: 32px;
    line-height: 1.15;
}

.municipal-bulletin-detail-info p {
    color: #6f7487;
    line-height: 1.7;
}

.municipal-bulletin-detail-info ul {
    display: grid;
    gap: 10px;
    margin: 22px 0;
}

.municipal-bulletin-detail-info li {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #1f2235;
    font-weight: 800;
}

.municipal-bulletin-detail-info li i {
    color: var(--theme-color, #007AC2);
}

.municipal-bulletin-reader {
    overflow: hidden;
    border: 1px solid #eceef4;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 22px 60px rgba(15, 22, 41, 0.08);
}

.municipal-bulletin-reader-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 24px 28px;
    border-bottom: 1px solid #eceef4;
}

.municipal-bulletin-reader-header h3 {
    margin: 0 0 4px;
    color: #1f2235;
    font-size: 26px;
}

.municipal-bulletin-reader-header p {
    margin: 0;
    color: #6f7487;
}

.municipal-bulletin-reader-header a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--theme-color, #007AC2);
    font-weight: 900;
}

.municipal-bulletin-reader iframe {
    display: block;
    width: 100%;
    min-height: 760px;
    border: 0;
    background: #f3f4f8;
}

.municipal-bulletin-reader-help {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    padding: 20px 28px;
    border-top: 1px solid #eceef4;
    background: #fbfbfd;
}

.municipal-bulletin-reader-help i {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 50%;
    color: var(--theme-color, #007AC2);
    background: rgba(0, 122, 194, 0.08);
}

.municipal-bulletin-reader-help strong {
    display: block;
    color: #1f2235;
    font-weight: 900;
}

.municipal-bulletin-reader-help span {
    color: #6f7487;
}

.municipal-bulletin-reader-help a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    color: #ffffff;
    background: var(--theme-color, #007AC2);
    font-weight: 900;
}

@media (max-width: 991px) {
    .municipal-bulletin-detail-sidebar {
        position: static;
        margin-bottom: 30px;
    }

    .municipal-bulletin-reader iframe {
        min-height: 620px;
    }
}

@media (max-width: 575px) {
    .municipal-bulletin-content,
    .municipal-bulletin-detail-info,
    .municipal-bulletin-reader-header {
        padding: 24px 20px;
    }

    .municipal-bulletin-cover {
        height: 260px;
    }

    .municipal-bulletin-detail-sidebar > img {
        height: 320px;
    }

    .municipal-bulletin-reader-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .municipal-bulletin-reader iframe {
        min-height: 520px;
    }

    .municipal-bulletin-year-heading,
    .municipal-bulletin-reader-help {
        align-items: flex-start;
        grid-template-columns: 1fr;
        flex-direction: column;
    }

    .municipal-bulletin-year-heading span {
        font-size: 28px;
    }
}

.home-funfact-section {
    isolation: isolate;
}

.home-funfact-section .pattern-layer {
    inset: 0;
    height: 100%;
    z-index: 0;
    pointer-events: none;
}

.home-funfact-section > .auto-container {
    position: relative;
    z-index: 1;
}

.bulletin-kiosk { padding: 32px 0; background: #fff; }
.bulletin-kiosk-card { display: grid; grid-template-columns: 190px minmax(0, 1fr) auto; align-items: center; gap: 32px; padding: 16px 32px; border: 1px solid #e4edf4; border-left: 4px solid #007ac2; border-radius: 8px; background: linear-gradient(90deg, #edf5fb 0, #f6f9fc 240px, #fff 55%); }
.bulletin-kiosk-cover { display: block; position: relative; width: 176px; margin: 0 auto; transition: transform 240ms ease; }
.bulletin-kiosk-cover img { display: block; width: 100%; height: 240px; object-fit: contain; filter: drop-shadow(0 8px 10px rgb(15 48 73 / 20%)); }
.bulletin-kiosk-cover-placeholder { height: 240px; display: flex; flex-direction: column; justify-content: center; gap: 12px; text-align: center; background: #007ac2; color: #fff; font-size: 14px; line-height: 1.4; }
.bulletin-kiosk-cover-placeholder i { font-size: 30px; }
.bulletin-kiosk-cover:hover, .bulletin-kiosk-cover:focus-visible { transform: translateY(-3px); }
.bulletin-kiosk-content { min-width: 0; }
.bulletin-kiosk-badge { display: inline-block; color: #007ac2; font-size: 12px; line-height: 18px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.bulletin-kiosk-content h2 { margin: 10px 0 14px; font-size: 30px; line-height: 1.2; font-weight: 700; color: #1f2235; }
.bulletin-kiosk-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; color: #576575; font-size: 12px; line-height: 1.5; }
.bulletin-kiosk-meta span + span { padding-left: 12px; border-left: 1px solid #d4e1eb; }
.bulletin-kiosk-content p { margin: 8px 0 0; color: #626a72; font-size: 14px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.bulletin-kiosk-actions { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.bulletin-kiosk-read { display: inline-flex; align-items: center; justify-content: center; gap: 16px; padding: 13px 20px; border-radius: 5px; background: #007ac2; color: #fff; font-size: 14px; line-height: 1.5; font-weight: 700; transition: background-color 200ms ease; }
.bulletin-kiosk-read:hover { background: #0073b4; color: #fff; }
.bulletin-kiosk-read span { transition: transform 200ms ease; }
.bulletin-kiosk-read:hover span { transform: translateX(3px); }
.bulletin-kiosk-archives { color: #536271; font-size: 12px; line-height: 1.5; text-decoration: underline; text-underline-offset: 3px; }
.bulletin-kiosk a:focus-visible { outline: 3px solid #007ac2; outline-offset: 5px; }
@media (max-width: 991px) {
    .bulletin-kiosk-card { gap: 16px 24px; padding: 20px; grid-template-columns: 170px minmax(0, 1fr); }
    .bulletin-kiosk-cover { width: 160px; grid-row: 1 / span 2; }
    .bulletin-kiosk-cover img, .bulletin-kiosk-cover-placeholder { height: 220px; }
    .bulletin-kiosk-actions { grid-column: 2; align-items: flex-start; flex-direction: row; flex-wrap: wrap; }
    .bulletin-kiosk-archives { align-self: center; }
}
@media (max-width: 575px) {
    .bulletin-kiosk { padding: 24px 0; }
    .bulletin-kiosk-card { padding: 16px; gap: 20px 16px; grid-template-columns: 112px minmax(0, 1fr); background: #f6f9fc; }
    .bulletin-kiosk-cover { width: 112px; grid-row: auto; }
    .bulletin-kiosk-cover img, .bulletin-kiosk-cover-placeholder { height: 158px; }
    .bulletin-kiosk-content h2 { font-size: 22px; }
    .bulletin-kiosk-content p { font-size: 12px; }
    .bulletin-kiosk-actions { grid-column: 1 / -1; align-items: center; }
    .bulletin-kiosk-read { width: 100%; }
    .bulletin-kiosk-archives { margin: 0 auto; }
}
@media (prefers-reduced-motion: reduce) {
    .bulletin-kiosk-cover, .bulletin-kiosk-read, .bulletin-kiosk-read span { transition: none; }
    .bulletin-kiosk-cover:hover, .bulletin-kiosk-cover:focus-visible, .bulletin-kiosk-read:hover span { transform: none; }
}

.home-information-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 24px;
    align-items: stretch;
}
.home-information-grid > :only-child { grid-column: 1 / -1; }
.home-information-grid .bulletin-kiosk-card {
    grid-template-columns: 184px minmax(0, 1fr);
    gap: 16px 24px;
    padding: 24px;
    align-content: center;
    border: 0;
    border-radius: 0;
    background: #fff;
}
.home-information-grid .bulletin-kiosk-cover {
    width: 184px;
    grid-row: 1 / span 2;
    isolation: isolate;
    transform: perspective(900px) rotateY(-7deg);
    transform-origin: left center;
    transition: transform 280ms ease;
}
.home-information-grid .bulletin-kiosk-cover::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 3px -5px 3px 5px;
    border: 1px solid #dce1e5;
    border-radius: 1px 3px 3px 1px;
    background: repeating-linear-gradient(90deg, #fff 0 1px, #e6e9ec 1px 2px);
    box-shadow: 8px 14px 24px rgb(20 37 54 / 17%);
}
.home-information-grid .bulletin-kiosk-cover::after {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 10px;
    background: linear-gradient(90deg, rgb(0 0 0 / 12%), rgb(255 255 255 / 14%) 45%, transparent);
    pointer-events: none;
}
.home-information-grid .bulletin-kiosk-cover:hover,
.home-information-grid .bulletin-kiosk-cover:focus-visible { transform: perspective(900px) rotateY(0) translateY(-4px); }
.home-information-grid .bulletin-kiosk-cover img,
.home-information-grid .bulletin-kiosk-cover-placeholder { height: 254px; }
.home-information-grid .bulletin-kiosk-content h2 { font-size: 26px; }
.home-information-grid .bulletin-kiosk-actions { grid-column: 2; align-items: flex-start; }
.home-information-grid .bulletin-kiosk-read { padding: 12px 14px; gap: 8px; }
.home-disruptions-panel {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 24px;
    border: 0;
    border-radius: 16px;
    background: linear-gradient(125deg, #005e96, #007ac2);
    box-shadow: 0 10px 26px rgb(0 94 150 / 12%);
}
.home-disruptions-panel::before { content: ''; position: absolute; z-index: -1; width: 190px; height: 190px; right: -85px; top: -100px; border: 28px solid rgb(255 255 255 / 7%); border-radius: 50%; pointer-events: none; }
.home-disruptions-heading { position: relative; padding-right: 52px; }
.home-disruptions-heading .bulletin-kiosk-badge { color: #d1ecff; font-size: 11px; }
.home-disruptions-symbol { position: absolute; right: 0; top: 4px; display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgb(255 255 255 / 25%); border-radius: 12px; color: #fff; font-size: 20px; }
.home-disruptions-heading h2 { margin: 8px 0 18px; color: #fff; font-size: 26px; line-height: 1.2; font-weight: 700; }
.home-disruptions-list { margin: 0 0 16px; max-height: 244px; overflow-y: auto; }
.home-disruptions-list li + li { margin-top: 8px; }
.home-disruptions-list a { display: flex; align-items: center; gap: 16px; padding: 14px 16px; color: #1f2235; border-radius: 8px; background: #fff; transition: background-color 180ms ease; }
.home-disruptions-labels { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.home-disruptions-status { display: inline-flex; align-items: center; gap: 5px; color: #5b4b19; background: #fff2c8; padding: 2px 7px; border-radius: 4px; font-size: 10px; line-height: 1.4; font-weight: 700; }
.home-disruptions-item-content { flex: 1; min-width: 0; }
.home-disruptions-type { display: block; color: #0073b4; font-size: 11px; line-height: 1.4; font-weight: 700; }
.home-disruptions-list h3 { margin: 4px 0; font-size: 16px; line-height: 1.4; font-weight: 700; overflow-wrap: anywhere; }
.home-disruptions-location { color: #596875; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.home-disruptions-arrow { display: grid; place-items: center; flex: 0 0 30px; height: 30px; border-radius: 50%; background: #edf5fb; color: #007ac2; font-size: 20px; }
.home-disruptions-list a:hover { background: #eaf5fc; }
.home-disruptions-all { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 12px; border-top: 1px solid rgb(255 255 255 / 25%); color: #fff; font-size: 14px; font-weight: 700; }
.home-disruptions-all:hover { color: #fff; text-decoration: underline; }
.home-disruptions-panel a:focus-visible { outline: 2px solid #ffd252; outline-offset: -3px; }
.home-disruptions-empty { padding: 12px 0 24px; color: #e1f0fa; font-size: 14px; }
@media (max-width: 1100px) {
    .home-information-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 16px; }
    .home-information-grid .bulletin-kiosk-card { grid-template-columns: 144px minmax(0, 1fr); gap: 16px; padding: 20px; }
    .home-information-grid .bulletin-kiosk-cover { width: 144px; }
    .home-information-grid .bulletin-kiosk-cover img,
    .home-information-grid .bulletin-kiosk-cover-placeholder { height: 200px; }
}
@media (max-width: 991px) {
    .home-information-grid { grid-template-columns: minmax(0, 1fr); }
    .home-information-grid .bulletin-kiosk-card { grid-template-columns: 184px minmax(0, 1fr); }
    .home-information-grid .bulletin-kiosk-cover { width: 184px; }
    .home-information-grid .bulletin-kiosk-cover img,
    .home-information-grid .bulletin-kiosk-cover-placeholder { height: 254px; }
}
@media (max-width: 575px) {
    .home-information-grid .bulletin-kiosk-card { grid-template-columns: 124px minmax(0, 1fr); padding: 16px; }
    .home-information-grid .bulletin-kiosk-cover { width: 124px; grid-row: auto; }
    .home-information-grid .bulletin-kiosk-cover img,
    .home-information-grid .bulletin-kiosk-cover-placeholder { height: 174px; }
    .home-information-grid .bulletin-kiosk-content h2,
    .home-disruptions-heading h2 { font-size: 22px; }
    .home-information-grid .bulletin-kiosk-actions { grid-column: 1 / -1; }
    .home-disruptions-panel { padding: 20px; }
}

@media (prefers-reduced-motion: reduce) {
    .home-information-grid .bulletin-kiosk-cover,
    .home-information-grid .bulletin-kiosk-cover:hover,
    .home-information-grid .bulletin-kiosk-cover:focus-visible { transition: none; transform: none; }
}

.media-library-page-indicator {
    color: #52606d;
    font-size: 0.92rem;
}

.media-bulk-toolbar {
    border: 1px solid rgba(0, 95, 115, 0.12);
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.05);
}

.media-bulk-toolbar-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.media-bulk-toolbar-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.media-bulk-toolbar-actions form {
    margin: 0;
}

.file-manager-container.media-manager-layout {
    display: grid;
    grid-template-columns: minmax(280px, 320px) minmax(0, 1fr) minmax(280px, 320px);
    min-height: 760px;
    overflow: hidden;
    margin: 0;
    width: 100%;
}

.file-manager-container.media-manager-layout .file-manager-navigation,
.file-manager-container.media-manager-layout .file-manager-folders,
.file-manager-container.media-manager-layout .selected-file-details {
    background-color: #ffffff;
    min-width: 0;
    width: auto;
    height: auto;
}

.file-manager-container.media-manager-layout .file-manager-navigation > div,
.file-manager-container.media-manager-layout .file-manager-folders > div,
.file-manager-container.media-manager-layout .selected-file-details > div {
    height: 100%;
    overflow: auto;
}

.media-manager-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    align-content: start;
    width: 100%;
}

.media-manager-grid.is-list-view {
    grid-template-columns: 1fr;
}

.media-card-trigger {
    display: grid;
    gap: 0.75rem;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
    color: inherit;
}

.media-nav-button {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
}

.media-card.is-selected {
    border-color: rgba(0, 95, 115, 0.35);
    box-shadow: 0 0 0 2px rgba(0, 95, 115, 0.12), 0 18px 36px rgba(15, 23, 42, 0.08);
}

.media-manager-grid.is-list-view .media-card-trigger {
    grid-template-columns: 120px minmax(0, 1fr);
    align-items: center;
}

.media-manager-grid.is-list-view .media-card-trigger img {
    height: 90px;
    border-radius: 0.85rem;
}

    .media-manager-grid.is-list-view .media-card-head,
    .media-manager-grid.is-list-view .media-card-alt,
    .media-manager-grid.is-list-view .muted-text {
        grid-column: 2;
    }

.media-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.media-card-name {
    display: block;
    min-width: 0;
}

.media-card-badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.35rem;
}

.media-card-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-top: 0.25rem;
}

.media-card-actions .media-card-icon-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    padding: 0;
    border-radius: 999px;
}

.media-card-actions .media-card-icon-button i {
    font-size: 1rem;
}

.media-card-usage-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-left: auto;
    padding: 0.35rem 0.6rem;
    border-radius: 999px;
    background-color: #eef2f7;
    color: #334155;
    font-size: 0.82rem;
    font-weight: 600;
}

.file-manager-container.media-manager-layout .file-manager-folders > div {
    container-type: inline-size;
}

.file-manager-container.document-manager-layout {
    display: grid;
    grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
    min-height: 680px;
    overflow: hidden;
    margin: 0;
    width: 100%;
}

.file-manager-container.document-manager-layout .file-manager-navigation,
.file-manager-container.document-manager-layout .file-manager-folders {
    background-color: #ffffff;
    min-width: 0;
    width: auto;
    height: auto;
}

.file-manager-container.document-manager-layout .file-manager-navigation > div,
.file-manager-container.document-manager-layout .file-manager-folders > div {
    height: 100%;
    overflow: auto;
}

.document-description {
    max-width: 36rem;
    white-space: normal;
    overflow-wrap: anywhere;
}

.document-table {
    min-width: 860px;
}

.document-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.document-stat-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid rgba(132, 90, 223, 0.14);
    border-radius: 1rem;
    background: #ffffff;
    color: #475569;
}

.document-stat-card strong {
    color: #0f172a;
    font-size: 1.4rem;
}

.document-stat-card.is-active {
    border-color: #845adf;
    background: rgba(132, 90, 223, 0.08);
    color: #845adf;
}

.document-bulk-toolbar-content,
.document-bulk-toolbar-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.document-bulk-toolbar-actions {
    flex-wrap: wrap;
}

.document-select-cell {
    width: 3rem;
    text-align: center !important;
}

.document-table th,
.document-table td,
.document-category-table th,
.document-category-table td {
    white-space: normal;
}

.document-title-cell {
    min-width: 18rem;
    max-width: 38rem;
}

.document-title-cell > .d-flex {
    min-width: 0;
}

.document-title-cell > .d-flex > div {
    min-width: 0;
}

.document-file-name,
.document-title-cell .fw-semibold {
    overflow-wrap: anywhere;
    white-space: normal;
}

.document-actions-cell {
    min-width: 15rem;
}

.document-trace-cell {
    min-width: 9rem;
    color: #64748b;
    font-size: 0.78rem;
}

.document-trace-cell span {
    display: block;
    line-height: 1.45;
}

.document-pdf-preview-body {
    min-height: 72vh;
    padding: 0;
    background-color: #f8fafc;
}

.document-pdf-preview-body iframe {
    display: block;
    width: 100%;
    height: 72vh;
    border: 0;
}

@container (max-width: 1190px) {
    .media-manager-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

@container (max-width: 1010px) {
    .media-manager-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@container (max-width: 830px) {
    .media-manager-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@container (max-width: 650px) {
    .media-manager-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@container (max-width: 420px) {
    .media-manager-grid {
        grid-template-columns: 1fr;
    }
}

.file-manager-container.media-manager-layout .files-main-nav {
    max-height: none;
}

.file-manager-container.media-manager-layout .selected-file-details {
    width: auto;
}

.media-manager-summary {
    display: grid;
    gap: 1rem;
}

.media-detail-stat {
    padding: 0.9rem 1rem;
    border-radius: 1rem;
    background-color: #f8fafc;
    border: 1px solid rgba(15, 23, 42, 0.08);
}

.file-details img#media-detail-image {
    width: 100%;
    height: auto;
    max-width: 220px;
    max-height: 220px;
    object-fit: cover;
    cursor: zoom-in;
}

.file-details {
    max-width: 100%;
}

.file-details strong,
.media-card strong,
.media-card span {
    overflow-wrap: anywhere;
}

.media-detail-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.media-url-box {
    margin-top: 0.45rem;
    padding: 0.85rem 1rem;
    border-radius: 1rem;
    background-color: #f8fafc;
    border: 1px dashed rgba(15, 23, 42, 0.14);
    color: #475569;
    font-size: 0.92rem;
    word-break: break-all;
}

.media-linked-news-list {
    display: grid;
    gap: 0.6rem;
}

.media-linked-news-list li {
    padding: 0.7rem 0.85rem;
    border-radius: 0.9rem;
    background-color: #f8fafc;
    border: 1px solid rgba(15, 23, 42, 0.06);
}

.media-linked-news-list a {
    color: var(--color-primary);
    font-weight: 600;
}

.media-view-toggle .btn {
    white-space: nowrap;
}

.media-preview-modal-body {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background:
        radial-gradient(circle at top right, rgba(0, 95, 115, 0.08), transparent 30%),
        #f8fafc;
}

.media-preview-modal-body img {
    width: auto;
    max-width: 100%;
    max-height: 75vh;
    border-radius: 1rem;
    box-shadow: 0 18px 36px rgba(15, 23, 42, 0.16);
}

#editor-media-modal .modal-content {
    border-radius: 1.25rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.18);
}

#editor-media-modal .modal-header,
#editor-media-modal .modal-body,
#editor-media-modal .modal-footer {
    padding: 1.25rem;
}

#editor-media-modal .nav-pills .nav-link {
    border-radius: 999px;
    padding: 0.65rem 1rem;
}

@media (max-width: 1399px) {
    .admin-dashboard-kpis {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .system-health-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .file-manager-container.media-manager-layout {
        grid-template-columns: minmax(260px, 280px) minmax(0, 1fr);
    }

    .file-manager-container.media-manager-layout .selected-file-details {
        grid-column: 1 / -1;
        border-top: 1px solid rgba(15, 23, 42, 0.08);
    }
}

@media (max-width: 991px) {
    .admin-dashboard-head {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-dashboard-actions {
        justify-content: flex-start;
    }

    .admin-dashboard-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .system-health-header {
        align-items: stretch;
        flex-direction: column;
    }

    .system-health-summary {
        grid-template-columns: 1fr;
    }

    .file-manager-container.media-manager-layout,
    .file-manager-container.document-manager-layout {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .file-manager-container.media-manager-layout .file-manager-navigation,
    .file-manager-container.media-manager-layout .file-manager-folders,
    .file-manager-container.media-manager-layout .selected-file-details,
    .file-manager-container.document-manager-layout .file-manager-navigation,
    .file-manager-container.document-manager-layout .file-manager-folders {
        border: 0 !important;
        border-bottom: 1px solid rgba(15, 23, 42, 0.08) !important;
    }

    .file-manager-container.media-manager-layout .file-manager-navigation > div,
    .file-manager-container.media-manager-layout .file-manager-folders > div,
    .file-manager-container.media-manager-layout .selected-file-details > div,
    .file-manager-container.document-manager-layout .file-manager-navigation > div,
    .file-manager-container.document-manager-layout .file-manager-folders > div {
        overflow: visible;
    }

    .media-detail-actions {
        grid-template-columns: 1fr;
    }

    .media-manager-grid.is-list-view .media-card-trigger {
        grid-template-columns: 1fr;
    }

    .media-manager-grid.is-list-view .media-card-head,
    .media-manager-grid.is-list-view .media-card-alt,
    .media-manager-grid.is-list-view .muted-text {
        grid-column: auto;
    }

    .media-bulk-toolbar-content,
    .media-bulk-toolbar-actions,
    .document-bulk-toolbar-content,
    .document-bulk-toolbar-actions,
    .media-library-pagination,
    .media-library-pagination-controls,
    .media-library-page-size {
        flex-direction: column;
        align-items: stretch;
    }

    .document-stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-dashboard-quick-actions,
    .admin-health-item,
    .admin-attention-item,
    .admin-recent-item {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-trend-chart,
    .admin-media-mini-grid,
    .admin-shortcuts-grid {
        grid-template-columns: 1fr;
    }

    .admin-dashboard-kpi {
        min-height: 96px;
    }

    .agenda-calendar-grid {
        grid-template-columns: 1fr;
    }

    .agenda-calendar-weekdays {
        display: none;
    }

    .agenda-calendar-day {
        min-height: auto;
    }
}

@media (max-width: 575px) {
    .admin-dashboard-head {
        padding: 1rem;
    }

    .admin-dashboard-head h1 {
        font-size: 1.35rem;
    }

    .admin-dashboard-actions .btn {
        width: 100%;
    }

    .admin-dashboard-kpis {
        grid-template-columns: 1fr;
    }

    .admin-dashboard-kpi {
        min-height: 84px;
    }

    .admin-dashboard-list-item {
        align-items: flex-start;
    }

    .admin-dashboard-list-item strong {
        white-space: normal;
    }

    .system-health-header {
        padding: 1rem;
    }

    .system-health-header .btn {
        width: 100%;
    }

    .system-health-check {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .system-health-check .badge {
        grid-column: 1 / -1;
        max-width: none;
        text-align: left;
    }
}

#editor-media-modal .modal-header {
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

#editor-media-modal .modal-footer {
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.public-theme-shell .theme-alert-bar {
    padding: 16px 0 0;
}

.public-page-content {
    min-height: 40vh;
    background: #ffffff;
}

.public-static-page-content .inner-box {
    background: #ffffff;
}

.public-static-page-meta {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    color: #6b7280;
    font-size: 0.95rem;
}

.public-static-page-meta i {
    color: #007AC2;
    margin-right: 0.4rem;
}

.public-static-page-body {
    color: #4b5563;
}

.public-static-page-body > *:last-child {
    margin-bottom: 0;
}

.public-static-page-body h1,
.public-static-page-body h2,
.public-static-page-body h3,
.public-static-page-body h4,
.public-static-page-body h5,
.public-static-page-body h6 {
    color: #1f2937;
    margin-top: 1.5rem;
    margin-bottom: 0.9rem;
}

.public-static-page-body p,
.public-static-page-body ul,
.public-static-page-body ol,
.public-static-page-body blockquote,
.public-static-page-body pre,
.public-static-page-body table {
    margin-bottom: 1rem;
}

.public-static-page-body p:empty,
.public-static-page-body div:empty {
    display: none;
}

.public-static-page-body img,
.public-static-page-body video,
.public-static-page-body iframe {
    max-width: 100%;
    height: auto;
    border-radius: 0.75rem;
}

.public-static-page-body ul,
.public-static-page-body ol {
    padding-left: 1.25rem;
}

.public-static-page-body blockquote {
    padding: 1rem 1.25rem;
    border-left: 4px solid #007AC2;
    background: #f8fafc;
    color: #334155;
}

.public-static-page-body pre {
    padding: 1rem 1.25rem;
    border-radius: 0.75rem;
    background: #0f172a;
    color: #e2e8f0;
    overflow-x: auto;
}

.public-static-page-body table {
    width: 100%;
    border-collapse: collapse;
}

.public-static-page-body table th,
.public-static-page-body table td {
    padding: 0.75rem;
    border: 1px solid rgba(148, 163, 184, 0.35);
}

.portal-title-section {
    position: relative;
    min-height: 430px;
    display: flex;
    align-items: flex-end;
    padding: 124px 0 24px;
    background-position: center;
    background-size: cover;
    overflow: hidden;
}

.portal-title-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(12, 31, 55, 0.9) 0%, rgba(12, 31, 55, 0.72) 52%, rgba(12, 31, 55, 0.38) 100%);
}

.portal-title-section::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 8px;
    background: linear-gradient(90deg, #007ac2 0%, #ffd252 56%, #76b82a 100%);
}

.portal-title-section .auto-container {
    position: relative;
    z-index: 1;
    width: 100%;
}

.portal-title-content {
    max-width: 860px;
    color: #ffffff;
}

.portal-title-eyebrow {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
    margin-bottom: 0.95rem;
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.84rem;
    font-weight: 800;
    text-transform: uppercase;
}

.portal-title-eyebrow span,
.portal-title-eyebrow a {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0.25rem 0.75rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    color: #ffffff;
}

.portal-title-eyebrow a {
    text-transform: none;
    text-decoration: none;
}

.portal-title-content h1 {
    max-width: 820px;
    margin-bottom: 0.95rem;
    color: #ffffff;
    font-size: 56px;
    line-height: 1.04;
    font-weight: 800;
}

.portal-title-content p {
    max-width: 680px;
    margin-bottom: 1.25rem;
    color: rgba(255, 255, 255, 0.9);
    font-size: 1.08rem;
    line-height: 1.65;
}

.portal-title-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.65rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.portal-title-breadcrumb li {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    color: rgba(255, 255, 255, 0.78);
    font-weight: 700;
}

.portal-title-breadcrumb li + li::before {
    content: "/";
    color: rgba(255, 255, 255, 0.48);
}

.portal-title-breadcrumb a {
    color: #ffffff;
    text-decoration: none;
}

.public-title-section {
    position: relative;
    min-height: 430px;
    display: flex;
    align-items: flex-end;
    padding: 124px 0 24px;
    background-position: center;
    background-size: cover;
    overflow: hidden;
}

.public-title-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(12, 31, 55, 0.9) 0%, rgba(12, 31, 55, 0.7) 56%, rgba(12, 31, 55, 0.36) 100%);
}

.public-title-section::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 6px;
    background: linear-gradient(90deg, #007ac2 0%, #ffd252 56%, #76b82a 100%);
}

.public-title-section .auto-container {
    position: relative;
    z-index: 1;
    width: 100%;
}

.public-title-content {
    max-width: 840px;
    color: #ffffff;
}

.public-title-eyebrow {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
    margin-bottom: 0.9rem;
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.8rem;
    font-weight: 800;
    text-transform: uppercase;
}

.public-title-eyebrow span,
.public-title-eyebrow a {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0.25rem 0.75rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    color: #ffffff;
}

.public-title-eyebrow a {
    text-transform: none;
    text-decoration: none;
}

.public-title-content h1 {
    max-width: 820px;
    margin-bottom: 0.9rem;
    color: #ffffff;
    font-size: 48px;
    line-height: 1.06;
    font-weight: 800;
}

.public-title-content p {
    max-width: 680px;
    margin-bottom: 1.1rem;
    color: rgba(255, 255, 255, 0.9);
    font-size: 1rem;
    line-height: 1.6;
}

.public-title-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.65rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.public-title-breadcrumb li {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    color: rgba(255, 255, 255, 0.78);
    font-weight: 700;
}

.public-title-breadcrumb li + li::before {
    content: "/";
    color: rgba(255, 255, 255, 0.48);
}

.public-title-breadcrumb a {
    color: #ffffff;
    text-decoration: none;
}

.standard-title-section + .sidebar-page-container.sec-pad-2 {
    padding-top: 62px;
}

.portal-page-section.sec-pad-2 {
    padding-top: 42px;
}

.portal-page-section .portal-page-content {
    background: #ffffff;
    border: 1px solid rgba(0, 122, 194, 0.12);
    border-radius: 8px;
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.08);
    overflow: hidden;
}

.portal-page-section .portal-page-content .upper-box {
    margin-bottom: 0;
    padding: 2rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
}

.portal-page-section .portal-page-content .text-box {
    padding: 2rem;
}

.portal-page-section .portal-page-content .title-box {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.portal-page-section .portal-page-content .title-box .icon-box {
    flex: 0 0 auto;
}

.portal-page-section .portal-page-content .title-box h2 {
    margin-bottom: 0.55rem;
    color: #1f2937;
    font-size: 32px;
    line-height: 1.16;
}

.portal-content-kicker {
    display: inline-block;
    margin-bottom: 0.35rem;
    color: #007ac2;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.portal-content-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 1rem;
}

.portal-content-meta span {
    position: relative;
    margin-bottom: 0;
    color: #6b7280;
    font-weight: 600;
}

.portal-content-meta span + span::before {
    content: "";
    position: absolute;
    left: -0.55rem;
    top: 0.58em;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #ffd252;
}

.portal-content-meta a {
    color: #007ac2;
    font-weight: 800;
}

.portal-children-block {
    padding: 0 2rem 2rem;
}

.portal-children-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.4rem;
    padding-top: 0.25rem;
}

.portal-children-heading span {
    display: inline-block;
    margin-bottom: 0.3rem;
    color: #007ac2;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.portal-children-heading h2 {
    margin: 0;
    color: #1f2937;
    font-size: 30px;
    line-height: 1.18;
}

.portal-children-heading strong {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0.25rem 0.85rem;
    border-radius: 999px;
    background: rgba(0, 122, 194, 0.09);
    color: #23527c;
    font-size: 0.84rem;
    white-space: nowrap;
}

.portal-child-column {
    margin-bottom: 1.5rem;
}

.portal-child-card {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    height: 100%;
    min-height: 150px;
    padding: 1.25rem;
    border-radius: 8px;
    background: #ffffff;
    border: 1px solid rgba(0, 122, 194, 0.12);
    box-shadow: 0 14px 28px rgba(15, 23, 42, 0.06);
    color: inherit;
    overflow: hidden;
    transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
}

.portal-child-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: linear-gradient(180deg, #007ac2 0%, #ffd252 100%);
}

.portal-child-card:hover {
    transform: translateY(-3px);
    border-color: rgba(0, 122, 194, 0.28);
    box-shadow: 0 18px 34px rgba(0, 122, 194, 0.12);
}

.portal-child-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    border-radius: 8px;
    background: rgba(0, 122, 194, 0.08);
    color: #007ac2;
}

.portal-child-card-icon i {
    transform: rotate(-45deg);
}

.portal-child-card-body {
    display: block;
    min-width: 0;
    flex: 1 1 auto;
}

.portal-child-card-body strong {
    display: block;
    margin-bottom: 0.45rem;
    color: #1f2937;
    font-size: 1.08rem;
    line-height: 1.25;
}

.portal-child-card-body span {
    display: -webkit-box;
    color: #6b7280;
    line-height: 1.55;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.portal-child-card-link {
    align-self: flex-end;
    flex: 0 0 auto;
    color: #007ac2;
    font-size: 0.86rem;
    font-weight: 700;
}

.portal-child-card:hover .portal-child-card-link,
.portal-child-card:hover .portal-child-card-body strong {
    color: #005f99;
}

.portal-page-section .page-dynamic-sections {
    padding: 0 2rem 2rem;
    margin-top: 0;
    gap: 34px;
    overflow: visible;
}

.portal-page-section .page-section-block {
    max-width: 100%;
    overflow: hidden;
    border-radius: 14px;
}

.portal-page-section .page-builder-row {
    clear: both;
}

.portal-page-section .page-builder-row.page-builder-row-bg-none {
    padding-top: 0;
    padding-bottom: 0;
}

.portal-page-section .page-section-block .sec-title {
    margin-bottom: 24px;
}

.portal-page-section .page-section-block .sec-title h2 {
    font-size: 34px;
    line-height: 1.18;
}

.portal-page-section .page-section-block .sec-title.centred {
    text-align: left !important;
}

.portal-page-section .page-section-block .sec-title.centred .title-shape {
    margin-left: 0;
}

.portal-page-section .page-section-faq .faq-theme-accordion {
    margin: 0;
}

.portal-page-section .page-section-faq .faq-theme-accordion .block {
    margin-bottom: 12px;
    border: 1px solid #edf0f5;
    border-radius: 8px;
    overflow: hidden;
    background: #ffffff;
}

.portal-page-section .page-section-faq .faq-theme-accordion .block .acc-btn {
    min-height: auto;
    padding: 22px 64px 22px 22px;
}

.portal-page-section .page-section-faq .faq-theme-accordion .block .acc-btn h5 {
    position: relative;
    display: block;
    margin: 0;
    padding-left: 58px;
    color: #252638;
    font-size: 20px;
    line-height: 1.35;
    font-weight: 800;
}

.portal-page-section .page-section-faq .faq-theme-accordion .block .acc-btn h5 span {
    position: absolute;
    left: 0;
    top: 0;
    width: 44px;
    color: #8e91a2;
    font-size: 18px;
    line-height: 1.35;
}

.portal-page-section .page-section-faq .faq-theme-accordion .block .acc-content {
    padding: 0;
}

.portal-page-section .page-section-faq .faq-theme-accordion .block .acc-content .text {
    padding: 22px;
    border-top: 1px solid #edf0f5;
}

.portal-page-section .page-section-faq .faq-theme-accordion .block .acc-content .text p {
    margin: 0;
    font-size: 17px;
    line-height: 1.7;
}

.portal-page-section .page-section-quick-access .row {
    row-gap: 20px;
}

.portal-page-section .page-section-quick-access .col-lg-4 {
    flex: 0 0 50%;
    max-width: 50%;
}

.portal-page-section .page-section-quick-access .explore-block-one {
    margin-bottom: 0;
}

.portal-page-section .page-section-quick-access .explore-block-one .inner-box,
.portal-page-section .page-section-quick-access .explore-block-one .content-box {
    height: 100%;
    min-height: 0;
}

.portal-page-section .page-section-quick-access .explore-block-one .content-box {
    padding: 24px 20px;
}

.portal-page-section .page-section-quick-access .explore-block-one h3 {
    margin-bottom: 12px;
    font-size: 20px;
    line-height: 1.28;
    word-break: normal;
    overflow-wrap: anywhere;
}

.portal-page-section .page-section-quick-access .explore-block-one .btn-box a {
    font-size: 15px;
}

.portal-page-section .page-section-documents .download-list li {
    min-height: 0;
    padding: 18px 18px 18px 72px;
}

.portal-page-section .page-section-documents .download-list li h5 {
    font-size: 18px;
    line-height: 1.35;
}

.portal-page-section .portal-children-block {
    clear: both;
}

.portal-sidebar-banner .inner-box p {
    color: rgba(255, 255, 255, 0.82);
    margin: 0.75rem 0 1.25rem;
}

.portal-sidebar-nav,
.portal-sidebar-nav .portal-subnav-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.portal-sidebar-nav .portal-nav-item {
    display: block;
}

.portal-sidebar-nav .portal-nav-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: stretch;
    gap: 0.35rem;
}

.portal-sidebar-nav .portal-subnav-list {
    margin-top: 0.35rem;
    padding-left: 1.1rem;
    border-left: 1px solid #e6e6ea;
}

.portal-sidebar-nav .portal-nav-link {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.8rem 0.95rem;
    border-radius: 7px;
    border: 1px solid transparent;
    color: #252638;
    line-height: 1.45;
    background: #ffffff;
    box-shadow: 0 6px 18px rgba(16, 24, 40, 0.03);
    transition: all 0.25s ease;
}

.portal-sidebar-nav .portal-nav-link:hover {
    background: #F3FAFD;
    border-color: rgba(0, 122, 194, 0.16);
    transform: translateX(2px);
}

.portal-sidebar-nav .portal-nav-toggle {
    width: 2.25rem;
    min-width: 2.25rem;
    border: 1px solid #dbe7ef;
    border-radius: 7px;
    background: #ffffff;
    color: #005F97;
    cursor: pointer;
    transition: all 0.2s ease;
}

.portal-sidebar-nav .portal-nav-toggle:hover,
.portal-sidebar-nav .portal-nav-toggle:focus {
    background: #EAF7FC;
    border-color: rgba(0, 122, 194, 0.24);
    outline: none;
}

.portal-sidebar-nav .portal-nav-toggle span {
    display: inline-block;
    width: 0.55rem;
    height: 0.55rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translate(-1px, -1px);
    transition: transform 0.2s ease;
}

.portal-sidebar-nav .portal-nav-item.is-expanded > .portal-nav-row .portal-nav-toggle span {
    transform: rotate(225deg) translate(-2px, -2px);
}

.portal-sidebar-nav .portal-nav-item + .portal-nav-item {
    margin-top: 0.3rem;
}

.portal-sidebar-nav .portal-nav-bullet {
    flex: 0 0 auto;
    width: 0.5rem;
    height: 0.5rem;
    margin-top: 0.45rem;
    border-radius: 50%;
    background: #d1d5db;
}

.portal-sidebar-nav .portal-nav-label {
    display: block;
    min-width: 0;
    word-break: break-word;
}

.portal-sidebar-nav .portal-nav-depth-0 {
    font-weight: 700;
    font-size: 1rem;
}

.portal-sidebar-nav .portal-nav-depth-1,
.portal-sidebar-nav .portal-nav-depth-2,
.portal-sidebar-nav .portal-nav-depth-3,
.portal-sidebar-nav .portal-nav-depth-4 {
    font-size: 0.95rem;
}

.portal-sidebar-nav .portal-nav-item.is-expanded > .portal-nav-link {
    background: #fbfbfc;
    border-color: rgba(148, 163, 184, 0.16);
}

.portal-sidebar-nav .portal-nav-item.is-expanded > .portal-nav-row .portal-nav-link {
    background: #fbfbfc;
    border-color: rgba(148, 163, 184, 0.16);
}

.portal-sidebar-nav .portal-nav-item.is-expanded > .portal-nav-row .portal-nav-link .portal-nav-bullet {
    background: #f59e0b;
}

.portal-sidebar-nav .portal-nav-item.current > .portal-nav-row .portal-nav-link,
.portal-sidebar-nav .portal-nav-item.current > .portal-nav-link {
    background: #007AC2;
    color: #ffffff;
    font-weight: 700;
    border-color: #007AC2;
    box-shadow: 0 10px 24px rgba(0, 122, 194, 0.14);
}

.portal-sidebar-nav .portal-nav-item.current > .portal-nav-row .portal-nav-link .portal-nav-bullet,
.portal-sidebar-nav .portal-nav-item.current > .portal-nav-link .portal-nav-bullet {
    background: #FFD252;
}

.portal-sidebar-nav .portal-nav-item.current > .portal-nav-row .portal-nav-link .portal-nav-label,
.portal-sidebar-nav .portal-nav-item.current > .portal-nav-link .portal-nav-label {
    color: #ffffff;
}

.portal-sidebar-nav .portal-nav-item.current > .portal-nav-row .portal-nav-toggle {
    background: #005F97;
    border-color: #005F97;
    color: #ffffff;
}

.portal-sidebar-nav .portal-nav-item.depth-0 > .portal-nav-link {
    padding-top: 0.9rem;
    padding-bottom: 0.9rem;
}

.portal-sidebar-nav .portal-nav-item.depth-0 > .portal-nav-row .portal-nav-link {
    background: #EAF7FC;
    color: #005F97;
    font-weight: 800;
    border-color: #cbe9f6;
    box-shadow: none;
}

.portal-sidebar-nav .portal-nav-item.depth-0.current > .portal-nav-row .portal-nav-link {
    background: #007AC2;
    color: #ffffff;
    border-color: #007AC2;
}

.portal-sidebar-nav .portal-nav-item.depth-0 > .portal-nav-row .portal-nav-link .portal-nav-label {
    color: inherit;
}

.portal-sidebar-nav .portal-nav-item.depth-1 > .portal-nav-row .portal-nav-link {
    background: #f8fafc;
    color: #231F20;
    font-weight: 700;
    margin-top: 0.35rem;
}

.portal-sidebar-nav .portal-nav-item.depth-1.current > .portal-nav-row .portal-nav-link {
    background: #007AC2;
    color: #ffffff;
    border-color: #007AC2;
}

.portal-sidebar-nav .portal-nav-item.depth-1.current > .portal-nav-row .portal-nav-link .portal-nav-label {
    color: #ffffff;
}

.portal-sidebar-nav .portal-nav-item.depth-1.current > .portal-nav-row .portal-nav-link .portal-nav-bullet {
    background: #FFD252;
}

.portal-sidebar-nav .portal-nav-item.depth-1.current > .portal-nav-row .portal-nav-toggle {
    background: #005F97;
    border-color: #005F97;
    color: #ffffff;
}

.portal-sidebar-nav .portal-nav-item.depth-1 > .portal-nav-link,
.portal-sidebar-nav .portal-nav-item.depth-2 > .portal-nav-link,
.portal-sidebar-nav .portal-nav-item.depth-3 > .portal-nav-link,
.portal-sidebar-nav .portal-nav-item.depth-4 > .portal-nav-link {
    background: #fcfcfd;
    box-shadow: none;
}

.portal-sidebar-nav .portal-nav-item.depth-2 > .portal-nav-row .portal-nav-link,
.portal-sidebar-nav .portal-nav-item.depth-3 > .portal-nav-row .portal-nav-link,
.portal-sidebar-nav .portal-nav-item.depth-4 > .portal-nav-row .portal-nav-link {
    padding: 0.42rem 0.2rem 0.42rem 0.55rem;
    background: transparent;
    border: 0;
    border-left: 2px solid #dbe7ef;
    border-radius: 0;
    box-shadow: none;
    font-size: 0.9rem;
}

.portal-sidebar-nav .portal-nav-item.depth-2 > .portal-nav-row .portal-nav-link:hover,
.portal-sidebar-nav .portal-nav-item.depth-3 > .portal-nav-row .portal-nav-link:hover,
.portal-sidebar-nav .portal-nav-item.depth-4 > .portal-nav-row .portal-nav-link:hover {
    background: transparent;
    border-color: #007AC2;
    color: #005F97;
    transform: none;
}

.portal-sidebar-nav .portal-nav-item.depth-2.current > .portal-nav-row .portal-nav-link,
.portal-sidebar-nav .portal-nav-item.depth-3.current > .portal-nav-row .portal-nav-link,
.portal-sidebar-nav .portal-nav-item.depth-4.current > .portal-nav-row .portal-nav-link {
    background: transparent;
    color: #005F97;
    border-color: #007AC2;
    box-shadow: none;
}

.portal-sidebar-nav .portal-nav-item.depth-2.current > .portal-nav-row .portal-nav-link .portal-nav-label,
.portal-sidebar-nav .portal-nav-item.depth-3.current > .portal-nav-row .portal-nav-link .portal-nav-label,
.portal-sidebar-nav .portal-nav-item.depth-4.current > .portal-nav-row .portal-nav-link .portal-nav-label {
    color: #005F97;
    font-weight: 700;
}

.portal-sidebar-nav .portal-nav-item.depth-2.current > .portal-nav-row .portal-nav-link .portal-nav-bullet,
.portal-sidebar-nav .portal-nav-item.depth-3.current > .portal-nav-row .portal-nav-link .portal-nav-bullet,
.portal-sidebar-nav .portal-nav-item.depth-4.current > .portal-nav-row .portal-nav-link .portal-nav-bullet {
    background: #007AC2;
}

.js-enabled .portal-sidebar-nav .portal-nav-item:not(.is-expanded) > .portal-subnav-list {
    display: none;
}

.municipal-council-filter-panel {
    margin-bottom: 2rem;
}

.municipal-councils-title-section {
    min-height: 500px;
    padding-top: 176px;
}

.module-title-section.municipal-councils-title-section {
    min-height: 430px;
    padding-top: 124px;
}

.municipal-councils-section {
    padding-top: 42px;
    background: #f6f9fc;
}

.municipal-councils-heading {
    display: none;
}

.municipal-council-filter-panel .filter-box {
    margin-bottom: 0;
    border: 1px solid #e6eef5;
    border-radius: 8px;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.07);
}

.municipal-councils-section.module-page-section-with-sidebar .municipal-council-filter-panel {
    margin-top: 24px;
}

.municipal-council-list {
    display: grid;
    gap: 1rem;
    margin-bottom: 2.2rem;
}

.municipal-council-card {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr) auto;
    gap: 1.2rem;
    align-items: center;
    position: relative;
    padding: 1.35rem;
    border: 1px solid #e5edf3;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.06);
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.municipal-council-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 5px;
    height: 100%;
    background: linear-gradient(180deg, #007AC2 0%, #41a3bd 48%, #ffd252 100%);
}

.municipal-council-card:hover {
    border-color: rgba(0, 122, 194, 0.25);
    box-shadow: 0 24px 60px rgba(15, 22, 41, 0.1);
    transform: translateY(-2px);
}

.municipal-council-date,
.municipal-council-date-large {
    display: grid;
    place-items: center;
    min-height: 86px;
    border-radius: 8px;
    background: #EAF7FC;
    color: #005F97;
    border: 1px solid #cbe9f6;
}

.municipal-council-date strong,
.municipal-council-date-large strong {
    display: block;
    font-size: 2rem;
    line-height: 1;
    color: #007AC2;
}

.municipal-council-date span,
.municipal-council-date-large span {
    display: block;
    font-weight: 700;
}

.municipal-council-card-body h3 {
    font-size: 1.2rem;
    margin-bottom: 0.4rem;
}

.municipal-council-card-body h3 a:hover {
    color: #007AC2;
}

.municipal-council-card-body p {
    margin-bottom: 0.7rem;
}

.municipal-council-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    color: #596579;
    font-size: 0.92rem;
}

.municipal-council-meta span {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.municipal-council-sidebar,
.municipal-council-panel,
.municipal-council-video,
.municipal-council-video-link {
    border: 1px solid #e5edf3;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.06);
}

.municipal-council-sidebar {
    position: sticky;
    top: 110px;
    padding: 1.4rem;
}

.municipal-council-detail {
    padding-top: 42px;
    background: #f6f9fc;
}

.public-title-section + .municipal-council-detail.sec-pad-2 {
    padding-top: 42px;
}

.municipal-council-sidebar-title,
.municipal-council-sidebar-title + p {
    display: none;
}

.municipal-council-detail .public-static-page-body ol,
.municipal-council-detail .public-static-page-body ul {
    margin: 0 0 1.15rem;
    padding-left: 1.45rem;
}

.municipal-council-detail .public-static-page-body ol {
    list-style: decimal;
}

.municipal-council-detail .public-static-page-body ul {
    list-style: disc;
}

.municipal-council-detail .public-static-page-body li {
    display: list-item;
    margin-bottom: 0.55rem;
    color: #4b5563;
    line-height: 1.75;
    list-style: inherit;
}

.municipal-council-detail .public-static-page-body li::marker {
    color: #007AC2;
    font-weight: 800;
}

.municipal-council-sidebar .municipal-council-date-large {
    margin-bottom: 1rem;
    border-color: rgba(0, 122, 194, 0.2);
    background: #f3f9fd;
}

.municipal-council-sidebar > p {
    margin-bottom: 1rem;
    color: #58667a;
    line-height: 1.65;
}

.municipal-council-sidebar-documents {
    margin-top: 1.5rem;
}

.municipal-council-sidebar-documents .sec-title {
    margin-bottom: 1.1rem;
}

.municipal-council-sidebar-documents .sec-title h2 {
    font-size: 1.35rem;
}

.municipal-council-sidebar h2 {
    font-size: 1.5rem;
    margin: 0 0 0.7rem;
}

.municipal-council-live-button {
    display: flex;
    width: 100%;
    min-width: 100%;
    justify-content: center;
    text-align: center;
}

.municipal-council-sidebar ul {
    display: grid;
    gap: 0.7rem;
    margin: 1rem 0 1.2rem;
    padding: 0;
    list-style: none;
}

.municipal-council-sidebar li {
    display: flex;
    gap: 0.65rem;
    align-items: center;
    padding: 0.75rem 0.85rem;
    border: 1px solid #e5edf3;
    border-radius: 8px;
    background: #f8fafc;
    color: #4b5563;
    font-weight: 700;
}

.municipal-council-sidebar li i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    flex: 0 0 auto;
    border-radius: 50%;
    background: rgba(0, 122, 194, 0.1);
    color: #007AC2;
}

.municipal-council-video {
    overflow: hidden;
    aspect-ratio: 16 / 9;
    margin-bottom: 1.4rem;
}

.municipal-council-video iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

.municipal-council-video-link,
.municipal-council-panel {
    padding: 1.65rem;
    margin-bottom: 1.4rem;
}

.municipal-council-panel .sec-title {
    margin-bottom: 1.2rem;
}

.municipal-council-panel .sec-title h2 {
    position: relative;
    padding-bottom: 14px;
    font-size: 1.55rem;
}

.municipal-council-panel .sec-title h2::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 64px;
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, #007AC2 0%, #ffd252 100%);
}

.municipal-council-panel .sec-title .title-shape {
    display: none;
}

.municipal-council-document-group + .municipal-council-document-group {
    margin-top: 1.4rem;
}

.municipal-council-document-group h3 {
    margin-bottom: 0.75rem;
    color: #1f2937;
    font-size: 1rem;
    font-weight: 800;
}

.municipal-council-document-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.65rem;
}

.municipal-council-document-list li {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    padding: 0.95rem 1rem;
    border: 1px solid #e5edf3;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 8px 20px rgba(16, 24, 40, 0.04);
}

.municipal-council-document-list strong,
.municipal-council-document-list span {
    display: block;
}

.municipal-council-document-list span {
    color: #6b7280;
    font-size: 0.9rem;
}

.municipal-council-document-list a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    padding: 0.35rem 0.65rem;
    border: 1px solid rgba(0, 122, 194, 0.18);
    border-radius: 6px;
    background: #f3f9fd;
    color: #007AC2;
    font-weight: 700;
}

.municipal-council-document-list a:hover,
.municipal-council-document-list a:focus {
    background: #007AC2;
    color: #fff;
}

.municipal-council-document-rows {
    display: grid;
    gap: 0.85rem;
}

.municipal-council-document-picker-grid {
    display: grid;
    gap: 0.65rem;
    max-height: 430px;
    overflow-y: auto;
    padding-right: 0.35rem;
}

.municipal-council-document-option {
    width: 100%;
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.85rem;
    border: 1px solid #d8e3ec;
    border-radius: 8px;
    background: #fff;
    color: #1f2937;
    text-align: left;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.municipal-council-document-option:hover,
.municipal-council-document-option:focus {
    border-color: #007AC2;
    box-shadow: 0 0 0 0.16rem rgba(0, 122, 194, 0.14);
    outline: 0;
}

.municipal-council-document-option.is-selected {
    border-color: #007AC2;
    background: #eef8ff;
}

.municipal-council-document-option i {
    color: #007AC2;
    font-size: 1.35rem;
    margin-top: 0.15rem;
}

.municipal-council-document-option span,
.municipal-council-document-option strong,
.municipal-council-document-option small {
    display: block;
}

.municipal-council-document-option strong {
    line-height: 1.25;
}

.municipal-council-document-option small {
    color: #6b7280;
    margin-top: 0.2rem;
}

.municipal-council-selected-documents {
    min-height: 100%;
    padding: 1rem;
    border: 1px solid #d8e3ec;
    border-radius: 8px;
    background: #f8fafc;
}

.municipal-council-selected-list {
    display: grid;
    gap: 0.85rem;
}

.municipal-council-selected-document {
    display: grid;
    gap: 0.6rem;
    padding: 0.85rem;
    border: 1px solid #d8e3ec;
    border-radius: 8px;
    background: #fff;
}

.municipal-council-selected-document-title {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
}

.municipal-council-selected-document-title strong {
    min-width: 0;
    line-height: 1.3;
}

.municipal-council-selected-document-title button {
    width: 2rem;
    height: 2rem;
    flex: 0 0 auto;
    border: 0;
    border-radius: 50%;
    background: #e8f0f6;
    color: #274760;
    font-size: 1.25rem;
    line-height: 1;
}

.municipal-council-selected-document-title button:hover,
.municipal-council-selected-document-title button:focus {
    background: #007AC2;
    color: #fff;
    outline: 0;
}

.municipal-council-attached-documents {
    display: grid;
    gap: 0.75rem;
}

.municipal-council-documents-panel {
    position: relative;
    padding: 1.15rem;
    border: 1px solid #d8e3ec;
    border-radius: 8px;
    background: #f8fafc;
    z-index: 1;
}

.municipal-council-agenda-field {
    position: relative;
    z-index: 2;
}

.municipal-council-agenda-field .rich-editor,
.municipal-council-agenda-field .ql-container {
    display: block;
    height: 260px !important;
    min-height: 0 !important;
    max-height: 260px;
    overflow: hidden;
}

.municipal-council-agenda-field .ql-editor {
    height: 100% !important;
    min-height: 0 !important;
    max-height: none;
    overflow-y: auto !important;
}

.municipal-council-documents-field {
    margin-top: 1.25rem;
    clear: both;
}

.municipal-council-documents-panel-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
}

.municipal-council-documents-panel-head .form-label {
    color: #1f2937;
    font-size: 1rem;
    font-weight: 800;
}

.municipal-council-documents-open {
    flex: 0 0 auto;
    min-width: 240px;
}

.municipal-council-documents-empty {
    display: grid;
    justify-items: center;
    gap: 0.7rem;
    margin-top: 1rem;
    padding: 1.4rem;
    border: 1px dashed #b9c8d6;
    border-radius: 8px;
    background: #fff;
    text-align: center;
}

.municipal-council-documents-empty strong {
    color: #1f2937;
    font-size: 1rem;
}

.municipal-council-documents-empty span {
    max-width: 520px;
    color: #6b7280;
}

.municipal-council-attached-document {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    padding: 0.9rem 1rem;
    border: 1px solid #d8e3ec;
    border-radius: 8px;
    background: #fff;
}

.municipal-council-attached-document > div {
    display: grid;
    gap: 0.35rem;
    min-width: 0;
}

.municipal-council-attached-document strong,
.municipal-council-attached-document small {
    display: block;
}

.municipal-council-attached-document strong {
    color: #1f2937;
    line-height: 1.3;
}

.municipal-council-attached-document small {
    color: #6b7280;
}

@media (max-width: 767px) {
    .municipal-council-documents-panel-head,
    .municipal-council-attached-document {
        align-items: stretch;
        flex-direction: column;
    }

    .municipal-council-documents-open {
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 767px) {
    .municipal-council-sidebar {
        position: static;
        margin-bottom: 1.4rem;
    }

    .municipal-council-card {
        grid-template-columns: 1fr;
    }

    .municipal-council-card > .theme-btn {
        width: 100%;
        text-align: center;
    }

    .municipal-council-document-list li {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 991px) {
    .portal-sidebar-nav .portal-subnav-list {
        padding-left: 0.65rem;
    }

    .portal-sidebar-nav .portal-nav-link {
        padding: 0.72rem 0.8rem;
    }
}

.portal-related-pages .info-list li h5 {
    margin-bottom: 0.3rem;
}

.portal-quick-access-sidebar .info-list li .icon-box {
    overflow: hidden;
}

.portal-quick-access-sidebar .info-list li .icon-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

.portal-quick-access-sidebar .info-list li .icon-box i[class^="bx"],
.portal-quick-access-sidebar .info-list li .icon-box i[class*=" bx"] {
    display: inline-block;
    color: #007AC2;
    font-size: 24px;
    line-height: 1;
}

.module-context-sidebar-wrap {
    margin-top: 1.5rem;
}

.module-page-section-with-sidebar .news-public-list-content:first-child,
.module-page-section-with-sidebar .sec-title:first-child {
    margin-top: 0;
}

.faq-page-module-sidebar {
    margin-top: 2rem;
}

.module-page-binding-card {
    height: 100%;
    padding: 1.5rem;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 1rem;
    background: #ffffff;
    box-shadow: 0 16px 30px rgba(15, 23, 42, 0.06);
}

.module-page-binding-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.module-page-binding-card__header h4 {
    margin-bottom: 0.35rem;
}

.module-page-binding-card__header p {
    margin-bottom: 0;
    color: #64748b;
}

.module-page-binding-card__meta {
    min-height: 1.75rem;
}

.associations-public-card-column {
    margin-bottom: 2rem;
}

.associations-public-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 1.25rem;
}

.public-directory-submit-callout {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: 1.25rem;
    margin-bottom: 2rem;
    padding: 24px 26px;
    border: 1px solid #e4edf4;
    border-left: 5px solid #007AC2;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.07);
}

.public-directory-submit-text {
    max-width: 720px;
}

.public-directory-submit-text span {
    display: inline-flex;
    margin-bottom: 7px;
    color: #007AC2;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.public-directory-submit-text h2 {
    margin-bottom: 7px;
    color: #1f2235;
    font-size: 24px;
    line-height: 1.2;
    font-weight: 800;
}

.public-directory-submit-text p {
    margin-bottom: 0;
    color: #696b7e;
    line-height: 1.6;
}

.public-directory-submit-callout .theme-btn {
    flex: 0 0 auto;
    white-space: nowrap;
}

.associations-public-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 100%;
    padding: 1.65rem;
    border: 1px solid rgba(0, 122, 194, 0.12);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.08);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
    overflow: hidden;
}

.associations-public-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: linear-gradient(90deg, #007ac2 0%, #76b82a 100%);
    opacity: 0.9;
}

.associations-public-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1.1rem;
}

.associations-public-card-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.associations-public-badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.75rem;
    padding: 0.15rem 0.7rem;
    border-radius: 999px;
    background: rgba(0, 122, 194, 0.1);
    color: #007AC2;
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1.2;
}

.associations-public-badge.is-featured {
    background: rgba(118, 184, 42, 0.14);
    color: #3f7c14;
}

.associations-public-location-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 1.75rem;
    padding: 0.15rem 0.65rem;
    border-radius: 999px;
    background: rgba(0, 122, 194, 0.08);
    color: #23527c;
    font-size: 0.74rem;
    font-weight: 700;
    white-space: nowrap;
}

.associations-public-location-badge i {
    font-size: 0.9rem;
}

.associations-public-card h3 {
    margin-bottom: 0.75rem;
    color: #1f2937;
    font-size: 1.35rem;
    line-height: 1.25;
}

.associations-public-summary {
    margin-bottom: 1rem;
    color: #374151;
    font-weight: 600;
    line-height: 1.55;
}

.associations-public-description {
    margin-bottom: 1.25rem;
    color: #6b7280;
    line-height: 1.65;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.commerce-public-list-content {
    margin-bottom: 2rem;
}

.commerce-map-card {
    padding: 2rem;
    margin-bottom: 2rem;
    border-radius: 1rem;
    background: #ffffff;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.08);
}

.commerce-public-map {
    width: 100%;
    height: 420px;
    border-radius: 1rem;
    overflow: hidden;
}

.commerce-public-card {
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
    border: 1px solid transparent;
}

.commerce-public-card.is-map-active,
.association-public-card.is-map-active {
    transform: translateY(-4px);
    border-color: rgba(0, 122, 194, 0.35);
    box-shadow: 0 22px 45px rgba(0, 122, 194, 0.16);
}

.commerce-public-card-actions {
    margin-top: 1.5rem;
}

.commerce-map-focus-btn {
    width: 100%;
    text-align: center;
}

.associations-public-meta {
    margin: auto 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.associations-public-meta li {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    min-width: 0;
    padding: 0.85rem;
    border-radius: 8px;
    background: #f8fafc;
    color: #374151;
}

.associations-public-meta li i {
    margin-top: 0.15rem;
    color: #007AC2;
    flex: 0 0 auto;
}

.associations-public-meta li span {
    min-width: 0;
}

.associations-public-meta li strong {
    display: block;
    margin-bottom: 0.15rem;
    color: #1f2937;
    font-size: 0.76rem;
    line-height: 1.2;
    text-transform: uppercase;
}

.associations-public-meta-address {
    grid-column: 1 / -1;
}

.associations-public-meta li a {
    color: #374151;
    word-break: break-word;
}

.associations-public-meta li span,
.associations-public-meta li a {
    line-height: 1.6;
}

.associations-public-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-top: 1.25rem;
}

.associations-public-action {
    flex: 1 1 150px;
    min-height: 44px;
    padding: 0.7rem 1rem;
    border: 0;
    text-align: center;
}

.associations-public-action.is-secondary,
.associations-public-action.is-map {
    background: #eef6fb;
    color: #23527c !important;
}

.associations-public-action.is-secondary:hover,
.associations-public-action.is-map:hover {
    background: #007ac2;
    color: #ffffff !important;
}

.associations-submit-section .associations-submit-card {
    padding: 2.5rem;
}

.associations-submit-section .form-label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 700;
    color: #1f2937;
}

.associations-submit-section .form-label span[aria-hidden="true"],
.form-required-note span[aria-hidden="true"] {
    color: #007AC2;
    font-weight: 900;
}

.form-required-note {
    margin: 0 0 1.2rem;
    color: #475569;
    font-size: 0.95rem;
    font-weight: 700;
}

.form-accessibility-error {
    margin-bottom: 1.4rem;
    padding: 1rem 1.15rem;
    border-left: 5px solid #007AC2;
    border-radius: 0.65rem;
    background: #fff5f5;
    color: #7f1d1d;
}

.form-accessibility-error strong {
    display: block;
    margin-bottom: 0.35rem;
    color: #7f1d1d;
}

.form-accessibility-error p {
    margin: 0;
    color: #7f1d1d;
}

.rgpd-form-notice {
    padding: 1.15rem 1.25rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-left: 5px solid #007AC2;
    border-radius: 0.9rem;
    background: #fff;
}

.rgpd-form-notice h3 {
    margin: 0 0 0.65rem;
    color: #0f172a;
    font-size: 1.2rem;
}

.rgpd-form-notice p {
    margin: 0 0 0.65rem;
    color: #475569;
    line-height: 1.7;
}

.rgpd-form-notice p:last-child {
    margin-bottom: 0;
}

.rgpd-form-notice a {
    color: #007AC2;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.cookie-consent {
    position: fixed;
    right: 24px;
    bottom: 24px;
    left: 24px;
    z-index: 9998;
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.22s ease, transform 0.22s ease;
}

.cookie-consent.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.cookie-consent-card {
    max-width: 1180px;
    margin: 0 auto;
    padding: 24px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 22px;
    align-items: center;
    background: #ffffff;
    border: 1px solid #e4edf4;
    border-left: 5px solid #007AC2;
    border-radius: 8px;
    box-shadow: 0 22px 70px rgba(16, 24, 40, 0.18);
}

.cookie-consent-icon {
    width: 58px;
    height: 58px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #eaf6fc;
    color: #007AC2;
    font-size: 24px;
}

.cookie-consent-kicker {
    margin: 0 0 4px;
    color: #007AC2;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cookie-consent-content h2,
.cookie-preferences-panel h2 {
    margin: 0 0 8px;
    color: #252638;
    font-size: 26px;
    font-weight: 900;
}

.cookie-consent-content p,
.cookie-preferences-intro {
    margin: 0;
    color: #6f7487;
    line-height: 1.65;
}

.cookie-consent-content a {
    display: inline-block;
    margin-top: 8px;
    color: #007AC2;
    font-weight: 800;
    text-decoration: underline;
}

.cookie-consent-actions,
.cookie-preferences-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}

.cookie-consent .theme-btn,
.cookie-preferences .theme-btn {
    padding: 13px 22px;
    border: 0;
    border-radius: 6px;
    line-height: 1.2;
}

.cookie-btn-primary {
    background: #007AC2;
    color: #ffffff;
}

.cookie-btn-light {
    background: #f4f5f8;
    color: #252638;
}

.cookie-btn-link {
    padding: 0;
    border: 0;
    background: transparent;
    color: #6f7487;
    font-weight: 800;
    text-decoration: underline;
}

.cookie-preferences {
    position: fixed;
    inset: 0;
    z-index: 9999;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.22s ease;
}

.cookie-preferences.is-visible {
    opacity: 1;
    pointer-events: auto;
}

.cookie-preferences-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(12, 31, 55, 0.68);
}

.cookie-preferences-panel {
    position: relative;
    width: min(680px, calc(100% - 32px));
    max-height: calc(100vh - 48px);
    margin: 24px auto;
    padding: 34px;
    overflow-y: auto;
    border: 1px solid #e4edf4;
    border-left: 5px solid #007AC2;
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 24px 80px rgba(12, 31, 55, 0.24);
}

.cookie-preferences-close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 8px;
    background: #eaf6fc;
    color: #007AC2;
}

.cookie-preference-list {
    display: grid;
    gap: 14px;
    margin: 24px 0;
}

.cookie-preference-item {
    padding: 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    border: 1px solid #e4edf4;
    border-radius: 8px;
    background: #ffffff;
}

.cookie-preference-item.is-required {
    background: #f8fafc;
}

.cookie-preference-item strong {
    display: block;
    color: #252638;
    font-size: 17px;
}

.cookie-preference-item small {
    display: block;
    margin-top: 4px;
    color: #6f7487;
    line-height: 1.5;
}

.cookie-preference-item input {
    width: 22px;
    height: 22px;
    accent-color: #007AC2;
    flex: 0 0 auto;
}

.associations-submit-section .form-control,
.associations-submit-section .form-select {
    min-height: 3rem;
    border-radius: 0.75rem;
}

.associations-submit-section textarea.form-control {
    min-height: auto;
}

.faq-public-section .faq-public-header {
    margin-bottom: 2rem;
}

.faq-public-list-content {
    margin-bottom: 2.5rem;
}

.faq-public-list-content .filter-box.faq-filter-box--with-reset {
    padding-right: 332px;
}

.news-public-list-content .filter-box .faq-filter-search {
    border-right: 1px solid #e6e6ea;
}

.news-public-list-content .filter-box .faq-filter-reset {
    right: 182px;
}

.news-public-list-content .filter-box .faq-filter-reset .theme-btn {
    display: inline-block;
    min-width: 150px;
    padding: 22px 20px;
    text-align: center;
}

.faq-public-accordion .faq-public-item {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1rem;
    overflow: hidden;
    margin-bottom: 1rem;
    scroll-margin-top: 8rem;
}

.faq-public-accordion .accordion-header {
    position: relative;
}

.faq-public-accordion .accordion-button {
    background: #ffffff;
    color: #0f172a;
    font-weight: 700;
    box-shadow: none;
    padding-right: 4rem;
}

.faq-public-accordion .accordion-button:not(.collapsed) {
    background: rgba(0, 122, 194, 0.06);
    color: #007AC2;
}

.faq-public-accordion .accordion-button span {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.faq-public-accordion .accordion-button small {
    color: #64748b;
    font-size: 0.8rem;
    font-weight: 600;
}

.faq-public-anchor {
    position: absolute;
    top: 50%;
    right: 1rem;
    transform: translateY(-50%);
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    color: #64748b;
    background: rgba(15, 23, 42, 0.05);
    z-index: 3;
}

.faq-public-anchor:hover {
    color: #007AC2;
    background: rgba(0, 122, 194, 0.1);
}

.faq-public-accordion .accordion-body {
    color: #475569;
    line-height: 1.75;
    background: #ffffff;
}

.association-submission-modal-body {
    display: grid;
    gap: 1.25rem;
}

.association-submission-section {
    padding: 1rem 1.1rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1rem;
    background: #f8fafc;
}

.association-submission-section h6 {
    margin-bottom: 0.85rem;
    font-size: 0.95rem;
    font-weight: 800;
    color: #0f172a;
}

.association-submission-section p {
    margin-bottom: 0;
    color: #475569;
    line-height: 1.7;
}

.school-enrollment-intro-card {
    padding: 2.5rem;
}

.school-enrollment-legacy-title {
    display: none;
}

.school-enrollment-title-section {
    min-height: 500px;
    padding-top: 176px;
}

.school-enrollment-public-section {
    position: relative;
    padding-top: 42px;
    background:
        radial-gradient(circle at 11% 0%, rgba(0, 122, 194, 0.08) 0, rgba(0, 122, 194, 0) 32%),
        radial-gradient(circle at 90% 10%, rgba(255, 210, 82, 0.18) 0, rgba(255, 210, 82, 0) 28%),
        #f6f9fc;
}

.school-enrollment-public-section.public-theme-content {
    padding-top: 42px;
}

.school-enrollment-public-section .public-content-card {
    border: 1px solid #e4edf4;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.07);
}

.school-enrollment-public-section .sec-title {
    margin-bottom: 2rem;
}

.school-enrollment-public-section .sec-title h2 {
    color: #1f2235;
}

.school-enrollment-public-section .sec-title p {
    max-width: 780px;
    margin-top: 12px;
    color: #696b7e;
    line-height: 1.7;
}

.school-enrollment-intro-card,
.school-enrollment-confirmation-card {
    padding: 2.5rem;
}

.school-enrollment-hub-card .association-submission-section,
.school-enrollment-tracking-card .association-submission-section {
    padding: 1.55rem;
    border: 1px solid #e4edf4;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 14px 34px rgba(15, 22, 41, 0.05);
}

.school-enrollment-hub-option {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.school-enrollment-hub-option::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: linear-gradient(180deg, #007AC2 0%, #41a3bd 48%, #ffd252 100%);
}

.school-enrollment-hub-option:hover {
    border-color: rgba(0, 122, 194, 0.24);
    box-shadow: 0 22px 52px rgba(15, 22, 41, 0.09);
    transform: translateY(-3px);
}

.school-enrollment-hub-kicker {
    display: inline-flex;
    align-self: flex-start;
    padding: 0.42rem 0.75rem;
    border-radius: 6px;
    background: #eaf6fc;
    color: #007AC2;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.school-enrollment-hub-option h4 {
    margin: 0;
    color: #0f172a;
}

.school-enrollment-hub-option p {
    margin: 0;
    color: #475569;
}

.school-enrollment-hub-list {
    margin: 0;
    padding-left: 0;
    color: #334155;
    list-style: none;
}

.school-enrollment-hub-list li {
    position: relative;
    padding-left: 1.35rem;
}

.school-enrollment-hub-list li::before {
    content: "";
    position: absolute;
    top: 0.72em;
    left: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #ffd252;
}

.school-enrollment-hub-list li + li {
    margin-top: 0.55rem;
}

.school-enrollment-hub-option .theme-btn {
    width: fit-content;
    margin-top: auto;
    text-align: center;
}

.associations-submit-card > .sec-title {
    margin-bottom: 2rem;
}

.associations-submit-card form[data-school-enrollment-form] {
    margin-top: 0.5rem;
}

.associations-submit-card form[data-school-enrollment-form] > .col-12 > .association-submission-section {
    padding: 1.55rem;
    border: 1px solid #e4edf4;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 14px 34px rgba(15, 22, 41, 0.05);
}

.associations-submit-card form[data-school-enrollment-form] > .col-12 > .association-submission-section > h6 {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 1.1rem;
    padding-bottom: 0.9rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.18);
    font-size: 1.02rem;
}

.associations-submit-card form[data-school-enrollment-form] > .col-12 > .association-submission-section > h6::before {
    content: "";
    width: 0.75rem;
    height: 0.75rem;
    border-radius: 999px;
    background: #007AC2;
    box-shadow: 0 0 0 6px rgba(0, 122, 194, 0.12);
}

.associations-submit-card form[data-school-enrollment-form] .form-label {
    margin-bottom: 0.45rem;
    font-weight: 700;
    color: #0f172a;
}

.associations-submit-card form[data-school-enrollment-form] .form-control,
.associations-submit-card form[data-school-enrollment-form] .form-select {
    min-height: 52px;
    border-radius: 6px;
    border-color: #dbe6ee;
    background: #fff;
    box-shadow: none;
}

.associations-submit-card form[data-school-enrollment-form] textarea.form-control {
    min-height: 110px;
}

.associations-submit-card form[data-school-enrollment-form] input[type="file"].form-control {
    min-height: auto;
    padding-top: 0.9rem;
    padding-bottom: 0.9rem;
}

.associations-submit-card form[data-school-enrollment-form] .form-control:focus,
.associations-submit-card form[data-school-enrollment-form] .form-select:focus {
    border-color: rgba(0, 122, 194, 0.45);
    box-shadow: 0 0 0 4px rgba(0, 122, 194, 0.08);
}

.associations-submit-card form[data-school-enrollment-form] .form-text {
    margin-top: 0.55rem;
    color: #64748b;
}

.school-enrollment-period {
    font-weight: 600;
    color: #334155;
}

.school-enrollment-steps {
    display: grid;
    gap: 1rem;
}

.school-enrollment-step {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
}

.school-enrollment-step span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 8px;
    background: #007AC2;
    color: #ffffff;
    font-weight: 800;
    flex: 0 0 auto;
}

.school-enrollment-step p {
    margin: 0;
    color: #475569;
}

.school-sector-result {
    border-radius: 8px;
    border: 1px solid #e4edf4;
    padding: 18px 20px;
    transition: 0.2s ease;
}

.school-sector-result strong {
    display: block;
    margin-bottom: 6px;
}

.school-sector-result p {
    margin: 0;
}

.school-sector-result-neutral {
    background: #f8fafc;
    color: #334155;
}

.school-sector-result-loading {
    background: #eff6ff;
    border-color: rgba(37, 99, 235, 0.18);
    color: #1d4ed8;
}

.school-sector-result-success {
    background: #ecfdf5;
    border-color: rgba(5, 150, 105, 0.2);
    color: #047857;
}

.school-sector-result-error {
    background: #EAF7FC;
    border-color: rgba(220, 38, 38, 0.16);
    color: #005F97;
}

.school-enrollment-child-card {
    position: relative;
    overflow: hidden;
    border: 1px solid #e4edf4;
    border-radius: 8px;
    background: #fff;
}

.school-enrollment-child-card.is-hidden {
    display: none;
}

.school-enrollment-confirmation-reference {
    display: inline-flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 1.3rem 1.5rem;
    border-radius: 8px;
    background: linear-gradient(135deg, #007AC2 0%, #41a3bd 62%, #ffd252 100%);
    color: #fff;
    box-shadow: 0 20px 40px rgba(0, 122, 194, 0.22);
    margin-bottom: 1.75rem;
}

.school-enrollment-confirmation-label {
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    opacity: 0.9;
}

.school-enrollment-confirmation-reference strong {
    font-size: 1.7rem;
    line-height: 1.1;
}

.school-enrollment-confirmation-child {
    padding: 1rem 1.1rem;
    border-radius: 8px;
    border: 1px solid #e4edf4;
    background: #fff;
}

.school-enrollment-history-timeline {
    position: relative;
    display: grid;
    gap: 1rem;
    margin-top: 1rem;
}

.school-enrollment-history-item {
    position: relative;
    display: grid;
    grid-template-columns: 18px 1fr;
    gap: 1rem;
    align-items: start;
}

.school-enrollment-history-dot {
    position: relative;
    width: 14px;
    height: 14px;
    margin-top: 0.25rem;
    border-radius: 999px;
    background: #007AC2;
    box-shadow: 0 0 0 5px rgba(0, 122, 194, 0.12);
}

.school-enrollment-history-item:not(:last-child) .school-enrollment-history-dot::after {
    content: "";
    position: absolute;
    top: 18px;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: calc(100% + 1rem);
    background: rgba(148, 163, 184, 0.4);
}

.school-enrollment-history-content {
    padding: 1rem 1.1rem;
    border-radius: 8px;
    border: 1px solid #e4edf4;
    background: #fff;
}

.school-enrollment-history-content strong {
    display: block;
    margin-bottom: 0.3rem;
    color: #0f172a;
}

.school-enrollment-history-content p {
    color: #475569;
}

.school-enrollment-history-date {
    margin-bottom: 0.45rem;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
}

.school-enrollment-request-card {
    padding: 1.15rem 1.2rem;
    border-radius: 8px;
    border: 1px solid #e4edf4;
    background: #fff;
    box-shadow: 0 14px 36px rgba(15, 23, 42, 0.05);
}

.school-enrollment-tracking-card .association-submission-section {
    padding: 1.55rem;
    border-radius: 8px;
    border: 1px solid #e4edf4;
    background: #ffffff;
    box-shadow: 0 16px 38px rgba(15, 23, 42, 0.05);
}

.school-enrollment-tracking-form .theme-btn.style-one {
    width: 100%;
    min-width: 0;
}

.school-enrollment-request-card .badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.15rem;
    padding: 0.45rem 0.85rem;
    border-radius: 999px;
    white-space: nowrap;
}

.school-enrollment-request-card .form-label {
    font-weight: 700;
    color: #0f172a;
}

.school-enrollment-request-card .form-control {
    min-height: 52px;
    border-radius: 6px;
    border-color: rgba(148, 163, 184, 0.24);
}

.school-enrollment-request-card input[type="file"].form-control {
    min-height: auto;
    padding-top: 0.9rem;
    padding-bottom: 0.9rem;
}

.school-enrollment-request-upload-form .theme-btn.style-one {
    width: 100%;
    min-width: 0;
}

.school-enrollment-request-card .alert {
    border-radius: 0.95rem;
}

.school-enrollment-admin-request-form .form-control {
    min-height: 44px;
}

.school-enrollment-admin-request-action {
    display: inline-flex;
}

.school-enrollment-admin-request-action .btn {
    white-space: nowrap;
}

.school-enrollment-admin-detail .custom-card {
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow: 0 14px 40px rgba(15, 23, 42, 0.05);
}

.school-enrollment-admin-kpi {
    height: 100%;
    padding: 1rem 1.1rem;
    border-radius: 8px;
    background: #f6f9fc;
    border: 1px solid #e4edf4;
}

.school-enrollment-admin-kpi span {
    display: block;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #64748b;
    margin-bottom: 0.4rem;
}

.school-enrollment-admin-kpi strong {
    display: block;
    color: #0f172a;
    line-height: 1.4;
}

.school-enrollment-admin-panel {
    padding: 1.1rem 1.15rem;
    border-radius: 1rem;
    border: 1px solid rgba(148, 163, 184, 0.14);
    background: #fff;
}

.school-enrollment-admin-panel h5 {
    margin-bottom: 1rem;
    font-size: 1rem;
    font-weight: 800;
    color: #0f172a;
}

.school-enrollment-admin-panel dl dt {
    color: #64748b;
    font-weight: 700;
}

.school-enrollment-admin-panel dl dd {
    color: #0f172a;
}

.school-enrollment-child-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: linear-gradient(180deg, #007AC2 0%, #FFD252 100%);
}

.school-enrollment-child-card h6 {
    padding-left: 0.35rem;
}

[data-children-container] {
    display: grid;
    gap: 1rem;
}

.school-enrollment-child-card .row {
    padding-left: 0.35rem;
}

.school-enrollment-child-card .school-sector-result {
    margin-top: 0.35rem;
}

.school-enrollment-child-card .form-control,
.school-enrollment-child-card .form-select {
    background: #fdfefe;
}

.associations-submit-card .form-check {
    padding: 1rem 1rem 1rem 2.6rem;
    border-radius: 8px;
    border: 1px solid #e4edf4;
    background: #fff;
}

.associations-submit-card .form-check-input {
    margin-top: 0.2rem;
}

.associations-submit-card .theme-btn.style-one,
.associations-submit-card .theme-btn.style-two {
    min-width: 210px;
    text-align: center;
}

.school-enrollment-public-section .theme-btn.style-one,
.school-enrollment-public-section .theme-btn.style-two {
    border-radius: 6px;
}

.school-enrollment-public-section .theme-btn.style-two {
    border: 1px solid #dbe6ee;
    background: #ffffff;
    color: #007AC2 !important;
}

.school-enrollment-public-section .theme-btn.style-two:hover,
.school-enrollment-public-section .theme-btn.style-two:focus {
    border-color: #007AC2;
    background: #007AC2;
    color: #ffffff !important;
}

.association-submission-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem 1.2rem;
    margin: 0;
}

.association-submission-grid dt {
    margin-bottom: 0.2rem;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
}

.association-submission-grid dd {
    margin-bottom: 0;
    color: #0f172a;
    font-weight: 600;
    word-break: break-word;
}

.association-submission-grid a {
    color: #007AC2;
}

.directory-submit-legacy-title {
    display: none;
}

.directory-submit-title-section {
    min-height: 500px;
    padding-top: 176px;
}

.directory-submit-section {
    position: relative;
    background:
        radial-gradient(circle at 10% 0%, rgba(0, 122, 194, 0.08) 0, rgba(0, 122, 194, 0) 32%),
        radial-gradient(circle at 88% 8%, rgba(255, 210, 82, 0.18) 0, rgba(255, 210, 82, 0) 28%),
        #f6f9fc;
}

.directory-submit-section.public-theme-content {
    padding-top: 42px;
}

.directory-submit-section .associations-submit-card {
    position: relative;
    padding: 0;
    border: 1px solid #e4edf4;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.07);
    overflow: hidden;
}

.directory-submit-section .associations-submit-card > .sec-title {
    margin-bottom: 0;
    padding: 34px 38px 30px;
    border-bottom: 1px solid #edf2f6;
    background:
        linear-gradient(135deg, rgba(0, 122, 194, 0.08), rgba(255, 210, 82, 0.14)),
        #ffffff;
}

.directory-submit-section .associations-submit-card > .sec-title h2 {
    color: #1f2235;
}

.directory-submit-section .associations-submit-card > .sec-title p {
    max-width: 780px;
    margin-top: 12px;
    color: #696b7e;
    line-height: 1.7;
}

.directory-submit-section .form-accessibility-error,
.directory-submit-section .form-required-note,
.directory-submit-section .associations-submit-card form {
    margin-right: 38px;
    margin-left: 38px;
}

.directory-submit-section .form-accessibility-error {
    margin-top: 30px;
}

.directory-submit-section .form-required-note {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    margin-top: 28px;
    margin-bottom: 20px;
    padding: 9px 13px;
    border-radius: 999px;
    background: #eaf6fc;
    color: #007AC2;
    font-size: 13px;
    font-weight: 800;
}

.directory-submit-section .associations-submit-card form {
    padding-bottom: 38px;
}

.directory-submit-section .form-label {
    color: #1f2235;
    font-size: 14px;
    font-weight: 800;
}

.directory-submit-section .form-control,
.directory-submit-section .form-select {
    min-height: 52px;
    border: 1px solid #dbe6ee;
    border-radius: 6px;
    background: #ffffff;
    color: #53606f;
    box-shadow: none;
}

.directory-submit-section textarea.form-control {
    padding-top: 14px;
}

.directory-submit-section .form-control:focus,
.directory-submit-section .form-select:focus {
    border-color: rgba(0, 122, 194, 0.55);
    box-shadow: 0 0 0 4px rgba(0, 122, 194, 0.08);
}

.directory-submit-section .form-text {
    margin-top: 8px;
    color: #64748b;
}

.directory-submit-section .rgpd-form-notice {
    padding: 24px 26px;
    border: 1px solid #e4edf4;
    border-left: 5px solid #007AC2;
    border-radius: 8px;
    background: #f6f9fc;
}

.directory-submit-section .rgpd-form-notice h3 {
    margin-bottom: 12px;
    color: #1f2235;
    font-size: 22px;
}

.directory-submit-section .rgpd-form-notice p {
    color: #53606f;
    line-height: 1.7;
}

.directory-submit-section .rgpd-form-notice p:last-child {
    margin-bottom: 0;
}

.directory-submit-section .rgpd-form-notice a {
    color: #007AC2;
    font-weight: 800;
}

.directory-submit-section .theme-btn.style-one,
.directory-submit-section .theme-btn.style-two {
    border-radius: 6px;
}

.directory-submit-section .theme-btn.style-two {
    border: 1px solid #dbe6ee;
    background: #ffffff;
    color: #007AC2 !important;
}

.directory-submit-section .theme-btn.style-two:hover,
.directory-submit-section .theme-btn.style-two:focus {
    border-color: #007AC2;
    background: #007AC2;
    color: #ffffff !important;
}

@media (max-width: 991px) {
    .portal-title-section {
        min-height: 360px;
        padding: 104px 0 24px;
    }

    .portal-page-section.sec-pad-2 {
        padding-top: 36px;
    }

    .portal-title-content h1 {
        font-size: 42px;
    }

    .portal-title-content p {
        font-size: 1rem;
    }

    .public-title-section {
        min-height: 360px;
        padding: 104px 0 24px;
    }

    .public-title-content h1 {
        font-size: 40px;
    }

    .standard-title-section + .sidebar-page-container.sec-pad-2 {
        padding-top: 48px;
    }

    .portal-page-section .portal-page-content .upper-box,
    .portal-page-section .portal-page-content .text-box,
    .portal-page-section .page-dynamic-sections,
    .portal-children-block {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }

    .portal-page-section .page-dynamic-sections {
        gap: 28px;
    }

    .portal-page-section .page-section-quick-access .col-lg-4 {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .portal-page-section .portal-page-content .title-box {
        gap: 0.8rem;
    }

    .portal-children-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .portal-child-card {
        min-height: 0;
    }

    .associations-public-actions {
        justify-content: flex-start;
    }

    .public-directory-submit-callout {
        align-items: flex-start;
        flex-direction: column;
        padding: 22px;
    }

    .public-directory-submit-callout .theme-btn {
        width: 100%;
        text-align: center;
    }

    .associations-public-meta {
        grid-template-columns: 1fr;
    }

    .associations-public-card {
        padding: 1.35rem;
    }

    .associations-public-card-actions {
        flex-direction: column;
    }

    .associations-public-action {
        width: 100%;
    }

    .module-page-binding-card__header {
        flex-direction: column;
    }

    .associations-submit-section .associations-submit-card {
        padding: 1.5rem;
    }

    .directory-submit-title-section {
        min-height: 410px;
        padding-top: 142px;
    }

    .directory-submit-section.public-theme-content {
        padding-top: 36px;
    }

    .directory-submit-section .associations-submit-card {
        padding: 0;
    }

    .directory-submit-section .associations-submit-card > .sec-title,
    .directory-submit-section .form-accessibility-error,
    .directory-submit-section .form-required-note,
    .directory-submit-section .associations-submit-card form {
        margin-right: 24px;
        margin-left: 24px;
    }

    .directory-submit-section .associations-submit-card > .sec-title {
        margin-right: 0;
        margin-left: 0;
        padding: 30px 24px 26px;
    }

    .faq-public-list-content {
        margin-bottom: 2rem;
    }

    .faq-public-list-content .filter-box.faq-filter-box--with-reset {
        padding-right: 0;
    }

    .news-public-list-content .filter-box .faq-filter-search {
        border-right: 0;
    }

    .news-public-list-content .filter-box .faq-filter-reset {
        position: relative;
        right: auto;
        width: 100%;
    }

    .news-public-list-content .filter-box .faq-filter-reset .theme-btn {
        width: 100%;
    }

    .association-submission-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575px) {
    .directory-submit-title-section {
        min-height: 360px;
        padding-top: 116px;
    }

    .directory-submit-section.public-theme-content {
        padding-top: 30px;
    }

    .directory-submit-section .associations-submit-card > .sec-title {
        padding: 24px 20px 22px;
    }

    .directory-submit-section .form-accessibility-error,
    .directory-submit-section .form-required-note,
    .directory-submit-section .associations-submit-card form {
        margin-right: 20px;
        margin-left: 20px;
    }

    .directory-submit-section .associations-submit-card form {
        padding-bottom: 24px;
    }

    .directory-submit-section .rgpd-form-notice {
        padding: 20px;
    }

    .portal-title-section {
        min-height: 320px;
        padding: 90px 0 22px;
    }

    .portal-title-content h1 {
        font-size: 34px;
        line-height: 1.08;
    }

    .portal-title-eyebrow {
        gap: 0.4rem;
    }

    .portal-title-eyebrow span,
    .portal-title-eyebrow a {
        min-height: 28px;
        padding: 0.2rem 0.6rem;
    }

    .public-title-section {
        min-height: 320px;
        padding: 90px 0 22px;
    }

    .public-title-content h1 {
        font-size: 32px;
        line-height: 1.08;
    }

    .public-title-eyebrow {
        gap: 0.4rem;
    }

    .public-title-eyebrow span,
    .public-title-eyebrow a {
        min-height: 28px;
        padding: 0.2rem 0.6rem;
    }

    .portal-page-section .portal-page-content .title-box {
        flex-direction: column;
    }

    .portal-children-heading h2 {
        font-size: 26px;
    }

    .portal-child-card {
        flex-direction: column;
    }

    .portal-child-card-link {
        align-self: flex-start;
    }
}

.error-inline-link {
    color: #007AC2;
    font-weight: 600;
}

.error-inline-link:hover,
.error-inline-link:focus {
    color: #1f2937;
}

.public-theme-content {
    padding: 90px 0;
}

.public-theme-shell {
    background: #ffffff;
}

.site-message-banner {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: linear-gradient(110deg, #073c5d, #0b2c46);
    color: #f4f9fd;
    border-bottom: 1px solid rgba(255, 255, 255, .16);
    font-size: 14px;
    line-height: 1.5;
}
.site-message-banner::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    background: linear-gradient(115deg, rgba(0, 122, 194, .3) 0 18%, transparent 18% 80%, rgba(0, 122, 194, .12) 80%);
    pointer-events: none;
}
.site-message-inner { display: flex; align-items: center; gap: 28px; padding-top: 14px; padding-bottom: 14px; }
.site-message-label { display: inline-flex; align-items: center; gap: 8px; flex-shrink: 0; padding: 6px 12px; border-radius: 20px; background: #ffd252; color: #173b55; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.site-message-label i { font-size: 14px; }
.site-message-list { flex: 1; min-width: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 12px 24px; }
.site-message-content { overflow-wrap: anywhere; padding-left: 16px; border-left: 2px solid rgba(128, 201, 240, .45); }
.site-message-content p { margin: 0; color: inherit; font-size: inherit; line-height: inherit; }
.site-message-content strong { color: #fff; }
.site-message-content a { color: #fff; text-decoration: underline; text-decoration-color: #80c9f0; text-underline-offset: 3px; font-weight: 600; }
.site-message-content a:hover { color: #ffd252; text-decoration-color: currentColor; }
.site-message-content a:focus-visible { outline: 2px solid #ffd252; outline-offset: 3px; }
@media (max-width: 767px) {
    .site-message-inner { flex-direction: column; align-items: flex-start; gap: 10px; padding-top: 12px; padding-bottom: 12px; }
    .site-message-list { width: 100%; grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .site-message-content { padding-left: 12px; }
    .site-message-banner { font-size: 13px; }
}

.app-notification-stack {
    display: grid;
    gap: 0.9rem;
}

.admin-toast-stack {
    position: fixed;
    top: 5.5rem;
    right: 1.5rem;
    z-index: 1085;
    width: min(26rem, calc(100vw - 2rem));
    max-height: calc(100vh - 7rem);
    overflow-y: auto;
    padding-right: 0.25rem;
}

.admin-toast-stack .admin-toast.toast {
    display: block;
    width: 100%;
    padding: 0;
    gap: 0;
    border-radius: 0.5rem;
    border: 0 !important;
    box-shadow: 0 16px 36px rgba(15, 23, 42, 0.18);
    background-clip: padding-box;
}

.admin-toast-stack .admin-toast.toast .toast-header {
    background: transparent;
    color: inherit;
    display: flex;
    align-items: center;
    padding: 0.5rem 0.75rem;
    border-bottom-color: rgba(255, 255, 255, 0.18);
}

.admin-toast-stack .admin-toast.toast .toast-header small,
.admin-toast-stack .admin-toast.toast .toast-body,
.admin-toast-stack .admin-toast.toast .app-notification-message {
    color: inherit;
}

.admin-toast-stack .admin-toast.toast .toast-body {
    display: block;
    padding: 0.75rem;
    font-size: 0.8rem;
    line-height: 1.45;
}

.admin-toast-stack .admin-toast.toast .admin-toast-title {
    margin-bottom: 0;
    font-weight: 600;
}

.admin-toast-stack .admin-toast.toast .btn-close {
    margin-right: 0;
}

.admin-toast-stack .admin-toast.toast.text-bg-warning .toast-header,
.admin-toast-stack .admin-toast.toast.text-bg-warning .toast-body,
.admin-toast-stack .admin-toast.toast.text-bg-warning .app-notification-message,
.admin-toast-stack .admin-toast.toast.text-bg-warning .toast-header small,
.admin-toast-stack .admin-toast.toast.text-bg-warning .admin-toast-title {
    color: #1f2937;
}

.admin-toast-stack .admin-toast.toast.text-bg-warning .btn-close {
    filter: none;
}

.admin-toast.is-closing {
    opacity: 0;
    transform: translateY(-8px);
}

.app-notification {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem;
    border-radius: 1rem;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-left-width: 4px;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.07);
    background: #ffffff;
    transition: opacity 0.25s ease, transform 0.25s ease;
    animation: appNotificationSlideIn 0.28s ease;
}

.app-notification.is-closing {
    opacity: 0;
    transform: translateY(-8px);
}

.app-notification-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    flex: 0 0 2.75rem;
    border-radius: 999px;
    font-size: 1.3rem;
}

.app-notification-body {
    min-width: 0;
    flex: 1 1 auto;
}

.app-notification-title {
    display: block;
    margin-bottom: 0.2rem;
    font-weight: 800;
}

.app-notification-message {
    color: #334155;
    line-height: 1.55;
}

.app-notification-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #64748b;
    flex: 0 0 auto;
}

.app-notification-close:hover {
    background: rgba(148, 163, 184, 0.12);
    color: #0f172a;
}

.app-notification-success {
    border-color: rgba(34, 197, 94, 0.22);
    background: linear-gradient(180deg, #f0fdf4 0%, #ffffff 100%);
}

.app-notification-success .app-notification-icon {
    background: rgba(34, 197, 94, 0.12);
    color: #15803d;
}

.app-notification-success .app-notification-title {
    color: #166534;
}

.app-notification-error {
    border-color: rgba(239, 68, 68, 0.22);
    background: linear-gradient(180deg, #EAF7FC 0%, #ffffff 100%);
}

.app-notification-error .app-notification-icon {
    background: rgba(239, 68, 68, 0.12);
    color: #007AC2;
}

.app-notification-error .app-notification-title {
    color: #991b1b;
}

.app-notification-warning {
    border-color: rgba(245, 158, 11, 0.24);
    background: linear-gradient(180deg, #fffbeb 0%, #ffffff 100%);
}

.app-notification-warning .app-notification-icon {
    background: rgba(245, 158, 11, 0.14);
    color: #d97706;
}

.app-notification-warning .app-notification-title {
    color: #92400e;
}

.app-notification-info {
    border-color: rgba(59, 130, 246, 0.22);
    background: linear-gradient(180deg, #eff6ff 0%, #ffffff 100%);
}

.app-notification-info .app-notification-icon {
    background: rgba(59, 130, 246, 0.12);
    color: #2563eb;
}

.app-notification-info .app-notification-title {
    color: #1d4ed8;
}

@keyframes appNotificationSlideIn {
    from {
        opacity: 0;
        transform: translate3d(18px, -10px, 0);
    }

    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@media (max-width: 767.98px) {
    .admin-toast-stack {
        top: 4.75rem;
        right: 0.75rem;
        left: 0.75rem;
        width: auto;
        max-height: calc(100vh - 5.75rem);
    }

    .app-notification {
        gap: 0.75rem;
        padding: 0.9rem 0.95rem;
    }

    .app-notification-icon {
        width: 2.35rem;
        height: 2.35rem;
        flex-basis: 2.35rem;
        font-size: 1.1rem;
    }
}

.public-content-card {
    background: #ffffff;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
    padding: 48px;
}

.public-content-card > p:only-child {
    margin: 0;
    padding: 34px 28px;
    border: 1px dashed rgba(0, 122, 194, 0.28);
    border-radius: 8px;
    background: rgba(0, 122, 194, 0.04);
    color: #696b7e;
    font-size: 17px;
    line-height: 1.65;
    text-align: center;
}

.news-section .public-content-card,
.events-list .public-content-card {
    margin-top: 10px;
    border-radius: 8px;
}

.disruptions-public-section .filter-box {
    padding-right: 170px;
}

.disruptions-public-section .filter-box .form-group {
    width: 33.333%;
}

.disruptions-public-section .filter-box .disruptions-status-filter {
    border-left: 1px solid #e6e6ea;
}

.disruptions-map-card {
    margin-bottom: 45px;
    padding: 38px;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 24px 60px rgba(15, 22, 41, 0.09);
}

.disruptions-public-map,
.disruption-detail-map {
    min-height: 420px;
    border-radius: 10px;
    overflow: hidden;
    background: #eef1f6;
}

.disruptions-public-column {
    margin-bottom: 30px;
}

.disruptions-public-card,
.disruption-detail-card,
.disruption-detail-info {
    height: 100%;
    padding: 34px;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 22px 55px rgba(15, 22, 41, 0.08);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.disruptions-public-card {
    border: 1px solid transparent;
}

.disruptions-public-card:hover,
.disruptions-public-card.is-map-active {
    transform: translateY(-4px);
    border-color: rgba(0, 122, 194, 0.28);
    box-shadow: 0 28px 70px rgba(15, 22, 41, 0.13);
}

.disruptions-card-top {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    margin-bottom: 18px;
}

.disruptions-type-badge,
.disruptions-status-badge,
.disruptions-impact-badge {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 6px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.disruptions-type-badge {
    color: #007AC2;
    background: rgba(0, 122, 194, 0.09);
}

.disruptions-status-badge {
    color: #ffffff;
    background: #252638;
}

.disruptions-status-ongoing {
    background: #007AC2;
}

.disruptions-status-planned {
    background: #f59e0b;
}

.disruptions-status-done {
    background: #16a34a;
}

.disruptions-impact-badge {
    color: #252638;
    background: #eef1f7;
}

.disruptions-impact-attention {
    color: #9a5b00;
    background: rgba(245, 158, 11, 0.14);
}

.disruptions-impact-important {
    color: #005F97;
    background: rgba(0, 122, 194, 0.12);
}

.disruptions-impact-critical {
    color: #ffffff;
    background: #991b1b;
}

.disruptions-public-card h3 {
    margin-bottom: 16px;
    color: #1f2235;
    font-size: 25px;
    line-height: 1.22;
}

.disruptions-public-card h3 a {
    color: inherit;
}

.disruptions-public-card p,
.disruption-detail-card p {
    color: #696b7e;
    line-height: 1.75;
}

.disruptions-meta {
    margin: 0 0 18px;
}

.disruptions-meta li {
    display: flex;
    gap: 10px;
    color: #696b7e;
    font-weight: 600;
}

.disruptions-meta li + li {
    margin-top: 8px;
}

.disruptions-meta i {
    color: #007AC2;
    line-height: 1.6;
}

.disruptions-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: center;
    margin-top: 22px;
}

.disruptions-card-actions a,
.disruptions-card-actions button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 0;
    background: transparent;
    color: #007AC2;
    font-weight: 800;
    cursor: pointer;
}

.disruption-detail-section {
    background: #f7f8fb;
}

.disruption-detail-card .lead {
    margin-bottom: 30px;
    color: #1f2235;
    font-size: 20px;
    font-weight: 600;
}

.disruption-detail-block + .disruption-detail-block {
    margin-top: 30px;
    padding-top: 30px;
    border-top: 1px solid #e6e6ea;
}

.disruption-detail-block h3,
.disruption-detail-info h3 {
    margin-bottom: 16px;
    color: #1f2235;
    font-size: 25px;
}

.disruption-impact-block {
    padding: 26px;
    border-radius: 10px;
    background: rgba(0, 122, 194, 0.05);
}

.disruption-impact-block-attention {
    background: rgba(245, 158, 11, 0.12);
}

.disruption-impact-block-important {
    background: rgba(0, 122, 194, 0.08);
}

.disruption-impact-block-critical {
    color: #ffffff;
    background: #991b1b;
}

.disruption-impact-block-critical h3,
.disruption-impact-block-critical p {
    color: #ffffff;
}

.disruption-detail-sidebar {
    position: sticky;
    top: 110px;
}

.disruption-detail-info {
    margin-bottom: 28px;
}

.disruption-detail-info ul {
    margin: 0;
}

.disruption-detail-info li {
    display: grid;
    gap: 6px;
    padding: 16px 0;
    border-bottom: 1px solid #e6e6ea;
}

.disruption-detail-info li:last-child {
    border-bottom: 0;
}

.disruption-detail-info strong {
    color: #1f2235;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.disruption-detail-info span {
    color: #696b7e;
}

.home-disruptions-section {
    padding: 95px 0;
    background: #f7f8fb;
}

.home-disruption-card {
    height: 100%;
    padding: 34px;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 20px 55px rgba(15, 22, 41, 0.08);
    border-top: 5px solid #007AC2;
}

.home-disruption-impact-info {
    border-top-color: #64748b;
}

.home-disruption-impact-attention {
    border-top-color: #f59e0b;
}

.home-disruption-impact-important {
    border-top-color: #007AC2;
}

.home-disruption-impact-critical {
    border-top-color: #991b1b;
}

.home-disruption-card > span {
    display: inline-flex;
    margin-bottom: 15px;
    padding: 7px 12px;
    border-radius: 999px;
    color: #007AC2;
    background: rgba(0, 122, 194, 0.08);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.home-disruption-card h3 {
    margin-bottom: 14px;
    color: #1f2235;
    font-size: 24px;
    line-height: 1.22;
}

.home-disruption-card h3 a {
    color: inherit;
}

.home-disruption-card p {
    color: #696b7e;
    line-height: 1.7;
}

.home-disruption-card p i {
    margin-right: 8px;
    color: #007AC2;
}

.home-disruption-card > a {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    margin-top: 6px;
    color: #007AC2;
    font-weight: 800;
}

.public-site-tagline {
    padding-top: 18px;
    color: #6b7280;
    font-size: 15px;
}

.theme-footer-contact p {
    margin-bottom: 10px;
    color: #c9d4e2;
}

.theme-footer-contact a {
    color: #ffffff;
}

.footer-cta-box .form-group {
    display: block;
}

.footer-labels-top-inner {
    position: relative;
    padding: 24px 0 30px;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.footer-labels-top-inner::before,
.footer-labels-top-inner::after {
    content: none;
}

.footer-labels-block {
    position: relative;
    display: grid;
    grid-template-columns: minmax(230px, 0.64fr) minmax(0, 2.35fr);
    align-items: center;
    gap: 30px;
}

.footer-labels-heading h3 {
    position: relative;
    margin-bottom: 0;
    padding-bottom: 14px;
    color: #ffffff;
    font-size: 24px;
    line-height: 1.25;
    font-weight: 700;
}

.footer-labels-heading h3::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 40px;
    height: 3px;
    border-radius: 999px;
    background: #80c9f0;
}

.footer-labels-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    align-items: center;
    padding: 10px 12px;
    background: #f4f8fb;
    border-radius: 56px 12px 56px 12px;
    box-shadow: 0 6px 20px rgba(0, 30, 60, 0.1);
}

.footer-label-card {
    position: relative;
    min-height: 110px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px 18px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    box-shadow: none;
    transition: transform 0.22s ease;
}

.footer-label-card + .footer-label-card::before {
    content: '';
    position: absolute;
    top: 25%;
    bottom: 25%;
    left: 0;
    width: 1px;
    background: #d6e3ed;
}

a.footer-label-card:hover,
a.footer-label-card:focus-visible {
    transform: translateY(-3px);
    box-shadow: none;
}

a.footer-label-card:focus-visible {
    outline: 3px solid #80c9f0;
    outline-offset: 4px;
}

.footer-label-card img {
    max-width: 100%;
    max-height: 82px;
    object-fit: contain;
    filter: none;
}

@media (prefers-reduced-motion: reduce) {
    a.footer-label-card { transition: none; }
    a.footer-label-card:hover, a.footer-label-card:focus-visible { transform: none; }
}

.footer-social-inline {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 20px;
}

.footer-social-inline a {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    transition: all 0.3s ease;
}

.footer-social-inline a:hover {
    background: #ffffff;
    color: #007AC2;
}

.footer-report-box .upper {
    align-items: center;
}

.footer-report-box {
    position: relative;
    padding: 24px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-left: 5px solid #ffd252;
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0.05) 100%);
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.16);
    overflow: hidden;
}

body:not(.admin-body) .main-footer .register-widget .inner-box.footer-report-box {
    padding: 24px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-left: 5px solid #ffd252;
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0.05) 100%) !important;
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.16);
}

.footer-report-box::after {
    content: "";
    position: absolute;
    right: -34px;
    bottom: -44px;
    width: 128px;
    height: 128px;
    border: 18px solid rgba(255, 210, 82, 0.12);
    border-radius: 50%;
}

.footer-report-box .upper,
.footer-report-box p,
.footer-report-box .footer-report-link {
    position: relative;
    z-index: 1;
}

.footer-report-box .upper .icon-box {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 8px;
    background: rgba(255, 210, 82, 0.18);
    color: #ffd252;
}

.footer-report-box .upper h4 {
    color: #ffffff;
}

.footer-report-box p {
    margin-bottom: 24px;
    color: rgba(255, 255, 255, 0.82);
}

.footer-report-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 12px 24px;
    border: 1px solid rgba(255, 210, 82, 0.42);
    border-radius: 6px;
    background: #ffd252;
    color: #12343b;
    font-weight: 800;
    transition: all 0.3s ease;
}

body:not(.admin-body) .main-footer .footer-report-link {
    border: 1px solid rgba(255, 210, 82, 0.42);
    background: #ffd252 !important;
    color: #12343b !important;
}

body:not(.admin-body) .main-footer .footer-report-box .upper .icon-box {
    background: rgba(255, 210, 82, 0.18) !important;
    color: #ffd252 !important;
}

.footer-report-link:hover,
.footer-report-link:focus {
    border-color: #ffffff;
    background: #ffffff;
    color: #007AC2;
}

.public-home-section + .public-home-section {
    padding-top: 0;
}

.banner-section.style-two .slide-item .image-layer {
    background-position: center center;
}

.banner-section.style-two .content-box p {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

.home-hero {
    position: relative;
    background: #f6f9fc;
}

.home-hero::after {
    content: '';
    position: absolute;
    z-index: 2;
    bottom: -1px;
    left: 0;
    right: 0;
    height: clamp(80px, 11vw, 160px);
    background: linear-gradient(to bottom, rgba(246, 249, 252, 0), rgba(246, 249, 252, .55) 60%, #f6f9fc 100%);
    pointer-events: none;
}

.banner-section.home-hero .banner-carousel .slide-item::before {
    opacity: 0;
}

.home-hero .content-box h1 {
    text-shadow: 0 2px 4px rgba(9, 23, 38, .8), 0 6px 22px rgba(9, 23, 38, .6);
}

.home-hero .content-box p {
    text-shadow: 0 1px 3px rgba(9, 23, 38, .95), 0 3px 12px rgba(9, 23, 38, .85);
    font-weight: 600;
}

.banner-section.home-hero .content-box h1::before {
    box-shadow: 0 2px 5px rgba(9, 23, 38, .6);
}

.home-hero + .home-quick-access-section {
    padding-top: 56px;
}

.home-hero + .home-quick-access-section::before {
    background: linear-gradient(to bottom, #f6f9fc, rgba(246, 249, 252, .9) 150px);
}

@media (max-width: 767px) {
    .home-hero + .home-quick-access-section {
        padding-top: 32px;
    }
}

.home-service-image img {
    min-height: 260px;
    object-fit: cover;
}

.home-quick-access-section {
    position: relative;
    padding: 92px 0 70px;
    background-color: #f6f9fc;
}

.home-quick-access-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(246, 249, 252, 0.9);
}

.home-quick-access-section .auto-container {
    position: relative;
}

.home-quick-access-section .service-block-one .inner-box {
    min-height: 180px;
    display: flex;
    flex-direction: column;
    padding-bottom: 24px;
    border: 1px solid #e4edf4;
    border-left: 5px solid #007AC2;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.07);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.home-quick-access-section .service-block-one .inner-box:hover {
    border-color: rgba(0, 122, 194, 0.28);
    box-shadow: 0 24px 60px rgba(15, 22, 41, 0.1);
    transform: translateY(-3px);
}

.home-quick-access-section .service-block-one .inner-box h4 {
    margin-bottom: 16px;
}

.home-quick-access-section .quick-access-card-footer {
    margin-top: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.home-quick-access-section .service-block-one .inner-box .btn-box {
    position: relative;
    z-index: 2;
    margin-bottom: 0;
}

.home-quick-access-section .service-block-one .inner-box .icon-box {
    position: relative;
    right: auto;
    bottom: auto;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.home-quick-access-section .title-column .sec-title {
    margin-top: 22px;
}

.home-quick-access-intro {
    max-width: 440px;
    margin: 22px auto 0;
    color: #6b7280;
    line-height: 1.8em;
}

.home-quick-access-section .service-block-one .btn-box a {
    text-transform: none;
}

.home-news-section.news-section.bg-color-1 {
    position: relative;
    padding: 86px 0 88px;
    overflow: hidden;
    background:
        radial-gradient(circle at 12% 12%, rgba(0, 122, 194, 0.10) 0, rgba(0, 122, 194, 0) 30%),
        radial-gradient(circle at 88% 20%, rgba(255, 210, 82, 0.24) 0, rgba(255, 210, 82, 0) 28%),
        linear-gradient(135deg, #f6f9fc 0%, #ffffff 54%, #f9fcff 100%);
}

.home-news-section.news-section.bg-color-1::before,
.home-news-section.news-section.bg-color-1::after {
    content: "";
    position: absolute;
    pointer-events: none;
}

.home-news-section.news-section.bg-color-1::before {
    left: -86px;
    bottom: -128px;
    width: 310px;
    height: 230px;
    border: 28px solid rgba(0, 122, 194, 0.07);
    border-radius: 50%;
    transform: rotate(-16deg);
}

.home-news-section.news-section.bg-color-1::after {
    top: 42px;
    right: max(24px, calc((100vw - 1170px) / 2));
    width: 118px;
    height: 118px;
    border-radius: 50%;
    background:
        linear-gradient(90deg, rgba(0, 122, 194, 0.16), transparent 2px) 0 0 / 18px 18px,
        linear-gradient(rgba(0, 122, 194, 0.12), transparent 2px) 0 0 / 18px 18px;
    opacity: 0.5;
}

.home-news-section .auto-container {
    position: relative;
    z-index: 1;
}

.home-news-section .sec-title {
    margin-bottom: 42px;
}

.home-news-section .sec-title h6 {
    margin-bottom: 10px;
}

.home-news-section .sec-title h2 {
    color: #1f2235;
}

.home-news-section .news-block {
    margin-bottom: 30px;
}

.home-news-section .news-block-one,
.home-news-section .news-block-one .inner-box {
    height: 100%;
}

.home-news-section .news-block-one .inner-box {
    overflow: hidden;
    border: 1px solid #e4edf4;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.07);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.home-news-section .news-block-one .inner-box:hover {
    border-color: rgba(0, 122, 194, 0.24);
    box-shadow: 0 24px 58px rgba(15, 22, 41, 0.10);
    transform: translateY(-3px);
}

.home-news-section .news-block-one .inner-box::before {
    inset: 10px;
    width: auto;
    height: auto;
    pointer-events: none;
}

.home-news-section .news-block-one .image-box .image {
    aspect-ratio: 16 / 10;
    overflow: hidden;
}

.home-news-section .news-block-one .image-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-news-section .news-block-one .lower-content {
    padding: 26px 28px 28px;
}

.home-news-section .news-block-one .lower-content h4 {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.quick-access-visual-image {
    width: 54px;
    height: 54px;
    object-fit: cover;
    border-radius: 50%;
    display: inline-block;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

.home-quick-access-section .service-block-one .icon-box i[class^="bx"],
.home-quick-access-section .service-block-one .icon-box i[class*=" bx"] {
    display: inline-block;
    font-size: 50px;
    line-height: 1;
    vertical-align: middle;
}

.quick-access-media-preview,
.quick-access-table-visual {
    display: inline-flex;
    align-items: center;
    gap: 12px;
}

.quick-access-media-preview img,
.quick-access-table-visual img {
    width: 48px;
    height: 48px;
    object-fit: cover;
    border-radius: 12px;
}

.quick-access-table-visual i {
    font-size: 1.5rem;
    color: #007AC2;
}

.home-slide-media-tools {
    display: grid;
    gap: 0.75rem;
    padding: 1rem;
    border: 1px dashed rgba(15, 23, 42, 0.14);
    border-radius: 1rem;
    background: #f8fafc;
}

.home-slide-media-picker {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 0.85rem;
    max-height: 420px;
    overflow: auto;
    padding: 0.25rem;
}

.home-slide-media-card {
    display: grid;
    gap: 0.7rem;
    padding: 0.7rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1rem;
    background: #ffffff;
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.home-slide-media-card:hover,
.home-slide-media-card:has(input:checked),
.home-slide-media-card.is-selected {
    border-color: rgba(132, 90, 223, 0.45);
    box-shadow: 0 0 0 2px rgba(132, 90, 223, 0.12);
    transform: translateY(-1px);
}

.home-slide-media-card input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.home-slide-media-card-image img {
    width: 100%;
    height: 120px;
    object-fit: cover;
    border-radius: 0.85rem;
}

.home-slide-media-card-body {
    display: grid;
    gap: 0.2rem;
    min-width: 0;
}

.home-slide-media-card-body strong,
.home-slide-media-card-body span {
    overflow-wrap: anywhere;
}

.home-slide-media-card-body span {
    color: #64748b;
    font-size: 0.82rem;
}

.home-slide-selected-media {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 1rem;
    padding: 1rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1rem;
    background: #ffffff;
}

.home-slide-selected-media-preview {
    min-height: 140px;
    border-radius: 0.9rem;
    overflow: hidden;
    background: #f8fafc;
    border: 1px dashed rgba(15, 23, 42, 0.12);
}

.home-slide-selected-media-preview img {
    width: 100%;
    height: 100%;
    min-height: 140px;
    object-fit: cover;
    display: block;
}

.home-slide-selected-media-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 140px;
    padding: 1rem;
    color: #64748b;
    text-align: center;
}

.home-slide-selected-media-body {
    display: grid;
    gap: 0.35rem;
    align-content: start;
}

.home-slide-selected-media-body span {
    color: #64748b;
}

.quick-access-icon-picker {
    border: 1px solid rgba(148, 163, 184, 0.25);
    border-radius: 1rem;
    padding: 1rem;
    background: #f8fafc;
}

.quick-access-icon-search {
    width: min(100%, 280px);
}

.quick-access-icon-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 0.75rem;
    max-height: 420px;
    overflow: auto;
    padding-right: 0.25rem;
}

.quick-access-icon-option {
    border: 1px solid rgba(148, 163, 184, 0.22);
    background: #fff;
    border-radius: 0.9rem;
    padding: 0.9rem 0.75rem;
    display: grid;
    gap: 0.55rem;
    align-items: center;
    justify-items: center;
    text-align: center;
    transition: 0.2s ease;
}

.quick-access-icon-option:hover,
.quick-access-icon-option.is-selected {
    border-color: rgba(139, 92, 246, 0.45);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
    transform: translateY(-1px);
}

.quick-access-icon-option i {
    font-size: 1.8rem;
    color: #007AC2;
    line-height: 1;
}

.quick-access-icon-option span {
    font-size: 0.76rem;
    line-height: 1.35;
    color: #475569;
    word-break: break-word;
}

.public-home-section .section-title {
    margin-bottom: 40px;
}

.public-grid-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 30px;
}

body:not(.admin-body) .public-page-content > section:last-of-type {
    padding-bottom: 170px;
}

.footer-city-services {
    top: -50px;
    margin-bottom: -50px;
}

.footer-city-services .inner-container {
    margin-top: 0;
}

.footer-city-services .single-item {
    padding: 0 20px 24px;
}

.footer-city-services .single-item h4 {
    color: #1f2235;
}

.footer-city-services a.single-item {
    display: block;
    height: 100%;
    color: inherit;
    text-decoration: none;
    border-radius: 5px;
    -webkit-tap-highlight-color: transparent;
}

.footer-city-services a.single-item::after {
    content: '';
    position: absolute;
    bottom: 12px;
    left: calc(50% - 18px);
    width: 36px;
    height: 3px;
    border-radius: 3px;
    background: #007ac2;
    opacity: 0;
    transform: scaleX(0.35);
    transition: transform 220ms ease, opacity 220ms ease;
}

.footer-city-services a.single-item .icon-box {
    transition: transform 220ms ease, color 220ms ease;
}

.footer-city-services a.single-item h4 {
    transition: color 220ms ease;
}

.footer-city-services a.single-item:is(:hover, :focus-visible) .icon-box {
    transform: translateY(-5px);
    color: #007ac2;
}

.footer-city-services a.single-item:is(:hover, :focus-visible)::after {
    opacity: 1;
    transform: scaleX(1);
}

.footer-city-services a.single-item:hover h4,
.footer-city-services a.single-item:focus-visible h4 {
    color: #007ac2;
}

.footer-city-services a.single-item:focus-visible {
    outline: 3px solid #007ac2;
    outline-offset: 4px;
}

body:not(.admin-body) .main-footer .footer-top {
    padding-top: 24px;
    padding-bottom: 30px;
}

@media (max-width: 991px) {
    .footer-city-services .row {
        row-gap: 56px;
    }
}

@media (max-width: 767px) {
    body:not(.admin-body) .public-page-content > section:last-of-type {
        padding-bottom: 140px;
    }

    .footer-city-services .single-item::before {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .footer-city-services a.single-item::after,
    .footer-city-services a.single-item .icon-box,
    .footer-city-services a.single-item h4 {
        transition: none;
    }

    .footer-city-services a.single-item:is(:hover, :focus-visible) .icon-box {
        transform: none;
    }
}

.home-ticket-agenda { padding: 56px 0; background: #f1f6f9; }
.ticket-agenda-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.ticket-agenda-eyebrow { color: #526779; font-size: 13px; font-weight: 600; letter-spacing: .06em; }
.ticket-agenda-heading h2 { margin-top: 4px; color: #1f2235; font-size: 36px; line-height: 1.2; font-weight: 700; }
.ticket-agenda-all { display: inline-flex; gap: 12px; align-items: center; color: #006da8; font-weight: 700; white-space: nowrap; }
.ticket-agenda-all:hover { text-decoration: underline; }
.ticket-agenda-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.3fr); gap: 12px 24px; align-items: start; }
.agenda-ticket { display: block; min-width: 0; background: #fff; border: 1px solid #dfe8ee; border-radius: 14px; color: #1f2235; transition: border-color 200ms ease, box-shadow 200ms ease; }
.agenda-ticket-featured { grid-column: 1; grid-row: 1 / span 3; overflow: hidden; }
.agenda-ticket-featured:only-child { grid-column: 1 / -1; grid-row: auto; display: grid; grid-template-columns: minmax(0, .65fr) minmax(0, 1fr); }
.agenda-ticket-featured:only-child .agenda-ticket-photo { height: 180px; }
.agenda-ticket:not(.agenda-ticket-featured) { grid-column: 2; }
.agenda-ticket-photo { position: relative; height: 160px; overflow: hidden; background: linear-gradient(125deg, #007ac2, #163b5c); display: grid; place-items: center; }
.agenda-ticket-photo > img { width: 100%; height: 100%; object-fit: cover; transition: transform 300ms ease; }
.agenda-ticket-photo > i { color: #fff; font-size: 64px; }
.agenda-ticket-next { position: absolute; top: 14px; left: 16px; padding: 5px 12px; border-radius: 20px; background: #fff; color: #175272; font-size: 12px; line-height: 20px; font-weight: 700; }
.agenda-ticket-body { display: flex; align-items: center; gap: 18px; padding: 16px 20px; }
.agenda-ticket-date { flex: 0 0 76px; align-self: stretch; display: grid; place-items: center; border-right: 1px dashed #c9d7e1; padding-right: 16px; text-align: center; color: #0073b4; }
.agenda-ticket-date strong { display: block; font-size: 34px; line-height: 1.1; font-weight: 800; }
.agenda-ticket-date span { display: block; font-size: 11px; line-height: 18px; white-space: nowrap; }
.agenda-ticket-info { flex: 1; min-width: 0; }
.agenda-ticket-category { display: inline-block; color: #31627f; background: #eef5f9; padding: 1px 8px; border-radius: 4px; font-size: 10px; font-weight: 700; line-height: 18px; }
.agenda-ticket-info h3 { font-size: 17px; line-height: 1.3; font-weight: 700; color: #1f2235; margin: 5px 0; overflow-wrap: anywhere; }
.agenda-ticket-details { display: flex; flex-wrap: wrap; gap: 2px 12px; font-size: 12px; line-height: 1.5; color: #596875; }
.agenda-ticket-details span { overflow-wrap: anywhere; }
.agenda-ticket-details i { font-size: 12px; }
.agenda-ticket-arrow { color: #0073b4; font-size: 24px; transition: transform 200ms ease; }
.agenda-ticket:hover, .agenda-ticket:focus-visible { border-color: #88b8d4; box-shadow: 0 6px 20px rgb(27 73 104 / 9%); }
.agenda-ticket:hover .agenda-ticket-arrow, .agenda-ticket:focus-visible .agenda-ticket-arrow { transform: translateX(4px); }
.agenda-ticket:hover .agenda-ticket-photo > img { transform: scale(1.035); }
.agenda-ticket:focus-visible, .ticket-agenda-all:focus-visible { outline: 3px solid #007ac2; outline-offset: 4px; }
@media (max-width: 991px) {
    .ticket-agenda-grid { grid-template-columns: minmax(0, 1fr); }
    .agenda-ticket-featured, .agenda-ticket:not(.agenda-ticket-featured) { grid-column: 1; grid-row: auto; }
    .agenda-ticket-featured { display: grid; grid-template-columns: 180px minmax(0, 1fr); }
    .agenda-ticket-photo { height: 100%; min-height: 145px; }
}
@media (max-width: 575px) {
    .home-ticket-agenda { padding: 36px 0; }
    .ticket-agenda-heading { gap: 12px; align-items: flex-end; }
    .ticket-agenda-heading h2 { font-size: 28px; }
    .ticket-agenda-eyebrow { font-size: 11px; letter-spacing: 0; }
    .ticket-agenda-all { font-size: 12px; gap: 5px; }
    .agenda-ticket-featured, .agenda-ticket-featured:only-child { display: block; }
    .agenda-ticket-featured:only-child .agenda-ticket-photo { height: 135px; }
    .agenda-ticket-photo { height: 135px; min-height: 0; }
    .agenda-ticket-body { gap: 12px; padding: 14px; }
    .agenda-ticket-date { flex-basis: 65px; padding-right: 12px; }
    .agenda-ticket-info h3 { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .agenda-ticket, .agenda-ticket-arrow, .agenda-ticket-photo > img { transition: none; }
    .agenda-ticket:hover .agenda-ticket-arrow, .agenda-ticket:focus-visible .agenda-ticket-arrow, .agenda-ticket:hover .agenda-ticket-photo > img { transform: none; }
}

@media (max-width: 991.98px) {
    .home-news-section.news-section.bg-color-1 {
        padding: 72px 0 74px;
    }

    .home-news-section .sec-title {
        margin-bottom: 34px;
    }

    .home-quick-access-section .title-column {
        order: -1;
        margin-bottom: 30px;
    }

    .home-quick-access-section .title-column .sec-title {
        margin-top: 0;
    }
}

@media (max-width: 575.98px) {
    .home-news-section.news-section.bg-color-1 {
        padding: 58px 0 62px;
    }

    .home-news-section.news-section.bg-color-1::after {
        display: none;
    }

    .home-news-section .news-block-one .lower-content {
        padding: 22px;
    }

    .home-quick-access-section {
        padding-top: 64px;
        padding-bottom: 56px;
    }

    .home-quick-access-section .quick-access-card-footer {
        gap: 14px;
    }

    .cookie-consent {
        right: 12px;
        bottom: 12px;
        left: 12px;
    }

    .cookie-consent-card {
        grid-template-columns: 1fr;
        padding: 20px;
        text-align: left;
    }

    .cookie-consent-icon {
        width: 48px;
        height: 48px;
        font-size: 20px;
    }

    .cookie-consent-actions,
    .cookie-preferences-actions {
        justify-content: stretch;
    }

    .cookie-consent-actions > *,
    .cookie-preferences-actions > * {
        width: 100%;
        justify-content: center;
        text-align: center;
    }

    .cookie-preferences-panel {
        width: calc(100% - 20px);
        max-height: calc(100vh - 20px);
        margin: 10px auto;
        padding: 26px 18px;
    }

    .cookie-preference-item {
        align-items: flex-start;
    }
}

.home-facebook-post-box {
    min-height: 100%;
}

.faq-page-sidebar {
    display: grid;
    gap: 30px;
}

.faq-page-sidebar .faq-sidebar {
    padding-top: 6px;
    padding-bottom: 6px;
}

.faq-search-card {
    background: #f5f5f6;
    border-radius: 5px;
    padding: 26px 24px 24px;
}

.faq-search-card .sec-title h3 {
    font-size: 28px;
    line-height: 38px;
    font-weight: 700;
    margin-bottom: 0;
}

.faq-search-card .sec-title .title-shape {
    margin-top: 10px;
    margin-bottom: 0;
}

.faq-search-form {
    margin-top: 24px;
}

.faq-search-form .form-group {
    margin-bottom: 14px;
}

.faq-search-form .form-group:last-child {
    margin-bottom: 0;
}

.faq-search-form input[type='search'] {
    position: relative;
    display: block;
    width: 100%;
    height: 58px;
    border: 1px solid #e6e6ea;
    border-radius: 5px;
    font-size: 16px;
    color: #696b7e;
    padding: 10px 20px;
    transition: all 500ms ease;
}

.faq-search-form .message-btn .theme-btn,
.faq-search-form .faq-search-reset .theme-btn {
    display: block;
    width: 100%;
    text-align: center;
}

.faq-search-form .faq-search-reset {
    margin-top: 0;
}

.faq-search-form .select-box,
.faq-search-form .nice-select {
    min-height: 58px;
}

.faq-search-form .nice-select {
    display: flex;
    align-items: center;
}

.faq-search-form .nice-select .current {
    display: inline-block;
    width: calc(100% - 18px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.faq-sidebar .single-item.is-current {
    padding: 24px 18px 20px;
    margin: 10px -10px;
    background: #ffffff;
    border: 1px solid #e6e6ea;
    border-radius: 5px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
}

.faq-sidebar .single-item.is-current span {
    top: 24px;
    right: 18px;
}

.faq-sidebar .single-item.is-current .icon-box {
    margin-bottom: 16px;
}

.faq-sidebar .single-item.is-current h4 {
    padding-right: 82px;
}

.faq-sidebar .single-item.is-current p {
    padding-right: 22px;
}

.faq-sidebar .single-item.is-current + .single-item {
    border-top: 1px solid #e0e0ea;
}

.faq-sidebar .single-item.is-current:last-child {
    margin-bottom: 0;
}

.faq-sidebar .single-item.is-current .icon-box,
.faq-sidebar .single-item.is-current h4,
.faq-sidebar .single-item.is-current a {
    color: #007AC2;
}

.faq-page-content-wrap {
    position: relative;
    display: block;
}

.faq-page-heading {
    margin-bottom: 36px;
}

.faq-page-section .faq-theme-accordion {
    position: relative;
    margin-bottom: 0;
}

.faq-page-section .faq-theme-accordion .block .acc-btn h5 {
    position: relative;
    display: block;
    font-size: 18px;
    line-height: 28px;
    font-weight: 700;
    margin: 0;
    padding-left: 100px;
}

.faq-page-section .faq-theme-accordion .block .acc-btn h5 span {
    position: absolute;
    left: 0;
    top: 0;
    width: 70px;
    font-size: 20px;
    line-height: 28px;
    color: #8e91a2;
    font-weight: 700;
    transition: all 500ms ease;
}

.faq-page-section .faq-theme-accordion .block .acc-content .text p {
    margin-bottom: 18px;
}

.faq-empty-state {
    background: #f5f5f6;
    border-radius: 5px;
    padding: 40px 35px;
}

.faq-empty-state h3 {
    font-size: 30px;
    line-height: 40px;
    font-weight: 700;
    margin-bottom: 12px;
}

.faq-empty-state p {
    margin-bottom: 22px;
}

.faq-theme-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}

.faq-theme-category {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    line-height: 22px;
    font-weight: 700;
    text-transform: uppercase;
}

.faq-theme-anchor {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    line-height: 22px;
    font-weight: 700;
}

.faq-theme-accordion .block .acc-content .text p:last-child {
    margin-bottom: 0;
}

@media (max-width: 991.98px) {
    .faq-page-sidebar {
        margin-bottom: 40px;
    }

    .faq-page-section .faq-theme-accordion .block .acc-btn {
        padding-right: 75px;
    }

    .faq-page-section .faq-theme-accordion .block .acc-btn h5 {
        padding-left: 82px;
        font-size: 17px;
    }

    .faq-page-section .faq-theme-accordion .block .acc-btn h5 span {
        width: 58px;
        font-size: 18px;
    }

    .faq-page-section .faq-theme-accordion .block .acc-btn:before {
        left: 58px;
    }

    .faq-page-section .faq-theme-accordion .block .acc-btn:after,
    .faq-page-section .faq-theme-accordion .block .acc-btn .icon-outer {
        width: 58px;
    }
}

.home-facebook-post-image {
    margin: 0 0 22px;
    border-radius: 10px;
    overflow: hidden;
}

.page-sections-builder {
    border: 1px solid #eaecf3;
    border-radius: 1rem;
    padding: 1.35rem;
    background:
        radial-gradient(circle at top left, rgba(0, 122, 194, 0.08), transparent 32%),
        #fbfbfd;
}

.page-builder-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 290px;
    gap: 1rem;
    align-items: start;
}

.page-builder-canvas,
.page-builder-inspector {
    border: 1px solid #e5e7eb;
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.88);
}

.page-builder-canvas {
    padding: 1rem;
}

.page-builder-canvas-header,
.page-builder-panel-title {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.page-builder-canvas-header {
    justify-content: space-between;
    padding-bottom: 1rem;
    color: #64748b;
    font-size: 0.9rem;
}

.page-builder-canvas-header strong {
    display: block;
    color: #111827;
    font-size: 1rem;
}

.page-builder-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.page-builder-steps span {
    min-height: 58px;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.85rem 1rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.9rem;
    background: #ffffff;
    color: #64748b;
    font-weight: 700;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}

.page-builder-steps strong {
    width: 30px;
    height: 30px;
    display: inline-grid;
    place-items: center;
    flex: 0 0 30px;
    border-radius: 999px;
    background: #007AC2;
    color: #ffffff;
    font-size: 0.9rem;
}

.page-builder-panel-title {
    margin-bottom: 1rem;
    color: #111827;
}

.page-builder-panel-title span {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #007AC2;
    color: #ffffff;
    font-weight: 800;
}

.page-builder-inspector {
    position: sticky;
    top: 96px;
    padding: 1.15rem;
}

.page-builder-inspector-empty,
.page-builder-inspector-content {
    padding: 1rem;
    border-radius: 0.85rem;
    background: #f8fafc;
}

.page-builder-inspector-empty {
    display: grid;
    place-items: center;
    gap: 0.55rem;
    min-height: 180px;
    color: #64748b;
    text-align: center;
}

.page-builder-inspector-empty i {
    color: #007AC2;
    font-size: 2rem;
}

.page-builder-inspector-content.is-hidden,
.page-builder-inspector-empty.is-hidden {
    display: none;
}

.page-builder-inspector-type {
    display: inline-flex;
    margin-bottom: 0.65rem;
    padding: 0.25rem 0.65rem;
    border-radius: 999px;
    background: rgba(0, 122, 194, 0.1);
    color: #007AC2;
    font-size: 0.78rem;
    font-weight: 800;
}

.page-builder-inspector-content h4 {
    margin-bottom: 0.55rem;
    color: #111827;
}

.page-builder-inspector-content p,
.page-builder-inspector-content li {
    color: #64748b;
    font-size: 0.9rem;
    line-height: 1.55;
}

.page-builder-inspector-content ul {
    margin: 0.8rem 0 0;
    padding-left: 1rem;
}

.page-builder-quick-settings {
    display: grid;
    gap: 0.75rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #e5e7eb;
}

.page-builder-quick-settings label {
    display: grid;
    gap: 0.35rem;
    margin: 0;
    color: #334155;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.page-builder-quick-settings .form-control,
.page-builder-quick-settings .form-select {
    min-height: 38px;
    border-color: #e2e8f0;
    border-radius: 0.75rem;
    color: #111827;
    font-size: 0.9rem;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0;
}

.page-builder-quick-check {
    display: flex !important;
    grid-template-columns: none !important;
    align-items: center;
    gap: 0.55rem !important;
    padding: 0.75rem;
    border-radius: 0.8rem;
    background: #ffffff;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

.page-builder-quick-check input {
    width: 1rem;
    height: 1rem;
    accent-color: #007AC2;
}

.page-builder-row-inspector {
    display: grid;
    gap: 0.75rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #e5e7eb;
}

.page-builder-quick-settings[hidden],
.page-builder-row-inspector[hidden] {
    display: none !important;
}

.page-builder-row-inspector label {
    display: grid;
    gap: 0.35rem;
    margin: 0;
    color: #334155;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.page-builder-row-inspector .form-control,
.page-builder-row-inspector .form-select {
    min-height: 38px;
    border-color: #e2e8f0;
    border-radius: 0.75rem;
    color: #111827;
    font-size: 0.9rem;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0;
}

.page-builder-row-inspector-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.5rem;
}

.page-section-palette {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(125px, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.page-section-palette button {
    min-height: 82px;
    padding: 0.9rem;
    display: grid;
    place-items: center;
    gap: 0.45rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.9rem;
    background: #ffffff;
    color: #252638;
    font-weight: 700;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.04);
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.page-section-palette button:hover,
.page-section-palette button:focus {
    transform: translateY(-2px);
    border-color: rgba(0, 122, 194, 0.3);
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.08);
}

.page-section-palette i {
    color: #007AC2;
    font-size: 1.45rem;
}

.page-block-library {
    margin: 1rem 0;
    padding: 1rem;
    border: 1px solid #e5e7eb;
    border-radius: 1rem;
    background: #ffffff;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.05);
}

.page-block-library-heading {
    display: grid;
    gap: 0.2rem;
    margin-bottom: 1rem;
}

.page-block-library-heading span {
    width: fit-content;
    padding: 0.22rem 0.65rem;
    border-radius: 999px;
    background: rgba(0, 122, 194, 0.1);
    color: #007AC2;
    font-size: 0.76rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.page-block-library-heading strong {
    color: #111827;
    font-size: 1rem;
}

.page-block-library-heading p {
    margin: 0;
    color: #64748b;
    font-size: 0.9rem;
}

.page-block-library-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 0.75rem;
}

.page-block-library-grid button {
    min-height: 126px;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    align-content: start;
    gap: 0.2rem 0.75rem;
    padding: 1rem;
    border: 1px solid #e5e7eb;
    border-radius: 1rem;
    background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
    color: #111827;
    text-align: left;
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.page-block-library-grid button:hover,
.page-block-library-grid button:focus {
    transform: translateY(-2px);
    border-color: rgba(0, 122, 194, 0.35);
    box-shadow: 0 16px 30px rgba(15, 23, 42, 0.08);
}

.page-block-library-grid i {
    width: 42px;
    height: 42px;
    grid-row: span 2;
    display: inline-grid;
    place-items: center;
    border-radius: 0.85rem;
    background: #EAF7FC;
    color: #007AC2;
    font-size: 1.4rem;
}

.page-block-library-grid strong {
    font-size: 0.94rem;
    line-height: 1.25;
}

.page-block-library-grid span {
    color: #64748b;
    font-size: 0.82rem;
    line-height: 1.4;
}

.page-row-palette {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 1rem 0;
    padding: 1rem;
    border: 1px solid #e5e7eb;
    border-radius: 1rem;
    background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
}

.page-row-palette strong,
.page-row-palette span {
    display: block;
}

.page-row-palette span {
    color: #64748b;
    font-size: 0.9rem;
}

.page-row-palette-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.page-row-palette-actions button {
    padding: 0.45rem 0.75rem;
    border: 1px solid rgba(0, 122, 194, 0.2);
    border-radius: 999px;
    background: #EAF7FC;
    color: #007AC2;
    font-weight: 800;
}

.page-row-presets {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 1rem;
    border: 1px solid #e5e7eb;
    border-radius: 1rem;
    background: #252638;
    color: #ffffff;
}

.page-row-presets strong,
.page-row-presets span {
    display: block;
}

.page-row-presets span {
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.9rem;
}

.page-row-preset-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.65rem;
}

.page-row-preset-actions button {
    min-width: 150px;
    padding: 0.75rem 0.9rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 0.85rem;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-weight: 800;
}

.page-row-preset-actions button:hover,
.page-row-preset-actions button:focus {
    background: #007AC2;
    border-color: #007AC2;
}

.page-layout-row-builder {
    padding: 1rem;
    border: 1px solid #dbe2ee;
    border-radius: 1.1rem;
    background: #f8fafc;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.page-layout-row-builder.is-selected {
    border-color: rgba(0, 122, 194, 0.48);
    background: #F3FAFD;
    box-shadow: 0 16px 34px rgba(0, 122, 194, 0.1);
}

.page-layout-row-builder + .page-layout-row-builder {
    margin-top: 1rem;
}

.page-layout-row-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.page-layout-row-header strong,
.page-layout-row-header span {
    display: block;
}

.page-layout-row-header span {
    color: #007AC2;
    font-size: 0.82rem;
    font-weight: 800;
    text-transform: uppercase;
}

.page-layout-row-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
}

.page-layout-row-actions input {
    width: 150px;
}

.page-layout-row-actions select {
    width: 160px;
}

.page-layout-row-settings {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin: -0.35rem 0 1rem;
    padding: 0.75rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.85rem;
    background: #ffffff;
}

.page-layout-row-settings label {
    display: grid;
    gap: 0.25rem;
    min-width: 150px;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
}

.page-layout-column {
    min-height: 130px;
    height: 100%;
    padding: 0.75rem;
    border: 2px dashed #cbd5e1;
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.78);
    transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.page-layout-column-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.page-layout-column-header > span {
    display: inline-flex;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: #eef2ff;
    color: #64748b;
    font-size: 0.76rem;
    font-weight: 800;
    text-transform: uppercase;
}

.page-layout-column-header div {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.35rem;
}

.page-layout-column-header button {
    padding: 0.18rem 0.45rem;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    background: #ffffff;
    color: #64748b;
    font-size: 0.74rem;
    font-weight: 800;
}

.page-layout-column-header button:hover,
.page-layout-column-header button:focus {
    border-color: rgba(0, 122, 194, 0.35);
    color: #007AC2;
}

.page-layout-column.is-empty::after {
    content: "Glissez un bloc ici";
    display: grid;
    place-items: center;
    min-height: 70px;
    color: #94a3b8;
    font-weight: 800;
}

.page-insert-point {
    position: relative;
    display: grid;
    place-items: center;
    margin: 0.45rem 0;
}

.page-insert-point::before {
    content: "";
    position: absolute;
    left: 0.75rem;
    right: 0.75rem;
    top: 50%;
    height: 1px;
    background: #e5e7eb;
}

.page-insert-point > button {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.28rem 0.7rem;
    border: 1px solid rgba(0, 122, 194, 0.2);
    border-radius: 999px;
    background: #ffffff;
    color: #007AC2;
    font-size: 0.76rem;
    font-weight: 900;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
}

.page-insert-point > button:hover,
.page-insert-point > button:focus {
    background: #007AC2;
    color: #ffffff;
}

.page-insert-palette {
    position: absolute;
    z-index: 20;
    top: calc(100% + 0.35rem);
    left: 50%;
    width: min(360px, 90vw);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.45rem;
    padding: 0.65rem;
    border: 1px solid #e5e7eb;
    border-radius: 1rem;
    background: #ffffff;
    box-shadow: 0 20px 45px rgba(15, 23, 42, 0.14);
    transform: translateX(-50%);
}

.page-insert-palette[hidden] {
    display: none !important;
}

.page-insert-palette button {
    display: grid;
    place-items: center;
    gap: 0.25rem;
    min-height: 58px;
    padding: 0.45rem;
    border: 1px solid #eef2f7;
    border-radius: 0.75rem;
    background: #f8fafc;
    color: #334155;
    font-size: 0.72rem;
    font-weight: 900;
}

.page-insert-palette button:hover,
.page-insert-palette button:focus {
    border-color: rgba(0, 122, 194, 0.28);
    background: #EAF7FC;
    color: #007AC2;
}

.page-insert-palette i {
    color: #007AC2;
    font-size: 1.15rem;
}

.page-layout-column.is-selected {
    border-color: rgba(0, 122, 194, 0.45);
    background: #F3FAFD;
    box-shadow: inset 0 0 0 1px rgba(0, 122, 194, 0.12);
}

.page-layout-column.is-drop-target {
    border-color: #007AC2;
    background: #EAF7FC;
}

.page-layout-column .page-section-card {
    margin-bottom: 0.75rem;
}

.page-layout-column .page-section-card:last-child {
    margin-bottom: 0;
}

.page-section-layout-panel {
    display: none;
}

.page-section-preview-type {
    display: inline-flex;
    margin-right: 0.35rem;
    padding: 0.16rem 0.45rem;
    border-radius: 999px;
    background: #EAF7FC;
    color: #007AC2;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    vertical-align: middle;
}

.page-section-card-preview {
    display: none;
    padding: 0 1.25rem 1rem;
    background: #ffffff;
}

.page-section-card-preview.is-muted {
    opacity: 0.62;
}

.page-section-preview-main {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.2rem 0.65rem;
    align-items: center;
    padding: 0.9rem;
    border: 1px solid #eef2f7;
    border-radius: 0.9rem 0.9rem 0 0;
    background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
}

.page-section-preview-main span {
    grid-row: span 2;
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
    background: #EAF7FC;
    color: #007AC2;
    font-size: 0.7rem;
    font-weight: 900;
    text-transform: uppercase;
}

.page-section-preview-main strong {
    color: #111827;
    font-size: 0.98rem;
    line-height: 1.25;
}

.page-section-preview-main small {
    color: #64748b;
    font-size: 0.8rem;
    font-weight: 700;
}

.page-section-card-preview p {
    margin: 0;
    padding: 0.85rem 0.9rem;
    border: 1px solid #eef2f7;
    border-top: 0;
    border-radius: 0 0 0.9rem 0.9rem;
    color: #64748b;
    font-size: 0.86rem;
    line-height: 1.45;
}

.page-sections-builder.is-compact-builder .page-section-card-preview,
.page-section-card.is-collapsed .page-section-card-preview {
    display: block;
}

.page-sections-builder.is-compact-builder .page-section-card .card-body {
    display: none;
}

.page-sections-builder.is-compact-builder .page-section-card .card-header {
    border-bottom: 0;
}

.page-sections-empty {
    padding: 2rem;
    display: grid;
    place-items: center;
    gap: 0.35rem;
    border: 1px dashed #cbd5e1;
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.78);
    color: #64748b;
    text-align: center;
}

.page-sections-empty.is-hidden {
    display: none;
}

.page-sections-empty i {
    color: #007AC2;
    font-size: 2rem;
}

.page-sections-empty strong {
    color: #252638;
    font-size: 1.05rem;
}

.page-sections-list {
    display: grid;
    gap: 1rem;
}

.page-section-card {
    border: 1px solid #e5e7eb;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.05);
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.page-section-card.is-dragging {
    opacity: 0.58;
}

.page-section-card.is-selected {
    border-color: rgba(0, 122, 194, 0.42);
    box-shadow: 0 16px 34px rgba(0, 122, 194, 0.1);
}

.page-section-card.is-collapsed .card-body {
    display: none;
}

.page-section-card.is-collapsed [data-toggle-page-section-body] i {
    transform: rotate(180deg);
}

.page-section-card .card-header,
.page-section-card .card-body {
    background: #fff;
}

.page-section-card [hidden] {
    display: none !important;
}

.page-section-card-title {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.page-section-quill-wrap {
    border: 1px solid #e5e7eb;
    border-radius: 0.9rem;
    overflow: hidden;
    background: #ffffff;
}

.page-section-quill-toolbar.ql-toolbar {
    border: 0;
    border-bottom: 1px solid #e5e7eb;
    background: #f8fafc;
}

.page-section-quill-editor {
    min-height: 190px;
}

.page-section-quill-editor .ql-editor {
    min-height: 190px;
    padding: 1rem;
    font-family: inherit;
    font-size: 0.95rem;
    line-height: 1.65;
}

.page-section-quill-editor .ql-editor p {
    margin-bottom: 0;
}

.page-section-quill-editor .ql-editor p + p {
    margin-top: 0.75rem;
}

.page-section-media-picker {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 0.9rem;
    align-items: center;
    padding: 0.85rem;
    border: 1px solid #e5e7eb;
    border-radius: 1rem;
    background: #f8fafc;
}

.page-section-media-preview {
    width: 96px;
    height: 72px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 0.85rem;
    background: #ffffff;
    color: #94a3b8;
    box-shadow: inset 0 0 0 1px #e5e7eb;
}

.page-section-media-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.page-section-media-preview i {
    font-size: 1.8rem;
}

.page-section-media-picker strong,
.page-section-media-picker span {
    display: block;
}

.page-section-media-picker strong {
    color: #111827;
    font-size: 0.92rem;
}

.page-section-media-picker span {
    color: #64748b;
    font-size: 0.82rem;
}

.page-section-settings-panel {
    padding: 1rem;
    border: 1px solid #e5e7eb;
    border-radius: 0.9rem;
    background: #f8fafc;
}

.page-section-settings-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.9rem;
    color: #111827;
}

.page-section-settings-title i {
    color: #007AC2;
    font-size: 1.15rem;
}

.page-section-drag-handle {
    width: 2.65rem;
    height: 2.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 0.75rem;
    background: #f1f5f9;
    color: #64748b;
    cursor: grab;
    touch-action: none;
    user-select: none;
}

.page-section-drag-handle:active {
    cursor: grabbing;
}

.page-dynamic-sections {
    display: grid;
    gap: 48px;
    margin-top: 36px;
    min-width: 0;
}

.page-dynamic-sections .page-builder-row {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    row-gap: 30px;
    align-items: stretch;
}

.page-dynamic-sections .page-builder-row.page-builder-row-bg-white,
.page-dynamic-sections .page-builder-row.page-builder-row-bg-light,
.page-dynamic-sections .page-builder-row.page-builder-row-bg-red,
.page-dynamic-sections .page-builder-row.page-builder-row-bg-dark {
    padding-left: 24px;
    padding-right: 24px;
    border-radius: 14px;
}

.page-dynamic-sections .page-builder-row.page-builder-row-bg-white {
    background: #ffffff;
    box-shadow: 0 16px 38px rgba(15, 23, 42, 0.06);
}

.page-dynamic-sections .page-builder-row.page-builder-row-bg-light {
    background: #f7f8fb;
}

.page-dynamic-sections .page-builder-row.page-builder-row-bg-red {
    background: #007AC2;
}

.page-dynamic-sections .page-builder-row.page-builder-row-bg-dark {
    background: #252638;
}

.page-dynamic-sections .page-builder-row.page-builder-row-bg-red,
.page-dynamic-sections .page-builder-row.page-builder-row-bg-red h2,
.page-dynamic-sections .page-builder-row.page-builder-row-bg-red h3,
.page-dynamic-sections .page-builder-row.page-builder-row-bg-red h5,
.page-dynamic-sections .page-builder-row.page-builder-row-bg-red p,
.page-dynamic-sections .page-builder-row.page-builder-row-bg-red a,
.page-dynamic-sections .page-builder-row.page-builder-row-bg-dark,
.page-dynamic-sections .page-builder-row.page-builder-row-bg-dark h2,
.page-dynamic-sections .page-builder-row.page-builder-row-bg-dark h3,
.page-dynamic-sections .page-builder-row.page-builder-row-bg-dark h5,
.page-dynamic-sections .page-builder-row.page-builder-row-bg-dark p,
.page-dynamic-sections .page-builder-row.page-builder-row-bg-dark a {
    color: #ffffff;
}

.page-dynamic-sections .page-builder-row.page-builder-row-spacing-compact {
    padding-top: 14px;
    padding-bottom: 14px;
}

.page-dynamic-sections .page-builder-row.page-builder-row-spacing-normal {
    padding-top: 28px;
    padding-bottom: 28px;
}

.page-dynamic-sections .page-builder-row.page-builder-row-spacing-large {
    padding-top: 48px;
    padding-bottom: 48px;
}

.page-dynamic-sections .page-builder-row.page-builder-row-width-wide {
    margin-left: -18px;
    margin-right: -18px;
}

.page-dynamic-sections .page-builder-column {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.page-dynamic-sections .page-builder-column > .page-section-block {
    width: 100%;
    height: 100%;
}

.page-section-layout-panel {
    border-color: #dbeafe;
    background: #f8fbff;
}

.page-section-block:first-child {
    margin-top: 0;
}

.page-section-block.page-builder-spacing-compact {
    padding-top: 16px;
    padding-bottom: 16px;
}

.page-section-block.page-builder-spacing-normal {
    padding-top: 30px;
    padding-bottom: 30px;
}

.page-section-block.page-builder-spacing-large {
    padding-top: 52px;
    padding-bottom: 52px;
}

.page-section-block.page-builder-bg-white,
.page-section-block.page-builder-bg-light,
.page-section-block.page-builder-bg-red,
.page-section-block.page-builder-bg-dark,
.page-section-block.page-builder-width-boxed {
    padding-left: 28px;
    padding-right: 28px;
    border-radius: 12px;
}

.page-section-block.page-builder-bg-white,
.page-section-block.page-builder-width-boxed {
    background: #ffffff;
    box-shadow: 0 16px 38px rgba(15, 23, 42, 0.06);
}

.page-section-block.page-builder-bg-light {
    background: #f7f8fb;
}

.page-section-block.page-builder-bg-red {
    background: #007AC2;
}

.page-section-block.page-builder-bg-dark {
    background: #252638;
}

.page-section-block.page-builder-bg-red,
.page-section-block.page-builder-bg-red h2,
.page-section-block.page-builder-bg-red h3,
.page-section-block.page-builder-bg-red h5,
.page-section-block.page-builder-bg-red p,
.page-section-block.page-builder-bg-red li,
.page-section-block.page-builder-bg-red a,
.page-section-block.page-builder-bg-dark,
.page-section-block.page-builder-bg-dark h2,
.page-section-block.page-builder-bg-dark h3,
.page-section-block.page-builder-bg-dark h5,
.page-section-block.page-builder-bg-dark p,
.page-section-block.page-builder-bg-dark li,
.page-section-block.page-builder-bg-dark a {
    color: #ffffff;
}

.page-section-block.page-builder-width-wide {
    margin-left: -18px;
    margin-right: -18px;
}

.page-section-block.page-builder-title-center .sec-title {
    text-align: center;
}

.page-section-block.page-builder-title-center .sec-title .title-shape {
    margin-left: auto;
    margin-right: auto;
}

.page-section-image-text .image-box img,
.page-section-image-text .image-box .page-section-image-placeholder {
    width: 100%;
    border-radius: 8px;
    min-height: 280px;
    max-height: 460px;
    object-fit: cover;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.08);
}

.page-section-image-text .content-box {
    min-width: 0;
}

.page-section-image-text .btn-box {
    margin-top: 24px;
}

.page-section-image-text .image-box .page-section-image-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f5f5f6;
    color: #8e91a2;
    font-weight: 700;
}

.page-section-cta .inner-box {
    height: 100%;
    background: linear-gradient(135deg, #f7f8fb 0%, #ffffff 100%);
    border: 1px solid #edf0f5;
    border-radius: 14px;
    padding: 42px 36px;
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.06);
}

.page-section-cta-kicker {
    display: inline-block;
    margin-bottom: 12px;
    font-size: 14px;
    line-height: 22px;
    font-weight: 700;
    text-transform: uppercase;
    color: #007AC2;
}

.page-section-cta h2 {
    margin-bottom: 12px;
}

.page-section-cta-text {
    margin-bottom: 24px;
}

.page-section-quick-access .explore-block-one {
    margin-bottom: 30px;
}

.page-section-quick-access-image {
    width: 60px;
    height: 60px;
    object-fit: cover;
    border-radius: 50%;
}

.page-section-document-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.page-section-download-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 20px;
    align-items: center;
    padding: 26px;
    border: 1px solid #edf0f5;
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 16px 38px rgba(15, 23, 42, 0.06);
}

.page-section-download-card .icon-box {
    width: 64px;
    height: 64px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(0, 122, 194, 0.1);
    color: #007AC2;
    font-size: 26px;
}

.page-section-download-card .download-content {
    min-width: 0;
}

.page-section-download-card span {
    display: block;
    margin-bottom: 6px;
    color: #007AC2;
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
}

.page-section-download-card h3 {
    margin-bottom: 6px;
    color: #252638;
    font-size: 24px;
    line-height: 1.25;
}

.page-section-download-card p {
    margin: 0;
    color: #6f7487;
    line-height: 1.6;
}

.page-section-document-card {
    height: 100%;
    display: flex;
    flex-direction: column;
    padding: 24px;
    border: 1px solid #edf0f5;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.05);
}

.page-section-document-card .icon-box {
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    border-radius: 50%;
    background: rgba(0, 122, 194, 0.1);
    color: #007AC2;
}

.page-section-document-card > span {
    display: block;
    margin-bottom: 8px;
    color: #007AC2;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}

.page-section-document-card h5 {
    margin-bottom: 10px;
    color: #252638;
    font-size: 20px;
    line-height: 1.3;
}

.page-section-document-card p {
    margin-bottom: 16px;
    color: #6f7487;
}

.page-section-document-card a,
.page-section-document-table a {
    color: #007AC2;
    font-weight: 800;
}

.page-section-document-card a {
    margin-top: auto;
}

.page-section-document-table {
    background: #ffffff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 14px 34px rgba(15, 23, 42, 0.05);
}

.page-section-document-table td strong,
.page-section-document-table td span {
    display: block;
}

.page-section-document-table td span {
    margin-top: 4px;
    color: #6f7487;
}

.page-section-faq-search {
    position: relative;
    margin-bottom: 22px;
}

.page-section-faq-search i {
    position: absolute;
    left: 22px;
    top: 50%;
    transform: translateY(-50%);
    color: #007AC2;
    z-index: 1;
}

.page-section-faq-search input {
    width: 100%;
    height: 58px;
    padding: 0 22px 0 54px;
    border: 1px solid #edf0f5;
    border-radius: 8px;
    background: #ffffff;
    color: #252638;
    font-weight: 700;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.04);
}

.page-section-faq-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.page-section-faq-card,
.page-section-faq-compact-item {
    border: 1px solid #edf0f5;
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 16px 36px rgba(15, 23, 42, 0.05);
}

.page-section-faq-card {
    padding: 26px;
}

.page-section-faq-card > span,
.page-section-faq-compact-number {
    display: inline-flex;
    margin-bottom: 12px;
    color: #007AC2;
    font-size: 18px;
    font-weight: 800;
}

.page-section-faq-card h5,
.page-section-faq-compact-item h5 {
    margin-bottom: 12px;
    color: #252638;
    font-size: 20px;
    line-height: 1.35;
}

.page-section-faq-card p,
.page-section-faq-compact-item p {
    margin: 0;
    color: #6f7487;
    font-size: 16px;
    line-height: 1.7;
}

.page-section-faq-compact-list {
    display: grid;
    gap: 12px;
}

.page-section-faq-compact-item {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 18px;
    padding: 22px;
}

.page-section-faq-empty-search {
    margin-top: 18px;
    padding: 18px 22px;
    border-radius: 8px;
    background: #EAF7FC;
    color: #007AC2;
    font-weight: 800;
}

.page-section-more-link {
    margin-top: 24px;
}

.page-section-news .news-block,
.page-section-events .schedule-block {
    display: flex;
}

.page-section-news .news-block-one,
.page-section-news .news-block-one .inner-box,
.page-section-events .schedule-block-one,
.page-section-events .schedule-block-one .inner-box {
    width: 100%;
    height: 100%;
}

.page-section-news .news-block-one .image-box img,
.page-section-events .schedule-block-one .image-box img {
    width: 100%;
    height: 230px;
    object-fit: cover;
}

.page-section-html > *:last-child,
.page-section-rich-text .page-section-body > *:last-child,
.page-section-cta-text > *:last-child {
    margin-bottom: 0;
}

@media (max-width: 991.98px) {
    .page-builder-main {
        grid-template-columns: 1fr;
    }

    .page-builder-inspector {
        position: static;
    }

    .page-builder-steps {
        grid-template-columns: 1fr;
    }

    .page-row-palette,
    .page-row-presets,
    .page-layout-row-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .page-row-preset-actions,
    .page-layout-row-actions {
        justify-content: flex-start;
        width: 100%;
    }

    .page-dynamic-sections {
        gap: 36px;
    }

    .page-dynamic-sections .page-builder-row.page-builder-row-width-wide,
    .page-section-block.page-builder-width-wide {
        margin-left: 0;
        margin-right: 0;
    }

    .page-dynamic-sections .page-builder-row.page-builder-row-bg-white,
    .page-dynamic-sections .page-builder-row.page-builder-row-bg-light,
    .page-dynamic-sections .page-builder-row.page-builder-row-bg-red,
    .page-dynamic-sections .page-builder-row.page-builder-row-bg-dark {
        padding-left: 16px;
        padding-right: 16px;
    }

    .page-section-image-text .image-column {
        margin-bottom: 26px;
    }

    .page-section-cta .inner-box {
        padding: 32px 24px;
    }

    .page-section-document-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .page-section-faq-cards {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .page-dynamic-sections {
        gap: 28px;
        margin-top: 28px;
    }

    .page-section-block.page-builder-bg-white,
    .page-section-block.page-builder-bg-light,
    .page-section-block.page-builder-bg-red,
    .page-section-block.page-builder-bg-dark,
    .page-section-block.page-builder-width-boxed {
        padding-left: 18px;
        padding-right: 18px;
    }

    .page-section-block .sec-title h2,
    .portal-page-section .page-section-block .sec-title h2 {
        font-size: 28px;
        line-height: 1.2;
    }

    .page-section-image-text .image-box img,
    .page-section-image-text .image-box .page-section-image-placeholder {
        min-height: 210px;
        max-height: 300px;
    }

    .page-section-news .news-block-one .image-box img,
    .page-section-events .schedule-block-one .image-box img {
        height: 200px;
    }

    .page-section-document-cards {
        grid-template-columns: 1fr;
    }

    .page-section-download-card {
        grid-template-columns: 1fr;
        text-align: left;
    }

    .page-section-download-card .theme-btn {
        width: 100%;
        text-align: center;
    }

    .page-section-faq-compact-item {
        grid-template-columns: 1fr;
        gap: 8px;
    }
}

.home-facebook-post-image img {
    display: block;
    width: 100%;
    height: 220px;
    object-fit: cover;
}

.home-facebook-post-box .text p {
    margin-bottom: 14px;
}

.home-facebook-help-box .text p + p {
    margin-top: 12px;
}

.public-grid-card {
    background: #ffffff;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.08);
}

.public-grid-card .image-box img {
    width: 100%;
    height: 230px;
    object-fit: cover;
}

.public-grid-card .content-box {
    padding: 28px;
}

.public-grid-card .meta-text {
    display: block;
    margin-bottom: 14px;
    color: #6b7280;
    font-size: 14px;
}

.public-grid-card h3 {
    margin-bottom: 14px;
    font-size: 24px;
    line-height: 1.35em;
}

.public-grid-card p {
    margin-bottom: 0;
}

.events-list .agenda-public-list-content .filter-box {
    padding-left: 12px;
}

.events-list .agenda-public-list-content .filter-box .form-group {
    width: 25%;
}

.events-list .agenda-public-list-content .filter-box .form-group .select-box {
    min-height: 35px;
}

.events-list .agenda-public-list-content .filter-box .agenda-filter-search {
    border-right: 1px solid #e6e6ea;
}

.events-list .agenda-public-list-content .filter-box .agenda-filter-search i {
    right: 24px;
}

.events-list .agenda-public-list-content .filter-box .agenda-filter-search input[type="text"] {
    padding-right: 52px;
    border: none;
    background: transparent;
}

.events-list .agenda-public-list-content .filter-box .search-btn button {
    border: 0;
    cursor: pointer;
}

.news-public-list-content .filter-box {
    position: relative;
    display: block;
    margin-bottom: 50px;
    padding: 18px 170px 17px 0;
    border-radius: 5px;
    background: #ffffff;
    box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.1);
}

.news-public-list-content .filter-box .form-group {
    position: relative;
    float: left;
    width: 50%;
    margin: 0;
}

.news-public-list-content .filter-box .news-filter-search {
    border-right: 1px solid #e6e6ea;
}

.news-public-list-content .filter-box .news-filter-search i {
    position: absolute;
    top: 0;
    right: 24px;
    z-index: 1;
    color: #8e91a2;
    font-size: 16px;
}

.news-public-list-content .filter-box .news-filter-search input[type="text"] {
    position: relative;
    width: 100%;
    height: 35px;
    line-height: 35px;
    padding: 0 52px 0 30px;
    color: #696b7e;
    border: none;
    background: transparent;
}

.news-public-list-content .filter-box .select-box {
    position: relative;
    width: 100%;
    min-height: 35px;
}

.news-public-list-content .filter-box .nice-select {
    height: 35px;
    line-height: 35px;
    padding: 0 30px;
    color: #696b7e;
    border: none !important;
}

.news-public-list-content .filter-box .nice-select:after {
    right: 30px;
}

.news-public-list-content .filter-box .search-btn {
    position: absolute;
    top: 0;
    right: 0;
}

.news-public-list-content .filter-box .search-btn button {
    display: inline-block;
    width: 170px;
    padding: 22px 15px;
    border: 0;
    border-radius: 0 5px 5px 0;
    background: #007AC2;
    color: #ffffff;
    text-align: center;
    font-size: 14px;
    line-height: 26px;
    font-family: 'DM Sans', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    cursor: pointer;
}

.news-public-list-content .filter-box .search-btn button:hover {
    background: #252638;
}

.public-listing-legacy-title {
    display: none;
}

.public-listing-title-section {
    min-height: 500px;
    padding-top: 176px;
}

.public-listing-section {
    position: relative;
    background:
        radial-gradient(circle at 12% 0%, rgba(0, 122, 194, 0.08) 0, rgba(0, 122, 194, 0) 32%),
        radial-gradient(circle at 88% 8%, rgba(255, 210, 82, 0.18) 0, rgba(255, 210, 82, 0) 28%),
        #f6f9fc;
}

.public-listing-section.sec-pad-2 {
    padding-top: 42px;
}

.news-listing-section .news-public-list-content,
.agenda-listing-section .agenda-public-list-content {
    position: relative;
    z-index: 1;
}

.news-listing-section .news-public-list-content .filter-box,
.agenda-listing-section .agenda-public-list-content .filter-box {
    margin-bottom: 34px;
    border: 1px solid #e6eef5;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.07);
    overflow: hidden;
}

.agenda-listing-section .agenda-public-list-content .filter-box {
    padding-right: 170px;
}

.news-listing-section .news-public-list-content {
    z-index: 5;
}

.news-listing-section .news-public-list-content .filter-box {
    overflow: visible;
}

.news-listing-section .news-filter-search i {
    pointer-events: none;
}

.news-listing-section .news-block-one .inner-box::before {
    inset: 10px;
    width: auto;
    height: auto;
    pointer-events: none;
}

.news-listing-section .news-block-one .lower-content h4 {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.news-listing-section .news-public-list-content .filter-box .form-group,
.agenda-listing-section .agenda-public-list-content .filter-box .form-group {
    border-color: #e6eef5;
}

.news-listing-section .news-public-list-content .filter-box input[type="text"],
.agenda-listing-section .agenda-public-list-content .filter-box input[type="text"],
.news-listing-section .news-public-list-content .filter-box .nice-select,
.agenda-listing-section .agenda-public-list-content .filter-box .nice-select {
    color: #53606f;
    font-weight: 600;
}

.news-listing-section .news-public-list-content .filter-box .search-btn button,
.agenda-listing-section .agenda-public-list-content .filter-box .search-btn button {
    border-radius: 0 8px 8px 0;
    background: #007AC2;
    font-weight: 800;
    text-transform: uppercase;
}

.news-listing-section .news-public-list-content .filter-box .search-btn button:hover,
.agenda-listing-section .agenda-public-list-content .filter-box .search-btn button:hover {
    background: #005f97;
}

.news-listing-section .news-block,
.agenda-listing-section .schedule-block {
    display: flex;
    margin-bottom: 30px;
}

.news-listing-section .news-block-one,
.news-listing-section .news-block-one .inner-box,
.agenda-listing-section .schedule-block-one,
.agenda-listing-section .schedule-block-one .inner-box {
    width: 100%;
    height: 100%;
}

.news-listing-section .news-block-one .inner-box,
.agenda-listing-section .schedule-block-one .inner-box {
    overflow: hidden;
    border: 1px solid #e4edf4;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.06);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.news-listing-section .news-block-one .inner-box:hover,
.agenda-listing-section .schedule-block-one .inner-box:hover {
    border-color: rgba(0, 122, 194, 0.24);
    box-shadow: 0 24px 58px rgba(15, 22, 41, 0.10);
    transform: translateY(-3px);
}

.news-listing-section .news-block-one .image-box .image,
.agenda-listing-section .schedule-block-one .image-box .image {
    aspect-ratio: 16 / 10;
    overflow: hidden;
}

.news-listing-section .news-block-one .image-box img,
.agenda-listing-section .schedule-block-one .image-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.news-listing-section .news-block-one .lower-content,
.agenda-listing-section .schedule-block-one .lower-content {
    padding: 26px 28px 28px;
}

.news-listing-section .news-block-one .lower-content h4,
.agenda-listing-section .schedule-block-one .text h4 {
    line-height: 1.28;
}

.agenda-listing-section .schedule-block-one .content-box {
    border-radius: 0;
}

.agenda-listing-section .schedule-block-one .lower-content .links {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #edf2f6;
}

.news-listing-section .pagination-wrapper,
.agenda-listing-section .pagination-wrapper {
    margin-top: 10px;
}

.city-article-hero { position: relative; padding: 226px 0 48px; background: linear-gradient(125deg, #073c5d, #0b2c46); color: #fff; }
.city-article-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px 12px; margin-bottom: 30px; color: #c0d9e9; font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.city-article-breadcrumb a { color: #fff; }
.city-article-breadcrumb a:hover { text-decoration: underline; }
.city-article-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 48px; align-items: center; }
.city-article-intro-no-image { grid-template-columns: minmax(0, 850px); }
.city-article-kicker { display: inline-block; padding: 5px 12px; border-radius: 4px; background: #ffd252; color: #173b55; font-size: 12px; line-height: 1.5; font-weight: 700; }
.city-article-heading h1 { margin: 18px 0 22px; font-size: clamp(30px, 3.5vw, 48px); line-height: 1.15; font-weight: 700; color: #fff; overflow-wrap: anywhere; }
.city-article-date { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13px; color: #d3e5f1; }
.city-article-date i { margin-right: 4px; }
.city-article-back { display: inline-flex; align-items: center; gap: 10px; margin-top: 22px; color: #fff; font-size: 13px; font-weight: 600; }
.city-article-back:hover { color: #ffd252; }
.city-article-visual { margin: 0; }
.city-article-visual > a { position: relative; display: block; border-radius: 12px; overflow: hidden; background: #f1f6fa; box-shadow: 0 16px 38px rgb(0 0 0 / 20%); }
.city-article-visual img { display: block; width: 100%; height: 310px; object-fit: contain; }
.city-article-zoom { position: absolute; right: 14px; bottom: 14px; display: inline-flex; align-items: center; gap: 8px; padding: 7px 12px; border-radius: 20px; background: #fff; color: #173b55; font-size: 12px; box-shadow: 0 2px 8px rgb(0 0 0 / 10%); }
.city-article-section { padding: 56px 0 100px; background: #fff; }
.city-article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 64px; align-items: start; }
.city-article-body { min-width: 0; }
.city-article-lead { padding-left: 22px; border-left: 3px solid #007ac2; margin-bottom: 30px; font-size: 21px; line-height: 1.65; color: #173b55; font-weight: 500; }
.city-article-prose { font-size: 17px; line-height: 1.85; color: #424e5b; overflow-wrap: anywhere; }
.city-article-prose p { font-size: inherit; line-height: inherit; color: inherit; margin-bottom: 22px; }
.city-article-prose h2, .city-article-prose h3, .city-article-prose h4 { color: #173b55; margin: 30px 0 14px; font-weight: 700; line-height: 1.35; }
.city-article-prose h2 { font-size: 28px; }
.city-article-prose h3 { font-size: 23px; }
.city-article-prose h4 { font-size: 20px; }
.city-article-prose a { color: #006da8; text-decoration: underline; text-underline-offset: 3px; }
.city-article-prose ul, .city-article-prose ol { padding-left: 24px; margin-bottom: 22px; }
.city-article-prose ul, .city-article-prose ul li { list-style: disc; }
.city-article-prose ol, .city-article-prose ol li { list-style: decimal; }
.city-article-prose img { max-width: 100%; height: auto; border-radius: 6px; }
.city-article-prose table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; margin: 24px 0; }
.city-article-prose th, .city-article-prose td { border: 1px solid #dce6ed; padding: 10px; }
.city-article-prose blockquote { border-left: 3px solid #007ac2; padding: 20px; background: #f1f6fa; margin: 24px 0; }
.city-article-end { margin-top: 36px; padding-top: 22px; border-top: 1px solid #e0e9ef; }
.city-article-end a { display: inline-flex; gap: 10px; color: #006da8; font-weight: 700; font-size: 14px; }
.city-article-sidebar { display: grid; gap: 28px; padding-left: 28px; border-left: 1px solid #e0e9ef; }
.city-article-sidebar h2 { margin: 0 0 16px; font-size: 20px; line-height: 1.3; color: #173b55; font-weight: 700; }
.city-article-search label { display: block; font-size: 13px; font-weight: 700; color: #173b55; margin-bottom: 10px; }
.city-article-search > div { display: flex; border: 1px solid #d6e4ee; border-radius: 7px; overflow: hidden; }
.city-article-search input { min-width: 0; width: 100%; padding: 12px; background: #f6f9fc; color: #173b55; }
.city-article-search button { flex: 0 0 44px; background: #007ac2; color: #fff; cursor: pointer; }
.city-article-related-item { display: flex; align-items: center; gap: 12px; padding: 14px 0; border-bottom: 1px solid #e0e9ef; }
.city-article-related-item > img, .city-article-related-placeholder { width: 60px; height: 64px; flex: 0 0 60px; object-fit: cover; border-radius: 6px; }
.city-article-related-placeholder { display: grid; place-items: center; background: #eaf3f9; color: #007ac2; font-size: 24px; }
.city-article-related-item > span:not(.city-article-related-placeholder):not(.city-article-related-arrow) { min-width: 0; flex: 1; }
.city-article-related-item time { color: #697685; font-size: 11px; }
.city-article-related-item strong { display: block; color: #173b55; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.city-article-related-item:hover strong { color: #007ac2; }
.city-article-related-arrow { color: #007ac2; }
.city-article-categories ul { display: flex; flex-wrap: wrap; gap: 8px; }
.city-article-categories a { display: inline-flex; gap: 10px; padding: 6px 10px; border-radius: 5px; background: #edf5fa; color: #235571; font-size: 12px; }
.city-article-categories a:hover { background: #dbeef9; }
.city-article-categories a span { font-weight: 700; }
.city-article-hero a:focus-visible { outline: 3px solid #ffd252; outline-offset: 4px; }
.city-article-section a:focus-visible, .city-article-search input:focus-visible, .city-article-search button:focus-visible { outline: 2px solid #007ac2; outline-offset: 2px; }
@media (max-width: 991px) {
    .city-article-hero { padding-top: 40px; }
    .city-article-intro { gap: 28px; }
    .city-article-layout { grid-template-columns: minmax(0, 1fr); gap: 40px; }
    .city-article-sidebar { padding: 28px 0 0; border-left: 0; border-top: 1px solid #e0e9ef; }
}
@media (max-width: 767px) {
    .city-article-intro { grid-template-columns: minmax(0, 1fr); }
    .city-article-hero { padding: 28px 0 32px; }
    .city-article-breadcrumb { margin-bottom: 22px; }
    .city-article-visual img { height: auto; max-height: 340px; }
    .city-article-section { padding-top: 32px; }
    .city-article-lead { font-size: 18px; }
    .city-article-prose { font-size: 16px; }
}

.news-detail-legacy-title {
    display: none;
}

.news-detail-title-section {
    min-height: 500px;
    padding-top: 176px;
}

.news-detail-section {
    background:
        radial-gradient(circle at 10% 0%, rgba(0, 122, 194, 0.08) 0, rgba(0, 122, 194, 0) 32%),
        radial-gradient(circle at 88% 8%, rgba(255, 210, 82, 0.18) 0, rgba(255, 210, 82, 0) 28%),
        #f6f9fc;
}

.news-detail-section.sec-pad-2 {
    padding-top: 42px;
}

.news-detail-meta-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
    gap: 18px;
    align-items: stretch;
    margin-bottom: 30px;
}

.news-detail-meta-item,
.news-detail-back-link {
    border: 1px solid #e4edf4;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.07);
}

.news-detail-meta-item {
    padding: 20px 22px;
}

.news-detail-meta-item span {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    color: #53606f;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}

.news-detail-meta-item span i {
    color: #007AC2;
}

.news-detail-meta-item strong {
    display: block;
    color: #1f2235;
    font-size: 18px;
    line-height: 1.35;
}

.news-detail-back-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 210px;
    padding: 14px 18px;
    color: #007AC2 !important;
    font-weight: 800;
}

.news-detail-back-link:hover,
.news-detail-back-link:focus {
    border-color: #007AC2;
    background: #007AC2;
    color: #ffffff !important;
}

.news-detail-section .blog-details-content .inner-box,
.news-detail-section .blog-sidebar > * {
    border: 1px solid #e4edf4;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.07);
    overflow: hidden;
}

.news-detail-section .blog-details-content .inner-box {
    padding: 0;
}

.news-detail-section .blog-details-content .image-box {
    margin: 0;
}

.news-detail-image-box {
    height: 470px;
    background:
        linear-gradient(135deg, rgba(0, 122, 194, 0.08), rgba(255, 210, 82, 0.12)),
        #f6f9fc;
}

.news-detail-image-zoom-link {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
}

.news-detail-image-box img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.news-detail-image-zoom-link span {
    position: absolute;
    right: 18px;
    bottom: 18px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 9px 15px;
    border-radius: 6px;
    background: #007AC2;
    color: #ffffff;
    font-weight: 800;
    box-shadow: 0 12px 30px rgba(15, 22, 41, 0.18);
}

.news-detail-section .blog-details-content .text {
    padding: 34px;
    color: #696b7e;
    line-height: 1.75;
}

.news-detail-section .blog-details-content .text > p:first-child {
    margin-bottom: 24px;
    padding: 20px 22px;
    border-left: 5px solid #007AC2;
    border-radius: 8px;
    background: #f6f9fc;
    color: #1f2235;
    font-size: 18px;
    font-weight: 700;
}

.news-detail-section .blog-details-content .text > *:last-child {
    margin-bottom: 0;
}

.news-detail-section .sidebar-side {
    align-self: flex-start;
}

.news-detail-section .blog-sidebar {
    position: sticky;
    top: 110px;
}

.news-detail-section .blog-sidebar > * {
    padding: 24px;
    margin-bottom: 24px;
}

.news-detail-section .blog-sidebar .search-form .form-group {
    position: relative;
    margin-bottom: 0;
}

.news-detail-section .blog-sidebar input[type="search"] {
    width: 100%;
    height: 52px;
    padding: 0 54px 0 16px;
    border: 1px solid #dbe6ee;
    border-radius: 6px;
    background: #ffffff;
    color: #53606f;
}

.news-detail-section .blog-sidebar .search-form button {
    position: absolute;
    top: 0;
    right: 0;
    width: 52px;
    height: 52px;
    border: 0;
    border-radius: 0 6px 6px 0;
    background: #007AC2;
    color: #ffffff;
}

.news-detail-section .blog-sidebar .widget-title h3 {
    margin-bottom: 18px;
    color: #1f2235;
    font-size: 23px;
}

.news-detail-section .blog-sidebar .category-list li a {
    border-radius: 6px;
}

.news-detail-section .blog-sidebar .post {
    display: grid;
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
}

.news-detail-section .blog-sidebar .post + .post {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid #edf2f6;
}

.news-detail-section .blog-sidebar .post-thumb {
    margin: 0;
}

.news-detail-section .blog-sidebar .post-thumb img {
    width: 78px;
    height: 68px;
    border-radius: 6px;
    object-fit: cover;
}

.news-detail-section .blog-sidebar .post h6 {
    margin-bottom: 8px;
    line-height: 1.35;
}

.news-detail-section .blog-sidebar .post p {
    margin-bottom: 0;
    color: #53606f;
}

.news-detail-image-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 28px;
}

.news-detail-image-modal:target {
    display: flex;
}

.news-detail-image-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(10, 25, 40, 0.86);
}

.news-detail-image-modal-dialog {
    position: relative;
    z-index: 1;
    width: min(1180px, 96vw);
    height: min(86vh, 900px);
    padding: 18px;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.32);
}

.news-detail-image-modal-dialog img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.news-detail-image-modal-close {
    position: absolute;
    top: -16px;
    right: -16px;
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #007AC2;
    color: #ffffff;
    font-size: 28px;
    line-height: 1;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.25);
}

.news-detail-image-modal-close:hover,
.news-detail-image-modal-close:focus {
    color: #ffffff;
    background: #005f97;
}

.public-document-table th,
.public-document-table td {
    vertical-align: middle;
}

.public-document-title {
    display: grid;
    gap: 0.25rem;
}

.public-document-title span {
    color: #696b7e;
}

.public-document-category-description {
    max-width: 760px;
    margin: 18px auto 0;
}

.document-category-legacy-title,
.document-category-heading {
    display: none;
}

.document-category-title-section {
    min-height: 500px;
    padding-top: 176px;
}

.document-category-section.public-theme-content {
    padding-top: 42px;
    background: #f6f9fc;
}

.document-category-card {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.document-category-filter {
    margin-bottom: 26px !important;
}

.document-category-filter .filter-box {
    margin-bottom: 0;
    border: 1px solid #e6eef5;
    border-radius: 8px;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.07);
}

.document-category-count {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    margin-bottom: 18px;
    padding: 0.35rem 0.85rem;
    border-radius: 999px;
    color: #007AC2;
    background: #eaf6fc;
    font-size: 13px;
    font-weight: 800;
}

.public-document-table {
    border-collapse: separate;
    border-spacing: 0 10px;
}

.public-document-table thead th {
    border: 0;
    color: #53606f;
    background: transparent;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.public-document-table tbody tr {
    box-shadow: 0 12px 30px rgba(15, 22, 41, 0.05);
}

.public-document-table tbody td {
    border-top: 1px solid #edf2f6;
    border-bottom: 1px solid #edf2f6;
    background: #ffffff;
}

.public-document-table tbody td:first-child {
    border-left: 5px solid #007AC2;
    border-radius: 8px 0 0 8px;
}

.public-document-table tbody td:last-child {
    border-right: 1px solid #edf2f6;
    border-radius: 0 8px 8px 0;
}

.public-document-download {
    min-width: 160px;
    text-align: center;
}

.event-detail-media-panel {
    height: 100%;
    min-height: 480px;
    overflow: hidden;
    border-radius: 5px;
}

.event-detail-map {
    width: 100%;
    height: 480px;
    border-radius: 5px;
}

.admin-agenda-place-map {
    width: 100%;
    height: 280px;
    border-radius: 0.75rem;
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, 0.08);
}

.admin-commerce-map,
.admin-association-map,
.admin-disruption-map {
    width: 100%;
    height: 280px;
    border-radius: 0.75rem;
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, 0.08);
}

.header-alert-content,
.header-alert-content p {
    margin: 0;
    margin-left:10px;
}

.header-alert-content strong,
.header-alert-content b,
.header-alert-content em,
.header-alert-content i,
.header-alert-content a,
.header-alert-content span {
    color: inherit;
}

.header-alert-content a {
    text-decoration: underline;
}

.header-opening-hours {
    position: relative;
    z-index: 50;
}

.header-opening-hours-dropdown {
    position: relative;
}

.header-opening-hours-trigger {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    cursor: pointer;
    white-space: nowrap;
}

.header-opening-hours-day {
    font-weight: 700;
}

.header-opening-hours-value {
    opacity: 0.92;
}

.header-opening-hours-menu {
    position: absolute;
    top: calc(100% + 12px);
    left: 0;
    min-width: 280px;
    padding: 0.8rem 1rem;
    border-radius: 0 0 0.85rem 0.85rem;
    background: #ffffff;
    box-shadow: 0 18px 36px rgba(15, 23, 42, 0.14);
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
    z-index: 2000;
}

.header-opening-hours-dropdown:hover .header-opening-hours-menu,
.header-opening-hours-dropdown:focus-within .header-opening-hours-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.header-opening-hours-menu ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.header-opening-hours-menu li + li {
    margin-top: 0.55rem;
    padding-top: 0.55rem;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.header-opening-hours-menu li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
}

.header-opening-hours-menu strong,
.header-opening-hours-menu span {
    display: block;
    color: #252638;
    white-space: nowrap;
}

.header-opening-hours-menu span {
    font-size: 0.92rem;
    color: #696b7e;
    text-align: right;
}

.main-header.style-two .header-top,
.main-header.style-two .top-inner,
.main-header.style-two .header-top .left-column,
.main-header.style-two .header-top .info-list,
.main-header.style-two .header-top .info-list li {
    overflow: visible;
}

.main-header.style-two .header-top {
    position: relative;
    z-index: 20;
}

.main-header.style-two .header-lower {
    position: relative;
    z-index: 10;
}

.opening-hours-admin-table th,
.opening-hours-admin-table td {
    vertical-align: middle;
}

.opening-hours-time-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 0.5rem;
    align-items: center;
}

.opening-hours-time-grid span {
    color: #64748b;
    font-size: 0.9rem;
}

.menu-builder-root {
    position: relative;
}

.menu-builder-toolbar {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.menu-builder-list {
    list-style: none;
    margin: 0;
    padding: 0 0 0 1.5rem;
}

.menu-builder-root > .menu-builder-list {
    padding-left: 0;
}

.menu-builder-item {
    position: relative;
}

.menu-builder-card {
    position: relative;
    margin-bottom: 0.85rem;
}

.menu-builder-row {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 0.9rem;
    background: #fff;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.05);
}

.menu-builder-item.is-dragging .menu-builder-row {
    opacity: 0.55;
}

.menu-builder-handle {
    border: 0;
    background: #f1f5f9;
    color: #475569;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: grab;
    flex: 0 0 auto;
}

.menu-builder-content {
    min-width: 0;
    flex: 1 1 auto;
}

.menu-builder-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.25rem;
}

.menu-builder-title {
    font-weight: 600;
    color: #0f172a;
}

.menu-builder-badges {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.menu-builder-meta {
    font-size: 0.85rem;
    color: #64748b;
}

.menu-builder-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.menu-builder-actions form {
    margin: 0;
}

.menu-builder-dropzone {
    height: 0.65rem;
    margin: 0.2rem 0;
    border-radius: 999px;
    border: 1px dashed transparent;
    transition: all 0.2s ease;
}

.menu-builder-dropzone.is-root {
    margin-bottom: 0.9rem;
}

.menu-builder-dropzone[data-menu-dropzone="inside"] {
    margin-left: 3.35rem;
}

.menu-builder-dropzone.is-drop-target {
    border-color: rgba(99, 102, 241, 0.35);
    background: rgba(99, 102, 241, 0.12);
}

.event-detail-media-panel img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 480px;
    object-fit: cover;
    border-radius: 5px;
}

.event-detail-content-panel {
    height: 100%;
}

.event-detail-richtext > *:first-child {
    margin-top: 0;
}

.event-detail-richtext img,
.event-detail-richtext iframe {
    max-width: 100%;
    border-radius: 5px;
}

.agenda-detail-legacy-title {
    display: none;
}

.agenda-detail-title-section {
    min-height: 500px;
    padding-top: 176px;
}

.agenda-detail-section {
    background:
        radial-gradient(circle at 10% 0%, rgba(0, 122, 194, 0.08) 0, rgba(0, 122, 194, 0) 32%),
        radial-gradient(circle at 88% 8%, rgba(255, 210, 82, 0.18) 0, rgba(255, 210, 82, 0) 28%),
        #f6f9fc;
}

.agenda-detail-section.sec-pad-2 {
    padding-top: 42px;
}

.agenda-detail-section .event-info {
    margin-top: 0;
    margin-bottom: 30px;
}

.agenda-detail-section .event-info .row {
    row-gap: 24px;
}

.agenda-detail-section .event-info .info-column {
    display: flex;
}

.agenda-detail-section .event-info .single-item {
    position: relative;
    width: 100%;
    min-height: 100%;
    padding: 28px 28px 26px;
    border: 1px solid #e4edf4;
    border-left: 5px solid #007AC2;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.07);
}

.agenda-detail-section .event-info .icon-box {
    width: 46px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
    border-radius: 8px;
    background: #eaf6fc;
    color: #007AC2;
    font-size: 22px;
}

.agenda-detail-section .event-info h4 {
    margin-bottom: 12px;
    color: #1f2235;
    font-size: 22px;
}

.agenda-detail-section .event-info .list {
    margin: 0;
}

.agenda-detail-section .event-info .list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 10px;
    color: #53606f;
    line-height: 1.55;
}

.agenda-detail-section .event-info .list li:last-child {
    margin-bottom: 0;
}

.agenda-detail-section .event-info .list i {
    color: #007AC2;
    line-height: 1.55;
}

.agenda-detail-section .event-info a {
    color: #007AC2;
    font-weight: 800;
}

.agenda-detail-section .overview-box,
.agenda-detail-section .purpose-box,
.agenda-detail-section .social-box {
    margin-bottom: 30px;
    padding: 0;
    border: 1px solid #e4edf4;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.07);
    overflow: hidden;
}

.agenda-detail-section .overview-box .row,
.agenda-detail-section .purpose-box .row {
    align-items: stretch;
}

.agenda-detail-section .overview-box .image-box,
.agenda-detail-section .overview-box .image {
    height: 100%;
}

.agenda-detail-section .overview-box .image {
    height: 560px;
    min-height: 0;
    margin: 0;
    overflow: hidden;
    background:
        linear-gradient(135deg, rgba(0, 122, 194, 0.08), rgba(255, 210, 82, 0.12)),
        #f6f9fc;
}

.agenda-detail-section .overview-box img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.agenda-detail-image-zoom-link {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
}

.agenda-detail-image-zoom-link span {
    position: absolute;
    right: 18px;
    bottom: 18px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 9px 15px;
    border-radius: 6px;
    background: #007AC2;
    color: #ffffff;
    font-weight: 800;
    box-shadow: 0 12px 30px rgba(15, 22, 41, 0.18);
}

.agenda-detail-image-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 28px;
}

.agenda-detail-image-modal:target {
    display: flex;
}

.agenda-detail-image-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(10, 25, 40, 0.86);
}

.agenda-detail-image-modal-dialog {
    position: relative;
    z-index: 1;
    width: min(1180px, 96vw);
    height: min(86vh, 900px);
    padding: 18px;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.32);
}

.agenda-detail-image-modal-dialog img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.agenda-detail-image-modal-close {
    position: absolute;
    top: -16px;
    right: -16px;
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #007AC2;
    color: #ffffff;
    font-size: 28px;
    line-height: 1;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.25);
}

.agenda-detail-image-modal-close:hover,
.agenda-detail-image-modal-close:focus {
    color: #ffffff;
    background: #005f97;
}

.agenda-detail-section .overview-box .text {
    height: 100%;
    padding: 34px;
    background:
        linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

.agenda-detail-section .group-title {
    margin-bottom: 18px;
}

.agenda-detail-section .group-title h3 {
    color: #1f2235;
    font-size: 28px;
    line-height: 1.25;
}

.agenda-detail-section .group-title .title-shape {
    margin-top: 10px;
}

.agenda-detail-section .overview-box .text p,
.agenda-detail-section .purpose-box p,
.agenda-detail-section .event-detail-richtext {
    color: #696b7e;
    line-height: 1.75;
}

.agenda-detail-section .overview-box .theme-btn,
.agenda-detail-section .social-box a {
    border-radius: 6px;
}

.agenda-detail-section .purpose-box {
    padding: 30px;
}

.agenda-detail-section .purpose-box .upper-box,
.agenda-detail-section .form-inner,
.agenda-detail-section .map-inner {
    height: 100%;
    padding: 28px;
    border: 1px solid #e4edf4;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 12px 30px rgba(15, 22, 41, 0.04);
}

.agenda-detail-section .purpose-box .text-column {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.agenda-detail-section .purpose-box > .row > .text-column {
    display: none;
}

.agenda-detail-section .purpose-box > .row > .form-column,
.agenda-detail-section .purpose-box > .row > .map-column {
    flex: 0 0 100%;
    max-width: 100%;
}

.agenda-detail-section .purpose-box > .row > .form-column {
    order: 1;
}

.agenda-detail-section .purpose-box > .row > .map-column {
    order: 2;
    margin-top: 24px;
}

.agenda-detail-section .accordion-box {
    display: grid;
    gap: 12px;
    margin: 0;
}

.agenda-detail-section .accordion-box .accordion {
    border: 1px solid #e4edf4;
    border-radius: 8px;
    background: #f6f9fc;
    overflow: hidden;
}

.agenda-detail-section .accordion-box .acc-btn {
    padding: 16px 18px;
    background: #ffffff;
}

.agenda-detail-section .accordion-box .acc-btn h5 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    color: #1f2235;
    font-size: 17px;
}

.agenda-detail-section .accordion-box .acc-btn h5 i {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #eaf6fc;
    color: #007AC2;
    font-size: 14px;
}

.agenda-detail-section .accordion-box .acc-content {
    padding: 0 18px 18px;
}

.agenda-detail-section .accordion-box .acc-content p {
    margin-bottom: 0;
}

.agenda-detail-section .map-inner {
    min-height: 100%;
    overflow: hidden;
}

.agenda-detail-section .event-detail-map,
.agenda-detail-section .event-detail-media-panel,
.agenda-detail-section .event-detail-media-panel img {
    height: 100%;
    min-height: 390px;
    border-radius: 8px;
}

.agenda-detail-section .form-inner.event-detail-content-panel {
    background:
        linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

.agenda-detail-section .event-detail-richtext > *:first-child {
    margin-top: 0;
}

.agenda-detail-section .event-detail-richtext > *:last-child {
    margin-bottom: 0;
}

.agenda-detail-section .social-box {
    padding: 26px;
    text-align: left;
}

.agenda-detail-section .social-box h4 {
    margin-bottom: 18px;
    color: #1f2235;
}

.agenda-detail-section .social-links {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 0;
}

.agenda-detail-section .social-links li {
    margin: 0;
}

.agenda-detail-section .social-links a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 10px 16px;
    border: 1px solid #dbe6ee;
    background: #ffffff;
    color: #007AC2;
    font-weight: 800;
}

.agenda-detail-section .social-links a:hover,
.agenda-detail-section .social-links a:focus {
    border-color: #007AC2;
    background: #007AC2;
    color: #ffffff;
}

.recent-events {
    background: #f6f9fc;
}

.recent-events .schedule-block-three .inner-box {
    border: 1px solid #e4edf4;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 14px 34px rgba(15, 22, 41, 0.05);
    overflow: hidden;
}

.agenda-public-list-content .schedule-block-one .post-info li {
    width: 100%;
    margin-right: 0;
    margin-bottom: 8px;
}

.agenda-public-list-content .schedule-block-one .post-info li:last-child {
    margin-bottom: 0;
}

@media (max-width: 991px) {
    .news-detail-title-section {
        min-height: 410px;
        padding-top: 142px;
    }

    .news-detail-section.sec-pad-2 {
        padding-top: 36px;
    }

    .news-detail-meta-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .news-detail-back-link {
        width: 100%;
    }

    .news-detail-section .blog-sidebar {
        position: static;
        margin-top: 30px;
    }

    .agenda-detail-title-section {
        min-height: 410px;
        padding-top: 142px;
    }

    .agenda-detail-section.sec-pad-2 {
        padding-top: 36px;
    }

    .agenda-detail-section .overview-box .text,
    .agenda-detail-section .purpose-box {
        padding: 26px;
    }

    .agenda-detail-section .overview-box .image {
        height: 460px;
    }

    .agenda-detail-section .purpose-box .upper-box,
    .agenda-detail-section .form-inner,
    .agenda-detail-section .map-inner {
        margin-bottom: 22px;
    }

    .public-listing-title-section {
        min-height: 410px;
        padding-top: 142px;
    }

    .public-listing-section.sec-pad-2 {
        padding-top: 36px;
    }

    .school-enrollment-title-section {
        min-height: 410px;
        padding-top: 142px;
    }

    .school-enrollment-public-section {
        padding-top: 36px;
    }

    .school-enrollment-public-section.public-theme-content {
        padding-top: 36px;
    }

    .school-enrollment-intro-card,
    .school-enrollment-confirmation-card,
    .school-enrollment-public-section .public-content-card {
        padding: 2rem 1.4rem;
    }

    .school-enrollment-hub-option .theme-btn {
        width: 100%;
    }

    .public-theme-content {
        padding: 70px 0;
    }

    .public-content-card {
        padding: 32px 24px;
    }

    .public-grid-cards {
        grid-template-columns: 1fr;
    }

    .events-list .agenda-public-list-content .filter-box {
        padding-right: 0;
        padding-left: 0;
    }

    .news-listing-section .news-public-list-content .filter-box,
    .agenda-listing-section .agenda-public-list-content .filter-box {
        margin-bottom: 30px;
        border-radius: 8px;
    }

    .events-list .agenda-public-list-content .filter-box .form-group {
        width: 100%;
        float: none;
        border-bottom: 1px solid #e6e6ea;
    }

    .events-list .agenda-public-list-content .filter-box .form-group .select-box,
    .events-list .agenda-public-list-content .filter-box .agenda-filter-search {
        border-right: 0;
    }

    .events-list .agenda-public-list-content .filter-box .search-btn {
        position: relative;
        width: 100%;
    }

    .events-list .agenda-public-list-content .filter-box .search-btn button {
        width: 100%;
    }

    .news-public-list-content .filter-box {
        padding-right: 0;
    }

    .news-public-list-content .filter-box .form-group {
        width: 100%;
        float: none;
        border-bottom: 1px solid #e6e6ea;
    }

    .news-public-list-content .filter-box .news-filter-search {
        border-right: 0;
    }

    .news-public-list-content .filter-box .search-btn {
        position: relative;
        width: 100%;
    }

    .news-public-list-content .filter-box .search-btn button {
        width: 100%;
    }

    .news-listing-section .news-public-list-content .filter-box .search-btn button,
    .agenda-listing-section .agenda-public-list-content .filter-box .search-btn button {
        border-radius: 0 0 8px 8px;
    }

    .disruptions-public-section .filter-box {
        padding-right: 0;
    }

    .disruptions-public-section .filter-box .form-group {
        width: 100%;
    }

    .disruptions-public-section .filter-box .disruptions-status-filter {
        border-left: 0;
    }

    .disruptions-map-card,
    .disruptions-public-card,
    .disruption-detail-card,
    .disruption-detail-info {
        padding: 26px 22px;
    }

    .disruption-detail-sidebar {
        position: static;
        margin-top: 30px;
    }

    .school-enrollment-hub-card .association-submission-section,
    .school-enrollment-tracking-card .association-submission-section,
    .associations-submit-card form[data-school-enrollment-form] > .col-12 > .association-submission-section {
        padding: 1.15rem 1rem;
    }

    .associations-submit-card .theme-btn.style-one,
    .associations-submit-card .theme-btn.style-two {
        width: 100%;
        min-width: 0;
    }

    .school-enrollment-confirmation-card {
        padding: 2rem 1.25rem;
    }

    .school-enrollment-request-card {
        padding: 1rem;
    }

    .app-notification {
        padding: 0.9rem 0.95rem;
    }

    .school-enrollment-request-card .badge {
        white-space: normal;
        text-align: center;
    }

    .school-enrollment-admin-request-action {
        display: block;
    }

    .school-enrollment-admin-request-action .btn {
        width: 100%;
    }

    .home-slide-selected-media {
        grid-template-columns: 1fr;
    }

    .header-opening-hours-menu {
        left: -1.5rem;
        right: auto;
        min-width: min(280px, calc(100vw - 2rem));
    }

    .menu-builder-row {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .menu-builder-actions {
        width: 100%;
        justify-content: flex-start;
    }

    .menu-builder-title-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .footer-cta-box {
        margin-top: 20px;
    }

    .footer-labels-block {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .footer-labels-heading h3::after {
        left: 50%;
        transform: translateX(-50%);
    }

    .footer-labels-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .footer-label-card:nth-child(3)::before {
        content: none;
    }
}

@media only screen and (max-width: 575px) {
    .footer-labels-top-inner {
        padding: 20px 0 24px;
    }

    .footer-labels-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .footer-label-card {
        min-height: 92px;
    }
}

.business-card-public-section {
    background: #f8f7f4;
}

.business-card-minimal-body {
    margin: 0;
    min-height: 100vh;
    background: radial-gradient(circle at top, rgba(236, 28, 43, 0.08), transparent 35%), #f8f7f4;
}

.business-card-public-section-standalone {
    min-height: 100vh;
    display: flex;
    align-items: center;
}

.business-card-public-standalone-container {
    width: 100%;
    max-width: 1080px;
}

.business-card-admin-preview {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) 240px;
    gap: 1.25rem;
    padding: 1.25rem;
    border-radius: 1.25rem;
    background: linear-gradient(135deg, rgba(236, 28, 43, 0.08) 0%, rgba(246, 122, 69, 0.08) 100%);
    border: 1px solid rgba(236, 28, 43, 0.12);
}

.business-card-admin-preview-elected {
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.12) 0%, rgba(251, 191, 36, 0.12) 100%);
    border-color: rgba(245, 158, 11, 0.2);
}

.business-card-admin-preview-main {
    display: grid;
    gap: 1rem;
}

.business-card-admin-preview-header {
    display: flex;
    gap: 1rem;
    align-items: center;
}

.business-card-admin-preview-photo,
.business-card-admin-preview-avatar {
    width: 96px;
    height: 96px;
    border-radius: 1rem;
}

.business-card-admin-preview-photo {
    object-fit: cover;
}

.business-card-admin-preview-avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #007AC2 0%, #f67a45 100%);
    color: #fff;
    font-size: 2rem;
    font-weight: 700;
}

.business-card-admin-preview-elected .business-card-admin-preview-avatar {
    background: linear-gradient(135deg, #f59e0b 0%, #fbbf24 100%);
}

.business-card-admin-preview-type {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: rgba(236, 28, 43, 0.12);
    color: #c81e1e;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.5rem;
}

.business-card-admin-preview-elected .business-card-admin-preview-type {
    background: rgba(245, 158, 11, 0.16);
    color: #b45309;
}

.business-card-admin-preview-text h4 {
    margin-bottom: 0.35rem;
}

.business-card-admin-preview-text p {
    margin-bottom: 0.25rem;
    color: #64748b;
}

.business-card-admin-preview-org {
    font-weight: 600;
}

.business-card-admin-preview-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.business-card-admin-preview-meta > div {
    padding: 0.9rem 1rem;
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.82);
}

.business-card-admin-preview-meta span {
    display: block;
    margin-bottom: 0.25rem;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #94a3b8;
    font-weight: 700;
}

.business-card-admin-preview-side {
    padding: 1rem;
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.9);
    display: grid;
    align-content: start;
    justify-items: center;
    gap: 1rem;
}

.business-card-admin-preview-side img {
    width: 100%;
    max-width: 180px;
    height: auto;
}

.business-card-admin-preview-link {
    width: 100%;
}

.business-card-admin-preview-link span {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #94a3b8;
    font-weight: 700;
}

.business-card-admin-preview-link a {
    display: block;
    word-break: break-word;
}

.business-card-public-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(300px, 0.75fr);
    gap: 30px;
    align-items: start;
}

.business-card-public-heading {
    min-width: 0;
}

.business-card-public-brand {
    margin-bottom: 26px;
}

.business-card-public-brand img {
    display: block;
    max-width: 170px;
    height: auto;
}

.business-card-public-main,
.business-card-public-qr-card {
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 18px 55px rgba(16, 24, 40, 0.08);
    padding: 34px;
    overflow: hidden;
}

.business-card-public-shell.business-card-public-shell-elected .business-card-public-main,
.business-card-public-shell.business-card-public-shell-elected .business-card-public-qr-card {
    border-top: 4px solid #f59e0b;
}

.business-card-public-shell.business-card-public-shell-agent .business-card-public-main,
.business-card-public-shell.business-card-public-shell-agent .business-card-public-qr-card {
    border-top: 4px solid #007AC2;
}

.business-card-public-identity {
    display: flex;
    gap: 24px;
    align-items: center;
    margin-bottom: 30px;
}

.business-card-public-photo,
.business-card-public-photo img {
    width: 120px;
    height: 120px;
    border-radius: 24px;
}

.business-card-public-photo img {
    object-fit: cover;
}

.business-card-public-avatar {
    width: 120px;
    height: 120px;
    border-radius: 24px;
    background: linear-gradient(135deg, #007AC2 0%, #f67a45 100%);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 48px;
    font-weight: 700;
}

.business-card-public-shell.business-card-public-shell-elected .business-card-public-avatar {
    background: linear-gradient(135deg, #f59e0b 0%, #fbbf24 100%);
}

.business-card-public-type {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(236, 28, 43, 0.1);
    color: #007AC2;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 12px;
}

.business-card-public-shell.business-card-public-shell-elected .business-card-public-type {
    background: rgba(245, 158, 11, 0.12);
    color: #b45309;
}

.business-card-public-heading h2 {
    margin-bottom: 10px;
    font-size: 42px;
    line-height: 1.08;
    word-break: break-word;
}

.business-card-public-role,
.business-card-public-department,
.business-card-public-org {
    margin-bottom: 6px;
    color: #6b7280;
    font-size: 18px;
}

.business-card-public-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 28px;
}

.business-card-public-actions .theme-btn {
    min-height: 58px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding-left: 26px;
    padding-right: 26px;
}

.business-card-public-actions .theme-btn i {
    font-size: 16px;
    line-height: 1;
}

.business-card-public-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.business-card-public-list li {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 16px 0;
    border-top: 1px solid rgba(12, 18, 28, 0.08);
}

.business-card-public-list li:first-child {
    border-top: 0;
    padding-top: 0;
}

.business-card-public-list .label,
.business-card-public-url span {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #9ca3af;
}

.business-card-public-bio {
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid rgba(12, 18, 28, 0.08);
}

.business-card-public-bio h3 {
    margin-bottom: 12px;
}

.business-card-public-qr-card {
    position: sticky;
    top: 110px;
}

.business-card-public-qr-card h3 {
    margin-bottom: 12px;
}

.business-card-public-qr-card p {
    margin-bottom: 18px;
    color: #6b7280;
}

.business-card-public-qr {
    margin: 0 0 20px;
    padding: 18px;
    border-radius: 18px;
    background: #F3FAFD;
    text-align: center;
    overflow: hidden;
}

.business-card-public-qr img {
    display: block;
    width: min(100%, 280px);
    max-width: 280px;
    height: auto;
    margin-left: auto;
    margin-right: auto;
}

.business-card-public-url a {
    display: block;
    margin-top: 8px;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.elected-officials-public-section .sec-title {
    margin-bottom: 46px;
}

.elected-officials-public-section .pattern-layer {
    display: none;
}

.elected-officials-public-intro {
    max-width: 720px;
    margin: 22px auto 0;
    color: #6b7280;
}

.elected-officials-group {
    margin-bottom: 38px;
}

.elected-officials-group:last-child {
    margin-bottom: 0;
}

.elected-officials-mayor-row {
    margin-bottom: 12px;
}

.elected-officials-mayor-row .team-block-one .inner-box {
    box-shadow: 0 22px 60px rgba(16, 24, 40, 0.12);
}

.elected-officials-public-section .team-block-one,
.elected-officials-public-section .team-block-one .inner-box {
    height: 100%;
}

.elected-officials-public-section .team-block {
    margin-bottom: 30px;
}

.elected-officials-card-body {
    padding: 0 30px 30px;
    margin-top: 14px;
}

.elected-officials-card-bio {
    margin-bottom: 18px;
    color: #6b7280;
}

.elected-officials-card-links {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.elected-officials-card-links li {
    margin: 0;
}

.elected-officials-card-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    min-height: 44px;
    padding: 0;
    border-radius: 5px;
    background: #f8f7f4;
    color: #252638;
    font-weight: 600;
}

.elected-officials-card-links a:hover {
    color: #ffffff;
    background: #007AC2;
}

.elected-officials-card-links a i {
    font-size: 18px;
    line-height: 1;
}

.admin-table-thumb {
    width: 56px;
    height: 56px;
    border-radius: 12px;
    object-fit: cover;
    flex: 0 0 56px;
}

@media (max-width: 991px) {
    .business-card-admin-preview {
        grid-template-columns: 1fr;
    }

    .business-card-public-section-standalone {
        min-height: auto;
        align-items: stretch;
        padding-top: 90px;
        padding-bottom: 90px;
    }

    .business-card-public-shell {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .business-card-public-qr-card {
        position: static;
    }

    .elected-officials-group {
        margin-bottom: 30px;
    }
}

@media (max-width: 575px) {
    .news-detail-title-section {
        min-height: 360px;
        padding-top: 116px;
    }

    .news-detail-section.sec-pad-2 {
        padding-top: 30px;
    }

    .news-detail-meta-strip {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .news-detail-meta-item {
        padding: 18px;
    }

    .news-detail-image-box {
        height: 300px;
    }

    .news-detail-section .blog-details-content .text,
    .news-detail-section .blog-sidebar > * {
        padding: 22px;
    }

    .news-detail-image-zoom-link span {
        right: 12px;
        bottom: 12px;
        min-height: 38px;
        padding: 8px 12px;
    }

    .news-detail-image-modal {
        padding: 14px;
    }

    .news-detail-image-modal-dialog {
        width: 96vw;
        height: 82vh;
        padding: 12px;
    }

    .news-detail-image-modal-close {
        top: 8px;
        right: 8px;
    }

    .agenda-detail-title-section {
        min-height: 360px;
        padding-top: 116px;
    }

    .agenda-detail-section.sec-pad-2 {
        padding-top: 30px;
    }

    .agenda-detail-section .overview-box .image {
        height: 320px;
        min-height: 320px;
    }

    .agenda-detail-section .overview-box .text,
    .agenda-detail-section .purpose-box,
    .agenda-detail-section .purpose-box .upper-box,
    .agenda-detail-section .form-inner,
    .agenda-detail-section .map-inner,
    .agenda-detail-section .social-box {
        padding: 22px;
    }

    .agenda-detail-section .event-detail-map,
    .agenda-detail-section .event-detail-media-panel,
    .agenda-detail-section .event-detail-media-panel img {
        min-height: 300px;
    }

    .agenda-detail-section .social-links {
        display: grid;
    }

    .agenda-detail-section .social-links a {
        justify-content: center;
        width: 100%;
    }

    .agenda-detail-image-zoom-link span {
        right: 12px;
        bottom: 12px;
        min-height: 38px;
        padding: 8px 12px;
    }

    .agenda-detail-image-modal {
        padding: 14px;
    }

    .agenda-detail-image-modal-dialog {
        width: 96vw;
        height: 82vh;
        padding: 12px;
    }

    .agenda-detail-image-modal-close {
        top: 8px;
        right: 8px;
    }

    .public-listing-title-section {
        min-height: 360px;
        padding-top: 116px;
    }

    .public-listing-section.sec-pad-2 {
        padding-top: 30px;
    }

    .news-listing-section .news-block-one .lower-content,
    .agenda-listing-section .schedule-block-one .lower-content {
        padding: 22px;
    }

    .school-enrollment-title-section {
        min-height: 360px;
        padding-top: 116px;
    }

    .school-enrollment-public-section {
        padding-top: 30px;
    }

    .school-enrollment-public-section.public-theme-content {
        padding-top: 30px;
    }

    .school-enrollment-intro-card,
    .school-enrollment-confirmation-card,
    .school-enrollment-public-section .public-content-card {
        padding: 1.35rem;
    }

    .school-enrollment-public-section .sec-title {
        margin-bottom: 1.5rem;
    }

    .business-card-public-section-standalone {
        padding-top: 48px;
        padding-bottom: 48px;
    }

    .business-card-public-standalone-container {
        padding-left: 18px;
        padding-right: 18px;
    }

    .business-card-public-shell,
    .business-card-public-main,
    .business-card-public-side,
    .business-card-public-qr-card,
    .business-card-public-heading {
        width: 100%;
        min-width: 0;
    }

    .business-card-admin-preview-header,
    .business-card-public-identity {
        flex-direction: column;
        align-items: center;
    }

    .business-card-public-brand {
        margin-bottom: 22px;
        text-align: center;
    }

    .business-card-public-brand img {
        max-width: 140px;
        margin-left: auto;
        margin-right: auto;
    }

    .business-card-admin-preview-meta {
        grid-template-columns: 1fr;
    }

    .business-card-public-main,
    .business-card-public-qr-card {
        padding: 22px 18px;
        border-radius: 18px;
        box-shadow: 0 14px 38px rgba(16, 24, 40, 0.08);
    }

    .business-card-public-identity {
        gap: 18px;
        margin-bottom: 24px;
    }

    .business-card-public-photo,
    .business-card-public-photo img,
    .business-card-public-avatar {
        width: 92px;
        height: 92px;
        border-radius: 20px;
        margin-left: auto;
        margin-right: auto;
    }

    .business-card-public-avatar {
        font-size: 36px;
    }

    .business-card-public-type {
        margin-bottom: 10px;
        padding: 5px 12px;
        font-size: 12px;
    }

    .business-card-public-heading {
        width: 100%;
        text-align: center;
    }

    .business-card-public-heading h2 {
        margin-bottom: 8px;
        font-size: 28px;
        line-height: 1.1;
    }

    .business-card-public-role,
    .business-card-public-department,
    .business-card-public-org {
        margin-bottom: 4px;
        font-size: 16px;
        line-height: 1.45;
    }

    .business-card-public-type {
        justify-content: center;
    }

    .business-card-public-actions {
        flex-direction: column;
        gap: 10px;
        margin-bottom: 22px;
    }

    .business-card-public-actions .theme-btn {
        width: 100%;
        min-height: 54px;
        padding-left: 20px;
        padding-right: 20px;
        text-align: center;
        white-space: normal;
    }

    .business-card-public-actions .theme-btn span {
        flex: 0 1 auto;
    }

    .business-card-public-list li {
        gap: 8px;
        padding: 14px 0;
    }

    .business-card-public-list li a,
    .business-card-public-list li span:not(.label) {
        font-size: 16px;
        line-height: 1.55;
        word-break: break-word;
    }

    .business-card-public-bio {
        margin-top: 22px;
        padding-top: 20px;
    }

    .business-card-public-bio h3,
    .business-card-public-qr-card h3 {
        margin-bottom: 10px;
        font-size: 22px;
    }

    .business-card-public-qr-card {
        display: grid;
        gap: 14px;
    }

    .business-card-public-qr-card,
    .business-card-public-qr-card p,
    .business-card-public-url {
        text-align: center;
    }

    .business-card-public-qr-card p {
        margin-bottom: 0;
        font-size: 15px;
        line-height: 1.6;
    }

    .business-card-public-qr {
        margin-bottom: 0;
        padding: 14px;
        border-radius: 16px;
    }

    .business-card-public-qr img {
        display: block;
        width: min(100%, 210px);
        max-width: 210px;
        margin-left: auto;
        margin-right: auto;
    }

    .business-card-public-url {
        display: none;
    }

    .elected-officials-card-body {
        padding: 0 20px 22px;
    }

    .elected-officials-card-links {
        flex-direction: column;
    }

    .elected-officials-card-links a {
        width: 100%;
        justify-content: center;
    }

}

.public-search-page {
    background: #fff;
}

.search-results-legacy-title {
    display: none;
}

.skip-link {
    position: fixed;
    top: 14px;
    left: 14px;
    z-index: 10000;
    padding: 12px 18px;
    border-radius: 4px;
    background: #111426;
    color: #fff;
    font-weight: 800;
    transform: translateY(-140%);
    transition: transform 0.2s ease;
}

.skip-link:focus,
.skip-link:focus-visible {
    color: #fff;
    transform: translateY(0);
}

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 3px solid #111426 !important;
    outline-offset: 3px;
}

.page-title a:focus-visible,
.main-header a:focus-visible,
.main-header button:focus-visible,
.main-footer a:focus-visible,
.search-popup a:focus-visible,
.search-popup button:focus-visible,
.accessibility-panel button:focus-visible {
    outline-color: var(--theme-color, #007AC2) !important;
}

.public-page-content:focus {
    outline: none;
}

.public-search-main-form {
    max-width: 960px;
    margin: 0 auto 38px;
}

.public-search-main-box {
    display: flex;
    gap: 12px;
    padding: 14px;
    border: 1px solid #e8e9ef;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 20px 60px rgba(15, 22, 41, 0.08);
}

.public-search-main-box input {
    width: 100%;
    height: 58px;
    padding: 0 22px;
    border: 1px solid #eef0f5;
    border-radius: 4px;
    color: #676b7c;
    font-size: 16px;
}

.public-search-main-box select {
    min-width: 210px;
    height: 58px;
    padding: 0 18px;
    border: 1px solid #eef0f5;
    border-radius: 4px;
    background: #fff;
    color: #676b7c;
    font-size: 16px;
    font-weight: 600;
}

.public-search-main-box .theme-btn {
    min-width: 190px;
    border: 0;
}

.public-search-summary,
.public-search-empty {
    max-width: 960px;
    margin: 0 auto 24px;
}

.public-search-empty {
    padding: 42px;
    border-radius: 6px;
    background: #f7f8fb;
    text-align: center;
}

.public-search-empty h3 {
    margin-bottom: 10px;
    color: #1f2235;
    font-size: 28px;
}

.public-search-empty p,
.public-search-summary p {
    margin: 0;
    color: #70768c;
    font-size: 17px;
    line-height: 1.7;
}

.public-search-results {
    display: grid;
    gap: 18px;
    max-width: 960px;
    margin: 0 auto;
}

.public-search-result-card {
    position: relative;
    display: grid;
    grid-template-columns: 74px 1fr 48px;
    gap: 22px;
    align-items: center;
    padding: 26px 28px;
    border: 1px solid #ebeef4;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.06);
    transition: all 0.25s ease;
}

.public-search-result-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 24px 55px rgba(15, 22, 41, 0.1);
}

.public-search-result-icon {
    display: inline-flex;
    width: 74px;
    height: 74px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #f4f5f8;
    color: var(--theme-color, #007AC2);
    font-size: 28px;
}

.public-search-result-type {
    display: inline-block;
    margin-bottom: 7px;
    color: var(--theme-color, #007AC2);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.public-search-result-content h3 {
    margin-bottom: 8px;
    font-size: 24px;
    line-height: 1.25;
}

.public-search-result-content h3 a {
    color: #1f2235;
}

.public-search-result-content h3 a:hover {
    color: var(--theme-color, #007AC2);
}

.public-search-result-content p {
    margin: 0;
    color: #70768c;
    font-size: 16px;
    line-height: 1.65;
}

.public-search-result-link {
    display: inline-flex;
    width: 48px;
    height: 48px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #f4f5f8;
    color: #1f2235;
}

.public-search-result-card:hover .public-search-result-link {
    background: var(--theme-color, #007AC2);
    color: #fff;
}

.search-results-title-section {
    min-height: 500px;
    padding-top: 176px;
}

.search-results-section {
    position: relative;
    background:
        radial-gradient(circle at 14% 0%, rgba(0, 122, 194, 0.08), transparent 30%),
        linear-gradient(180deg, #f7fafc 0%, #ffffff 42%);
}

.search-results-section.sec-pad {
    padding-top: 42px;
}

.search-results-section > .auto-container > .sec-title {
    display: none;
}

.search-results-section .public-search-main-form,
.search-results-section .public-search-summary,
.search-results-section .public-search-empty,
.search-results-section .public-search-results {
    max-width: 1040px;
}

.search-results-section .public-search-main-form {
    margin-bottom: 30px;
}

.search-results-section .public-search-main-box {
    border-color: #dfeaf2;
    border-radius: 8px;
    box-shadow: 0 18px 42px rgba(15, 35, 55, 0.09);
}

.search-results-section .public-search-main-box input,
.search-results-section .public-search-main-box select {
    border-color: #dbe6ee;
    border-radius: 6px;
    background-color: #f9fbfd;
    color: #1f2235;
}

.search-results-section .public-search-main-box input:focus,
.search-results-section .public-search-main-box select:focus {
    border-color: var(--theme-color, #007AC2);
    background-color: #ffffff;
}

.search-results-section .public-search-main-box .theme-btn {
    border-radius: 6px;
}

.search-results-section .public-search-summary {
    padding: 16px 20px;
    border: 1px solid #dfeaf2;
    border-left: 5px solid var(--theme-color, #007AC2);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 14px 32px rgba(15, 35, 55, 0.06);
}

.search-results-section .public-search-empty {
    padding: 44px;
    border: 1px solid #dfeaf2;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 42px rgba(15, 35, 55, 0.08);
}

.search-results-section .public-search-result-card {
    border-color: #dfeaf2;
    border-left: 5px solid var(--theme-color, #007AC2);
    border-radius: 8px;
    box-shadow: 0 16px 34px rgba(15, 35, 55, 0.07);
}

.search-results-section .public-search-result-icon {
    border-radius: 8px;
    background: #e9f6fc;
    color: var(--theme-color, #007AC2);
}

.search-results-section .public-search-result-link {
    border-radius: 8px;
    background: #e9f6fc;
    color: var(--theme-color, #007AC2);
}

.search-results-section .public-search-result-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 24px 52px rgba(15, 35, 55, 0.11);
}

@media (max-width: 991px) {
    .search-results-title-section {
        min-height: 410px;
        padding-top: 142px;
    }

    .search-results-section.sec-pad {
        padding-top: 36px;
    }
}

@media (max-width: 767px) {
    .public-search-main-box,
    .public-search-result-card {
        grid-template-columns: 1fr;
    }

    .public-search-main-box {
        display: grid;
    }

    .public-search-main-box .theme-btn {
        width: 100%;
        min-width: 0;
    }

    .public-search-main-box select {
        width: 100%;
        min-width: 0;
    }

    .public-search-result-card {
        gap: 16px;
        padding: 24px 20px;
    }

    .public-search-result-link {
        width: 100%;
        border-radius: 4px;
    }

    .search-results-section .public-search-result-link {
        border-radius: 6px;
    }
}

@media (max-width: 575px) {
    .search-results-title-section {
        min-height: 360px;
        padding-top: 116px;
    }

    .search-results-section.sec-pad {
        padding-top: 30px;
    }

    .search-results-section .public-search-main-box {
        padding: 12px;
    }

    .search-results-section .public-search-empty {
        padding: 30px 22px;
    }

    .search-results-section .public-search-result-icon {
        width: 58px;
        height: 58px;
        font-size: 22px;
    }
}

.search-popup-filter {
    margin-top: 28px;
}

.search-popup .close-search {
    border: 0;
    background: transparent;
}

.search-popup .search-popup-filter h3 {
    margin-bottom: 18px;
}

.search-popup-filter-options {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.search-popup-filter-options label {
    position: relative;
    display: inline-flex;
    margin: 0;
    cursor: pointer;
}

.search-popup-filter-options input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.search-popup-filter-options span {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 10px 18px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    transition: all 0.2s ease;
}

.search-popup-filter-options input:checked + span,
.search-popup-filter-options label:hover span {
    border-color: var(--theme-color, #007AC2);
    background: var(--theme-color, #007AC2);
    color: #fff;
}

.accessibility-toggler {
    border: 0;
    background: transparent;
    cursor: pointer;
}

.accessibility-overlay {
    position: fixed;
    inset: 0;
    z-index: 9998;
    background: rgba(15, 18, 32, 0.58);
}

.accessibility-panel {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 9999;
    width: min(430px, 100vw);
    height: 100vh;
    overflow-y: auto;
    padding: 34px;
    background: #fff;
    box-shadow: -20px 0 60px rgba(15, 18, 32, 0.22);
    transform: translateX(105%);
    transition: transform 0.28s ease;
}

body.accessibility-panel-open {
    overflow: hidden;
}

.accessibility-panel.is-open {
    transform: translateX(0);
}

.accessibility-panel-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 30px;
}

.accessibility-panel-kicker {
    display: inline-flex;
    margin-bottom: 8px;
    color: var(--theme-color, #007AC2);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.accessibility-panel h2 {
    margin: 0;
    color: #1f2235;
    font-size: 30px;
    line-height: 1.15;
}

.accessibility-panel-close {
    display: inline-flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: #f4f5f8;
    color: #1f2235;
    cursor: pointer;
}

.accessibility-control-group {
    padding: 22px 0;
    border-top: 1px solid #eceef4;
}

.accessibility-control-group h3 {
    margin-bottom: 14px;
    color: #1f2235;
    font-size: 19px;
}

.accessibility-choice-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.accessibility-choice-grid button,
.accessibility-toggle-list button {
    border: 1px solid #e5e8f0;
    border-radius: 6px;
    background: #fff;
    color: #1f2235;
    cursor: pointer;
    font-weight: 800;
    transition: all 0.2s ease;
}

.accessibility-choice-grid button {
    min-height: 48px;
    padding: 8px 10px;
}

.accessibility-choice-grid button.is-active,
.accessibility-toggle-list button.is-active {
    border-color: var(--theme-color, #007AC2);
    background: var(--theme-color, #007AC2);
    color: #fff;
}

.accessibility-toggle-list {
    display: grid;
    gap: 10px;
}

.accessibility-toggle-list button {
    display: flex;
    min-height: 54px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 16px;
    text-align: left;
}

.accessibility-toggle-list i {
    font-size: 22px;
}

.accessibility-panel-footer {
    padding-top: 24px;
}

.accessibility-panel-footer .theme-btn {
    width: 100%;
    border: 0;
}

.accessibility-panel-footer p {
    margin: 14px 0 0;
    color: #6f7487;
    font-size: 14px;
    line-height: 1.6;
}

html.a11y-readable body {
    letter-spacing: 0.015em;
    line-height: 1.75;
}

html.a11y-readable p,
html.a11y-readable li,
html.a11y-readable input,
html.a11y-readable textarea,
html.a11y-readable select {
    line-height: 1.85;
}

html.a11y-underline-links a {
    text-decoration: underline !important;
    text-underline-offset: 0.18em;
}

html.a11y-contrast body,
html.a11y-contrast .public-page-content,
html.a11y-contrast .public-search-page,
html.a11y-contrast .public-theme-content,
html.a11y-contrast .news-section,
html.a11y-contrast .events-list {
    background: #fff !important;
    color: #000 !important;
}

html.a11y-contrast h1,
html.a11y-contrast h2,
html.a11y-contrast h3,
html.a11y-contrast h4,
html.a11y-contrast h5,
html.a11y-contrast h6,
html.a11y-contrast p,
html.a11y-contrast li,
html.a11y-contrast span {
    color: #000 !important;
}

html.a11y-contrast a {
    color: #b00020 !important;
}

html.a11y-contrast .theme-btn,
html.a11y-contrast button,
html.a11y-contrast input[type="submit"] {
    outline: 2px solid #000;
}

html.a11y-reduce-motion *,
html.a11y-reduce-motion *::before,
html.a11y-reduce-motion *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
}

.legal-legacy-title {
    display: none;
}

.legal-title-section {
    min-height: 500px;
    padding-top: 176px;
}

.accessibility-statement-section,
.legal-page-section,
.sitemap-section {
    position: relative;
    background:
        radial-gradient(circle at 12% 0%, rgba(0, 122, 194, 0.08), transparent 30%),
        radial-gradient(circle at 88% 8%, rgba(255, 210, 82, 0.16), transparent 26%),
        #f6f9fc;
}

.legal-page-section.sec-pad,
.legal-content-section.sec-pad {
    padding-top: 42px;
}

.legal-page-card {
    max-width: 980px;
    margin: 0 auto;
    padding: 0;
    border: 1px solid #e4edf4;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.07);
    overflow: hidden;
}

.legal-page-card .sec-title {
    margin-bottom: 0;
    padding: 34px 42px 30px;
    border-bottom: 1px solid #edf2f6;
    background:
        linear-gradient(135deg, rgba(0, 122, 194, 0.08), rgba(255, 210, 82, 0.14)),
        #ffffff;
}

.legal-page-card .sec-title h6,
.legal-page-card .sec-title .title-shape {
    display: none;
}

.legal-page-card .sec-title h2 {
    margin-bottom: 10px;
    color: #1f2235;
    font-size: 34px;
    line-height: 1.15;
}

.legal-page-card .sec-title p {
    display: inline-flex;
    width: fit-content;
    min-height: 38px;
    align-items: center;
    margin: 0;
    padding: 0.35rem 0.85rem;
    border-radius: 999px;
    background: #eaf6fc;
    color: #007AC2;
    font-size: 14px;
    font-weight: 800;
}

.legal-page-card h3 {
    position: relative;
    margin: 34px 42px 12px;
    padding-bottom: 12px;
    color: #1f2235;
    font-size: 24px;
    line-height: 1.25;
}

.legal-page-card h3::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 58px;
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, #007AC2 0%, #ffd252 100%);
}

.legal-page-card p,
.legal-page-card li {
    color: #6f7487;
    font-size: 17px;
    line-height: 1.75;
}

.legal-page-card p {
    margin-right: 42px;
    margin-left: 42px;
}

.legal-page-card ul {
    margin: 0 42px 18px;
    padding-left: 22px;
}

.legal-page-card > p:last-child,
.legal-page-card > ul:last-child {
    margin-bottom: 42px;
}

.legal-page-card a {
    color: var(--theme-color, #007AC2);
    font-weight: 800;
}

.accessibility-statement-card {
    display: grid;
    grid-template-columns: 330px 1fr;
    gap: 34px;
    align-items: flex-start;
}

.legal-content-section > .auto-container > .sec-title {
    display: none;
}

.accessibility-status-box,
.accessibility-statement-content {
    border: 1px solid #e4edf4;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.07);
}

.accessibility-status-box {
    position: sticky;
    top: 110px;
    padding: 30px;
    border-top: 5px solid var(--theme-color, #007AC2);
}

.accessibility-status-box span {
    display: inline-flex;
    width: fit-content;
    margin-bottom: 10px;
    padding: 7px 11px;
    border-radius: 6px;
    background: #eaf6fc;
    color: var(--theme-color, #007AC2);
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}

.accessibility-status-box strong {
    display: block;
    margin-bottom: 14px;
    color: #1f2235;
    font-size: 24px;
    line-height: 1.25;
}

.accessibility-status-box p,
.accessibility-statement-content p,
.accessibility-statement-content li {
    color: #6f7487;
    font-size: 17px;
    line-height: 1.75;
}

.accessibility-statement-content {
    padding: 42px;
}

.accessibility-statement-content h3 {
    position: relative;
    margin: 32px 0 12px;
    padding-bottom: 12px;
    color: #1f2235;
    font-size: 24px;
    line-height: 1.25;
}

.accessibility-statement-content h3:first-child {
    margin-top: 0;
}

.accessibility-statement-content h3::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 58px;
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, #007AC2 0%, #ffd252 100%);
}

.accessibility-statement-content ul {
    margin: 0 0 18px 22px;
}

.accessibility-statement-content a {
    color: var(--theme-color, #007AC2);
    font-weight: 800;
}

.sitemap-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.sitemap-card {
    position: relative;
    padding: 34px;
    border: 1px solid #e4edf4;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.07);
    overflow: hidden;
}

.sitemap-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 5px;
    height: 100%;
    background: linear-gradient(180deg, #007AC2 0%, #41a3bd 48%, #ffd252 100%);
}

.sitemap-card-wide {
    grid-column: 1 / -1;
}

.sitemap-card h3 {
    margin-bottom: 22px;
    color: #1f2235;
    font-size: 24px;
    line-height: 1.25;
}

.sitemap-card ul {
    display: grid;
    gap: 10px;
    margin: 0;
}

.sitemap-card li {
    position: relative;
    padding: 12px 14px 12px 38px;
    border: 1px solid #edf2f6;
    border-radius: 8px;
    background: #f9fbfd;
    color: #6f7487;
}

.sitemap-card li::before {
    position: absolute;
    top: 50%;
    left: 14px;
    transform: translateY(-50%);
    color: var(--theme-color, #007AC2);
    font-family: "Font Awesome 5 Pro";
    font-weight: 900;
    content: "\f054";
}

.sitemap-card a {
    display: inline-flex;
    color: #1f2235;
    font-weight: 800;
}

.sitemap-card a:hover {
    color: var(--theme-color, #007AC2);
}

.sitemap-page-list .sitemap-depth-1 {
    margin-left: 22px;
}

.sitemap-page-list .sitemap-depth-2 {
    margin-left: 44px;
}

.sitemap-page-list .sitemap-depth-3,
.sitemap-page-list .sitemap-depth-4 {
    margin-left: 66px;
}

@media (max-width: 575px) {
    .accessibility-panel {
        padding: 26px 20px;
    }

    .accessibility-choice-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 991px) {
    .legal-title-section {
        min-height: 410px;
        padding-top: 142px;
    }

    .legal-page-section.sec-pad,
    .legal-content-section.sec-pad {
        padding-top: 36px;
    }

    .accessibility-statement-card {
        grid-template-columns: 1fr;
    }

    .accessibility-status-box {
        position: static;
    }

    .sitemap-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575px) {
    .legal-title-section {
        min-height: 360px;
        padding-top: 116px;
    }

    .legal-page-section.sec-pad,
    .legal-content-section.sec-pad {
        padding-top: 30px;
    }

    .accessibility-statement-content,
    .accessibility-status-box,
    .sitemap-card {
        padding: 24px 20px;
    }

    .legal-page-card .sec-title {
        padding: 26px 22px 24px;
    }

    .legal-page-card .sec-title h2 {
        font-size: 28px;
    }

    .legal-page-card h3 {
        margin-right: 22px;
        margin-left: 22px;
        font-size: 22px;
    }

    .legal-page-card p {
        margin-right: 22px;
        margin-left: 22px;
    }

    .legal-page-card ul {
        margin-right: 22px;
        margin-left: 22px;
    }

    .sitemap-page-list .sitemap-depth-1,
    .sitemap-page-list .sitemap-depth-2,
    .sitemap-page-list .sitemap-depth-3,
    .sitemap-page-list .sitemap-depth-4 {
        margin-left: 0;
    }
}

.admin-login-body {
    min-height: 100vh;
    margin: 0;
    font-family: var(--font-heading);
    color: #1f2235;
    background:
        radial-gradient(circle at 12% 18%, rgba(0, 122, 194, 0.18), transparent 28%),
        radial-gradient(circle at 85% 12%, rgba(31, 34, 53, 0.16), transparent 30%),
        linear-gradient(135deg, #f6f7fb 0%, #ffffff 48%, #f2f4f8 100%);
}

.admin-login-page {
    display: grid;
    min-height: 100vh;
    padding: 36px;
    place-items: center;
}

.admin-login-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(380px, 0.95fr);
    width: min(1120px, 100%);
    min-height: 680px;
    overflow: hidden;
    border: 1px solid rgba(31, 34, 53, 0.08);
    border-radius: 30px;
    background: #ffffff;
    box-shadow: 0 34px 90px rgba(31, 34, 53, 0.16);
}

.admin-login-visual {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    padding: 54px;
    color: #ffffff;
    background:
        linear-gradient(135deg, rgba(31, 34, 53, 0.96), rgba(31, 34, 53, 0.82)),
        url("../whitehall/images/background/service-bg.jpg") center/cover;
}

.admin-login-visual::before {
    position: absolute;
    inset: auto -90px -120px auto;
    width: 340px;
    height: 340px;
    border-radius: 50%;
    background: rgba(0, 122, 194, 0.92);
    content: "";
}

.admin-login-visual::after {
    position: absolute;
    top: -120px;
    left: -90px;
    width: 280px;
    height: 280px;
    border: 36px solid rgba(255, 255, 255, 0.08);
    border-radius: 50%;
    content: "";
}

.admin-login-visual-pattern {
    position: absolute;
    inset: 0;
    opacity: 0.18;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.22) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.22) 1px, transparent 1px);
    background-size: 46px 46px;
}

.admin-login-brand-card,
.admin-login-checklist {
    position: relative;
    z-index: 1;
}

.admin-login-brand-icon {
    display: inline-grid;
    width: 70px;
    height: 70px;
    margin-bottom: 30px;
    border-radius: 22px;
    place-items: center;
    color: #007AC2;
    background: #ffffff;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.18);
}

.admin-login-brand-icon i {
    font-size: 30px;
}

.admin-login-kicker {
    margin: 0 0 14px;
    color: #007AC2;
    font-size: 14px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.admin-login-brand-card h1 {
    margin: 0 0 22px;
    color: #ffffff;
    font-size: clamp(42px, 5vw, 70px);
    font-weight: 900;
    line-height: 0.95;
    letter-spacing: -0.055em;
}

.admin-login-brand-card p {
    max-width: 440px;
    margin: 0;
    color: rgba(255, 255, 255, 0.76);
    font-size: 18px;
    line-height: 1.7;
}

.admin-login-checklist {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.admin-login-checklist span {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    color: rgba(255, 255, 255, 0.86);
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(10px);
    font-weight: 800;
}

.admin-login-checklist i {
    color: #007AC2;
}

.admin-login-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 56px;
    background:
        radial-gradient(circle at top right, rgba(0, 122, 194, 0.08), transparent 34%),
        #ffffff;
}

.admin-login-logo {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    margin-bottom: 44px;
}

.admin-login-logo img {
    max-width: 190px;
    max-height: 82px;
    object-fit: contain;
}

.admin-login-heading {
    margin-bottom: 28px;
}

.admin-login-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 18px;
    padding: 9px 13px;
    border-radius: 999px;
    color: #007AC2;
    background: rgba(0, 122, 194, 0.08);
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.admin-login-heading h2 {
    margin: 0 0 12px;
    color: #1f2235;
    font-size: clamp(32px, 4vw, 46px);
    font-weight: 900;
    line-height: 1.05;
    letter-spacing: -0.045em;
}

.admin-login-heading p,
.admin-login-help {
    margin: 0;
    color: #74798d;
    font-size: 16px;
    line-height: 1.6;
}

.admin-login-alert {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 22px;
    padding: 15px 16px;
    border: 1px solid rgba(0, 122, 194, 0.18);
    border-radius: 16px;
    color: #9f1624;
    background: #fff1f3;
    font-weight: 800;
}

.admin-login-alert i {
    margin-top: 3px;
    color: #007AC2;
}

.admin-login-form {
    display: grid;
    gap: 18px;
}

.admin-login-field label {
    display: block;
    margin-bottom: 8px;
    color: #1f2235;
    font-size: 14px;
    font-weight: 900;
}

.admin-login-input {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr);
    align-items: center;
    overflow: hidden;
    border: 1px solid #e3e6ef;
    border-radius: 16px;
    background: #f8f9fc;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

.admin-login-input:focus-within {
    border-color: rgba(0, 122, 194, 0.42);
    background: #ffffff;
    box-shadow: 0 0 0 4px rgba(0, 122, 194, 0.08);
}

.admin-login-input i {
    display: grid;
    height: 100%;
    place-items: center;
    color: #9aa0b3;
}

.admin-login-input input {
    width: 100%;
    min-height: 56px;
    border: 0;
    outline: 0;
    color: #1f2235;
    background: transparent;
    font: inherit;
    font-weight: 800;
}

.admin-login-input input::placeholder {
    color: #a5a9b8;
    font-weight: 700;
}

.admin-login-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 58px;
    margin-top: 6px;
    border: 0;
    border-radius: 16px;
    color: #ffffff;
    background: #007AC2;
    box-shadow: 0 18px 32px rgba(0, 122, 194, 0.28);
    font: inherit;
    font-weight: 900;
    cursor: pointer;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

.admin-login-submit:hover,
.admin-login-submit:focus-visible {
    color: #ffffff;
    background: #d91528;
    box-shadow: 0 22px 42px rgba(0, 122, 194, 0.34);
    transform: translateY(-1px);
}

.admin-login-help {
    margin-top: 24px;
    padding-top: 22px;
    border-top: 1px solid #eceef4;
}

@media (max-width: 991px) {
    .admin-login-page {
        padding: 20px;
    }

    .admin-login-shell {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .admin-login-visual {
        min-height: 360px;
        padding: 36px;
    }

    .admin-login-card {
        padding: 42px 32px;
    }
}

@media (max-width: 575px) {
    .admin-login-page {
        display: block;
        padding: 0;
        background: #ffffff;
    }

    .admin-login-shell {
        min-height: 100vh;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .admin-login-visual {
        min-height: auto;
        padding: 30px 24px;
    }

    .admin-login-brand-card h1 {
        font-size: 36px;
    }

    .admin-login-brand-card p,
    .admin-login-checklist {
        display: none;
    }

    .admin-login-brand-icon {
        width: 58px;
        height: 58px;
        margin-bottom: 22px;
        border-radius: 18px;
    }

    .admin-login-card {
        padding: 34px 24px;
    }

    .admin-login-logo {
        margin-bottom: 30px;
    }

    .admin-login-logo img {
        max-width: 160px;
    }

.admin-login-heading h2 {
    font-size: 31px;
}
}

.admin-selected-document-card {
    display: flex;
    gap: 14px;
    align-items: center;
    padding: 14px;
    border: 1px solid #e6e9f1;
    border-radius: 12px;
    background: #f8f9fc;
}

.admin-menu-organized .admin-menu-section-title {
    margin-top: 14px;
}

.admin-menu-organized .admin-menu-section-title:first-child {
    margin-top: 0;
}

.admin-menu-organized .slide__category .category-name {
    color: rgba(255, 255, 255, 0.58);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.procedure-public-section {
    background: #f6f9fc;
}

.procedure-legacy-title {
    display: none;
}

.procedure-title-section {
    min-height: 470px;
    padding-top: 148px;
}

.procedure-public-section.sec-pad-2 {
    padding-top: 44px;
}

.procedure-public-section + .procedure-public-section {
    padding-top: 0;
}

.procedure-public-heading {
    display: none;
}

.procedure-public-heading h6 {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 10px;
    color: #007AC2;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}

.procedure-public-heading h6 i {
    color: #ffd252;
    font-size: 14px;
}

.procedure-public-heading h2 {
    margin-bottom: 10px;
    color: #1f2235;
    font-size: 38px;
    line-height: 1.15;
    font-weight: 800;
}

.procedure-public-heading p {
    max-width: 720px;
    margin: 14px auto 0;
    color: #6f7487;
    font-size: 16px;
    line-height: 1.65;
}

.procedure-result-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    margin-top: 12px;
    padding: 0.45rem 1rem;
    border-radius: 999px;
    color: #007AC2;
    background: #eaf6fc;
    font-size: 14px;
    font-weight: 800;
}

.procedure-filter-box {
    display: grid;
    grid-template-columns: minmax(260px, 1.7fr) minmax(190px, 1fr) minmax(190px, 1fr) auto auto;
    gap: 12px;
    align-items: center;
    margin-bottom: 34px;
    padding: 14px;
    border: 1px solid #e6eef5;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.07);
}

.procedure-filter-search {
    position: relative;
}

.procedure-filter-search i {
    position: absolute;
    left: 18px;
    top: 50%;
    color: #007AC2;
    transform: translateY(-50%);
}

.procedure-filter-box input,
.procedure-filter-box select {
    width: 100%;
    height: 54px;
    padding: 0 18px;
    border: 1px solid #e3ebf2;
    border-radius: 6px;
    background: #fff;
    color: #696b7e;
    font-weight: 600;
}

.procedure-filter-search input {
    padding-left: 46px;
}

.procedure-reset-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    padding: 0 18px;
    border-radius: 6px;
    color: #007AC2;
    background: #eaf6fc;
    font-weight: 800;
    white-space: nowrap;
}

.procedure-reset-link:hover {
    color: #ffffff;
    background: #007AC2;
}

.procedure-card-column {
    margin-bottom: 30px;
}

.procedure-public-card,
.procedure-detail-card,
.procedure-info-card {
    position: relative;
    height: 100%;
    padding: 30px;
    border: 1px solid #e4edf4;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 45px rgba(15, 22, 41, 0.06);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.procedure-public-card {
    display: flex;
    flex-direction: column;
}

.procedure-public-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 5px;
    height: 100%;
    border-radius: 8px 0 0 8px;
    background: linear-gradient(180deg, #007AC2 0%, #41a3bd 48%, #ffd252 100%);
}

.procedure-public-card:hover {
    border-color: rgba(0, 122, 194, 0.25);
    box-shadow: 0 24px 60px rgba(15, 22, 41, 0.1);
    transform: translateY(-3px);
}

.procedure-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
    margin-bottom: 18px;
    border-radius: 14px;
    color: #007AC2;
    background: #eaf6fc;
    font-size: 30px;
}

.procedure-public-card .procedure-type-badge,
.procedure-detail-heading span {
    display: inline-flex;
    width: fit-content;
    margin-bottom: 14px;
    padding: 7px 12px;
    border-radius: 6px;
    color: #1f2235;
    background: #fff7d8;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.procedure-public-card h3,
.procedure-detail-heading h2 {
    color: #1f2235;
    line-height: 1.2;
}

.procedure-public-card h3 {
    margin-bottom: 14px;
    font-size: 22px;
}

.procedure-public-card h3 a {
    color: inherit;
}

.procedure-public-card h3 a:hover {
    color: #007AC2;
}

.procedure-public-card p,
.procedure-detail-card p {
    flex: 1 1 auto;
    color: #696b7e;
    line-height: 1.75;
}

.procedure-public-card small {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    margin-top: 12px;
    padding: 8px 10px;
    border-radius: 6px;
    color: #53606f;
    background: #f3f7fa;
    font-size: 13px;
    font-weight: 800;
}

.procedure-public-card small i {
    color: #ffd252;
    font-size: 12px;
}

.procedure-card-link,
.procedure-back-link {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    justify-content: space-between;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid #edf2f6;
    color: #007AC2;
    font-weight: 800;
}

.procedure-card-link:hover,
.procedure-back-link:hover {
    color: #005d94;
}

.procedure-detail-section {
    padding-top: 44px;
    background: #f6f9fc;
}

.procedure-detail-section .row {
    align-items: flex-start;
}

.procedure-detail-heading {
    margin-bottom: 34px;
}

.procedure-detail-heading-hidden {
    display: none;
}

.procedure-detail-heading h2 {
    margin-bottom: 16px;
    font-size: 42px;
}

.procedure-detail-block + .procedure-detail-block {
    margin-top: 32px;
    padding-top: 32px;
    border-top: 1px solid #edf2f6;
}

.procedure-detail-block h3,
.procedure-info-card h3 {
    margin-bottom: 18px;
    color: #1f2235;
    font-size: 25px;
}

.procedure-detail-block h3 {
    position: relative;
    padding-bottom: 14px;
}

.procedure-detail-block h3::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 64px;
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, #007AC2 0%, #ffd252 100%);
}

.procedure-required-list {
    margin: 0;
}

.procedure-required-list li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 12px 0;
    color: #696b7e;
    font-weight: 600;
}

.procedure-required-list li + li {
    border-top: 1px solid #edf2f6;
}

.procedure-required-list i {
    color: #007AC2;
}

.procedure-detail-sidebar {
    position: sticky;
    top: 110px;
}

.procedure-main-button {
    width: 100%;
    justify-content: center;
    margin-bottom: 24px;
    text-align: center;
}

.procedure-info-card ul {
    margin: 0;
}

.procedure-info-card li {
    display: grid;
    gap: 6px;
    padding: 15px 0;
    border-bottom: 1px solid #e6e6ea;
}

.procedure-info-card li:last-child {
    border-bottom: 0;
}

.procedure-info-card strong {
    color: #1f2235;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.procedure-info-card span,
.procedure-info-card a {
    color: #696b7e;
}

.procedure-info-card a:hover {
    color: #007AC2;
}

@media (max-width: 991px) {
    .municipal-councils-title-section {
        min-height: 410px;
        padding-top: 142px;
    }

    .module-title-section.municipal-councils-title-section {
        min-height: 360px;
        padding-top: 104px;
    }

    .document-category-title-section {
        min-height: 410px;
        padding-top: 142px;
    }

    .procedure-title-section {
        min-height: 390px;
        padding-top: 122px;
    }

    .procedure-public-heading h2 {
        font-size: 32px;
    }

    .procedure-filter-box {
        grid-template-columns: 1fr;
    }

    .procedure-filter-box .theme-btn,
    .procedure-reset-link {
        width: 100%;
    }

    .procedure-detail-sidebar {
        position: static;
        margin-top: 30px;
    }
}

@media (max-width: 575px) {
    .municipal-councils-title-section {
        min-height: 360px;
        padding-top: 116px;
    }

    .module-title-section.municipal-councils-title-section {
        min-height: 320px;
        padding-top: 90px;
    }

    .document-category-title-section {
        min-height: 360px;
        padding-top: 116px;
    }

    .procedure-title-section {
        min-height: 340px;
        padding-top: 102px;
    }

    .procedure-public-heading h2 {
        font-size: 28px;
    }

    .procedure-filter-box {
        padding: 12px;
    }

    .procedure-public-card,
    .procedure-detail-card,
    .procedure-info-card,
    .document-category-card {
        padding: 24px;
    }
}

.admin-selected-document-icon,
.disruption-document-option-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    color: #e71f35;
    background: rgba(231, 31, 53, 0.1);
    font-size: 20px;
}

.admin-selected-document-content {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.admin-selected-document-content strong {
    color: #1f2537;
    font-weight: 700;
}

.admin-selected-document-content span {
    color: #6f7891;
    font-size: 13px;
}

.disruption-document-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 12px;
}

.disruption-document-option {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    width: 100%;
    padding: 14px;
    border: 1px solid #e6e9f1;
    border-radius: 14px;
    background: #fff;
    color: inherit;
    text-align: left;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.disruption-document-option:hover,
.disruption-document-option.is-selected {
    border-color: #e71f35;
    box-shadow: 0 10px 24px rgba(31, 37, 55, 0.08);
    transform: translateY(-1px);
}

.disruption-document-option-body {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.disruption-document-option-body strong {
    color: #1f2537;
    font-size: 14px;
    line-height: 1.35;
}

.disruption-document-option-body small {
    color: #6f7891;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.portal-procedures-block {
    clear: both;
    margin-top: 0;
    padding: 0 2rem 2rem;
}

.portal-procedures-block .sec-title {
    margin-bottom: 22px;
}

.portal-procedure-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
    padding: 0;
}

.portal-procedure-list li {
    position: relative;
    display: flex;
    align-items: center;
    gap: 18px;
    min-height: 104px;
    padding: 20px 24px;
    border: 1px solid #eceef3;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 14px 35px rgba(18, 21, 41, 0.05);
    list-style: none;
    overflow: hidden;
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.portal-procedure-list li:before {
    position: absolute;
    content: '';
    left: 0;
    top: 0;
    width: 4px;
    height: 100%;
    background: #ed1c2e;
    transform: scaleY(0);
    transform-origin: bottom;
    transition: transform 180ms ease;
}

.portal-procedure-list li:hover {
    transform: translateY(-2px);
    border-color: rgba(237, 28, 46, 0.28);
    box-shadow: 0 20px 45px rgba(18, 21, 41, 0.09);
}

.portal-procedure-list li:hover:before {
    transform: scaleY(1);
}

.portal-procedure-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 58px;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: rgba(237, 28, 46, 0.08);
    color: #ed1c2e;
    font-size: 26px;
}

.portal-procedure-body {
    min-width: 0;
    flex: 1 1 auto;
}

.portal-procedure-body span {
    display: block;
    margin-bottom: 5px;
    color: #ed1c2e;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.portal-procedure-body h3 {
    margin: 0 0 6px;
    font-size: 22px;
    line-height: 1.25;
}

.portal-procedure-body h3 a {
    color: #252638;
}

.portal-procedure-body p {
    margin: 0;
    color: #6f7487;
    line-height: 1.55;
}

.portal-procedure-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    flex: 0 0 auto;
    min-width: 120px;
    padding: 10px 16px;
    border: 1px solid #e0e0ea;
    border-radius: 5px;
    color: #252638;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.4;
}

.portal-procedure-link:hover {
    border-color: #ed1c2e;
    background: #ed1c2e;
    color: #fff;
}

.portal-procedure-link i {
    font-size: 11px;
}

.main-menu .navigation > li > ul > li > a:before,
.main-menu .navigation > li > ul > li > ul > li > a:before {
    content: "\f105";
    font-family: 'Flaticon';
    font-size: 13px;
    top: 8px;
}

@media (max-width: 991px) {
    .portal-procedures-block {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }
}

@media (max-width: 575px) {
    .portal-procedure-list li {
        align-items: flex-start;
        flex-direction: column;
        padding: 22px;
    }

    .portal-procedure-link {
        width: 100%;
    }
}


/* City visual identity overrides */
:root {
    --city-blue: #007AC2;
    --city-blue-dark: #005F97;
    --city-blue-soft: #EAF7FC;
    --city-accent: #FFD252;
    --city-yellow: #FFD252;
    --city-ink: #231F20;
    --theme-color: var(--city-blue);
}

body:not(.admin-body) .theme-btn,
body:not(.admin-body) .search-popup .search-form fieldset input[type="submit"],
body:not(.admin-body) .scroll-top,
body:not(.admin-body) .page-dynamic-sections .page-builder-row.page-builder-row-bg-red,
body:not(.admin-body) .page-section-block.page-builder-bg-red {
    background: var(--city-blue);
}

body:not(.admin-body) .main-menu .navigation > li.current > a,
body:not(.admin-body) .main-menu .navigation > li:hover > a,
body:not(.admin-body) .sec-title h6,
body:not(.admin-body) .header-top .weathre-box i,
body:not(.admin-body) .style-one .header-top .info-list li i,
body:not(.admin-body) .main-header .menu-right-content .other-option li button:hover,
body:not(.admin-body) .main-header .menu-right-content .other-option li.nav-box .nav-toggler:hover {
    color: var(--city-blue);
}

.main-header .header-down .weathre-box .header-weather-text {
    position: relative;
    display: inline-block;
    color: #686a7d;
    font-size: 15px;
    padding-right: 19px;
}

body:not(.admin-body) .theme-btn {
    color: #ffffff !important;
}

body:not(.admin-body) .theme-btn::before,
body:not(.admin-body) .theme-btn::after {
    background: var(--city-blue-dark);
}

body:not(.admin-body) .theme-btn:hover {
    color: #ffffff !important;
}

body:not(.admin-body) .theme-btn.style-two {
    color: var(--city-blue) !important;
    background: #ffffff;
    border: 1px solid var(--city-blue);
}

body:not(.admin-body) .theme-btn.style-two::before,
body:not(.admin-body) .theme-btn.style-two::after {
    background: var(--city-blue);
}

body:not(.admin-body) .theme-btn.style-two:hover {
    color: #ffffff !important;
}

body:not(.admin-body) .sec-title .title-shape,
body:not(.admin-body) .sec-title .title-shape::before,
body:not(.admin-body) .sec-title .title-shape::after {
    background: var(--city-accent);
}

body:not(.admin-body) .theme-btn,
body:not(.admin-body) .banner-section .owl-nav .owl-prev:hover,
body:not(.admin-body) .banner-section .owl-nav .owl-next:hover,
body:not(.admin-body) input:focus,
body:not(.admin-body) textarea:focus,
body:not(.admin-body) select:focus {
    border-color: var(--city-blue);
}

body:not(.admin-body) .header-down .update-box,
body:not(.admin-body) .mobile-menu .menu-box {
    background: var(--city-ink);
}

body:not(.admin-body) .header-down .update-box h6 i,
body:not(.admin-body) .footer-widget a:hover,
body:not(.admin-body) .main-footer .links-widget .links-list li a:hover {
    color: var(--city-yellow);
}

body:not(.admin-body) .main-header .header-down {
    background: transparent;
}

body:not(.admin-body) .main-footer {
    position: relative;
    background:
        radial-gradient(circle at 12% 8%, rgba(0, 122, 194, 0.28) 0, rgba(0, 122, 194, 0) 34%),
        radial-gradient(circle at 84% 0%, rgba(255, 210, 82, 0.16) 0, rgba(255, 210, 82, 0) 28%),
        linear-gradient(145deg, #073c5d 0%, #0b2c46 48%, #102f3e 100%);
    overflow: visible;
}

body:not(.admin-body) .main-footer::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(120deg, rgba(255, 255, 255, 0.07) 0 12%, transparent 12% 100%),
        linear-gradient(300deg, transparent 0 72%, rgba(0, 122, 194, 0.18) 72% 100%);
    pointer-events: none;
}

body:not(.admin-body) .main-footer > * {
    position: relative;
}

body:not(.admin-body) .main-footer .footer-top,
body:not(.admin-body) .main-footer .widget-section,
body:not(.admin-body) .main-footer .footer-bottom {
    background: transparent;
}

body:not(.admin-body) .main-footer .footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.footer-bottom-inner {
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 12px;
    text-align: center;
}

.footer-bottom-inner .footer-legal-links,
.footer-bottom-inner .footer-copyright {
    float: none !important;
}

.footer-bottom-inner .footer-legal-links {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px 18px;
    order: 1;
}

.footer-bottom-inner .footer-copyright {
    order: 2;
}

.footer-bottom-inner .footer-copyright p {
    margin-bottom: 0;
    color: rgba(255, 255, 255, 0.58);
    font-size: 12px;
    line-height: 1.5;
}

.footer-bottom-inner .footer-copyright a {
    color: rgba(255, 255, 255, 0.72);
}

body:not(.admin-body) .main-header .header-down .inner-box {
    background: #f6f6fa;
}

body:not(.admin-body) .school-enrollment-hero,
body:not(.admin-body) .digital-business-card-public-hero,
body:not(.admin-body) .municipal-bulletin-featured,
body:not(.admin-body) .commerce-public-card.is-featured,
body:not(.admin-body) .association-public-card.is-featured {
    border-color: var(--city-blue);
}

body:not(.admin-body) .school-enrollment-step-number,
body:not(.admin-body) .public-card-icon,
body:not(.admin-body) .cookie-consent-button-primary,
body:not(.admin-body) .accessibility-panel-toggle {
    background: var(--city-blue);
}

/* Event detail: an editorial introduction and a compact practical guide. */
.city-event-hero { padding-bottom: 54px; }
.city-event-date { display: flex; align-items: center; gap: 20px; margin: 26px 0 8px; }
.city-event-calendar { display: flex; flex: 0 0 78px; flex-direction: column; align-items: center; justify-content: center; min-height: 88px; padding: 10px 8px; border-top: 4px solid #ffd252; border-radius: 7px; background: #fff; color: #173b55; }
.city-event-calendar strong { font-size: 34px; line-height: 1.1; font-weight: 700; }
.city-event-calendar > span { font-size: 11px; line-height: 1.5; white-space: nowrap; margin-top: 5px; }
.city-event-date p { margin: 0; color: #fff; font-size: 17px; line-height: 1.6; }
.city-event-date p > span { display: block; margin-bottom: 4px; color: #bdd6e6; font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; }
.city-event-visual img { height: 350px; }
.city-event-section { padding: 58px 0 100px; background: #fff; }
.city-event-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; align-items: start; gap: 64px; }
.city-event-section-title { margin: 0 0 26px; font-size: 26px; line-height: 1.3; font-weight: 700; color: #173b55; }
.city-event-practical { min-width: 0; border: 1px solid #deebf2; border-radius: 16px; overflow: hidden; background: #f3f8fb; }
.city-event-practical-content { padding: 28px; }
.city-event-eyebrow { color: #006ca9; text-transform: uppercase; letter-spacing: 1.3px; font-size: 10px; font-weight: 700; }
.city-event-practical h2 { margin: 10px 0 24px; font-size: 21px; line-height: 1.4; color: #173b55; font-weight: 700; }
.city-event-address { display: flex; align-items: flex-start; gap: 14px; color: #173b55; overflow-wrap: anywhere; }
.city-event-address > i { margin-top: 5px; color: #007ac2; font-size: 20px; }
.city-event-address strong { display: block; font-size: 16px; line-height: 1.5; }
.city-event-address p { margin: 8px 0; color: #526575; font-size: 14px; line-height: 1.7; }
.city-event-address div > span { display: block; margin-top: 8px; font-size: 12px; color: #526575; }
.city-event-practical .event-detail-map { height: 240px; min-height: 0; border-radius: 0; z-index: 0; }
.city-event-share { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 34px; padding-top: 24px; border-top: 1px solid #e3edf3; }
.city-event-share > span { margin-right: 8px; font-size: 13px; color: #526575; }
.city-event-share a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid #d9e6ee; border-radius: 50%; color: #173b55; font-size: 14px; transition: background .2s, color .2s; }
.city-event-share a:hover { background: #007ac2; border-color: #007ac2; color: #fff; }
.city-event-related { margin-top: 58px; padding-top: 32px; border-top: 1px solid #e3edf3; }
.city-event-related-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 22px; }
.city-event-related-heading h2 { margin: 0; }
.city-event-related-heading > a { color: #006ca9; font-size: 13px; font-weight: 600; }
.city-event-related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.city-event-related-link { display: flex; align-items: center; gap: 14px; padding: 18px; border-radius: 10px; background: #f3f8fb; color: #173b55; transition: background .2s; }
.city-event-related-link:hover { background: #e6f1f8; }
.city-event-related-link .city-event-calendar { flex-basis: 64px; min-height: 76px; border-top-color: #007ac2; }
.city-event-related-link .city-event-calendar strong { font-size: 28px; }
.city-event-related-text { min-width: 0; overflow-wrap: anywhere; }
.city-event-related-text small { display: block; font-size: 10px; line-height: 1.5; color: #526575; }
.city-event-related-text strong { display: block; margin: 6px 0; font-size: 16px; line-height: 1.4; }
.city-event-related-text > span { display: block; font-size: 12px; line-height: 1.5; color: #526575; }
.city-event-arrow { margin-left: auto; color: #007ac2; }
.city-event-section a:focus-visible { outline: 3px solid #007ac2; outline-offset: 4px; }
@media (max-width: 991px) {
    .city-event-layout { grid-template-columns: minmax(0, 1fr) 300px; gap: 30px; }
    .city-event-related-grid { grid-template-columns: 1fr; }
    .city-event-visual img { height: 300px; }
}
@media (max-width: 767px) {
    .city-event-hero { padding-bottom: 32px; }
    .city-event-layout { grid-template-columns: 1fr; gap: 30px; }
    .city-event-section { padding-top: 32px; }
    .city-event-date { gap: 14px; }
    .city-event-date p { font-size: 15px; }
    .city-event-visual img { height: 280px; }
    .city-event-section-title { font-size: 23px; }
    .city-event-related { margin-top: 36px; }
}
.city-event-related-grid { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.city-event-layout-compact { grid-template-columns: minmax(0, 1fr) 220px; gap: 36px; }
.city-event-layout-compact .city-article-body { order: 2; }
.city-event-layout-compact .city-event-practical { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.city-event-layout-compact .city-event-share { margin-top: 0; padding-top: 8px; border-top: 0; }
.city-event-layout-compact .city-event-share > span { flex-basis: 100%; margin-bottom: 6px; }
@media (max-width: 767px) {
    .city-event-layout-compact, .city-event-layout-compact .city-event-practical, .city-event-related-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
    .city-event-share a, .city-event-related-link { transition: none; }
}

/* Public agenda listing, aligned with the event detail pages. */
.city-agenda-hero { padding-bottom: 66px; }
.city-agenda-hero .city-article-heading h1 { margin-bottom: 16px; }
.city-agenda-hero .city-article-heading p { max-width: 660px; color: #d3e5f1; font-size: 17px; line-height: 1.7; }
.city-agenda-section { padding: 0 0 100px; background: #f7fafc; }
.city-agenda-filters { position: relative; display: grid; grid-template-columns: minmax(180px, 1.4fr) repeat(3, minmax(145px, 1fr)) auto; align-items: end; gap: 16px; margin-top: -28px; padding: 24px; border: 1px solid #deebf2; border-radius: 12px; background: #fff; box-shadow: 0 12px 30px rgb(7 60 93 / 7%); }
.city-agenda-filters > div { min-width: 0; }
.city-agenda-filters label { display: block; margin: 0 0 8px; color: #173b55; font-size: 12px; font-weight: 700; }
.city-agenda-filters input, .city-agenda-filters select { display: block; width: 100%; height: 46px; padding: 0 12px; border: 1px solid #cbdce7; border-radius: 6px; background: #f8fbfd; color: #173b55; font-family: inherit; font-size: 13px; }
.city-agenda-filters select { appearance: auto; cursor: pointer; }
.city-agenda-filters button { display: flex; align-items: center; justify-content: center; gap: 9px; min-height: 46px; padding: 10px 18px; border-radius: 6px; background: #007ac2; color: #fff; font-size: 13px; font-weight: 700; cursor: pointer; }
.city-agenda-filters button:hover { background: #073c5d; }
.city-agenda-section :is(a, button, input, select):focus-visible { outline: 3px solid #007ac2; outline-offset: 4px; }
.city-agenda-results { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 28px 0 22px; }
.city-agenda-results p { margin: 0; color: #526575; font-size: 14px; }
.city-agenda-results strong { color: #173b55; }
.city-agenda-results a { color: #006ca9; font-size: 13px; }
.city-agenda-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.city-agenda-card { min-width: 0; border: 1px solid #deebf2; border-radius: 12px; background: #fff; transition: transform .2s, box-shadow .2s; }
.city-agenda-card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgb(7 60 93 / 10%); }
.city-agenda-card > a { display: flex; flex-direction: column; height: 100%; border-radius: 12px; color: #173b55; }
.city-agenda-card-image { position: relative; border-radius: 11px 11px 0 0; background: #eaf2f7; }
.city-agenda-card-image > img { display: block; width: 100%; height: 245px; object-fit: contain; border-radius: inherit; }
.city-agenda-card-image .city-event-calendar { position: absolute; bottom: -20px; left: 20px; width: 74px; box-shadow: 0 5px 18px rgb(7 60 93 / 12%); }
.city-agenda-category { position: absolute; top: 14px; right: 14px; max-width: calc(100% - 28px); padding: 5px 10px; border-radius: 4px; background: #ffd252; color: #173b55; font-size: 11px; line-height: 1.5; font-weight: 700; overflow-wrap: anywhere; }
.city-agenda-placeholder { display: flex; align-items: center; justify-content: center; height: 245px; border-radius: inherit; background: linear-gradient(135deg, #073c5d, #12648a); color: #c0dfef; font-size: 68px; }
.city-agenda-card-body { display: flex; flex-direction: column; flex: 1; padding: 40px 24px 24px; }
.city-agenda-card-body h2 { margin: 0 0 18px; color: #173b55; font-size: 22px; font-weight: 700; line-height: 1.35; overflow-wrap: anywhere; }
.city-agenda-card-info { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 10px; color: #526575; font-size: 13px; line-height: 1.7; overflow-wrap: anywhere; }
.city-agenda-card-info i { flex: 0 0 16px; margin-top: 4px; color: #007ac2; }
.city-agenda-card-summary { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 5px 0 18px; font-size: 14px; line-height: 1.7; color: #526575; }
.city-agenda-card-link { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 18px; border-top: 1px solid #e3edf3; color: #006ca9; font-size: 13px; font-weight: 600; }
.city-agenda-card-link > span { font-size: 22px; }
.city-agenda-empty { padding: 44px 24px; border: 1px dashed #bfd3e1; border-radius: 12px; text-align: center; background: #fff; }
.city-agenda-empty > i { margin-bottom: 18px; font-size: 34px; color: #007ac2; }
.city-agenda-empty h2 { margin-bottom: 12px; color: #173b55; font-size: 24px; }
.city-agenda-empty p { color: #526575; }
.city-agenda-empty a { display: inline-block; margin-top: 18px; color: #006ca9; text-decoration: underline; }
.city-agenda-section .pagination-wrapper { margin-top: 40px; }
@media (max-width: 1199px) {
    .city-agenda-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .city-agenda-search-field { grid-column: span 2; }
}
@media (max-width: 991px) {
    .city-agenda-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
    .city-agenda-hero { padding-bottom: 52px; }
    .city-agenda-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; padding: 20px; }
    .city-agenda-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .city-agenda-filters button { align-self: end; }
}
@media (max-width: 380px) {
    .city-agenda-filters { grid-template-columns: minmax(0, 1fr); }
    .city-agenda-search-field { grid-column: auto; }
}
@media (prefers-reduced-motion: reduce) {
    .city-agenda-card { transition: none; }
    .city-agenda-card:hover { transform: none; }
}
@media (max-width: 575px) {
    .city-agenda-filters { grid-template-columns: minmax(0, 1fr); }
    .city-agenda-search-field { grid-column: auto; }
}

/* Local commerce directory. */
.city-directory-section .city-directory-filters { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) auto; }
.city-directory-section.module-page-section-with-sidebar { padding-top: 0; }
.city-directory-section .sidebar-side { padding-top: 30px; }
.city-directory-callout { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 20px 24px; margin-bottom: 30px; border-left: 4px solid #ffd252; border-radius: 0 10px 10px 0; background: #eaf3f9; }
.city-directory-callout h2 { margin: 0 0 5px; color: #173b55; font-size: 19px; font-weight: 700; }
.city-directory-callout p { margin: 0; color: #526575; font-size: 13px; line-height: 1.6; }
.city-directory-register { flex-shrink: 0; color: #006ca9; font-size: 13px; font-weight: 700; }
.city-directory-register:hover { color: #173b55; text-decoration: underline; }
.city-directory-section .commerce-map-card { padding: 0; margin-bottom: 32px; overflow: hidden; border: 1px solid #deebf2; border-radius: 12px; box-shadow: none; }
.city-directory-map-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px 20px; padding: 20px 24px; }
.city-directory-map-heading h2 { color: #173b55; font-size: 22px; font-weight: 700; }
.city-directory-map-heading p { margin: 0; color: #526575; font-size: 13px; }
.city-directory-section .commerce-public-map { height: 300px; border-radius: 0; z-index: 0; }
.city-directory-section .associations-public-card { padding: 26px; border: 1px solid #deebf2; border-radius: 12px; background: #fff; box-shadow: none; overflow-wrap: anywhere; }
.city-directory-section .associations-public-card::before { background: #007ac2; height: 3px; }
.city-directory-section .associations-public-card h2 { margin-bottom: 16px; color: #173b55; font-size: 23px; line-height: 1.35; font-weight: 700; }
.city-directory-section .associations-public-badge { border-radius: 4px; background: #eaf3f9; color: #006ca9; }
.city-directory-section .associations-public-badge.is-featured { background: #ffd252; color: #173b55; }
.city-directory-section .associations-public-summary { color: #173b55; font-size: 15px; }
.city-directory-section .associations-public-description { color: #526575; font-size: 14px; }
.city-directory-section .associations-public-meta { grid-template-columns: minmax(0, 1fr); padding-top: 18px; border-top: 1px solid #e3edf3; }
.city-directory-section .associations-public-meta li { color: #526575; font-size: 14px; }
.city-directory-section .associations-public-meta a { color: #006ca9; }
.city-directory-section .associations-public-card.is-map-active { border-color: #007ac2; box-shadow: 0 12px 28px rgb(7 60 93 / 12%); }
.city-directory-map-button { display: block; width: 100%; padding: 12px 18px; border-radius: 6px; background: #eaf3f9; color: #006ca9; font-size: 13px; font-weight: 700; cursor: pointer; }
.city-directory-map-button:hover { background: #007ac2; color: #fff; }
@media (max-width: 991px) {
    .city-directory-callout { align-items: flex-start; flex-direction: column; gap: 12px; }
}
@media (max-width: 575px) {
    .city-directory-section .city-directory-filters { grid-template-columns: minmax(0, 1fr); }
    .city-directory-section .commerce-public-map { height: 260px; }
    .city-directory-section .associations-public-card { padding: 22px; }
}
@media (prefers-reduced-motion: reduce) {
    .city-directory-section .associations-public-card { transition: none; }
}

.city-directory-action { display: inline-flex; align-items: center; justify-content: center; flex: 1 1 130px; padding: 12px 16px; border-radius: 6px; background: #007ac2; color: #fff; font-size: 13px; font-weight: 700; cursor: pointer; text-align: center; }
.city-directory-action.is-secondary, .city-directory-action.is-map { background: #eaf3f9; color: #006ca9; }
.city-directory-action:hover { background: #073c5d; color: #fff; }
.city-directory-section .associations-public-location-badge { background: transparent; color: #526575; font-size: 11px; }
.city-directory-section .associations-public-card-actions { gap: 10px; }

/* Administrative procedures directory. */
.city-procedures-filters { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, 1.2fr) auto; }
.city-procedures-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.city-procedure-card { min-width: 0; border: 1px solid #deebf2; border-radius: 12px; background: #fff; transition: transform .2s, box-shadow .2s, border-color .2s; }
.city-procedure-card > a { display: flex; flex-direction: column; height: 100%; padding: 26px; border-radius: inherit; color: #173b55; overflow-wrap: anywhere; }
.city-procedure-card:hover { transform: translateY(-4px); border-color: #bdd8e9; box-shadow: 0 14px 30px rgb(7 60 93 / 9%); }
.city-procedure-card-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.city-procedure-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 52px; height: 52px; border-radius: 14px 14px 14px 4px; background: #eaf3f9; color: #007ac2; font-size: 26px; }
.city-procedure-type { padding: 5px 9px; border-radius: 4px; background: #fff2c8; color: #584300; font-size: 11px; line-height: 1.5; font-weight: 600; }
.city-procedure-category { display: block; margin-bottom: 8px; color: #006ca9; font-size: 11px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; }
.city-procedure-card h2 { margin: 0 0 14px; color: #173b55; font-size: 22px; font-weight: 700; line-height: 1.35; }
.city-procedure-card p { margin: 0 0 24px; color: #526575; font-size: 14px; line-height: 1.7; }
.city-procedure-link { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 18px; border-top: 1px solid #e3edf3; color: #006ca9; font-size: 13px; font-weight: 600; }
.city-procedure-link > span { font-size: 22px; }
@media (max-width: 991px) {
    .city-procedures-filters, .city-procedures-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575px) {
    .city-procedures-filters, .city-procedures-grid { grid-template-columns: minmax(0, 1fr); }
    .city-procedure-card > a { padding: 22px; }
}
@media (prefers-reduced-motion: reduce) {
    .city-procedure-card { transition: none; }
    .city-procedure-card:hover { transform: none; }
}

/* Procedure detail: action first, preparation and practical information. */
.city-procedure-intro { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 64px; align-items: center; }
.city-procedure-intro-no-action { grid-template-columns: minmax(0, 900px); }
.city-procedure-summary { max-width: 760px; color: #d3e5f1; font-size: 18px; line-height: 1.75; overflow-wrap: anywhere; }
.city-procedure-action-panel { padding: 28px; border: 1px solid #41677d; border-radius: 14px; background: rgb(255 255 255 / 6%); }
.city-procedure-action-icon { display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; margin-bottom: 20px; border-radius: 12px 12px 12px 3px; background: #ffd252; color: #173b55; font-size: 24px; }
.city-procedure-action-panel h2 { margin: 0 0 10px; color: #fff; font-size: 22px; font-weight: 700; line-height: 1.35; }
.city-procedure-action-panel p { margin: 0 0 22px; color: #d3e5f1; font-size: 14px; }
.city-procedure-main-action { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 18px; border-radius: 6px; background: #ffd252; color: #173b55; font-size: 14px; line-height: 1.5; font-weight: 700; overflow-wrap: anywhere; transition: background .2s, box-shadow .2s; }
.city-procedure-main-action:hover { color: #173b55; background: #ffe28c; box-shadow: 0 6px 18px rgb(0 0 0 / 15%); }
.city-procedure-action-panel small { display: block; margin-top: 12px; color: #d3e5f1; font-size: 11px; line-height: 1.6; }
.city-procedure-detail { padding: 56px 0 100px; background: #fff; }
.city-procedure-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 64px; align-items: start; }
.city-procedure-body { min-width: 0; }
.city-procedure-content-block > h2, .city-procedure-documents h2 { margin: 0 0 22px; color: #173b55; font-size: 26px; font-weight: 700; line-height: 1.35; }
.city-procedure-documents { margin-top: 34px; padding: 28px; border-radius: 12px; border: 1px solid #deebf2; background: #f3f8fb; }
.city-procedure-documents:first-child { margin-top: 0; }
.city-procedure-documents-heading { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.city-procedure-documents-heading > i { color: #007ac2; font-size: 30px; }
.city-procedure-documents-heading span { color: #006ca9; font-size: 11px; font-weight: 700; letter-spacing: .7px; text-transform: uppercase; }
.city-procedure-documents h2 { margin: 5px 0 0; font-size: 22px; }
.city-procedure-documents ul { margin: 0; padding: 0; list-style: none; }
.city-procedure-documents li { display: flex; align-items: baseline; gap: 12px; padding: 13px 0; border-top: 1px solid #dce8f0; color: #344f60; font-size: 15px; line-height: 1.6; overflow-wrap: anywhere; }
.city-procedure-documents li > i { color: #007ac2; font-size: 12px; }
.city-procedure-practical { min-width: 0; border-top: 3px solid #007ac2; padding: 26px; background: #f3f8fb; border-radius: 4px 4px 12px 12px; }
.city-procedure-practical h2 { color: #173b55; font-size: 21px; font-weight: 700; line-height: 1.4; margin-bottom: 22px; }
.city-procedure-practical dl { margin: 0; }
.city-procedure-practical dl > div { margin-bottom: 18px; padding-bottom: 18px; border-bottom: 1px solid #dce8f0; }
.city-procedure-practical dt { margin-bottom: 6px; color: #526575; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; }
.city-procedure-practical dd { margin: 0; color: #173b55; font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.city-procedure-practical a { color: #006ca9; }
.city-procedure-practical a:hover { text-decoration: underline; }
.city-procedure-return { display: inline-flex; gap: 10px; font-size: 13px; font-weight: 600; }
.city-procedure-detail a:focus-visible { outline: 3px solid #007ac2; outline-offset: 4px; }
.city-procedure-layout-compact { grid-template-columns: minmax(0, 1fr); }
.city-procedure-layout-compact dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 0 28px; }
@media (max-width: 991px) {
    .city-procedure-intro, .city-procedure-layout { gap: 32px; grid-template-columns: minmax(0, 1fr) 300px; }
    .city-procedure-intro-no-action, .city-procedure-layout-compact { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
    .city-procedure-intro, .city-procedure-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .city-procedure-summary { font-size: 16px; }
    .city-procedure-action-panel, .city-procedure-documents, .city-procedure-practical { padding: 22px; }
    .city-procedure-detail { padding-top: 32px; }
    .city-procedure-content-block > h2 { font-size: 23px; }
}
@media (prefers-reduced-motion: reduce) {
    .city-procedure-main-action { transition: none; }
}

/* Council sessions, grouped by year. */
.city-council-year { display: flex; align-items: center; gap: 18px; margin: 30px 0 20px; }
.city-council-year::after { content: ''; flex: 1; height: 1px; background: #dce8f0; }
.city-council-year h2 { margin: 0; color: #173b55; font-size: 28px; font-weight: 700; }
.city-council-year > span { color: #526575; font-size: 12px; }
.city-council-year:first-child { margin-top: 4px; }
.city-council-list { display: grid; gap: 18px; }
.city-council-card { min-width: 0; border: 1px solid #deebf2; border-radius: 12px; background: #fff; transition: border-color .2s, box-shadow .2s; }
.city-council-card:hover { border-color: #b5d3e7; box-shadow: 0 10px 28px rgb(7 60 93 / 8%); }
.city-council-card > a { display: grid; grid-template-columns: 80px minmax(0, 1fr) auto; align-items: center; gap: 26px; padding: 26px; border-radius: inherit; }
.city-council-card .city-event-calendar { background: #f0f6fa; align-self: start; }
.city-council-card h3 { margin-bottom: 12px; color: #173b55; font-size: 22px; line-height: 1.4; font-weight: 700; overflow-wrap: anywhere; }
.city-council-meta { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.city-council-meta > span { display: inline-flex; align-items: baseline; gap: 8px; color: #526575; font-size: 12px; line-height: 1.7; overflow-wrap: anywhere; }
.city-council-meta i { color: #007ac2; }
.city-council-card-body p { margin: 14px 0 0; color: #526575; font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.city-council-card-action { display: flex; flex-direction: column; align-items: flex-end; gap: 18px; padding-left: 24px; border-left: 1px solid #e3edf3; }
.city-council-documents { padding: 5px 10px; border-radius: 4px; background: #eaf3f9; color: #526575; font-size: 12px; white-space: nowrap; }
.city-council-card-action > span:last-child { color: #006ca9; font-size: 13px; font-weight: 700; }
.city-council-card-action > span:last-child > span { padding-left: 8px; }
.city-councils-section .pagination-wrapper { margin-top: 36px; }
@media (max-width: 991px) {
    .city-council-card > a { grid-template-columns: 74px minmax(0, 1fr); gap: 20px; }
    .city-council-card-action { grid-column: 2; flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; padding: 16px 0 0; border-left: 0; border-top: 1px solid #e3edf3; }
}
@media (min-width: 992px) {
    .city-councils-section.module-page-section-with-sidebar .city-council-card > a { grid-template-columns: 74px minmax(0, 1fr); gap: 20px; }
    .city-councils-section.module-page-section-with-sidebar .city-council-card-action { grid-column: 2; align-items: flex-start; padding: 0; border: 0; }
}
@media (max-width: 575px) {
    .city-council-card > a { grid-template-columns: 62px minmax(0, 1fr); gap: 16px; padding: 20px; }
    .city-council-card-action { grid-column: 1 / -1; }
    .city-council-card h3 { font-size: 19px; }
    .city-council-card .city-event-calendar strong { font-size: 28px; }
    .city-council-card .city-event-calendar > span { font-size: 10px; }
    .city-council-year { gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .city-council-card { transition: none; }
}

/* Council detail: meeting, agenda and document library. */
.city-council-hero { padding-bottom: 0; }
.city-council-meeting { padding: 26px; border: 1px solid #41677d; border-radius: 14px; background: rgb(255 255 255 / 6%); }
.city-council-meeting-date { display: flex; align-items: center; gap: 20px; }
.city-council-meeting-date > div > span { display: block; margin-bottom: 6px; color: #bdd6e6; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; }
.city-council-meeting-date > div > strong { display: block; color: #fff; font-size: 19px; line-height: 1.5; }
.city-council-meeting-date p { margin: 5px 0 0; color: #d3e5f1; font-size: 14px; }
.city-council-meeting-location { display: flex; align-items: baseline; gap: 12px; margin: 22px 0 0; color: #fff; font-size: 14px; overflow-wrap: anywhere; }
.city-council-meeting-location i { color: #ffd252; }
.city-council-broadcast { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 22px; padding: 12px 14px; border-radius: 6px; background: #ffd252; color: #173b55; font-size: 13px; font-weight: 700; }
.city-council-broadcast:hover { background: #ffe28c; color: #173b55; }
.city-council-jump { display: flex; flex-wrap: wrap; gap: 12px 30px; margin-top: 40px; padding: 20px 0; border-top: 1px solid #41677d; }
.city-council-jump a { display: inline-flex; align-items: center; gap: 12px; color: #fff; font-size: 13px; font-weight: 600; }
.city-council-jump a:hover { color: #ffd252; }
.city-council-count { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; height: 24px; padding: 0 6px; border-radius: 50%; background: #ffd252; color: #173b55; font-size: 11px; }
.city-council-detail { padding: 54px 0 100px; background: #fff; }
.city-council-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 390px; gap: 54px; align-items: start; }
.city-council-content { min-width: 0; }
.city-council-eyebrow { color: #006ca9; font-size: 11px; font-weight: 700; letter-spacing: .7px; text-transform: uppercase; }
.city-council-detail h2 { margin: 8px 0 24px; color: #173b55; font-size: 26px; font-weight: 700; line-height: 1.35; }
.city-council-agenda, .city-council-video, .city-council-files { scroll-margin-top: 125px; }
.city-council-video { margin-top: 34px; padding-top: 26px; border-top: 1px solid #deebf2; }
.city-council-video:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.city-council-video-frame { position: relative; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: #073c5d; }
.city-council-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.city-council-files { min-width: 0; padding: 26px; border: 1px solid #deebf2; border-top: 3px solid #007ac2; border-radius: 4px 4px 12px 12px; background: #f3f8fb; }
.city-council-files-heading { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; }
.city-council-files-heading > i { color: #007ac2; font-size: 28px; }
.city-council-files-heading h2 { margin: 6px 0 0; font-size: 21px; }
.city-council-file-group + .city-council-file-group { margin-top: 24px; }
.city-council-file-group h3 { margin: 0 0 10px; color: #526575; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; }
.city-council-file-group ul { margin: 0; padding: 0; list-style: none; }
.city-council-file-group li + li { margin-top: 10px; }
.city-council-file-group a { display: flex; align-items: flex-start; gap: 14px; padding: 18px; border: 1px solid #deebf2; border-radius: 8px; background: #fff; color: #173b55; transition: border-color .2s, box-shadow .2s; }
.city-council-file-group a:hover { border-color: #007ac2; box-shadow: 0 5px 14px rgb(7 60 93 / 7%); }
.city-council-file-group a > i { margin-top: 3px; color: #007ac2; font-size: 23px; }
.city-council-file-group a > span { min-width: 0; overflow-wrap: anywhere; }
.city-council-file-group strong { display: block; font-size: 14px; line-height: 1.6; }
.city-council-file-group small { display: block; margin-top: 7px; color: #526575; font-size: 11px; }
.city-council-file-open { display: block; margin-top: 12px; color: #006ca9; font-size: 12px; font-weight: 600; }
.city-council-file-note, .city-council-files-empty { margin: 20px 0 0; color: #526575; font-size: 12px; line-height: 1.7; }
.city-council-detail a:focus-visible { outline: 3px solid #007ac2; outline-offset: 4px; }
.city-council-detail-compact { grid-template-columns: minmax(0, 1fr); }
.city-council-detail-compact .city-council-files { max-width: 850px; }
@media (max-width: 991px) {
    .city-council-detail-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 30px; }
    .city-council-detail-compact { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
    .city-council-hero { padding-bottom: 0; }
    .city-council-detail-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .city-council-meeting, .city-council-files { padding: 22px; }
    .city-council-detail { padding-top: 32px; }
    .city-council-jump { margin-top: 28px; gap: 14px 22px; }
    .city-council-agenda, .city-council-video, .city-council-files { scroll-margin-top: 24px; }
}
@media (prefers-reduced-motion: reduce) {
    .city-council-file-group a { transition: none; }
}

/* School enrollment hub. */
.city-school-section { padding: 0 0 100px; background: #f7fafc; }
.city-school-paths { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: stretch; gap: 28px; margin-top: -28px; }
.city-school-start, .city-school-track { min-width: 0; padding: 34px; border-radius: 14px; }
.city-school-start { background: #fff; border: 1px solid #deebf2; box-shadow: 0 12px 30px rgb(7 60 93 / 6%); }
.city-school-track { display: flex; flex-direction: column; align-items: flex-start; background: #eaf3f9; border: 1px solid #d6e7f2; }
.city-school-card-heading { display: flex; align-items: center; gap: 16px; margin-bottom: 22px; }
.city-school-icon { display: inline-flex; align-items: center; justify-content: center; width: 50px; height: 50px; flex-shrink: 0; border-radius: 14px 14px 14px 4px; background: #ffd252; color: #173b55; font-size: 25px; }
.city-school-track > .city-school-icon { background: #fff; color: #007ac2; margin-bottom: 22px; }
.city-school-eyebrow { color: #006ca9; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .7px; }
.city-school-section h2 { margin: 0 0 14px; color: #173b55; font-size: 28px; line-height: 1.3; font-weight: 700; }
.city-school-track h2 { margin-top: 10px; }
.city-school-start > p, .city-school-track > p { color: #526575; font-size: 15px; line-height: 1.75; }
.city-school-steps { margin: 26px 0; padding: 0; list-style: none; }
.city-school-steps li { display: flex; align-items: flex-start; gap: 14px; padding: 14px 0; border-top: 1px solid #e3edf3; }
.city-school-steps li > span { display: inline-flex; flex: 0 0 28px; height: 28px; align-items: center; justify-content: center; border-radius: 50%; background: #eaf3f9; color: #006ca9; font-size: 12px; font-weight: 700; }
.city-school-steps strong { color: #173b55; font-size: 14px; }
.city-school-steps p { margin: 4px 0 0; color: #526575; font-size: 13px; line-height: 1.6; }
.city-school-primary, .city-school-secondary { display: inline-flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 18px; border-radius: 6px; font-size: 14px; font-weight: 700; line-height: 1.5; }
.city-school-primary { background: #007ac2; color: #fff; }
.city-school-primary:hover { background: #073c5d; color: #fff; }
.city-school-secondary { background: #fff; border: 1px solid #c3dbe9; color: #006ca9; margin-top: auto; }
.city-school-secondary:hover { border-color: #007ac2; background: #007ac2; color: #fff; }
.city-school-tracking-help { width: 100%; margin: 24px 0 32px; padding: 22px 0; border-top: 1px solid #cfdfeb; border-bottom: 1px solid #cfdfeb; }
.city-school-tracking-help h3 { margin-bottom: 14px; color: #173b55; font-size: 16px; font-weight: 700; }
.city-school-tracking-help ul { margin: 0; padding: 0; list-style: none; }
.city-school-tracking-help li { display: flex; align-items: baseline; gap: 10px; margin-top: 10px; color: #526575; font-size: 14px; }
.city-school-tracking-help i { color: #007ac2; font-size: 11px; }
.city-school-start .city-school-closed { padding: 14px; border-left: 3px solid #ffd252; background: #fff9e8; color: #584300; font-size: 13px; margin-bottom: 18px; }
.city-school-campaigns { margin-top: 46px; }
.city-school-campaigns-heading h2 { margin: 9px 0 24px; font-size: 25px; }
.city-school-campaign { display: flex; align-items: flex-start; gap: 28px; padding: 26px; border: 1px solid #deebf2; border-radius: 12px; background: #fff; }
.city-school-campaign + .city-school-campaign { margin-top: 18px; }
.city-school-year { flex: 0 0 155px; display: flex; flex-direction: column; gap: 7px; padding: 18px; border-radius: 8px; background: #f0f6fa; color: #173b55; }
.city-school-year > i { color: #007ac2; font-size: 22px; }
.city-school-year > span { font-size: 11px; }
.city-school-year strong { font-size: 18px; overflow-wrap: anywhere; }
.city-school-campaign-body { min-width: 0; flex: 1; overflow-wrap: anywhere; }
.city-school-campaign h3 { color: #173b55; font-size: 20px; font-weight: 700; line-height: 1.4; margin-bottom: 12px; }
.city-school-campaign p { color: #526575; font-size: 14px; line-height: 1.7; }
.city-school-campaign dl { display: flex; flex-wrap: wrap; gap: 16px 36px; margin: 18px 0 0; }
.city-school-campaign dt { color: #526575; font-size: 11px; font-weight: 600; }
.city-school-campaign dd { margin: 4px 0 0; color: #173b55; font-size: 14px; }
.city-school-open { padding: 5px 10px; background: #fff2c8; color: #584300; border-radius: 4px; font-size: 11px; font-weight: 600; }
.city-school-section a:focus-visible { outline: 3px solid #007ac2; outline-offset: 4px; }
@media (max-width: 991px) {
    .city-school-start, .city-school-track { padding: 26px; }
    .city-school-campaign { flex-wrap: wrap; }
    .city-school-open { margin-left: auto; }
}
@media (max-width: 767px) {
    .city-school-paths { grid-template-columns: minmax(0, 1fr); gap: 22px; }
    .city-school-section h2 { font-size: 25px; }
    .city-school-campaign { flex-direction: column; gap: 20px; padding: 22px; }
    .city-school-year { flex-basis: auto; width: 100%; }
    .city-school-open { margin-left: 0; }
    .city-school-primary, .city-school-secondary { width: 100%; }
}

/* Secure school tracking: access form and dossier presentation. */
.city-school-tracking-wrapper { position: relative; margin-top: -28px; }
.city-tracking-entry { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 30px; }
.city-tracking-access { padding: 32px; border: 1px solid #deebf2; border-radius: 14px; background: #fff; box-shadow: 0 12px 30px rgb(7 60 93 / 6%); }
.city-tracking-access .city-school-card-heading h2 { margin: 7px 0 0; font-size: 25px; }
.city-tracking-access > p { color: #526575; font-size: 14px; line-height: 1.7; margin-bottom: 24px; }
.city-tracking-form { display: grid; gap: 22px; }
.city-tracking-form label, .city-tracking-result .form-label { display: block; margin-bottom: 9px; color: #173b55; font-size: 13px; font-weight: 700; }
.city-tracking-form input:not([type="hidden"]), .city-tracking-result input[type="file"] { display: block; width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid #c3d8e6; border-radius: 6px; background: #f8fbfd; color: #173b55; font-size: 15px; }
.city-tracking-form small { display: block; margin-top: 8px; color: #526575; font-size: 12px; line-height: 1.6; }
.city-tracking-form button { width: 100%; cursor: pointer; border: 0; }
.city-tracking-guide { padding: 32px; border: 1px solid #d6e7f2; border-radius: 14px; background: #eaf3f9; }
.city-tracking-guide h2 { margin: 10px 0 18px; font-size: 25px; }
.city-tracking-guide .city-school-steps { margin-bottom: 22px; }
.city-tracking-guide .city-school-steps li { border-top-color: #cfdfeb; }
.city-tracking-guide .city-school-steps li > span { background: #fff; }
.city-tracking-new { padding-top: 22px; border-top: 1px solid #cfdfeb; }
.city-tracking-new h3 { margin-bottom: 10px; color: #173b55; font-size: 16px; font-weight: 700; }
.city-tracking-new a { color: #006ca9; font-size: 13px; font-weight: 600; }
.city-tracking-new a:hover { text-decoration: underline; }
.city-tracking-error { margin-bottom: 22px; padding: 16px; border-left: 3px solid #b43d3d; border-radius: 0 6px 6px 0; background: #fff2f2; color: #8e2929; font-size: 14px; line-height: 1.6; }
.city-school-tracking :is(input,button):focus-visible { outline: 3px solid #007ac2; outline-offset: 3px; }
.city-tracking-entry-compact { grid-template-columns: minmax(0, 1fr); }
.city-tracking-entry-compact .city-tracking-form { grid-template-columns: repeat(2, minmax(0, 1fr)) auto; align-items: start; }
.city-tracking-entry-compact .city-tracking-form button { margin-top: 28px; }
.city-tracking-result { margin-top: 32px; padding: 32px; border: 1px solid #deebf2; border-top: 3px solid #007ac2; border-radius: 4px 4px 14px 14px; background: #fff; overflow-wrap: anywhere; }
.city-tracking-result > h2 { margin-bottom: 26px; font-size: 25px; }
.city-tracking-result h3 { margin-bottom: 20px; color: #173b55; font-size: 21px; font-weight: 700; }
.city-tracking-result .school-enrollment-admin-kpi { background: #f0f6fa; border: 1px solid #deebf2; border-radius: 8px; box-shadow: none; }
.city-tracking-result .school-enrollment-admin-kpi strong { color: #173b55; }
.city-tracking-result .school-enrollment-confirmation-child { padding: 20px; background: #f8fbfd; border: 1px solid #deebf2; border-radius: 8px; }
.city-tracking-result .school-enrollment-request-card { padding: 24px; border: 1px solid #deebf2; border-left: 3px solid #ffd252; border-radius: 8px; background: #f8fbfd; }
.city-tracking-result .school-enrollment-history-dot { background: #007ac2; }
.city-tracking-result .school-enrollment-history-content { background: #f8fbfd; border-color: #deebf2; }
@media (max-width: 991px) {
    .city-tracking-access, .city-tracking-guide, .city-tracking-result { padding: 26px; }
    .city-tracking-entry-compact .city-tracking-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .city-tracking-entry-compact .city-tracking-form button { margin-top: 0; grid-column: 1 / -1; }
}
@media (max-width: 767px) {
    .city-tracking-entry, .city-tracking-entry-compact .city-tracking-form { grid-template-columns: minmax(0, 1fr); }
    .city-tracking-access, .city-tracking-guide, .city-tracking-result { padding: 22px; }
    .city-tracking-access .city-school-card-heading { align-items: flex-start; gap: 12px; }
    .city-tracking-access .city-school-card-heading h2 { font-size: 22px; }
    .city-tracking-result input[type="file"] { min-width: 0; font-size: 13px; }
    .city-tracking-result .city-school-primary { width: 100%; justify-content: center; }
}

/* School application: preparation, availability and form sections. */
.city-application-wrapper { position: relative; margin-top: -28px; }
.city-application-intro { margin-bottom: 28px; padding: 30px; border: 1px solid #deebf2; border-radius: 14px; background: #fff; box-shadow: 0 12px 30px rgb(7 60 93 / 6%); }
.city-application-intro h2 { margin: 10px 0 24px; font-size: 25px; }
.city-application-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin: 0; padding: 0; list-style: none; }
.city-application-steps li { display: flex; align-items: flex-start; gap: 14px; }
.city-application-steps li > span { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 32px; height: 32px; border-radius: 50%; background: #eaf3f9; color: #006ca9; font-size: 13px; font-weight: 700; }
.city-application-steps strong { color: #173b55; font-size: 16px; }
.city-application-steps p { margin: 6px 0 0; color: #526575; font-size: 13px; line-height: 1.7; }
.city-application-closed { display: flex; align-items: flex-start; gap: 24px; padding: 32px; border: 1px solid #d6e7f2; border-radius: 14px; background: #eaf3f9; }
.city-application-closed > div { min-width: 0; }
.city-application-closed h2 { margin: 10px 0 18px; font-size: 27px; }
.city-application-closed p { margin: 0 0 12px; color: #526575; font-size: 15px; line-height: 1.7; }
.city-application-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; margin-top: 24px; }
.city-application-back { color: #006ca9; font-size: 13px; font-weight: 600; }
.city-application-back:hover { text-decoration: underline; }
.city-school-application .form-required-note { margin: 24px 0; color: #526575; font-size: 13px; }
.city-school-application [data-school-enrollment-form] { padding: 28px; border: 1px solid #deebf2; border-radius: 14px; background: #fff; margin-right: 0; margin-left: 0; }
.city-application-panel { padding: 26px; border: 1px solid #deebf2; border-radius: 10px; background: #f8fbfd; }
.city-application-panel h3 { margin: 0 0 22px; color: #173b55; font-size: 21px; line-height: 1.4; font-weight: 700; }
.city-application-panel .city-application-panel { background: #fff; }
.city-school-application .form-label { display: block; margin-bottom: 9px; color: #173b55; font-size: 13px; font-weight: 600; }
.city-school-application .form-control, .city-school-application select.form-select { width: 100%; min-height: 46px; padding: 12px 14px; border: 1px solid #c3d8e6; border-radius: 6px; background: #fff; color: #173b55; font-size: 15px; }
.city-school-application select.form-select { display: block; appearance: auto; cursor: pointer; background-image: none; }
.city-school-application .form-control:focus { border-color: #007ac2; box-shadow: 0 0 0 3px rgb(0 122 194 / 12%); }
.city-school-application :is(input,select,textarea,button):focus-visible { outline: 3px solid #007ac2; outline-offset: 3px; }
.city-school-application .form-check { display: flex; align-items: flex-start; gap: 12px; padding: 0; margin: 18px 0 0; }
.city-school-application .form-check-input { float: none; flex: 0 0 18px; width: 18px; height: 18px; margin: 4px 0 0; }
.city-school-application .form-check-label { color: #173b55; font-size: 14px; line-height: 1.7; }
.city-school-application .form-text, .city-school-application .text-muted { color: #526575 !important; font-size: 13px; line-height: 1.7; }
.city-school-application .city-school-secondary { margin-top: 0; }
.city-school-application button.city-school-primary { cursor: pointer; }
@media (max-width: 767px) {
    .city-application-steps { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .city-application-intro, .city-application-closed { padding: 22px; }
    .city-application-closed { flex-direction: column; gap: 18px; }
    .city-application-closed h2 { font-size: 24px; }
    .city-school-application [data-school-enrollment-form] { padding: 18px 8px; }
    .city-application-panel { padding: 18px; }
    .city-application-panel .city-application-panel { padding: 16px; }
    .city-school-application input[type="file"] { font-size: 12px; min-width: 0; padding: 10px; }
}

/* FAQ with native, keyboard-accessible expandable answers. */
.city-faq-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; align-items: start; gap: 36px; }
.city-faq-questions, .city-faq-sidebar { min-width: 0; }
.city-faq-item { border: 1px solid #deebf2; border-radius: 12px; background: #fff; scroll-margin-top: 125px; }
.city-faq-item + .city-faq-item { margin-top: 16px; }
.city-faq-item[open] { border-color: #b8d6e8; box-shadow: 0 8px 24px rgb(7 60 93 / 5%); }
.city-faq-item summary { display: flex; align-items: center; gap: 18px; padding: 24px; list-style: none; cursor: pointer; border-radius: 12px; }
.city-faq-item summary::-webkit-details-marker { display: none; }
.city-faq-item summary::marker { content: ''; }
.city-faq-item summary:hover { background: #f3f8fb; }
.city-faq-item summary:focus-visible { outline: 3px solid #007ac2; outline-offset: 4px; }
.city-faq-item summary h2 { flex: 1; min-width: 0; margin: 0; font-size: 19px; line-height: 1.5; color: #173b55; font-weight: 700; overflow-wrap: anywhere; }
.city-faq-number { display: inline-flex; flex: 0 0 38px; height: 38px; align-items: center; justify-content: center; border-radius: 10px 10px 10px 3px; color: #006ca9; background: #eaf3f9; font-size: 12px; font-weight: 700; }
.city-faq-item[open] .city-faq-number { background: #ffd252; color: #173b55; }
.city-faq-toggle { position: relative; flex: 0 0 24px; height: 24px; color: #007ac2; }
.city-faq-toggle::before, .city-faq-toggle::after { content: ''; position: absolute; top: 11px; left: 5px; width: 14px; height: 2px; background: currentColor; }
.city-faq-toggle::after { transform: rotate(90deg); }
.city-faq-item[open] .city-faq-toggle::after { display: none; }
.city-faq-answer { padding: 0 24px 24px 80px; }
.city-faq-answer .city-article-prose { font-size: 16px; }
.city-faq-answer-footer { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; padding-top: 16px; border-top: 1px solid #e3edf3; }
.city-faq-answer-footer > span { padding: 4px 9px; border-radius: 4px; background: #eaf3f9; color: #006ca9; font-size: 11px; }
.city-faq-answer-footer a { color: #006ca9; font-size: 12px; font-weight: 600; }
.city-faq-answer-footer a:hover { text-decoration: underline; }
.city-faq-answer-footer i { margin-right: 6px; }
.city-faq-categories { display: block; padding: 26px; border-radius: 12px; background: #eaf3f9; border: 1px solid #d6e7f2; }
.city-faq-categories h2 { margin: 10px 0 20px; font-size: 22px; line-height: 1.4; color: #173b55; font-weight: 700; }
.city-faq-categories ul { margin: 0; padding: 0; list-style: none; }
.city-faq-categories li + li { border-top: 1px solid #cfdfeb; }
.city-faq-categories a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 0; color: #344f60; font-size: 14px; line-height: 1.6; }
.city-faq-categories a:hover, .city-faq-categories a[aria-current] { color: #006ca9; font-weight: 700; }
.city-faq-categories a > span { flex-shrink: 0; min-width: 26px; padding: 2px 7px; border-radius: 20px; background: #fff; text-align: center; font-size: 11px; }
.city-faq-categories a[aria-current] > span { background: #ffd252; color: #173b55; }
.city-faq-module { margin-top: 26px; }
@media (max-width: 991px) {
    .city-faq-layout { grid-template-columns: minmax(0, 1fr) 250px; gap: 24px; }
    .city-faq-categories { padding: 20px; }
}
@media (max-width: 767px) {
    .city-faq-layout { grid-template-columns: minmax(0, 1fr); }
    .city-faq-item summary { padding: 20px 16px; gap: 12px; }
    .city-faq-item summary h2 { font-size: 17px; }
    .city-faq-number { flex-basis: 30px; height: 32px; }
    .city-faq-answer { padding: 0 20px 20px; }
    .city-faq-item { scroll-margin-top: 24px; }
}

/* Public directory registration forms. */
.city-registration-section { background: #f3f8fb; padding: 0 0 80px; }
.city-registration-card { position: relative; max-width: 1000px; margin: -28px auto 0; padding: 38px 42px; background: #fff; border: 1px solid #deebf2; border-radius: 16px; box-shadow: 0 12px 36px rgb(7 60 93 / 6%); }
.city-registration-intro { display: flex; align-items: flex-start; gap: 20px; margin-bottom: 24px; }
.city-registration-icon { display: flex; align-items: center; justify-content: center; flex: 0 0 52px; height: 52px; border-radius: 14px 14px 14px 4px; background: #ffd252; color: #173b55; font-size: 23px; }
.city-registration-intro h2 { margin: 0 0 8px; color: #173b55; font-size: 25px; font-weight: 700; }
.city-registration-intro p { margin: 0; color: #536b7c; line-height: 1.7; }
.city-registration-form { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px; }
.city-registration-form > .col-12 { grid-column: 1 / -1; }
.city-registration-form > .col-lg-6 { grid-column: span 3; }
.city-registration-form > .col-lg-4 { grid-column: span 2; }
.city-registration-form > [class*="col-"] { padding: 0; width: auto; max-width: none; min-width: 0; }
.city-registration-step { grid-column: 1 / -1; display: flex; align-items: center; gap: 12px; padding-top: 24px; border-top: 1px solid #deebf2; }
.city-registration-step span { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: #eaf3f9; color: #006ca9; font-size: 12px; font-weight: 700; }
.city-registration-step h3 { margin: 0; font-size: 20px; color: #173b55; font-weight: 700; }
.city-registration-form .form-label { display: block; margin-bottom: 8px; color: #173b55; font-size: 14px; font-weight: 600; }
.city-registration-form .form-control, .city-registration-form .form-select { display: block; width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid #cadde9; border-radius: 7px; background: #f8fbfd; color: #173b55; font-size: 15px; line-height: 1.5; }
.city-registration-form textarea.form-control { resize: vertical; }
.city-registration-form .form-select { appearance: auto; }
.city-registration-form .form-control:focus, .city-registration-form .form-select:focus { border-color: #007ac2; outline: 2px solid #007ac2; outline-offset: 2px; background: #fff; box-shadow: none; }
.city-registration-form .form-text { margin-top: 7px; color: #536b7c; font-size: 13px; }
.city-registration-form .rgpd-form-notice { margin: 0; padding: 22px; border: 1px solid #d6e7f2; border-radius: 10px; background: #eaf3f9; color: #435d70; }
.city-registration-form .rgpd-form-notice h3 { font-size: 17px; color: #173b55; margin-bottom: 12px; }
.city-registration-form .rgpd-form-notice p { font-size: 13px; line-height: 1.7; margin-bottom: 10px; }
.city-registration-form .rgpd-form-notice p:last-child { margin-bottom: 0; }
.city-registration-form .rgpd-form-notice a { color: #006ca9; text-decoration: underline; }
.city-registration-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
@media (max-width: 767px) {
    .city-registration-card { padding: 24px 20px; border-radius: 12px; }
    .city-registration-intro { gap: 14px; }
    .city-registration-intro h2 { font-size: 21px; }
    .city-registration-icon { flex-basis: 40px; height: 40px; font-size: 19px; }
    .city-registration-form { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .city-registration-form > .col-lg-6, .city-registration-form > .col-lg-4 { grid-column: 1; }
    .city-registration-actions > * { width: 100%; text-align: center; justify-content: center; }
    .city-registration-section { padding-bottom: 48px; }
}

/* Receipt displayed only to the visitor who submitted the directory request. */
.city-confirmation-card h2, .city-confirmation-recap dd { overflow-wrap: anywhere; }
.city-confirmation-card .city-school-eyebrow { display: block; margin-bottom: 8px; }
.city-confirmation-next { padding: 24px; margin-bottom: 30px; border-left: 4px solid #ffd252; border-radius: 0 10px 10px 0; background: #eaf3f9; }
.city-confirmation-next h3, .city-confirmation-heading { color: #173b55; font-size: 20px; font-weight: 700; margin-bottom: 12px; }
.city-confirmation-next p { color: #435d70; margin-bottom: 10px; line-height: 1.7; }
.city-confirmation-next p:last-child { margin-bottom: 0; }
.city-confirmation-recap { margin: 0 0 30px; }
.city-confirmation-recap > div { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 24px; padding: 16px 0; border-bottom: 1px solid #deebf2; }
.city-confirmation-recap dt { font-size: 14px; color: #173b55; font-weight: 600; }
.city-confirmation-recap dd { margin: 0; color: #435d70; line-height: 1.7; }
@media (max-width: 767px) {
    .city-confirmation-recap > div { grid-template-columns: minmax(0, 1fr); gap: 6px; }
    .city-confirmation-next { padding: 18px; }
}

/* Public works and disruption directory. */
.city-disruptions-filters { grid-template-columns: minmax(200px, 1.5fr) repeat(2, minmax(160px, 1fr)) auto; }
.city-disruptions-section .disruptions-map-card { padding: 24px; margin-bottom: 32px; border: 1px solid #deebf2; box-shadow: none; }
.city-disruptions-map-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.city-disruptions-map-heading h2 { font-size: 23px; font-weight: 700; color: #173b55; margin: 5px 0 0; }
.city-disruptions-map-heading p { font-size: 13px; color: #536b7c; margin: 0; }
.city-disruptions-section .disruptions-public-map { height: 300px; min-height: 300px; z-index: 0; scroll-margin-top: 120px; }
.city-disruptions-section .disruptions-public-card { display: flex; flex-direction: column; padding: 26px; border: 1px solid #deebf2; border-top: 3px solid #ffd252; box-shadow: none; }
.city-disruptions-section .disruptions-public-card:hover, .city-disruptions-section .disruptions-public-card.is-map-active { border-color: #99c6e0; border-top-color: #007ac2; box-shadow: 0 10px 26px rgb(7 60 93 / 7%); transform: translateY(-3px); }
.city-disruptions-section .disruptions-public-card h3 { color: #173b55; font-size: 22px; line-height: 1.4; overflow-wrap: anywhere; }
.city-disruptions-section .disruptions-public-card p, .city-disruptions-section .disruptions-meta li { color: #536b7c; font-size: 14px; overflow-wrap: anywhere; }
.city-disruptions-section .disruptions-card-top { gap: 8px; }
.city-disruptions-section .disruptions-card-top > span { font-size: 11px; letter-spacing: 0; text-transform: none; min-height: 26px; padding: 6px 10px; }
.city-disruptions-section .disruptions-status-planned { background: #ffd252; color: #173b55; }
.city-disruptions-section .disruptions-status-done { background: #e8f2ed; color: #286148; }
.city-disruptions-section .disruptions-card-actions { margin-top: auto; padding-top: 20px; border-top: 1px solid #e3edf3; justify-content: space-between; }
.city-disruptions-section .disruptions-card-actions a, .city-disruptions-section .disruptions-card-actions button { font-size: 13px; line-height: 1.5; }
.city-disruptions-section .disruptions-card-actions a:hover, .city-disruptions-section .disruptions-card-actions button:hover { text-decoration: underline; }
.city-disruptions-section a:focus-visible, .city-disruptions-section button:focus-visible, .city-disruptions-section input:focus-visible, .city-disruptions-section select:focus-visible { outline: 3px solid #007ac2; outline-offset: 3px; }
@media (max-width: 991px) {
    .city-disruptions-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .city-disruptions-map-heading { display: block; }
    .city-disruptions-map-heading p { margin-top: 10px; }
}
@media (max-width: 575px) {
    .city-disruptions-filters { grid-template-columns: minmax(0, 1fr); }
    .city-disruptions-section .disruptions-map-card { padding: 18px; }
    .city-disruptions-map-heading h2 { font-size: 21px; }
    .city-disruptions-section .disruptions-public-card { padding: 22px; }
    .city-disruptions-section .disruptions-public-map { height: 260px; min-height: 260px; scroll-margin-top: 24px; }
}

/* Disruption detail, aligned with public article pages. */
.city-disruption-hero .city-article-back { margin-top: 22px; display: inline-flex; }
.city-disruption-detail { background: #f3f8fb; padding: 48px 0 80px; }
.city-disruption-content { padding: 34px; background: #fff; border: 1px solid #deebf2; border-radius: 12px; }
.city-disruption-content .disruptions-card-top { margin-bottom: 28px; gap: 8px; }
.city-disruption-content .disruptions-card-top > span { font-size: 12px; text-transform: none; letter-spacing: 0; }
.city-disruption-content .disruptions-status-planned { background: #ffd252; color: #173b55; }
.city-disruption-content .disruptions-status-done { background: #e8f2ed; color: #286148; }
.city-disruption-content h2, .city-disruption-detail .disruption-detail-info h2 { margin: 0 0 16px; color: #173b55; font-size: 23px; font-weight: 700; line-height: 1.4; }
.city-disruption-content .disruption-detail-block { margin-top: 28px; }
.city-disruption-content p { color: #435d70; line-height: 1.8; overflow-wrap: anywhere; }
.city-disruption-content .disruption-impact-block { padding: 24px; border: 0; border-left: 4px solid #ffd252; border-radius: 0 10px 10px 0; background: #eaf3f9; }
.city-disruption-content .disruption-impact-block-critical { border-left-color: #991b1b; }
.city-disruption-content .disruption-impact-block p { margin-bottom: 0; }
.city-disruption-detail .disruption-detail-info { padding: 26px; background: #eaf3f9; border: 1px solid #d6e7f2; box-shadow: none; height: auto; }
.city-disruption-detail .disruption-detail-info h2 { margin-top: 8px; font-size: 21px; }
.city-disruption-detail .disruption-detail-info li { border-color: #cfdfeb; overflow-wrap: anywhere; }
.city-disruption-detail .disruption-detail-info li strong { color: #173b55; font-size: 13px; }
.city-disruption-detail .disruption-detail-info li span { color: #435d70; }
.city-disruption-detail .disruption-detail-info a { color: #006ca9; text-decoration: underline; }
.city-disruption-detail .disruption-detail-map { min-height: 260px; height: 260px; margin-top: 22px; z-index: 0; }
.city-disruption-content .disruption-document-card { display: flex; flex-wrap: wrap; gap: 16px; padding: 22px; border: 1px solid #deebf2; box-shadow: none; background: #f8fbfd; }
.city-disruption-content .disruption-document-card .download-content { flex: 1 1 180px; min-width: 0; overflow-wrap: anywhere; }
.city-disruption-content .disruption-document-card h3 { font-size: 18px; line-height: 1.5; color: #173b55; }
.city-disruption-content .disruption-document-card .city-school-primary { font-size: 13px; }
.city-disruption-detail a:focus-visible { outline: 3px solid #007ac2; outline-offset: 4px; }
@media (max-width: 991px) {
    .city-disruption-detail .sidebar-side { margin-top: 28px; }
}
@media (max-width: 575px) {
    .city-disruption-detail { padding: 30px 0 48px; }
    .city-disruption-content, .city-disruption-detail .disruption-detail-info { padding: 22px; }
    .city-disruption-content h2 { font-size: 21px; }
    .city-disruption-content .disruption-impact-block { padding: 18px; }
}

/* Public document categories: readable download rows on every screen. */
.city-documents-filters { grid-template-columns: minmax(0, 1fr) minmax(160px, 220px) auto; }
#documents-resultats { scroll-margin-top: 120px; }
.city-documents-list { display: grid; gap: 18px; }
.city-document-row { display: flex; align-items: center; gap: 24px; padding: 26px; border: 1px solid #deebf2; border-radius: 12px; background: #fff; transition: border-color .2s, box-shadow .2s; }
.city-document-row:hover { border-color: #99c6e0; box-shadow: 0 8px 24px rgb(7 60 93 / 6%); }
.city-document-icon { display: flex; align-items: center; justify-content: center; flex: 0 0 60px; height: 70px; border-radius: 12px 12px 12px 3px; background: #eaf3f9; color: #007ac2; font-size: 28px; border-bottom: 4px solid #ffd252; }
.city-document-content { flex: 1; min-width: 0; }
.city-document-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; color: #536b7c; font-size: 12px; margin-bottom: 10px; }
.city-document-format { padding: 3px 8px; border-radius: 4px; color: #006ca9; background: #eaf3f9; font-weight: 700; }
.city-document-content h2 { color: #173b55; font-size: 21px; font-weight: 700; line-height: 1.4; margin: 0; overflow-wrap: anywhere; }
.city-document-content p { margin: 10px 0 0; color: #536b7c; font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.city-document-download { display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; gap: 10px; padding: 12px 18px; border-radius: 7px; color: #173b55; background: #ffd252; font-size: 13px; font-weight: 700; transition: background .2s, color .2s; }
.city-document-download:hover { background: #073c5d; color: #fff; }
.city-documents-section a:focus-visible, .city-documents-section input:focus-visible, .city-documents-section button:focus-visible { outline: 3px solid #007ac2; outline-offset: 4px; }
@media (max-width: 767px) {
    .city-document-row { flex-wrap: wrap; gap: 16px; padding: 22px; }
    .city-document-icon { flex-basis: 42px; height: 52px; font-size: 22px; }
    .city-document-content { flex-basis: calc(100% - 58px); }
    .city-document-content h2 { font-size: 18px; }
    .city-document-download { width: 100%; }
}
@media (max-width: 575px) {
    .city-documents-filters { grid-template-columns: minmax(0, 1fr); }
}
.city-news-listing { padding-top: 0; background: #f3f8fb; }
.city-news-listing .city-agenda-filters { z-index: 1; }

/* Standard editable municipal pages. */
.city-standard-section { background: #f3f8fb; padding: 48px 0 80px; }
.city-standard-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 32px; align-items: start; }
.city-standard-content { min-width: 0; padding: 34px; border: 1px solid #deebf2; border-radius: 12px; background: #fff; }
.city-standard-updated { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 26px; padding-bottom: 18px; border-bottom: 1px solid #e3edf3; color: #536b7c; font-size: 12px; }
.city-standard-updated i { color: #007ac2; margin-right: 3px; }
.city-standard-image { margin: 0 0 24px; border-radius: 8px; overflow: hidden; background: #f3f8fb; }
.city-standard-image img { display: block; width: 100%; max-height: 420px; object-fit: contain; }
.city-standard-content .city-article-prose { overflow-wrap: anywhere; }
.city-standard-sidebar { min-width: 0; }
.city-standard-nav { display: block; padding: 24px; border: 1px solid #d6e7f2; border-radius: 12px; background: #eaf3f9; }
.city-standard-nav + .city-standard-nav { margin-top: 24px; }
.city-standard-nav h2 { margin: 8px 0 16px; font-size: 21px; font-weight: 700; color: #173b55; line-height: 1.4; }
.city-standard-nav ul { margin: 0; padding: 0; list-style: none; }
.city-standard-nav li + li { border-top: 1px solid #cfdfeb; }
.city-standard-nav a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 0; color: #344f60; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.city-standard-nav a span { color: #007ac2; flex-shrink: 0; }
.city-standard-nav a:hover { color: #006ca9; text-decoration: underline; }
.city-standard-nav a:focus-visible { outline: 3px solid #007ac2; outline-offset: 3px; }
.city-standard-related { background: transparent; }
@media (max-width: 991px) { .city-standard-layout { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 575px) { .city-standard-section { padding: 30px 0 48px; } .city-standard-content, .city-standard-nav { padding: 22px; } }
.city-standard-content .city-article-prose h1 { font-size: 28px; line-height: 1.4; font-weight: 700; color: #173b55; }
@media (max-width: 575px) { .city-standard-content .city-article-prose h1 { font-size: 23px; } }

/* Municipal portal pages and their nested navigation. */
.city-portal-section.portal-page-section.sec-pad-2 { padding: 48px 0 80px; background: #f3f8fb; }
.city-portal-section.portal-page-section .portal-page-content { border: 1px solid #deebf2; border-radius: 12px; box-shadow: none; }
.city-portal-meta { padding: 22px 32px; border-bottom: 1px solid #e3edf3; color: #536b7c; font-size: 12px; }
.city-portal-meta i { color: #007ac2; margin-right: 6px; }
.city-portal-image { margin: 24px 32px 0; }
.city-portal-image img { width: 100%; max-height: 380px; object-fit: contain; border-radius: 8px; }
.city-portal-section .portal-page-content .text-box { color: #435d70; }
.city-portal-section .city-article-prose h1 { color: #173b55; font-size: 28px; font-weight: 700; line-height: 1.4; }
.city-portal-section .portal-children-heading h2 { font-size: 24px; color: #173b55; }
.city-portal-section .portal-child-card { background: #f8fbfd; border: 1px solid #d6e7f2; border-top: 3px solid #ffd252; box-shadow: none; border-radius: 10px; }
.city-portal-section .portal-child-card:hover { border-color: #007ac2; background: #eaf3f9; box-shadow: 0 8px 20px rgb(7 60 93 / 6%); }
.city-portal-section .portal-child-card-body strong { color: #173b55; font-size: 19px; line-height: 1.4; }
.city-portal-section .portal-child-card-body > span { color: #536b7c; line-height: 1.6; }
.city-portal-section .department-sidebar .sidebar-category { padding: 24px; background: #eaf3f9; border: 1px solid #d6e7f2; border-radius: 12px; box-shadow: none; }
.city-portal-section .department-sidebar .sidebar-category .inner-box { padding: 0; background: transparent; border: 0; box-shadow: none; }
.city-portal-section .department-sidebar .widget-title h3 { color: #173b55; font-size: 21px; line-height: 1.4; }
.city-portal-section .department-sidebar .title-shape { display: none; }
.city-portal-section .department-sidebar .portal-quick-access-sidebar { margin-top: 24px; padding: 24px; border: 1px solid #d6e7f2; border-radius: 12px; background: #fff; box-shadow: none; }
.city-portal-section .portal-nav-link { overflow-wrap: anywhere; }
.city-portal-section .portal-nav-link[aria-current="page"] { background: #ffd252; color: #173b55; }
.city-portal-section a:focus-visible, .city-portal-section button:focus-visible { outline: 3px solid #007ac2; outline-offset: 3px; }
@media (max-width: 991px) { .city-portal-section .sidebar-side { margin-top: 28px; } }
@media (max-width: 575px) {
    .city-portal-section.portal-page-section.sec-pad-2 { padding: 30px 0 48px; }
    .city-portal-meta { padding: 20px; }
    .city-portal-section.portal-page-section .portal-page-content .text-box { padding: 22px; }
    .city-portal-image { margin: 20px; }
    .city-portal-section .city-article-prose h1 { font-size: 23px; }
}
.city-portal-section .department-sidebar .sidebar-category .inner-box::before { display: none; }
.city-portal-section .department-sidebar .widget-title { text-align: left; top: auto; margin-bottom: 20px; }
.city-portal-section .department-sidebar .portal-nav-link[aria-current="page"] { background: #ffd252; color: #173b55; }
.city-portal-section .department-sidebar .sidebar-contact .info-list { padding: 0; }
.city-portal-section .department-sidebar .sidebar-contact .widget-title p { color: #536b7c; font-size: 13px; }

/* Legal information, accessibility and sitemap. */
.city-information-section.sec-pad { padding: 48px 0 80px; background: #f3f8fb; }
.city-information-section .legal-page-card, .city-information-section .accessibility-statement-card { border: 1px solid #deebf2; border-radius: 12px; box-shadow: none; }
.city-information-section .legal-page-card .sec-title { padding: 22px 36px; background: #fff; border-bottom: 1px solid #deebf2; }
.city-information-section .legal-page-card .sec-title p { min-height: 0; padding: 0; background: none; border-radius: 0; font-weight: 400; font-size: 12px; color: #536b7c; }
.city-information-section .legal-page-card h3 { color: #173b55; font-size: 23px; margin: 30px 36px 14px; }
.city-information-section .legal-page-card h3::after { width: 36px; height: 3px; background: #ffd252; }
.city-information-section .legal-page-card > p, .city-information-section .legal-page-card ul { margin-left: 36px; margin-right: 36px; }
.city-information-section .legal-page-card p, .city-information-section .legal-page-card li, .city-information-section .accessibility-statement-content p, .city-information-section .accessibility-statement-content li { color: #435d70; line-height: 1.8; overflow-wrap: anywhere; }
.city-information-section > .auto-container > .sec-title { text-align: left; margin-bottom: 26px; }
.city-information-section > .auto-container > .sec-title h6, .city-information-section > .auto-container > .sec-title .title-shape { display: none; }
.city-information-section > .auto-container > .sec-title h2 { color: #173b55; font-size: 26px; }
.city-information-section .accessibility-status-box { background: #eaf3f9; border: 1px solid #d6e7f2; border-left: 4px solid #ffd252; color: #173b55; }
.city-information-section .accessibility-status-box strong { color: #173b55; }
.city-information-section .sitemap-card { padding: 28px; border: 1px solid #deebf2; border-top: 3px solid #ffd252; border-radius: 12px; background: #fff; box-shadow: none; }
.city-information-section .sitemap-card h3 { color: #173b55; font-size: 22px; }
.city-information-section .sitemap-card a { color: #006ca9; line-height: 1.6; }
.city-information-section .sitemap-card a:hover { color: #073c5d; text-decoration: underline; }
.city-cookie-action { margin: 18px 36px; }
.city-information-section a:focus-visible, .city-information-section button:focus-visible, .cookie-preferences button:focus-visible, .cookie-preferences input:focus-visible { outline: 3px solid #007ac2; outline-offset: 3px; }
.cookie-preferences-panel { border: 1px solid #d6e7f2; border-top: 5px solid #ffd252; border-radius: 16px; background: #f3f8fb; }
.cookie-preferences-panel h2, .cookie-consent-content h2 { color: #173b55; padding-right: 34px; }
.cookie-preferences-panel .cookie-consent-kicker { color: #006ca9; }
.cookie-preferences-intro, .cookie-preference-item small { color: #435d70; }
.cookie-preference-item { border-color: #d6e7f2; border-radius: 10px; }
.cookie-preference-item strong { color: #173b55; }
.cookie-preference-item.is-required { background: #eaf3f9; }
.cookie-preferences-actions .cookie-btn-primary, .cookie-preferences-actions .cookie-btn-light, .cookie-preferences-actions .cookie-btn-link, .cookie-consent-actions .cookie-btn-primary, .cookie-consent-actions .cookie-btn-light, .cookie-consent-actions .cookie-btn-link { border: 1px solid #007ac2; border-radius: 7px; padding: 12px 16px; font-size: 13px; font-weight: 700; line-height: 1.5; text-decoration: none; }
.cookie-preferences-actions .cookie-btn-primary { background: #007ac2; color: #fff; }
.cookie-preferences-actions .cookie-btn-light, .cookie-preferences-actions .cookie-btn-link, .cookie-consent-actions .cookie-btn-link { background: #fff; color: #006ca9; }
.cookie-consent-card { border-top: 4px solid #ffd252; border-radius: 12px; }
@media (max-width: 575px) {
    .city-information-section.sec-pad { padding: 30px 0 48px; }
    .city-information-section .legal-page-card .sec-title { padding: 20px; }
    .city-information-section .legal-page-card h3 { margin-left: 20px; margin-right: 20px; font-size: 21px; }
    .city-information-section .legal-page-card > p, .city-information-section .legal-page-card ul, .city-cookie-action { margin-left: 20px; margin-right: 20px; }
    .city-information-section .sitemap-card { padding: 22px; }
    .cookie-preferences-panel { padding: 24px 20px; }
    .cookie-preferences-actions > button { width: 100%; }
}
.city-information-section .sitemap-card::before { display: none; }
.city-information-section .sitemap-card h3 { font-weight: 700; }

/* Global search aligned with municipal directories. */
.city-search-section .public-search-results { display: grid; gap: 18px; }
.city-search-section .public-search-result-card { padding: 26px; border: 1px solid #deebf2; border-radius: 12px; background: #fff; box-shadow: none; gap: 22px; }
.city-search-section .public-search-result-card:hover { border-color: #99c6e0; box-shadow: 0 8px 24px rgb(7 60 93 / 6%); }
.city-search-section .public-search-result-icon { background: #eaf3f9; color: #007ac2; border-radius: 12px 12px 12px 3px; border-bottom: 3px solid #ffd252; }
.city-search-section .public-search-result-type { color: #006ca9; background: #eaf3f9; border-radius: 4px; padding: 3px 8px; font-size: 11px; }
.city-search-section .public-search-result-content { min-width: 0; }
.city-search-section .public-search-result-content h2 { margin: 8px 0 10px; font-size: 22px; line-height: 1.4; font-weight: 700; overflow-wrap: anywhere; }
.city-search-section .public-search-result-content h2 a { color: #173b55; }
.city-search-section .public-search-result-content h2 a:hover { color: #006ca9; text-decoration: underline; }
.city-search-section .public-search-result-content p { color: #536b7c; line-height: 1.7; font-size: 15px; overflow-wrap: anywhere; }
.city-search-section .public-search-result-link { background: #ffd252; color: #173b55; border-radius: 8px; }
.city-search-section .public-search-result-card:hover .public-search-result-link { color: #fff; background: #073c5d; }
.city-search-section .city-agenda-empty { margin-top: 30px; }
.city-search-section a:focus-visible, .city-search-section button:focus-visible, .city-search-section input:focus-visible, .city-search-section select:focus-visible { outline: 3px solid #007ac2; outline-offset: 3px; }
@media (max-width: 575px) {
    .city-search-section .public-search-result-card { padding: 20px; gap: 14px; grid-template-columns: 40px minmax(0, 1fr); }
    .city-search-section .public-search-result-icon { width: 40px; height: 46px; font-size: 20px; }
    .city-search-section .public-search-result-content h2 { font-size: 18px; }
    .city-search-section .public-search-result-link { grid-column: 2; justify-self: end; }
}
@media (max-width: 575px) { .city-search-section .public-search-result-icon { align-self: start; } }

/* Cartes de visite publiques : identité municipale et coordonnées. */
.city-contact-card { padding: 56px 24px; background: linear-gradient(160deg, #073c5d 0, #0b2c46 340px, #f3f8fb 341px); align-items: flex-start; color: #173b55; }
.city-contact-card .business-card-public-standalone-container { max-width: 1080px; margin: 0 auto; }
.city-contact-intro { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 24px; color: #c9dfea; font-size: 13px; }
.city-contact-intro a { color: #fff; text-decoration: none; }
.city-contact-intro a span { color: #ffd252; margin-right: 8px; }
.city-contact-card .business-card-public-shell { grid-template-columns: minmax(0, 1fr) 300px; gap: 0; align-items: stretch; border-radius: 24px; box-shadow: 0 24px 60px rgb(7 60 93 / 12%); background: #fff; overflow: hidden; }
.city-contact-card .business-card-public-shell .business-card-public-main { padding: 40px; border: 0; border-radius: 0; box-shadow: none; }
.city-contact-card .business-card-public-brand { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 38px; padding-bottom: 24px; border-bottom: 1px solid #deebf2; }
.city-contact-card .business-card-public-brand img { width: 150px; }
.city-contact-card .business-card-public-brand > span { color: #536b7c; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; max-width: 120px; }
.city-contact-card .business-card-public-identity { gap: 24px; align-items: flex-start; }
.city-contact-card .business-card-public-photo { margin: 0; flex-shrink: 0; }
.city-contact-card .business-card-public-photo, .city-contact-card .business-card-public-photo img { width: 100px; height: 120px; border-radius: 12px; }
.city-contact-card .business-card-public-shell .business-card-public-avatar { flex-shrink: 0; width: 86px; height: 100px; border-radius: 12px 12px 32px 12px; background: #eaf3f9; color: #073c5d; border-bottom: 4px solid #ffd252; font-size: 40px; }
.city-contact-card .business-card-public-shell .business-card-public-type { color: #073c5d; background: #fff0bb; border-radius: 5px; font-size: 11px; padding: 4px 10px; margin-bottom: 12px; }
.city-contact-card .business-card-public-heading h1 { color: #073c5d; font-size: clamp(28px, 3.5vw, 40px); line-height: 1.15; font-weight: 750; margin: 0 0 12px; overflow-wrap: anywhere; }
.city-contact-card .business-card-public-role { font-size: 17px; font-weight: 600; color: #007ac2; line-height: 1.5; }
.city-contact-card .business-card-public-department, .city-contact-card .business-card-public-org { font-size: 14px; color: #536b7c; line-height: 1.5; }
.city-contact-card .business-card-public-actions { gap: 10px; margin: 30px 0; }
.city-contact-card .business-card-public-actions .theme-btn { border-radius: 8px; padding: 14px 18px; min-height: 50px; font-size: 13px; font-weight: 700; text-decoration: none; line-height: 1.4; transition: background .2s ease, box-shadow .2s ease; }
.city-contact-card .business-card-public-actions .style-one { background: #ffd252; color: #073c5d; border: 1px solid #ffd252; }
.city-contact-card .business-card-public-actions .style-two { background: #fff; color: #073c5d; border: 1px solid #c6dce9; }
.city-contact-card .business-card-public-actions .theme-btn:hover { background: #eaf3f9; border-color: #007ac2; box-shadow: 0 4px 12px rgb(7 60 93 / 8%); }
.city-contact-card .business-card-public-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
.city-contact-card .business-card-public-list li, .city-contact-card .business-card-public-list li:first-child { padding: 16px 0; border-top: 1px solid #deebf2; }
.city-contact-card .business-card-public-list li:first-child { grid-column: 1 / -1; }
.city-contact-card .business-card-public-list .label { color: #536b7c; font-size: 11px; letter-spacing: .07em; }
.city-contact-card .business-card-public-list a, .city-contact-card .business-card-public-list li > span:not(.label) { color: #073c5d; font-size: 15px; line-height: 1.6; overflow-wrap: anywhere; }
.city-contact-card .business-card-public-list a:hover { color: #007ac2; text-decoration: underline; }
.city-contact-card .business-card-public-bio { margin-top: 16px; padding-top: 20px; border-color: #deebf2; }
.city-contact-card .business-card-public-bio h2 { font-size: 19px; font-weight: 700; color: #073c5d; }
.city-contact-card .business-card-public-bio p { font-size: 15px; line-height: 1.75; color: #536b7c; overflow-wrap: anywhere; }
.city-contact-card .business-card-public-side { background: #eaf3f9; border-left: 1px solid #deebf2; }
.city-contact-card .business-card-public-shell .business-card-public-qr-card { position: static; padding: 40px 28px; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
.city-contact-qr-icon { display: grid; place-items: center; width: 44px; height: 44px; color: #073c5d; background: #ffd252; border-radius: 12px; margin-bottom: 24px; font-size: 22px; }
.city-contact-card .business-card-public-qr-card h2 { color: #073c5d; font-size: 25px; line-height: 1.25; font-weight: 700; margin: 0 0 12px; }
.city-contact-card .business-card-public-qr-card p { color: #536b7c; font-size: 14px; line-height: 1.7; }
.city-contact-card .business-card-public-qr { background: #fff; border-radius: 12px; padding: 18px; margin: 24px 0; border: 1px solid #d6e7f2; }
.city-contact-card .business-card-public-qr img { width: 190px; max-width: 100%; }
.city-contact-card .business-card-public-url > span { color: #536b7c; font-size: 11px; }
.city-contact-card .business-card-public-url a { color: #073c5d; font-size: 14px; font-weight: 700; }
.city-contact-card .business-card-public-url a span { display: inline; color: inherit; }
.city-contact-card a:focus-visible { outline: 3px solid #007ac2; outline-offset: 4px; }
@media (max-width: 767px) {
    .city-contact-card { padding: 26px 16px; }
    .city-contact-intro { font-size: 12px; margin-bottom: 20px; }
    .city-contact-intro > span { display: none; }
    .city-contact-card .business-card-public-shell { grid-template-columns: 1fr; border-radius: 18px; }
    .city-contact-card .business-card-public-shell .business-card-public-main { padding: 26px 22px; }
    .city-contact-card .business-card-public-brand { gap: 12px; margin-bottom: 26px; }
    .city-contact-card .business-card-public-brand img { width: 125px; }
    .city-contact-card .business-card-public-brand > span { font-size: 9px; max-width: 92px; }
    .city-contact-card .business-card-public-identity { flex-direction: column; gap: 18px; align-items: flex-start; text-align: left; }
    .city-contact-card .business-card-public-actions { flex-direction: column; margin: 24px 0; }
    .city-contact-card .business-card-public-list { grid-template-columns: 1fr; }
    .city-contact-card .business-card-public-side { border-left: 0; border-top: 1px solid #deebf2; }
    .city-contact-card .business-card-public-shell .business-card-public-qr-card { padding: 28px 22px; }
    .city-contact-card .business-card-public-qr { max-width: 230px; }
}
@media (prefers-reduced-motion: reduce) { .city-contact-card .theme-btn { transition: none; } }
.city-contact-card { background: linear-gradient(175deg, #073c5d 0, #0b2c46 340px, #f3f8fb 341px); }
.city-contact-card .business-card-public-actions .theme-btn.style-one,
.city-contact-card .business-card-public-actions .theme-btn.style-one span,
.city-contact-card .business-card-public-actions .theme-btn.style-one i { color: #073c5d !important; }
@media (max-width: 767px) {
    .city-contact-card .business-card-public-heading { width: 100%; text-align: left; }
}

/* Bulletin : couverture et espace de lecture accordés aux pages publiques. */
.city-bulletin-detail { padding: 48px 0 72px; background: #f3f8fb; }
.city-bulletin-detail .municipal-bulletin-detail-sidebar { overflow: visible; background: transparent; border-radius: 0; box-shadow: none; }
.city-bulletin-cover { display: block; width: min(100% - 36px, 285px); margin: 8px auto 32px; transform: rotate(-2deg); transition: transform .25s ease; }
.city-bulletin-cover:hover { transform: rotate(0); }
.city-bulletin-cover img { display: block; width: 100%; height: auto; border-radius: 2px 7px 7px 2px; box-shadow: 5px 5px 0 #fff, 7px 7px 0 #d6e2e9, 10px 16px 28px rgb(7 60 93 / 18%); }
.city-bulletin-cover-placeholder { display: flex; aspect-ratio: 3 / 4; padding: 30px; flex-direction: column; justify-content: center; gap: 24px; background: #fff; color: #073c5d; border-bottom: 5px solid #ffd252; box-shadow: 6px 10px 24px rgb(7 60 93 / 12%); }
.city-bulletin-cover-placeholder i { font-size: 48px; color: #007ac2; }
.city-bulletin-detail .municipal-bulletin-detail-info { padding: 24px; background: #fff; border: 1px solid #d6e7f2; border-radius: 12px; }
.city-bulletin-detail .status-badge { background: #fff0bb; color: #073c5d; border: 0; }
.city-bulletin-detail .municipal-bulletin-detail-info h2 { margin: 12px 0; color: #073c5d; font-size: 24px; }
.city-bulletin-detail .municipal-bulletin-detail-info ul { margin: 18px 0 24px; padding: 0; }
.city-bulletin-detail .municipal-bulletin-detail-info li { color: #536b7c; font-size: 14px; font-weight: 500; }
.city-bulletin-detail .municipal-bulletin-detail-actions { display: flex; flex-direction: column; gap: 14px; }
.city-bulletin-download { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 15px 16px; border-radius: 8px; background: #ffd252; color: #073c5d; font-size: 14px; font-weight: 700; transition: background .2s ease; }
.city-bulletin-download:hover { color: #073c5d; background: #ffdf80; }
.city-bulletin-open { color: #073c5d; text-align: center; font-size: 13px; font-weight: 600; }
.city-bulletin-open:hover { text-decoration: underline; }
.city-bulletin-detail .municipal-bulletin-reader { border: 1px solid #d6e7f2; border-radius: 14px; box-shadow: 0 12px 32px rgb(7 60 93 / 5%); scroll-margin-top: 120px; }
.city-bulletin-detail .municipal-bulletin-reader-header { padding: 22px 24px; border-color: #d6e7f2; background: #fff; }
.city-bulletin-reader-kicker { display: block; margin-bottom: 6px; color: #536b7c; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.city-bulletin-detail .municipal-bulletin-reader-header h2 { margin: 0; color: #073c5d; font-size: 26px; font-weight: 700; }
.city-bulletin-detail .municipal-bulletin-reader-header a { padding: 10px 14px; border-radius: 8px; background: #eaf3f9; color: #073c5d; font-size: 13px; }
.city-bulletin-detail .municipal-bulletin-reader-header a:hover { background: #ffd252; }
.city-bulletin-detail .municipal-bulletin-reader iframe { height: 75vh; min-height: 560px; background: #eaf3f9; }
.city-bulletin-detail .municipal-bulletin-reader-help { background: #eaf3f9; border-color: #d6e7f2; padding: 18px 22px; gap: 12px; font-size: 12px; }
.city-bulletin-detail .municipal-bulletin-reader-help strong { color: #073c5d; font-size: 13px; }
.city-bulletin-detail .municipal-bulletin-reader-help span { color: #536b7c; }
.city-bulletin-detail .municipal-bulletin-reader-help a { background: #073c5d; padding: 10px 12px; border-radius: 6px; }
.city-bulletin-detail a:focus-visible { outline: 3px solid #007ac2; outline-offset: 5px; }
@media (min-width: 576px) and (max-width: 991px) {
    .city-bulletin-detail .municipal-bulletin-detail-sidebar { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 24px; }
}
@media (max-width: 575px) {
    .city-bulletin-detail { padding: 32px 0 48px; }
    .city-bulletin-cover { width: min(75%, 250px); margin-bottom: 28px; }
    .city-bulletin-detail .municipal-bulletin-reader-header { flex-direction: row; align-items: center; padding: 18px; gap: 10px; }
    .city-bulletin-detail .municipal-bulletin-reader-header h2 { font-size: 22px; }
    .city-bulletin-detail .municipal-bulletin-reader iframe { height: 65vh; min-height: 400px; }
}
@media (prefers-reduced-motion: reduce) { .city-bulletin-cover, .city-bulletin-download { transition: none; } }

/* Archives des bulletins : couvertures entières et filtres natifs. */
.city-bulletins-archive { background: #f3f8fb; padding: 0 0 72px; }
.city-bulletins-archive .city-bulletin-filters { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(0, 1fr)); gap: 16px; }
.city-bulletins-archive .city-bulletin-filters > div { min-width: 0; }
.city-bulletins-archive .city-bulletin-filters button { grid-column: 1 / -1; justify-self: end; }
.city-bulletins-archive .municipal-bulletin-year-heading { border-color: #d6e7f2; }
.city-bulletins-archive .municipal-bulletin-year-heading h2 { color: #073c5d; font-size: 30px; margin: 0; padding-left: 16px; border-left: 4px solid #ffd252; }
.city-bulletins-archive .municipal-bulletin-year-heading strong { font-weight: 500; font-size: 12px; background: transparent; color: #536b7c; text-transform: none; padding: 0; }
.city-bulletins-archive .municipal-bulletin-block { margin-bottom: 28px; }
.city-bulletins-archive .municipal-bulletin-card { display: flex; flex-direction: column; overflow: visible; background: transparent; border: 0; box-shadow: none; }
.city-bulletins-archive .municipal-bulletin-card:hover { transform: none; box-shadow: none; }
.city-archive-cover { display: flex; align-items: flex-end; justify-content: center; height: 320px; padding: 12px 26px 22px; }
.city-archive-cover img { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 2px 6px 6px 2px; box-shadow: 4px 4px 0 #fff, 6px 6px 0 #d6e2e9, 8px 14px 22px rgb(7 60 93 / 15%); transition: transform .2s ease; }
.city-archive-cover:hover img { transform: translateY(-5px) rotate(-1deg); }
.city-archive-placeholder { display: flex; flex-direction: column; justify-content: center; gap: 20px; padding: 24px; height: 100%; width: 210px; background: #fff; color: #073c5d; border-bottom: 4px solid #ffd252; }
.city-archive-placeholder i { font-size: 40px; }
.city-bulletins-archive .municipal-bulletin-content { flex: 1; display: flex; flex-direction: column; padding: 24px; border: 1px solid #d6e7f2; border-radius: 12px; background: #fff; }
.city-bulletins-archive .municipal-bulletin-content .category { font-size: 12px; color: #073c5d; margin-bottom: 10px; }
.city-bulletins-archive .municipal-bulletin-content .category i { color: #d9a716; }
.city-bulletins-archive .municipal-bulletin-content h3 { font-size: 23px; line-height: 1.35; }
.city-bulletins-archive .municipal-bulletin-content h3 a { color: #073c5d; }
.city-bulletins-archive .municipal-bulletin-content p { color: #536b7c; font-size: 14px; }
.city-bulletins-archive .municipal-bulletin-meta { font-size: 12px; color: #536b7c; font-weight: 500; }
.city-bulletins-archive .municipal-bulletin-actions { margin-top: auto; display: flex; gap: 12px; align-items: center; }
.city-archive-read { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 16px; border-radius: 7px; background: #ffd252; color: #073c5d; font-size: 13px; font-weight: 700; }
.city-archive-read:hover { background: #ffdf80; color: #073c5d; }
.city-archive-download { display: inline-flex; align-items: center; min-height: 44px; color: #073c5d; font-size: 13px; font-weight: 600; }
.city-archive-download:hover { text-decoration: underline; }
.city-bulletins-archive a:focus-visible, .city-bulletins-archive button:focus-visible { outline: 3px solid #007ac2; outline-offset: 4px; }
@media (max-width: 575px) {
    .city-bulletins-archive .city-bulletin-filters { grid-template-columns: 1fr; }
    .city-bulletins-archive .city-bulletin-filters button { width: 100%; }
    .city-archive-cover { height: 330px; }
}
@media (prefers-reduced-motion: reduce) { .city-archive-cover img { transition: none; } }

/* Navigation des archives : repères et commandes accessibles en haut et en bas. */
#bulletins-resultats { scroll-margin-top: 160px; }
.city-bulletin-pagination { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 0; margin: 0 0 32px; border-top: 1px solid #dce3e8; border-bottom: 1px solid #dce3e8; }
.municipal-bulletin-archive + .city-bulletin-pagination { margin: 30px 0 0; }
.city-bulletin-pagination-info { display: grid; gap: 3px; color: #586677; font-size: 13px; }
.city-bulletin-pagination-info strong { color: #12304a; font-size: 17px; }
.city-bulletin-pagination-info strong span { font-weight: 400; }
.city-bulletin-pagination-controls { display: flex; align-items: center; gap: 16px; }
.city-bulletin-page-numbers { display: flex; align-items: center; gap: 6px; padding: 0; margin: 0; list-style: none; }
.city-bulletin-page-number, .city-bulletin-page-gap { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; border-radius: 50%; color: #12304a; font-weight: 700; }
.city-bulletin-page-number[aria-current] { background: #12304a; color: #fff; box-shadow: 0 4px 0 #edc550; }
.city-bulletin-page-direction { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 44px; color: #12304a; font-size: 14px; font-weight: 600; padding: 0 10px; border-radius: 24px; }
.city-bulletin-page-direction[aria-disabled] { color: #77818b; opacity: .65; }
.city-bulletin-pagination a { transition: background-color .2s, color .2s; }
.city-bulletin-pagination a:hover { background: #f5df97; color: #12304a; }
.city-bulletin-pagination a:focus-visible { outline: 3px solid #12304a; outline-offset: 4px; background: #f5df97; }
@media (max-width: 1199px) {
    .city-bulletin-pagination { flex-direction: column; align-items: stretch; }
    .city-bulletin-pagination-info { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; align-items: baseline; }
    .city-bulletin-pagination-controls { justify-content: center; }
}
@media (max-width: 575px) {
    #bulletins-resultats { scroll-margin-top: 110px; }
    .city-bulletin-pagination-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 6px; }
    .city-bulletin-page-numbers { grid-column: 1 / -1; grid-row: 1; justify-content: center; gap: 2px; }
    .city-bulletin-page-number, .city-bulletin-page-gap { min-width: 38px; height: 44px; }
    .city-bulletin-page-direction { background: #edf1f4; }
}
/* La cible d'ancrage est un repère de lecture, pas une commande interactive. */
#bulletins-resultats:focus { outline: none; }

/* Élus municipaux — portraits, délégations et accès par groupe. */
.city-agenda-section.city-officials-section { padding-top: 48px; }
@media (max-width: 767px) {
    .city-agenda-section.city-officials-section { padding-top: 32px; }
}
.city-officials-navigation { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 42px; }
.city-officials-navigation a { display: inline-flex; align-items: center; gap: 16px; padding: 12px 20px; border: 1px solid #d6e1e7; border-radius: 30px; color: #12304a; background: #fff; font-weight: 600; }
.city-officials-navigation a span { font-size: 12px; min-width: 25px; text-align: center; border-radius: 50%; background: #edf2f5; }
.city-officials-group { margin-bottom: 48px; }
.city-officials-group:last-child { margin-bottom: 0; }
.city-officials-group-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 16px; margin-bottom: 24px; border-bottom: 1px solid #d6e1e7; }
.city-officials-group-heading h2 { font-size: 28px; line-height: 1.3; color: #12304a; padding-left: 16px; border-left: 4px solid #edc550; scroll-margin-top: 160px; }
.city-officials-group-heading > span { color: #5c6e7b; font-size: 14px; white-space: nowrap; }
.city-officials-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 24px; }
.city-official-card { min-width: 0; overflow: hidden; border-radius: 16px; background: #fff; box-shadow: 0 8px 28px rgba(18,48,74,.06); display: flex; flex-direction: column; }
.city-official-portrait { aspect-ratio: 4 / 4; display: grid; place-items: center; background: linear-gradient(135deg, #e3ebf0, #f6f8f9); overflow: hidden; }
.city-official-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.city-official-initials { display: grid; place-items: center; width: 110px; height: 110px; border-radius: 50%; background: #12304a; color: #fff; font-size: 34px; box-shadow: 10px 10px 0 #edc550; }
.city-official-info { padding: 24px; display: flex; flex-direction: column; flex: 1; align-items: flex-start; }
.city-official-role { color: #486878; font-size: 13px; font-weight: 600; line-height: 1.6; margin-bottom: 8px; }
.city-official-info h3 { color: #12304a; font-size: 23px; line-height: 1.25; margin: 0 0 14px; overflow-wrap: anywhere; }
.city-official-bio { color: #566575; font-size: 15px; line-height: 1.7; margin: 0 0 20px; white-space: pre-line; overflow-wrap: anywhere; }
.city-official-contact { display: flex; gap: 8px; flex-wrap: wrap; margin-top: auto; padding-top: 16px; border-top: 1px solid #e5ebef; width: 100%; }
.city-official-contact a { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; color: #12304a; background: #edf2f5; padding: 10px 12px; border-radius: 8px; min-height: 44px; }
.city-officials-section a { transition: background-color .2s, color .2s; }
.city-official-contact a:hover, .city-officials-navigation a:hover { background: #f5df97; color: #12304a; }
.city-officials-section a:focus-visible { outline: 3px solid #12304a; outline-offset: 4px; }
.city-officials-mayor .city-official-card { display: grid; grid-template-columns: minmax(200px, .85fr) 1.15fr; }
.city-officials-mayor .city-official-info { justify-content: center; padding: clamp(24px, 4vw, 46px); border-top: 4px solid #edc550; }
.city-officials-mayor .city-official-info h3 { font-size: clamp(28px, 3vw, 38px); }
.city-officials-mayor .city-official-contact { margin-top: 16px; }
.city-officials-mayor .city-official-portrait { aspect-ratio: auto; min-height: 330px; }
@media (max-width: 575px) {
    .city-officials-navigation { gap: 8px; margin-bottom: 30px; }
    .city-officials-navigation a { padding: 10px 14px; gap: 8px; font-size: 14px; }
    .city-officials-group-heading h2 { font-size: 25px; scroll-margin-top: 100px; }
    .city-officials-mayor .city-official-card { display: flex; }
    .city-officials-mayor .city-official-portrait { aspect-ratio: 4 / 4; min-height: 0; }
    .city-official-info { padding: 22px; }
}
@media (prefers-reduced-motion: reduce) { .city-officials-section a { transition: none; } }

/* Éditeur municipal simplifié : le contenu avant les réglages de mise en page. */
.city-simple-builder { border: 1px solid #dbe6ed; border-radius: 16px; background: #f4f8fb; padding: 24px; }
.city-builder-toolbar { margin-bottom: 24px; }
.city-builder-eyebrow { color: #466575; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.city-builder-toolbar h3 { color: #12304a; margin: 8px 0; font-size: 24px; }
.city-builder-toolbar p { color: #5b6c7b; }
.city-builder-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.city-builder-status { margin: 12px 0 0; font-size: 13px; }
.city-simple-builder:not(.city-builder-advanced) .city-builder-legacy,
.city-simple-builder:not(.city-builder-advanced) .page-builder-inspector,
.city-simple-builder:not(.city-builder-advanced) .page-layout-row-header,
.city-simple-builder:not(.city-builder-advanced) .page-layout-row-settings,
.city-simple-builder:not(.city-builder-advanced) .page-layout-column-header,
.city-simple-builder:not(.city-builder-advanced) .city-builder-advanced-field,
.city-simple-builder:not(.city-builder-advanced) .page-insert-point,
.city-simple-builder:not(.city-builder-advanced) .ql-color,
.city-simple-builder:not(.city-builder-advanced) .ql-background { display: none !important; }
.city-simple-builder:not(.city-builder-advanced) .page-builder-main { display: block; }
.city-simple-builder:not(.city-builder-advanced) .page-layout-row-builder { border: 0; padding: 0; margin-bottom: 16px; background: transparent; box-shadow: none; }
.city-simple-builder:not(.city-builder-advanced) .page-layout-column { padding: 0; border: 0; background: transparent; min-height: 0; }
.city-simple-builder:not(.city-builder-advanced) .page-layout-row-builder:not(:has([data-page-section-item])) { display: none; }
.city-simple-builder .page-section-card { box-shadow: 0 4px 14px #12304a08; border: 1px solid #dbe6ed; }
.city-simple-builder .page-section-card.is-selected { border-color: #007ac2; }
.city-simple-builder .page-section-card .card-body { background: #fff; }
.city-builder-entry { border: 1px solid #dbe6ed; padding: 16px; border-radius: 12px; margin-bottom: 12px; display: grid; gap: 12px; }
.city-builder-entry legend { float: none; width: auto; font-size: 14px; font-weight: 600; padding: 0 5px; }
.city-builder-entry .form-label { display: block; margin: 0; }
.city-builder-entry .form-control { margin-top: 6px; }
.city-builder-selected-image { max-width: 180px; max-height: 120px; object-fit: contain; }
.city-builder-add-end { display: block; width: 100%; border: 1px dashed #87a8bc; color: #12304a; padding: 18px; border-radius: 12px; background: #f4f8fb; }
.city-builder-page-settings { border: 1px solid #e1e7ed; border-radius: 12px; padding: 16px; }
.city-builder-page-settings summary { cursor: pointer; font-weight: 600; color: #12304a; }
.city-builder-page-settings summary small { font-weight: 400; color: #62778a; margin-left: 12px; }
.city-builder-library, .city-builder-preview-dialog { width: min(1080px, 94vw); max-height: 90vh; border: 0; border-radius: 18px; padding: 28px; overflow: auto; margin: auto; color: #12304a; background: #fff; }
.city-builder-library::backdrop, .city-builder-preview-dialog::backdrop { background: #12304aaa; }
.city-builder-dialog-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 18px; }
.city-builder-dialog-heading h3 { font-size: 23px; }
.city-builder-library-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; margin-top: 20px; }
.city-builder-library-grid > button { text-align: left; background: #fff; border: 1px solid #dce6ec; border-radius: 12px; padding: 12px; display: flex; flex-direction: column; gap: 8px; color: #12304a; }
.city-builder-library-grid > button[hidden] { display: none; }
.city-builder-library-grid > button:hover { border-color: #007ac2; background: #f4f8fb; }
.city-builder-library-grid > button > span:last-child { font-size: 12px; color: #5b6c7b; line-height: 1.6; }
.city-builder-mini { display: flex; gap: 8px; align-items: center; justify-content: center; width: 100%; height: 86px; padding: 16px; background: #edf4f8; border-radius: 8px; }
.city-builder-mini i { display: block; background: #bdd0dd; height: 9px; width: 60%; border-radius: 3px; }
.city-builder-mini i:first-child { background: #173b55; width: 40%; }
.city-builder-mini-text, .city-builder-mini-notice, .city-builder-mini-contact, .city-builder-mini-faq { flex-direction: column; align-items: flex-start; }
.city-builder-mini-notice { border-left: 4px solid #ffd252; }
.city-builder-mini-image i:first-child, .city-builder-mini-image-text i:first-child { height: 54px; background: linear-gradient(145deg, #b7d1df 45%, #48758a 45%, #173b55); }
.city-builder-mini-image i:not(:first-child) { display: none; }
.city-builder-mini-image i:first-child { width: 100%; }
.city-builder-mini-gallery i, .city-builder-mini-links i, .city-builder-mini-news i, .city-builder-mini-documents i { height: 50px; width: 30%; border-bottom: 8px solid #ffd252; }
.city-builder-mini-document i:first-child { height: 52px; width: 38px; background: white; border-top: 5px solid #173b55; }
.city-builder-mini-button i:last-child, .city-builder-mini-agenda i:first-child { height: 28px; background: #ffd252; }
.city-builder-preview-dialog iframe { display: block; border: 1px solid #dbe6ed; height: 65vh; width: 100%; max-width: 100%; margin: auto; background: white; }
.city-builder-models { display: flex; flex-wrap: wrap; gap: 8px; }
.city-simple-builder button:focus-visible, .city-builder-library button:focus-visible { outline: 3px solid #007ac2; outline-offset: 3px; }
@media (max-width: 767px) { .city-simple-builder { padding: 12px; } .city-builder-dialog-heading { flex-direction: column; } .city-builder-library, .city-builder-preview-dialog { padding: 18px; } }

/* Blocs prêts à publier : styles limités aux nouveaux blocs. */
.page-dynamic-sections .city-ready-block { color: #435d70; border-radius: 14px; padding: 28px; background: #fff; margin: 0 0 24px; box-shadow: none; }
.city-ready-block h2, .city-ready-block .sec-title h2 { color: #173b55; font-size: 27px; line-height: 1.3; margin-bottom: 18px; }
.city-ready-block .sec-title { margin-bottom: 22px; }
.city-ready-block .sec-title .title-shape, .city-ready-block .sec-title h6 i { display: none; }
.city-ready-block .sec-title h6, .city-ready-intro { color: #526c7c; font-size: 14px; margin-bottom: 14px; }
.city-ready-block .theme-btn { background: #ffd252; color: #173b55; border-radius: 8px; padding: 12px 20px; }
.city-ready-block figure { margin: 0; }
.city-ready-block img { display: block; width: 100%; border-radius: 10px; }
.city-ready-block figcaption { padding-top: 10px; font-size: 14px; color: #526c7c; }
.city-ready-gallery, .city-ready-links, .city-ready-contact { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,220px),1fr)); gap: 20px; }
.city-ready-gallery img { aspect-ratio: 4/3; object-fit: cover; }
.city-ready-contact dt { font-size: 14px; color: #173b55; margin-bottom: 6px; }
.city-ready-contact dd { margin: 0; overflow-wrap: anywhere; }
.city-ready-links a { padding: 22px; border-radius: 12px; border: 1px solid #d6e7f2; border-top: 3px solid #ffd252; color: #173b55; background: #f3f8fb; }
.city-ready-links a:hover { background: #e5f0f6; }
.city-ready-links strong { display: flex; justify-content: space-between; gap: 16px; }
.city-ready-links p { margin: 12px 0 0; color: #526c7c; }
.city-ready-faq details { border-bottom: 1px solid #d6e7f2; padding: 18px 0; }
.city-ready-faq summary { color: #173b55; font-weight: 600; cursor: pointer; }
.city-ready-faq p { margin: 16px 0 0; }
.page-dynamic-sections .city-ready-notice { background: #edf5f9; border-left: 4px solid #ffd252; }
.city-ready-block a:focus-visible, .city-ready-block summary:focus-visible { outline: 3px solid #007ac2; outline-offset: 4px; }
@media (max-width:575px) { .page-dynamic-sections .city-ready-block { padding: 20px; } .city-ready-block h2 { font-size: 23px; } }
[data-ready-public-preview] .city-article-hero { padding: 48px 0; }
[data-ready-public-preview] .city-standard-section { padding-top: 32px; }

/* Confort de lecture : dialogue natif, cohérent avec la charte municipale. */
dialog.accessibility-panel { inset: 0 0 0 auto; margin: 0; border: 0; border-left: 4px solid #ffd252; border-radius: 18px 0 0 18px; padding: 28px; width: min(460px,100%); max-width: 100%; height: 100dvh; max-height: 100dvh; color: #173b55; background: #f7fafc; transform: none; transition: none; overscroll-behavior: contain; }
dialog.accessibility-panel:not([open]) { display: none; }
dialog.accessibility-panel::backdrop { background: rgb(10 36 56 / 55%); }
.accessibility-panel-header { margin-bottom: 16px; }
.accessibility-panel-kicker { color: #476577; letter-spacing: .06em; font-size: 11px; }
.accessibility-panel h2 { color: #173b55; font-size: 28px; line-height: 1.25; }
.accessibility-panel-close { flex: 0 0 44px; background: #e8f0f5; color: #173b55; font-size: 28px; }
#accessibility-panel-description { font-size: 15px; line-height: 1.65; color: #526575; }
.accessibility-panel fieldset { min-width: 0; margin: 0; border: 0; border-top: 1px solid #dbe6ed; padding: 22px 0; }
.accessibility-panel legend { float: none; width: auto; margin: 0; padding: 0 8px 0 0; color: #173b55; font-size: 17px; font-weight: 700; }
.accessibility-choice-grid { gap: 8px; }
.accessibility-choice-grid button { display: grid; gap: 3px; padding: 12px 6px; border-radius: 10px; border: 1px solid #cbdce7; color: #173b55; background: #fff; }
.accessibility-choice-grid strong { font-size: 18px; }
.accessibility-choice-grid button span { font-size: 12px; font-weight: 400; }
.accessibility-choice-grid button.is-active { background: #173b55; color: #fff; border-color: #173b55; box-shadow: 0 3px 0 #ffd252; }
.accessibility-toggle-list button { border: 1px solid #d6e4ed; border-radius: 12px; background: #fff; color: #173b55; padding: 16px; }
.accessibility-toggle-list button.is-active { background: #edf5fa; border-color: #6994ad; color: #173b55; }
.accessibility-option-copy { display: grid; gap: 5px; }
.accessibility-option-copy strong { font-size: 15px; line-height: 1.4; }
.accessibility-option-copy small { font-size: 12px; font-weight: 400; color: #526575; line-height: 1.6; }
.accessibility-switch { display: block; position: relative; flex: 0 0 42px; width: 42px; height: 24px; border-radius: 14px; background: #8293a0; border: 1px solid #657a88; }
.accessibility-switch::after { content: ''; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; }
[aria-checked="true"] .accessibility-switch { background: #173b55; border-color: #173b55; }
[aria-checked="true"] .accessibility-switch::after { left: 21px; background: #ffd252; }
.accessibility-panel-footer { padding-top: 0; }
.accessibility-reset { width: 100%; min-height: 46px; padding: 12px; border: 1px solid #b7ccd9; border-radius: 10px; background: #fff; color: #173b55; font-weight: 600; font-size: 14px; }
.accessibility-panel-footer > a { display: inline-block; font-size: 13px; color: #005e96; text-decoration: underline; text-underline-offset: 3px; margin-top: 14px; }
.accessibility-panel .accessibility-feedback { color: #173b55; font-size: 13px; min-height: 24px; margin: 0 0 12px; }
.accessibility-panel :is(button,a):focus-visible { outline: 3px solid #007ac2; outline-offset: 4px; }
.accessibility-panel button:hover { border-color: #173b55; }
html.a11y-readable #contenu-principal :is(h1,h2,h3,h4,h5,h6,p,li,dt,dd,button,input,select,textarea,label,a,summary) { font-family: Arial, sans-serif !important; letter-spacing: .03em; word-spacing: .06em; }
html.a11y-readable #contenu-principal :is(p,li,dd) { line-height: 1.85; }
html.a11y-contrast body :is(main,header,footer,nav,section,article,aside,dialog,div,ul,ol,li,figure,figcaption,details,summary,fieldset,legend,p,h1,h2,h3,h4,h5,h6,span,strong,small,label,dt,dd) { background-color: #fff !important; background-image: none !important; color: #111 !important; text-shadow: none !important; }
html.a11y-contrast body *::before, html.a11y-contrast body *::after { background-image: none !important; text-shadow: none !important; }
html.a11y-contrast body :is(a,a span,a strong,a i) { color: #003b70 !important; }
html.a11y-contrast body :is(button,input,select,textarea,.theme-btn) { background: #fff !important; color: #111 !important; border: 2px solid #111 !important; }
html.a11y-contrast body :is(button[aria-pressed="true"],button[aria-checked="true"]) { outline: 3px solid #003b70; outline-offset: 2px; }
html.a11y-contrast body .accessibility-switch { background: #8293a0 !important; }
html.a11y-contrast body [aria-checked="true"] .accessibility-switch { background: #173b55 !important; }
html.a11y-reduce-motion * { animation-play-state: paused !important; }
@media (prefers-reduced-motion: reduce) { html:not(.a11y-motion-allowed) { scroll-behavior: auto; } }
@media (max-width:575px) { dialog.accessibility-panel { padding: 22px 18px; border-radius: 0; } .accessibility-panel h2 { font-size: 25px; } }
.accessibility-panel .accessibility-choice-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.accessibility-panel-header { position: sticky; top: -28px; z-index: 2; background: #f7fafc; padding: 12px 0; }
@media (max-width:575px) { .accessibility-panel-header { top: -22px; } }

/* Verification de connexion par email */
.admin-verification-shell .admin-login-visual { background: linear-gradient(145deg, #073b58, #102e42); }
.admin-verification-shell .admin-login-visual::before { background: #ffd44e; opacity: .2; }
.admin-verification-shell .admin-login-brand-icon { color: #073b58; background: #ffd44e; }
.admin-verification-shell .admin-login-brand-card h1 { font-size: clamp(38px, 4vw, 58px); line-height: 1.1; }
.admin-verification-shell .admin-login-checklist i { color: #ffd44e; }
.admin-verification-shell .admin-login-submit { background: #073b58; box-shadow: 0 12px 25px rgba(7, 59, 88, .18); }
.admin-verification-shell .admin-login-submit:hover { background: #125473; }
.admin-verification-notice a { color: #073b58; text-decoration: underline; font-weight: 600; }
.admin-verification-code { letter-spacing: .3em; font-size: 24px !important; font-weight: 700; }
.admin-verification-help { margin: 10px 0 0; font-size: 13px; line-height: 1.6; color: #496577; }
.admin-verification-notice { padding: 14px 18px; border-left: 3px solid #e5b826; background: #fff9df; color: #123b52; }
.admin-verification-actions { margin-top: 28px; padding-top: 22px; border-top: 1px solid #dce5ea; }
.admin-verification-actions p { color: #496577; font-size: 14px; line-height: 1.6; }
.admin-verification-secondary, .admin-verification-back { width: 100%; padding: 12px 16px; border-radius: 10px; font-weight: 600; cursor: pointer; }
.admin-verification-secondary { background: #eef4f7; color: #073b58; border: 1px solid #c7d8e3; }
.admin-verification-back { margin-top: 8px; background: transparent; color: #496577; border: 1px solid transparent; }
.admin-verification-secondary:hover, .admin-verification-back:hover { background: #e0edf3; color: #073b58; }
.admin-verification-actions button:focus-visible { outline: 3px solid #075b89; outline-offset: 3px; }
