/* AmaraThai Child Theme — scoped only to Booking and Login/Register pages.
   Does NOT override Astra or Elementor on any other page. */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=Jost:wght@200;300;400;500&display=swap');

:root {
	--am-font-heading: 'Cormorant Garamond', Georgia, serif;
	--am-font-body: 'Jost', sans-serif;
	--am-dark: #1a1816;
	--am-charcoal: #2e2b27;
	--am-accent: #9e7f5a;
	--am-bg: #f9f5ef;
	--am-bg-alt: #ede7dc;
	--am-bg-card: #e2d9cc;
	--am-border: #d8cfc1;
	--am-border-focus: #b8a992;
	--am-muted: #8a8078;
	--am-cta-bg: #c4a882;
	--am-transition: 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* ================================================================
   SCOPED STYLES — only apply on Booking and Login/Register pages
   WordPress adds body classes: page-template-page-booking
                                page-template-page-login-register
   ================================================================ */

/* Booking + Login pages inherit Astra's own background and heading colors.
   We only override layout/spacing, not theme typography. */
.page-template-page-booking #content > .ast-container,
.page-template-page-login-register #content > .ast-container {
	max-width: 100% !important;
	padding: 0 !important;
}

/* ================================================================
   COMPONENT STYLES — scoped via .amarathai-wrap
   This class only appears inside page-booking.php and
   page-login-register.php so it cannot bleed into other pages.
   ================================================================ */

.amarathai-wrap {
	max-width: 840px;
	margin-inline: auto;
	display: grid;
	gap: 20px;
	padding: 40px 20px 60px;
}

.amarathai-card {
	background: #fff;
	border: 1px solid #e5e5e5;
	border-radius: 8px;
	padding: 36px 40px;
}

.amarathai-card.amarathai-hero {
	background: #f9f6f1;
	border: none;
	padding: 40px;
}

.amarathai-kicker {
	display: block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--am-accent);
	margin-bottom: 12px;
}

.amarathai-wrap h1.amarathai-title {
	font-size: clamp(28px, 4vw, 46px);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin: 0 0 14px;
	line-height: 1.1;
}

.amarathai-subtitle {
	font-size: 14px;
	line-height: 1.8;
	margin: 0;
	max-width: 560px;
	opacity: 0.75;
}

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

.amarathai-mini-card {
	border: 1px solid var(--am-border);
	border-radius: 10px;
	padding: 20px;
	background: var(--am-bg-alt);
}

.amarathai-mini-card h3 {
	margin: 0 0 6px;
}

.amarathai-mini-card p {
	margin: 0;
	font-size: 13px;
	color: var(--am-muted);
}

.amarathai-btn,
.amarathai-wrap button[type='submit'],
.amarathai-wrap input[type='submit'] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 11px 28px;
	background: #1a1a1a;
	color: #fff !important;
	font-size: 11px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	border: 1px solid #1a1a1a;
	border-radius: 0;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.25s, color 0.25s;
}

.amarathai-btn:hover,
.amarathai-wrap button[type='submit']:hover,
.amarathai-wrap input[type='submit']:hover {
	background: transparent;
	color: #1a1a1a !important;
}

.amarathai-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin-bottom: 18px;
}

.amarathai-field {
	display: grid;
	gap: 5px;
}

.amarathai-field label {
	font-size: 10px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	opacity: 0.65;
}

.amarathai-wrap input[type='text'],
.amarathai-wrap input[type='email'],
.amarathai-wrap input[type='password'],
.amarathai-wrap input[type='date'],
.amarathai-wrap input[type='time'],
.amarathai-wrap select,
.amarathai-wrap textarea {
	width: 100%;
	min-height: 44px;
	border: 1px solid #ddd;
	border-radius: 0;
	background: #fff;
	padding: 10px 14px;
	font-size: 14px;
	transition: border-color 0.2s;
}

.amarathai-wrap input:focus,
.amarathai-wrap select:focus,
.amarathai-wrap textarea:focus {
	outline: none;
	border-color: #999;
}

.amarathai-wrap textarea {
	min-height: 120px;
	resize: vertical;
}

.amarathai-field.full {
	grid-column: 1 / -1;
}

.amarathai-alert {
	padding: 12px 16px;
	border-radius: 4px;
	font-family: var(--am-font-body);
	font-size: 13px;
	margin-bottom: 12px;
}

.amarathai-alert.is-success {
	background: #f0f7ed;
	color: #2f5530;
	border: 1px solid #c0d8b8;
}

.amarathai-alert.is-error {
	background: #faf0ee;
	color: #7a3228;
	border: 1px solid #ddb8b0;
}

