/* =========================================================================
   MW Plumbing Booking — front end
   Design tokens taken from the approved Figma file.

   THEME ARMOUR
   Themes and page builders style bare `button`, `input`, `a` and `select`
   elements globally, very often with `!important`. An `!important` theme
   rule beats a normal plugin rule no matter how specific the plugin
   selector is, so every declaration in this file that a theme is likely to
   fight over is marked `!important` as well. Between two important
   declarations specificity decides, and every selector here is scoped to
   the #mwb-overlay ID, so the modal always wins.
   ====================================================================== */

#mwb-overlay{
	--mwb-ink:        #101513;
	--mwb-green:      #10372B;
	--mwb-accent:     #3E9F2A;
	--mwb-accent-dk:  #348A22;
	--mwb-cream:      #F7F6F1;
	--mwb-white:      #FFFFFF;
	--mwb-muted:      #68726D;
	--mwb-border:     #E7EBE7;
	--mwb-well:       #EAF4E7;
	--mwb-slate:      #28312D;
	--mwb-rust:       #BF7547;
	--mwb-danger:     #C0392B;
	--mwb-line:       rgba(104,114,109,.6);

	--mwb-font-head:  'Barlow Condensed', 'Arial Narrow', Impact, sans-serif;
	--mwb-font-body:  'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;

	--mwb-pad-x:      36px;
	--mwb-pad-y:      28px;
	--mwb-radius:     14px;
	--mwb-ease:       cubic-bezier(.22,.61,.36,1);
}

/* -------------------------------------------------------------------------
   Page-level helpers (outside the overlay)
   ---------------------------------------------------------------------- */

body.mwb-locked{
	overflow: hidden !important;
}

.mwb-trigger-btn{
	display: inline-flex !important;
	align-items: center !important;
	gap: 12px !important;
	padding: 14px 20px 14px 26px !important;
	border: 0 !important;
	border-radius: 6px !important;
	background: #10372B !important;
	color: #fff !important;
	font-family: 'IBM Plex Sans', Helvetica, Arial, sans-serif !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	letter-spacing: .06em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	cursor: pointer !important;
	transition: background .18s ease, transform .18s ease;
}

.mwb-trigger-btn:hover{
	background: #0B2A20 !important;
	transform: translateY(-1px);
}

.mwb-trigger-btn__arrow{
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 30px !important;
	height: 30px !important;
	border-radius: 50% !important;
	background: #3E9F2A !important;
	flex: 0 0 auto !important;
}

.mwb-trigger-btn__arrow svg{
	width: 15px;
	height: 15px;
	display: block;
}

/* =========================================================================
   1. Overlay + modal shell
   ====================================================================== */

#mwb-overlay{
	position: fixed !important;
	inset: 0 !important;
	z-index: 2147483000 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 20px !important;
	margin: 0 !important;
	background: rgba(8,14,11,.62) !important;
	-webkit-backdrop-filter: blur(3px);
	backdrop-filter: blur(3px);
	opacity: 0;
	visibility: hidden;
	transition: opacity .24s var(--mwb-ease), visibility .24s;
	font-family: var(--mwb-font-body) !important;
	font-size: 15px !important;
	line-height: 1.5 !important;
	color: var(--mwb-ink) !important;
	-webkit-font-smoothing: antialiased;
	box-sizing: border-box !important;
}

#mwb-overlay[hidden]{
	display: none !important;
}

#mwb-overlay.is-open{
	opacity: 1;
	visibility: visible;
}

#mwb-overlay *,
#mwb-overlay *::before,
#mwb-overlay *::after{
	box-sizing: border-box !important;
}

#mwb-overlay .mwb-modal{
	position: relative !important;
	display: flex !important;
	flex-direction: column !important;
	width: min(1160px, 100%) !important;
	max-width: 100% !important;
	max-height: min(880px, calc(100vh - 40px)) !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	border: 0 !important;
	border-radius: var(--mwb-radius) !important;
	background: var(--mwb-cream) !important;
	box-shadow: 0 18px 48px rgba(0,0,0,.28) !important;
	transform: translateY(14px) scale(.985);
	transition: transform .28s var(--mwb-ease);
}

#mwb-overlay.is-open .mwb-modal{
	transform: none;
}

/* -------------------------------------------------------------------------
   Theme armour — neutralise inherited control styling
   ---------------------------------------------------------------------- */

#mwb-overlay button,
#mwb-overlay input,
#mwb-overlay select,
#mwb-overlay textarea,
#mwb-overlay a{
	font-family: inherit !important;
	text-shadow: none !important;
	text-transform: none !important;
	text-decoration: none !important;
	letter-spacing: normal !important;
	box-shadow: none !important;
	outline: none !important;
	float: none !important;
	min-width: 0 !important;
	max-width: none !important;
	transform: none;
	-webkit-appearance: none !important;
	appearance: none !important;
}

#mwb-overlay button,
#mwb-overlay a{
	cursor: pointer !important;
}

#mwb-overlay button::-moz-focus-inner{
	border: 0 !important;
	padding: 0 !important;
}

#mwb-overlay :focus-visible{
	outline: 3px solid rgba(62,159,42,.55) !important;
	outline-offset: 2px !important;
}

