/* =========================================================
   Meraki Events — luxury UI system
   ========================================================= */

:root {
	--meraki-ease: cubic-bezier(0.25, 0.6, 0.3, 1);
	--meraki-shadow-soft: 0 18px 50px -24px rgba(59, 42, 32, 0.35);
	--meraki-shadow-lift: 0 30px 70px -30px rgba(59, 42, 32, 0.45);
}

html {
	scroll-behavior: smooth;
}

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

::selection {
	background: #b76e4a;
	color: #faf7f3;
}

/* ---------------------------------------------------------
   Skip link (a11y)
   --------------------------------------------------------- */
.meraki-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100000;
	padding: 0.9rem 1.6rem;
	background: #3b2a20;
	color: #faf7f3;
	font-size: 0.8125rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.meraki-skip-link:focus {
	left: 0;
}

/* ---------------------------------------------------------
   Header — transparent over hero, solid on scroll
   --------------------------------------------------------- */
.meraki-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 990;
	background: transparent;
	transition: background 0.5s var(--meraki-ease), box-shadow 0.5s var(--meraki-ease), transform 0.5s var(--meraki-ease);
}

.meraki-header .wp-block-site-title a,
.meraki-header .wp-block-navigation a,
.meraki-header .wp-block-navigation__responsive-container-open {
	color: #faf7f3;
}

.meraki-header.is-scrolled {
	position: fixed;
	background: rgba(42, 29, 21, 0.96);
	box-shadow: 0 10px 40px -20px rgba(42, 29, 21, 0.7);
	backdrop-filter: blur(8px);
	animation: meraki-header-in 0.5s var(--meraki-ease);
}

@keyframes meraki-header-in {
	from { transform: translateY(-100%); }
	to   { transform: translateY(0); }
}

/* Bronze hover underline on nav items */
.meraki-header .wp-block-navigation .wp-block-navigation-item__content {
	position: relative;
	padding-bottom: 0.35em;
	transition: color 0.35s var(--meraki-ease);
}

.meraki-header .wp-block-navigation .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 1px;
	background: #b76e4a;
	transform: scaleX(0);
	transform-origin: right center;
	transition: transform 0.45s var(--meraki-ease);
}

.meraki-header .wp-block-navigation .wp-block-navigation-item__content:hover {
	color: #c98b69;
}

.meraki-header .wp-block-navigation .wp-block-navigation-item__content:hover::after,
.meraki-header .wp-block-navigation .current-menu-item .wp-block-navigation-item__content::after {
	transform: scaleX(1);
	transform-origin: left center;
}

/* Mobile navigation overlay */
.wp-block-navigation__responsive-container.is-menu-open {
	background: #2a1d15;
	padding: clamp(2rem, 6vw, 4rem);
}

.wp-block-navigation__responsive-container.is-menu-open a {
	color: #faf7f3;
	font-size: 1.05rem;
}

/* ---------------------------------------------------------
   Typography helpers
   --------------------------------------------------------- */
.meraki-eyebrow {
	font-family: "Jost", sans-serif;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: #b76e4a;
}

.has-espresso-background-color .meraki-eyebrow,
.has-contrast-background-color .meraki-eyebrow {
	color: #c98b69;
}

.meraki-lead {
	font-size: clamp(1.125rem, 2vw, 1.3125rem);
	font-weight: 300;
	line-height: 1.8;
	color: #5c4c3f;
}

.has-espresso-background-color .meraki-lead,
.has-contrast-background-color .meraki-lead {
	color: rgba(250, 247, 243, 0.78);
}

/* Thin bronze rule */
.meraki-rule {
	width: 56px;
	height: 1px;
	background: #b76e4a;
	border: none;
	margin: 0;
}

/* ---------------------------------------------------------
   Cards & imagery
   --------------------------------------------------------- */
.meraki-card {
	background: #ffffff;
	box-shadow: var(--meraki-shadow-soft);
	transition: transform 0.5s var(--meraki-ease), box-shadow 0.5s var(--meraki-ease);
}

.meraki-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--meraki-shadow-lift);
}

.meraki-card-beige {
	background: #e7ded3;
	box-shadow: none;
	transition: transform 0.5s var(--meraki-ease), box-shadow 0.5s var(--meraki-ease);
}

.meraki-card-beige:hover {
	transform: translateY(-6px);
	box-shadow: var(--meraki-shadow-soft);
}

/* Slow, cinematic image zoom on hover */
.meraki-zoom img {
	transition: transform 1.4s var(--meraki-ease);
}

.meraki-zoom:hover img {
	transform: scale(1.045);
}

.meraki-zoom {
	overflow: hidden;
}

/* Number ornaments for process steps */
.meraki-step-number {
	font-family: "Cormorant Garamond", serif;
	font-size: clamp(2.75rem, 5vw, 3.75rem);
	font-weight: 400;
	line-height: 1;
	color: #b76e4a;
	opacity: 0.85;
}

/* ---------------------------------------------------------
   Buttons — refined variants
   --------------------------------------------------------- */
.wp-block-button__link {
	transition: background 0.4s var(--meraki-ease), color 0.4s var(--meraki-ease), border-color 0.4s var(--meraki-ease), transform 0.4s var(--meraki-ease);
}

.wp-block-button.is-style-outline .wp-block-button__link {
	border: 1px solid currentColor;
	background: transparent;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: #b76e4a;
	border-color: #b76e4a;
	color: #faf7f3;
}

