/* ==========================================================================
   Petra Wassaif Camp — site styles
   Colours, fonts and spacing come from theme.json presets.
   ========================================================================== */

:root {
	--wsf-header-h: 78px;
	--wsf-ease: cubic-bezier(.2, .7, .2, 1);
	--wsf-line: color-mix(in srgb, var(--wp--preset--color--stone) 70%, transparent);
}

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--wsf-header-h) + 1rem); }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden; }
img { height: auto; }
::selection { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--charcoal); }

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--wp--preset--color--terracotta);
	outline-offset: 3px;
}
.has-charcoal-background-color :where(a, button):focus-visible,
.wp-block-cover :where(a, button):focus-visible { outline-color: var(--wp--preset--color--gold); }

/* Editor-facing helpers ---------------------------------------------------- */
.is-style-eyebrow {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.75rem !important;
	font-weight: 700;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--wp--preset--color--terracotta);
	margin-bottom: 0.25rem !important;
}
.has-charcoal-background-color .is-style-eyebrow,
.wp-block-cover .is-style-eyebrow { color: var(--wp--preset--color--gold); }

.lede { font-size: var(--wp--preset--font-size--large); line-height: 1.6; color: var(--wp--preset--color--muted); }
.has-charcoal-background-color .lede { color: var(--wp--preset--color--stone); }
.wp-block-cover .lede, .wp-block-cover p:not(.is-style-eyebrow) { color: var(--wp--preset--color--sand); }
.wp-block-cover :where(h1, h2, h3) { color: var(--wp--preset--color--cream); }
.small-note { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.has-charcoal-background-color .small-note { color: var(--wp--preset--color--stone); }

.has-charcoal-background-color :where(h1, h2, h3, h4) { color: var(--wp--preset--color--cream); }
.has-charcoal-background-color a:where(:not(.wp-element-button)) { color: var(--wp--preset--color--gold); }

/* Sections ------------------------------------------------------------------ */
.section {
	padding-top: var(--wp--preset--spacing--60) !important;
	padding-bottom: var(--wp--preset--spacing--60) !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
.section + .section { margin-top: 0 !important; }
.page-content > .section:first-child { margin-top: 0 !important; }
.page-content > :last-child { margin-bottom: 0; }
.page-content:not(:has(> .section:last-child, > .wp-block-cover:last-child)) { padding-bottom: var(--wp--preset--spacing--60); }
.page-content > .wp-block-cover:last-child { margin-bottom: 0; }
.wp-site-blocks > footer, .wp-site-blocks > main { margin-block-start: 0; }
.section-head { max-width: 720px; margin-bottom: var(--wp--preset--spacing--40) !important; }
.section-head.is-centered { margin-left: auto !important; margin-right: auto !important; text-align: center; }
.section-head h2 { margin-top: 0.35rem; }

.rule-gold { width: 56px; height: 2px; background: var(--wp--preset--color--gold); border: 0; margin: 1.25rem 0; }
.is-centered .rule-gold { margin-left: auto; margin-right: auto; }

/* Header -------------------------------------------------------------------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--wp--preset--color--cream);
	border-bottom: 1px solid var(--wsf-line);
	padding-top: 0.6rem;
	padding-bottom: 0.6rem;
	transition: box-shadow .3s var(--wsf-ease);
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 0; } }
.site-header.is-scrolled { box-shadow: 0 1px 0 var(--wsf-line), 0 10px 30px -22px rgba(34, 26, 21, .5); }
.site-header__inner { gap: 1.25rem; min-height: calc(var(--wsf-header-h) - 1.2rem); max-width: var(--wp--style--global--wide-size) !important; }
.site-brand { gap: 0.75rem; flex-shrink: 0; }
.site-brand .wp-block-site-logo img { border-radius: 4px; display: block; }
.site-brand__name {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.35rem;
	font-weight: 600;
	line-height: 1.05;
	margin: 0;
	max-width: 9.5em;
}
.site-brand__name a { color: var(--wp--preset--color--ink); text-decoration: none; }
.site-nav { margin-left: auto; }
.site-nav .wp-block-navigation__container { gap: clamp(0.85rem, 1.35vw, 1.6rem); flex-wrap: nowrap; }
.site-nav .wp-block-navigation-item { white-space: nowrap; }
.site-nav .wp-block-navigation-item__content { color: var(--wp--preset--color--ink); padding: .4rem 0; position: relative; text-decoration: none; }
.site-nav .wp-block-navigation__container .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
	background: var(--wp--preset--color--terracotta); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--wsf-ease);
}
.site-nav .wp-block-navigation-item__content:hover::after,
.site-nav .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.site-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--wp--preset--color--terracotta); }
.site-header__cta { flex-shrink: 0; }
.site-header__cta .wp-block-button__link { padding: 0.85rem 1.3rem; font-size: 0.72rem; }

/* Hamburger below 1180px (core switches at 600px by default). */
.site-nav .wp-block-navigation__responsive-container-open { color: var(--wp--preset--color--ink); padding: .5rem; }
.site-nav .wp-block-navigation__responsive-container-open svg { width: 28px; height: 28px; }
@media (max-width: 1179px) {
	.site-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.site-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.site-header__cta { order: 2; }
	.site-nav { order: 3; margin-left: 0; }
	.site-brand { margin-right: auto; }
}
@media (max-width: 420px) {
	.site-brand__name { display: none; }
	.site-header__cta .wp-block-button__link { padding: 0.8rem 1rem; letter-spacing: .12em; }
}
/* Overlay menu */
.site-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--charcoal) !important;
	color: var(--wp--preset--color--cream) !important;
	padding: 1.5rem clamp(1rem, 6vw, 3rem);
}
.site-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 4rem; align-items: flex-start !important; }
.site-nav .is-menu-open .wp-block-navigation__container { gap: 0.4rem !important; align-items: flex-start !important; }
.site-nav .is-menu-open .wp-block-navigation-item__content {
	color: var(--wp--preset--color--cream) !important;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.9rem, 7vw, 2.6rem);
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	padding: .25rem 0 !important;
}
.site-nav .is-menu-open .current-menu-item > .wp-block-navigation-item__content { color: var(--wp--preset--color--gold) !important; }
.site-nav .wp-block-navigation__responsive-container-close { color: var(--wp--preset--color--cream); top: 1.25rem; right: 1.25rem; }
.site-nav .wp-block-navigation__responsive-container-close svg { width: 32px; height: 32px; }