#mwb-overlay h2,
#mwb-overlay h3,
#mwb-overlay h4,
#mwb-overlay p,
#mwb-overlay ol,
#mwb-overlay li,
#mwb-overlay hr{
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	list-style: none !important;
	background: none !important;
}

#mwb-overlay .mwb-hp{
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

/* =========================================================================
   2. Header
   ====================================================================== */

#mwb-overlay .mwb-header{
	position: relative !important;
	flex: 0 0 auto !important;
	display: grid !important;
	grid-template-columns: 150px 1fr 150px !important;
	align-items: center !important;
	gap: 16px !important;
	padding: 14px 20px !important;
	background: var(--mwb-green) !important;
}

#mwb-overlay .mwb-header__logo{
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
}

#mwb-overlay .mwb-header__logo img{
	display: block !important;
	width: auto !important;
	max-width: 132px !important;
	height: auto !important;
	max-height: 46px !important;
	padding: 5px 9px !important;
	border-radius: 7px !important;
	background: #fff !important;
	object-fit: contain !important;
}

#mwb-overlay .mwb-header__logo-fallback{
	font-family: var(--mwb-font-head) !important;
	font-size: 19px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	letter-spacing: .01em !important;
	color: #fff !important;
	text-transform: uppercase !important;
}

#mwb-overlay .mwb-header__title{
	position: absolute !important;
	top: 12px !important;
	left: 50% !important;
	transform: translateX(-50%) !important;
	font-family: var(--mwb-font-head) !important;
	font-size: 17px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	letter-spacing: .1em !important;
	text-transform: uppercase !important;
	color: #fff !important;
	white-space: nowrap !important;
}

/* ---- Progress ---------------------------------------------------------- */

#mwb-overlay .mwb-progress{
	display: flex !important;
	align-items: flex-start !important;
	justify-content: center !important;
	width: 100% !important;
	max-width: 560px !important;
	margin: 22px auto 0 !important;
	padding: 0 !important;
}

#mwb-overlay .mwb-progress__item{
	position: relative !important;
	flex: 1 1 0 !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 7px !important;
	min-width: 0 !important;
}

/* Connector sits BETWEEN dots only, and behind them. */
#mwb-overlay .mwb-progress__item::before{
	content: '' !important;
	position: absolute !important;
	top: 12px !important;
	right: 50% !important;
	left: -50% !important;
	height: 2px !important;
	background: rgba(255,255,255,.20) !important;
	z-index: 0 !important;
}

#mwb-overlay .mwb-progress__item:first-child::before{
	display: none !important;
}

#mwb-overlay .mwb-progress__item.is-complete::before,
#mwb-overlay .mwb-progress__item.is-active::before{
	background: var(--mwb-accent) !important;
}

#mwb-overlay .mwb-progress__dot{
	position: relative !important;
	z-index: 1 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 26px !important;
	height: 26px !important;
	border: 1.5px solid rgba(255,255,255,.32) !important;
	border-radius: 50% !important;
	background: var(--mwb-green) !important;
	color: rgba(255,255,255,.62) !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	transition: background .2s ease, border-color .2s ease, color .2s ease;
}

#mwb-overlay .mwb-progress__item.is-active .mwb-progress__dot{
	border-color: var(--mwb-accent) !important;
	background: var(--mwb-accent) !important;
	color: #fff !important;
}

#mwb-overlay .mwb-progress__item.is-complete .mwb-progress__dot{
	border-color: var(--mwb-accent) !important;
	background: var(--mwb-green) !important;
	color: var(--mwb-accent) !important;
}

#mwb-overlay .mwb-progress__tick{
	display: none !important;
	align-items: center !important;
	justify-content: center !important;
}

#mwb-overlay .mwb-progress__tick svg{
	width: 13px;
	height: 13px;
	display: block;
}

#mwb-overlay .mwb-progress__item.is-complete .mwb-progress__num{
	display: none !important;
}

#mwb-overlay .mwb-progress__item.is-complete .mwb-progress__tick{
	display: flex !important;
}

#mwb-overlay .mwb-progress__label{
	font-size: 10px !important;
	font-weight: 500 !important;
	line-height: 1.1 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	text-align: center !important;
	color: rgba(255,255,255,.55) !important;
	white-space: nowrap !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	max-width: 100% !important;
}

#mwb-overlay .mwb-progress__item.is-active .mwb-progress__label,
#mwb-overlay .mwb-progress__item.is-complete .mwb-progress__label{
	color: var(--mwb-accent) !important;
}

/* ---- Close ------------------------------------------------------------- */

#mwb-overlay .mwb-close{
	justify-self: end !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 34px !important;
	height: 34px !important;
	padding: 0 !important;
	border: 1px solid rgba(255,255,255,.22) !important;
	border-radius: 50% !important;
	background: transparent !important;
	color: rgba(255,255,255,.78) !important;
	transition: background .18s ease, color .18s ease, border-color .18s ease;
}

#mwb-overlay .mwb-close:hover{
	border-color: rgba(255,255,255,.42) !important;
	background: rgba(255,255,255,.14) !important;
	color: #fff !important;
}

#mwb-overlay .mwb-close svg{
	width: 12px;
	height: 12px;
	display: block;
}

/* =========================================================================
   3. Body / steps
   ====================================================================== */

