/* ==========================================================================
   Velmara Care — theme styles
   Design tokens live in theme.json (colours, type, spacing). This file adds
   layout details, components and accessibility helpers.
   ========================================================================== */

:root {
	--vc-teal: var(--wp--preset--color--deep-teal, #0F4C5C);
	--vc-teal-dark: var(--wp--preset--color--teal-dark, #0B3A46);
	--vc-gold: var(--wp--preset--color--gold, #C9A96A);
	--vc-gold-ink: var(--wp--preset--color--gold-ink, #7A5C22);
	--vc-ivory: var(--wp--preset--color--ivory, #F7F7F4);
	--vc-charcoal: var(--wp--preset--color--charcoal, #2B2B2B);
	--vc-slate-ink: var(--wp--preset--color--slate-ink, #4E6F84);
	--vc-sand: var(--wp--preset--color--warm-sand, #D7C2A6);
	--vc-sand-light: var(--wp--preset--color--sand-light, #EFE7DB);
	--vc-line: var(--wp--preset--color--line, #E3DDD2);
	--vc-radius-sm: var(--wp--custom--radius--sm, 8px);
	--vc-radius-md: var(--wp--custom--radius--md, 14px);
	--vc-radius-lg: var(--wp--custom--radius--lg, 24px);
	--vc-shadow: var(--wp--custom--shadow--soft, 0 8px 30px rgba(43, 43, 43, .08));
	--vc-focus: var(--vc-teal);
	--vc-header-h: 76px;
	scroll-padding-top: calc(var(--vc-header-h) + 1rem);
}

html { -webkit-text-size-adjust: 100%; }
body { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; overflow-x: clip; }
img, svg, video { max-width: 100%; height: auto; }

/* --------------------------------------------------------------------------
   Accessibility
   -------------------------------------------------------------------------- */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--vc-focus);
	outline-offset: 3px;
	border-radius: 2px;
}
.has-deep-teal-background-color,
.has-teal-dark-background-color,
.vc-footer { --vc-focus: var(--vc-ivory); }

.skip-link.screen-reader-text:focus {
	background: var(--vc-ivory);
	color: var(--vc-teal);
	font-weight: 600;
	padding: .75rem 1.25rem;
	z-index: 100000;
}
.vc-visually-hidden,
.screen-reader-text:not(:focus) {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important;
	width: 1px; word-wrap: normal !important;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
	}
}

/* Links in running text: clear underline, gold on hover */
.entry-content a:not(.wp-element-button),
.vc-page-content a:not(.wp-element-button),
.wp-block-post-content a:not(.wp-element-button) {
	text-decoration-thickness: 1px;
	text-underline-offset: .2em;
}
.vc-page-content a:not(.wp-element-button):hover,
.wp-block-post-content a:not(.wp-element-button):hover {
	text-decoration-color: var(--vc-gold);
	text-decoration-thickness: 2px;
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
.wp-element-button,
.wp-block-button__link { transition: background-color .2s ease, color .2s ease, border-color .2s ease; }

.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--vc-teal);
	border: 1px solid var(--vc-teal);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--vc-teal);
	color: #fff;
}
.vc-btn-gold > .wp-block-button__link { border-color: var(--vc-gold); }
.vc-btn-gold > .wp-block-button__link:hover { background: #D8BE88; border-color: #D8BE88; color: var(--vc-charcoal); }
.vc-btn-light.is-style-outline > .wp-block-button__link { color: var(--vc-ivory); border-color: rgba(247, 247, 244, .75); }
.vc-btn-light.is-style-outline > .wp-block-button__link:hover { background: var(--vc-ivory); color: var(--vc-teal); border-color: var(--vc-ivory); }

/* --------------------------------------------------------------------------
   Shared typography helpers
   -------------------------------------------------------------------------- */
.vc-eyebrow {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--vc-gold-ink);
	margin-bottom: .5rem;
}
.vc-eyebrow--light { color: var(--vc-sand); }

.vc-rule-below { position: relative; padding-bottom: .9rem; }
.vc-rule-below::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 56px;
	height: 2px;
	background: var(--vc-gold);
	transform: translateX(-50%);
}
.vc-rule-below--start::after { left: 0; transform: none; }

.vc-more-link a {
	font-weight: 600;
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: .06em;
	text-transform: uppercase;
	text-underline-offset: .35em;
}
.vc-more-link a::after { content: " \2192"; }

/* --------------------------------------------------------------------------
   Announcement bar + header
   -------------------------------------------------------------------------- */
.vc-announcement__text { margin: 0; letter-spacing: .14em; text-transform: uppercase; font-weight: 500; }

.vc-site-header { position: sticky; top: 0; z-index: 50; }
.admin-bar .vc-site-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .vc-site-header { top: 0; } }
.vc-header {
	border-bottom: 1px solid var(--vc-line);
	box-shadow: 0 1px 0 rgba(255, 255, 255, .6);
	padding-top: .75rem;
	padding-bottom: .75rem;
}
.vc-site-header > .vc-announcement { position: relative; }
.vc-header__bar { gap: 1.25rem; min-height: 52px; }
.vc-header__logo { flex: 0 0 auto; margin: 0; }
.vc-header__logo img { width: clamp(150px, 16vw, 188px); height: auto; display: block; }
.vc-header__logo a { display: block; padding: 5px 0; }
.vc-nav-primary { flex: 1 1 auto; }
.vc-nav-primary .wp-block-navigation__container { gap: clamp(.9rem, 1.6vw, 1.75rem); }
.vc-nav-primary .wp-block-navigation-item__content { text-decoration: none; padding: .35rem 0; position: relative; color: var(--vc-charcoal); }
.vc-nav-primary .wp-block-navigation-item__content:hover,
.vc-nav-primary .current-menu-item > .wp-block-navigation-item__content { color: var(--vc-teal); }
.vc-nav-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px;
	background: var(--vc-gold); transform: scaleX(0); transform-origin: left; transition: transform .2s ease;
}
.vc-nav-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover::after,
.vc-nav-primary .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.vc-nav-primary .wp-block-navigation__submenu-container {
	border: 1px solid var(--vc-line) !important;
	border-radius: var(--vc-radius-sm);
	box-shadow: var(--vc-shadow);
	background: #fff !important;
	padding: .5rem 0;
	min-width: 240px !important;
}
.vc-nav-primary .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .55rem 1.1rem; }

.vc-header__tools { gap: .35rem; flex: 0 0 auto; }
.vc-header__tools .wp-block-search__button,
.vc-header__tools .wc-block-mini-cart__button,
.vc-header__tools .wc-block-customer-account__link {
	min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center;
	color: var(--vc-teal); background: transparent; border: 0; padding: 0;
}
.vc-header__tools .wc-block-mini-cart__badge { background: var(--vc-teal); color: #fff; border-color: var(--vc-ivory); }
.vc-search.wp-block-search__button-only:not(.wp-block-search__searchfield-hidden) .wp-block-search__input {
	min-width: min(60vw, 260px); border: 1px solid var(--vc-line); border-radius: var(--vc-radius-sm); padding: .55rem .8rem; background: #fff;
}
.vc-search .wp-block-search__inside-wrapper { border: 0; }

/* Mobile/tablet header: collapse the main menu below 1100px (core switches at 600px). */
@media (max-width: 1099px) {
	.vc-nav-primary { order: 3; flex: 0 0 auto; }
	.vc-header__tools { order: 2; margin-left: auto; }
	.vc-nav-primary .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.vc-nav-primary .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.vc-nav-primary .wp-block-navigation__responsive-container-open { min-width: 44px; min-height: 44px; align-items: center; justify-content: center; color: var(--vc-teal); }
}
@media (max-width: 480px) {
	.vc-header__tools .vc-account { display: none; } /* account stays reachable from the menu and checkout */
	.vc-header__bar { gap: .5rem; }
}
/* Overlay (mobile) menu */
.vc-nav-primary .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--vc-ivory) !important;
	color: var(--vc-charcoal) !important;
	padding: 1.25rem clamp(1rem, 5vw, 2rem);
}
.vc-nav-primary .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem; }
.vc-nav-primary .is-menu-open .wp-block-navigation__container { gap: .25rem; }
.vc-nav-primary .is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--playfair); font-size: 1.5rem; color: var(--vc-teal); padding: .4rem 0;
}
.vc-nav-primary .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--montserrat); font-size: 1rem; color: var(--vc-charcoal);
}
.vc-nav-primary .is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none; background: transparent !important; padding: 0 0 .5rem 1rem; }
.vc-nav-primary .is-menu-open .wp-block-navigation-item__content::after { display: none; }
.vc-nav-primary .wp-block-navigation__responsive-container-close { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; color: var(--vc-teal); }

