/* =========================================================
   1. ROOT / THEME TOKENS
========================================================= */

:root {
	--site-primary: #0f172a;
	--site-primary-rgb: 15, 23, 42;
	--site-primary-hover: #1e293b;

	--site-secondary: #475569;
	--site-secondary-rgb: 71, 85, 105;
	--site-secondary-hover: #334155;

	--site-accent: #2563eb;
	--site-accent-rgb: 37, 99, 235;
	--site-accent-hover: #1d4ed8;

	--site-success: #198754;
	--site-warning: #f59e0b;
	--site-danger: #dc3545;
	--site-info: #0dcaf0;

	--site-body-bg: #f8fafc;
	--site-surface: #ffffff;
	--site-surface-soft: #f1f5f9;
	--site-surface-muted: #e2e8f0;

	--site-text: #0f172a;
	--site-text-soft: #334155;
	--site-text-muted: #64748b;
	--site-text-inverse: #ffffff;

	--site-border: #dbe3ee;
	--site-border-strong: #cbd5e1;

	--site-shadow-sm: 0 0.125rem 0.25rem rgba(15, 23, 42, 0.06);
	--site-shadow: 0 0.5rem 1.5rem rgba(15, 23, 42, 0.08);
	--site-shadow-lg: 0 1rem 3rem rgba(15, 23, 42, 0.12);

	--site-radius-sm: 0.375rem;
	--site-radius: 0.75rem;
	--site-radius-lg: 1rem;
	--site-radius-xl: 1.25rem;

	--site-transition-fast: 0.18s ease;
	--site-transition: 0.25s ease;
	--site-transition-slow: 0.35s ease;

	--site-header-height: 72px;
	--site-section-padding-y: clamp(3rem, 5vw, 5rem);

	--site-font-sans: Inter, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--site-font-heading: Inter, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--site-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;

	--site-chrome-bg: #ffffff;
	--site-chrome-border: #e2e8f0;

	--site-footer-text: #0f172a;
	--site-footer-text-soft: #64748b;
	--site-footer-heading: #0f172a;
	--site-footer-link: #334155;
	--site-footer-link-hover: #2563eb;
	--site-footer-button-border: #cbd5e1;
}

[data-bs-theme="dark"] {
	color-scheme: dark;

	--site-body-bg: #0b1120;
	--site-surface: #111827;
	--site-surface-soft: #172033;
	--site-surface-muted: #1f2937;

	--site-text: #f8fafc;
	--site-text-soft: #dbe4f0;
	--site-text-muted: #9fb0c4;

	--site-border: #263244;
	--site-border-strong: #334155;

	--site-shadow-sm: 0 0.125rem 0.25rem rgba(2, 6, 23, 0.22);
	--site-shadow: 0 0.75rem 2rem rgba(2, 6, 23, 0.35);
	--site-shadow-lg: 0 1.25rem 3rem rgba(2, 6, 23, 0.45);

	--site-chrome-bg: #0f172a;
	--site-chrome-border: #1e293b;

	--site-footer-text: #e5edf8;
	--site-footer-text-soft: #a7b5c7;
	--site-footer-heading: #ffffff;
	--site-footer-link: #dbe4f0;
	--site-footer-link-hover: #ffffff;
	--site-footer-button-border: #334155;
}


/* =========================================================
   2. GLOBAL / BASE
========================================================= */

html {
	scroll-behavior: smooth;
}

body {
	min-width: 320px;
	background-color: var(--site-body-bg);
	color: var(--site-text);
	font-family: var(--site-font-sans);
	font-size: 1rem;
	line-height: 1.65;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	transition:
		background-color var(--site-transition),
		color var(--site-transition);
}

main {
	position: relative;
}

section {
	position: relative;
}

img,
svg,
video,
canvas {
	max-width: 100%;
	height: auto;
}

img {
	image-rendering: auto;
}

::selection {
	background: rgba(var(--site-accent-rgb), 0.16);
	color: var(--site-text);
}

hr {
	border-color: var(--site-border);
	opacity: 1;
}

pre,
code,
kbd,
samp {
	font-family: var(--site-font-mono);
}

.bg-light-subtle {
	background-color: var(--site-surface-soft) !important;
}

.border-subtle {
	border-color: var(--site-border) !important;
}