/* Buttons ------------------------------------------------------------------- */
.wp-block-button__link { transition: background-color .25s var(--wsf-ease), color .25s var(--wsf-ease), border-color .25s var(--wsf-ease), transform .25s var(--wsf-ease); }
.wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button.is-style-outline-light .wp-block-button__link { background: transparent; color: var(--wp--preset--color--cream); border-color: color-mix(in srgb, var(--wp--preset--color--cream) 75%, transparent); }
.wp-block-button.is-style-outline-light .wp-block-button__link:hover { background: var(--wp--preset--color--cream); color: var(--wp--preset--color--charcoal); border-color: var(--wp--preset--color--cream); }
.wp-block-button.is-style-outline-dark .wp-block-button__link { background: transparent; color: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--ink); }
.wp-block-button.is-style-outline-dark .wp-block-button__link:hover { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--cream); }
.wp-block-button.is-style-whatsapp .wp-block-button__link { background: #1F7A4D; border-color: #1F7A4D; color: #fff; }
.wp-block-button.is-style-whatsapp .wp-block-button__link:hover { background: #17603c; border-color: #17603c; }
.wp-block-button.is-style-whatsapp .wp-block-button__link::before {
	content: ""; display: inline-block; width: 1.05em; height: 1.05em; margin-right: .55em; vertical-align: -0.2em;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 3C8.8 3 3 8.8 3 15.9c0 2.5.7 4.9 2 7L3 29l6.3-2c2 1.1 4.3 1.7 6.7 1.7 7.2 0 13-5.8 13-12.9S23.2 3 16 3Zm0 23.5c-2.2 0-4.3-.6-6.1-1.7l-.4-.3-3.7 1.2 1.2-3.6-.3-.4a10.6 10.6 0 0 1-1.7-5.8C5 10 10 5.3 16 5.3S27 10 27 15.9 22 26.5 16 26.5Zm6-7.9c-.3-.2-1.9-.9-2.2-1-.3-.1-.5-.2-.7.2-.2.3-.8 1-1 1.2-.2.2-.4.2-.7.1-.3-.2-1.4-.5-2.6-1.6-1-.9-1.6-1.9-1.8-2.2-.2-.3 0-.5.1-.7l.5-.6c.2-.2.2-.3.3-.6.1-.2 0-.4 0-.6l-1-2.4c-.3-.6-.5-.5-.7-.5h-.6c-.2 0-.6.1-.9.4-.3.3-1.2 1.1-1.2 2.8s1.2 3.2 1.4 3.5c.2.2 2.4 3.6 5.8 5 .8.4 1.4.6 1.9.7.8.3 1.5.2 2.1.1.6-.1 1.9-.8 2.2-1.5.3-.8.3-1.4.2-1.5-.1-.2-.3-.3-.6-.4Z'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 3C8.8 3 3 8.8 3 15.9c0 2.5.7 4.9 2 7L3 29l6.3-2c2 1.1 4.3 1.7 6.7 1.7 7.2 0 13-5.8 13-12.9S23.2 3 16 3Zm0 23.5c-2.2 0-4.3-.6-6.1-1.7l-.4-.3-3.7 1.2 1.2-3.6-.3-.4a10.6 10.6 0 0 1-1.7-5.8C5 10 10 5.3 16 5.3S27 10 27 15.9 22 26.5 16 26.5Zm6-7.9c-.3-.2-1.9-.9-2.2-1-.3-.1-.5-.2-.7.2-.2.3-.8 1-1 1.2-.2.2-.4.2-.7.1-.3-.2-1.4-.5-2.6-1.6-1-.9-1.6-1.9-1.8-2.2-.2-.3 0-.5.1-.7l.5-.6c.2-.2.2-.3.3-.6.1-.2 0-.4 0-.6l-1-2.4c-.3-.6-.5-.5-.7-.5h-.6c-.2 0-.6.1-.9.4-.3.3-1.2 1.1-1.2 2.8s1.2 3.2 1.4 3.5c.2.2 2.4 3.6 5.8 5 .8.4 1.4.6 1.9.7.8.3 1.5.2 2.1.1.6-.1 1.9-.8 2.2-1.5.3-.8.3-1.4.2-1.5-.1-.2-.3-.3-.6-.4Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.text-link a, a.text-link {
	font-size: 0.8rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; text-decoration: none;
	border-bottom: 1px solid currentColor; padding-bottom: 2px;
}
.text-link a::after, a.text-link::after { content: " →"; }

/* Hero label legibility over bright skies */
.home-hero .is-style-eyebrow { color: var(--wp--preset--color--cream) !important; text-shadow: 0 1px 12px rgba(0,0,0,.55); }
.home-hero h1, .home-hero .hero-lede { text-shadow: 0 2px 24px rgba(0,0,0,.35); }

/* Heroes -------------------------------------------------------------------- */
h1, h2, h3 { text-wrap: balance; }
.home-hero .wp-block-cover__inner-container,
.page-hero .wp-block-cover__inner-container { width: 100% !important; max-width: calc(var(--wp--style--global--wide-size) + var(--wp--style--root--padding-left) + var(--wp--style--root--padding-right)); margin-left: auto !important; margin-right: auto !important; padding-left: var(--wp--style--root--padding-left); padding-right: var(--wp--style--root--padding-right); box-sizing: border-box; }
.home-hero .wp-block-cover__inner-container > .alignwide,
.page-hero .wp-block-cover__inner-container > .alignwide { max-width: none; margin-left: 0 !important; margin-right: 0 !important; }
.home-hero { min-height: min(92vh, 900px) !important; }
.home-hero .wp-block-cover__inner-container { padding-top: 6rem; padding-bottom: clamp(3rem, 8vh, 6rem); }
.home-hero h1 { color: var(--wp--preset--color--cream); max-width: 13ch; margin: .6rem 0 1rem; text-wrap: balance; }
.home-hero .hero-lede { font-size: var(--wp--preset--font-size--large); max-width: 34rem; color: var(--wp--preset--color--sand); }
.home-hero .wp-block-buttons { margin-top: 2rem; }
.wp-block-cover.home-hero .wp-block-cover__background,
.wp-block-cover.page-hero .wp-block-cover__background {
	background: linear-gradient(180deg, rgba(34, 26, 21, .30) 0%, rgba(34, 26, 21, .15) 35%, rgba(34, 26, 21, .78) 100%) !important;
	opacity: 1 !important;
}
.page-hero { min-height: clamp(360px, 58vh, 620px) !important; }
.page-hero .wp-block-cover__inner-container { padding-top: 5rem; padding-bottom: clamp(2.5rem, 6vh, 4.5rem); }
.page-hero__title { color: var(--wp--preset--color--cream); margin: .5rem 0 .75rem; max-width: 16ch; text-wrap: balance; }
.page-hero__lede { max-width: 38rem; color: var(--wp--preset--color--sand); font-size: var(--wp--preset--font-size--large); }
.page-hero__lede p { margin: 0; }
.page-hero__lede .wp-block-post-excerpt__more-text { display: none; }
.plain-hero { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--20); }
.page-content--plain { padding-top: 0; }

/* Breadcrumbs */
.wsf-breadcrumbs { font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; }
.wsf-breadcrumbs, .wsf-breadcrumbs a { color: var(--wp--preset--color--sand); text-decoration: none; }
.wsf-breadcrumbs a:hover { color: var(--wp--preset--color--cream); text-decoration: underline; }
.wsf-breadcrumbs .breadcrumb_last { color: var(--wp--preset--color--gold); }
.plain-hero .wsf-breadcrumbs, .plain-hero .wsf-breadcrumbs a { color: var(--wp--preset--color--muted); }
.plain-hero .wsf-breadcrumbs .breadcrumb_last { color: var(--wp--preset--color--terracotta); }

/* Media --------------------------------------------------------------------- */
.wp-block-image img { display: block; }
.frame img { border-radius: 2px; }
.ratio-portrait img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.ratio-landscape img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.ratio-wide img { aspect-ratio: 16 / 9; object-fit: cover; width: 100%; }
.wp-block-image.is-style-zoom { overflow: hidden; }
.wp-block-image.is-style-zoom img { transition: transform 1.2s var(--wsf-ease); }
.wp-block-image.is-style-zoom:hover img { transform: scale(1.04); }
.wp-block-image figcaption.wp-element-caption { margin-top: .6rem; font-size: .78rem; color: var(--wp--preset--color--muted); }
.has-charcoal-background-color .wp-block-image figcaption.wp-element-caption { color: var(--wp--preset--color--stone); }
.credit { font-size: .75rem !important; color: var(--wp--preset--color--muted); }

/* Split feature (image + text) */
.split { gap: var(--wp--preset--spacing--50) !important; align-items: center !important; }
.split-offset { position: relative; }
@media (min-width: 900px) {
	.split-offset .wp-block-image:nth-child(2) { width: 52%; margin: -16% 0 0 auto !important; border: 10px solid var(--wp--preset--color--cream); }
	.section.has-sand-background-color .split-offset .wp-block-image:nth-child(2) { border-color: var(--wp--preset--color--sand); }
}

/* Cards --------------------------------------------------------------------- */
.card-grid { gap: clamp(1.25rem, 2.5vw, 2rem) !important; }
.card-grid > .wp-block-column { display: flex; flex-direction: column; }
.wp-block-group.is-style-card,
.card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wsf-line);
	height: 100%;
	display: flex;
	flex-direction: column;
	gap: 0;
}
.has-sand-background-color .is-style-card { background: var(--wp--preset--color--cream); }
.card > .wp-block-image { margin: 0 !important; overflow: hidden; }
.card > .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; transition: transform 1.2s var(--wsf-ease); }
.card:hover > .wp-block-image img { transform: scale(1.04); }
.card__body { padding: clamp(1.25rem, 2.5vw, 1.9rem) !important; display: flex; flex-direction: column; flex: 1; gap: .75rem; }
.card__body > * { margin: 0 !important; }
.card__body h3 { font-size: 1.9rem; }
.room .card__meta, .card__body .card__meta { font-size: .8rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--terracotta); }
.card__body .wp-block-buttons, .card__body .text-link { margin-top: auto !important; padding-top: .5rem; }
.card__body ul { padding-left: 0; list-style: none; font-size: .95rem; }

