/* ============================================================
   SOLEY CHIROPRACTIC — Global Styles
   Loaded on every page. Defines variables, base, buttons,
   navbar, topbar, and footer shared across all templates.
   ============================================================ */

/* ---- Custom Properties --------------------------------------- */
:root {
	--soley-navy:        #1e3a5f;
	--soley-navy-dark:   #152b47;
	--soley-navy-light:  #2a4d7a;
	--soley-accent:      #e8673a;
	--soley-accent-dark: #c9512a;
	--soley-cream:       #f8f5f0;
	--soley-light:       #eef2f7;
	--soley-white:       #ffffff;
	--soley-text:        #2d3748;
	--soley-muted:       #6b7280;
	--soley-border:      #e2e8f0;
	--soley-radius:      12px;
	--soley-shadow:      0 4px 24px rgba(30,58,95,.10);
	--soley-shadow-lg:   0 8px 48px rgba(30,58,95,.16);
	--transition:        all 0.3s ease;
}

/* ---- Base ---------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

body {
	font-family: 'Inter', system-ui, -apple-system, sans-serif;
	color: var(--soley-text);
	background: var(--soley-white);
	line-height: 1.65;
}

img { max-width: 100%; height: auto; }

section { padding: 80px 0; }

h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 700; color: var(--soley-navy); }

.section-cream { background: var(--soley-cream); }
.section-white  { background: var(--soley-white); }

.section-label {
	font-size: .85rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--soley-accent);
	margin-bottom: .5rem;
}
.section-label.light { color: rgba(255,255,255,.7); }

.section-subtext {
	font-size: 1.05rem;
	color: var(--soley-muted);
	max-width: 560px;
	margin: 1rem auto 0;
}

/* ---- Buttons ------------------------------------------------- */
.btn-accent {
	background: var(--soley-accent);
	border-color: var(--soley-accent);
	color: #fff;
	font-weight: 600;
	border-radius: 6px;
	transition: var(--transition);
}
.btn-accent:hover, .btn-accent:focus {
	background: var(--soley-accent-dark);
	border-color: var(--soley-accent-dark);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 4px 16px rgba(232,103,58,.35);
}

.btn-navy {
	background: var(--soley-navy);
	border-color: var(--soley-navy);
	color: #fff;
	font-weight: 600;
	border-radius: 6px;
	transition: var(--transition);
}
.btn-navy:hover {
	background: var(--soley-navy-dark);
	border-color: var(--soley-navy-dark);
	color: #fff;
	transform: translateY(-2px);
}

.btn-outline-navy {
	border: 2px solid var(--soley-navy);
	color: var(--soley-navy);
	font-weight: 600;
	border-radius: 6px;
	background: transparent;
	transition: var(--transition);
}
.btn-outline-navy:hover {
	background: var(--soley-navy);
	color: #fff;
	transform: translateY(-2px);
}

.btn-outline-light {
	border: 2px solid rgba(255,255,255,.6) !important;
	color: rgba(255,255,255,.9) !important;
	font-weight: 600;
	border-radius: 6px;
	transition: var(--transition);
}
.btn-outline-light:hover {
	background: rgba(255,255,255,.15) !important;
	border-color: #fff !important;
	color: #fff !important;
}

/* ---- Top Bar ------------------------------------------------- */
.header-topbar {
	background: var(--soley-navy-dark);
	color: rgba(255,255,255,.8);
	font-size: .82rem;
	padding: 6px 0;
}
.topbar-tagline { opacity: .8; }
.topbar-social {
	color: rgba(255,255,255,.7);
	font-size: 1rem;
	transition: var(--transition);
	text-decoration: none;
}
.topbar-social:hover { color: var(--soley-accent); }

/* ---- Navbar -------------------------------------------------- */
#mainNav {
	background: var(--soley-navy);
	padding: 14px 0;
	transition: var(--transition);
	box-shadow: 0 2px 16px rgba(0,0,0,.15);
}
#mainNav.scrolled {
	padding: 8px 0;
	box-shadow: 0 4px 24px rgba(0,0,0,.2);
}

