/* ============================================================
   A1 Luxury Nail and Spa — global design system + components
   ============================================================ */

:root {
	--a1-cream: #f6f2ee;
	--a1-cream-deep: #efe9e3;
	--a1-white: #ffffff;
	--a1-ink: #29241f;
	--a1-ink-soft: #4c443d;
	--a1-muted: #8a8078;
	--a1-line: #e7dfd7;
	--a1-rose: #c9767b;
	--a1-rose-dark: #ad5c62;
	--a1-rose-soft: #f6e7e5;
	--a1-gold: #c9a24b;
	--a1-dark: #211c18;
	--a1-dark-2: #2b251f;
	--a1-serif: 'Playfair Display', Georgia, serif;
	--a1-sans: 'Jost', 'Helvetica Neue', sans-serif;
	--a1-radius: 18px;
	--a1-shadow: 0 18px 40px -22px rgba(41, 36, 31, 0.35);
}

body {
	font-family: var(--a1-sans);
	color: var(--a1-ink);
	background: var(--a1-cream);
	-webkit-font-smoothing: antialiased;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: 90px;
}

/* Clip (not hide) any stray horizontal overflow — clip keeps position:sticky working. */
html,
body {
	overflow-x: clip;
}

/* ---------- Shared bits ---------- */

.a1-eyebrow,
.a1-pane__eyebrow {
	font-family: var(--a1-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: var(--a1-rose);
	margin: 0 0 14px;
}

/* The [hidden] attribute must always win, even over our own display rules. */
.a1-booking [hidden],
.a1-ai [hidden],
[data-testimonials] [hidden] {
	display: none !important;
}

/* Hello theme's reset.css paints every button #c36 (dark pink) on hover/focus.
   Neutralize it here; component rules below define their own hover/focus looks. */
[type=button]:focus,
[type=button]:hover,
[type=submit]:focus,
[type=submit]:hover,
button:focus,
button:hover {
	background-color: transparent;
	color: inherit;
	text-decoration: none;
}

.a1-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	font-family: var(--a1-sans);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.04em;
	padding: 13px 28px;
	border-radius: 999px;
	border: 1px solid transparent;
	cursor: pointer;
	transition: all 0.22s ease;
	line-height: 1;
	background: none;
}

.a1-btn--rose {
	background: #c8a39d;
	color: #fff;
}

.a1-btn--rose:hover:not(:disabled) {
	background: #b48d86;
	transform: translateY(-1px);
}

.a1-btn--rose:disabled {
	background: #e4e0dc;
	color: #7c7874;
	opacity: 1;
}

.a1-btn--rose:focus:not(:disabled) {
	background: #c8a39d;
	color: #fff;
}

.a1-btn--ghost {
	border-color: #e8e2dc;
	color: #3a3733;
	background: #fff;
}

.a1-btn--ghost:hover {
	border-color: #c8a39d;
	color: #b48d86;
}

.a1-btn:disabled {
	cursor: not-allowed;
}

.a1-btn:disabled:not(.a1-btn--rose) {
	opacity: 0.45;
}

/* ---------- Header ---------- */

.a1-header {
	position: sticky !important;
	top: 0;
	z-index: 999;
	background: rgba(255, 255, 255, 0.94) !important;
	backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--a1-line);
}

