/*
Theme Name: Vine & Voyage
Theme URI: https://www.itwebsmith.com
Author: IT WebSmith Inc.
Author URI: https://www.itwebsmith.com/
Description: A Sip Stay Explore block theme where fine taste meets faraway places. Designed for Vine & Voyage, utilizing custom Gutenberg block layouts and a sophisticated color palette.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.4
Requires PHP: 7.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: vinenvoyage
Tags: full-site-editing, block-themes, translation-ready, custom-colors, travel, luxury

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool.
*/

/* --- Editorial & Luxury Theme Styles --- */

/* Luxury Frame for Group Blocks - elegant top/bottom gold borders instead of a box */
.wp-block-group.is-style-luxury-frame {
	border-top: 1px solid var(--wp--preset--color--gold);
	border-bottom: 1px solid var(--wp--preset--color--gold);
	border-left: none;
	border-right: none;
	padding: var(--wp--preset--spacing--300) 0;
	margin-top: var(--wp--preset--spacing--300);
	margin-bottom: var(--wp--preset--spacing--300);
	background-color: transparent;
	transition: all 0.4s ease;
}

/* Editorial Card Style - floating cards with rounded corners and soft shadows instead of boxes */
.wp-block-column.is-style-editorial-card,
.wp-block-group.is-style-editorial-card {
	border: none;
	border-radius: 14px;
	padding: 2rem !important; /* Generous, consistent padding for all white cards */
	background-color: var(--wp--preset--color--white) !important;
	box-shadow: 0 10px 30px rgba(41, 40, 36, 0.05);
	transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
	display: flex;
	flex-direction: column;
	height: 100%;
	box-sizing: border-box;
}
.wp-block-column > .wp-block-group.is-style-editorial-card {
	height: 100%;
}
.wp-block-group.is-style-editorial-card > *:last-child {
	margin-top: auto !important;
}
.wp-block-column.is-style-editorial-card:hover,
.wp-block-group.is-style-editorial-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 45px rgba(41, 40, 36, 0.08);
}

/* Serif elegant quote */
.serif-quote {
	font-family: var(--wp--preset--font-family--serif-heading);
	font-size: var(--wp--preset--font-size--extra-large);
	font-style: italic;
	line-height: 1.5;
	color: var(--wp--preset--color--burgundy);
	text-align: center;
	padding: var(--wp--preset--spacing--200) 0;
	position: relative;
}
.serif-quote::before {
	content: "“";
	font-size: 5rem;
	position: absolute;
	top: -1.5rem;
	left: 50%;
	transform: translateX(-50%);
	color: var(--wp--preset--color--gold);
	opacity: 0.15;
	font-family: var(--wp--preset--font-family--serif-heading);
}

/* Editorial Uppercase Spacing */
.luxury-tagline {
	letter-spacing: 0.25em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--wp--preset--color--gold);
	font-size: var(--wp--preset--font-size--small);
}

/* Subtle transitions for buttons */
.wp-block-button__link {
	transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease, transform 0.2s ease !important;
}
.wp-block-button__link:hover {
	transform: translateY(-1px);
}

/* Responsive and high-quality site logo sizing */
.wp-block-site-logo,
.site-branding {
	display: flex;
	align-items: center;
	margin: 0;
	line-height: 1;
}
.wp-block-site-logo a,
.site-branding a {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	line-height: 1;
}

/* Header Logo Display (Larger, prominent presentation) */
.site-branding .wp-block-site-logo img,
.site-branding .custom-logo-link img,
.site-branding img.custom-logo,
header .wp-block-site-logo img {
	height: 112px !important;
	max-height: 120px !important;
	width: auto !important;
	max-width: 175px !important;
	object-fit: contain;
	display: block;
	image-rendering: -webkit-optimize-contrast;
	filter: drop-shadow(0 3px 10px rgba(41, 40, 36, 0.08));
	transition: transform 0.35s cubic-bezier(0.165, 0.84, 0.44, 1), filter 0.35s ease;
}
.site-branding a:hover img,
header .wp-block-site-logo a:hover img {
	transform: scale(1.04);
	filter: drop-shadow(0 5px 16px rgba(114, 47, 55, 0.18));
}
.site-branding a.custom-logo-link:empty {
	display: block;
	width: 120px;
	height: 112px;
	background: url('assets/vine-voyage-logo.png') center / contain no-repeat;
}

