/* =========================================================
   JollyJ International — custom theme CSS (block theme)
   Dark, editorial, champagne-gold. Layered on Twenty Twenty-Five.
   ========================================================= */

:root {
	--jj-gold: #c9a86a;
	--jj-champagne: #d8c4a0;
	--jj-base: #0c0c0e;
	--jj-surface: #16161b;
	--jj-line: #2a2a33;
}

body {
	background: var(--jj-base);
	-webkit-font-smoothing: antialiased;
}

/* ---------- Eyebrow / small caps label ---------- */
.jollyj-eyebrow,
.is-style-jollyj-eyebrow {
	font-family: Inter, sans-serif !important;
	text-transform: uppercase;
	letter-spacing: 0.32em !important;
	font-size: 0.72rem !important;
	font-weight: 600;
	color: var(--jj-gold) !important;
}

/* gold hairline rule */
.jollyj-rule { height: 1px; width: 64px; background: var(--jj-gold); margin: 0 auto; border: 0; }

/* ---------- Header ---------- */
.wp-block-template-part .wp-block-site-title a { color: var(--wp--preset--color--contrast); }
header .wp-block-navigation a:hover { color: var(--jj-gold); }
.jollyj-header {
	position: sticky; top: 0; z-index: 100;
	border-bottom: 1px solid var(--jj-line);
}
/* Glass background on a pseudo-element so the header itself does NOT establish
   a containing block for position:fixed children. backdrop-filter on the header
   would trap the mobile overlay menu (position:fixed) inside the header box. */
.jollyj-header::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: rgba(12,12,14,0.72);
	backdrop-filter: saturate(140%) blur(10px);
	-webkit-backdrop-filter: saturate(140%) blur(10px);
}
.jollyj-logo img { max-height: 46px; width: auto; }