.a1-header .elementor-widget-button .elementor-button {
	background: #c8a39d;
	background-image: linear-gradient(90deg, #ff3e8e, #ff5757, #ff9f45, #ffd447, #4dd599, #45b8ff, #b15eff, #ff3e8e);
	background-size: 600px 100%;
	background-repeat: repeat;
	border-radius: 999px;
	font-family: var(--a1-sans);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.02em;
	padding: 13px 30px;
	color: #fff;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.28);
}

/* Gradient is the identity — hover feedback via brightness only. */
.a1-header .elementor-widget-button .elementor-button:hover {
	filter: brightness(0.92);
}

/* Gradient-filled wordmark (falls back to solid dark where unsupported). */
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
	.a1-brand__name {
		background-image: linear-gradient(90deg, #ff3e8e, #ff5757, #ff9f45, #ffd447, #4dd599, #45b8ff, #b15eff, #ff3e8e);
		background-size: 600px 100%;
		background-repeat: repeat;
		-webkit-background-clip: text;
		background-clip: text;
		-webkit-text-fill-color: transparent;
	}
}

.a1-hero .elementor-widget-button .elementor-button:hover {
	background: #b48d86;
}

.a1-brand {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
}

.a1-brand img {
	width: 54px;
	height: 54px;
	object-fit: contain;
}

.a1-brand__name {
	font-family: var(--a1-serif);
	font-size: 26px;
	font-weight: 600;
	color: #262524;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

.a1-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 38px;
}

.a1-nav a {
	font-family: var(--a1-sans);
	font-size: 17px;
	font-weight: 400;
	color: #84807d;
	text-decoration: none;
	letter-spacing: 0.02em;
	transition: color 0.2s ease;
}

.a1-nav a:hover {
	color: var(--a1-rose);
}

/* ---------- Hero ---------- */

.a1-hero .a1-hero-eyebrow {
	color: rgba(255, 255, 255, 0.85);
	letter-spacing: 0.34em;
	text-transform: uppercase;
	font-size: 12px;
	font-weight: 500;
}

.a1-hero h1 em {
	font-style: italic;
	font-weight: 500;
}

.a1-rating {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	color: #fff;
	font-family: var(--a1-sans);
	font-size: 17px;
}

.a1-rating__stars {
	color: #c8a39d;
	letter-spacing: 2px;
	font-size: 21px;
}

.a1-rating__text {
	color: rgba(255, 255, 255, 0.88);
	letter-spacing: 0.02em;
}

.a1-rating__count {
	color: rgba(255, 255, 255, 0.75);
}

/* ---------- Booking wizard ---------- */

.a1-booking {
	background: #fff;
	border: 0;
	border-radius: 0;
	padding: 0;
	box-shadow: none;
}

.a1-booking__head {
	padding: 0 60px;
}

.a1-booking__title {
	font-family: var(--a1-serif);
	font-size: clamp(34px, 3.4vw, 46px);
	font-weight: 600;
	color: #262524;
	margin: 0 0 10px;
}

.a1-booking__sub {
	font-family: var(--a1-sans);
	font-size: 20px;
	color: #7c7874;
	margin: 0 0 34px;
}

.a1-booking__divider {
	border-top: 1px solid #e7e4df;
	margin: 0 0 44px;
}

.a1-booking__body {
	padding: 0 60px 4px;
}

/* Inset the pane content 48px past the 60px gutter, like the design. */
.a1-services,
.a1-specialists,
.a1-details,
.a1-datetime,
.a1-summary,
.a1-pane__nav,
.a1-booking__error,
.a1-success {
	margin-left: 48px;
	margin-right: 48px;
}

.a1-booking__steps {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 40px;
}

.a1-step {
	display: flex;
	align-items: center;
	gap: 9px;
}

.a1-step__dot {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	font-weight: 500;
	border: 0;
	color: #7c7874;
	background: #e4e0dc;
	transition: all 0.25s ease;
}

.a1-step__check {
	display: none;
}

.a1-step.is-active .a1-step__dot {
	background: #c8a39d;
	color: #fff;
}

.a1-step.is-done .a1-step__dot {
	background: #f0e6e3;
	color: #b48d86;
}

.a1-step.is-done .a1-step__num {
	display: none;
}

.a1-step.is-done .a1-step__check {
	display: inline;
}

.a1-step__label {
	font-size: 16px;
	font-weight: 400;
	color: #8a8580;
	letter-spacing: 0.01em;
}

.a1-step.is-active .a1-step__label {
	color: #262524;
	font-weight: 600;
}

.a1-step.is-done .a1-step__label {
	color: #4c443d;
}

.a1-step__sep {
	width: 18px;
	border-top: 1px solid #d8d4cf;
}

.a1-pane {
	display: none;
}

.a1-pane.is-active {
	display: block;
	animation: a1fade 0.35s ease;
}

@keyframes a1fade {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: none; }
}

.a1-pane__eyebrow {
	text-align: left;
	color: #7c7874;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.16em;
	margin-bottom: 30px;
}

.a1-services {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px 4px;
}

button.a1-service,
.a1-service {
	position: relative;
	text-align: left;
	background: #fff;
	border: 1.5px solid transparent;
	border-radius: 4px;
	padding: 32px 30px 28px;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	gap: 0;
	transition: border-color 0.2s ease;
	font-family: var(--a1-sans);
	white-space: normal;
}

button.a1-service {
	display: flex;
	flex-direction: column;
	min-width: 0;
	max-width: 100%;
}

.a1-service:hover {
	border-color: #ede4e0;
}

.a1-service.is-selected {
	border-color: #d0aca6;
	box-shadow: none;
}

.a1-service__badge {
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #7c7874;
}

.a1-service__radio {
	position: absolute;
	top: 28px;
	right: 28px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	border: 1.5px solid #dfdbd6;
	transition: all 0.2s ease;
	background: #fff;
}

.a1-service.is-selected .a1-service__radio,
.a1-specialist.is-selected .a1-service__radio {
	border: 5.5px solid #c8a39d;
	box-shadow: none;
}

.a1-service__title {
	font-family: var(--a1-serif);
	font-size: 28px;
	font-weight: 600;
	color: #262524;
	padding-right: 34px;
	margin: 16px 0 10px;
}

.a1-service__desc {
	font-size: 17px;
	line-height: 1.5;
	color: #7c7874;
	flex: 1;
}