.site-header,
.site-footer,
.dropdown-menu,
.navbar-collapse,
.card,
.page-surface,
.page-surface-soft,
.section-shell,
.section-shell-soft,
.form-control,
.form-select,
.input-group-text,
.modal-content,
.accordion-item {
	transition:
		background-color var(--site-transition),
		color var(--site-transition),
		border-color var(--site-transition),
		box-shadow var(--site-transition);
}


/* =========================================================
   3. TYPOGRAPHY
========================================================= */

h1,
h2,
h3,
h4,
h5,
h6,
.display-1,
.display-2,
.display-3,
.display-4,
.display-5,
.display-6 {
	color: var(--site-text);
	font-family: var(--site-font-heading);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.02em;
}

h1,
.display-1,
.display-2,
.display-3 {
	letter-spacing: -0.03em;
}

p {
	margin-bottom: 1rem;
	color: var(--site-text-soft);
}

.lead {
	color: var(--site-text-soft);
	font-weight: 400;
}

.text-muted,
.text-secondary,
.text-body-secondary {
	color: var(--site-text-muted) !important;
}

.small,
small {
	line-height: 1.55;
}

.section-title {
	margin-bottom: 0.75rem;
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 700;
	line-height: 1.2;
	color: var(--site-text);
}

.section-subtitle {
	max-width: 760px;
	margin: 0 auto 2rem;
	color: var(--site-text-muted);
	font-size: 1.05rem;
}

.text-balance {
	text-wrap: balance;
}


/* =========================================================
   4. LINKS
========================================================= */

a {
	color: var(--site-accent);
	text-decoration: none;
	transition:
		color var(--site-transition-fast),
		opacity var(--site-transition-fast),
		background-color var(--site-transition-fast),
		border-color var(--site-transition-fast),
		box-shadow var(--site-transition-fast);
}

a:hover {
	color: var(--site-accent-hover);
	text-decoration: none;
}

a:focus-visible {
	outline: none;
	box-shadow: 0 0 0 0.2rem rgba(var(--site-accent-rgb), 0.2);
	border-radius: 0.35rem;
}

a.text-light-emphasis:hover,
a.nav-link.text-light-emphasis:hover {
	color: #ffffff !important;
}

.stretched-link-clean::after {
	position: absolute;
	inset: 0;
	content: "";
}


/* =========================================================
   5. BUTTONS
========================================================= */

.btn {
	border-radius: 0.75rem;
	font-weight: 600;
	letter-spacing: 0;
	box-shadow: none;
	transition:
		transform var(--site-transition-fast),
		box-shadow var(--site-transition-fast),
		background-color var(--site-transition-fast),
		border-color var(--site-transition-fast),
		color var(--site-transition-fast);
}

.btn:hover {
	transform: translateY(-1px);
}

.btn:active {
	transform: translateY(0);
}

.btn:focus-visible {
	box-shadow: 0 0 0 0.2rem rgba(var(--site-accent-rgb), 0.2);
}

.btn-primary {
	background-color: var(--site-accent);
	border-color: var(--site-accent);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
	background-color: var(--site-accent-hover) !important;
	border-color: var(--site-accent-hover) !important;
}