#mwb-overlay .mwb-body{
	position: relative !important;
	flex: 1 1 auto !important;
	min-height: 0 !important;
	overflow-y: auto !important;
	overflow-x: hidden !important;
	background: var(--mwb-cream) !important;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}

#mwb-overlay .mwb-body::-webkit-scrollbar{ width: 9px; }
#mwb-overlay .mwb-body::-webkit-scrollbar-thumb{
	background: rgba(16,55,43,.22);
	border-radius: 9px;
}

#mwb-overlay .mwb-step{
	display: flex !important;
	flex-direction: column !important;
	min-height: 100% !important;
}

#mwb-overlay .mwb-step[hidden]{
	display: none !important;
}

#mwb-overlay .mwb-grid{
	flex: 1 1 auto !important;
	display: grid !important;
	gap: 30px !important;
	padding: var(--mwb-pad-y) var(--mwb-pad-x) 20px !important;
	align-items: start !important;
}

#mwb-overlay .mwb-grid--1{ grid-template-columns: minmax(0,1fr) 350px !important; }
#mwb-overlay .mwb-grid--2{ grid-template-columns: minmax(0,1fr) 350px !important; }
#mwb-overlay .mwb-grid--3{ grid-template-columns: minmax(0,1fr) 320px !important; }

#mwb-overlay .mwb-col-main,
#mwb-overlay .mwb-col-side{
	min-width: 0 !important;
}

/* ---- Typography -------------------------------------------------------- */

#mwb-overlay .mwb-eyebrow{
	font-size: 10.5px !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	letter-spacing: .15em !important;
	text-transform: uppercase !important;
	color: var(--mwb-accent) !important;
}

#mwb-overlay .mwb-heading{
	margin: 10px 0 0 !important;
	font-family: var(--mwb-font-head) !important;
	font-size: 36px !important;
	font-weight: 800 !important;
	line-height: 1.04 !important;
	letter-spacing: .005em !important;
	text-transform: uppercase !important;
	color: var(--mwb-ink) !important;
}

#mwb-overlay .mwb-sub{
	margin: 7px 0 0 !important;
	font-size: 14.5px !important;
	line-height: 1.5 !important;
	color: var(--mwb-muted) !important;
}

#mwb-overlay .mwb-eyebrow--center,
#mwb-overlay .mwb-heading--center,
#mwb-overlay .mwb-sub--center{
	text-align: center !important;
}

#mwb-overlay .mwb-fineprint{
	margin: 14px 0 0 !important;
	font-size: 12.5px !important;
	line-height: 1.45 !important;
	color: var(--mwb-muted) !important;
}

#mwb-overlay .mwb-rule{
	display: block !important;
	width: 100% !important;
	height: 1px !important;
	margin: 16px 0 !important;
	border: 0 !important;
	background: var(--mwb-line) !important;
	opacity: .45 !important;
}

#mwb-overlay .mwb-rule--light{
	background: var(--mwb-border) !important;
	opacity: 1 !important;
}

/* =========================================================================
   4. Step 1 — service cards
   ====================================================================== */

#mwb-overlay .mwb-services{
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0,1fr)) !important;
	gap: 12px !important;
	margin-top: 18px !important;
}

#mwb-overlay .mwb-service{
	display: flex !important;
	align-items: center !important;
	gap: 14px !important;
	width: 100% !important;
	min-height: 76px !important;
	padding: 12px 16px !important;
	border: 1.5px solid var(--mwb-border) !important;
	border-radius: 8px !important;
	background: var(--mwb-white) !important;
	color: var(--mwb-ink) !important;
	text-align: left !important;
	transition: border-color .16s ease, background .16s ease, transform .16s ease, box-shadow .16s ease;
}

#mwb-overlay .mwb-service:hover{
	border-color: rgba(62,159,42,.55) !important;
	background: var(--mwb-white) !important;
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(16,55,43,.10) !important;
}

#mwb-overlay .mwb-service.is-selected{
	border-color: var(--mwb-accent) !important;
	background: var(--mwb-green) !important;
	color: #fff !important;
	box-shadow: 0 6px 18px rgba(16,55,43,.20) !important;
	transform: none;
}

#mwb-overlay .mwb-service__well{
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto !important;
	width: 46px !important;
	height: 46px !important;
	border-radius: 50% !important;
	background: var(--mwb-well) !important;
	color: var(--mwb-green) !important;
	transition: background .16s ease, color .16s ease;
}

#mwb-overlay .mwb-service.is-selected .mwb-service__well{
	background: #fff !important;
	color: var(--mwb-green) !important;
}

#mwb-overlay .mwb-service__icon{
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}

#mwb-overlay .mwb-service__icon svg{
	width: 22px !important;
	height: 22px !important;
	display: block !important;
}

#mwb-overlay .mwb-service__text{
	display: flex !important;
	flex-direction: column !important;
	gap: 3px !important;
	min-width: 0 !important;
}

#mwb-overlay .mwb-service__name{
	font-family: var(--mwb-font-head) !important;
	font-size: 18px !important;
	font-weight: 800 !important;
	line-height: 1.05 !important;
	letter-spacing: .01em !important;
	text-transform: uppercase !important;
	color: inherit !important;
}

#mwb-overlay .mwb-service__desc{
	font-size: 12.5px !important;
	line-height: 1.35 !important;
	color: var(--mwb-muted) !important;
}