.a1-service__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-top: 0;
	padding-top: 24px;
	margin-top: 0;
}

.a1-service__duration {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 16px;
	color: #7c7874;
}

.a1-service__price {
	font-size: 16px;
	font-weight: 500;
	color: #c8a39d;
}

.a1-pane__nav {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 14px;
	margin-top: 34px;
}

.a1-pane__nav > :first-child {
	justify-self: start;
}

.a1-pane__nav > :last-child {
	justify-self: end;
}

/* Date & time */

.a1-datetime {
	display: grid;
	grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
	gap: 34px;
	align-items: start;
}

.a1-field__label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--a1-ink-soft);
	margin-bottom: 10px;
}

.a1-field__input {
	width: 100%;
	font-family: var(--a1-sans);
	font-size: 15px;
	color: var(--a1-ink);
	background: var(--a1-cream);
	border: 1.5px solid var(--a1-line);
	border-radius: 14px;
	padding: 13px 16px;
	outline: none;
	transition: border-color 0.2s ease;
}

.a1-field__input:focus {
	border-color: var(--a1-rose);
	background: var(--a1-white);
}

.a1-hours-note {
	font-size: 13px;
	color: var(--a1-muted);
	margin-top: 12px;
	line-height: 1.6;
}

.a1-slots {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.a1-slot {
	font-family: var(--a1-sans);
	font-size: 14px;
	font-weight: 500;
	padding: 10px 18px;
	border-radius: 999px;
	border: 1.5px solid var(--a1-line);
	background: var(--a1-white);
	color: var(--a1-ink-soft);
	cursor: pointer;
	transition: all 0.18s ease;
}

.a1-slot:hover {
	border-color: var(--a1-rose);
	color: var(--a1-rose);
}

.a1-slot.is-selected {
	background: var(--a1-rose);
	border-color: var(--a1-rose);
	color: #fff;
}

.a1-slots__empty {
	font-size: 14px;
	color: var(--a1-muted);
}

/* Specialists */

.a1-specialists {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

button.a1-specialist,
.a1-specialist {
	white-space: normal;
	position: relative;
	background: var(--a1-white);
	border: 1.5px solid var(--a1-line);
	border-radius: var(--a1-radius);
	padding: 26px 18px 22px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	cursor: pointer;
	transition: all 0.22s ease;
	font-family: var(--a1-sans);
}

button.a1-specialist {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.a1-specialist:hover {
	transform: translateY(-2px);
	border-color: #d9c9c0;
}

.a1-specialist.is-selected {
	border-color: var(--a1-rose);
	box-shadow: 0 14px 30px -18px rgba(201, 118, 123, 0.55);
}

.a1-specialist__avatar {
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--a1-rose-soft), #ecd4cf);
	color: var(--a1-rose-dark);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--a1-serif);
	font-size: 19px;
	font-weight: 600;
	margin-bottom: 6px;
}

.a1-specialist__name {
	font-family: var(--a1-serif);
	font-size: 18px;
	font-weight: 600;
	color: var(--a1-ink);
}

.a1-specialist__role {
	font-size: 13px;
	color: var(--a1-muted);
}

/* Details form */

.a1-details {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.a1-field--wide {
	grid-column: 1 / -1;
}

textarea.a1-field__input {
	resize: vertical;
	min-height: 90px;
}

/* Summary + success */

.a1-summary {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 4px 34px;
	background: var(--a1-cream);
	border: 1px solid var(--a1-line);
	border-radius: var(--a1-radius);
	padding: 26px 30px;
}

.a1-summary__row {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	padding: 9px 0;
	border-bottom: 1px dashed var(--a1-line);
	font-size: 15px;
}

.a1-summary__row:last-child {
	border-bottom: 0;
}

.a1-summary__key {
	color: var(--a1-muted);
	font-size: 13px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding-top: 2px;
}

.a1-summary__val {
	color: var(--a1-ink);
	font-weight: 500;
	text-align: right;
}

.a1-booking__error,
.a1-ai__error {
	color: #b13434;
	font-size: 14px;
	margin-top: 14px;
}

.a1-success {
	text-align: center;
	padding: 34px 10px 12px;
}

.a1-success__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--a1-rose-soft);
	color: var(--a1-rose-dark);
	font-size: 28px;
	margin-bottom: 18px;
}

.a1-success__title {
	font-family: var(--a1-serif);
	font-size: 28px;
	font-weight: 600;
	margin: 0 0 10px;
}

.a1-success__text {
	color: var(--a1-muted);
	font-size: 15.5px;
	max-width: 460px;
	margin: 0 auto 24px;
	line-height: 1.65;
}

/* ---------- AI preview ---------- */

.a1-ai {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(36px, 4.5vw, 66px);
	align-items: start;
}