.brand-name {
	font-size: 1.25rem;
	font-weight: 700;
	color: #fff;
	letter-spacing: -.01em;
}
.navbar-brand img { max-height: 48px; width: auto; }

.navbar-nav .nav-link {
	color: rgba(255,255,255,.85) !important;
	font-weight: 500;
	font-size: .95rem;
	padding: 8px 14px !important;
	transition: var(--transition);
}
.navbar-nav .nav-link:hover,
.navbar-nav .nav-link.active {
	color: var(--soley-accent) !important;
}

.dropdown-menu {
	background: var(--soley-navy-dark);
	border: none;
	border-radius: var(--soley-radius);
	box-shadow: var(--soley-shadow-lg);
	min-width: 200px;
}
.dropdown-item {
	color: rgba(255,255,255,.8);
	font-size: .9rem;
	padding: 8px 18px;
	transition: var(--transition);
}
.dropdown-item:hover {
	background: var(--soley-navy-light);
	color: #fff;
}

/* ---- Footer -------------------------------------------------- */
#site-footer { background: var(--soley-navy-dark); }

.footer-main { padding: 64px 0 48px; }

.footer-brand-name {
	font-size: 1.4rem;
	font-weight: 800;
	color: #fff;
}
.footer-brand img { max-height: 48px; filter: brightness(0) invert(1); }

.footer-tagline {
	color: rgba(255,255,255,.6);
	font-size: .9rem;
	line-height: 1.65;
}

.footer-social { display: flex; gap: 14px; }
.footer-social a {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: rgba(255,255,255,.1);
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(255,255,255,.7);
	font-size: 1rem;
	text-decoration: none;
	transition: var(--transition);
}
.footer-social a:hover { background: var(--soley-accent); color: #fff; }

.footer-heading {
	color: #fff;
	font-size: .95rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	margin-bottom: 1.25rem;
}

.footer-nav-list { list-style: none; padding: 0; margin: 0; }
.footer-nav-list li { padding: 4px 0; }
.footer-nav-list a {
	color: rgba(255,255,255,.65);
	text-decoration: none;
	font-size: .9rem;
	transition: var(--transition);
}
.footer-nav-list a:hover { color: var(--soley-accent); padding-left: 4px; }

.footer-hours-list { list-style: none; padding: 0; margin: 0; }
.footer-hours-list li {
	display: flex;
	justify-content: space-between;
	font-size: .88rem;
	color: rgba(255,255,255,.65);
	padding: 5px 0;
	border-bottom: 1px solid rgba(255,255,255,.07);
}
.footer-hours-list li:last-child { border-bottom: none; }
.footer-hours-list li span:first-child { font-weight: 600; color: rgba(255,255,255,.85); }

.footer-address { color: rgba(255,255,255,.65); font-size: .9rem; line-height: 1.75; }
.footer-address a { color: rgba(255,255,255,.65); text-decoration: none; transition: var(--transition); }
.footer-address a:hover { color: var(--soley-accent); }
.footer-address .bi { color: var(--soley-accent); }

.footer-bottom {
	background: var(--soley-navy-dark);
	border-top: 1px solid rgba(255,255,255,.1);
	padding: 18px 0;
	font-size: .85rem;
	color: rgba(255,255,255,.45);
}
.footer-credit a { color: rgba(255,255,255,.45); text-decoration: none; }
.footer-credit a:hover { color: var(--soley-accent); }

/* ---- CTA Band (shared) --------------------------------------- */
.cta-band {
	background: var(--soley-white);
	border-radius: var(--soley-radius);
	padding: 48px 40px;
	box-shadow: var(--soley-shadow-lg);
	border-left: 5px solid var(--soley-accent);
}
.cta-band h2 { margin-bottom: .5rem; }
.cta-band p  { color: var(--soley-muted); margin-bottom: 0; }

/* ---- Responsive ---------------------------------------------- */
@media (max-width: 991.98px) {
	section { padding: 60px 0; }
	#mainNav { padding: 10px 0; }
}
@media (max-width: 767.98px) {
	.cta-band { padding: 32px 24px; }
}
