/**
 * AAW Frontend Wizard — Set N Sold Design System
 * Font: Manrope. Colors: Cobalt primary, Yellow accent.
 * Mobile-first, BEM.
 */

@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');

.aaw-wizard-page {
	--aaw-primary: #000f9f;
	--aaw-primary-dark: #00094f;
	--aaw-primary-light: #0a1bbf;
	--aaw-accent: #f8e59a;
	--aaw-success: #00a32a;
	--aaw-danger: #d63638;
	--aaw-bg: #ffffff;
	--aaw-bg-soft: #f6f7fb;
	--aaw-border: #e6e7ec;
	--aaw-text: #0a0d2b;
	--aaw-muted: #3a3f63;
	--aaw-grey: #a7a9ac;
	--aaw-radius: 20px;
	--aaw-radius-sm: 12px;
	--aaw-shadow: 0 10px 30px -12px rgba(0,15,159,0.15);
	--aaw-shadow-hover: 0 18px 40px -14px rgba(0,15,159,0.25);
	--aaw-font: 'Manrope', system-ui, -apple-system, sans-serif;

	background: var(--aaw-bg-soft);
	/* Extra bottom padding keeps content clear of the fixed quote bar. */
	padding: 24px 16px 110px;
	color: var(--aaw-text);
	font-family: var(--aaw-font);
	-webkit-font-smoothing: antialiased;
}

.aaw-wizard-container {
	max-width: 720px;
	margin: 0 auto;
}

/* ===== Header ===== */
.aaw-wizard-header { margin-bottom: 20px; }
.aaw-product-header {
	background: var(--aaw-bg);
	border: 1px solid var(--aaw-border);
	border-radius: var(--aaw-radius);
	padding: 20px 24px;
	display: flex;
	align-items: center;
	gap: 18px;
	box-shadow: var(--aaw-shadow);
	margin-bottom: 16px;
}
.aaw-product-header img {
	width: 64px; height: 64px;
	border-radius: var(--aaw-radius-sm);
	object-fit: cover;
}
.aaw-product-header__info h2 {
	font-size: 20px; font-weight: 800; margin: 0;
	letter-spacing: -0.02em;
}
.aaw-product-header__info .aaw-product-price {
	font-size: 14px; color: var(--aaw-muted); margin-top: 4px;
}

/* ===== Sticky Topbar + Progress (Figma) =====
   Full-bleed white bar: back chevron left, "① Question" centered,
   progress line along the bottom edge. */
#aaw-wizard-progress {
	position: sticky; top: var(--aaw-topbar-top, 0); z-index: 30;
	width: 100vw; margin: -24px 0 24px calc(50% - 50vw);
}
.aaw-topbar {
	position: relative;
	background: #fff;
	min-height: 68px;
	display: flex; align-items: center;
	padding: 0 87px;
	box-shadow: 0 6px 16px -12px rgba(10,13,43,0.18);
}
/* Step 0 / OTP topbar (template-question/step0-layout-user.html, otp.html) —
   no step-circle badge, no progress track underneath. */
.aaw-topbar--simple { min-height: 84px; padding: 0 40px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
.aaw-wizard-page button.aaw-topbar__back, .aaw-topbar__back {
	appearance: none; -webkit-appearance: none;
	background: transparent; border: none; box-shadow: none;
	width: 40px; height: 40px; min-height: 0; padding: 0;
	display: flex; align-items: center; justify-content: center;
	color: var(--aaw-text); cursor: pointer; border-radius: 50%;
	transition: background 0.15s;
}
.aaw-wizard-page button.aaw-topbar__back:hover { background: var(--aaw-bg-soft); color: var(--aaw-text); }
.aaw-topbar__mid {
	position: absolute; left: 50%; transform: translateX(-50%);
	display: flex; align-items: center; gap: 12px;
	max-width: 70%; white-space: nowrap; overflow: hidden;
}
.aaw-topbar__num {
	width: 28px; height: 28px; border-radius: 50%; flex: none;
	background: var(--aaw-primary); color: #fff;
	display: flex; align-items: center; justify-content: center;
	font-size: 14px; font-weight: 800;
}
.aaw-topbar__title {
	font-size: 18px; font-weight: 700; letter-spacing: -0.01em;
	overflow: hidden; text-overflow: ellipsis;
}
.aaw-topbar__track {
	position: absolute; left: 0; right: 0; bottom: 0; height: 4px;
	background: var(--aaw-border);
}
.aaw-progress-bar__fill {
	height: 100%; background: var(--aaw-primary);
	transition: width 0.4s ease;
}

/* Figma: no product header card and no white card around quiz widgets. */
.aaw-wizard-header { display: none; }
.aaw-wizard-root .aaw-widget {
	background: transparent; border: none; box-shadow: none;
	padding: 0; border-radius: 0;
}
.aaw-wizard-root .aaw-widget__title {
	font-size: 14px; font-weight: 600; color: var(--aaw-grey);
	letter-spacing: 0;
}
.aaw-progress-title {
	font-size: 18px; font-weight: 800; color: var(--aaw-text);
	text-align: center; margin-top: 6px;
	letter-spacing: -0.02em;
}

/* ===== Step / Screen ===== */
.aaw-screen {
	display: flex; flex-direction: column; gap: 0;
}
.aaw-step__title {
	font-size: clamp(22px, 3.5vw, 28px);
	font-weight: 800; letter-spacing: -0.02em;
	margin: 0 0 12px; line-height: 1.15;
}
.aaw-step__desc {
	font-size: 15px; color: var(--aaw-muted);
	margin-bottom: 20px; line-height: 1.6;
}

/* ===== Widget ===== */
.aaw-widget {
	background: var(--aaw-bg);
	border: 1px solid var(--aaw-border);
	border-radius: var(--aaw-radius);
	padding: clamp(20px, 4vw, 32px);
	box-shadow: var(--aaw-shadow);
	margin-bottom: 16px;
}
.aaw-widget:last-child { margin-bottom: 0; }
.aaw-widget__title {
	font-size: 17px; font-weight: 700; margin: 0 0 12px;
	letter-spacing: -0.01em;
}
.aaw-widget__desc { font-size: 14px; color: var(--aaw-muted); margin-bottom: 16px; line-height: 1.5; }

/* ===== Image Grid Cards ===== */
.aaw-grid--images {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 14px;
}
.aaw-wizard-page button.aaw-card--image, .aaw-card--image {
	appearance: none; -webkit-appearance: none;
	color: var(--aaw-text); box-shadow: none; text-transform: none;
	width: 100%; line-height: 1.4; min-height: 0;
	background: var(--aaw-bg);
	border: 2px solid var(--aaw-border);
	border-radius: var(--aaw-radius-sm);
	padding: 0; cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s;
	text-align: left; position: relative;
	overflow: hidden; font-family: var(--aaw-font);
}
.aaw-card--image:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 40px -16px rgba(0,15,159,0.2);
	border-color: #bfc4ff;
}
.aaw-card--selected {
	border-color: var(--aaw-primary) !important;
	box-shadow: 0 0 0 3px rgba(0,15,159,0.12), 0 16px 32px -12px rgba(0,15,159,0.25) !important;
	transform: translateY(-2px);
}
.aaw-card__img {
	width: 100%; aspect-ratio: 4/3;
	background-size: cover; background-position: center;
	background-color: var(--aaw-bg-soft);
}
.aaw-card__img--placeholder {
	display: flex; align-items: center; justify-content: center;
	font-size: 32px; color: var(--aaw-grey);
}
.aaw-card__title {
	padding: 12px 14px 4px; font-weight: 700; font-size: 15px;
	letter-spacing: -0.01em;
}
.aaw-card__desc {
	padding: 0 14px 4px; font-size: 12px; color: var(--aaw-muted); line-height: 1.4;
}
.aaw-card__price {
	padding: 4px 14px 12px; font-size: 13px; font-weight: 700;
	color: var(--aaw-primary);
}
/* ===== Image cards — Figma design (grid: image top / list: image left) ===== */
.aaw-grid--images { grid-template-columns: repeat(2, 1fr); gap: 20px; }
.aaw-wizard-page button.aaw-card--image, .aaw-card--image {
	border: 1px solid #ececf2;
	border-radius: 10px;
	background: #fff;
}
.aaw-card__img { aspect-ratio: 16/10; }
.aaw-card__title { padding: 16px 64px 2px 20px; font-size: 19px; font-weight: 700; }
.aaw-card__desc  { padding: 0 64px 14px 20px; font-size: 12.5px; }
.aaw-card__price { padding: 0 64px 14px 20px; }
/* Long blue arrow, bottom-right (Figma). */
.aaw-card--image::after {
	content: '';
	position: absolute; right: 20px; bottom: 24px;
	width: 34px; height: 12px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='34' height='12' viewBox='0 0 34 12' fill='none' stroke='%233742fa' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 6h31M26.5 1l5.5 5-5.5 5'/%3E%3C/svg%3E") no-repeat center / contain;
	pointer-events: none;
}

/* List variant: image fills the left edge, text right, arrow centered right. */
.aaw-grid--images.aaw-grid--list { grid-template-columns: 1fr; }
.aaw-wizard-page .aaw-grid--list button.aaw-card--image, .aaw-grid--list .aaw-card--image {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 148px;
	padding: 20px 96px 20px 273px;
}
.aaw-grid--list .aaw-card__img {
	position: absolute;
	left: 0; top: 0; bottom: 0;
	width: 245px;
	aspect-ratio: auto;
}
.aaw-grid--list .aaw-card__title { padding: 0 0 4px; }
.aaw-grid--list .aaw-card__desc  { padding: 0; font-size: 13.5px; line-height: 1.5; }
.aaw-grid--list .aaw-card__price { padding: 6px 0 0; }
.aaw-grid--list .aaw-card--image::after { right: 28px; top: 50%; bottom: auto; transform: translateY(-50%); }