.amarathai-auth-wrap {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.amarathai-simple-list {
	margin: 0;
	padding-left: 20px;
	color: var(--am-muted);
	line-height: 2;
}

.amarathai-contact-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}

@media (max-width: 900px) {
	.amarathai-grid,
	.amarathai-auth-wrap,
	.amarathai-form-grid {
		grid-template-columns: 1fr;
	}

	.amarathai-card {
		padding: 20px;
	}
}

/* ================================================================
   HOME PAGE — full-width custom template
   Scoped to body.home so it never affects other pages
   ================================================================ */

/* Strip Astra's CONTENT container constraints on home page.
   Use #content > .ast-container to avoid touching the header nav. */
body.home #content > .ast-container {
	max-width: 100% !important;
	width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

body.home #content > .ast-container > .ast-row,
body.home #content > .ast-container > #primary {
	max-width: 100% !important;
	width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
}

body.home #content #main {
	padding: 0 !important;
	margin: 0 !important;
}

body.home .hentry {
	margin: 0;
	padding: 0;
}

.amarathai-home {
	width: 100%;
	overflow-x: hidden;
	background: var(--am-bg);
	font-family: var(--am-font-body);
}

/* --- Hero --- */
.am-hero {
	min-height: 90vh;
	display: grid;
	align-items: center;
	background-color: #c4a882;
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
}

.am-hero-inner {
	width: min(1180px, calc(100% - 48px));
	margin-inline: auto;
	color: #fff;
}

.am-overline {
	display: block;
	font-family: var(--am-font-heading) !important;
	font-size: 15px !important;
	font-weight: 400;
	font-style: italic;
	text-transform: none;
	letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.9) !important;
	margin: 0 0 14px;
}

.am-hero-inner h1 {
	font-family: var(--am-font-heading) !important;
	font-size: clamp(34px, 5.5vw, 70px) !important;
	font-weight: 300 !important;
	color: #fff !important;
	line-height: 1.05 !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase;
	margin: 0 0 28px !important;
	max-width: 720px;
}

.am-hero-actions {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}

/* --- Buttons --- */
.am-btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	padding: 12px 24px !important;
	min-height: 44px;
	font-family: var(--am-font-body) !important;
	font-size: 11px !important;
	font-weight: 500 !important;
	letter-spacing: 0.13em;
	text-transform: uppercase !important;
	text-decoration: none !important;
	border: 1px solid transparent;
	transition: var(--am-transition);
	cursor: pointer;
}

.am-btn-light {
	background: #fff !important;
	color: var(--am-dark) !important;
	border-color: #fff !important;
}

.am-btn-light:hover {
	background: transparent !important;
	color: #fff !important;
	border-color: rgba(255,255,255,0.9) !important;
}

.am-btn-outline {
	background: transparent !important;
	color: #fff !important;
	border-color: rgba(255, 255, 255, 0.85) !important;
}

.am-btn-outline:hover {
	background: rgba(255,255,255,0.1) !important;
}

.am-btn-dark {
	background: transparent !important;
	color: var(--am-dark) !important;
	border-color: var(--am-dark) !important;
}

.am-btn-dark:hover {
	background: var(--am-dark) !important;
	color: #fff !important;
}

/* --- Services Strip --- */
.am-services-strip {
	width: min(1180px, calc(100% - 48px));
	margin-inline: auto;
	padding: 72px 0 48px;
}

.am-intro {
	text-align: center;
	max-width: 620px;
	margin: 0 auto 40px;
}

.am-kicker {
	display: block;
	font-family: var(--am-font-body);
	font-size: 10px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--am-muted);
	margin-bottom: 14px;
}

.am-intro h2,
.am-services-strip > .am-intro h2 {
	font-family: var(--am-font-heading);
	font-size: clamp(24px, 3vw, 38px);
	font-weight: 400;
	color: var(--am-dark);
	letter-spacing: 0.04em;
	margin: 0 0 14px;
}

.am-intro p {
	font-family: var(--am-font-body);
	font-size: 13px;
	font-weight: 300;
	color: var(--am-muted);
	margin: 0;
	line-height: 1.9;
}

.am-arched-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}

.am-arched-card {
	text-align: center;
}

.am-arched-card h3 {
	font-family: var(--am-font-body);
	font-size: 12px;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--am-dark);
	margin-top: 14px;
}

.am-arched-image {
	aspect-ratio: 0.72;
	background: var(--am-bg-card);
	border-radius: 200px 200px 10px 10px;
	background-size: cover;
	background-position: center;
}

/* --- Review Band --- */
.am-review-band {
	background: var(--am-bg-alt);
	padding: 80px 24px;
	text-align: center;
}