#mwb-overlay .mwb-service.is-selected .mwb-service__desc{
	color: rgba(255,255,255,.72) !important;
}

/* ---- Urgent panel ------------------------------------------------------ */

#mwb-overlay .mwb-urgent{
	padding: 24px 24px 26px !important;
	border-radius: 10px !important;
	background: var(--mwb-ink) !important;
	color: #fff !important;
}

#mwb-overlay .mwb-urgent__label{
	font-size: 10.5px !important;
	font-weight: 500 !important;
	letter-spacing: .16em !important;
	text-transform: uppercase !important;
	color: var(--mwb-rust) !important;
}

#mwb-overlay .mwb-urgent__heading{
	margin: 12px 0 0 !important;
	font-family: var(--mwb-font-head) !important;
	font-size: 30px !important;
	font-weight: 800 !important;
	line-height: 1.02 !important;
	text-transform: uppercase !important;
	color: #fff !important;
}

#mwb-overlay .mwb-urgent__copy{
	margin: 12px 0 0 !important;
	font-size: 14px !important;
	line-height: 1.55 !important;
	color: rgba(255,255,255,.74) !important;
}

#mwb-overlay .mwb-urgent .mwb-rule{
	background: rgba(255,255,255,.16) !important;
	opacity: 1 !important;
	margin: 18px 0 !important;
}

#mwb-overlay .mwb-urgent__linelabel{
	font-size: 10.5px !important;
	font-weight: 500 !important;
	letter-spacing: .16em !important;
	text-transform: uppercase !important;
	color: rgba(255,255,255,.55) !important;
}

#mwb-overlay .mwb-urgent__phone{
	display: inline-block !important;
	margin-top: 6px !important;
	font-family: var(--mwb-font-head) !important;
	font-size: 27px !important;
	font-weight: 800 !important;
	line-height: 1.05 !important;
	letter-spacing: .01em !important;
	color: var(--mwb-accent) !important;
	transition: color .16s ease;
}

#mwb-overlay .mwb-urgent__phone:hover{
	color: #57C13D !important;
}

#mwb-overlay .mwb-urgent__note{
	margin: 12px 0 0 !important;
	font-size: 12.5px !important;
	line-height: 1.45 !important;
	color: rgba(255,255,255,.52) !important;
}

/* =========================================================================
   5. Step 2 — fields
   ====================================================================== */

#mwb-overlay .mwb-fields{
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0,1fr)) !important;
	gap: 12px !important;
	margin-top: 18px !important;
}

#mwb-overlay .mwb-field{
	position: relative !important;
	display: block !important;
	padding: 9px 14px 8px !important;
	border: 1.5px solid var(--mwb-border) !important;
	border-radius: 6px !important;
	background: var(--mwb-white) !important;
	transition: border-color .16s ease, box-shadow .16s ease;
}

#mwb-overlay .mwb-field:focus-within{
	border-color: var(--mwb-accent) !important;
	box-shadow: 0 0 0 3px rgba(62,159,42,.13) !important;
}

#mwb-overlay .mwb-field.has-error{
	border-color: var(--mwb-danger) !important;
}

#mwb-overlay .mwb-field__label{
	display: block !important;
	font-size: 10.5px !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	color: var(--mwb-muted) !important;
}

#mwb-overlay .mwb-field input,
#mwb-overlay .mwb-field select{
	display: block !important;
	width: 100% !important;
	height: 26px !important;
	margin: 4px 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	font-size: 15px !important;
	font-weight: 400 !important;
	line-height: 26px !important;
	color: var(--mwb-ink) !important;
}

#mwb-overlay .mwb-field input::placeholder{
	color: rgba(104,114,109,.62) !important;
	opacity: 1 !important;
}

#mwb-overlay .mwb-field--select{
	position: relative !important;
}

#mwb-overlay .mwb-field--select::after{
	content: '' !important;
	position: absolute !important;
	right: 15px !important;
	bottom: 16px !important;
	width: 8px !important;
	height: 8px !important;
	border-right: 1.7px solid var(--mwb-muted) !important;
	border-bottom: 1.7px solid var(--mwb-muted) !important;
	transform: rotate(45deg) !important;
	pointer-events: none !important;
}

#mwb-overlay .mwb-field--select select{
	padding-right: 22px !important;
	cursor: pointer !important;
}

#mwb-overlay .mwb-field__error{
	display: none !important;
	margin-top: 5px !important;
	font-size: 11.5px !important;
	line-height: 1.3 !important;
	color: var(--mwb-danger) !important;
}

#mwb-overlay .mwb-field.has-error .mwb-field__error,
#mwb-overlay .mwb-consent.has-error .mwb-field__error{
	display: block !important;
}

#mwb-overlay .mwb-field__error--block{
	display: block !important;
	margin-top: 10px !important;
}

#mwb-overlay .mwb-textarea{
	display: block !important;
	width: 100% !important;
	min-height: 96px !important;
	margin-top: 12px !important;
	padding: 13px 15px !important;
	border: 1.5px solid var(--mwb-border) !important;
	border-radius: 6px !important;
	background: var(--mwb-white) !important;
	font-family: inherit !important;
	font-size: 14.5px !important;
	line-height: 1.5 !important;
	color: var(--mwb-ink) !important;
	resize: vertical !important;
	transition: border-color .16s ease, box-shadow .16s ease;
}