/* --------------------------------------------------------------------------
   Sections (home)
   -------------------------------------------------------------------------- */
.vc-main { padding-bottom: var(--wp--preset--spacing--70); }
.vc-main--home { padding-bottom: 0; }
.vc-section > .wp-block-heading + p { max-width: 640px; margin-left: auto; margin-right: auto; }

/* Hero */
.vc-hero { position: relative; overflow: hidden; isolation: isolate; }
.vc-hero::before {
	content: "";
	position: absolute; z-index: -1;
	width: min(70vw, 760px); aspect-ratio: 1;
	right: -12%; top: 50%; transform: translateY(-50%);
	background: var(--vc-mark-light) center / contain no-repeat;
	opacity: .07;
	pointer-events: none;
}
.vc-hero::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
	background: linear-gradient(90deg, transparent, var(--vc-gold), transparent);
}
.vc-hero__title { letter-spacing: -.01em; margin-top: .25rem; margin-bottom: 1.25rem; font-weight: 500; }
.vc-hero__lead { color: rgba(247, 247, 244, .92); max-width: 640px; margin-left: auto !important; margin-right: auto !important; }
.vc-hero__actions { margin-top: 2rem; gap: .9rem; }
.vc-hero__note { margin-top: 1.75rem !important; color: var(--vc-sand); max-width: 520px; margin-left: auto !important; margin-right: auto !important; }

