/* myPracticeWeb theme — fallback styles only. Elementor controls Elementor content. */
/* Declared on body too: Elementor defines its --e-global-* variables on the body
   (.elementor-kit-N), so references only resolve there. */
:root, body {
	/* Colors and fonts follow Elementor Global Colors/Fonts (Site Settings) when available. */
	--mpw-container: 1200px;
	--mpw-primary: var(--e-global-color-primary, #1a6fb0);
	--mpw-accent: var(--e-global-color-accent, var(--mpw-primary));
	--mpw-text: var(--e-global-color-text, #1f2933);
	--mpw-heading: var(--e-global-color-secondary, #102a43);
	--mpw-bg: #ffffff;
	--mpw-muted: #52606d;
	--mpw-border: #e4e7eb;
	--mpw-font: var(--e-global-typography-text-font-family, -apple-system), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--mpw-heading-font: var(--e-global-typography-primary-font-family, inherit), var(--mpw-font);
	--mpw-font-size: 17px;
	--mpw-gutter: 20px;
	--mpw-radius: 6px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	background: var(--mpw-bg);
	color: var(--mpw-text);
	font-family: var(--mpw-font);
	font-size: var(--mpw-font-size);
	line-height: 1.65;
	text-rendering: optimizeLegibility;
}
img, video, iframe { max-width: 100%; height: auto; }
a { color: var(--mpw-primary); text-underline-offset: 2px; }
a:hover { text-decoration-thickness: 2px; }
h1, h2, h3, h4, h5, h6 { color: var(--mpw-heading); font-family: var(--mpw-heading-font); line-height: 1.25; margin: 1.4em 0 .5em; }
h1 { font-size: 2.2em; } h2 { font-size: 1.7em; } h3 { font-size: 1.35em; }
p { margin: 0 0 1em; }
/* Elementor text widgets: spacing comes from the layout, not from the last paragraph. */
.elementor-widget-text-editor p:last-child, .elementor-widget-text-editor ul:last-child, .elementor-widget-text-editor ol:last-child, .elementor-widget-text-editor table:last-child { margin-bottom: 0; }
/* Elementor text blocks: no stray space after the last paragraph (spacing comes from Elementor). */
.elementor-widget-text-editor p:last-child, .elementor-widget-text-editor ul:last-child { margin-bottom: 0; }
:focus-visible { outline: 3px solid var(--mpw-primary); outline-offset: 2px; }

/* Accessibility */
.screen-reader-text {
	border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; word-wrap: normal !important;
}
.skip-link:focus {
	clip: auto; clip-path: none; height: auto; width: auto; margin: 0;
	position: fixed !important; top: 8px; left: 8px; z-index: 100000;
	padding: 12px 18px; background: #fff; color: #000; border-radius: var(--mpw-radius);
	box-shadow: 0 2px 10px rgba(0,0,0,.25);
}
#content:focus { outline: none; }

/* Layout */
.mpw-container { width: 100%; max-width: var(--mpw-container); margin: 0 auto; padding-left: var(--mpw-gutter); padding-right: var(--mpw-gutter); }
.mpw-layout-boxed { background: #f0f2f5; }
.mpw-layout-boxed #page { max-width: calc(var(--mpw-container) + 80px); margin: 0 auto; background: var(--mpw-bg); box-shadow: 0 0 30px rgba(0,0,0,.06); min-height: 100vh; }
.mpw-main-wrap { display: grid; grid-template-columns: minmax(0, 1fr); gap: 48px; padding-top: 48px; padding-bottom: 64px; }
.mpw-sidebar-right .mpw-main-wrap { grid-template-columns: minmax(0, 1fr) 300px; }
.mpw-sidebar-left .mpw-main-wrap { grid-template-columns: 300px minmax(0, 1fr); }
.mpw-sidebar-left #secondary { order: -1; }
.mpw-elementor-main { width: 100%; }
.mpw-elementor-main .entry-content > :last-child { margin-bottom: 0; }

/* Fallback header */
.mpw-fallback-header { border-bottom: 1px solid var(--mpw-border); background: var(--mpw-bg); }
.site-header__inner { display: flex; align-items: center; gap: 24px; min-height: 76px; flex-wrap: wrap; }
.site-branding { margin-right: auto; }
.site-title { margin: 0; font-size: 1.35em; font-weight: 700; }
.site-title a { color: var(--mpw-heading); text-decoration: none; }
.site-description { margin: 0; font-size: .85em; color: var(--mpw-muted); }
.custom-logo { max-height: 64px; width: auto; display: block; }
.main-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; flex-wrap: wrap; }
.main-navigation li { position: relative; }
.main-navigation a { display: block; padding: 10px 14px; color: var(--mpw-heading); text-decoration: none; font-weight: 500; border-radius: var(--mpw-radius); }
.main-navigation a:hover, .main-navigation .current-menu-item > a { color: var(--mpw-primary); background: rgba(0,0,0,.03); }
.main-navigation .sub-menu { display: none; position: absolute; top: 100%; left: 0; min-width: 220px; flex-direction: column; background: var(--mpw-bg); border: 1px solid var(--mpw-border); border-radius: var(--mpw-radius); padding: 6px; z-index: 50; box-shadow: 0 8px 24px rgba(0,0,0,.08); }
.main-navigation li:hover > .sub-menu, .main-navigation li:focus-within > .sub-menu { display: flex; }
.menu-toggle { display: none; background: none; border: 1px solid var(--mpw-border); border-radius: var(--mpw-radius); width: 44px; height: 44px; cursor: pointer; position: relative; }
.menu-toggle__bar, .menu-toggle__bar::before, .menu-toggle__bar::after { display: block; position: absolute; left: 11px; width: 20px; height: 2px; background: var(--mpw-heading); content: ""; transition: transform .2s; }
.menu-toggle__bar { top: 21px; } .menu-toggle__bar::before { top: -6px; left: 0; } .menu-toggle__bar::after { top: 6px; left: 0; }

/* Fallback footer */
.mpw-fallback-footer { border-top: 1px solid var(--mpw-border); padding: 32px 0; font-size: .9em; color: var(--mpw-muted); }
.site-footer__inner { display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; align-items: center; }
.footer-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 18px; }
.site-info { margin: 0; }

/* Title banner (blog, archives, search, single posts) */
.mpw-hero { background: var(--mpw-heading); color: #fff; padding: 72px 0 60px; text-align: center; }
.mpw-hero .mpw-container { max-width: 900px; }
.mpw-hero__eyebrow { margin: 0 0 10px; color: var(--mpw-accent); font-size: .8em; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; }
.mpw-hero .mpw-hero__title { color: #fff; margin: 0; font-size: 2.4em; }
.mpw-hero__meta, .mpw-hero__description { margin-top: 14px; color: rgba(255,255,255,.8); }
.mpw-hero__description p { margin: 0; }
.single .mpw-main-wrap { max-width: calc(820px + 2 * var(--mpw-gutter)); }
.single.mpw-sidebar-left .mpw-main-wrap, .single.mpw-sidebar-right .mpw-main-wrap { max-width: var(--mpw-container); }
.single .post-thumbnail img { border-radius: 14px; display: block; }
.single .entry-content { font-size: 1.05em; }

/* Posts */
.page-header { margin-bottom: 32px; }
.page-title, .entry-title { margin-top: 0; }
.mpw-post-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 32px; }
.mpw-card { border: 1px solid var(--mpw-border); border-radius: calc(var(--mpw-radius) * 2); overflow: hidden; background: var(--mpw-bg); }
.mpw-card .entry-header, .mpw-card .entry-summary { padding: 0 22px; }
.mpw-card .entry-header { padding-top: 20px; }
.mpw-card .entry-title { font-size: 1.25em; }
.mpw-card .entry-title a { color: var(--mpw-heading); text-decoration: none; }
.mpw-card .entry-title a:hover { color: var(--mpw-primary); }
.mpw-card { transition: box-shadow .2s, transform .2s; }
.mpw-card:hover { box-shadow: 0 14px 34px rgba(0,0,0,.08); transform: translateY(-2px); }
.mpw-card .post-thumbnail img { display: block; width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.entry-meta, .entry-footer { font-size: .85em; color: var(--mpw-muted); }
.single .post-thumbnail { margin: 24px 0; }
.entry-content > * { max-width: 100%; }
.alignwide { margin-left: calc(-1 * var(--mpw-gutter)); margin-right: calc(-1 * var(--mpw-gutter)); }
.alignfull { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }
.wp-caption-text, figcaption { font-size: .85em; color: var(--mpw-muted); }
.pagination, .post-navigation { margin-top: 40px; }
.nav-links { display: flex; gap: 12px; flex-wrap: wrap; justify-content: space-between; }
.page-numbers { padding: 6px 12px; border: 1px solid var(--mpw-border); border-radius: var(--mpw-radius); text-decoration: none; }
.page-numbers.current { background: var(--mpw-primary); color: #fff; border-color: var(--mpw-primary); }

/* Widgets & forms */
.widget { margin-bottom: 32px; }
.widget-title { font-size: 1.05em; margin-top: 0; }
input[type="text"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="password"], textarea, select {
	width: 100%; padding: 10px 12px; border: 1px solid #cbd2d9; border-radius: var(--mpw-radius); font: inherit; color: inherit; background: #fff;
}
.search-form { display: flex; gap: 8px; }
button, input[type="submit"], .mpw-button {
	display: inline-block; padding: 10px 20px; border: 0; border-radius: var(--mpw-radius);
	background: var(--mpw-primary); color: #fff; font: inherit; font-weight: 600; cursor: pointer; text-decoration: none;
}
.menu-toggle { color: inherit; }
body a.mpw-button, body a.mpw-button:hover, body a.mpw-button:focus { color: #fff; }
.mpw-button:hover { filter: brightness(1.08); }
.error-404 { text-align: center; padding: 10px 0 40px; }
.error-404 p { font-size: 1.1em; }
.error-404 .search-form { max-width: 420px; margin: 24px auto 0; }
.comment-list { padding-left: 1.2em; }

/* Back to top */
.mpw-back-to-top { position: fixed; right: 26px; bottom: 26px; z-index: 400; width: 46px; height: 46px; border: 0; border-radius: 50%; background: var(--mpw-heading); color: #fff; font-size: 1.2rem; cursor: pointer; box-shadow: 0 12px 28px rgba(11,37,69,.18); opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .2s, transform .2s, visibility .2s; }
.mpw-back-to-top.is-visible { opacity: 1; visibility: visible; transform: none; }

/* Responsive */
@media (max-width: 921px) {
	.mpw-sidebar-right .mpw-main-wrap, .mpw-sidebar-left .mpw-main-wrap { grid-template-columns: minmax(0, 1fr); }
	.mpw-sidebar-left #secondary { order: 0; }
	.menu-toggle { display: block; }
	.main-navigation { display: none; width: 100%; padding-bottom: 12px; }
	.main-navigation.is-open { display: block; }
	.main-navigation ul { flex-direction: column; }
	.main-navigation .sub-menu { display: flex; position: static; box-shadow: none; border: 0; padding-left: 16px; }
}
@media (max-width: 544px) {
	:root { --mpw-gutter: 16px; }
	.mpw-hero { padding: 52px 0 44px; }
	.mpw-hero .mpw-hero__title { font-size: 1.8em; }
	.site-header__inner { gap: 12px; min-height: 64px; }
	.site-branding { flex: 1 1 0; min-width: 0; }
	.custom-logo { max-height: 46px; max-width: 100%; }
	h1 { font-size: 1.8em; } h2 { font-size: 1.45em; }
	.mpw-main-wrap { padding-top: 32px; }
}
@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ---------- Boxed blog style (Customizer → Layout → Blog post style) ---------- */
body.mpw-blog-boxed { background: var(--mpw-boxed-bg, #f2f5f7); }
.mpw-blog-boxed .mpw-main-wrap { padding-top: 64px; padding-bottom: 64px; gap: 0; }
.mpw-blog-boxed.mpw-sidebar-left .mpw-main-wrap { grid-template-columns: 360px minmax(0, 1fr); }
.mpw-blog-boxed.mpw-sidebar-right .mpw-main-wrap { grid-template-columns: minmax(0, 1fr) 360px; }
.mpw-blog-boxed.mpw-sidebar-left #secondary { padding-right: 30px; }
.mpw-blog-boxed.mpw-sidebar-right #secondary { padding-left: 30px; }
.mpw-blog-boxed .widget { background: #fff; padding: 2em; margin: 0 0 2em; }
.mpw-blog-boxed .widget-title { font-family: var(--e-global-typography-primary-font-family, inherit); font-size: 1.375em; font-weight: 400; margin: 0 0 1em; }
.mpw-blog-boxed .widget ul { list-style: none; margin: 0; padding: 0; }
.mpw-blog-boxed .widget li { margin-bottom: 4px; line-height: 2; }
.mpw-blog-boxed .widget img { max-width: 100%; height: auto; display: block; }
.mpw-blog-boxed .widget .search-form { display: flex; }
.mpw-blog-boxed .widget .search-field { flex: 1; min-width: 0; padding: 10px 12px; border: 1px solid #ddd; background: #fafafa; }
.mpw-blog-boxed .widget .search-submit { padding: 10px 14px; border: 0; background: var(--mpw-primary); color: #fff; cursor: pointer; }
.mpw-blog-boxed article.post { background: #fff; padding: 5.34em 6.67em; }
.mpw-blog-boxed .single .post-thumbnail, .mpw-blog-boxed article.post .post-thumbnail { margin: 0 0 1.5em; }
.mpw-blog-boxed article.post .post-thumbnail img { border-radius: 0; width: 100%; height: auto; }
.mpw-blog-boxed article.post .entry-title { font-size: 1.5em; font-weight: 400; margin: 0 0 10px; }
.mpw-blog-boxed article.post .entry-meta { color: var(--mpw-primary); margin-bottom: 2em; }
.mpw-blog-boxed .entry-meta a, .mpw-blog-boxed .widget a, .mpw-blog-boxed .post-navigation a { color: var(--mpw-primary); text-decoration: none; }
.mpw-blog-boxed .post-navigation { padding-top: 2em; }
.mpw-blog-boxed .post-navigation .nav-links { display: flex; justify-content: space-between; gap: 16px; }
.mpw-blog-boxed .post-navigation .nav-next { margin-left: auto; text-align: right; }
.mpw-blog-boxed .comments-area { margin-top: 2em; }
.mpw-blog-boxed .comment-respond { background: #fff; padding: 4em 6.67em; }
.mpw-blog-boxed .comment-respond input:not([type=submit]):not([type=checkbox]), .mpw-blog-boxed .comment-respond textarea { width: 100%; background: #fafafa; border: 1px solid #ddd; padding: 12px; font: inherit; }
.mpw-blog-boxed .comment-respond input[type=submit] { background: var(--mpw-primary); color: #fff; border: 0; padding: 12px 20px; cursor: pointer; font: inherit; font-weight: 600; }
@media (max-width: 921px) {
	.mpw-blog-boxed.mpw-sidebar-left .mpw-main-wrap, .mpw-blog-boxed.mpw-sidebar-right .mpw-main-wrap { grid-template-columns: minmax(0, 1fr); }
	.mpw-blog-boxed #secondary { padding: 0 !important; margin-top: 2em; order: 2; }
	.mpw-blog-boxed article.post { padding: 2.5em 2em; }
	.mpw-blog-boxed .comment-respond { padding: 2.5em 2em; }
}
@media (max-width: 544px) {
	.mpw-blog-boxed .mpw-main-wrap { padding-top: 0; padding-left: 0; padding-right: 0; }
	.mpw-blog-boxed article.post, .mpw-blog-boxed .comment-respond { padding: 1.5em 1em; }
	.mpw-blog-boxed .widget { padding: 1.5em 1em; }
}
.mpw-comment-form--compact { display: flex; flex-wrap: wrap; gap: 0 20px; }
.mpw-comment-form--compact > p { flex: 1 1 100%; margin: 0 0 10px; }
.mpw-comment-form--compact > .mpw-inline-field { flex: 1 1 0; min-width: 140px; }
.mpw-comment-form--compact .comment-notes, .mpw-comment-form--compact .logged-in-as { margin-bottom: 1em; }
.mpw-blog-boxed .comment-reply-title { font-size: 1.625em; font-weight: 400; margin: 0 0 .5em; }
@media (max-width: 544px) { .mpw-comment-form--compact > .mpw-inline-field { flex-basis: 100%; } }