.tag {
	display: inline-block; font-size: .7rem !important; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
	padding: .35rem .6rem; border: 1px solid currentColor; color: var(--wp--preset--color--desert-brown);
}
.tag--camp { color: var(--wp--preset--color--terracotta); }

/* Cards on dark sections */
.has-charcoal-background-color .is-style-card, .has-charcoal-background-color .card { background: rgba(247, 242, 234, .04); border-color: rgba(214, 200, 179, .22); }
.has-charcoal-background-color .card__body h3 { color: var(--wp--preset--color--cream); }
.has-charcoal-background-color .tag { color: var(--wp--preset--color--stone); }
.has-charcoal-background-color .tag--camp { color: var(--wp--preset--color--gold); }
.has-charcoal-background-color .room .card__meta, .card__body .card__meta { color: var(--wp--preset--color--gold); }

/* Check list */
.wp-block-list.is-style-checks { list-style: none; padding-left: 0; }
.wp-block-list.is-style-checks li { position: relative; padding-left: 1.75rem; margin-bottom: .55rem; }
.wp-block-list.is-style-checks li::before {
	content: ""; position: absolute; left: 0; top: .62em; width: .85rem; height: .45rem;
	border-left: 2px solid var(--wp--preset--color--terracotta); border-bottom: 2px solid var(--wp--preset--color--terracotta);
	transform: rotate(-45deg) translateY(-50%);
}
.has-charcoal-background-color .wp-block-list.is-style-checks li::before { border-color: var(--wp--preset--color--gold); }