#mwb-overlay .mwb-textarea:focus{
	border-color: var(--mwb-accent) !important;
	box-shadow: 0 0 0 3px rgba(62,159,42,.13) !important;
}

#mwb-overlay .mwb-textarea::placeholder{
	color: rgba(104,114,109,.62) !important;
	opacity: 1 !important;
}

/* ---- Consent ----------------------------------------------------------- */

#mwb-overlay .mwb-consent{
	margin-top: 14px !important;
}

#mwb-overlay .mwb-consent__row{
	display: flex !important;
	align-items: flex-start !important;
	gap: 11px !important;
	cursor: pointer !important;
}

#mwb-overlay .mwb-consent input[type="checkbox"]{
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

#mwb-overlay .mwb-consent__box{
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto !important;
	width: 20px !important;
	height: 20px !important;
	margin-top: 1px !important;
	border: 1.5px solid var(--mwb-border) !important;
	border-radius: 4px !important;
	background: var(--mwb-white) !important;
	color: transparent !important;
	transition: background .16s ease, border-color .16s ease, color .16s ease;
}

#mwb-overlay .mwb-consent input:checked ~ .mwb-consent__box{
	border-color: var(--mwb-accent) !important;
	background: var(--mwb-accent) !important;
	color: #fff !important;
}

#mwb-overlay .mwb-consent.has-error .mwb-consent__box{
	border-color: var(--mwb-danger) !important;
}

#mwb-overlay .mwb-consent__tick{
	display: flex !important;
	width: 12px !important;
	height: 12px !important;
}

#mwb-overlay .mwb-consent__tick svg{
	width: 12px;
	height: 12px;
	display: block;
}

#mwb-overlay .mwb-consent__text{
	font-size: 12.5px !important;
	line-height: 1.45 !important;
	color: var(--mwb-muted) !important;
}

/* ---- Step 2 side card -------------------------------------------------- */

#mwb-overlay .mwb-card{
	padding: 22px 22px 24px !important;
	border-radius: 10px !important;
	background: var(--mwb-ink) !important;
	color: #fff !important;
}

#mwb-overlay .mwb-card__label{
	font-size: 10.5px !important;
	font-weight: 500 !important;
	letter-spacing: .15em !important;
	text-transform: uppercase !important;
	color: rgba(255,255,255,.5) !important;
}

#mwb-overlay .mwb-card__label--accent{
	color: var(--mwb-accent) !important;
}

#mwb-overlay .mwb-card__title{
	margin: 9px 0 0 !important;
	font-family: var(--mwb-font-head) !important;
	font-size: 25px !important;
	font-weight: 800 !important;
	line-height: 1.05 !important;
	text-transform: uppercase !important;
	color: #fff !important;
}

#mwb-overlay .mwb-card__meta{
	margin: 7px 0 0 !important;
	font-size: 13.5px !important;
	line-height: 1.45 !important;
	color: rgba(255,255,255,.62) !important;
}

#mwb-overlay .mwb-card .mwb-card__label:not(.mwb-card__label--accent){
	margin-top: 18px !important;
}

#mwb-overlay .mwb-card .mwb-textarea{
	background: var(--mwb-cream) !important;
	border-color: transparent !important;
}

/* =========================================================================
   6. Step 3 — calendar + slots
   ====================================================================== */

#mwb-overlay .mwb-schedule{
	display: grid !important;
	grid-template-columns: minmax(0,1fr) 210px !important;
	gap: 16px !important;
	margin-top: 18px !important;
	align-items: start !important;
}

#mwb-overlay .mwb-calendar{
	position: relative !important;
	padding: 18px 20px 20px !important;
	border: 1px solid var(--mwb-border) !important;
	border-radius: 10px !important;
	background: var(--mwb-white) !important;
}

#mwb-overlay .mwb-calendar__head{
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 12px !important;
	margin-bottom: 14px !important;
}

#mwb-overlay .mwb-calendar__month{
	font-family: var(--mwb-font-head) !important;
	font-size: 19px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	letter-spacing: .02em !important;
	text-transform: uppercase !important;
	color: var(--mwb-ink) !important;
}

#mwb-overlay .mwb-calendar__nav{
	display: flex !important;
	gap: 7px !important;
}

#mwb-overlay .mwb-calendar__arrow{
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 30px !important;
	height: 30px !important;
	padding: 0 !important;
	border: 1.5px solid var(--mwb-border) !important;
	border-radius: 6px !important;
	background: var(--mwb-white) !important;
	color: var(--mwb-ink) !important;
	transition: border-color .16s ease, background .16s ease, color .16s ease;
}

#mwb-overlay .mwb-calendar__arrow:hover:not(:disabled){
	border-color: var(--mwb-accent) !important;
	background: var(--mwb-well) !important;
}

#mwb-overlay .mwb-calendar__arrow:disabled{
	opacity: .32 !important;
	cursor: not-allowed !important;
}

#mwb-overlay .mwb-calendar__arrow svg{
	width: 14px;
	height: 14px;
	display: block;
}