/* Category cards — six separate cards. Name, intro, arrow, hover and link are HTML/CSS.
   The supplied photo (figure.vc-cat-card__media) sits at the top of each card. */
.vc-cat-grid.vc-cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(.75rem, 2vw, 1.5rem); margin-top: var(--wp--preset--spacing--50); }
@media (min-width: 900px) { .vc-cat-grid.vc-cat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 480px) { .vc-cat-grid.vc-cat-grid { grid-template-columns: 1fr; } }
.vc-cat-card {
	position: relative; margin: 0; display: flex; flex-direction: column; gap: .5rem;
	background: #fff; border: 1px solid var(--vc-line); border-top: 3px solid var(--vc-teal);
	border-radius: var(--vc-radius-md); padding: clamp(1.25rem, 2.5vw, 1.75rem);
	min-height: 150px; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.vc-cat-card:hover { border-color: var(--vc-gold); border-top-color: var(--vc-gold); box-shadow: var(--vc-shadow); transform: translateY(-2px); }
.vc-cat-card__media { margin: calc(-1 * clamp(1.25rem, 2.5vw, 1.75rem)) calc(-1 * clamp(1.25rem, 2.5vw, 1.75rem)) .75rem; border-radius: calc(var(--vc-radius-md) - 3px) calc(var(--vc-radius-md) - 3px) 0 0; overflow: hidden; }
.vc-cat-card__media img { display: block; width: 100%; height: auto; transition: transform .5s ease; } /* supplied photos are shown whole, never cropped */
.vc-cat-card:hover .vc-cat-card__media img { transform: scale(1.03); }
.vc-cat-card__title { margin: 0; font-size: var(--wp--preset--font-size--large); }
.vc-cat-card__title a { text-decoration: none; color: var(--vc-teal); }
.vc-cat-card__title a::before { content: ""; position: absolute; inset: 0; border-radius: var(--vc-radius-md); }
.vc-cat-card__title a::after { content: "\2192"; margin-left: .4em; font-family: var(--wp--preset--font-family--montserrat); font-size: .8em; color: var(--vc-gold-ink); display: inline-block; transition: transform .2s ease; }
.vc-cat-card:hover .vc-cat-card__title a::after { transform: translateX(4px); }
.vc-cat-card__intro { margin: 0; color: #555; }
.vc-cat-card:focus-within { outline: 3px solid var(--vc-focus); outline-offset: 3px; }
.vc-cat-card__title a:focus-visible { outline: none; }

/* Feature grid (why) */
.vc-features.vc-features { margin-top: var(--wp--preset--spacing--50); gap: clamp(1rem, 2.5vw, 2rem); grid-template-columns: 1fr; }
@media (min-width: 600px) { .vc-features.vc-features { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .vc-features.vc-features { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.vc-feature {
	background: #fff; border: 1px solid var(--vc-line); border-radius: var(--vc-radius-md);
	padding: clamp(1.25rem, 2.5vw, 1.75rem);
}
.vc-feature__icon { margin: 0 0 .75rem; }
.vc-feature__title { margin: 0 0 .5rem; }
.vc-feature p { margin: 0; color: #4a4a4a; }
.vc-why .vc-more-link { margin-top: var(--wp--preset--spacing--50); }

/* Story */
.vc-story__panel {
	border-radius: var(--vc-radius-lg);
	min-height: clamp(260px, 32vw, 400px);
	padding: var(--wp--preset--spacing--60);
	position: relative; overflow: hidden; gap: 1rem;
}
.vc-story__panel::after {
	content: ""; position: absolute; inset: 14px; border: 1px solid rgba(201, 169, 106, .55); border-radius: calc(var(--vc-radius-lg) - 8px); pointer-events: none;
}
.vc-story__mark { margin: 0; }
.vc-story__tagline { font-family: var(--wp--preset--font-family--playfair); font-size: var(--wp--preset--font-size--large); color: var(--vc-ivory); margin: 0; }

/* Featured section hides itself when no products are marked as featured */
.vc-hide-if-empty:not(:has(.wc-block-product)) { display: none; }

/* Trust strip */
.vc-trust__grid.vc-trust__grid { gap: 1.5rem 2rem; grid-template-columns: 1fr; }
@media (min-width: 600px) { .vc-trust__grid.vc-trust__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .vc-trust__grid.vc-trust__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.vc-trust__item { gap: .9rem; }
.vc-trust__icon { margin: 0; flex: 0 0 40px; }
.vc-trust__title { margin: 0 0 .15rem; font-family: var(--wp--preset--font-family--montserrat); font-weight: 600; }
.vc-trust__title a { text-decoration: none; color: var(--vc-teal); }
.vc-trust__title a:hover { text-decoration: underline; }
.vc-trust__text p { margin: 0; color: #555; }

/* --------------------------------------------------------------------------
   Page header + content
   -------------------------------------------------------------------------- */
.vc-page-header { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--40); text-align: center; }
.vc-page-title { margin-top: .75rem; margin-bottom: 0; }
.vc-page-intro { max-width: 640px; margin: 1.25rem auto 0 !important; color: #444; }
.vc-breadcrumbs { text-align: center; }
.vc-breadcrumbs ol { justify-content: center; }
.wp-block-breadcrumbs a { color: var(--vc-slate-ink); text-decoration: none; }
.wp-block-breadcrumbs a:hover { text-decoration: underline; color: var(--vc-teal); }
.vc-product-page .vc-breadcrumbs, .vc-product-page .vc-breadcrumbs ol { text-align: left; justify-content: flex-start; padding-top: var(--wp--preset--spacing--40); }

.vc-page-content { padding-top: var(--wp--preset--spacing--30); }
.vc-page-content > h2 { margin-top: var(--wp--preset--spacing--60); }
.vc-page-content > h3 { margin-top: var(--wp--preset--spacing--50); }
.vc-page-content .vc-lead { font-size: var(--wp--preset--font-size--medium); color: #3a3a3a; }
.vc-page-content ul:not(.wp-block-social-links) li { margin-bottom: .35rem; }
.vc-page-content ul.vc-checklist { list-style: none; padding-left: 0; }
.vc-page-content ul.vc-checklist li { padding-left: 1.75rem; position: relative; }
.vc-page-content ul.vc-checklist li::before {
	content: ""; position: absolute; left: 0; top: .55em; width: .8rem; height: .45rem;
	border-left: 2px solid var(--vc-gold-ink); border-bottom: 2px solid var(--vc-gold-ink); transform: rotate(-45deg);
}
.vc-callout {
	background: var(--vc-sand-light); border-left: 3px solid var(--vc-gold); border-radius: var(--vc-radius-sm);
	padding: 1.25rem 1.5rem;
}
.vc-card-panel {
	background: #fff; border: 1px solid var(--vc-line); border-radius: var(--vc-radius-md); padding: clamp(1.25rem, 3vw, 2rem);
}
.vc-signoff { font-family: var(--wp--preset--font-family--playfair); font-size: var(--wp--preset--font-size--large); color: var(--vc-teal); text-align: center; }

/* FAQ (details/summary) */
.wp-block-details.vc-faq {
	border-bottom: 1px solid var(--vc-line); padding: 1.1rem 0; margin: 0;
}
.wp-block-details.vc-faq:first-of-type { border-top: 1px solid var(--vc-line); }
.wp-block-details.vc-faq summary {
	cursor: pointer; font-weight: 600; color: var(--vc-teal); list-style: none; position: relative; padding-right: 2rem;
}
.wp-block-details.vc-faq summary::-webkit-details-marker { display: none; }
.wp-block-details.vc-faq summary::after {
	content: "+"; position: absolute; right: .25rem; top: -.1rem; font-size: 1.5rem; line-height: 1; color: var(--vc-gold-ink);
}
.wp-block-details.vc-faq[open] summary::after { content: "\2212"; }
.wp-block-details.vc-faq > :not(summary) { margin-top: .75rem; }

/* Tables (policies) */
.vc-page-content table { border-collapse: collapse; width: 100%; font-size: var(--wp--preset--font-size--small); }
.vc-page-content th, .vc-page-content td { border: 1px solid var(--vc-line); padding: .6rem .75rem; text-align: left; vertical-align: top; }
.vc-page-content thead th { background: var(--vc-sand-light); }
.wp-block-table { overflow-x: auto; }

/* --------------------------------------------------------------------------
   Forms (contact + newsletter rendered by the Velmara Care Core plugin)
   -------------------------------------------------------------------------- */
.vc-form { display: grid; gap: 1rem; }
.vc-form__row { display: grid; gap: 1rem; }
@media (min-width: 640px) { .vc-form__row--2 { grid-template-columns: 1fr 1fr; } }
.vc-form label, .vc-form .vc-form__label { display: block; font-weight: 600; font-size: var(--wp--preset--font-size--small); margin-bottom: .35rem; color: var(--vc-charcoal); }
.vc-form .vc-form__optional { font-weight: 400; color: #5c5c5c; }
.vc-form input[type="text"],
.vc-form input[type="email"],
.vc-form input[type="tel"],
.vc-form select,
.vc-form textarea {
	width: 100%; box-sizing: border-box; font: inherit; color: var(--vc-charcoal);
	background: #fff; border: 1px solid #8f8a80; border-radius: var(--vc-radius-sm); padding: .75rem .9rem; min-height: 48px;
}
.vc-form textarea { min-height: 160px; resize: vertical; }
.vc-form input:focus-visible, .vc-form select:focus-visible, .vc-form textarea:focus-visible { border-color: var(--vc-teal); }
.vc-form [aria-invalid="true"] { border-color: #A3261F; box-shadow: 0 0 0 1px #A3261F; }
.vc-form__error { color: #A3261F; font-size: var(--wp--preset--font-size--x-small); margin-top: .3rem; font-weight: 600; }
.vc-form__hint, .vc-form__privacy { font-size: var(--wp--preset--font-size--x-small); color: #555; margin: 0; }
.vc-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.vc-form button[type="submit"] { cursor: pointer; }
.vc-form button[disabled] { opacity: .7; cursor: progress; }
.vc-form__status { border-radius: var(--vc-radius-sm); padding: .9rem 1rem; font-weight: 500; }
.vc-form__status:empty { display: none; }
.vc-form__status--success { background: #E6F2EC; color: #1E5B3A; border: 1px solid #A9D3BC; }
.vc-form__status--error { background: #FBEAE8; color: #8A1F18; border: 1px solid #EDB8B2; }
.vc-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Newsletter band */
.vc-newsletter-band .vc-form--newsletter { margin-top: 1.25rem; }
.vc-form--newsletter .vc-form__inline { display: flex; gap: .6rem; flex-wrap: wrap; }
.vc-form--newsletter .vc-form__inline input[type="email"] { flex: 1 1 240px; }
.vc-form--newsletter .vc-form__inline button { flex: 0 0 auto; }
.vc-form--newsletter .vc-form__privacy { text-align: center; }
.vc-form--newsletter .vc-form__status { text-align: center; }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.vc-footer { font-size: var(--wp--preset--font-size--small); }
.vc-footer__columns { gap: 2rem; }
.vc-footer__logo { margin: 0 0 1rem; }
.vc-footer__brand p { color: rgba(247, 247, 244, .85); max-width: 320px; }
.vc-footer__heading {
	font-family: var(--wp--preset--font-family--montserrat); font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: .16em; text-transform: uppercase; font-weight: 600; margin: 0 0 1rem;
}
.vc-footer__links { list-style: none; padding: 0; margin: 0; }
.vc-footer__links li { margin: 0 0 .55rem; }
.vc-footer a { text-decoration: none; }
.vc-footer a:hover { text-decoration: underline; text-decoration-color: var(--vc-gold); text-underline-offset: .25em; }
.vc-footer .wp-block-separator.vc-footer__rule.vc-footer__rule { width: 100%; max-width: none; }
.vc-footer__rule { margin-top: var(--wp--preset--spacing--50); margin-bottom: var(--wp--preset--spacing--40); height: 1px; border: 0; opacity: 1; background: rgba(247, 247, 244, .18) !important; }
.vc-footer__legal { display: grid; gap: .4rem; }
.vc-footer__legal p, .vc-company { margin: 0; color: rgba(247, 247, 244, .82); font-size: var(--wp--preset--font-size--x-small); line-height: 1.6; }
@media (max-width: 781px) {
	.vc-footer__columns { display: grid !important; grid-template-columns: 1fr 1fr; }
	.vc-footer__brand { grid-column: 1 / -1; }
}

/* --------------------------------------------------------------------------
   WooCommerce — product cards
   -------------------------------------------------------------------------- */
.vc-products .wc-block-product-template.wc-block-product-template {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 2rem); padding: 0; margin: 0;
}
@media (min-width: 782px) { .vc-products .wc-block-product-template.wc-block-product-template { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .vc-products .wc-block-product-template.wc-block-product-template { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.vc-shop-layout .vc-products .wc-block-product-template.wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 1100px) { .vc-shop-layout .vc-products .wc-block-product-template.wc-block-product-template { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.vc-products .wc-block-product-template > li { width: auto !important; max-width: none !important; margin: 0 !important; }
.vc-products .wc-block-product { text-align: left; display: flex; flex-direction: column; }
.vc-products .wc-block-components-product-image { border-radius: var(--vc-radius-md); overflow: hidden; background: #fff; margin-bottom: .9rem !important; }
.vc-products .wc-block-components-product-image img { object-fit: cover; transition: transform .5s ease; }
.vc-products .wc-block-product:hover .wc-block-components-product-image img { transform: scale(1.03); }
.vc-card-brand { font-size: var(--wp--preset--font-size--x-small); letter-spacing: .12em; text-transform: uppercase; color: var(--vc-slate-ink); margin: 0 0 .25rem; }
.vc-card-brand a { color: inherit; text-decoration: none; }
.vc-card-title { font-family: var(--wp--preset--font-family--playfair); font-size: var(--wp--preset--font-size--medium) !important; line-height: 1.35; margin: 0 0 .35rem !important; font-weight: 500; }
.vc-card-title a { text-decoration: none; color: var(--vc-charcoal); }
.vc-card-title a:hover { color: var(--vc-teal); text-decoration: underline; }
.vc-card-price { font-weight: 600; color: var(--vc-teal); margin-bottom: .75rem !important; text-align: left !important; }
.vc-card-price del { color: #6b6b6b; font-weight: 400; margin-right: .35rem; }
.vc-card-price ins { text-decoration: none; }
.vc-products .vc-card-button { margin-top: auto; text-align: left !important; }
.vc-products .vc-card-button .wp-block-button__link,
.vc-products .vc-card-button .wc-block-components-product-button__button { width: 100%; justify-content: center; }
.wc-block-components-product-sale-badge {
	background: var(--vc-gold) !important; color: var(--vc-charcoal) !important; border: 0 !important;
	border-radius: 999px !important; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; font-size: .7rem !important;
}
.vc-empty, .vc-empty-state { color: #555; padding: var(--wp--preset--spacing--50) 0; }

/* Shop layout */
.vc-shop-layout { align-items: flex-start; }
.vc-shop-toolbar { margin-bottom: 1.25rem; padding-bottom: .9rem; border-bottom: 1px solid var(--vc-line); font-size: var(--wp--preset--font-size--small); }
.vc-shop-toolbar .woocommerce-ordering select { border: 1px solid #8f8a80; border-radius: var(--vc-radius-sm); padding: .5rem 2rem .5rem .75rem; background-color: #fff; min-height: 44px; font: inherit; }
.vc-filters h3 { font-family: var(--wp--preset--font-family--montserrat); font-size: var(--wp--preset--font-size--small); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--vc-charcoal); }
.vc-filters .wc-block-product-filters__overlay-content > * + * { margin-top: 1.5rem; }
.vc-filters .wc-block-product-filters__open-overlay { border: 1px solid var(--vc-teal); border-radius: var(--vc-radius-sm); padding: .6rem 1rem; color: var(--vc-teal); background: #fff; min-height: 44px; }
@media (min-width: 782px) {
	.vc-shop-layout__filters { position: sticky; top: calc(var(--vc-header-h) + 1.5rem); }
}

/* Single product */
.vc-product { margin-top: var(--wp--preset--spacing--40); }
.vc-product__brand { font-size: var(--wp--preset--font-size--x-small); letter-spacing: .14em; text-transform: uppercase; color: var(--vc-slate-ink); margin-bottom: .25rem; }
.vc-product__brand a { color: inherit; }
.vc-product__title { font-size: var(--wp--preset--font-size--xx-large); margin: 0 0 .75rem; }
.vc-product__price { color: var(--vc-teal); font-weight: 600; }
.vc-product__excerpt { color: #3f3f3f; }
.vc-product .woocommerce-product-gallery { border-radius: var(--vc-radius-md); overflow: hidden; width: 100% !important; float: none !important; }
.vc-product .woocommerce-product-gallery__wrapper, .vc-product .woocommerce-product-gallery__image img.wp-post-image { width: 100%; }
.vc-product .woocommerce-product-gallery__trigger { background: #fff; border-radius: 50%; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; text-decoration: none; }
.vc-product-page .onsale, .vc-product-page span.onsale {
	background: var(--vc-gold); color: var(--vc-charcoal); border-radius: 999px; min-height: 0; min-width: 0; padding: .3rem .8rem; line-height: 1.4;
	font-size: .75rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; top: 1rem; left: 1rem; position: absolute; z-index: 9; margin: 0;
}
.vc-product__gallery { position: relative; }
.vc-product form.cart { display: flex; flex-wrap: wrap; gap: .75rem; align-items: stretch; margin: 1.5rem 0; }
.vc-product form.cart .quantity input.qty { min-height: 48px; width: 4.5rem; border: 1px solid #8f8a80; border-radius: var(--vc-radius-sm); font: inherit; text-align: center; }
.vc-product form.cart .single_add_to_cart_button { flex: 1 1 200px; min-height: 48px; }
.vc-product__meta { gap: .25rem; font-size: var(--wp--preset--font-size--x-small); color: #555; margin-top: 1rem; }
.vc-delivery-summary {
	border: 1px solid var(--vc-line); border-radius: var(--vc-radius-md); background: #fff;
	padding: 1rem 1.25rem; margin: 1rem 0; font-size: var(--wp--preset--font-size--small);
}
.vc-delivery-summary ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.vc-delivery-summary li { padding-left: 1.5rem; position: relative; }
.vc-delivery-summary li::before { content: ""; position: absolute; left: 0; top: .5em; width: .55rem; height: .55rem; border-radius: 50%; background: var(--vc-gold); }
.vc-product-details { margin-top: var(--wp--preset--spacing--60); }
.vc-product-details .wc-tabs { border-bottom: 1px solid var(--vc-line); display: flex; flex-wrap: wrap; gap: .25rem; padding: 0; margin: 0 0 1.5rem; list-style: none; }
.vc-product-details .wc-tabs li { margin: 0; border: 0 !important; background: transparent !important; border-radius: 0 !important; padding: 0 !important; }
.vc-product-details .wc-tabs li::before, .vc-product-details .wc-tabs li::after { display: none !important; }
.vc-product-details .wc-tabs li a { display: block; font-weight: 600; font-size: var(--wp--preset--font-size--small); padding: .75rem 1rem; text-decoration: none; color: #555; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.vc-product-details .wc-tabs li.active a, .vc-product-details .wc-tabs li a:hover { color: var(--vc-teal); border-bottom-color: var(--vc-gold); }
.vc-product-details .woocommerce-Tabs-panel { max-width: 860px; }
.vc-product-details .woocommerce-Tabs-panel h2:first-child { font-size: var(--wp--preset--font-size--large); }
.vc-product-info dl { display: grid; grid-template-columns: minmax(140px, 220px) 1fr; gap: .5rem 1.5rem; margin: 0; }
.vc-product-info dt { font-weight: 600; }
.vc-product-info dd { margin: 0; }
@media (max-width: 600px) { .vc-product-info dl { grid-template-columns: 1fr; } .vc-product-info dd { margin-bottom: .75rem; } }

/* Cart/checkout blocks pick up brand colours */
.wc-block-components-button:not(.is-link) {
	background: var(--vc-teal); color: #fff; border-radius: var(--vc-radius-sm);
}
.wc-block-components-button:not(.is-link):hover { background: var(--vc-teal-dark); color: #fff; }

/* Store notices */
.wc-block-components-notice-banner { border-radius: var(--vc-radius-sm); }

/* 404 */
.vc-404 .vc-search-page { margin: 1.5rem auto; }
.vc-search-page { max-width: 560px; margin-left: auto !important; margin-right: auto !important; margin-top: 1.25rem; }
.vc-search-page .wp-block-search__input { border-radius: var(--vc-radius-sm); border: 1px solid #8f8a80; min-height: 48px; padding: .6rem .9rem; }
.vc-result { padding: 1.25rem 0; border-bottom: 1px solid var(--vc-line); }

/* Print */
@media print {
	.vc-announcement, .vc-header__tools, .vc-nav-primary, .vc-newsletter-band, .vc-trust { display: none !important; }
	.vc-site-header { position: static; }
}

/* Accessibility: keep the closed mini-basket drawer out of the keyboard tab order */
.wc-block-mini-cart__drawer[aria-hidden="true"] { visibility: hidden; }
.wc-block-mini-cart__drawer[aria-hidden="false"] { visibility: visible; }