.btn-outline-secondary {
	color: var(--site-secondary);
	border-color: var(--site-border-strong);
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus {
	background-color: var(--site-surface-soft);
	color: var(--site-text);
	border-color: var(--site-border-strong);
}

.btn-outline-light:hover {
	color: var(--site-primary);
	background-color: #ffffff;
}

.btn-sm {
	border-radius: 0.625rem;
}

.btn-lg {
	border-radius: 0.875rem;
}


/* =========================================================
   6. FORMS
========================================================= */

.form-control,
.form-select,
.form-check-input {
	border-color: var(--site-border-strong);
}

.form-control,
.form-select {
	min-height: 48px;
	border-radius: 0.75rem;
	color: var(--site-text);
	background-color: #ffffff;
	box-shadow: none;
	transition:
		border-color var(--site-transition-fast),
		box-shadow var(--site-transition-fast),
		background-color var(--site-transition-fast);
}

.form-control::placeholder,
.form-select::placeholder,
textarea::placeholder {
	color: #94a3b8;
}

.form-control:focus,
.form-select:focus {
	border-color: rgba(var(--site-accent-rgb), 0.45);
	box-shadow: 0 0 0 0.2rem rgba(var(--site-accent-rgb), 0.14);
}

textarea.form-control {
	min-height: 140px;
	resize: vertical;
}

.form-label {
	margin-bottom: 0.45rem;
	font-weight: 600;
	color: var(--site-text-soft);
}

.form-text {
	color: var(--site-text-muted);
}

.input-group-text {
	border-color: var(--site-border-strong);
	background-color: var(--site-surface-soft);
	color: var(--site-text-soft);
}


/* =========================================================
   7. LAYOUT
========================================================= */

.container,
.container-sm,
.container-md,
.container-lg,
.container-xl,
.container-xxl {
	position: relative;
}

.page-section {
	padding-top: var(--site-section-padding-y);
	padding-bottom: var(--site-section-padding-y);
}

.page-section-sm {
	padding-top: clamp(2rem, 4vw, 3rem);
	padding-bottom: clamp(2rem, 4vw, 3rem);
}

.page-section-lg {
	padding-top: clamp(4rem, 7vw, 6rem);
	padding-bottom: clamp(4rem, 7vw, 6rem);
}

.page-surface {
	background-color: var(--site-surface);
	border: 1px solid var(--site-border);
	border-radius: var(--site-radius-lg);
	box-shadow: var(--site-shadow-sm);
}

.page-surface-soft {
	background-color: var(--site-surface-soft);
	border: 1px solid var(--site-border);
	border-radius: var(--site-radius-lg);
}

.content-narrow {
	max-width: 820px;
	margin-inline: auto;
}


/* =========================================================
   8. HEADER / NAVBAR
========================================================= */

.site-header {
	background-color: var(--site-chrome-bg);
	border-color: var(--site-chrome-border) !important;
	backdrop-filter: saturate(180%) blur(8px);
}

.site-navbar {
	min-height: var(--site-header-height);
}

.site-header .navbar-brand {
	color: var(--site-text);
	font-size: 1.05rem;
	letter-spacing: -0.01em;
}

.site-header .navbar-brand:hover {
	color: var(--site-text);
}

.site-header .navbar-brand img {
	flex-shrink: 0;
	object-fit: contain;
}

.site-header .nav-link {
	position: relative;
	color: var(--site-text-soft);
	font-weight: 500;
	padding-inline: 0.75rem !important;
	padding-block: 0.5rem !important;
	border-radius: 0.65rem;
}

.site-header .nav-link:hover {
	color: var(--site-text);
	background-color: rgba(var(--site-primary-rgb), 0.04);
}

.site-header .nav-link.active {
	color: var(--site-accent) !important;
	background-color: rgba(var(--site-accent-rgb), 0.08);
}

.site-header .dropdown-menu {
	border: 1px solid var(--site-border);
	border-radius: 0.85rem;
	box-shadow: var(--site-shadow);
	padding: 0.5rem;
	background-color: var(--site-surface);
}

.site-header .dropdown-item {
	border-radius: 0.65rem;
	padding: 0.55rem 0.75rem;
	color: var(--site-text-soft);
	font-weight: 500;
}

.site-header .dropdown-item:hover,
.site-header .dropdown-item:focus {
	background-color: rgba(var(--site-accent-rgb), 0.08);
	color: var(--site-text);
}

.site-header .dropdown-item.active,
.site-header .dropdown-item:active {
	background-color: rgba(var(--site-accent-rgb), 0.12);
	color: var(--site-accent);
}

.site-header .navbar-icon-btn {
	width: 42px;
	height: 42px;
	padding: 0;
	border: 0 !important;
	border-radius: 0.75rem;
	background-color: transparent !important;
	color: var(--site-text-soft);
	box-shadow: none !important;
}

.site-header .navbar-icon-btn i {
	font-size: 1.2rem;
	line-height: 1;
}

.site-header .navbar-icon-btn:hover,
.site-header .navbar-icon-btn:focus,
.site-header .navbar-icon-btn:active {
	background-color: transparent !important;
	color: var(--site-text);
	border: 0 !important;
	box-shadow: none !important;
	transform: none !important;
}

.site-header .navbar-icon-btn::after {
	margin-left: 0.35rem;
}

.site-header .navbar-icon-btn::after {
	display: none !important;
	content: none !important;
}

.site-header .navbar-toggler {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.site-header .navbar-toggler:focus {
	box-shadow: none !important;
}

.site-header .navbar-toggler-icon {
	width: 1.25rem;
	height: 1.25rem;
}

.site-header .theme-toggle-icon {
	font-size: 1.1rem;
	line-height: 1;
}

.site-header .navbar-mobile-actions .dropdown-menu {
	min-width: 13rem;
}

.site-header .navbar-mobile-panel {
	width: 100%;
}

@media (min-width: 992px) {
	.site-header .navbar-mobile-panel {
		display: flex;
		justify-content: flex-end;
		align-items: center;
	}
}


/* =========================================================
   9. FOOTER
========================================================= */

.site-footer {
	background-color: var(--site-chrome-bg);
	border-color: var(--site-chrome-border) !important;
	color: var(--site-footer-text);
}

.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer h5,
.site-footer h6 {
	color: var(--site-footer-heading);
}

.site-footer .footer-heading {
	letter-spacing: 0.04em;
}

.site-footer .footer-brand {
	color: var(--site-footer-heading);
}

.site-footer .footer-brand img {
	flex-shrink: 0;
	object-fit: contain;
}

.site-footer .footer-text {
	color: var(--site-footer-text-soft);
}

.site-footer .footer-meta {
	color: var(--site-footer-text-soft);
}

.site-footer .footer-meta strong {
	color: var(--site-footer-heading);
}

.site-footer .footer-links .nav-link,
.site-footer .footer-contact-list,
.site-footer .footer-contact-list a {
	font-size: 0.95rem;
	line-height: 1.6;
}

.site-footer .footer-link,
.site-footer .footer-contact-link {
	color: var(--site-footer-link);
	transition:
		color var(--site-transition-fast),
		transform var(--site-transition-fast);
}

.site-footer .footer-link:hover,
.site-footer .footer-contact-link:hover {
	color: var(--site-footer-link-hover);
	transform: translateX(2px);
}

.site-footer .footer-social-btn {
	border-color: var(--site-footer-button-border);
	color: var(--site-footer-link);
}

.site-footer .footer-social-btn:hover,
.site-footer .footer-social-btn:focus {
	color: var(--site-footer-link-hover);
	background-color: var(--site-surface-soft);
	border-color: var(--site-footer-button-border);
}

.site-footer hr {
	opacity: 0.18;
}


/* =========================================================
   10. FLASH MESSAGES / ALERTS
========================================================= */

.flash-wrapper {
	position: fixed;
	top: 1rem;
	left: 50%;
	transform: translateX(-50%);
	z-index: 1055;
	width: 100%;
	max-width: 560px;
	padding: 0 1rem;
	pointer-events: none;
}

.flash-message {
	pointer-events: auto;
	border: 1px solid transparent;
	border-radius: var(--site-radius);
	box-shadow: var(--site-shadow-lg);
	padding: 1rem 1.1rem;
	backdrop-filter: blur(10px);

	/* animation */
	transform: translateY(-120%);
	opacity: 0;
	animation: flashSlideDown 0.4s ease forwards;
}

@keyframes flashSlideDown {
	to {
		transform: translateY(0);
		opacity: 1;
	}
}

.flash-message.hide {
	animation: flashSlideUp 0.4s ease forwards;
}

@keyframes flashSlideUp {
	to {
		transform: translateY(-120%);
		opacity: 0;
	}
}

/* success */

.alert-success.flash-message {
	background-color: #e8f7ef;
	border-color: #b7e4c7;
	color: #0f5132;
}

/* danger */

.alert-danger.flash-message {
	background-color: #fdebec;
	border-color: #f5c2c7;
	color: #842029;
}

/* warning */

.alert-warning.flash-message {
	background-color: #fff4db;
	border-color: #ffe08a;
	color: #7a4b00;
}

/* info */

.alert-info.flash-message {
	background-color: #e8f6fb;
	border-color: #9ee3f5;
	color: #055160;
}

/* dark theme adjustments */

[data-bs-theme="dark"] .alert-success.flash-message {
	background-color: #123524;
	border-color: #1f6b48;
	color: #d8f3e4;
}

[data-bs-theme="dark"] .alert-danger.flash-message {
	background-color: #3a1b21;
	border-color: #7b2d3a;
	color: #ffd9de;
}

[data-bs-theme="dark"] .alert-warning.flash-message {
	background-color: #3d2d10;
	border-color: #8a6a20;
	color: #ffe7b3;
}

[data-bs-theme="dark"] .alert-info.flash-message {
	background-color: #12303a;
	border-color: #1f6d7f;
	color: #d6f6ff;
}

.flash-message .btn-close {
	opacity: 0.75;
}

.flash-message .btn-close:hover {
	opacity: 1;
}

[data-bs-theme="dark"] .flash-message .btn-close {
	filter: invert(1) grayscale(100%) brightness(200%);
}


/* =========================================================
   11. CARDS / PANELS / BOXES
========================================================= */

.card {
	border: 1px solid var(--site-border);
	border-radius: var(--site-radius-lg);
	box-shadow: var(--site-shadow-sm);
	background-color: var(--site-surface);
	transition:
		transform var(--site-transition),
		box-shadow var(--site-transition),
		border-color var(--site-transition);
}

.card:hover {
	box-shadow: var(--site-shadow);
}

.card.border-0 {
	border: 0 !important;
}

.card .card-title,
.card h2,
.card h3 {
	color: var(--site-text);
}

.card .card-text {
	color: var(--site-text-soft);
}

.surface-card {
	background-color: var(--site-surface);
	border: 1px solid var(--site-border);
	border-radius: var(--site-radius-lg);
	box-shadow: var(--site-shadow-sm);
}


/* =========================================================
   12. BADGES / LISTS / TABLES
========================================================= */

.badge {
	font-weight: 600;
	letter-spacing: 0.01em;
}

.list-group-item {
	border-color: var(--site-border);
}

.table {
	--bs-table-border-color: var(--site-border);
	color: var(--site-text-soft);
}

.table thead th {
	color: var(--site-text);
	font-weight: 700;
}


/* =========================================================
   13. PAGE SECTIONS
========================================================= */

.hero {
	position: relative;
	overflow: hidden;
}

.hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at top right, rgba(var(--site-accent-rgb), 0.12), transparent 35%),
		radial-gradient(circle at bottom left, rgba(var(--site-primary-rgb), 0.08), transparent 30%);
	pointer-events: none;
}