/* Footer Logo Display & Brand Wrapper */
.footer-brand-wrap {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	gap: 1.75rem !important;
	margin-top: 0.75rem !important;
}

.footer-brand-wrap .footer-brand-logo,
.footer-brand-wrap footer .wp-block-site-logo,
.footer-brand-logo,
footer .wp-block-site-logo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0 !important;
	flex-shrink: 0;
	background-color: var(--wp--preset--color--cream);
	padding: 14px 22px;
	border-radius: 14px;
	border: 1px solid rgba(180, 154, 103, 0.45);
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.28);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.footer-brand-logo:hover,
footer .wp-block-site-logo:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 36px rgba(0, 0, 0, 0.38);
}
.footer-brand-logo img,
footer .wp-block-site-logo img,
.footer-brand-logo .custom-logo,
footer .custom-logo {
	height: 145px !important;
	max-height: 155px !important;
	width: auto !important;
	max-width: 195px !important;
	object-fit: contain !important;
	display: block !important;
	image-rendering: -webkit-optimize-contrast;
}
.footer-brand-wrap p {
	flex: 1 !important;
	margin: 0 !important;
	align-self: center;
}

@media (max-width: 760px) {
	.footer-brand-wrap {
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: 1.25rem !important;
	}
}

/* Custom Scrollbar Styles - Gold thumb over Cream track */
html {
	scrollbar-color: var(--wp--preset--color--gold) var(--wp--preset--color--cream);
	scrollbar-width: auto;
}

::-webkit-scrollbar {
	width: 12px;
	height: 12px;
}
::-webkit-scrollbar-track {
	background: var(--wp--preset--color--cream);
}
::-webkit-scrollbar-thumb {
	background-color: var(--wp--preset--color--gold);
	border-radius: 6px;
	border: 3px solid var(--wp--preset--color--cream);
}
::-webkit-scrollbar-thumb:hover {
	background-color: var(--wp--preset--color--burgundy);
}

/* --- Full Width Bleed Rules for Front Page & Sections --- */
.wp-site-blocks > main.alignfull,
main.alignfull {
	width: 100% !important;
	max-width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

main.alignfull > .alignfull,
main.alignfull > .wp-block-template-part,
main.alignfull > section.alignfull,
main.alignfull > div.alignfull {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* --- Luxury Background Hero Slider --- */

.luxury-slider-hero {
	width: 100% !important;
	max-width: 100% !important;
	position: relative !important;
	overflow: hidden !important;
	min-height: 85vh;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--wp--preset--color--burgundy) !important;
	margin-top: 0 !important;
	margin-block-start: 0 !important;
}

/* Absolute position for sliding cover blocks */
.luxury-slider-hero .luxury-slide {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	opacity: 0;
	z-index: 1;
	pointer-events: none;
	animation: luxury-slider-fade 24s infinite ease-in-out;
}

/* Image zoom effect inside slides */
.luxury-slider-hero .luxury-slide img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	transform: scale(1.05);
	animation: luxury-slider-zoom 24s infinite ease-in-out;
}

/* Stagger keyframe delays for 4 background slides */
.luxury-slider-hero .luxury-slide:nth-of-type(1),
.luxury-slider-hero .luxury-slide:nth-of-type(1) img {
	animation-delay: 0s;
}
.luxury-slider-hero .luxury-slide:nth-of-type(2),
.luxury-slider-hero .luxury-slide:nth-of-type(2) img {
	animation-delay: 6s;
}
.luxury-slider-hero .luxury-slide:nth-of-type(3),
.luxury-slider-hero .luxury-slide:nth-of-type(3) img {
	animation-delay: 12s;
}
.luxury-slider-hero .luxury-slide:nth-of-type(4),
.luxury-slider-hero .luxury-slide:nth-of-type(4) img {
	animation-delay: 18s;
}