.a1-ai__eyebrow {
	font-family: var(--a1-sans);
	font-size: 20px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: #c8918d;
	margin: 0 0 18px;
}

.a1-ai__title {
	font-family: var(--a1-serif);
	font-size: clamp(36px, 3.8vw, 54px);
	font-weight: 600;
	margin: 0 0 12px;
	color: #262524;
}

.a1-ai__sub {
	font-size: 21px;
	color: #7c7874;
	margin: 0 0 34px;
}

.a1-ai__steps {
	list-style: none;
	margin: 0 0 34px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.a1-ai__steps li {
	display: flex;
	align-items: center;
	gap: 16px;
	font-size: 19px;
	color: #3a3733;
}

.a1-ai__stepnum {
	flex: 0 0 auto;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid #e3d5d1;
	color: #c0847e;
	font-size: 13px;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* Before/after example slider */

.a1-ai__examples {
	position: relative;
}

.a1-ai__track {
	border-radius: 14px;
	overflow: hidden;
}

.a1-ai__pair {
	display: none;
	grid-template-columns: minmax(0, 1fr) 20px minmax(0, 1fr);
}

.a1-ai__pair.is-active {
	display: grid;
	animation: a1fade 0.35s ease;
}

.a1-ai__half {
	position: relative;
	margin: 0;
}

.a1-ai__half img {
	width: 100%;
	height: clamp(240px, 24vw, 342px);
	object-fit: cover;
	display: block;
}

.a1-ai__split {
	background: #e7ddd2;
}

.a1-chip {
	position: absolute;
	left: 12px;
	bottom: 12px;
	background: #fff;
	color: #262524;
	font-family: var(--a1-sans);
	font-style: normal;
	font-size: 13.5px;
	font-weight: 500;
	padding: 6px 14px;
	border-radius: 999px;
	box-shadow: 0 3px 8px rgba(0, 0, 0, 0.12);
	white-space: nowrap;
}

.a1-ai__ex-arrows {
	position: absolute;
	right: 14px;
	bottom: 14px;
	display: flex;
	gap: 10px;
}

.a1-ai__ex-arrows button {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 0;
	background: #fff;
	color: #262524;
	font-size: 19px;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
	transition: transform 0.15s ease;
}

.a1-ai__ex-arrows button:hover {
	background: #fff;
	transform: translateY(-1px);
}

.a1-ai__dots {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 11px;
	margin-top: 26px;
}

.a1-ai__dot {
	width: 13px;
	height: 13px;
	border-radius: 999px;
	background: #e4e0dc;
	cursor: pointer;
	transition: all 0.25s ease;
}

.a1-ai__dot.is-active {
	width: 44px;
	background: #262524;
}

/* Marketing pills */

.a1-ai__pills {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px;
	margin: 44px 0 0;
}

.a1-pill {
	font-size: 17px;
	font-weight: 500;
	padding: 14px 26px;
	border-radius: 999px;
	box-shadow: 0 6px 16px rgba(41, 36, 31, 0.1);
	display: inline-block;
}

.a1-pill--ivory {
	background: #fbf6e6;
	border: 1px solid #efe7cf;
	color: #3a3733;
	transform: rotate(-2deg);
}

.a1-pill--rose {
	background: #c8a39d;
	color: #fff;
	transform: rotate(-6deg);
}

.a1-pill--white {
	background: #fff;
	color: #3a3733;
	transform: rotate(2deg);
}

.a1-pill--lav {
	background: #efedf6;
	color: #262524;
	font-weight: 600;
}

.a1-ai__tagline {
	margin: 22px 0 0 40px;
}

/* Right column */

.a1-upload {
	background: #262524;
	border-radius: 16px;
	min-height: 295px;
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	cursor: pointer;
	text-align: center;
	padding: 30px;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	position: relative;
	overflow: hidden;
}

.a1-upload:hover {
	transform: translateY(-2px);
	box-shadow: var(--a1-shadow);
}

.a1-upload__icon {
	width: 88px;
	height: 88px;
	border-radius: 50%;
	border: 1.5px solid rgba(255, 255, 255, 0.35);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 6px;
}

.a1-upload__title {
	font-family: var(--a1-sans);
	color: #fff;
	font-size: 26px;
	font-weight: 600;
}

.a1-upload__hint {
	color: rgba(255, 255, 255, 0.55);
	font-size: 18px;
	letter-spacing: 0.02em;
}

/* Photo loaded: the box stays a clean prompt (the photo itself shows in the Before
   card below) — just confirm with a rose accent and "Tap to change photo". */
.a1-upload.has-photo .a1-upload__icon {
	border-color: #c8a39d;
	color: #c8a39d;
}

.a1-upload.has-photo .a1-upload__title {
	color: #c8a39d;
}

/* Before / After result cards */

.a1-ai__cards {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 24px;
	margin-top: 32px;
}

.a1-result {
	position: relative;
	border-radius: 12px;
	overflow: hidden;
	min-height: 222px;
	background: #fff;
}

/* JS sets the cards' aspect-ratio to the uploaded photo so nothing is cropped away. */

.a1-result__badge {
	position: absolute;
	top: 10px;
	left: 50%;
	transform: translateX(-50%);
	background: rgba(38, 37, 36, 0.78);
	color: #fff;
	font-size: 12px;
	letter-spacing: 0.05em;
	padding: 5px 12px;
	border-radius: 999px;
	white-space: nowrap;
	z-index: 2;
}

.a1-result .a1-chip {
	left: 50%;
	transform: translateX(-50%);
}

img.a1-result__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.a1-result--after {
	background: #d4e2ed;
}

.a1-result__placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	color: #7b92ab;
	font-size: 17px;
}

.a1-result__sparkle {
	font-size: 22px;
	color: #8aa3bd;
}

.a1-preview__loading {
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0.88);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	color: var(--a1-ink-soft);
	font-size: 14px;
	z-index: 2;
}