.hero > .container {
	position: relative;
	z-index: 1;
}

.section-shell {
	position: relative;
	padding: clamp(2.5rem, 4vw, 4rem);
	background-color: var(--site-surface);
	border: 1px solid var(--site-border);
	border-radius: var(--site-radius-xl);
	box-shadow: var(--site-shadow-sm);
}

.section-shell-soft {
	background-color: var(--site-surface-soft);
	border: 1px solid var(--site-border);
	border-radius: var(--site-radius-xl);
	padding: clamp(2rem, 4vw, 3rem);
}

.icon-box {
	width: 3rem;
	height: 3rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 0.85rem;
	background-color: rgba(var(--site-accent-rgb), 0.12);
	color: var(--site-accent);
	font-size: 1.25rem;
}

.home-hero {
	background-color: var(--site-surface-soft);
}

.home-hero-text {
	max-width: 720px;
	color: var(--site-text-soft);
}

.home-feature-card {
	background-color: var(--site-surface);
	border: 1px solid var(--site-border) !important;
	border-radius: var(--site-radius-lg);
	box-shadow: var(--site-shadow-sm);
}

.home-feature-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--site-shadow);
}

.home-feature-text {
	color: var(--site-text-muted);
}

.home-cta-section {
	background-color: var(--site-surface-soft);
}