/* ---------- Mobile overlay navigation ---------- */
.wp-block-navigation__responsive-container.is-menu-open {
	background: rgba(10,10,12,0.98) !important;
	padding: clamp(1.5rem, 6vw, 3rem) !important;
	z-index: 9998 !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	width: 100%;
	gap: 0.25rem;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	width: 100%;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	display: block;
	width: 100%;
	padding: 0.85rem 0.25rem;
	font-family: "Cormorant Garamond", Georgia, serif;
	font-size: 1.6rem;
	border-bottom: 1px solid var(--jj-line);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-buttons {
	width: 100%;
	margin-top: 1.4rem;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-button { width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-button__link { display: block; text-align: center; }
/* hamburger + close icon use the gold accent */
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close { color: var(--jj-champagne); }
.wp-block-navigation__responsive-container-open:hover,
.wp-block-navigation__responsive-container-close:hover { color: var(--jj-gold); }

/* ---------- Hero ---------- */
.jollyj-hero { min-height: 88vh; }
.jollyj-hero h1 { text-shadow: 0 2px 30px rgba(0,0,0,0.6); }
.jollyj-hero .wp-block-buttons { margin-top: 2rem; }

/* outline button variant */
.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent !important;
	color: var(--jj-champagne) !important;
	border: 1px solid var(--jj-gold) !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--jj-gold) !important;
	color: var(--jj-base) !important;
}

/* page head band */
.jollyj-pagehead { text-align: center; }
.jollyj-pagehead .jollyj-rule { margin-top: 1.4rem; }

/* stretched full-tile link */
.jollyj-tile { position: relative; }
.jollyj-cover-link { position: absolute; inset: 0; z-index: 5; overflow: hidden; text-indent: -9999px; white-space: nowrap; }

/* ---------- Category / section tiles (cover blocks) ---------- */
.jollyj-tiles .wp-block-cover {
	overflow: hidden;
	border: 1px solid var(--jj-line);
	transition: transform .5s ease, border-color .5s ease, box-shadow .5s ease;
}
.jollyj-tiles .wp-block-cover .wp-block-cover__image-background {
	transition: transform .9s cubic-bezier(.2,.7,.2,1);
}
.jollyj-tiles .wp-block-cover:hover {
	border-color: var(--jj-gold);
	box-shadow: 0 22px 60px -28px rgba(0,0,0,0.9);
}
.jollyj-tiles .wp-block-cover:hover .wp-block-cover__image-background {
	transform: scale(1.06);
}
.jollyj-tiles .wp-block-cover .wp-element-button,
.jollyj-tiles .wp-block-cover .wp-block-button__link {
	opacity: 0; transform: translateY(8px); transition: .45s ease;
}
.jollyj-tiles .wp-block-cover:hover .wp-block-button__link { opacity: 1; transform: none; }

/* "coming soon" ribbon */
.jollyj-soon { position: relative; }
.jollyj-soon::after {
	content: "Coming Soon";
	position: absolute; top: 16px; right: -34px;
	transform: rotate(45deg);
	background: var(--jj-gold); color: var(--jj-base);
	font: 600 11px/1 Inter, sans-serif; letter-spacing: .12em; text-transform: uppercase;
	padding: 7px 44px; z-index: 3;
}

/* ---------- Gallery ---------- */
.wp-block-gallery.is-style-jollyj-gallery figure { border: 1px solid var(--jj-line); }

/* ---------- Sections rhythm ---------- */
.jollyj-section { padding-block: clamp(4rem, 9vw, 8rem); }
.jollyj-surface { background: var(--jj-surface); }

/* price / stat numbers */
.jollyj-stat { font-family: "Cormorant Garamond", serif; color: var(--jj-gold); font-size: clamp(2.4rem,5vw,3.4rem); line-height: 1; }

/* ---------- Floating cart FAB ---------- */
.jollyj-fab {
	position: fixed; right: 22px; bottom: 22px; z-index: 9999;
	width: 60px; height: 60px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	background: var(--jj-gold); color: var(--jj-base) !important;
	box-shadow: 0 12px 34px -8px rgba(0,0,0,0.75);
	transition: transform .3s ease, background .3s ease;
}
.jollyj-fab:hover { transform: translateY(-3px) scale(1.04); background: var(--jj-champagne); }
.jollyj-fab-count {
	position: absolute; top: -4px; right: -4px;
	min-width: 22px; height: 22px; padding: 0 5px;
	border-radius: 11px; background: var(--jj-base); color: var(--jj-champagne);
	border: 1px solid var(--jj-gold);
	font: 600 12px/22px Inter, sans-serif; text-align: center;
}
.jollyj-fab-count.is-empty { display: none; }

/* ---------- Notification / banner bar tweaks ---------- */
#mtss-notification-bar, .wpnbi, .wp-notification-bar {
	font-family: Inter, sans-serif !important; letter-spacing: .04em;
}

/* ---------- WooCommerce dark overrides ---------- */
.woocommerce, .woocommerce-page { color: var(--wp--preset--color--contrast); }
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product { text-align: center; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: "Cormorant Garamond", serif; font-size: 1.35rem; color: var(--wp--preset--color--contrast); padding-top: .8rem; }
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price { color: var(--jj-gold) !important; font-family: "Cormorant Garamond", serif; font-size: 1.4rem; }
.woocommerce ul.products li.product img { border: 1px solid var(--jj-line); }

.woocommerce a.button, .woocommerce button.button,
.woocommerce #respond input#submit, .woocommerce input.button,
.woocommerce a.button.alt, .woocommerce button.button.alt {
	background: var(--jj-gold) !important; color: var(--jj-base) !important;
	border-radius: 0 !important; text-transform: uppercase; letter-spacing: .12em;
	font-size: .78rem; font-weight: 600; padding: .95em 2em !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce a.button.alt:hover { background: var(--jj-champagne) !important; }

.woocommerce table.shop_table,
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #payment {
	background: var(--jj-surface); border: 1px solid var(--jj-line);
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td { border-color: var(--jj-line); color: var(--wp--preset--color--contrast); }
.woocommerce-checkout #payment { border-radius: 0; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce .select2-container--default .select2-selection--single {
	background: #0f0f13; border: 1px solid var(--jj-line); color: var(--wp--preset--color--contrast); border-radius: 0;
}
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce-info { border-top-color: var(--jj-gold); background: var(--jj-surface); color: var(--wp--preset--color--contrast); }
.woocommerce .star-rating span::before,
.woocommerce p.stars a::before { color: var(--jj-gold); }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span { background: var(--jj-surface); color: var(--wp--preset--color--contrast); border-color: var(--jj-line); }