#mwb-overlay .mwb-calendar__weekdays,
#mwb-overlay .mwb-calendar__grid{
	display: grid !important;
	grid-template-columns: repeat(7, minmax(0,1fr)) !important;
	gap: 5px !important;
}

#mwb-overlay .mwb-calendar__weekdays{
	margin-bottom: 6px !important;
}

#mwb-overlay .mwb-calendar__weekday{
	text-align: center !important;
	font-size: 10.5px !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	letter-spacing: .1em !important;
	text-transform: uppercase !important;
	color: var(--mwb-muted) !important;
}

#mwb-overlay .mwb-day{
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	height: 34px !important;
	padding: 0 !important;
	border: 1.5px solid transparent !important;
	border-radius: 7px !important;
	background: var(--mwb-cream) !important;
	font-size: 13.5px !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	color: var(--mwb-ink) !important;
	text-decoration: none !important;
	transition: border-color .14s ease, background .14s ease, color .14s ease;
}

#mwb-overlay .mwb-day:hover:not(:disabled):not(.is-disabled){
	border-color: var(--mwb-accent) !important;
	background: var(--mwb-well) !important;
}

#mwb-overlay .mwb-day.is-selected{
	border-color: var(--mwb-accent) !important;
	background: var(--mwb-accent) !important;
	color: #fff !important;
	font-weight: 600 !important;
}

#mwb-overlay .mwb-day.is-disabled,
#mwb-overlay .mwb-day:disabled{
	background: transparent !important;
	color: rgba(104,114,109,.38) !important;
	text-decoration: none !important;
	cursor: not-allowed !important;
	pointer-events: none !important;
}

#mwb-overlay .mwb-day--empty{
	background: transparent !important;
	border-color: transparent !important;
	pointer-events: none !important;
}

#mwb-overlay .mwb-calendar__loading{
	position: absolute !important;
	inset: 0 !important;
	display: none !important;
	align-items: center !important;
	justify-content: center !important;
	border-radius: 10px !important;
	background: rgba(255,255,255,.86) !important;
	font-size: 13px !important;
	color: var(--mwb-muted) !important;
}

#mwb-overlay .mwb-calendar:not(.is-ready) .mwb-calendar__loading{
	display: flex !important;
}

/* ---- Slots ------------------------------------------------------------- */

#mwb-overlay .mwb-slots{
	padding: 18px 16px 20px !important;
	border: 1px solid var(--mwb-border) !important;
	border-radius: 10px !important;
	background: var(--mwb-white) !important;
}

#mwb-overlay .mwb-slots__label{
	font-size: 10.5px !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	color: var(--mwb-muted) !important;
}

#mwb-overlay .mwb-slots__list{
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
	margin-top: 12px !important;
}

#mwb-overlay .mwb-slot{
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	height: 40px !important;
	padding: 0 12px !important;
	border: 1.5px solid var(--mwb-border) !important;
	border-radius: 6px !important;
	background: var(--mwb-white) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	color: var(--mwb-ink) !important;
	text-decoration: none !important;
	transition: border-color .14s ease, background .14s ease, color .14s ease;
}

#mwb-overlay .mwb-slot:hover:not(.is-disabled):not(:disabled){
	border-color: var(--mwb-accent) !important;
	background: var(--mwb-well) !important;
}

#mwb-overlay .mwb-slot.is-selected{
	border-color: var(--mwb-accent) !important;
	background: var(--mwb-green) !important;
	color: #fff !important;
}

#mwb-overlay .mwb-slot.is-disabled,
#mwb-overlay .mwb-slot:disabled{
	border-color: var(--mwb-border) !important;
	background: var(--mwb-cream) !important;
	color: rgba(104,114,109,.42) !important;
	text-decoration: none !important;
	cursor: not-allowed !important;
	pointer-events: none !important;
}

#mwb-overlay .mwb-slots__empty{
	margin-top: 12px !important;
	font-size: 12.5px !important;
	line-height: 1.45 !important;
	color: var(--mwb-muted) !important;
}

/* ---- Summary ----------------------------------------------------------- */

#mwb-overlay .mwb-summary{
	padding: 22px 22px 24px !important;
	border-radius: 10px !important;
	background: var(--mwb-ink) !important;
	color: #fff !important;
}

#mwb-overlay .mwb-summary__label{
	font-size: 10.5px !important;
	font-weight: 500 !important;
	letter-spacing: .15em !important;
	text-transform: uppercase !important;
	color: rgba(255,255,255,.5) !important;
}

#mwb-overlay .mwb-summary__label--accent{
	color: var(--mwb-accent) !important;
}

#mwb-overlay .mwb-summary__service{
	margin: 9px 0 16px !important;
	font-family: var(--mwb-font-head) !important;
	font-size: 25px !important;
	font-weight: 800 !important;
	line-height: 1.05 !important;
	text-transform: uppercase !important;
	color: #fff !important;
}

#mwb-overlay .mwb-summary__value,
#mwb-overlay .mwb-summary__location{
	margin: 6px 0 0 !important;
	font-size: 14.5px !important;
	line-height: 1.45 !important;
	color: #fff !important;
}

#mwb-overlay .mwb-summary .mwb-rule{
	background: rgba(255,255,255,.16) !important;
	opacity: 1 !important;
}