.a1-spinner {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	border: 3px solid #f0e6e3;
	border-top-color: #c8a39d;
	animation: a1spin 0.8s linear infinite;
}

@keyframes a1spin {
	to { transform: rotate(360deg); }
}

/* Color panel */

.a1-colorbox {
	background: #fff;
	border: 0;
	border-radius: 16px;
	padding: 28px;
	box-shadow: none;
	margin-top: 32px;
}

.a1-colorbox__title {
	font-family: var(--a1-sans);
	font-size: 22px;
	font-weight: 600;
	color: #262524;
	margin: 0 0 18px;
}

.a1-colorbox__search {
	margin-bottom: 18px;
	background: #f8f6f2;
	border: 1px solid #ece9e4;
	border-radius: 12px;
	font-size: 17px;
	padding: 15px 18px;
}

.a1-colors {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 4px;
}

button.a1-color,
.a1-color {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-family: var(--a1-sans);
	font-size: 16px;
	font-weight: 500;
	color: #3a3733;
	background: #fff;
	border: 1px solid #eae8e4;
	border-radius: 999px;
	padding: 9px 16px;
	cursor: pointer;
	transition: all 0.18s ease;
	white-space: nowrap;
}

.a1-color:hover {
	border-color: #d8bcb6;
}

.a1-color.is-selected {
	border-color: #c8a39d;
	background: #f7efed;
	color: #262524;
}

button.a1-color.is-hidden,
.a1-color.is-hidden {
	display: none !important;
}

.a1-color__dot {
	width: 13px;
	height: 13px;
	border-radius: 50%;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
}

/* Visualize button (below the color panel) */

.a1-btn--visualize {
	width: 100%;
	margin-top: 30px;
	background: #e4e0dc;
	color: #7c7874;
	border-radius: 14px;
	font-size: 18px;
	font-weight: 500;
	padding: 17px 28px;
}

.a1-btn--visualize:not(:disabled) {
	background: #c8a39d;
	color: #fff;
}

.a1-btn--visualize:hover:not(:disabled) {
	background: #b48d86;
}

.a1-btn--visualize:focus:not(:disabled) {
	background: #c8a39d;
	color: #fff;
}

.a1-btn--visualize:disabled {
	opacity: 1;
}

.a1-ai__error {
	color: #b13434;
	font-size: 14px;
	margin-top: 14px;
}

.a1-ai__note {
	font-size: 13.5px;
	color: #7c7874;
	margin: 14px 0 0;
	text-align: center;
}

/* ---------- Testimonials ---------- */

.a1-testimonials {
	text-align: left;
	max-width: none;
	margin: 0;
}

.a1-testimonials__eyebrow {
	font-family: var(--a1-sans);
	font-size: 20px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: #c8918d;
	margin: 0 0 22px;
}

.a1-testimonials__stars {
	color: #c8a39d;
	font-size: 26px;
	letter-spacing: 4px;
	margin-bottom: 38px;
}

.a1-testimonials__track {
	position: relative;
	min-height: 150px;
}

.a1-testimonial {
	display: none;
	margin: 0;
}

.a1-testimonial.is-active {
	display: block;
	animation: a1fade 0.4s ease;
}

.a1-testimonial blockquote {
	font-family: var(--a1-serif);
	font-style: italic;
	font-size: clamp(28px, 3vw, 44px);
	font-weight: 400;
	line-height: 1.42;
	color: #262524;
	margin: 0 0 40px;
	border: 0;
	padding: 0;
	background: none;
	max-width: 1360px;
}

.a1-testimonial__name {
	display: block;
	font-family: var(--a1-sans);
	font-style: normal;
	font-weight: 600;
	font-size: 17px;
	color: #262524;
}