/* breadcrumb + result count muted */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-breadcrumb { color: var(--jj-muted, #9a9aa4); }

/* ---------- Footer ---------- */
.jollyj-footer { border-top: 1px solid var(--jj-line); }
.jollyj-footer a { color: var(--jj-champagne); }
.jollyj-footer a:hover { color: var(--jj-gold); }

/* ---------- Service / pricing cards ---------- */
.jollyj-card {
	border: 1px solid var(--jj-line);
	border-radius: 2px;
	height: 100%;
	transition: border-color .35s ease, transform .35s ease;
}
.jollyj-card:hover { border-color: var(--jj-gold); transform: translateY(-4px); }
.jollyj-card-featured {
	border-color: var(--jj-gold);
	box-shadow: 0 0 0 1px var(--jj-gold), 0 24px 60px -30px rgba(201,168,106,0.5);
}
.jollyj-feature {
	list-style: none;
	margin: 1.4rem 0 1.8rem;
	padding: 0;
	text-align: center;
}
.jollyj-feature li {
	color: var(--jj-champagne);
	padding: 0.55rem 0;
	border-bottom: 1px solid var(--jj-line);
	font-size: 0.95rem;
}
.jollyj-feature li:last-child { border-bottom: 0; }

/* ---------- Framed image (About) ---------- */
.jollyj-framed img {
	border: 1px solid var(--jj-line);
	box-shadow: 0 30px 70px -40px rgba(0,0,0,0.9);
}

/* ---------- FAQ accordion ---------- */
.jollyj-faq {
	border-bottom: 1px solid var(--jj-line);
	padding: 0.4rem 0;
}
.jollyj-faq summary {
	cursor: pointer;
	list-style: none;
	padding: 1rem 2.2rem 1rem 0.2rem;
	position: relative;
	font-family: "Cormorant Garamond", Georgia, serif;
	font-size: 1.4rem;
	color: var(--wp--preset--color--contrast);
	transition: color .3s ease;
}
.jollyj-faq summary:hover { color: var(--jj-gold); }
.jollyj-faq summary::-webkit-details-marker { display: none; }
.jollyj-faq summary::after {
	content: "+";
	position: absolute;
	right: 0.4rem;
	top: 50%;
	transform: translateY(-50%);
	color: var(--jj-gold);
	font-size: 1.5rem;
	line-height: 1;
	transition: transform .3s ease;
}
.jollyj-faq[open] summary::after { content: "\2212"; }
.jollyj-faq p { color: var(--jj-champagne); padding: 0 0.2rem 1rem; margin: 0; }

/* ---------- Small screens ---------- */
@media (max-width: 781px) {
	.jollyj-hero { min-height: 78vh; }
	.jollyj-fab { width: 54px; height: 54px; right: 16px; bottom: 16px; }
	.jollyj-card { margin-bottom: 1rem; }
	.jollyj-contact-cols { flex-wrap: wrap; }
	.jollyj-contact-cols .wp-block-column { flex-basis: 100% !important; }
	.jollyj-contact-aside { margin-bottom: 2rem; }
}

/* ---------- Contact page ---------- */
.jollyj-lead {
	max-width: 720px; margin: 0 auto 1.6rem;
	color: var(--jj-champagne); font-size: 1.15rem; line-height: 1.7;
}
.jollyj-contact-h {
	font-family: "Cormorant Garamond", Georgia, serif;
	font-size: 1.9rem; color: var(--wp--preset--color--contrast); margin: 0 0 1rem;
}
.jollyj-contact-eyebrow {
	text-transform: uppercase; letter-spacing: .18em; font-size: .72rem;
	color: var(--jj-gold); margin: 1.5rem 0 .15rem; font-weight: 600;
}
.jollyj-contact-val { color: var(--jj-warm, #f5f1e8); font-size: 1.05rem; margin: 0; line-height: 1.5; }
.jollyj-contact-val a { color: var(--jj-champagne); text-decoration: none; }
.jollyj-contact-val a:hover { color: var(--jj-gold); }
.jollyj-contact-note {
	margin-top: 2.2rem; padding-top: 1.3rem; border-top: 1px solid var(--jj-line);
	color: var(--jj-muted, #9a9aa4); font-size: .95rem;
}
.jollyj-contact-note a { color: var(--jj-gold); }
.jollyj-formcard {
	background: var(--jj-surface); border: 1px solid var(--jj-line);
	padding: clamp(1.4rem, 3vw, 2.4rem); border-radius: 2px;
}

/* ---------- Forminator dark theme ---------- */
.forminator-ui.forminator-custom-form { color: var(--jj-warm, #f5f1e8) !important; }
.forminator-ui.forminator-custom-form .forminator-label,
.forminator-ui.forminator-custom-form label {
	color: var(--jj-champagne) !important;
	font-family: Inter, sans-serif !important;
	letter-spacing: .08em; font-size: .74rem !important;
	font-weight: 600 !important; text-transform: uppercase;
}
.forminator-ui.forminator-custom-form .forminator-label .forminator-required,
.forminator-ui.forminator-custom-form span.forminator-required { color: var(--jj-gold) !important; }
.forminator-ui.forminator-custom-form .forminator-input,
.forminator-ui.forminator-custom-form .forminator-textarea,
.forminator-ui.forminator-custom-form select,
.forminator-ui.forminator-custom-form .forminator-select .select2-selection,
.forminator-ui.forminator-custom-form .forminator-select2 .select2-selection {
	background: #0f0f13 !important;
	border: 1px solid var(--jj-line) !important;
	color: var(--jj-warm, #f5f1e8) !important;
	border-radius: 0 !important;
	min-height: 48px !important;
}
.forminator-ui.forminator-custom-form .forminator-input:focus,
.forminator-ui.forminator-custom-form .forminator-textarea:focus,
.forminator-ui.forminator-custom-form select:focus {
	border-color: var(--jj-gold) !important;
	box-shadow: 0 0 0 1px var(--jj-gold) !important; outline: none !important;
}
.forminator-ui.forminator-custom-form .forminator-input::placeholder,
.forminator-ui.forminator-custom-form .forminator-textarea::placeholder { color: #6f6f78 !important; }
.forminator-ui.forminator-custom-form .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--jj-warm,#f5f1e8) !important; line-height: 46px !important; }
.forminator-ui.forminator-custom-form .select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px !important; }
.forminator-ui.forminator-custom-form .forminator-description { color: var(--jj-muted,#9a9aa4) !important; font-size: .8rem !important; }
/* submit + upload buttons */
.forminator-ui.forminator-custom-form button.forminator-button,
.forminator-ui.forminator-custom-form .forminator-button-upload {
	background: var(--jj-gold) !important; color: var(--jj-base) !important;
	border: 0 !important; border-radius: 0 !important;
	text-transform: uppercase; letter-spacing: .14em; font-weight: 600 !important;
	padding: .95em 2.4em !important;
}
.forminator-ui.forminator-custom-form button.forminator-button:hover,
.forminator-ui.forminator-custom-form .forminator-button-upload:hover { background: var(--jj-champagne) !important; }
.forminator-ui.forminator-custom-form .forminator-button-upload {
	background: transparent !important; color: var(--jj-champagne) !important;
	border: 1px solid var(--jj-gold) !important;
}
/* file upload drop area */
.forminator-ui.forminator-custom-form .forminator-field-upload,
.forminator-ui.forminator-custom-form .forminator-file-upload {
	background: #0f0f13 !important; border: 1px dashed var(--jj-line) !important;
}
/* checkbox / radio accents */
.forminator-ui.forminator-custom-form input[type=checkbox],
.forminator-ui.forminator-custom-form input[type=radio] { accent-color: var(--jj-gold); }
.forminator-ui.forminator-custom-form .forminator-checkbox-label,
.forminator-ui.forminator-custom-form .forminator-radio-label {
	color: var(--jj-warm,#f5f1e8) !important; text-transform: none !important;
	letter-spacing: normal !important; font-size: .92rem !important; font-weight: 400 !important;
}
.forminator-ui.forminator-custom-form .forminator-checkbox-box { border-color: var(--jj-line) !important; }
/* messages */
.forminator-ui.forminator-custom-form .forminator-label--error,
.forminator-ui.forminator-custom-form .forminator-error-message { color: #e0857a !important; }
.forminator-ui .forminator-response-message.forminator-success { background: var(--jj-surface) !important; border-color: var(--jj-gold) !important; color: var(--jj-warm,#f5f1e8) !important; }

/* ============================================================
   AMELIA BOOKING — full dark skin matching brand
   ============================================================ */
#amelia-container,
.amelia-app-booking #amelia-container,
.am-fs__wrapper {
	--am-c-primary: #c9a86a !important;
	--am-c-main-bgr: #16161b !important;
	--am-c-main-heading-text: #f5f1e8 !important;
	--am-c-main-text: #d8c4a0 !important;
	--am-c-sb-bgr: #0f0f13 !important;
	--am-c-sb-text: #f5f1e8 !important;
	--am-c-inp-bgr: #0f0f13 !important;
	--am-c-inp-border: #2a2a33 !important;
	--am-c-inp-text: #f5f1e8 !important;
	--am-c-inp-placeholder: #6f6f78 !important;
	--am-c-drop-bgr: #16161b !important;
	--am-c-drop-text: #f5f1e8 !important;
	--am-c-btn-prim: #c9a86a !important;
	--am-c-btn-prim-text: #0c0c0e !important;
	--am-c-btn-sec: #2a2a33 !important;
	--am-c-btn-sec-text: #f5f1e8 !important;
	--am-font-family: 'Inter', system-ui, sans-serif !important;
}
/* Primary buttons carry their own inline token set */
#amelia-container .am-button--primary {
	--am-c-btn-first: #c9a86a !important;
	--am-c-btn-first-op80: rgba(201,168,106,0.85) !important;
	--am-c-btn-first-op30: rgba(201,168,106,0.3) !important;
	--am-c-btn-first-op20: rgba(201,168,106,0.14) !important;
	--am-c-btn-second: #0c0c0e !important;
}
/* Element-Plus dropdowns used inside the wizard */
#amelia-container .el-select__wrapper {
	background: #0f0f13 !important;
	box-shadow: 0 0 0 1px #2a2a33 inset !important;
}
#amelia-container .el-select__placeholder,
#amelia-container .el-select__selected-item,
#amelia-container .el-input__inner { color: #f5f1e8 !important; }
.el-select-dropdown,
.el-popper.is-light {
	background: #16161b !important;
	border-color: #2a2a33 !important;
}
.el-select-dropdown__item { color: #d8c4a0 !important; }
.el-select-dropdown__item.is-hovering,
.el-select-dropdown__item.is-selected { background: rgba(201,168,106,0.14) !important; color: #f5f1e8 !important; }
/* Booking widget frame to blend into dark page */
.jollyj-booking-wrap {
	background: var(--jj-surface);
	border: 1px solid var(--jj-line);
	padding: clamp(14px, 3vw, 32px);
	border-radius: 4px;
}
.jollyj-booking-wrap .am-fs__wrapper { background: transparent !important; }
/* How-it-works steps */
.jollyj-steps .wp-block-column {
	background: var(--jj-surface);
	border: 1px solid var(--jj-line);
	border-top: 2px solid var(--jj-gold);
	padding: 1.4rem 1.5rem;
}