/* Static text content overlaid on top */
.luxury-slider-hero .luxury-slider-content {
	position: relative !important;
	z-index: 5 !important;
	pointer-events: auto;
	width: 100%;
}

/* Background Crossfade Animation Keyframes */
@keyframes luxury-slider-fade {
	0% { opacity: 0; }
	5% { opacity: 1; }   /* Fade in (1.2s) */
	25% { opacity: 1; }  /* Stay fully visible for 4.8s */
	30% { opacity: 0; }  /* Fade out (1.2s) */
	100% { opacity: 0; }
}

/* Background Pan/Zoom Animation Keyframes */
@keyframes luxury-slider-zoom {
	0% { transform: scale(1.03) translate(0, 0); }
	25% { transform: scale(1.08) translate(-1%, -0.5%); } /* Subtle motion pan */
	30% { transform: scale(1.03); }
	100% { transform: scale(1.03); }
}

/* Header Concierge Contact Links */
.header-contact-links {
	display: flex;
	align-items: center;
	gap: 1.25rem;
}
.header-contact-links a {
	text-decoration: none;
	transition: color 0.3s ease, transform 0.2s ease;
	display: flex;
	align-items: center;
}
.header-contact-links a:hover {
	color: var(--wp--preset--color--burgundy) !important;
	transform: translateY(-1px);
}
.header-contact-links svg {
	stroke: currentColor;
	transition: stroke 0.3s ease;
}

/* Header Wide Layout Constraints */
.header-wide-container {
	max-width: 1400px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	width: 100% !important;
}

/* Premium Navigation Menu Styles (Header Only) */
header .wp-block-navigation .wp-block-navigation-item > a {
	position: relative;
	padding: 0.4rem 0;
	transition: color 0.3s ease !important;
	font-size: 1.05rem !important; /* Larger font size */
	letter-spacing: 0.08em !important;
}
header .wp-block-navigation .wp-block-navigation-item > a::after {
	content: "";
	position: absolute;
	bottom: -2px;
	left: 0;
	width: 100%;
	height: 1px;
	background-color: var(--wp--preset--color--gold);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.35s cubic-bezier(0.165, 0.84, 0.44, 1);
}
header .wp-block-navigation .wp-block-navigation-item > a:hover {
	color: var(--wp--preset--color--burgundy) !important;
}
header .wp-block-navigation .wp-block-navigation-item > a:hover::after {
	transform: scaleX(1);
	transform-origin: left;
}

/* Active Navigation Item Highlight */
header .wp-block-navigation .wp-block-navigation-item.current-menu-item > a,
header .wp-block-navigation .wp-block-navigation-item.current-menu-ancestor > a,
header .wp-block-navigation .wp-block-navigation-item.current_page_item > a {
	color: var(--wp--preset--color--burgundy) !important;
}
header .wp-block-navigation .wp-block-navigation-item.current-menu-item > a::after,
header .wp-block-navigation .wp-block-navigation-item.current-menu-ancestor > a::after,
header .wp-block-navigation .wp-block-navigation-item.current_page_item > a::after {
	transform: scaleX(1) !important;
	transform-origin: left !important;
}

/* Luxury Dropdown Submenus */
header .wp-block-navigation .wp-block-navigation__submenu-container {
	background-color: var(--wp--preset--color--white) !important;
	border: none !important;
	border-radius: 8px !important;
	box-shadow: 0 12px 36px rgba(41, 40, 36, 0.08) !important;
	padding: 0.5rem 0 !important;
	min-width: 200px !important;
	margin-top: 0.5rem !important;
	overflow: hidden;
}
header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a {
	color: var(--wp--preset--color--charcoal) !important;
	font-size: 0.8rem !important;
	letter-spacing: 0.08em !important;
	padding: 0.6rem 1.25rem !important;
	transition: background-color 0.25s ease, color 0.25s ease !important;
	display: block;
}
header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a:hover {
	background-color: var(--wp--preset--color--cream) !important;
	color: var(--wp--preset--color--burgundy) !important;
}
header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a::after {
	display: none !important; /* disable underline inside submenus */
}