.a1-testimonial__service {
	display: block;
	font-style: normal;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #8a8580;
	margin-top: 6px;
}

.a1-testimonials__nav {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 22px;
	margin-top: 48px;
}

.a1-testimonials__arrow {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid #ddd9d4;
	background: #fff;
	color: #3a3733;
	cursor: pointer;
	font-size: 19px;
	line-height: 1;
	transition: all 0.2s ease;
}

.a1-testimonials__arrow:hover {
	border-color: #c8a39d;
	color: #b48d86;
	background: #fff;
}

.a1-testimonials__dots {
	display: flex;
	align-items: center;
	gap: 9px;
}

.a1-dot {
	width: 9px;
	height: 9px;
	padding: 0;
	border-radius: 999px;
	border: 0;
	background: #242019;
	cursor: pointer;
	transition: all 0.25s ease;
}

.a1-dot.is-active {
	width: 28px;
	background: #c8a39d;
	transform: none;
}

/* ---------- About / Our Story ---------- */

.a1-about-img img {
	width: 100%;
	border-radius: 20px;
	height: clamp(420px, 42vw, 632px);
	object-fit: cover;
}

.a1-features {
	display: flex;
	flex-direction: column;
	gap: 26px;
	margin-top: 12px;
	max-width: 600px;
}

.a1-feature {
	display: flex;
	gap: 15px;
	align-items: flex-start;
}

.a1-feature__icon {
	flex: 0 0 auto;
	width: auto;
	height: auto;
	background: none;
	border-radius: 0;
	color: #c8a39d;
	font-size: 16px;
	line-height: 1.6;
	display: inline;
}

.a1-feature__body {
	display: block;
}

.a1-feature__title {
	font-family: var(--a1-serif);
	font-size: 19px;
	font-weight: 600;
	color: #262524;
	display: block;
	margin-bottom: 6px;
}

.a1-feature__text {
	font-size: 17px;
	color: #6e6a66;
	line-height: 1.55;
}

/* ---------- Gallery (design-matched) ---------- */

.a1-gallery {
	text-align: left;
}

.a1-gallery__title {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 18px;
	font-family: var(--a1-serif);
	font-size: clamp(38px, 4vw, 58px);
	font-weight: 600;
	color: #262524;
	margin: 0 0 16px;
	line-height: 1.15;
}

.a1-gallery__title img {
	width: 104px;
	height: 104px;
	object-fit: contain;
	flex: 0 0 auto;
	mix-blend-mode: multiply;
}

/* The extracted logo PNG carries a white box — multiply hides it on light backgrounds. */
.a1-lockup img,
.a1-brand img {
	mix-blend-mode: multiply;
}

.a1-gallery__sub {
	font-family: var(--a1-sans);
	font-size: 21px;
	color: #7c7874;
	margin: 0 0 46px;
}

.a1-gallery__card {
	background: #e7ddd2;
	border-radius: 24px;
	overflow: hidden;
}

/* img-qualified: must tie Elementor's `.elementor img { height:auto }` specificity */
img.a1-gallery__slide {
	width: 100%;
	max-width: 100%;
	height: clamp(340px, 40vw, 580px);
	object-fit: cover;
	object-position: 50% 62%;
	display: block;
	transition: opacity 0.35s ease;
}

.a1-gallery__slide.is-fading {
	opacity: 0;
}

.a1-gallery__thumbs {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px;
	padding: 10px 16px 12px;
}

button.a1-gallery__thumb,
.a1-gallery__thumb {
	width: 46px;
	height: 46px;
	padding: 0;
	border: 2px solid transparent;
	border-radius: 10px;
	overflow: hidden;
	cursor: pointer;
	background: none;
	transition: all 0.2s ease;
	display: block;
}

.a1-gallery__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.a1-gallery__thumb:hover {
	border-color: #c8a39d;
}

/* ---------- Gallery carousel (legacy widget support) ---------- */

.a1-gallery-carousel .swiper,
.a1-gallery-carousel .swiper-container,
.a1-gallery-carousel .elementor-image-carousel-wrapper {
	border-radius: 24px;
	overflow: hidden;
}

.a1-gallery-carousel .swiper-slide img {
	width: 100%;
	height: clamp(320px, 46vw, 560px);
	object-fit: cover;
}

.a1-gallery-carousel .elementor-swiper-button {
	background: rgba(255, 255, 255, 0.92);
	border-radius: 50%;
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--a1-ink);
	font-size: 16px;
}

.a1-gallery-carousel .swiper-pagination-bullet-active {
	background: var(--a1-rose);
}

/* ---------- Footer ---------- */

.a1-footer {
	background: #262524 !important;
}

.a1-footer,
.a1-footer p,
.a1-footer li {
	color: #b5b2af;
	font-family: var(--a1-sans);
}