.am-review-band .am-kicker {
	color: var(--am-dark);
	margin-bottom: 18px;
	font-size: 10px;
	letter-spacing: 0.2em;
}

.am-review-band h2 {
	font-family: var(--am-font-heading);
	font-size: clamp(18px, 2.5vw, 30px);
	font-weight: 400;
	font-style: italic;
	color: var(--am-dark);
	max-width: 760px;
	margin: 0 auto 20px;
	line-height: 1.5;
}

.am-review-band p {
	font-family: var(--am-font-body);
	font-size: 13px;
	color: var(--am-muted);
	max-width: 600px;
	margin: 0 auto 12px;
	line-height: 1.8;
}

.am-review-band span {
	font-family: var(--am-font-body);
	font-size: 10px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--am-muted);
}

/* --- Split Section --- */
.am-split {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	gap: 48px;
	width: min(1180px, calc(100% - 48px));
	margin-inline: auto;
	padding: 80px 0;
	align-items: center;
}

.am-split-images {
	display: grid;
	grid-template-columns: 1fr 0.65fr;
	gap: 16px;
}

.am-image-lg,
.am-image-sm {
	background-color: var(--am-bg-card);
	background-size: cover;
	background-position: center;
	border-radius: 4px;
}

.am-image-lg {
	min-height: 380px;
}

.am-image-sm {
	min-height: 260px;
	align-self: center;
}

.am-split-copy .am-overline {
	color: var(--am-accent);
}

.am-split-copy h2 {
	font-family: var(--am-font-heading);
	font-size: clamp(24px, 3vw, 38px);
	font-weight: 300;
	color: var(--am-dark);
	margin: 8px 0 18px;
	letter-spacing: 0.03em;
}

.am-split-copy p {
	font-size: 15px;
	color: var(--am-muted);
	line-height: 1.9;
	margin-bottom: 28px;
}

/* --- Blog Row --- */
.am-blog-row {
	width: min(1180px, calc(100% - 48px));
	margin-inline: auto;
	padding: 0 0 80px;
}

.am-blog-intro {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 24px;
	gap: 16px;
}

.am-blog-intro h2 {
	font-family: var(--am-font-heading);
	font-size: clamp(22px, 3vw, 36px);
	font-weight: 300;
	color: var(--am-dark);
	margin: 0;
	letter-spacing: 0.03em;
}

.am-blog-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.am-blog-card {
	text-decoration: none;
	display: block;
}

.am-blog-image {
	aspect-ratio: 4/3;
	background-color: var(--am-bg-card);
	background-size: cover;
	background-position: center;
	border-radius: 4px;
	margin-bottom: 14px;
}

.am-blog-card h3 {
	font-family: var(--am-font-body);
	font-size: 13px;
	font-weight: 400;
	color: var(--am-dark);
	line-height: 1.5;
	margin: 0;
}

/* --- CTA Band --- */
.am-cta {
	min-height: 320px;
	background-color: var(--am-cta-bg);
	background-size: cover;
	background-position: center;
	display: grid;
	place-content: center;
	text-align: center;
	padding: 60px 24px;
	gap: 24px;
}

.am-cta h2 {
	font-family: var(--am-font-heading);
	font-size: clamp(22px, 3.5vw, 48px);
	font-weight: 300;
	color: #fff;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	max-width: 760px;
	margin: 0;
	line-height: 1.2;
}

/* --- Social Strip --- */
.am-social-strip {
	width: min(1180px, calc(100% - 48px));
	margin-inline: auto;
	padding: 24px 0 60px;
}

.am-social-head {
	margin-bottom: 16px;
}

.am-social-head p {
	font-family: var(--am-font-body);
	font-size: 10px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--am-muted);
	margin: 0;
}

.am-social-grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 10px;
}

.am-social-item {
	aspect-ratio: 1;
	background-color: var(--am-bg-card);
	background-size: cover;
	background-position: center;
	border-radius: 4px;
}

/* --- Responsive --- */
@media (max-width: 1024px) {
	.am-arched-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px;
	}

	.am-split {
		grid-template-columns: 1fr;
		gap: 32px;
		padding: 48px 0;
	}

	.am-blog-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.am-social-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 768px) {
	.am-hero {
		min-height: 70vh;
	}

	.am-hero-inner h1 {
		font-size: clamp(30px, 8vw, 48px);
	}

	.am-blog-cards {
		grid-template-columns: 1fr;
	}

	.am-split-images {
		grid-template-columns: 1fr;
	}

	.am-image-sm {
		display: none;
	}

	.am-social-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 480px) {
	.am-arched-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.am-hero-actions {
		flex-direction: column;
	}

	.am-btn {
		width: 100%;
		justify-content: center;
	}
}