/* Footer Navigation Styles */
footer .wp-block-navigation .wp-block-navigation-item a {
	padding: 0.25rem 0 !important;
	color: var(--wp--preset--color--cream) !important;
	transition: color 0.2s ease !important;
	font-size: 0.9rem !important;
	letter-spacing: 0.05em !important;
}
footer .wp-block-navigation .wp-block-navigation-item a:hover {
	color: var(--wp--preset--color--gold) !important;
}
footer .wp-block-navigation .wp-block-navigation-item a::after {
	display: none !important;
}

/* Mobile responsive slide-out drawer menu overlay */
.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open {
	left: auto !important;
	right: 0 !important;
	width: 320px !important;
	max-width: 80vw !important;
	height: 100vh !important;
	background-color: var(--wp--preset--color--cream) !important;
	box-shadow: -10px 0 40px rgba(41, 40, 36, 0.12) !important;
	animation: luxury-drawer-slide-in 0.4s cubic-bezier(0.165, 0.84, 0.44, 1) forwards;
	padding: 5rem 2rem 2rem 2rem !important;
}

/* Animation keyframes for mobile menu drawer */
@keyframes luxury-drawer-slide-in {
	0% {
		transform: translateX(100%);
	}
	100% {
		transform: translateX(0);
	}
}

/* Close button positioning in mobile drawer */
.wp-block-navigation .wp-block-navigation__responsive-container-close {
	position: absolute !important;
	top: 20px !important;
	right: 20px !important;
	color: var(--wp--preset--color--charcoal) !important;
}

/* Luxury FAQs Accordion Styles using native Details block as white card boxes */
details.wp-block-details {
	border: 1px solid rgba(181, 166, 148, 0.25) !important;
	border-radius: 12px !important;
	padding: 1.5rem 2rem !important; /* Generous padding inside each white FAQ box */
	margin-bottom: 1rem !important;
	transition: all 0.3s ease;
	background-color: var(--wp--preset--color--white) !important;
	box-shadow: 0 4px 18px rgba(41, 40, 36, 0.04) !important;
	box-sizing: border-box !important;
}
details.wp-block-details:hover {
	box-shadow: 0 8px 24px rgba(41, 40, 36, 0.07) !important;
	border-color: var(--wp--preset--color--gold) !important;
}
details.wp-block-details summary {
	font-family: var(--wp--preset--font-family--serif-heading) !important;
	font-size: 1.2rem !important;
	font-weight: 400 !important;
	color: var(--wp--preset--color--burgundy) !important;
	cursor: pointer;
	outline: none;
	padding: 0 !important;
	list-style: none !important;
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
}
/* Webkit hide summary arrow marker */
details.wp-block-details summary::-webkit-details-marker {
	display: none !important;
}
/* Custom luxury plus indicator */
details.wp-block-details summary::after {
	content: "+" !important;
	font-family: var(--wp--preset--font-family--serif-heading) !important;
	font-size: 1.5rem !important;
	color: var(--wp--preset--color--gold) !important;
	font-weight: 300 !important;
	transition: transform 0.3s ease !important;
	margin-left: 1rem;
}
details.wp-block-details[open] summary::after {
	content: "\2212" !important; /* minus symbol */
	transform: rotate(180deg) !important;
}
details.wp-block-details p {
	font-size: 0.95rem !important;
	line-height: 1.75 !important;
	color: var(--wp--preset--color--charcoal) !important;
	padding-top: 1rem !important;
	margin-top: 1rem !important;
	border-top: 1px solid rgba(181, 166, 148, 0.2) !important;
	margin-bottom: 0 !important;
}

/* --- Wide Template Layout & Image Enhancements --- */

/* Alignwide maximum width for expansive luxury feel */
.wp-block-group.alignwide,
.wp-block-columns.alignwide,
.wp-block-query.alignwide {
	max-width: 1400px !important;
	width: 100% !important;
}

