/*
Theme Name: The Lux Rides
Theme URI: https://theluxrides.com
Author: The Lux Rides
Description: Luxury chauffeur WordPress theme with editable fleet, services, cities, routes, and booking widget.
Version: 2.10.2
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: theluxrides
*/

/* ============================================================
   Sitewide layout refinements
   ============================================================ */

:root {
	--site-max-width: 1920px;
	--site-gutter: 15px;
	--section-space: 64px;
	--section-space-mobile: 44px;
}

.wrap,
.wrap-narrow {
	width: min(100%, var(--site-max-width));
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--site-gutter);
	padding-right: var(--site-gutter);
}

.wrap {
	max-width: var(--site-max-width);
}

.wrap-narrow {
	max-width: min(1180px, var(--site-max-width));
}

section.bay {
	padding: var(--section-space) 0;
}

.sec-head {
	margin-bottom: 38px;
}

.page-intro {
	padding: 44px 0 28px;
}

.hero {
	padding: 56px 0 84px;
	min-height: max(680px, calc(100vh - var(--header-h)));
}

.hero-grid,
.about-hero,
.fleet-show,
.vehicle-detail-grid,
.contact-grid,
.footer-main {
	gap: clamp(22px, 2vw, 40px);
}

.cta-band,
.custom-route-cta,
.contact-form,
.info-block,
.value-card,
.vehicle-spec-card,
.auth-stage {
	box-shadow: 0 10px 28px rgba(19, 16, 10, 0.06);
}

.site-footer {
	margin-top: 56px;
}

.footer-cta {
	padding: 60px 0;
}

.footer-main {
	padding-top: 42px;
	padding-bottom: 26px;
}

@media (max-width: 1200px) {
	.hero {
		padding: 48px 0 72px;
		min-height: auto;
	}

	.sec-head {
		margin-bottom: 32px;
	}
}

@media (max-width: 900px) {
	section.bay {
		padding: 52px 0;
	}

	.page-intro {
		padding: 36px 0 24px;
	}

	.hero {
		padding: 38px 0 60px;
	}

	.hero-stats {
		gap: 24px;
		padding-top: 1.2rem;
	}

	.site-header {
		padding-left: 15px;
		padding-right: 15px;
	}
}

@media (max-width: 680px) {
	.wrap,
	.wrap-narrow {
		padding-left: var(--site-gutter);
		padding-right: var(--site-gutter);
	}

	section.bay {
		padding: var(--section-space-mobile) 0;
	}

	.sec-head {
		margin-bottom: 26px;
		align-items: flex-start;
	}

	.hero {
		padding: 28px 0 48px;
	}

	.hero-h1,
	.page-intro h1,
	.sec-head h2,
	.fleet-hero-title,
	.city-hero-title {
		line-height: 1.05;
	}

	.hero-sub,
	.page-intro p,
	.lead {
		font-size: 18px;
		line-height: 1.6;
	}

	.book-field-row,
	.form-row {
		grid-template-columns: 1fr;
	}

	.footer-cta {
		padding: 44px 0;
	}
}

@media (max-width: 480px) {
	.hero-actions,
	.city-hero-actions,
	.cta-band .actions {
		gap: 10px;
	}

	.btn,
	.btn-primary,
	.btn-ghost,
	.wpforms-submit,
	input[type="submit"] {
		width: 100%;
		justify-content: center;
	}

	.hero-stats,
	.srv-stat-band,
	.process,
	.values-grid,
	.why-grid {
		gap: 14px;
	}
}

/* Site-wide typography: Montserrat (headings/buttons) + Manrope (body) */
:root {
	--heading: 'Montserrat', -apple-system, 'Segoe UI', sans-serif;
	--serif: 'Montserrat', -apple-system, 'Segoe UI', sans-serif;
	--accent: 'Montserrat', -apple-system, 'Segoe UI', sans-serif;
	--display: 'Montserrat', -apple-system, 'Segoe UI', sans-serif;
	--body: 'Manrope', -apple-system, sans-serif;
}

body,
input,
textarea,
select {
	font-family: var(--body);
}

/* Site-wide heading & paragraph scale */
h1,
.hero-h1,
.page-intro h1,
.city-hero-title,
.flhero h1,
.fleet-hero-title {
	font-size: 40px;
}

h2,
.sec-head h2,
.cta-band h2,
.footer-cta h2,
.fleet-show-copy h2 {
	font-size: 30px;
}

h3 {
	font-size: 24px;
}

h4 {
	font-size: 20px;
}

h5 {
	font-size: 16px;
}

h6 {
	font-size: 14px;
}

p,
.lead,
.hero-sub,
.page-intro p,
.post-body,
.post-body p,
.journal-card p,
.faq-a,
.why-cell p,
.home-svc-card p,
.home-chauffeur-card p,
.home-step-item p,
.car-models,
.flhero-lead {
	font-size: 18px;
}

h1, h2, h3, h4, h5, h6,
.eyebrow,
.hero-h1,
.page-intro h1,
.city-hero-title,
.flhero h1,
.sec-head h2,
.car-name,
.city-name,
.side-name,
.marquee-item,
.fleet-num,
.car-price-block .price,
.hero-stat .num,
.srv-stat .v,
.side-section-label,
.ham-label,
.side-tag,
.car-class,
.car-rating,
.fc-head span,
.side-concierge-label,
.lbl,
.srv-cat,
.fleet-tier-label {
	font-family: var(--heading) !important;
}

