/* Values Vault block theme: site chrome (header, footer, page titles, blog, product layout). */
:root {
	--pink: #e82063;
	--yellow: #e0b021;
	--vv-deep-black: #1a1a1a;
	--vv-magenta: #e82063;
	--vv-sunset-orange: #e0b021;
	--vv-cream: #f9f7f2;
	--vv-text-gray: #4a4a4a;
	--vv-font-heading: Poppins, sans-serif;
	--vv-font-body: Poppins, sans-serif;
	--vv-font-handwritten: "Dancing Script", cursive;
	--vv-radius: 12px;
	--vv-shadow-soft: 0 10px 30px rgba(0, 0, 0, .05);
	--vv-shadow-strong: 0 15px 45px rgba(233, 30, 99, .15);
	--vv-announce-h: 40px;
}

html, body { overflow-x: clip; }
body { -webkit-font-smoothing: antialiased; }
.wp-site-blocks { padding-top: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }

/* ---------- Header ---------- */
.vv-site-header {
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) - var(--vv-announce-h));
	z-index: 100;
	background: #fff;
	transition: box-shadow .3s;
}
.vv-site-header.shadow { box-shadow: 0 5px 25px rgba(0, 0, 0, .12); }
.vv-announce {
	min-height: var(--vv-announce-h);
	gap: 10px;
	background: #e82063;
	color: #ffc4d5;
	font-size: 15px;
	padding: 8px 20px;
}
.vv-announce p { margin: 0; }
.vv-announce__icon { width: 23px; height: 23px; color: #fff; }
.vv-header { padding: 11px 20px 9px; gap: 20px; }
.vv-header > * { margin: 0; }
.vv-brand { display: flex; align-items: center; gap: 8px; text-decoration: none; }
.vv-site-header .vv-brand__wordmark { height: 40px !important; width: auto !important; max-width: none; display: block; }
.vv-site-header .vv-header-logo-wrap { flex: 0 0 23px; }
.vv-header__right { gap: 20px; }

/* Animated keyhole logo (ported from the Oxygen header). */
@property --a { syntax: '<angle>'; inherits: false; initial-value: 45deg; }
.vv-header-logo-wrap { width: 23px; position: relative; display: flex; align-items: flex-start; }
.vv-header-logo-wrap::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; padding-bottom: 100%; background: #000; border-radius: 50%; z-index: 1; }
.vv-header-logo-wrap::after {
	content: ''; position: absolute; top: 0; left: 0; width: 100%;
	height: calc(100% / (133.47 / 68.59)); border-radius: 50%;
	background: conic-gradient(from var(--a), #0066ff, #862cfc, #d500ff, #ff0000, #ff8800, #e6ff00, #9dff00, #0066ff);
	filter: blur(4px); transform: scale(.7); animation: vv-rotate-gradient 10s linear infinite;
	opacity: .7; transition: .2s opacity, transform; z-index: 2;
}
.header-logo:hover .vv-header-logo-wrap::after { opacity: 1; transform: scale(.85); }
.vv-logo-svg { width: 100%; height: auto; position: relative; z-index: 3; display: block; }
.vv-logo-arch { fill: #fff; opacity: .9; }
.vv-logo-path { mix-blend-mode: luminosity; }
@keyframes vv-rotate-gradient { from { --a: 0deg; } to { --a: 360deg; } }

/* Navigation */
.vv-nav { gap: 28px; }
.vv-nav .wp-block-navigation-item__content { color: var(--wp--preset--color--ink); }
.vv-nav .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--magenta); }
.vv-nav .wp-block-navigation__submenu-container {
	border: 1px solid var(--wp--preset--color--line) !important;
	border-radius: 12px; padding: 6px; box-shadow: 0 16px 36px -12px rgba(0, 0, 0, .18);
	min-width: 190px !important;
}
.vv-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 8px 12px; border-radius: 8px; }
.vv-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--cream); }
.vv-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 24px; }
.vv-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.15rem; }