/* Ghost link with arrow */
.meraki-textlink a {
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #b76e4a;
	text-decoration: none;
	border-bottom: 1px solid rgba(183, 110, 74, 0.35);
	padding-bottom: 0.3em;
	transition: border-color 0.35s var(--meraki-ease), color 0.35s var(--meraki-ease);
}

.meraki-textlink a:hover {
	color: #3b2a20;
	border-color: #3b2a20;
}

/* ---------------------------------------------------------
   Reveal animations (fade / slide) — JS adds .is-inview
   --------------------------------------------------------- */
.reveal,
.reveal-left,
.reveal-right {
	opacity: 0;
	transform: translateY(36px);
	transition: opacity 0.9s var(--meraki-ease), transform 0.9s var(--meraki-ease);
	will-change: opacity, transform;
}

.reveal-left  { transform: translateX(-44px); }
.reveal-right { transform: translateX(44px); }

.reveal.is-inview,
.reveal-left.is-inview,
.reveal-right.is-inview {
	opacity: 1;
	transform: none;
}

/* Stagger children of a revealed group */
.reveal-stagger > * {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.8s var(--meraki-ease), transform 0.8s var(--meraki-ease);
}

.reveal-stagger.is-inview > *:nth-child(1) { transition-delay: 0.05s; }
.reveal-stagger.is-inview > *:nth-child(2) { transition-delay: 0.18s; }
.reveal-stagger.is-inview > *:nth-child(3) { transition-delay: 0.31s; }
.reveal-stagger.is-inview > *:nth-child(4) { transition-delay: 0.44s; }
.reveal-stagger.is-inview > *:nth-child(5) { transition-delay: 0.57s; }
.reveal-stagger.is-inview > *:nth-child(6) { transition-delay: 0.70s; }

.reveal-stagger.is-inview > * {
	opacity: 1;
	transform: none;
}

/* ---------------------------------------------------------
   Forms — elegant, minimal
   --------------------------------------------------------- */
.meraki-form input[type="text"],
.meraki-form input[type="email"],
.meraki-form input[type="tel"],
.meraki-form select,
.meraki-form textarea {
	width: 100%;
	background: transparent;
	border: none;
	border-bottom: 1px solid rgba(59, 42, 32, 0.25);
	border-radius: 0;
	padding: 0.9rem 0;
	font-family: "Jost", sans-serif;
	font-size: 1rem;
	font-weight: 300;
	color: #3b2a20;
	transition: border-color 0.35s var(--meraki-ease);
}

.meraki-form input:focus,
.meraki-form select:focus,
.meraki-form textarea:focus {
	outline: none;
	border-bottom-color: #b76e4a;
}

.meraki-form label {
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #7a6a5c;
	display: block;
	margin-bottom: 0.25rem;
}

.meraki-form button[type="submit"],
.meraki-form input[type="submit"] {
	background: #b76e4a;
	color: #faf7f3;
	border: none;
	border-radius: 0;
	padding: 1.05rem 2.6rem;
	font-family: "Jost", sans-serif;
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.4s var(--meraki-ease);
}

.meraki-form button[type="submit"]:hover,
.meraki-form input[type="submit"]:hover {
	background: #3b2a20;
}

/* Newsletter inline form (footer) */
.meraki-newsletter form,
.meraki-newsletter .meraki-newsletter-row {
	display: flex;
	gap: 0;
	border-bottom: 1px solid rgba(250, 247, 243, 0.3);
}

.meraki-newsletter input[type="email"] {
	flex: 1;
	background: transparent;
	border: none;
	padding: 0.85rem 0;
	color: #faf7f3;
	font-family: "Jost", sans-serif;
	font-weight: 300;
}

.meraki-newsletter input[type="email"]::placeholder {
	color: rgba(250, 247, 243, 0.5);
}

.meraki-newsletter input:focus {
	outline: none;
}

.meraki-newsletter button {
	background: transparent;
	border: none;
	color: #c98b69;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	cursor: pointer;
	transition: color 0.35s var(--meraki-ease);
}

.meraki-newsletter button:hover {
	color: #faf7f3;
}

/* ---------------------------------------------------------
   Footer refinements
   --------------------------------------------------------- */
.meraki-footer a {
	color: rgba(250, 247, 243, 0.72);
	text-decoration: none;
	transition: color 0.35s var(--meraki-ease);
}

.meraki-footer a:hover {
	color: #c98b69;
}

.meraki-footer .wp-block-social-links .wp-social-link {
	transition: transform 0.35s var(--meraki-ease);
}

.meraki-footer .wp-block-social-links .wp-social-link:hover {
	transform: translateY(-3px);
}

/* ---------------------------------------------------------
   Misc polish
   --------------------------------------------------------- */
.wp-block-cover {
	isolation: isolate;
}

.wp-site-blocks > main {
	display: block;
}

/* Editorial drop cap tone */
p.has-drop-cap:not(:focus)::first-letter {
	font-family: "Cormorant Garamond", serif;
	color: #b76e4a;
	font-weight: 500;
}

/* Quote author styling */
.meraki-attribution {
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: #7a6a5c;
}

/* WhatsApp pill */
.meraki-whatsapp .wp-block-button__link {
	background: #2a1d15;
	color: #faf7f3;
}

.meraki-whatsapp .wp-block-button__link:hover {
	background: #b76e4a;
}

/* ---------------------------------------------------------
   Reduced motion — respect user preference
   --------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.reveal,
	.reveal-left,
	.reveal-right,
	.reveal-stagger > * {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}

	.meraki-header.is-scrolled {
		animation: none;
	}

	.meraki-zoom img {
		transition: none;
	}
}
