/* =====================================================================
   Washington DC Maids - inner page system  (wmd-site.css)
   Loaded on every page except the homepage, after wmd.css.
   The header, mobile drawer and footer are the homepage's own
   components (Elementor Theme Builder templates "Header" 2178 and
   "Footer" 2257), so they are styled by wmd.css. This file only styles
   the page body between them: widths, type, links, buttons, forms,
   cards, breadcrumbs and the BookingKoala page.
   ===================================================================== */

body.wmd-site {
	--ink: #05132c; --navy: #0a2350; --navy-600: #103471; --cobalt: #1657ef; --cobalt-700: #0f45c4;
	--azure: #3d8bff; --sky: #9ed2ff; --mist: #e6f0ff; --paper: #f5f8fd; --steel: #5a6b88;
	--citrus: #ffb020; --citrus-700: #f59e0b; --mint: #10d3a3; --line: rgba(10, 35, 80, .1);
	--font-display: "Bricolage Grotesque", "Plus Jakarta Sans", system-ui, sans-serif;
	--sans: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--mono: "IBM Plex Mono", ui-monospace, monospace;
	--wmd-header-h: 76px;
	margin: 0;
	padding-top: var(--wmd-header-h);
	background: var(--paper);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	accent-color: var(--cobalt);
}
body.wmd-site.admin-bar .wmd-header { top: 32px !important; }
@media (max-width: 782px) { body.wmd-site.admin-bar .wmd-header { top: 46px !important; } }

/* Anchors land below the fixed header. */
body.wmd-site :target, body.wmd-site [id] { scroll-margin-top: calc(var(--wmd-header-h) + 16px); }

/* ---- Header on inner pages: always the solid (light) state ---------- */
body.wmd-site .wmd-header { position: fixed !important; inset: 0 0 auto 0 !important; z-index: 50 !important; }

/* ---- Main column ----------------------------------------------------- */
body.wmd-site .site-main,
body.wmd-site main#content {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 40px 20px 72px;
}
@media (min-width: 640px) { body.wmd-site .site-main, body.wmd-site main#content { padding: 56px 32px 96px; } }

/* Classic (non-Elementor) page content sits on a card so short pages
   still read as a designed page. */
body.wmd-site .site-main > .page-content,
body.wmd-site .site-main > article > .page-content,
body.wmd-site .site-main .entry-content {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 28px;
	padding: 28px 22px;
	box-shadow: 0 24px 60px -36px rgba(5, 19, 44, .35);
}
@media (min-width: 768px) {
	body.wmd-site .site-main > .page-content,
	body.wmd-site .site-main > article > .page-content,
	body.wmd-site .site-main .entry-content { padding: 48px 56px; }
}
/* Elementor-built pages manage their own layout: no card. */
body.wmd-site.elementor-page .site-main > .page-content,
body.wmd-site .elementor .page-content { background: none; border: 0; box-shadow: none; padding: 0; }
body.wmd-site.elementor-page .site-main,
body.wmd-site.elementor-page main#content { max-width: none; padding: 0; }

/* ---- Type --------------------------------------------------------------- */
body.wmd-site .site-main :is(h1, h2, h3, h4, h5, h6),
body.wmd-site .elementor :is(h1, h2, h3, h4).elementor-heading-title {
	font-family: var(--font-display);
	color: var(--navy);
	font-weight: 700;
	letter-spacing: -.025em;
	line-height: 1.08;
	margin: 1.4em 0 .5em;
	text-transform: none;
}
body.wmd-site .site-main h1 { font-size: clamp(2.1rem, 1.4rem + 3vw, 3.4rem); margin-top: 0; letter-spacing: -.035em; }
body.wmd-site .site-main h2 { font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.3rem); }
body.wmd-site .site-main h3 { font-size: clamp(1.25rem, 1.1rem + .7vw, 1.55rem); }
body.wmd-site .site-main h4 { font-size: 1.15rem; }
body.wmd-site .site-main :is(h1, h2, h3, h4):first-child { margin-top: 0; }
body.wmd-site .site-main :is(p, li, td, dd) { color: #2b3a55; font-size: 1rem; }
body.wmd-site .site-main p { margin: 0 0 1.1em; }
body.wmd-site .site-main :is(ul, ol) { margin: 0 0 1.2em; padding-left: 1.25em; }
body.wmd-site .site-main li { margin: .3em 0; }
body.wmd-site .site-main li::marker { color: var(--cobalt); }
body.wmd-site .site-main strong { color: var(--navy); }
body.wmd-site .site-main a:not(.elementor-button):not(.wmd-btn-site):not(.wmd-loc__link) {
	color: var(--cobalt);
	text-decoration: underline;
	text-decoration-color: rgba(22, 87, 239, .3);
	text-underline-offset: 3px;
	transition: color .2s ease, text-decoration-color .2s ease;
}
body.wmd-site .site-main a:not(.elementor-button):not(.wmd-btn-site):hover { color: var(--cobalt-700); text-decoration-color: currentColor; }
body.wmd-site .site-main img { max-width: 100%; height: auto; border-radius: 18px; }
body.wmd-site .site-main hr { border: 0; border-top: 1px solid var(--line); margin: 2em 0; }
body.wmd-site .site-main blockquote { margin: 1.5em 0; padding: 1em 1.4em; border-left: 4px solid var(--citrus); background: var(--mist); border-radius: 0 16px 16px 0; }
body.wmd-site .site-main table { width: 100%; border-collapse: collapse; margin: 1.5em 0; font-size: .95rem; }
body.wmd-site .site-main :is(th, td) { padding: .7em .9em; border-bottom: 1px solid var(--line); text-align: left; }
body.wmd-site .site-main th { font-family: var(--font-display); color: var(--navy); }

/* Page title row added by the theme, if shown */
body.wmd-site .page-header { max-width: 1180px; margin: 0 auto; }
body.wmd-site .page-header .entry-title { font-family: var(--font-display); color: var(--navy); }

/* Breadcrumbs (Rank Math) */
body.wmd-site .rank-math-breadcrumb { margin: 0 0 18px; font-family: var(--mono); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--steel); }
body.wmd-site .rank-math-breadcrumb p { margin: 0; color: var(--steel); font-size: inherit; }
body.wmd-site .rank-math-breadcrumb a { color: var(--steel) !important; text-decoration: none !important; }
body.wmd-site .rank-math-breadcrumb a:hover { color: var(--cobalt) !important; }