/* ---------- Page title band (was Oxygen template 151) ---------- */
.vv-page-title {
	padding-top: 25px;
	padding-bottom: 29px;
	border-bottom: 1px solid #a8a8a8;
}
.vv-page-title > * { margin: 0; }
h1, .h1, .vv-page-title h1, .wp-block-post-title:is(h1) {
	background: linear-gradient(45deg, #e82063 0%, #e0b021 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	text-wrap: balance;
}

/* Full-width blocks: use the block theme's root-padding math instead of the old --vw plugin rules. */
.has-global-padding > .alignfull {
	width: auto !important;
	max-width: none !important;
	margin-left: calc(var(--wp--style--root--padding-left) * -1) !important;
	margin-right: calc(var(--wp--style--root--padding-right) * -1) !important;
}
.has-global-padding > .alignfull.has-global-padding {
	padding-left: var(--wp--style--root--padding-left) !important;
	padding-right: var(--wp--style--root--padding-right) !important;
}
.has-global-padding > .alignfull:not(.has-global-padding):not(.wp-block-cover) { padding-left: 0 !important; padding-right: 0 !important; }

.vv-main { padding-bottom: 64px; }
.vv-main--home { padding-bottom: 0; }
.vv-content > :first-child { margin-top: 0; }

/* ---------- Footer (was Oxygen template 149) ---------- */
.vv-footer { background: #f9f9f9; padding: 41px 20px 52px; margin-top: 0; }
.vv-footer__cols { gap: 20px; padding: 4em 0; border-top: 1px solid #eee; border-bottom: 1px solid #eee; }
.vv-footer__brand { max-width: 260px; gap: 8px; }
.vv-footer__brand p { margin: 0; }
.vv-footer__logo { margin: 0 0 8px; }
.footer-heading { margin: 0 0 .5em; font-size: 18px; }
.vv-footer__col { gap: 0; min-width: 160px; }
.vv-footer__links { list-style: none; margin: 0; padding: 0; }
.vv-footer__links li { margin: 0 0 8px; }
.vv-footer__links a { color: var(--wp--preset--color--magenta); }
.vv-footer__legal { margin: 0; padding: 20px; font-size: 13px; color: var(--wp--preset--color--muted); }

/* ---------- Blog ---------- */
.vv-post-grid { padding-top: 48px; }
.vv-card { gap: 0; height: 100%; background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 18px; overflow: hidden; }
.vv-card__image { margin: 0; }
.vv-card__image img { display: block; }
.vv-card__body { padding: 20px 22px 24px; gap: 8px; }
.vv-card__date { font-size: .82rem; color: var(--wp--preset--color--muted); }
.vv-card__title { font-size: 1.2rem; margin: 0; }
.vv-card__title a { color: var(--wp--preset--color--ink); }
.vv-card__excerpt { font-size: .95rem; margin: 0; }
.vv-post__head { padding-top: 48px; }
.vv-post__cats { font-size: .78rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.vv-post__meta { gap: 16px; font-size: .9rem; color: var(--wp--preset--color--muted); }
.vv-post__image img { border-radius: 20px; }
.vv-post__content { font-size: 17px; line-height: 1.75; }
.vv-post__nav { padding-top: 32px; border-top: 1px solid var(--wp--preset--color--line); margin-top: 48px; }

/* ---------- Product ---------- */
.vv-product { padding-top: 32px; }
.vv-product__top { gap: clamp(28px, 4vw, 56px); align-items: flex-start; }
.vv-product__media { min-width: 0; }
.vv-product__media .woocommerce-product-gallery { width: 100% !important; float: none !important; margin: 0 !important; }
.vv-product__media .woocommerce-product-gallery__image img { border-radius: 14px; }
.vv-product__more .wp-block-post-title { font-size: 1rem !important; line-height: 1.35; margin: 12px 0 4px; }
.vv-product__more .wp-block-post-title a { color: var(--wp--preset--color--ink); }
.vv-product__more .wc-block-components-product-image img { border-radius: 14px; }
.vvp-summary { min-width: 0; }
.vvp-summary .vvp-title { margin-bottom: 8px; line-height: 1.15; }
.vvp-summary .wc-block-components-product-price,
.vvp-summary .wp-block-woocommerce-product-price { font-size: 1.9rem; font-weight: 600; color: var(--wp--preset--color--ink); }
.vvp-summary .wp-block-woocommerce-product-price { margin: 4px 0 14px; }
.vvp-short-description { font-size: 1rem; line-height: 1.6; }
.vvp-summary .stock { display: none; }
.vvp-summary form.cart { display: flex; gap: 10px; align-items: stretch; margin: 18px 0 0; max-width: 460px; }
.vvp-summary form.cart .quantity { margin: 0; }
.vvp-summary form.cart .quantity input.qty { height: 56px; width: 72px; border: 1px solid var(--wp--preset--color--line); border-radius: 12px; font-size: 1rem; text-align: center; padding: 0; }
.vvp-summary .single_add_to_cart_button {
	flex: 1 1 auto; height: 56px; border-radius: 12px !important; border: 0 !important;
	background: var(--wp--preset--color--magenta) !important; color: #fff !important;
	font-size: 1.05rem !important; font-weight: 600 !important; text-transform: none !important;
	transition: background .2s, transform .2s;
}
.vvp-summary .single_add_to_cart_button:hover { background: var(--wp--preset--color--magenta-dark) !important; transform: translateY(-1px); }
.vvp-trust { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: .85rem; color: var(--wp--preset--color--muted); }
.vvp-trust li { display: flex; align-items: center; gap: 6px; margin: 0; }
.vvp-trust svg { width: 18px; height: 18px; color: var(--wp--preset--color--magenta); }
.vv-product__description { margin-top: 24px; }
.vv-product__more { margin-top: clamp(56px, 8vw, 96px); padding-top: 40px; border-top: 1px solid var(--wp--preset--color--line); }
@media (max-width: 781px) {
	.vv-product__top { flex-wrap: wrap !important; }
	.vv-product__top > .wp-block-column { flex-basis: 100% !important; }
}

@media (prefers-reduced-motion: reduce) {
	.vv-header-logo-wrap::after { animation: none; }
}

/* ---------- Cart & checkout (theme templates page-cart / page-checkout) ---------- */
.vv-cart .vv-content,
.vv-checkout .vv-content { padding-top: 32px; }

/* Homepage hero callouts ("Free shipping" etc.): wrap as whole phrases on small screens. */
.callouts { flex-wrap: wrap !important; gap: 8px 18px !important; }
.callouts > * { white-space: nowrap; }

/* Product gallery: let the main photo fill its column.
   Leave .woocommerce-product-gallery__wrapper alone: FlexSlider sizes it to (slides × 100%) and
   slides it sideways, so forcing it to 100% wraps every non-primary image out of view. */
.vv-product__media .wp-block-woocommerce-product-image-gallery,
.vv-product__media .woocommerce-product-gallery,
.vv-product__media .flex-viewport { width: 100% !important; max-width: none !important; }
.vv-product__media .woocommerce-product-gallery__image img { width: 100% !important; height: auto; }