.btn,
button,
.book-go,
.book-tab,
.city-chip,
.route-go,
.city-card-cta,
.back-link,
.car-reserve,
.ham-btn,
.h-signin,
.theme-toggle,
.tiernav a,
.br-tab,
.journal-chip,
.btn-icon,
.btn-primary,
.btn-ghost,
.btn-cream,
.btn-gold-line,
.newsletter-form button,
.wpforms-submit,
input[type="submit"],
input[type="button"] {
	font-family: var(--heading) !important;
}

p,
.lead,
.hero-sub,
li,
.faq-a,
.faq-q,
.car-models,
.page-intro p,
.flhero-lead,
.side-concierge-sub,
.post-body,
.journal-card p,
.city-country,
.route-meta,
.fleet-hero-models,
.amen-d,
.footer-col p,
.car-spec .l,
.vspec .l,
.ideal-chip {
	font-family: var(--body) !important;
}

/* Header — 3-column grid (menu left, logo center, actions right) */
.site-header {
	display: grid !important;
	grid-template-columns: 1fr auto 1fr !important;
	align-items: center !important;
}

.h-right {
	justify-content: flex-end !important;
}

/* WordPress adds class "page" to body on static pages — never hide the document */
body.home,
body.front-page,
body.page {
	display: block !important;
}

/* WordPress: always show theme sections (original SPA used section.page { display:none }). */
#page-home,
.page.lux-page,
.page.lux-archive,
.page.lux-single,
.lux-page,
.lux-archive,
.lux-single,
main .page.active,
main .lux-page {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
}

/* Homepage must never render blank — do not rely on .home body class or reveal JS */
#page-home .hero,
#page-home .marquee,
#page-home .bay,
#page-home section {
	opacity: 1 !important;
	visibility: visible !important;
}

#page-home .reveal,
.home #page-home .reveal,
body.front-page #page-home .reveal {
	opacity: 1 !important;
	transform: none !important;
	visibility: visible !important;
}

#page-home.page.active {
	animation: none !important;
}

/* Sidebar — match original light cream + gold design */
[data-theme="light"] .sidebar {
	background: linear-gradient(180deg, #FCF9F0 0%, #F1EADC 100%);
}

[data-theme="light"] .side-section-label {
	color: #9C7C4C;
	letter-spacing: 0.32em;
}

[data-theme="light"] .side-link {
	color: #1C1814;
	font-family: var(--heading);
}

[data-theme="light"] .side-link.active,
[data-theme="light"] .side-link:hover {
	color: #9C7C4C;
}

[data-theme="light"] .side-link::after {
	color: #9C7C4C;
}

[data-theme="light"] .side-name {
	background: none;
	-webkit-text-fill-color: #1C1814;
	color: #1C1814;
	font-family: var(--heading);
}

[data-theme="light"] .side-tag {
	color: #9C7C4C;
}

/* Hide custom cursor over open sidebar (no stray circle on menu) */
body:has(.sidebar.open) .cursor-dot,
body:has(.sidebar.open) .cursor-ring {
	opacity: 0 !important;
	pointer-events: none !important;
}

/* No extra icons in sidebar links — arrow is CSS ::after on active only */
.side-link > span {
	display: none !important;
}

/* Star rating — avoid encoding issues in bundled CSS */
.car-rating::before {
	content: "\2605";
	color: var(--gold-2);
	font-size: 0.72rem;
	line-height: 1;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.wp-block-image img,
.city-card-photo img,
.fleet-hero-plate img,
.city-hero-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* WPForms on contact page — match theme form styling */
.contact-grid .wpforms-wrap .wpforms-container {
	margin: 0;
	max-width: none;
}
.contact-grid .wpforms-wrap .wpforms-field-label {
	font-family: var(--heading);
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ink-muted);
}
.contact-grid .wpforms-wrap input,
.contact-grid .wpforms-wrap select,
.contact-grid .wpforms-wrap textarea {
	width: 100%;
	border: 1px solid var(--line);
	border-radius: var(--r-1);
	background: var(--paper);
	padding: 12px 14px;
	font-family: var(--body);
	color: var(--ink);
}
.contact-grid .wpforms-wrap select,
.contact-form .form-field select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	cursor: pointer;
	padding-right: 44px;
	font-family: var(--body);
	font-weight: 500;
	color: var(--ink);
	background-color: var(--paper);
	background-image:
		linear-gradient(45deg, transparent 50%, var(--gold-1) 50%),
		linear-gradient(135deg, var(--gold-1) 50%, transparent 50%);
	background-position:
		calc(100% - 18px) calc(50% - 2px),
		calc(100% - 12px) calc(50% - 2px);
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
}
.contact-grid .wpforms-wrap select option,
.contact-form .form-field select option {
	font-family: var(--body);
	background: var(--paper);
	color: var(--ink);
}
.contact-grid .wpforms-wrap .wpforms-submit {
	background: var(--ink);
	color: var(--paper-2);
	border: none;
	border-radius: 999px;
	padding: 14px 28px;
	font-family: var(--heading);
	cursor: pointer;
}
.contact-grid .wpforms-wrap .wpforms-submit:hover {
	opacity: 0.9;
}