#mwb-overlay .mwb-summary__disclaimer{
	margin-top: 16px !important;
	font-size: 12px !important;
	line-height: 1.45 !important;
	color: rgba(255,255,255,.5) !important;
}

/* =========================================================================
   7. Step 4 — confirmation
   ====================================================================== */

#mwb-overlay .mwb-confirm{
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 1 1 auto !important;
	padding: 40px var(--mwb-pad-x) 44px !important;
	text-align: center !important;
}

#mwb-overlay .mwb-confirm__mark{
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 74px !important;
	height: 74px !important;
	margin-bottom: 22px !important;
	border: 1.5px solid var(--mwb-accent) !important;
	border-radius: 50% !important;
	background: var(--mwb-well) !important;
	color: var(--mwb-accent) !important;
}

#mwb-overlay .mwb-confirm__mark span{
	display: flex !important;
}

#mwb-overlay .mwb-confirm__mark svg{
	width: 30px;
	height: 30px;
	display: block;
}

#mwb-overlay .mwb-receipt{
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0,1fr)) !important;
	width: 100% !important;
	max-width: 620px !important;
	margin: 26px auto 0 !important;
	border: 1px solid var(--mwb-border) !important;
	border-radius: 10px !important;
	background: var(--mwb-white) !important;
	overflow: hidden !important;
}

#mwb-overlay .mwb-receipt__cell{
	padding: 16px 18px !important;
	border-left: 1px solid var(--mwb-border) !important;
	text-align: left !important;
}

#mwb-overlay .mwb-receipt__cell:first-child{
	border-left: 0 !important;
}

#mwb-overlay .mwb-receipt__label{
	font-size: 10.5px !important;
	font-weight: 500 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	color: var(--mwb-muted) !important;
}

#mwb-overlay .mwb-receipt__value{
	margin-top: 7px !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	color: var(--mwb-ink) !important;
	word-break: break-word !important;
}

#mwb-overlay .mwb-confirm__note{
	margin-top: 20px !important;
	font-size: 13px !important;
	line-height: 1.5 !important;
	color: var(--mwb-muted) !important;
}

#mwb-overlay .mwb-confirm__note strong,
#mwb-overlay .mwb-confirm__note a{
	color: var(--mwb-ink) !important;
	font-weight: 600 !important;
}

/* =========================================================================
   8. Actions + buttons
   ====================================================================== */

#mwb-overlay .mwb-actions{
	position: sticky !important;
	bottom: 0 !important;
	z-index: 5 !important;
	flex: 0 0 auto !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 14px !important;
	margin-top: auto !important;
	padding: 14px var(--mwb-pad-x) !important;
	border-top: 1px solid var(--mwb-border) !important;
	background: rgba(247,246,241,.94) !important;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

#mwb-overlay .mwb-actions__spacer{
	flex: 1 1 auto !important;
}

#mwb-overlay .mwb-btn{
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 12px !important;
	height: 50px !important;
	padding: 0 12px 0 24px !important;
	border: 1.5px solid transparent !important;
	border-radius: 6px !important;
	background: var(--mwb-green) !important;
	color: #fff !important;
	font-family: var(--mwb-font-body) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	letter-spacing: .12em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	white-space: nowrap !important;
	transition: background .16s ease, border-color .16s ease, color .16s ease, opacity .16s ease, transform .16s ease;
}

#mwb-overlay .mwb-btn--primary{
	background: var(--mwb-green) !important;
	border-color: var(--mwb-green) !important;
	color: #fff !important;
}

#mwb-overlay .mwb-btn--primary:hover:not(:disabled){
	background: #0B2A20 !important;
	border-color: #0B2A20 !important;
	transform: translateY(-1px);
}

#mwb-overlay .mwb-btn--primary:disabled{
	background: #fff !important;
	border-color: var(--mwb-border) !important;
	color: rgba(104,114,109,.6) !important;
	cursor: not-allowed !important;
	transform: none;
}

#mwb-overlay .mwb-btn--primary:disabled .mwb-btn__arrow{
	background: var(--mwb-border) !important;
	color: rgba(104,114,109,.6) !important;
}

#mwb-overlay .mwb-btn--ghost{
	padding: 0 24px 0 12px !important;
	border-color: var(--mwb-border) !important;
	background: transparent !important;
	color: var(--mwb-ink) !important;
}

#mwb-overlay .mwb-btn--ghost:hover:not(:disabled){
	border-color: var(--mwb-ink) !important;
	background: rgba(16,21,19,.04) !important;
}

#mwb-overlay .mwb-btn--center{
	margin: 26px auto 0 !important;
}

#mwb-overlay .mwb-btn__text{
	display: inline-block !important;
	color: inherit !important;
	font: inherit !important;
	letter-spacing: inherit !important;
	text-transform: inherit !important;
}

#mwb-overlay .mwb-btn__arrow{
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto !important;
	width: 32px !important;
	height: 32px !important;
	border-radius: 50% !important;
	background: var(--mwb-accent) !important;
	color: #fff !important;
	transition: background .16s ease;
}

#mwb-overlay .mwb-btn__arrow svg{
	width: 15px;
	height: 15px;
	display: block;
}

#mwb-overlay .mwb-btn__arrow--back{
	background: transparent !important;
	border: 1.5px solid var(--mwb-border) !important;
	color: var(--mwb-ink) !important;
	width: 30px !important;
	height: 30px !important;
}