/* Facts row (e.g. drive times) */
.facts { gap: 0 !important; border-top: 1px solid var(--wsf-line); border-bottom: 1px solid var(--wsf-line); }
.facts > .wp-block-column { padding: 1.5rem 1rem; text-align: center; }
.facts > .wp-block-column + .wp-block-column { border-left: 1px solid var(--wsf-line); }
.facts .fact-num { font-family: var(--wp--preset--font-family--display); font-size: clamp(2.2rem, 4vw, 3rem); line-height: 1; margin: 0; color: var(--wp--preset--color--terracotta); }
.has-charcoal-background-color .facts .fact-num { color: var(--wp--preset--color--gold); }
.facts .fact-label { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; margin: .5rem 0 0; }
@media (max-width: 781px) {
	.facts > .wp-block-column + .wp-block-column { border-left: 0; border-top: 1px solid var(--wsf-line); }
}

/* Room detail blocks */
.room { border-top: 1px solid var(--wsf-line); padding-top: var(--wp--preset--spacing--50); }
.room + .room { margin-top: var(--wp--preset--spacing--50) !important; }
.room-specs { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem 1.5rem; margin: 1.25rem 0 !important; }
.room-specs p { margin: 0; font-size: .95rem; }
.room-specs strong { display: block; font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--wp--preset--color--muted); font-weight: 700; }