.home-cta-text {
	color: var(--site-text-muted);
	font-size: 1.05rem;
}

.home-faq-accordion .accordion-item + .accordion-item {
	margin-top: 0.75rem;
}

.home-faq-answer {
	color: var(--site-text-soft);
	line-height: 1.7;
}

.about-hero {
	background-color: var(--site-surface-soft);
}

.about-hero-text {
	max-width: 700px;
	color: var(--site-text-soft);
}

.about-section-text {
	color: var(--site-text-soft);
	line-height: 1.75;
}

.about-feature-card {
	background-color: var(--site-surface);
	border: 1px solid var(--site-border) !important;
	border-radius: var(--site-radius-lg);
	box-shadow: var(--site-shadow-sm);
}

.about-feature-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--site-shadow);
}

.about-card-text {
	color: var(--site-text-muted);
}

.services-hero {
	background-color: var(--site-surface-soft);
}

.services-hero-text {
	max-width: 700px;
	color: var(--site-text-soft);
}

.services-card {
	background-color: var(--site-surface);
	border: 1px solid var(--site-border) !important;
	border-radius: var(--site-radius-lg);
	box-shadow: var(--site-shadow-sm);
}

.services-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--site-shadow);
}

.services-card-text {
	color: var(--site-text-muted);
}