#mwb-overlay .mwb-btn__spinner{
	display: none !important;
	width: 16px !important;
	height: 16px !important;
	border: 2px solid rgba(255,255,255,.35) !important;
	border-top-color: #fff !important;
	border-radius: 50% !important;
	animation: mwb-spin .7s linear infinite;
}

#mwb-overlay .mwb-btn.is-loading{
	pointer-events: none !important;
	opacity: .82 !important;
}

#mwb-overlay .mwb-btn.is-loading .mwb-btn__arrow{
	display: none !important;
}

#mwb-overlay .mwb-btn.is-loading .mwb-btn__spinner{
	display: block !important;
}

@keyframes mwb-spin{ to{ transform: rotate(360deg); } }

/* ---- Alert ------------------------------------------------------------- */

#mwb-overlay .mwb-alert{
	position: sticky !important;
	bottom: 0 !important;
	z-index: 6 !important;
	margin: 0 !important;
	padding: 13px var(--mwb-pad-x) !important;
	background: var(--mwb-danger) !important;
	color: #fff !important;
	font-size: 13.5px !important;
	line-height: 1.4 !important;
}

#mwb-overlay .mwb-alert[hidden]{
	display: none !important;
}

/* =========================================================================
   9. Responsive
   ====================================================================== */

@media (max-width: 1080px){
	#mwb-overlay .mwb-grid--1,
	#mwb-overlay .mwb-grid--2,
	#mwb-overlay .mwb-grid--3{
		grid-template-columns: minmax(0,1fr) !important;
	}

	#mwb-overlay .mwb-col-side{
		order: 2 !important;
	}

	#mwb-overlay .mwb-schedule{
		grid-template-columns: minmax(0,1fr) 190px !important;
	}
}

@media (max-width: 820px){
	#mwb-overlay{
		padding: 0 !important;
	}

	#mwb-overlay .mwb-modal{
		width: 100% !important;
		max-width: 100% !important;
		max-height: 100% !important;
		height: 100% !important;
		border-radius: 0 !important;
	}

	#mwb-overlay .mwb-header{
		grid-template-columns: 1fr 40px !important;
		padding: 12px 14px !important;
	}

	#mwb-overlay .mwb-header__title{
		position: static !important;
		transform: none !important;
		grid-column: 1 !important;
		display: none !important;
	}

	#mwb-overlay .mwb-header__logo img{
		max-height: 38px !important;
		max-width: 110px !important;
	}

	#mwb-overlay .mwb-progress{
		grid-column: 1 / -1 !important;
		margin: 14px auto 2px !important;
		max-width: 100% !important;
	}

	#mwb-overlay .mwb-progress__label{
		font-size: 9px !important;
		letter-spacing: .08em !important;
	}

	#mwb-overlay .mwb-grid{
		padding: 20px 18px 16px !important;
		gap: 22px !important;
	}

	#mwb-overlay .mwb-heading{
		font-size: 29px !important;
	}

	#mwb-overlay .mwb-services,
	#mwb-overlay .mwb-fields{
		grid-template-columns: minmax(0,1fr) !important;
	}

	#mwb-overlay .mwb-schedule{
		grid-template-columns: minmax(0,1fr) !important;
	}

	#mwb-overlay .mwb-slots__list{
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0,1fr)) !important;
	}

	#mwb-overlay .mwb-actions{
		padding: 12px 18px !important;
		padding-bottom: calc(12px + env(safe-area-inset-bottom)) !important;
	}

	#mwb-overlay .mwb-receipt{
		grid-template-columns: minmax(0,1fr) !important;
	}

	#mwb-overlay .mwb-receipt__cell{
		border-left: 0 !important;
		border-top: 1px solid var(--mwb-border) !important;
	}

	#mwb-overlay .mwb-receipt__cell:first-child{
		border-top: 0 !important;
	}

	#mwb-overlay .mwb-confirm{
		padding: 30px 18px 34px !important;
	}
}

@media (max-width: 480px){
	#mwb-overlay .mwb-btn{
		height: 46px !important;
		padding: 0 10px 0 16px !important;
		font-size: 12px !important;
		letter-spacing: .08em !important;
		gap: 9px !important;
	}

	#mwb-overlay .mwb-btn--ghost{
		padding: 0 16px 0 10px !important;
	}

	#mwb-overlay .mwb-heading{
		font-size: 26px !important;
	}

	#mwb-overlay .mwb-urgent__heading{
		font-size: 25px !important;
	}

	#mwb-overlay .mwb-urgent__phone{
		font-size: 24px !important;
	}

	#mwb-overlay .mwb-day{
		height: 32px !important;
		font-size: 12.5px !important;
	}

	#mwb-overlay .mwb-calendar{
		padding: 14px 13px 16px !important;
	}

	#mwb-overlay .mwb-slots__list{
		grid-template-columns: minmax(0,1fr) !important;
	}
}

/* =========================================================================
   10. Motion preference
   ====================================================================== */

@media (prefers-reduced-motion: reduce){
	#mwb-overlay,
	#mwb-overlay *{
		transition: none !important;
		animation: none !important;
	}

	#mwb-overlay .mwb-modal{
		transform: none !important;
	}
}