p.a1-footer__name,
.a1-footer__name {
	font-family: var(--a1-serif);
	font-size: 30px;
	font-weight: 600;
	color: #fff;
	margin: 0 0 14px;
}

.a1-footer__tag {
	color: #8a8886;
	font-size: 18px;
	line-height: 1.55;
	margin: 0 0 30px;
}

.a1-footer .elementor-widget-button .elementor-button {
	background: transparent;
	border: 1px solid #464645;
	border-radius: 999px;
	font-family: var(--a1-sans);
	font-size: 17px;
	font-weight: 500;
	letter-spacing: 0.01em;
	padding: 14px 28px;
	color: #fff;
}

.a1-footer .elementor-widget-button .elementor-button:hover {
	background: #c8a39d;
	border-color: #c8a39d;
}

.a1-footer__eyebrow {
	font-size: 17px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #7c7a78;
	margin: 0 0 26px;
}

.a1-footer a {
	color: #b5b2af;
	text-decoration: none;
	transition: color 0.2s ease;
}

.a1-footer a:hover {
	color: #fff;
}

.a1-footer__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 18px;
	font-size: 18px;
	line-height: 1.5;
}

.a1-footer__list li {
	display: flex;
	gap: 14px;
	align-items: baseline;
}

.a1-footer__list .ico,
.a1-footer__insta .ico {
	color: #7c7a78;
	flex: 0 0 auto;
	position: relative;
	top: 2px;
}

.a1-footer__hours {
	max-width: 250px;
}

.a1-footer__hours li {
	justify-content: space-between;
	gap: 20px;
}

.a1-footer__hours .day {
	color: #878786;
}

.a1-footer__hours .time {
	color: #c6c3c0;
}

.a1-footer__insta {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 30px 0 0;
	font-size: 18px;
}

.a1-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 14px;
	border-top: 1px solid #333331;
	padding-top: 30px;
	font-size: 16.5px;
	color: #7a7876;
}

.a1-footer__policies a {
	color: #969492;
	margin-left: 30px;
	font-size: 16.5px;
}

.a1-footer__policies a:first-child {
	margin-left: 0;
}

/* ---------- Responsive ---------- */