/* ---- Buttons ----------------------------------------------------------- */
body.wmd-site .site-main :is(.elementor-button, .wp-block-button__link, button[type="submit"], input[type="submit"], .wmd-btn-site),
body.wmd-site .elementor .elementor-button {
	display: inline-flex; align-items: center; justify-content: center; gap: .55em;
	min-height: 48px; padding: .8em 1.5em;
	border: 0; border-radius: 999px;
	background: linear-gradient(180deg, #ffc247, var(--citrus));
	color: var(--ink) !important;
	font-family: var(--sans); font-size: .98rem; font-weight: 700; line-height: 1.1;
	text-decoration: none !important; text-transform: none; letter-spacing: 0;
	box-shadow: 0 14px 30px -14px rgba(245, 158, 11, .8), inset 0 1px 0 rgba(255, 255, 255, .5);
	cursor: pointer; transition: transform .2s ease, box-shadow .2s ease;
}
body.wmd-site .site-main :is(.elementor-button, .wp-block-button__link, button[type="submit"], input[type="submit"], .wmd-btn-site):hover,
body.wmd-site .elementor .elementor-button:hover { transform: translateY(-2px); box-shadow: 0 18px 36px -14px rgba(245, 158, 11, .9); }
body.wmd-site .wmd-btn-site--ghost { background: #fff !important; color: var(--navy) !important; box-shadow: inset 0 0 0 1.5px var(--line) !important; }

/* ---- Forms ------------------------------------------------------------- */
body.wmd-site .site-main :is(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="search"], select, textarea) {
	width: 100%; min-height: 48px; padding: .7em 1em;
	border: 1.5px solid rgba(10, 35, 80, .16); border-radius: 14px;
	background: #fff; color: var(--ink); font: inherit;
}
body.wmd-site .site-main :is(input, select, textarea):focus { outline: 3px solid rgba(22, 87, 239, .25); border-color: var(--cobalt); }
body.wmd-site :is(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--azure); outline-offset: 2px; }