/* Luxury Editorial Image Hover and Transitions */
.wp-block-image img {
	transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.4s ease;
}

.is-style-editorial-card:hover .wp-block-image img,
.curator-portrait:hover img {
	transform: scale(1.02);
}

.estate-thumbnail img,
.about-feature-hero img,
.faqs-concierge-image img {
	transition: transform 0.45s cubic-bezier(0.165, 0.84, 0.44, 1), filter 0.3s ease;
}

.estate-thumbnail:hover img {
	transform: scale(1.02);
}

/* Responsive adjustments for white boxes and cards */
@media (max-width: 781px) {
	.wp-block-column.is-style-editorial-card,
	.wp-block-group.is-style-editorial-card {
		padding: 1.5rem !important;
	}
	details.wp-block-details {
		padding: 1.25rem 1.25rem !important;
	}
}

/* Luxury Form Controls & Focus States */
form input[type="text"],
form input[type="email"],
form input[type="tel"],
form select,
form textarea {
	transition: border-color 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease;
}
form input[type="text"]:focus,
form input[type="email"]:focus,
form input[type="tel"]:focus,
form select:focus,
form textarea:focus {
	border-color: var(--wp--preset--color--gold) !important;
	background-color: #ffffff !important;
	box-shadow: 0 0 0 3px rgba(180, 154, 103, 0.2) !important;
	outline: none !important;
}

/* Post Feed Editorial Card Hover Polish */
.wp-block-query .is-style-editorial-card {
	transition: transform 0.35s cubic-bezier(0.165, 0.84, 0.44, 1), box-shadow 0.35s ease;
}
.wp-block-query .is-style-editorial-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 36px rgba(41, 40, 36, 0.09) !important;
}

/* Read Journey Button Styling - Generous Internal Padding & Card Spacing */
.wp-block-read-more,
a.wp-block-read-more,
.wp-block-read-more a,
.wp-block-read-more__link,
.wp-block-post-excerpt__more-link,
a.more-link,
.is-style-editorial-card .wp-block-read-more,
.is-style-editorial-card a.wp-block-read-more,
.is-style-editorial-card .more-link,
.wp-block-query .wp-block-read-more,
.wp-block-query a.wp-block-read-more {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0.85rem 2.2rem !important; /* Generous internal button padding */
	margin-top: 1.25rem !important; /* Clear spacing from excerpt above */
	margin-bottom: 0.25rem !important;
	background-color: var(--wp--preset--color--burgundy) !important;
	color: var(--wp--preset--color--cream) !important;
	border-radius: 100px !important;
	font-family: inherit !important;
	font-size: 0.8rem !important;
	font-weight: 600 !important;
	line-height: 1.25 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	border: 1px solid transparent !important;
	align-self: flex-start !important;
	box-shadow: 0 4px 14px rgba(114, 47, 55, 0.22) !important;
	cursor: pointer !important;
	box-sizing: border-box !important;
	transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1) !important;
}

.wp-block-read-more:hover,
a.wp-block-read-more:hover,
.wp-block-read-more a:hover,
.wp-block-read-more__link:hover,
.wp-block-post-excerpt__more-link:hover,
a.more-link:hover,
.is-style-editorial-card .wp-block-read-more:hover,
.is-style-editorial-card a.wp-block-read-more:hover {
	background-color: var(--wp--preset--color--gold) !important;
	color: var(--wp--preset--color--charcoal) !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 6px 20px rgba(180, 154, 103, 0.4) !important;
	text-decoration: none !important;
}

.wp-block-read-more:active,
a.wp-block-read-more:active,
.wp-block-post-excerpt__more-link:active,
a.more-link:active {
	transform: translateY(0) !important;
}

/* Ensure Post Excerpt doesn't collide with the button */
.is-style-editorial-card .wp-block-post-excerpt,
.is-style-editorial-card .wp-block-post-excerpt p {
	margin-bottom: 0.75rem !important;
}