/* Card Group: accordion room cards (tick + title + price, description expands when selected). */
.aaw-roomlist { display: flex; flex-direction: column; gap: 10px; }
.aaw-roomcard {
	background: #fff;
	border: 1px solid #ececf2;
	border-radius: 10px;
	overflow: hidden;
	transition: border-color 0.15s, box-shadow 0.15s;
}
.aaw-roomcard--selected { border-color: var(--aaw-primary); }
.aaw-wizard-page button.aaw-roomcard__head, .aaw-roomcard__head {
	appearance: none; -webkit-appearance: none;
	width: 100%; display: flex; align-items: center; gap: 14px;
	padding: 16px 20px; min-height: 0;
	background: transparent; border: none; box-shadow: none;
	cursor: pointer; text-align: left;
	font-family: var(--aaw-font); color: var(--aaw-text);
	text-transform: none; line-height: 1.4;
}
.aaw-roomcard__check {
	width: 20px; height: 20px; border-radius: 6px; flex: none;
	border: 2px solid var(--aaw-border);
	display: flex; align-items: center; justify-content: center;
	font-size: 12px; font-weight: 800; color: #fff;
	transition: background 0.15s, border-color 0.15s;
}
.aaw-roomcard__check--on { background: var(--aaw-primary); border-color: var(--aaw-primary); }
.aaw-roomcard__name { flex: 1; font-weight: 700; font-size: 16px; letter-spacing: -0.01em; }
.aaw-roomcard__price { font-weight: 700; font-size: 15px; white-space: nowrap; }
.aaw-roomcard__body {
	padding: 0 20px 16px 54px;
	font-size: 13.5px; color: var(--aaw-muted); line-height: 1.6;
	white-space: pre-line;
}
.aaw-roomcard__body ul, .aaw-roomcard__body ol { margin: 0; padding-left: 18px; white-space: normal; }
.aaw-roomcard__body p { margin: 0 0 6px; white-space: normal; }