/* Ratings / reviews */
.rating-card { text-align: center; padding: 2rem 1.25rem !important; border: 1px solid var(--wsf-line); }
.has-charcoal-background-color .rating-card { border-color: rgba(214, 200, 179, .25); }
.rating-card .rating-score { font-family: var(--wp--preset--font-family--display); font-size: 3.4rem; line-height: 1; margin: 0; color: var(--wp--preset--color--terracotta); }
.has-charcoal-background-color .rating-card .rating-score { color: var(--wp--preset--color--gold); }
.rating-card .rating-source { font-weight: 700; letter-spacing: .14em; text-transform: uppercase; font-size: .78rem; margin: .75rem 0 .25rem; }
.rating-card p { margin: 0; }
.review-quote.wp-block-quote { border-left-color: var(--wp--preset--color--gold); margin: 0; }
.review-quote.wp-block-quote cite { font-family: var(--wp--preset--font-family--body); font-style: normal; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.has-charcoal-background-color .review-quote.wp-block-quote cite { color: var(--wp--preset--color--stone); }
.has-charcoal-background-color .review-quote.wp-block-quote p { color: var(--wp--preset--color--cream); }

/* Details / FAQ */
.wp-block-details { border-bottom: 1px solid var(--wsf-line); padding: 1.1rem 0; }
.wp-block-details summary { font-family: var(--wp--preset--font-family--display); font-size: 1.45rem; cursor: pointer; list-style: none; position: relative; padding-right: 2rem; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; position: absolute; right: 0; top: 0; font-family: var(--wp--preset--font-family--body); font-size: 1.4rem; color: var(--wp--preset--color--terracotta); transition: transform .3s var(--wsf-ease); }
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details > :not(summary) { margin-top: .75rem; color: var(--wp--preset--color--muted); }

/* Steps (booking) */
.steps { counter-reset: step; }
.steps > .wp-block-column { counter-increment: step; }
.steps > .wp-block-column > .card__body::before,
.steps .step::before {
	content: counter(step, decimal-leading-zero);
	font-family: var(--wp--preset--font-family--display); font-size: 2.4rem; line-height: 1; color: var(--wp--preset--color--gold);
}

/* Gallery ------------------------------------------------------------------- */
.gallery-filters { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; margin: 0 auto var(--wp--preset--spacing--40); }
.gallery-filters button {
	font: inherit; font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
	background: transparent; color: var(--wp--preset--color--ink); border: 1px solid var(--wsf-line); padding: .6rem 1rem; cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s;
}
.gallery-filters button:hover { border-color: var(--wp--preset--color--ink); }
.gallery-filters button[aria-pressed="true"] { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--cream); border-color: var(--wp--preset--color--ink); }
.gallery-section[hidden] { display: none !important; }
.gallery-section h2 { font-size: var(--wp--preset--font-size--x-large); }