@media (max-width: 1024px) {
	.a1-booking__head,
	.a1-booking__body {
		padding-left: 24px;
		padding-right: 24px;
	}
	.a1-services,
	.a1-specialists,
	.a1-details,
	.a1-datetime,
	.a1-summary,
	.a1-pane__nav,
	.a1-booking__error,
	.a1-success {
		margin-left: 0;
		margin-right: 0;
	}
	.a1-services {
		gap: 12px;
	}
	.a1-hero h1 {
		font-size: 60px !important;
	}
	.a1-services {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.a1-specialists {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.a1-ai {
		grid-template-columns: 1fr;
	}
	.a1-ai__cards {
		gap: 14px;
	}
	.a1-nav {
		gap: 20px;
	}
}

@media (max-width: 767px) {
	.a1-hero h1 {
		font-size: 42px !important;
	}
	.a1-lockup {
		gap: 10px !important;
	}
	.a1-lockup img {
		width: 48px !important;
		height: 48px !important;
	}
	.a1-lockup span {
		font-size: 21px !important;
	}
	.a1-brand__name {
		font-size: 17px;
	}
	.a1-services,
	.a1-specialists,
	.a1-details,
	.a1-datetime,
	.a1-summary,
	.a1-ai__cards {
		grid-template-columns: 1fr;
	}
	.a1-ai__tagline {
		margin-left: 0;
	}
	.a1-step__label {
		display: none;
	}
	.a1-step.is-active .a1-step__label {
		display: inline;
	}
	.a1-step__sep {
		width: 14px;
	}
	.a1-nav {
		flex-wrap: wrap;
		gap: 14px;
	}
	.a1-pane__nav {
		flex-wrap: wrap;
	}
	.a1-footer__bottom {
		justify-content: center;
		text-align: center;
	}
}

/* ============================================================
   Responsive refinements (mobile stacking is handled by
   Elementor's per-column mobile widths; this tunes the rest)
   ============================================================ */

@media (min-width: 1025px) {
	.a1-about-text > .elementor-widget-wrap {
		padding: 20px 0 0 48px;
	}
}

@media (max-width: 1024px) {
	.a1-about-text > .elementor-widget-wrap {
		padding: 24px 0 0;
	}
	.a1-brand__name {
		font-size: 22px;
	}
	.a1-brand img {
		width: 44px;
		height: 44px;
	}
	.a1-nav {
		gap: 20px;
	}
	.a1-nav a {
		font-size: 15px;
	}
	.a1-gallery__title {
		font-size: 40px;
	}
	.a1-gallery__title img {
		width: 72px;
		height: 72px;
	}
}

@media (max-width: 767px) {
	/* Header: stacked columns — keep it compact and centered, not sticky. */
	.a1-header {
		position: static !important;
	}
	html {
		scroll-padding-top: 12px;
	}
	.a1-header .a1-brand {
		justify-content: center;
	}
	.a1-header .a1-nav {
		flex-wrap: wrap;
		gap: 10px 18px;
		margin: 10px 0 4px;
	}
	.a1-header .elementor-widget-button .elementor-button-wrapper {
		text-align: center;
	}
	.a1-header .elementor-widget-button .elementor-button {
		padding: 11px 24px;
		font-size: 15px;
	}

	/* Hero */
	.a1-hero .elementor-widget-text-editor,
	.a1-hero .elementor-widget-text-editor p {
		font-size: 18px !important;
	}
	.a1-rating {
		margin-top: 14px;
		font-size: 15px;
	}
	.a1-rating__stars {
		font-size: 18px;
	}

	/* Booking */
	.a1-pane__nav {
		grid-template-columns: 1fr;
		gap: 10px;
	}
	.a1-pane__nav > :first-child,
	.a1-pane__nav > :last-child {
		justify-self: stretch;
	}
	.a1-pane__nav .a1-btn {
		width: 100%;
	}
	.a1-pane__nav span:empty {
		display: none;
	}
	.a1-booking__title {
		font-size: 30px;
	}
	.a1-booking__sub {
		font-size: 17px;
	}
	.a1-pane__eyebrow {
		font-size: 13px;
		margin-bottom: 20px;
	}
	button.a1-service,
	.a1-service {
		padding: 24px 22px 20px;
	}
	.a1-service__title {
		font-size: 23px;
	}
	.a1-service__desc {
		font-size: 15.5px;
	}
	.a1-service__radio {
		top: 22px;
		right: 22px;
	}

	/* Gallery */
	.a1-gallery__title {
		flex-wrap: wrap;
		font-size: 31px;
		gap: 12px;
	}
	.a1-gallery__title img {
		width: 52px;
		height: 52px;
	}
	.a1-gallery__sub {
		font-size: 17px;
		margin-bottom: 28px;
	}
	img.a1-gallery__slide {
		height: 300px;
	}

	/* AI preview */
	.a1-ai__eyebrow {
		font-size: 16px;
	}
	.a1-ai__sub {
		font-size: 18px;
	}
	.a1-ai__steps li {
		font-size: 16.5px;
	}
	.a1-ai__half img {
		height: 170px;
	}
	.a1-chip {
		font-size: 12px;
		padding: 5px 11px;
		left: 8px;
		bottom: 8px;
	}
	.a1-ai__ex-arrows {
		right: 10px;
		bottom: 10px;
	}
	.a1-ai__ex-arrows button {
		width: 34px;
		height: 34px;
	}
	.a1-pill {
		font-size: 15px;
		padding: 11px 18px;
	}
	.a1-upload {
		min-height: 230px;
	}
	.a1-upload__icon {
		width: 68px;
		height: 68px;
	}
	.a1-upload__title {
		font-size: 22px;
	}
	.a1-upload__hint {
		font-size: 15px;
	}
	.a1-colorbox {
		padding: 20px;
	}
	.a1-colorbox__title {
		font-size: 19px;
	}
	.a1-color {
		font-size: 15px;
	}

	/* Testimonials */
	.a1-testimonials__eyebrow {
		font-size: 16px;
	}
	.a1-testimonials__stars {
		font-size: 21px;
		margin-bottom: 24px;
	}
	.a1-testimonial blockquote {
		font-size: 25px;
	}
	.a1-testimonials__nav {
		margin-top: 30px;
	}
	.a1-testimonials__arrow {
		width: 40px;
		height: 40px;
	}

	/* About */
	.a1-about-img img {
		height: 320px;
	}
	.a1-feature__title {
		font-size: 18px;
	}
	.a1-feature__text {
		font-size: 15.5px;
	}

	/* Footer */
	p.a1-footer__name,
	.a1-footer__name {
		font-size: 24px;
	}
	.a1-footer__tag {
		font-size: 16px;
		margin-bottom: 22px;
	}
	.a1-footer__eyebrow {
		font-size: 15px;
		margin: 28px 0 16px;
	}
	.a1-footer__list {
		font-size: 16px;
		gap: 14px;
	}
	.a1-footer__insta {
		font-size: 16px;
		margin-top: 20px;
	}
	.a1-footer__policies a {
		margin: 0 12px;
		font-size: 15px;
	}
}

@media (max-width: 480px) {
	.a1-hero h1 {
		font-size: 38px !important;
	}
	.a1-services {
		gap: 10px;
	}
	.a1-booking__steps {
		gap: 8px;
	}
	.a1-step__sep {
		width: 10px;
	}
}