.services-section-text {
	color: var(--site-text-soft);
	line-height: 1.75;
}

.contact-hero {
	background-color: var(--site-surface-soft);
}

.contact-hero-text {
	max-width: 700px;
	color: var(--site-text-soft);
}

.contact-sidebar-text,
.contact-form-text,
.contact-sidebar-note,
.contact-detail-text {
	color: var(--site-text-muted);
}

.contact-detail-item strong {
	color: var(--site-text);
	font-weight: 700;
}

.contact-detail-link {
	color: var(--site-accent);
	word-break: break-word;
}

.contact-detail-link:hover {
	color: var(--site-accent-hover);
}

.contact-privacy-check .form-check-label {
	color: var(--site-text-soft);
	line-height: 1.6;
}

.contact-map-shell iframe {
	display: block;
	width: 100%;
	background-color: var(--site-surface-soft);
}

.auth-dashboard-hero {
	background:
		linear-gradient(135deg, rgba(var(--site-accent-rgb), 0.08), rgba(var(--site-primary-rgb), 0.06)),
		var(--site-surface-soft);
}

.dashboard-hero-shell {
	padding: clamp(2rem, 4vw, 3rem);
	background:
		linear-gradient(135deg, rgba(var(--site-accent-rgb), 0.10), rgba(var(--site-primary-rgb), 0.06)),
		var(--site-surface);
	border: 1px solid var(--site-border);
	border-radius: var(--site-radius-xl);
	box-shadow: var(--site-shadow);
}

.dashboard-badge {
	font-weight: 700;
	letter-spacing: 0.01em;
}

.dashboard-hero-text {
	max-width: 760px;
	color: var(--site-text-soft);
}

.dashboard-user-card {
	padding: 1.5rem;
	background-color: rgba(255, 255, 255, 0.55);
	border: 1px solid var(--site-border);
	border-radius: var(--site-radius-lg);
	text-align: center;
	backdrop-filter: blur(10px);
}

[data-bs-theme="dark"] .dashboard-user-card {
	background-color: rgba(15, 23, 42, 0.45);
}

.dashboard-user-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 4rem;
	height: 4rem;
	margin-bottom: 1rem;
	border-radius: 50%;
	background-color: rgba(var(--site-accent-rgb), 0.12);
	color: var(--site-accent);
	font-size: 2rem;
}

.dashboard-user-name {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--site-text);
}

.dashboard-user-meta {
	margin-top: 0.35rem;
	font-size: 0.95rem;
	color: var(--site-text-muted);
}

.dashboard-section,
.dashboard-form-shell,
.dashboard-side-shell {
	height: 100%;
}

.dashboard-info-card {
	padding: 1.1rem 1.15rem;
	background-color: var(--site-surface);
	border: 1px solid var(--site-border);
	border-radius: var(--site-radius-lg);
	box-shadow: var(--site-shadow-sm);
}

.dashboard-info-card-primary {
	background: linear-gradient(135deg, rgba(var(--site-accent-rgb), 0.10), transparent), var(--site-surface);
}

.dashboard-info-card-accent {
	background: linear-gradient(135deg, rgba(var(--site-primary-rgb), 0.08), transparent), var(--site-surface);
}

.dashboard-info-label {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--site-text-muted);
	margin-bottom: 0.35rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.dashboard-info-value {
	color: var(--site-text);
	font-size: 1rem;
	font-weight: 700;
	word-break: break-word;
}

@media (max-width: 767.98px) {
	.dashboard-hero-shell,
	.dashboard-user-card,
	.dashboard-info-card {
		padding: 1.25rem;
	}
}


/* =========================================================
   14. MODALS / ACCORDIONS / NAV TABS
========================================================= */

.modal-content {
	border: 0;
	border-radius: var(--site-radius-lg);
	box-shadow: var(--site-shadow-lg);
}