.wp-block-gallery.wsf-masonry { display: block !important; column-count: 3; column-gap: 1rem; }
.wp-block-gallery.wsf-masonry > .wp-block-image { width: 100% !important; margin: 0 0 1rem !important; break-inside: avoid; display: block; }
.wp-block-gallery.wsf-masonry > .wp-block-image img { width: 100% !important; height: auto !important; object-fit: contain !important; }
.wp-block-gallery.wsf-masonry > .wp-block-image figcaption {
	position: static !important; background: none !important; color: var(--wp--preset--color--muted) !important;
	padding: .45rem 0 0 !important; text-align: left !important; font-size: .74rem !important; max-height: none !important; margin: 0 !important;
}
@media (max-width: 900px) { .wp-block-gallery.wsf-masonry { column-count: 2; } }
@media (max-width: 520px) { .wp-block-gallery.wsf-masonry { column-count: 1; } }

.preview-grid { display: grid !important; grid-template-columns: repeat(4, 1fr); grid-auto-rows: clamp(140px, 17vw, 240px); gap: .75rem !important; }
.preview-grid > .wp-block-image { margin: 0 !important; overflow: hidden; }
.preview-grid > .wp-block-image a { display: block; height: 100%; }
.preview-grid > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--wsf-ease); }
.preview-grid > .wp-block-image:hover img { transform: scale(1.05); }
.preview-grid > .wp-block-image:nth-child(1) { grid-column: span 2; grid-row: span 2; }
@media (max-width: 781px) {
	.preview-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 42vw; }
}