/* ===== Checkbox Rows ===== */
.aaw-checklist { display: flex; flex-direction: column; gap: 8px; }
.aaw-checkrow {
	display: flex; align-items: center; gap: 14px;
	padding: 14px 18px; border-radius: var(--aaw-radius-sm);
	border: 2px solid var(--aaw-border); cursor: pointer;
	transition: border-color 0.15s, background 0.15s, transform 0.12s;
	background: var(--aaw-bg);
}
.aaw-checkrow:hover { border-color: #cfd3ff; transform: translateY(-1px); }
.aaw-checkrow--selected {
	border-color: var(--aaw-primary);
	background: #eef0ff;
}
.aaw-checkrow__box {
	width: 24px; height: 24px; border-radius: 7px; flex: none;
	border: 2px solid var(--aaw-border);
	display: flex; align-items: center; justify-content: center;
	font-size: 14px; font-weight: 800; color: #fff;
	transition: background 0.15s, border-color 0.15s;
}
.aaw-checkrow__box--checked {
	background: var(--aaw-primary); border-color: var(--aaw-primary);
}
.aaw-checkrow__title { flex: 1; font-weight: 600; font-size: 15px; }
.aaw-checkrow__price { font-weight: 700; font-size: 14px; color: var(--aaw-primary); }

/* ===== Calendar ===== */
.aaw-calendar { user-select: none; }
.aaw-calendar__head {
	display: flex; align-items: center; justify-content: space-between;
	margin-bottom: 16px;
}
.aaw-wizard-page button.aaw-calendar__nav {
	appearance: none; -webkit-appearance: none;
	width: 40px; height: 40px; border-radius: 10px;
	border: 1.5px solid var(--aaw-border); background: var(--aaw-bg);
	color: var(--aaw-text); box-shadow: none; padding: 0;
	cursor: pointer; font-size: 18px; font-weight: 700;
	display: flex; align-items: center; justify-content: center;
	transition: border-color 0.15s; font-family: var(--aaw-font);
}
.aaw-wizard-page button.aaw-calendar__nav:hover { border-color: var(--aaw-primary); color: var(--aaw-primary); background: var(--aaw-bg); }
.aaw-wizard-page button.aaw-calendar__nav:disabled, .aaw-calendar__nav--disabled { opacity: 0.3; cursor: default; pointer-events: none; }
.aaw-calendar__month { font-weight: 800; font-size: 16px; letter-spacing: -0.01em; }
.aaw-calendar__weekdays, .aaw-calendar__grid {
	display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px;
}
.aaw-calendar__weekday {
	text-align: center; font-size: 12px; font-weight: 700;
	color: var(--aaw-grey); letter-spacing: 0.06em; padding: 8px 0;
	text-transform: uppercase;
}
.aaw-wizard-page button.aaw-calendar__day, .aaw-calendar__day {
	appearance: none; -webkit-appearance: none;
	text-align: center; padding: 10px 4px; font-size: 14px; font-weight: 600;
	line-height: 1.2; min-height: 0;
	border-radius: 10px; cursor: pointer; border: none; background: transparent;
	color: var(--aaw-text); box-shadow: none; text-transform: none;
	transition: background 0.12s, color 0.12s; font-family: var(--aaw-font);
}
.aaw-wizard-page button.aaw-calendar__day:hover:not(:disabled) { background: var(--aaw-bg-soft); color: var(--aaw-text); }
.aaw-wizard-page button.aaw-calendar__day--selected,
.aaw-wizard-page button.aaw-calendar__day--selected:hover,
.aaw-calendar__day--selected {
	background: var(--aaw-primary) !important; color: #fff !important;
	box-shadow: 0 4px 12px -4px rgba(0,15,159,0.4);
}
.aaw-calendar__day--disabled, .aaw-calendar__day--past {
	opacity: 0.25; text-decoration: line-through; cursor: default; pointer-events: none;
}
.aaw-calendar__day--blackout {
	opacity: 0.2; text-decoration: line-through; cursor: default; pointer-events: none;
	background: rgba(214,54,56,0.08);
}
.aaw-calendar__day--empty { visibility: hidden; }
.aaw-calendar__selected {
	margin-top: 12px; padding: 12px 16px; background: #eef0ff;
	border-radius: var(--aaw-radius-sm); font-size: 14px;
}
.aaw-calendar-wrap { width: 100%; }

/* ===== Time Slots =====
   High specificity (.aaw-wizard-page button.aaw-slot) intentionally beats
   Elementor kit global button styles (.elementor-kit-N button). */
.aaw-slots-wrap { margin-top: 20px; }
.aaw-slots__title {
	font-size: 15px; font-weight: 700; margin: 0 0 12px;
	color: var(--aaw-text); letter-spacing: -0.01em;
}
.aaw-slots__loading, .aaw-slots__empty {
	font-size: 14px; color: var(--aaw-muted);
	padding: 14px 16px; background: var(--aaw-bg-soft);
	border-radius: var(--aaw-radius-sm);
}
.aaw-slots {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
	gap: 8px;
}
.aaw-wizard-page button.aaw-slot {
	appearance: none; -webkit-appearance: none;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	gap: 2px; padding: 12px 10px; border-radius: var(--aaw-radius-sm);
	font-size: 14px; font-weight: 700; line-height: 1.2;
	border: 2px solid var(--aaw-border);
	background: var(--aaw-bg); color: var(--aaw-text);
	cursor: pointer; font-family: var(--aaw-font);
	transition: border-color 0.15s, background 0.15s, color 0.15s, box-shadow 0.15s;
	box-shadow: none; text-transform: none;
}
.aaw-wizard-page button.aaw-slot:hover:not(:disabled) {
	border-color: var(--aaw-primary); color: var(--aaw-primary);
	background: var(--aaw-bg);
}
.aaw-wizard-page button.aaw-slot--selected,
.aaw-wizard-page button.aaw-slot--selected:hover {
	background: var(--aaw-primary) !important;
	border-color: var(--aaw-primary) !important;
	color: #fff !important;
	box-shadow: 0 6px 16px -6px rgba(0,15,159,0.5);
}
.aaw-wizard-page button.aaw-slot--selected .aaw-slot__time { color: #fff; }
.aaw-wizard-page button.aaw-slot--full,
.aaw-wizard-page button.aaw-slot:disabled {
	opacity: 0.4; text-decoration: line-through; cursor: default;
	background: var(--aaw-bg-soft); color: var(--aaw-muted);
	border-color: var(--aaw-border); box-shadow: none;
}
.aaw-slot__time { font-size: 14px; font-weight: 700; }
.aaw-slot__label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; }

/* ===== Upload (wizard step) ===== */
.aaw-upload { display: flex; flex-direction: column; gap: 12px; }
.aaw-upload__zone {
	display: block;
	border: 2px dashed var(--aaw-border); border-radius: var(--aaw-radius-sm);
	padding: 32px 20px; text-align: center; cursor: pointer;
	background: var(--aaw-bg);
	transition: border-color 0.2s, background 0.2s;
}
.aaw-upload__zone:hover, .aaw-upload__zone--drag {
	border-color: var(--aaw-primary); background: #eef0ff;
}
.aaw-upload__zone--full { opacity: 0.5; pointer-events: none; }
.aaw-upload__icon { font-size: 32px; margin-bottom: 8px; }
.aaw-upload__hint { font-size: 15px; font-weight: 700; color: var(--aaw-text); }
.aaw-upload__meta { font-size: 12px; color: var(--aaw-grey); margin-top: 6px; }
.aaw-upload__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.aaw-upload__item {
	display: flex; align-items: center; gap: 12px;
	background: var(--aaw-bg-soft); border-radius: 10px;
	padding: 10px 14px; font-size: 14px;
}
.aaw-upload__name { flex: 1; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aaw-upload__size { color: var(--aaw-grey); font-size: 12px; flex: none; }
.aaw-wizard-page button.aaw-upload__remove {
	appearance: none; -webkit-appearance: none;
	width: 26px; height: 26px; border-radius: 50%; flex: none;
	border: none; background: rgba(214,54,56,0.1); color: var(--aaw-danger);
	font-size: 16px; font-weight: 800; line-height: 1; cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	padding: 0; box-shadow: none; transition: background 0.15s;
}
.aaw-wizard-page button.aaw-upload__remove:hover { background: rgba(214,54,56,0.2); color: var(--aaw-danger); }

/* ===== Navigation ===== */
.aaw-nav {
	display: flex; justify-content: space-between; align-items: center;
	margin-top: 28px; gap: 14px;
}
.aaw-btn {
	display: inline-flex; align-items: center; gap: 10px;
	font-weight: 700; font-size: 15px; letter-spacing: 0.01em;
	padding: 15px 30px; border-radius: 999px; cursor: pointer;
	border: none; font-family: var(--aaw-font);
	transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s;
}
.aaw-btn--primary {
	background: var(--aaw-primary); color: #fff;
	box-shadow: 0 10px 30px -12px rgba(0,15,159,0.6);
}
.aaw-btn--primary:hover {
	transform: translateY(-2px);
	box-shadow: 0 18px 40px -14px rgba(0,15,159,0.7);
	background: var(--aaw-primary-light);
}
.aaw-btn--ghost {
	background: transparent; color: var(--aaw-text);
	border: 1.5px solid var(--aaw-border); padding: 14px 28px;
}
.aaw-btn--ghost:hover { border-color: var(--aaw-primary); color: var(--aaw-primary); }
.aaw-btn--loading { opacity: 0.6; cursor: wait; pointer-events: none; }
.aaw-wizard-page .aaw-btn.aaw-btn--next { font-size: 14px; gap: 6px; padding: 0 6px; height: 48px; }
.aaw-wizard-page button.aaw-btn--next,
.aaw-wizard-page button.aaw-btn--next:hover,
.aaw-wizard-page button.aaw-btn--next:focus { box-shadow: 0 8px 8px rgba(0,15,159,0.2); transform: none; }
.aaw-btn__icon { display: flex; flex: none; }
.aaw-btn__icon svg { display: block; width: 20px; height: 20px; }
.aaw-btn--next .aaw-btn__icon svg { width: 40px; height: 40px; }
.aaw-wizard-page .aaw-btn.aaw-btn--wide, .aaw-btn--wide { width: 100%; justify-content: center; height: 48px; padding: 0 24px; }

/* ===== Quote Footer — white bar, Grand Total left, Next pill right (Figma) ===== */
.aaw-wizard-quote {
	position: fixed; bottom: 16px; left: 50%; transform: translateX(-50%);
	width: min(720px, calc(100vw - 32px));
	z-index: 40;
	background: var(--aaw-bg);
	border-radius: var(--aaw-radius);
	padding: 10px 10px 10px 24px;
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	color: var(--aaw-text); font-weight: 700; font-size: 16px;
	box-shadow: 0 -4px 24px rgba(10,13,43,0.12);
}
.aaw-wizard-quote__label { font-size: 12px; color: var(--aaw-grey); font-weight: 700; }
#aaw-wizard-quote-amount { font-size: 22px; font-weight: 800; letter-spacing: -0.02em; color: var(--aaw-primary); }
.aaw-wizard-quote__nav { flex: none; }
.aaw-wizard-quote__nav .aaw-btn { min-width: 220px; justify-content: center; }

/* ===== Lead Form (template-question/step0-layout-user.html: unified
   label-inside-box field, exact colors kept literal for fidelity) ===== */
/* NOTE: this site's WP Customizer "Additional CSS" already forces
   #aaw-wizard-progress { margin-bottom: 80px !important }, which is MORE
   than the template's 62px topbar-to-content gap — so no extra top padding
   is added here (would double up and push content down ~140px). */
.aaw-step--lead, .aaw-step--otp { max-width: 686px; margin: 0 auto; padding: 0 24px; box-sizing: border-box; }
.aaw-step--otp { max-width: 460px; }
.aaw-step--lead .aaw-step__title { text-align: center; margin-bottom: 8px; }
.aaw-step--lead .aaw-step__desc,
.aaw-step--otp .aaw-step__desc { text-align: left; margin: 0 0 24px; font-size: 14px; color: #9c9da2; }
.aaw-lead-form {
	display: flex; flex-direction: column; gap: 24px;
}
.aaw-lead-field {
	display: block; background: #fff; border: 1px solid #eeeef0;
	border-radius: 8px; padding: 8px 16px;
}
.aaw-lead-field__label {
	display: block; font-size: 12px; font-weight: 700; letter-spacing: 0.84px;
	text-transform: uppercase; color: #c2c2c6; margin-bottom: 6px;
}
.aaw-lead-field__input::placeholder { color: #c2c2c6; }
textarea.aaw-lead-field__input { resize: vertical; min-height: 70px; }
.aaw-phone-wrap { display: flex; align-items: center; gap: 8px; }
.aaw-phone-wrap .aaw-phone-prefix {
	position: static; color: #9c9da2; font-size: 16px; font-weight: 400;
}
.aaw-wizard-page .aaw-phone-wrap input.aaw-lead-field__input,
.aaw-phone-wrap input.aaw-lead-field__input { flex: 1; padding-left: 0; }

/* ===== Date widget — suggested time cards ===== */
.aaw-datewidget { display: flex; flex-direction: column; gap: 14px; }
.aaw-timecards { display: flex; flex-direction: column; gap: 14px; }
.aaw-timecard {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	width: 100%; padding: 22px 26px; text-align: left;
	background: var(--aaw-bg); border: 2px solid transparent; border-radius: var(--aaw-radius-sm);
	box-shadow: 0 2px 10px -4px rgba(10, 13, 43, 0.08);
	font-family: var(--aaw-font); cursor: pointer;
	transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
}
.aaw-timecard:hover { border-color: #cfd3ff; transform: translateY(-1px); box-shadow: 0 8px 20px -8px rgba(0, 15, 159, 0.18); }
.aaw-timecard--selected { border-color: var(--aaw-primary); box-shadow: 0 0 0 3px rgba(0, 15, 159, 0.1); }
.aaw-timecard__meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.aaw-timecard__title { font-size: 19px; font-weight: 700; color: var(--aaw-text); letter-spacing: -0.01em; }
.aaw-timecard__sub { font-size: 14px; color: var(--aaw-muted); }
.aaw-timecard__arrow, .aaw-timecard__chev { flex-shrink: 0; font-size: 20px; color: var(--aaw-primary); line-height: 1; }
/* Request-another expander */
.aaw-timecard--request { flex-direction: column; align-items: stretch; padding: 0; cursor: default; }
.aaw-timecard--request .aaw-timecard__head {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	width: 100%; padding: 22px 26px; text-align: left;
	background: none; border: none; font-family: var(--aaw-font); cursor: pointer;
}
.aaw-timecard__panel { padding: 0 26px 22px; border-top: 1px solid var(--aaw-border); margin-top: 2px; padding-top: 18px; }
/* Section headings inside "Request another time" — separates the proposed
   next-week dates from the free-choice calendar below them. */
.aaw-timecard__panel-label {
	font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--aaw-primary, #000f9f); margin: 0 0 10px;
}
.aaw-timecard__panel-label + .aaw-timecards { margin-bottom: 20px; }
.aaw-timecards + .aaw-timecard__panel-label { margin-top: 4px; }

/* ===== "Add another" duplicates ===== */
.aaw-widget__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.aaw-widget--dup { margin-top: 18px; padding-top: 14px; border-top: 1px dashed var(--aaw-border); }
.aaw-dup-add {
	display: flex; align-items: center; gap: 8px;
	margin-top: 12px; padding: 12px 18px; width: 100%;
	background: none; border: 2px dashed var(--aaw-border); border-radius: var(--aaw-radius-sm);
	font-family: var(--aaw-font); font-size: 14px; font-weight: 600;
	color: var(--aaw-muted); cursor: pointer;
	transition: border-color 0.15s, color 0.15s;
}
.aaw-dup-add:hover { border-color: var(--aaw-primary); color: var(--aaw-primary); }
.aaw-dup-remove {
	flex-shrink: 0; padding: 4px 10px;
	background: none; border: 1px solid var(--aaw-border); border-radius: var(--aaw-radius-sm);
	font-family: var(--aaw-font); font-size: 12px; color: var(--aaw-muted); cursor: pointer;
	transition: border-color 0.15s, color 0.15s;
}
.aaw-dup-remove:hover { border-color: #d63638; color: #d63638; }

/* ===== Paragraph ===== */
.aaw-paragraph { padding: 12px 0; line-height: 1.7; font-size: 15px; color: var(--aaw-muted); }

/* ===== Screen Animation ===== */
.aaw-screen { animation: aaw-fadeUp 0.3s ease; }
.aaw-screen--static { animation: none; }
@keyframes aaw-fadeUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }

/* ===== Theme-reset neutralizer =====
   Hello Elementor's reset.css paints button:hover / button:focus pink
   (background #C36, white text). Every wizard button must re-declare its own
   hover/focus background+color at higher specificity or it flashes pink. */
.aaw-wizard-page button.aaw-card--image:hover,
.aaw-wizard-page button.aaw-card--image:focus {
	background-color: var(--aaw-bg);
	color: var(--aaw-text);
}
.aaw-wizard-page .aaw-timecard:hover,
.aaw-wizard-page .aaw-timecard:focus {
	background-color: var(--aaw-bg);
	color: var(--aaw-text);
}
.aaw-wizard-page .aaw-timecard--request:hover {
	transform: none;
	border-color: transparent;
	box-shadow: 0 2px 10px -4px rgba(10, 13, 43, 0.08);
}
.aaw-wizard-page .aaw-timecard--request .aaw-timecard__head:hover,
.aaw-wizard-page .aaw-timecard--request .aaw-timecard__head:focus {
	background: none;
	color: var(--aaw-text);
}
.aaw-wizard-page .aaw-dup-add:hover,
.aaw-wizard-page .aaw-dup-add:focus {
	background: none;
	border-color: var(--aaw-primary);
	color: var(--aaw-primary);
}
.aaw-wizard-page .aaw-dup-remove:hover,
.aaw-wizard-page .aaw-dup-remove:focus {
	background: none;
	border-color: var(--aaw-danger);
	color: var(--aaw-danger);
}
.aaw-wizard-page .aaw-btn--ghost:hover,
.aaw-wizard-page .aaw-btn--ghost:focus {
	background: transparent;
	border-color: var(--aaw-primary);
	color: var(--aaw-primary);
}
.aaw-wizard-page .aaw-btn--primary:hover,
.aaw-wizard-page .aaw-btn--primary:focus {
	background: var(--aaw-primary-light);
	color: #fff;
}
.aaw-wizard-page button.aaw-calendar__nav:focus {
	background: var(--aaw-bg);
	color: var(--aaw-text);
}
.aaw-wizard-page button.aaw-calendar__day:focus:not(:disabled):not(.aaw-calendar__day--selected) {
	background: var(--aaw-bg-soft);
	color: var(--aaw-text);
}
.aaw-wizard-page button.aaw-slot:focus:not(:disabled):not(.aaw-slot--selected) {
	background: var(--aaw-bg);
	color: var(--aaw-primary);
	border-color: var(--aaw-primary);
}
.aaw-wizard-page button.aaw-upload__remove:focus {
	background: rgba(214, 54, 56, 0.1);
	color: var(--aaw-danger);
}

/* ===== Responsive ===== */
@media (max-width: 600px) {
	.aaw-grid--images { grid-template-columns: 1fr; }
	/* Full-width single column: cap image height so one card doesn't fill the screen. */
	.aaw-card__img { aspect-ratio: 16/9; }
	.aaw-wizard-page .aaw-grid--list button.aaw-card--image,
	.aaw-grid--list .aaw-card--image { min-height: 104px; padding: 14px 52px 14px 132px; }
	.aaw-grid--list .aaw-card__img { width: 116px; }
	.aaw-card__title { font-size: 16px; padding-top: 12px; }
	.aaw-grid--list .aaw-card__title { padding: 0 0 2px; }
	.aaw-grid--list .aaw-card__desc  { font-size: 12px; }
	.aaw-card--image::after { width: 26px; right: 14px; bottom: 18px; }
	.aaw-grid--list .aaw-card--image::after { right: 16px; bottom: auto; }
	.aaw-topbar { padding: 0 16px; }
	.aaw-wizard-quote {
		border-radius: 16px 16px 0 0;
		bottom: 0; width: 100vw;
		padding: 10px 10px 10px 16px;
	}
	#aaw-wizard-quote-amount { font-size: 18px; }
	.aaw-wizard-quote__nav .aaw-btn { min-width: 0; padding: 13px 24px; }
	.aaw-nav { flex-direction: column; gap: 8px; }
	.aaw-nav .aaw-btn { width: 100%; justify-content: center; }
	.aaw-timecard { padding: 16px 18px; }
	.aaw-timecard__title { font-size: 17px; }
	.aaw-timecard--request .aaw-timecard__head { padding: 16px 18px; }
	.aaw-timecard__panel { padding-left: 14px; padding-right: 14px; }
	.aaw-popup-panel { padding: 24px 18px 18px; }
	.aaw-popup-grid { grid-template-columns: 1fr 1fr !important; }
	.aaw-widget { padding: 18px 16px; }
}

/* Tablet: keep image cards 2-up so they don't stretch awkwardly. */
@media (min-width: 601px) and (max-width: 900px) {
	.aaw-grid--images:not(.aaw-grid--list) { grid-template-columns: repeat(2, 1fr); }
}

/* ===== Theme-override hardening: buttons & form fields =====
   Anchors styled as buttons (a.aaw-btn) inherit theme link colors/underline,
   and Elementor kit rules (.elementor-kit-N input/button) outrank single-class
   selectors. These higher-specificity rules pin the design system down. */
.aaw-wizard-page a.aaw-btn,
.aaw-wizard-page button.aaw-btn {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: var(--aaw-font); font-weight: 700; font-size: 15px;
	padding: 15px 30px; border-radius: 999px; cursor: pointer;
	border: none; text-decoration: none; line-height: 1.2;
	min-height: 44px; box-sizing: border-box;
	transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s;
}
.aaw-wizard-page a.aaw-btn--primary,
.aaw-wizard-page a.aaw-btn--primary:visited,
.aaw-wizard-page button.aaw-btn--primary {
	background: var(--aaw-primary); color: #fff;
	box-shadow: 0 10px 30px -12px rgba(0,15,159,0.6);
}
.aaw-wizard-page a.aaw-btn--primary:hover,
.aaw-wizard-page a.aaw-btn--primary:focus,
.aaw-wizard-page button.aaw-btn--primary:hover,
.aaw-wizard-page button.aaw-btn--primary:focus {
	background: var(--aaw-primary-light); color: #fff; text-decoration: none;
	transform: translateY(-2px);
	box-shadow: 0 18px 40px -14px rgba(0,15,159,0.7);
}
.aaw-wizard-page a.aaw-btn--ghost,
.aaw-wizard-page a.aaw-btn--ghost:visited,
.aaw-wizard-page button.aaw-btn--ghost {
	background: transparent; color: var(--aaw-text);
	border: 1.5px solid var(--aaw-border); padding: 14px 28px;
}
.aaw-wizard-page a.aaw-btn--ghost:hover,
.aaw-wizard-page a.aaw-btn--ghost:focus,
.aaw-wizard-page button.aaw-btn--ghost:hover,
.aaw-wizard-page button.aaw-btn--ghost:focus {
	background: transparent; border-color: var(--aaw-primary);
	color: var(--aaw-primary); text-decoration: none;
}
.aaw-wizard-page .aaw-btn--compact { padding: 11px 20px; font-size: 14px; gap: 8px; }
.aaw-wizard-page input.aaw-lead-field__input,
.aaw-wizard-page textarea.aaw-lead-field__input,
.aaw-wizard-page select.aaw-lead-field__input {
	appearance: none; -webkit-appearance: none;
	width: 100%; padding: 0; min-height: 0;
	border: none; border-radius: 0;
	font-size: 16px; font-family: var(--aaw-font); line-height: 1.4;
	color: #363841; background: transparent;
	box-shadow: none; box-sizing: border-box;
}
.aaw-wizard-page input.aaw-lead-field__input:focus,
.aaw-wizard-page textarea.aaw-lead-field__input:focus,
.aaw-wizard-page select.aaw-lead-field__input:focus {
	outline: none; background: transparent; color: #363841; box-shadow: none;
}
.aaw-wizard-page .aaw-lead-field__label {
	font-family: var(--aaw-font); font-weight: 700; font-size: 12px;
	letter-spacing: 0.84px; text-transform: uppercase; color: #c2c2c6;
}
.aaw-wizard-page .aaw-lead-field { border-color: #eeeef0; }
.aaw-wizard-page .aaw-lead-field:focus-within { border-color: var(--aaw-primary); }

/* Phone field with fixed +61 prefix — inline, not overlaid (template-question). */
.aaw-wizard-page .aaw-phone-wrap input.aaw-lead-field__input,
.aaw-phone-wrap input.aaw-lead-field__input { padding-left: 0; }

/* ===== OTP verification (template-question/otp.html) ===== */
/* template-question anchors the Continue button near the bottom of the
   screen (a big gap under the timer) — replicated responsively via
   min-height + margin-bottom:auto instead of the mockup's fixed 380px,
   which was calibrated to one static viewport. */
.aaw-step--otp {
	text-align: left; display: flex; flex-direction: column;
	min-height: calc(100vh - 84px - 80px - 24px);
}
.aaw-otp-boxes { display: flex; gap: 20px; margin: 0 0 16px; }
.aaw-wizard-page input.aaw-otp-box,
.aaw-otp-box {
	width: 68px; height: 66px; text-align: center;
	font-family: var(--aaw-font); font-size: 20px; font-weight: 400; color: #363841;
	background: #fff; border: 1px solid #eeeef0;
	border-radius: 8px; box-shadow: none;
	appearance: none; -webkit-appearance: none; box-sizing: border-box; padding: 0;
}
.aaw-wizard-page input.aaw-otp-box:focus,
.aaw-otp-box:focus { outline: none; border-color: var(--aaw-primary); box-shadow: none; }
.aaw-otp-expiry { font-size: 14px; color: #9c9da2; margin: 0 0 auto; }
.aaw-otp-expiry__time { color: red; font-weight: 400; }
.aaw-otp-resend { font-size: 14px; color: #9c9da2; margin-top: 16px; }
.aaw-otp-resend__link { color: var(--aaw-primary); font-weight: 600; text-decoration: none; }
.aaw-otp-resend__link:hover { text-decoration: underline; }
.aaw-wizard-page .aaw-btn.aaw-btn--otp { width: 330px; height: 48px; padding: 0 24px; }
/* Template keeps otp-box at 68x66 and the Continue button at a fixed 330px
   at every width it was actually designed for (tested down to 390px) — only
   shrink below that, on genuinely narrow phones, to avoid overflow. */
@media (max-width: 379px) {
	.aaw-otp-boxes { gap: 12px; }
	.aaw-wizard-page input.aaw-otp-box, .aaw-otp-box { width: 56px; height: 56px; }
	.aaw-wizard-page .aaw-btn.aaw-btn--otp { width: 100%; }
}

/* ===== Agent registration & dashboard ===== */
/* Agent register — card-less, 686px wide, two fields per row (Figma). */
.aaw-agent-register .aaw-step--lead { max-width: 686px; margin: 0 auto; }
.aaw-agent-register .aaw-lead-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
/* Login form stacks vertically (Figma) — only registration is two-column. */
.aaw-agent-register .aaw-lead-form--login { grid-template-columns: 1fr; }
/* wpautop injects an empty <p> into the form — it must not occupy a grid cell. */
.aaw-agent-register .aaw-lead-form > p:empty { display: none; }
.aaw-agent-register .aaw-lead-field:has(textarea),
.aaw-agent-register .aaw-lead-form > .aaw-agent-formfoot,
.aaw-agent-register .aaw-agent-actions { grid-column: 1 / -1; }
@media (max-width: 600px) {
	.aaw-agent-register .aaw-lead-form { grid-template-columns: 1fr; }
}

/* Width hardening. These forms live inside .aaw-step--lead, which a site's
   Customizer CSS may force to display:flex;flex-direction:column (this one
   does, with !important). Inside a COLUMN flex container an item whose inline
   margins are `auto` stops stretching and shrinks to its own content width —
   which silently collapsed the login form to ~210px. Set an explicit width so
   the form fills its track no matter what display type the parent ends up
   with, and centre via auto margins only on the inline axis.
   Extra specificity (.aaw-wizard-page.aaw-agent-register — both classes are on
   the same element) so a theme/Elementor `form { max-width:100% }` can't win. */
.aaw-wizard-page.aaw-agent-register .aaw-lead-form { width: 100%; }
/* Uses `width` (not max-width) to cap the login form: this theme ships a
   `max-width:100%` on forms from a cross-origin stylesheet we can't outrank,
   so a max-width here is simply ignored. A fixed width still narrows the form
   on desktop, and that same inherited max-width:100% keeps it fluid on small
   screens — so the pair behaves exactly like width:min(100%,440px). */
.aaw-wizard-page.aaw-agent-register .aaw-lead-form--login {
	width: 440px;
	margin-left: auto; margin-right: auto;
}
.aaw-wizard-page.aaw-agent-register .aaw-agent-notice,
.aaw-wizard-page.aaw-agent-register .aaw-agent-tabs { width: 100%; }

/* Agent register/login are standalone account pages, not the quiz's Step 0 —
   the very light grey the quiz uses for labels/borders (per its Figma) is too
   low-contrast to read here, so give these forms accessible contrast. */
/* .aaw-wizard-page and .aaw-agent-register/.aaw-agent-dashboard sit on the SAME
   element, so chaining them (no descendant space) gives 3-class specificity —
   enough to beat the generic `.aaw-wizard-page .aaw-lead-field__label` above
   without relying on source order. */
.aaw-wizard-page.aaw-agent-register .aaw-lead-field__label,
.aaw-wizard-page.aaw-agent-dashboard .aaw-lead-field__label { color: var(--aaw-muted); }
.aaw-wizard-page.aaw-agent-register .aaw-lead-field,
.aaw-wizard-page.aaw-agent-dashboard .aaw-lead-field { border-color: var(--aaw-border); }
.aaw-wizard-page.aaw-agent-register .aaw-lead-field:focus-within,
.aaw-wizard-page.aaw-agent-dashboard .aaw-lead-field:focus-within {
	border-color: var(--aaw-primary);
	box-shadow: 0 0 0 3px rgba(0,15,159,0.08);
}
/* Single-field OTP step: don't stretch one lone input across the full width.
   Same width-not-max-width reasoning as the login form above. */
.aaw-wizard-page.aaw-agent-register .aaw-lead-form:has(.aaw-otp-input) {
	width: 440px; margin-left: auto; margin-right: auto;
}
.aaw-agent-register .aaw-otp-input {
	text-align: center; letter-spacing: 0.5em; font-size: 20px; font-weight: 700;
}
.aaw-agent-dashboard { padding-top: 40px; padding-bottom: 64px; }
.aaw-agent-dashboard .aaw-wizard-container { max-width: 920px; }
.aaw-agent-dashboard .aaw-step--lead { max-width: 560px; margin: 0 auto; }
.aaw-agent-actions { display: flex; gap: 12px; align-items: center; margin-top: 6px; }
.aaw-agent-actions .aaw-btn { justify-content: center; }
.aaw-agent-actions .aaw-btn--primary { flex: 1; }
.aaw-agent-notice {
	max-width: 920px; margin: 0 auto 18px;
	padding: 13px 18px; border-radius: var(--aaw-radius-sm);
	background: #e7f7ec; border: 1px solid #b7e5c4; color: #1b5e33;
	font-size: 14px; font-weight: 600;
}
.aaw-agent-register .aaw-agent-notice { max-width: 560px; }
/* Register / Log in switcher tabs */
.aaw-agent-tabs {
	display: flex; gap: 4px; padding: 4px;
	background: var(--aaw-bg-soft); border-radius: 999px;
	max-width: 320px; margin: 0 auto 24px;
}
.aaw-agent-tab {
	flex: 1; text-align: center; padding: 11px 18px; min-height: 44px;
	border-radius: 999px; font-weight: 700; font-size: 14px;
	color: var(--aaw-muted); text-decoration: none;
	display: flex; align-items: center; justify-content: center;
	transition: background 0.15s, color 0.15s;
}
.aaw-agent-tab:hover { color: var(--aaw-primary); text-decoration: none; }
.aaw-agent-tab--active {
	background: var(--aaw-primary); color: #fff;
	box-shadow: 0 6px 16px -8px rgba(0,15,159,0.5);
}
.aaw-agent-tab--active:hover { color: #fff; }
.aaw-agent-formfoot { text-align: center; font-size: 13px; margin: 14px 0 0; }
.aaw-agent-formfoot a { color: var(--aaw-primary); font-weight: 600; }

.aaw-otp-input {
	text-align: center; font-size: 24px !important; font-weight: 800;
	letter-spacing: 0.4em; text-indent: 0.4em;
}

/* Top bar: identity + actions */
.aaw-agent-topbar {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	background: var(--aaw-bg); border: 1px solid var(--aaw-border);
	border-radius: var(--aaw-radius); padding: 18px 24px;
	box-shadow: var(--aaw-shadow); margin-bottom: 20px; flex-wrap: wrap;
}
.aaw-agent-topbar__id { display: flex; align-items: center; gap: 14px; min-width: 0; }
.aaw-agent-avatar {
	width: 48px; height: 48px; border-radius: 50%; flex: none;
	background: var(--aaw-primary); color: #fff;
	display: flex; align-items: center; justify-content: center;
	font-size: 20px; font-weight: 800;
}
.aaw-agent-topbar__meta { display: flex; flex-direction: column; min-width: 0; }
.aaw-agent-topbar__name { font-weight: 800; font-size: 17px; letter-spacing: -0.01em; }
.aaw-agent-topbar__email { font-size: 13px; color: var(--aaw-muted); overflow: hidden; text-overflow: ellipsis; }
.aaw-agent-topbar__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.aaw-btn--compact { padding: 11px 20px; font-size: 14px; gap: 8px; min-height: 44px; }
.aaw-btn--compact svg { flex: none; }

/* Single-column card stack */
.aaw-agent-grid { display: grid; grid-template-columns: 1fr; gap: 16px; margin-bottom: 16px; }
.aaw-agent-dashboard .aaw-widget { margin-bottom: 16px; }

/* Commission stat tiles */
.aaw-agent-stats { display: grid; grid-template-columns: 1fr; gap: 12px; }
@media (min-width: 640px) { .aaw-agent-stats { grid-template-columns: repeat(3, 1fr); } }
.aaw-agent-stat {
	border: 2px solid var(--aaw-border); border-radius: var(--aaw-radius-sm);
	padding: 16px 18px; display: flex; flex-direction: column; gap: 6px;
	background: var(--aaw-bg);
}
.aaw-agent-stat--primary { background: var(--aaw-primary); border-color: var(--aaw-primary); }
.aaw-agent-stat--primary .aaw-agent-stat__label { color: rgba(255,255,255,0.75); }
.aaw-agent-stat--primary .aaw-agent-stat__value { color: #fff; }
.aaw-agent-stat__label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--aaw-grey); }
.aaw-agent-stat__value { font-size: 22px; font-weight: 800; letter-spacing: -0.02em; color: var(--aaw-text); }

/* Booking history table */
.aaw-agent-tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.aaw-agent-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.aaw-agent-table th {
	text-align: left; padding: 10px 12px; font-size: 12px; font-weight: 700;
	text-transform: uppercase; letter-spacing: 0.05em; color: var(--aaw-grey);
	border-bottom: 2px solid var(--aaw-border); white-space: nowrap;
}
.aaw-agent-table td {
	padding: 12px; border-bottom: 1px solid var(--aaw-border);
	vertical-align: top; color: var(--aaw-text);
}
.aaw-agent-table tr:last-child td { border-bottom: none; }
.aaw-agent-table__details { font-size: 13px; color: var(--aaw-muted); line-height: 1.5; min-width: 220px; }

/* Withdrawals */
.aaw-agent-subtitle { font-size: 14px; font-weight: 700; margin: 20px 0 10px; color: var(--aaw-muted); text-transform: uppercase; letter-spacing: 0.05em; }
.aaw-agent-wdlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.aaw-agent-wd {
	display: flex; align-items: center; gap: 12px;
	padding: 12px 16px; border: 2px solid var(--aaw-border);
	border-radius: var(--aaw-radius-sm); background: var(--aaw-bg);
}
.aaw-agent-wd__amount { font-weight: 800; font-size: 15px; }
.aaw-agent-wd__date { flex: 1; font-size: 13px; color: var(--aaw-muted); }
.aaw-wd-badge {
	display: inline-flex; align-items: center; padding: 4px 12px;
	border-radius: 999px; font-size: 12px; font-weight: 700;
}
.aaw-wd-badge--pending { background: #fdf0d5; color: #8a6116; }
.aaw-wd-badge--done { background: #d5f5df; color: #1b5e33; }
.aaw-agent-cardtitle { display: flex; align-items: center; gap: 10px; }
.aaw-agent-cardtitle svg { color: var(--aaw-primary); flex: none; }
.aaw-agent-count {
	margin-left: auto; min-width: 26px; height: 26px; padding: 0 8px;
	border-radius: 999px; background: #eef0ff; color: var(--aaw-primary);
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 13px; font-weight: 800;
}
.aaw-agent-empty {
	text-align: center; padding: 28px 16px; border: 2px dashed var(--aaw-border);
	border-radius: var(--aaw-radius-sm); color: var(--aaw-muted);
}
.aaw-agent-empty svg { width: 32px; height: 32px; color: var(--aaw-grey); }
.aaw-agent-empty p { margin: 10px 0 0; font-size: 14px; line-height: 1.5; }

/* Property rows */
.aaw-agent-properties { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.aaw-agent-property {
	display: flex; align-items: center; gap: 12px;
	padding: 14px 16px; border: 2px solid var(--aaw-border);
	border-radius: var(--aaw-radius-sm); background: var(--aaw-bg);
	transition: border-color 0.15s;
}
.aaw-agent-property:hover { border-color: #cfd3ff; }
.aaw-agent-property__icon { flex: none; color: var(--aaw-primary); display: flex; }
.aaw-agent-property__addr { flex: 1; font-weight: 600; font-size: 15px; line-height: 1.4; }
.aaw-agent-property form { margin: 0; flex: none; }
.aaw-wizard-page button.aaw-agent-iconbtn {
	width: 44px; height: 44px; border-radius: 10px; flex: none;
	display: flex; align-items: center; justify-content: center;
	background: transparent; border: 1.5px solid var(--aaw-border);
	color: var(--aaw-muted); cursor: pointer; padding: 0;
	transition: border-color 0.15s, color 0.15s, background 0.15s;
}
.aaw-wizard-page button.aaw-agent-iconbtn:hover,
.aaw-wizard-page button.aaw-agent-iconbtn:focus {
	background: rgba(214, 54, 56, 0.06); border-color: var(--aaw-danger); color: var(--aaw-danger);
}

@media (max-width: 600px) {
	.aaw-agent-actions { flex-direction: column; }
	.aaw-agent-actions .aaw-btn { width: 100%; }
	.aaw-agent-topbar { padding: 16px; }
	.aaw-agent-topbar__actions { width: 100%; }
	.aaw-agent-topbar__actions .aaw-btn { flex: 1; justify-content: center; }
}

/* ===== Shortcode embed mode — blend with host page ===== */
.aaw-wizard-page--embed {
	background: #f7f7f8;
	padding: 0;
}
.aaw-wizard-page--embed .aaw-wizard-container {
	max-width: 100%;
}

/* ===== WooCommerce Cart / Checkout — booking meta styling =====
   Loaded on cart & checkout via AAW_Frontend::enqueue_checkout_styles(). */
.woocommerce-checkout .cart_item dl.variation,
.woocommerce-cart .cart_item dl.variation,
.woocommerce table.shop_table .cart_item dl.variation {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 2px 10px;
	margin: 8px 0 0;
	padding: 10px 14px;
	background: #f6f7fb;
	border-radius: 10px;
	border-left: 3px solid #000f9f;
	font-size: 13px;
}
.woocommerce-checkout .cart_item dl.variation dt,
.woocommerce-cart .cart_item dl.variation dt,
.woocommerce table.shop_table .cart_item dl.variation dt {
	font-weight: 700;
	color: #0a0d2b;
	margin: 0;
	padding: 0;
	float: none;
}
.woocommerce-checkout .cart_item dl.variation dd,
.woocommerce-cart .cart_item dl.variation dd,
.woocommerce table.shop_table .cart_item dl.variation dd {
	margin: 0;
	padding: 0;
	color: #3a3f63;
	float: none;
}
.woocommerce-checkout .cart_item dl.variation dd p,
.woocommerce-cart .cart_item dl.variation dd p {
	margin: 0;
	font-size: 13px;
}

/* ===== Popup Overlay ===== */
.aaw-popup-overlay {
	position: fixed;
	inset: 0;
	z-index: 99999;
	background: rgba(10, 13, 43, 0.5);
	display: flex;
	align-items: flex-end;
	justify-content: center;
	backdrop-filter: blur(4px);
}
.aaw-popup-panel {
	background: var(--aaw-bg, #fff);
	border-radius: 24px 24px 0 0;
	width: 100%;
	max-width: 680px;
	max-height: 85vh;
	overflow-y: auto;
	padding: 32px 28px 24px;
	transform: translateY(100%);
	transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
	box-shadow: 0 -8px 40px rgba(0, 0, 0, 0.2);
}
.aaw-popup-overlay--open .aaw-popup-panel {
	transform: translateY(0);
}
.aaw-popup-header {
	text-align: center;
	margin-bottom: 24px;
}
.aaw-popup-icon {
	font-size: 36px;
	margin-bottom: 12px;
}
.aaw-popup-title {
	font-size: 24px;
	font-weight: 800;
	letter-spacing: -0.02em;
	margin: 0 0 8px;
}
.aaw-popup-desc {
	font-size: 15px;
	color: var(--aaw-muted, #3a3f63);
	margin: 0;
	line-height: 1.5;
}
.aaw-popup-body {
	margin-bottom: 24px;
}
.aaw-popup-grid {
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)) !important;
	gap: 12px !important;
}
.aaw-popup-footer {
	display: flex;
	gap: 12px;
	justify-content: center;
	padding-top: 16px;
	border-top: 1px solid var(--aaw-border, #e6e7ec);
}
.aaw-popup-footer .aaw-btn {
	flex: 1;
	justify-content: center;
	max-width: 220px;
}

@media (min-width: 601px) {
	.aaw-popup-panel {
		border-radius: 24px;
		margin-bottom: 5vh;
		align-self: center;
	}
	.aaw-popup-overlay {
		align-items: center;
	}
}

/* ===== Rooms page — "Customise your rooms" quote layout ===== */
/* Higher specificity than ".aaw-wizard-page--embed .aaw-wizard-container"
   (shortcode embed mode pins max-width:100%) so the rooms screen can still
   widen when its host page actually has the room; harmless where it doesn't —
   max-width never forces an element past its parent's real width. */
.aaw-wizard-container--wide,
.aaw-wizard-page--embed .aaw-wizard-container.aaw-wizard-container--wide {
	max-width: 1040px;
}

.aaw-rq {
	display: flex; align-items: flex-start; gap: 40px;
	/* Top padding omitted — this site's #aaw-wizard-progress already carries a
	   forced 80px margin-bottom (WP Customizer Additional CSS), more than
	   the template's own 40px topbar-to-content gap. */

	/* ⚙️ WIDTH OF THE "CUSTOMISE YOUR ROOMS" SCREEN — change this one value.
	   It is the only thing that controls how wide that step is; the room
	   cards, the section headings and the sidebar all size themselves from
	   it. 900px was cramped, 1080px gives the room names and prices more
	   breathing space. Everything below 720px ignores it and goes
	   full-width, so raising it can't affect phones. */
	max-width: 1080px;

	margin: 0 auto; padding: 0 24px 80px; box-sizing: border-box;
}
.aaw-rq-column { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 26px; }

.aaw-rq-section { display: flex; flex-direction: column; gap: 10px; }
.aaw-rq-category {
	font-size: 14px; font-weight: 600; color: var(--aaw-primary);
	letter-spacing: 2.8px; text-transform: uppercase; margin: 0;
}

.aaw-rq-card { position: relative; background: #fff; border: none; border-radius: 8px; padding: 24px 24px 24px 16px; box-shadow: none; }
/* Raise stacking context so the absolutely-positioned tier popup renders above the next card. */
.aaw-rq-card--tier-open { z-index: 6; }
.aaw-rq-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.aaw-rq-card__main { display: flex; gap: 10px; align-items: flex-start; }

.aaw-wizard-page button.aaw-rq-check, .aaw-rq-check {
	flex: none; width: 20px; height: 20px; margin-top: 2px; padding: 0;
	border: none; background: none; cursor: pointer; display: flex;
}
.aaw-rq-check svg { width: 100%; height: 100%; display: block; }

.aaw-rq-titles { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.aaw-rq-title-row { display: flex; align-items: center; gap: 8px; }
.aaw-rq-title { font-size: 16px; font-weight: 600; letter-spacing: normal; color: #262832; }
.aaw-rq-subtitle { font-size: 12px; color: #7c7d83; }

.aaw-wizard-page button.aaw-rq-tier-toggle, .aaw-rq-tier-toggle {
	border: none; background: none; padding: 0; width: 18px; height: 18px;
	cursor: pointer; display: inline-flex; align-items: center; justify-content: center; flex: none;
}
.aaw-rq-tier-toggle svg { width: 18px; height: 18px; display: block; }

/* Labelled "2 sizes" pill — replaces the unlabelled chevron circle that
   customers were not noticing (feedback 6 Aug). */
.aaw-wizard-page button.aaw-rq-tier-toggle, .aaw-rq-tier-toggle {
	width: auto; height: auto; border-radius: 999px;
	background: var(--aaw-primary, #000f9f); border: none;
	padding: 4px 10px; gap: 5px; flex: none;
	display: inline-flex; align-items: center; cursor: pointer;
}
.aaw-rq-tier-toggle__label {
	font-size: 11px; font-weight: 600; color: #fff; white-space: nowrap; line-height: 1.4;
}
.aaw-rq-tier-toggle__chev { display: inline-flex; transition: transform 0.15s ease; }
.aaw-rq-tier-toggle__chev svg { width: 11px; height: 11px; display: block; }
/* ICONS.chevron carries stroke="#000F9F" as a presentation attribute ON THE
   PATH — the same blue as this pill, so the arrow was invisible. Setting
   `stroke` on the <svg> does not help: the path's own attribute beats an
   inherited value. It has to be targeted on the path itself. */
.aaw-rq-tier-toggle__chev svg path { stroke: #fff; }
/* Points down when closed, up when open — same affordance as "See Details". */
.aaw-rq-tier-toggle--open .aaw-rq-tier-toggle__chev { transform: rotate(180deg); }

.aaw-rq-price-col { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; flex: none; }
.aaw-rq-price { font-size: 16px; font-weight: 600; white-space: nowrap; }

.aaw-wizard-page button.aaw-rq-more, .aaw-rq-more {
	display: flex; align-items: center; justify-content: center; gap: 8px;
	background: #f7f7f8; border: none; padding: 8px 16px;
	border-radius: 8px; font-size: 12px; font-weight: 600; color: #363841;
	cursor: pointer; white-space: nowrap; min-width: 148px;
}
.aaw-wizard-page .aaw-rq-card--open button.aaw-rq-more, .aaw-rq-card--open .aaw-rq-more { border-radius: 8px 8px 0 0; }
.aaw-rq-chevron { display: inline-flex; transition: transform 0.15s ease; }
.aaw-rq-chevron svg { display: block; }
.aaw-rq-more--open .aaw-rq-chevron { transform: rotate(180deg); }

.aaw-rq-detail { padding-left: 30px; width: 100%; }
.aaw-rq-detail__inner {
	background: #f7f7f8; border-radius: 0 0 8px 8px; padding: 16px;
	display: flex; flex-direction: column; gap: 16px;
}
.aaw-rq-cols { display: flex; justify-content: space-between; gap: 16px; font-size: 12px; width: 100%; }
.aaw-rq-col { display: flex; gap: 6px; flex: 1 1 0; min-width: 0; }
.aaw-rq-col__dashes { color: #9c9da2; white-space: nowrap; }
.aaw-rq-col__dashes div, .aaw-rq-col__lines div { line-height: 14px; margin-bottom: 8px; }
.aaw-rq-col__dashes div:last-child, .aaw-rq-col__lines div:last-child { margin-bottom: 0; }
.aaw-rq-col__lines { color: #4b4d55; min-width: 0; }

/* Size-variant tier popup (template-question: .tier-popup / .tier-option) */
.aaw-rq-tier-popup {
	position: absolute; left: 44px; right: 24px; top: 48px;
	background: #fff; border-radius: 8px; box-shadow: 0 4px 12px 4px rgba(0,0,0,0.08);
	padding: 12px 16px; z-index: 5; display: flex; flex-direction: column;
}
.aaw-wizard-page button.aaw-rq-tier-option, .aaw-rq-tier-option {
	display: flex; align-items: center; justify-content: space-between; gap: 8px;
	padding: 10px 0; border: none; background: none; width: 100%;
	text-align: left; cursor: pointer; font-family: var(--aaw-font);
}
.aaw-rq-tier-option__left { display: flex; align-items: center; gap: 8px; min-width: 0; }
/* min-width:0 lets the NAME absorb the squeeze; without it the flex item refuses
   to shrink below its content and pushes the price out of the popup instead. */
.aaw-rq-tier-option__name { font-size: 14px; color: #262832; min-width: 0; }
.aaw-rq-tier-option--selected .aaw-rq-tier-option__name { font-weight: 600; }
.aaw-rq-tier-option__size { font-size: 10px; color: #262832; font-weight: 600; white-space: nowrap; }
/* A price must never break across lines ("AUD" / "890") — flex: none keeps it
   whole and makes the long room name wrap instead. */
.aaw-rq-tier-option__price { font-size: 14px; color: #262832; display: flex; align-items: center; gap: 6px; flex: none; white-space: nowrap; }
.aaw-rq-tier-option__check { width: 13px; height: 9px; display: flex; }
.aaw-rq-tier-option__check svg { display: block; width: 100%; height: 100%; }

/* Extras nested inside a room's detail panel (template-question: .addon-row) */
.aaw-rq-addon { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; font-size: 12px; }
.aaw-rq-addon__left { display: flex; align-items: center; gap: 8px; min-width: 0; }
.aaw-wizard-page button.aaw-rq-addon__check, .aaw-rq-addon__check {
	border: none; background: none; padding: 0; width: 16px; height: 16px; cursor: pointer; display: flex;
}
.aaw-rq-addon__check svg { width: 100%; height: 100%; display: block; }
.aaw-rq-addon__label { color: #4b4d55; }
.aaw-rq-addon__price { color: #4b4d55; font-weight: 600; flex: none; white-space: nowrap; }

.aaw-wizard-page button.aaw-rq-add, .aaw-rq-add {
	align-self: flex-start; display: flex; align-items: center; gap: 10px;
	border: 1px solid var(--aaw-primary); background: none; color: var(--aaw-primary);
	font-size: 12px; font-weight: 600; padding: 8px 16px 8px 12px; border-radius: 80px; cursor: pointer;
}
.aaw-rq-add:hover { background: #eef0ff; }
.aaw-rq-add svg { display: block; }

/* Duplicate-instance remove button (template-question: .remove-instance) */
.aaw-wizard-page button.aaw-rq-remove, .aaw-rq-remove {
	position: absolute; top: 0; right: 0; width: 32px; height: 32px;
	border: none; background: none; padding: 0; cursor: pointer;
}
/* The remove button is taken out of flow, so the head must reserve room for it
   or the price slides underneath (it overlapped by 16px at 390px). The adjacent
   sibling keeps this scoped to duplicated cards, which are the only ones that
   render a remove button. */
.aaw-rq-remove + .aaw-rq-card__head { padding-right: 30px; }
.aaw-rq-remove__bg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.aaw-rq-remove__bg svg { width: 100%; height: 100%; display: block; }
.aaw-rq-remove__cross { position: absolute; width: 12px; height: 12px; top: 10px; right: 10px; display: block; }
.aaw-rq-remove__cross svg { width: 100%; height: 100%; display: block; }

.aaw-rq-sidebar {
	/* box-sizing matters at the mobile breakpoint below, which switches this to
	   width:100% — with the default content-box that became 100% + 40px of
	   padding and pushed the card past the page's own side padding. */
	flex: none; width: 245px; background: #fff; border: none; box-sizing: border-box;
	border-radius: 8px; padding: 20px; box-shadow: none;
	position: sticky; top: 88px; display: flex; flex-direction: column;
}
.aaw-rq-sidebar__label {
	font-size: 14px; font-weight: 600; color: var(--aaw-primary);
	letter-spacing: 2.8px; text-transform: uppercase; margin: 0 0 8px;
}
.aaw-rq-sidebar__img { width: 130px; height: 130px; object-fit: cover; border-radius: 4px; }
.aaw-rq-sidebar__estimate-label { font-size: 12px; color: #9c9da2; margin: 16px 0 4px; }
.aaw-rq-sidebar__estimate { font-size: 20px; font-weight: 600; color: #000; margin: 0; }
.aaw-rq-sidebar__divider { border: none; border-top: 1px solid #9c9da2; opacity: 0.3; margin: 16px 0; }
.aaw-rq-sidebar__rooms-label {
	font-size: 10px; font-weight: 700; color: #c2c2c6;
	letter-spacing: 1.2px; text-transform: uppercase; margin: 0 0 8px;
}
.aaw-rq-sidebar__rooms {
	list-style: none; margin: 0 0 20px; padding: 0; display: flex; flex-direction: column;
	gap: 8px; font-size: 12px; max-height: 260px; overflow-y: auto;
}
.aaw-rq-sidebar__rooms li { display: flex; justify-content: space-between; gap: 8px; color: #4b4d55; }
.aaw-rq-sidebar__rooms li span:last-child { font-weight: 600; color: #262832; white-space: nowrap; }
.aaw-wizard-page button.aaw-rq-next, .aaw-rq-next { width: 100%; justify-content: center; margin-top: auto; }

@media (max-width: 720px) {
	.aaw-rq { flex-direction: column; padding: 0 16px 60px; }
	.aaw-rq-sidebar { width: 100%; position: static; top: auto; }
}

/* Phones. Everything above this point is sized for the desktop room list; at
   390px the same rules put the size-variant popup on top of the NEXT section
   and squeezed room titles into a 94px column. */
@media (max-width: 600px) {
	.aaw-rq-card { padding: 16px; }

	/* The popup is absolutely positioned against the card, but on a phone it is
	   twice the card's height — it hung 118px past the card and covered the
	   section below it. In normal flow it pushes that content down instead, so
	   it can neither overlap nor be clipped by the viewport. */
	.aaw-rq-tier-popup {
		position: static;
		margin: 12px 0 0;
		padding: 4px 12px;
		background: #f7f7f8;
		box-shadow: none;
	}

	/* "See more N items" carried min-width:148px, so the price column claimed
	   151px of a 329px card and the title had 94px left to wrap in. Let it size
	   to its text and shrink. */
	.aaw-wizard-page button.aaw-rq-more, .aaw-rq-more {
		min-width: 0;
		padding: 8px 12px;
		max-width: 100%;
	}
	.aaw-rq-price-col { min-width: 0; }

	/* Long room names get the remaining space rather than overflowing it. */
	.aaw-rq-card__head { gap: 10px; }
	.aaw-rq-card__main { min-width: 0; flex: 1 1 auto; }
	.aaw-rq-title { overflow-wrap: anywhere; }

	/* On a card that has a "See more" action, give the title the full width and
	   drop price + action onto their own row. Beside a ~140px button the title
	   was left with ~110px and broke "Dining area — standard" over three lines.
	   Cards without the button keep price top-right, where it belongs; browsers
	   without :has() also keep that layout — tighter, but not broken. */
	.aaw-rq-card__head:has(.aaw-rq-more) { flex-wrap: wrap; }
	.aaw-rq-card__head:has(.aaw-rq-more) .aaw-rq-card__main { flex: 1 1 100%; }
	.aaw-rq-card__head:has(.aaw-rq-more) .aaw-rq-price-col {
		flex: 1 1 100%; flex-direction: row; align-items: center;
		justify-content: space-between; gap: 12px;
	}

	/* Two side-by-side item columns are unreadable at this width. */
	.aaw-rq-cols { flex-direction: column; gap: 8px; }
	.aaw-rq-detail { padding-left: 0; }
}


/* ============================================================
   Date step — Figma 974-3762 day cards.
   Replaces the flat "Tue, 11 Aug 2026 ⟶" rows: a date rail, the
   full date, the crew's working window, and a radio.
   Sized in relative units so it holds from 320px up without a
   separate mobile layout.
   ============================================================ */

.aaw-datewidget__lead {
	font-size: 14px; color: var(--aaw-muted, #7c7d83);
	margin: 0 0 12px; line-height: 1.4;
}
.aaw-dateaddr .aaw-datewidget__lead { margin-top: 28px; }

.aaw-wizard-page button.aaw-daycard, .aaw-daycard {
	display: flex; align-items: center; gap: 16px; width: 100%;
	background: #fff; border: 2px solid transparent; border-radius: 12px;
	padding: 16px; margin-bottom: 12px; cursor: pointer; text-align: left;
	font-family: var(--aaw-font); box-shadow: 0 1px 2px rgba(10,13,43,0.04);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.aaw-daycard:hover { border-color: #c9cfee; }
.aaw-daycard--selected { border-color: var(--aaw-primary, #000f9f); }

/* Fixed-width rail so every card's text starts on the same line. */
.aaw-daycard__rail {
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	flex: none; width: 52px; line-height: 1.1;
}
.aaw-daycard__dow, .aaw-daycard__mon {
	font-size: 11px; font-weight: 700; letter-spacing: 0.06em; color: #262832;
}
.aaw-daycard__num {
	font-size: 30px; font-weight: 700; color: var(--aaw-primary, #000f9f); margin: 2px 0;
}

.aaw-daycard__meta { display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1 1 auto; }
.aaw-daycard__weekday { font-size: 15px; color: #262832; }
.aaw-daycard__date { font-size: 13px; color: #7c7d83; }
.aaw-daycard__hours { font-size: 13px; font-weight: 600; color: #262832; }

.aaw-daycard__radio {
	flex: none; width: 22px; height: 22px; border-radius: 50%;
	border: 2px solid #d5d7e0; box-sizing: border-box;
	display: flex; align-items: center; justify-content: center;
}
.aaw-daycard__radio--on { border-color: var(--aaw-primary, #000f9f); }
.aaw-daycard__radio--on::after {
	content: ''; width: 10px; height: 10px; border-radius: 50%;
	background: var(--aaw-primary, #000f9f);
}

/* "Don't found the date? ↻ Refresh" */
.aaw-daterefresh {
	display: flex; align-items: center; justify-content: center;
	flex-wrap: wrap; gap: 6px 8px; margin: 16px 0 4px;
}
.aaw-daterefresh__q { font-size: 14px; color: #7c7d83; }
.aaw-wizard-page button.aaw-daterefresh__btn, .aaw-daterefresh__btn {
	display: inline-flex; align-items: center; gap: 6px;
	background: none; border: none; padding: 4px 2px; cursor: pointer;
	font-family: var(--aaw-font); font-size: 14px; font-weight: 700;
	color: var(--aaw-primary, #000f9f);
}
.aaw-daterefresh__btn:hover { text-decoration: underline; }
.aaw-daterefresh__icon { font-size: 15px; line-height: 1; }

/* Property address field with the label sitting inside the box. */
.aaw-dateaddr__field {
	display: block; background: #fff; border: none; border-bottom: 2px solid var(--aaw-primary, #000f9f);
	border-radius: 8px 8px 0 0; padding: 10px 14px 8px; cursor: text;
}
.aaw-dateaddr__label {
	display: block; font-size: 11px; font-weight: 600; letter-spacing: 0.06em;
	color: #a7a9ac; margin-bottom: 4px;
}
.aaw-wizard-page input.aaw-dateaddr__input, .aaw-dateaddr__input {
	width: 100%; border: none; outline: none; background: none; padding: 0;
	font-family: var(--aaw-font); font-size: 15px; color: #262832; box-shadow: none;
}

/* Narrow phones: the rail and gaps tighten rather than the text truncating. */
@media (max-width: 420px) {
	.aaw-daycard { gap: 12px; padding: 14px 12px; }
	.aaw-daycard__rail { width: 44px; }
	.aaw-daycard__num { font-size: 26px; }
	.aaw-daycard__weekday { font-size: 14px; }
	.aaw-daycard__date, .aaw-daycard__hours { font-size: 12px; }
}

/* A day the crew has already filled — visually distinct from a blackout so
   support can tell "we're full" from "we're closed". */
.aaw-calendar__day--full {
	color: #b9bbc4 !important; text-decoration: line-through; cursor: not-allowed;
}

/* ---- Rooms card, feedback 11 Aug --------------------------------------
   Three columns: title | actions | price. The sizes pill and "See Details"
   share the middle column so they stack on one left edge, which is what the
   annotated mockup's dashed guide line was showing. */
.aaw-rq-actions {
	display: flex; flex-direction: column; align-items: flex-start; gap: 8px;
	/* Fixed width, not flex:none — otherwise justify-content:space-between
	   floats this column to a different x on every card and the buttons
	   stagger down the page instead of forming a column. */
	flex: 0 0 168px; margin-left: 8px;
}
.aaw-rq-card__main { flex: 1 1 auto; min-width: 0; }
.aaw-rq-actions > .aaw-rq-more { margin: 0; }
/* Card no longer needs the old two-column price stack height. */
.aaw-rq-price-col { gap: 0; }

/* "+ Add items to this room" — same compact outlined pill as
   "+ Add another dining", not a full-width bar: they are the same kind of
   action and should carry the same weight. */
.aaw-wizard-page button.aaw-rq-additems, .aaw-rq-additems {
	margin: 0 0 0 46px; gap: 8px; align-self: flex-start;
}
.aaw-rq-additems .aaw-rq-chevron svg path { stroke: var(--aaw-primary, #000f9f); }
.aaw-rq-additems--open .aaw-rq-chevron { transform: rotate(180deg); }
/* Extras panel lines up under the room text, not the card edge. */
.aaw-rq-additems + .aaw-rq-detail { padding-left: 46px; padding-top: 8px; }

@media (max-width: 600px) {
	/* Three columns leave the title ~90px at phone width, so wrap instead.
	   `order` keeps the price beside the title on row 1 — without it the
	   buttons wrap first and the price ends up stranded underneath them. */
	.aaw-rq-card__head { flex-wrap: wrap; align-items: flex-start; }
	/* basis 0, not auto: with auto the title's own width wins and the price
	   is pushed onto a line of its own. */
	.aaw-rq-card__main { order: 1; flex: 1 1 0; min-width: 0; }
	.aaw-rq-price-col { order: 2; flex: none; }
	.aaw-rq-actions {
		order: 3; flex: 1 1 100%; flex-direction: row; flex-wrap: wrap;
		align-items: center; margin: 12px 0 0 34px;
	}
	.aaw-rq-additems, .aaw-wizard-page button.aaw-rq-additems { margin-left: 34px; }
	.aaw-rq-additems + .aaw-rq-detail { padding-left: 34px; }
}

/* An unchecked room still shows its price, greyed — the column keeps its
   shape, and the number reads as "available, not counted" rather than
   vanishing and leaving a hole in the card. */
.aaw-rq-price--off { color: #a7a9ac; }

/* ---- Australian address suggestions ----------------------------------
   The list floats over what follows instead of pushing the form down, so
   the layout doesn't jump while someone is typing. */
.aaw-lead-field, .aaw-dateaddr__field { position: relative; }
.aaw-addr-suggest {
	display: none; position: absolute; left: 0; right: 0; top: 100%; z-index: 40;
	background: #fff; border-radius: 10px; margin-top: 4px; overflow-y: auto;
	max-height: 260px; box-shadow: 0 10px 28px -8px rgba(10,13,43,0.28);
	border: 1px solid #e6e7ec;
}
.aaw-addr-suggest--open { display: block; }
.aaw-wizard-page button.aaw-addr-suggest__item, .aaw-addr-suggest__item {
	display: block; width: 100%; text-align: left; background: none; border: none;
	padding: 11px 14px; font-family: var(--aaw-font); font-size: 14px;
	line-height: 1.35; color: #262832; cursor: pointer;
	border-bottom: 1px solid #eef0f3; border-radius: 0;
}
.aaw-addr-suggest__item:last-child { border-bottom: none; }
.aaw-addr-suggest__item:hover,
.aaw-addr-suggest__item--active {
	background: #eef0ff; color: var(--aaw-primary, #000f9f);
}