/* ---- Elementor sections on older inner pages --------------------------- */
body.wmd-site .elementor-section.elementor-section-boxed > .elementor-container { max-width: 1180px; }
body.wmd-site .elementor .elementor-widget-text-editor { color: #2b3a55; }
body.wmd-site .elementor .elementor-icon-list-icon i,
body.wmd-site .elementor .elementor-icon-list-icon svg { color: var(--cobalt); fill: var(--cobalt); }

/* ---- Page hero used by the Locations, Book Now and Gift Card pages ----- */
.wmd-pagehero { position: relative; overflow: hidden; margin: 0 0 32px; padding: 40px 24px; border-radius: 28px; color: #fff;
	background: radial-gradient(120% 90% at 10% -10%, #1b47a8 0%, transparent 55%), radial-gradient(80% 70% at 95% 10%, #2f7fe8 0%, transparent 50%), linear-gradient(160deg, #0a2350, #05132c); }
@media (min-width: 768px) { .wmd-pagehero { padding: 56px 56px; } }
body.wmd-site .wmd-pagehero :is(h1, h2) { color: #fff; margin: 0 0 .35em; }
body.wmd-site .wmd-pagehero p { color: rgba(214, 232, 255, .9); max-width: 640px; font-size: 1.05rem; margin: 0; }
.wmd-pagehero__eyebrow { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 14px; font-family: var(--mono); font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--sky); }
.wmd-pagehero__eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--mint); box-shadow: 0 0 0 4px rgba(16, 211, 163, .2); }
.wmd-pagehero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.wmd-pagehero__stats { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; padding: 0; list-style: none; }
body.wmd-site .wmd-pagehero__stats li { margin: 0; padding: 6px 12px; border: 1px solid rgba(255, 255, 255, .18); border-radius: 999px; font-size: .85rem; color: #fff; }

/* ---- Locations directory ---------------------------------------------- */
.wmd-loc { margin: 0; }
.wmd-loc__jump { position: sticky; top: calc(var(--wmd-header-h) + 8px); z-index: 5; display: flex; gap: 8px; overflow-x: auto; margin: 0 0 24px; padding: 8px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255, 255, 255, .92); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); scrollbar-width: none; }
.wmd-loc__jump::-webkit-scrollbar { display: none; }
body.wmd-site .wmd-loc__jump a { flex: 0 0 auto; padding: 8px 16px; border-radius: 999px; color: var(--navy) !important; font-weight: 600; font-size: .92rem; text-decoration: none !important; white-space: nowrap; }
body.wmd-site .wmd-loc__jump a:hover, body.wmd-site .wmd-loc__jump a:focus-visible { background: var(--mist); }
.wmd-loc__region { margin: 0 0 28px; padding: 24px 18px; border: 1px solid var(--line); border-radius: 28px; background: #fff; box-shadow: 0 24px 60px -40px rgba(5, 19, 44, .35); }
@media (min-width: 768px) { .wmd-loc__region { padding: 36px 40px; } }
.wmd-loc__region-head { display: grid; gap: 6px; margin-bottom: 18px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
body.wmd-site .wmd-loc__region-head h2 { margin: 0; font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.2rem); }
body.wmd-site .wmd-loc__region-head h2 a { color: var(--navy) !important; text-decoration: none !important; }
body.wmd-site .wmd-loc__region-head h2 a:hover { color: var(--cobalt) !important; }
body.wmd-site .wmd-loc__region-head p { margin: 0; color: var(--steel); }
.wmd-loc__count { justify-self: start; padding: 4px 10px; border-radius: 999px; background: var(--mist); color: var(--cobalt); font-family: var(--mono); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.wmd-loc__groups { display: grid; gap: 22px; }
@media (min-width: 900px) { .wmd-loc__groups { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 40px; } }
body.wmd-site .wmd-loc__group h3 { margin: 0 0 8px; font-size: .78rem; font-family: var(--mono); font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--steel); }
body.wmd-site .wmd-loc__group h3 a { color: var(--steel) !important; }
body.wmd-site .wmd-loc__list { list-style: none; margin: 0; padding: 0; }
body.wmd-site .wmd-loc__item { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; margin: 0; padding: 10px 0; border-bottom: 1px dashed rgba(10, 35, 80, .1); }
body.wmd-site .wmd-loc__item:last-child { border-bottom: 0; }
body.wmd-site .wmd-loc__link { font-weight: 700; color: var(--cobalt) !important; text-decoration: none !important; }
body.wmd-site .wmd-loc__link::after { content: " \2192"; font-weight: 400; }
body.wmd-site .wmd-loc__link:hover { color: var(--cobalt-700) !important; text-decoration: underline !important; }
.wmd-loc__name { font-weight: 600; color: var(--navy); }
.wmd-loc__also { font-size: .88rem; color: var(--steel); }
body.wmd-site .wmd-loc__also a { font-weight: 600; }
.wmd-loc__zips { margin-left: auto; font-family: var(--mono); font-size: .74rem; color: var(--steel); letter-spacing: .02em; }
@media (max-width: 520px) { .wmd-loc__zips { margin-left: 0; flex-basis: 100%; } }
.wmd-loc__more summary { cursor: pointer; color: var(--cobalt); font-weight: 600; font-size: .9rem; }
body.wmd-site .wmd-loc__more p { margin: 8px 0 0; font-family: var(--mono); font-size: .74rem; line-height: 1.8; color: var(--steel); word-spacing: .2em; }
.wmd-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wmd-loc__note { margin: 8px 0 28px; padding: 18px 20px; border-radius: 18px; background: var(--mist); color: #2b3a55; font-size: .95rem; }
.wmd-loc__check { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
body.wmd-site .wmd-loc__check input { flex: 1 1 160px; max-width: 220px; min-height: 52px; border-radius: 999px; padding: 0 20px; border: 0; font-size: 1.05rem; letter-spacing: .08em; color: var(--ink); }
.wmd-loc__result { flex-basis: 100%; min-height: 1.5em; color: #fff; font-weight: 600; }
body.wmd-site .wmd-loc__result a { color: var(--citrus) !important; }

/* ---- Book Now / Gift Card (BookingKoala embed) ------------------------- */
body.wmd-site.page-id-2219 .site-main, body.wmd-site.page-id-2326 .site-main { max-width: 1240px; padding: 32px 12px 72px; }
body.wmd-site :is(.page-id-2219, .page-id-2326) .elementor-widget-html iframe,
body.wmd-site.page-id-2219 iframe[src*="maplemaids.com"],
body.wmd-site.page-id-2326 iframe[src*="maplemaids.com"] {
	display: block; width: 100%; border: 0; border-radius: 22px; background: #fff;
	box-shadow: 0 30px 70px -40px rgba(5, 19, 44, .45);
}
.wmd-bookintro { margin: 0 auto 20px; padding: 0 8px; max-width: 1180px; }
body.wmd-site .wmd-bookintro h1 { margin: 0 0 .25em; }
body.wmd-site .wmd-bookintro p { margin: 0; color: var(--steel); }
.wmd-bookintro__facts { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 14px 0 0; padding: 0; list-style: none; }
body.wmd-site .wmd-bookintro__facts li { margin: 0; font-size: .9rem; color: var(--navy); font-weight: 600; }
body.wmd-site .wmd-bookintro__facts li::before { content: "\2713"; margin-right: 6px; color: var(--mint); }

/* ---- Chat bubble: never cover the booking form controls or the drawer -- */
body.wmd-site #maids-chat-host { bottom: 18px !important; right: 18px !important; }
html.wmd-locked #maids-chat-host { visibility: hidden !important; }

@media (prefers-reduced-motion: reduce) {
	body.wmd-site * { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Older pages wrap their text in a second .entry-content box: one card only. */
body.wmd-site .site-main .page-content .entry-content { background: none; border: 0; box-shadow: none; padding: 0; border-radius: 0; }

/* Pages that bring their own hero/cards (Locations): no outer card. Lists inside components keep their own spacing. */
body.wmd-site .site-main .page-content:has(.wmd-loc) { background: none; border: 0; box-shadow: none; padding: 0; }
body.wmd-site .site-main :is(.wmd-loc__list, .wmd-pagehero__stats, .wmd-bookintro__facts) { padding-left: 0; margin-bottom: 0; }
body.wmd-site .site-main .wmd-pagehero__stats { margin-top: 22px; }

/* Region jumps clear both the fixed header and the sticky region bar. */
body.wmd-site .wmd-loc__region { scroll-margin-top: calc(var(--wmd-header-h) + 76px); }