/* Map ----------------------------------------------------------------------- */
.map-embed { position: relative; aspect-ratio: 4 / 3; background: var(--wp--preset--color--sand); border: 1px solid var(--wsf-line); }
.map-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: sepia(.25) saturate(.9); }

/* Contact list */
.contact-list p { margin: 0 0 1rem; }
.contact-list strong { display: block; font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.has-charcoal-background-color .contact-list strong { color: var(--wp--preset--color--gold); }

/* Forms (Contact Form 7) ---------------------------------------------------- */
.wpcf7 form { display: grid; gap: 1rem; }
.wpcf7 *, .wpcf7 *::before, .wpcf7 *::after { box-sizing: border-box; }
.wpcf7 .wpcf7-form-control-wrap { display: block; }
.wpcf7 .form-row > p { min-width: 0; }
.wpcf7 .wsf-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.wpcf7 label { display: block; font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--wp--preset--color--ink); }
.wpcf7 .form-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
.wpcf7 p { margin: 0; }
.wpcf7 input:not([type="submit"]):not([type="checkbox"]), .wpcf7 textarea, .wpcf7 select {
	width: 100%; margin-top: .45rem; font: inherit; font-size: 1rem; letter-spacing: 0; text-transform: none; font-weight: 400;
	padding: .85rem 1rem; background: var(--wp--preset--color--white); color: var(--wp--preset--color--ink);
	border: 1px solid var(--wp--preset--color--stone); border-radius: 2px;
}
.wpcf7 textarea { min-height: 150px; }
.wpcf7 input:focus, .wpcf7 textarea:focus, .wpcf7 select:focus { border-color: var(--wp--preset--color--terracotta); outline: 2px solid color-mix(in srgb, var(--wp--preset--color--terracotta) 30%, transparent); outline-offset: 0; }
.wpcf7 .wpcf7-acceptance label { text-transform: none; letter-spacing: 0; font-weight: 400; font-size: .92rem; }
.wpcf7 input[type="submit"] {
	justify-self: start; cursor: pointer; font-family: var(--wp--preset--font-family--body); font-size: .8125rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
	padding: 1rem 2rem; background: var(--wp--preset--color--terracotta); color: #fff; border: 1px solid var(--wp--preset--color--terracotta); border-radius: 2px;
}
.wpcf7 input[type="submit"]:hover { background: var(--wp--preset--color--terracotta-dark); }
.wpcf7 .wpcf7-not-valid-tip { font-size: .85rem; color: #9B1C1C; margin-top: .3rem; }
.wpcf7 form .wpcf7-response-output { margin: 0; padding: .9rem 1rem; border-width: 1px; font-size: .95rem; }
.wpcf7-spinner { margin: 0 0 0 1rem; }

/* Footer -------------------------------------------------------------------- */
.site-footer { padding-top: var(--wp--preset--spacing--60); padding-bottom: 2rem; font-size: .95rem; margin-top: 0 !important; }
.site-footer__cols { gap: clamp(2rem, 4vw, 4rem) !important; }
.site-footer .wp-block-site-logo img { border-radius: 4px; }
.site-footer__name { font-family: var(--wp--preset--font-family--display); font-size: 1.7rem; color: var(--wp--preset--color--cream); margin-bottom: 0; }
.site-footer__heading { font-size: .72rem !important; letter-spacing: .22em; text-transform: uppercase; font-weight: 700; color: var(--wp--preset--color--gold); margin-bottom: 1rem; }
.site-footer a { color: var(--wp--preset--color--cream); text-decoration: none; }
.site-footer a:hover { color: var(--wp--preset--color--gold); text-decoration: underline; }
.site-footer__nav .wp-block-navigation__container { gap: .55rem !important; }
.site-footer__nav .wp-block-navigation-item__content { color: var(--wp--preset--color--cream); font-size: .95rem; letter-spacing: 0; text-transform: none; font-weight: 400; }
.site-footer__contact { line-height: 2; }
.site-footer__social { gap: .5rem !important; margin-top: 1.25rem !important; }
.site-footer__social.wp-block-social-links .wp-social-link { color: var(--wp--preset--color--cream); }
.site-footer__social.wp-block-social-links .wp-social-link a { padding: .5rem; border: 1px solid rgba(214, 200, 179, .35); }
.site-footer__social.wp-block-social-links .wp-social-link a:hover { border-color: var(--wp--preset--color--gold); color: var(--wp--preset--color--gold); }
.site-footer__bottom { margin-top: var(--wp--preset--spacing--50) !important; padding-top: 1.5rem; border-top: 1px solid rgba(214, 200, 179, .2); font-size: .85rem; gap: .75rem 2rem; }
.site-footer__bottom p { margin: 0; }
.site-footer__legal .wp-block-navigation__container { gap: 1.25rem !important; }
.site-footer__legal .wp-block-navigation-item__content { color: var(--wp--preset--color--stone); font-size: .85rem; text-transform: none; letter-spacing: 0; font-weight: 400; }

/* Floating WhatsApp --------------------------------------------------------- */
.wsf-float-wa {
	position: fixed; right: clamp(.9rem, 2.5vw, 1.75rem); bottom: clamp(.9rem, 2.5vw, 1.75rem); z-index: 90;
	display: inline-flex; align-items: center; gap: .5rem; padding: .8rem 1.1rem .8rem .9rem;
	background: #1F7A4D; color: #fff; text-decoration: none; border-radius: 999px;
	font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	box-shadow: 0 10px 28px -10px rgba(0, 0, 0, .45);
	transition: transform .25s var(--wsf-ease), background-color .25s;
}
.wsf-float-wa:hover { background: #17603c; color: #fff; transform: translateY(-2px); }
.wsf-float-wa:focus-visible { outline: 2px solid var(--wp--preset--color--gold); outline-offset: 3px; }
@media (max-width: 600px) { .wsf-float-wa span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } .wsf-float-wa { padding: .85rem; } }

/* Reveal on scroll (only when JS is available; honours reduced motion) ------ */
@media (prefers-reduced-motion: no-preference) {
	.js .reveal { opacity: 0; transform: translateY(22px); transition: opacity .9s var(--wsf-ease), transform .9s var(--wsf-ease); }
	.js .reveal.is-visible { opacity: 1; transform: none; }
	.home-hero .wp-block-cover__image-background { animation: wsf-kenburns 18s var(--wsf-ease) both; }
}
@keyframes wsf-kenburns { from { transform: scale(1.08); } to { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Small screens ------------------------------------------------------------- */
@media (max-width: 781px) {
	.split { gap: 2rem !important; }
	.home-hero h1 { max-width: none; }
	.wp-block-buttons { gap: .75rem; }
	.wp-block-buttons > .wp-block-button { flex: 1 1 auto; }
	.wp-block-buttons > .wp-block-button .wp-block-button__link { width: 100%; text-align: center; }
	.site-header__cta > .wp-block-button { flex: 0 0 auto; }
}