.modal-header,
.modal-footer {
	border-color: var(--site-border);
}

.accordion {
	--bs-accordion-border-color: var(--site-border);
	--bs-accordion-btn-focus-box-shadow: 0 0 0 0.2rem rgba(var(--site-accent-rgb), 0.14);
	--bs-accordion-active-bg: rgba(var(--site-accent-rgb), 0.06);
	--bs-accordion-active-color: var(--site-text);
}

.accordion-item {
	border-radius: var(--site-radius) !important;
	overflow: hidden;
}

.accordion-button {
	font-weight: 600;
	color: var(--site-text);
}

.nav-tabs {
	border-bottom-color: var(--site-border);
}

.nav-tabs .nav-link {
	border-radius: 0.75rem 0.75rem 0 0;
	color: var(--site-text-soft);
}

.nav-tabs .nav-link.active {
	color: var(--site-text);
	border-color: var(--site-border) var(--site-border) #ffffff;
}


/* =========================================================
   15. UTILITIES
========================================================= */

.shadow-soft {
	box-shadow: var(--site-shadow-sm) !important;
}

.shadow-medium {
	box-shadow: var(--site-shadow) !important;
}

.rounded-soft {
	border-radius: var(--site-radius) !important;
}

.rounded-large {
	border-radius: var(--site-radius-lg) !important;
}

.border-soft {
	border: 1px solid var(--site-border) !important;
}

.text-soft {
	color: var(--site-text-soft) !important;
}

.text-muted-custom {
	color: var(--site-text-muted) !important;
}

.bg-surface {
	background-color: var(--site-surface) !important;
}

.bg-surface-soft {
	background-color: var(--site-surface-soft) !important;
}

.hover-lift {
	transition:
		transform var(--site-transition),
		box-shadow var(--site-transition);
}

.hover-lift:hover {
	transform: translateY(-3px);
	box-shadow: var(--site-shadow);
}


/* =========================================================
   16. RESPONSIVE
========================================================= */

@media (max-width: 991.98px) {
	.site-header .navbar-collapse {
		margin-top: 0;
		padding: 0;
		border: 0;
		box-shadow: none;
		background: transparent;
		overflow: hidden;
	}

	.site-header .navbar-mobile-panel {
		margin-top: 1rem;
		padding: 1rem;
		background-color: var(--site-surface);
		border: 1px solid var(--site-border);
		border-radius: var(--site-radius-lg);
		box-shadow: var(--site-shadow);
	}

	.site-header .navbar-collapse.collapsing {
		overflow: hidden;
	}

	.site-header .nav-link {
		width: 100%;
	}

	.site-header .dropdown-menu {
		box-shadow: none;
		border: 1px solid var(--site-border);
	}

	.site-header .navbar-brand {
		font-size: 1rem;
	}

	.site-header .navbar-mobile-actions {
		margin-left: auto;
	}

	.site-header .navbar-toggler.d-none.d-lg-inline-flex {
		display: none !important;
	}

	.site-footer {
		text-align: center;
	}

	.site-footer .footer-brand {
		justify-content: center;
		text-align: center;
	}

	.site-footer .col-lg-4.col-md-6:first-child {
		text-align: center;
	}

	.site-footer .footer-socials {
		justify-content: center;
	}
}

@media (max-width: 767.98px) {
	.flash-wrapper {
		top: 0.75rem;
		max-width: 95%;
	}

	.flash-message {
		padding: 0.9rem 0.95rem;
		font-size: 0.95rem;
		line-height: 1.5;
	}

	.home-hero-text,
	.home-cta-text {
		font-size: 1rem;
	}

	.home-feature-card .card-body {
		padding: 1.25rem !important;
	}

	.about-hero-text,
	.about-section-text {
		font-size: 1rem;
	}

	.about-feature-card .card-body {
		padding: 1.25rem !important;
	}

	.services-hero-text,
	.services-section-text {
		font-size: 1rem;
	}

	.services-card .card-body {
		padding: 1.25rem !important;
	}

	.contact-hero-text,
	.contact-sidebar-text,
	.contact-form-text,
	.contact-sidebar-note,
	.contact-detail-text,
	.contact-privacy-check .form-check-label {
		font-size: 1rem;
	}

	.contact-sidebar,
	.contact-form-shell {
		padding: 1.25rem !important;
	}


}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}