/* Vecchia Magia v1.25.59 — private-by-design Complianz privacy choices + legal footer support. */

/* The generated document is rendered inside the same custom shell as the rest
 * of the current Vecchia Magia site. Complianz still owns all legal copy and
 * consent controls; these rules change presentation only. */
.vm-privacy-choices-site {
	background: var(--vm-parchment);
}

.vm-privacy-choices-hero {
	min-height: 410px;
	background:
		linear-gradient(90deg, rgba(17, 14, 9, .94) 0%, rgba(19, 16, 11, .72) 45%, rgba(19, 16, 11, .22) 72%, rgba(19, 16, 11, .05) 100%),
		url("../images/privacy-archive-hero.webp") center/cover;
}

.vm-privacy-choices-summary {
	border-bottom: 1px solid rgba(92, 71, 40, .16);
	background: #3f4630;
	color: var(--vm-cream);
}

.vm-privacy-choices-summary-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
	align-items: stretch;
}

.vm-privacy-choices-summary-grid > div {
	padding: 25px clamp(20px, 2.4vw, 36px);
	border-left: 1px solid rgba(255, 255, 255, .13);
}

.vm-privacy-choices-summary-grid > div:first-child {
	border-left: 0;
}

.vm-privacy-choices-summary-grid strong {
	display: block;
	color: var(--vm-cream);
	font-family: var(--vm-serif);
	font-size: 21px;
	font-weight: 500;
	line-height: 1.2;
}

.vm-privacy-choices-summary-grid p {
	margin: 5px 0 0;
	color: rgba(247, 240, 227, .68);
	font-size: 13px;
	line-height: 1.5;
}

.vm-privacy-choices-summary-action {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 240px;
}

.vm-privacy-choices-summary-action .vm-button {
	width: 100%;
	max-width: 250px;
	cursor: pointer;
}

.vm-privacy-choices-main {
	padding: 76px 0 86px;
	background:
		radial-gradient(rgba(76, 59, 36, .045) .8px, transparent .8px),
		var(--vm-parchment);
	background-size: 7px 7px, auto;
}

.vm-privacy-choices-inner {
	max-width: 1120px;
}

.vm-privacy-choices-intro {
	display: grid;
	grid-template-columns: minmax(290px, .8fr) minmax(0, 1.2fr);
	gap: clamp(36px, 6vw, 90px);
	align-items: end;
	margin-bottom: 45px;
}

.vm-privacy-choices-intro h2 {
	margin: 10px 0 0;
	font-family: var(--vm-serif);
	font-size: clamp(38px, 3.8vw, 55px);
	font-weight: 400;
	letter-spacing: -.025em;
	line-height: 1.04;
}

.vm-privacy-choices-intro > div:last-child p {
	max-width: 650px;
	margin: 0 0 13px;
	color: #584e43;
	font-size: 16px;
	line-height: 1.72;
}

.vm-privacy-choices-intro a,
.vm-cmplz-document-shell a {
	color: #76571f;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.vm-privacy-choices-toolbar {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	margin: 0 0 14px;
}

.vm-privacy-choices-toolbar[hidden] {
	display: none;
}

.vm-privacy-choices-toolbar button {
	padding: 7px 0;
	border: 0;
	background: transparent;
	color: #76571f;
	font-family: var(--vm-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
}

.vm-privacy-choices-toolbar button + button::before {
	margin-right: 10px;
	color: rgba(92, 71, 40, .45);
	content: "·";
}

.vm-cmplz-document-shell {
	border-top: 1px solid rgba(92, 71, 40, .25);
	border-bottom: 1px solid rgba(92, 71, 40, .25);
}

.vm-privacy-choices-site #cmplz-document {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	color: #574d42;
	font-family: var(--vm-sans);
	font-size: 15.5px !important;
	line-height: 1.68 !important;
}

.vm-privacy-choices-site #cmplz-document > p:first-child,
.vm-privacy-choices-site #cmplz-document > p:first-of-type {
	margin: 0;
	padding: 18px 0;
	border-bottom: 1px solid rgba(92, 71, 40, .16);
	color: #786c5e;
	font-size: 12px !important;
	font-style: italic;
	line-height: 1.55 !important;
}

.vm-privacy-choices-site #cmplz-document p,
.vm-privacy-choices-site #cmplz-document li,
.vm-privacy-choices-site #cmplz-document label,
.vm-privacy-choices-site #cmplz-document td,
.vm-privacy-choices-site #cmplz-document th {
	font-size: 15.5px !important;
	line-height: 1.68 !important;
}

/* Before JavaScript enhancement, retain a readable complete policy. */
.vm-privacy-choices-site #cmplz-document > h2 {
	margin: 35px 0 13px !important;
	color: var(--vm-ink);
	font-family: var(--vm-serif);
	font-size: 29px !important;
	font-weight: 500;
	line-height: 1.15 !important;
}

/* Progressive enhancement: numbered sections become compact disclosures. */
.vm-cmplz-section {
	border-top: 1px solid rgba(92, 71, 40, .22);
}

.vm-cmplz-section:first-of-type {
	border-top: 0;
}

.vm-cmplz-section > summary {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 25px;
	padding: 22px 4px;
	color: var(--vm-ink);
	list-style: none;
	cursor: pointer;
}

.vm-cmplz-section > summary::-webkit-details-marker,
.vm-cmplz-section > summary::marker {
	display: none;
	content: "";
}

.vm-cmplz-section-title {
	font-family: var(--vm-serif);
	font-size: clamp(23px, 2.2vw, 29px);
	font-weight: 500;
	line-height: 1.2;
}

.vm-cmplz-section-icon {
	position: relative;
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
}

.vm-cmplz-section-icon::before,
.vm-cmplz-section-icon::after {
	position: absolute;
	top: 50%;
	left: 0;
	width: 18px;
	height: 1px;
	background: var(--vm-gold);
	content: "";
	transition: transform .2s ease;
}

.vm-cmplz-section-icon::after {
	transform: rotate(90deg);
}

.vm-cmplz-section[open] .vm-cmplz-section-icon::after {
	transform: rotate(0deg);
}

.vm-cmplz-section-body {
	max-width: 930px;
	padding: 0 48px 30px 4px;
}

.vm-cmplz-section-body > :first-child {
	margin-top: 0 !important;
}

.vm-privacy-choices-site #cmplz-document h3 {
	margin: 24px 0 8px !important;
	color: #76571f;
	font-family: var(--vm-sans);
	font-size: 13px !important;
	font-weight: 700;
	letter-spacing: .07em;
	line-height: 1.4 !important;
	text-transform: uppercase;
}

.vm-privacy-choices-site #cmplz-document h4,
.vm-privacy-choices-site #cmplz-document h5 {
	margin: 19px 0 6px !important;
	color: #43392f;
	font-size: 15px !important;
	line-height: 1.4 !important;
}

.vm-privacy-choices-site #cmplz-document p {
	margin: 0 0 13px !important;
}

.vm-privacy-choices-site #cmplz-document ul,
.vm-privacy-choices-site #cmplz-document ol {
	margin: 12px 0 18px;
	padding-left: 22px;
}

/* Cookie/service disclosure rows already use <details>; keep them compact and
 * visually aligned with the new site rather than stacking huge gray panels. */
.vm-privacy-choices-site #cmplz-document .cmplz-dropdown {
	margin: 7px 0 !important;
	border: 1px solid rgba(92, 71, 40, .18);
	background: rgba(255, 255, 255, .22);
}

.vm-privacy-choices-site #cmplz-document .cmplz-dropdown summary {
	padding: 11px 14px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: rgba(255, 255, 255, .22);
}

.vm-privacy-choices-site #cmplz-document .cmplz-dropdown summary h3,
.vm-privacy-choices-site #cmplz-document .cmplz-dropdown summary p {
	margin: 0 !important;
	font-size: 12.5px !important;
	line-height: 1.45 !important;
}

.vm-privacy-choices-site #cmplz-document .cmplz-dropdown > div:not(summary),
.vm-privacy-choices-site #cmplz-document .cmplz-dropdown .cookies-per-purpose {
	padding: 4px 14px 12px;
}


/* Consent-per-service controls are real Complianz controls. Keep them fully
 * functional, but render them as restrained switches instead of raw browser
 * checkboxes/checkmarks. Complianz keeps ownership of the service-row grid and
 * chevron layout. */
.vm-privacy-choices-site #cmplz-document .cmplz-service-desc input.cmplz-accept-service:not(.cmplz-hidden) {
	appearance: none;
	-webkit-appearance: none;
	width: 42px !important;
	height: 24px !important;
	min-width: 42px;
	margin: 0 !important;
	border: 1px solid rgba(92, 71, 40, .28) !important;
	border-radius: 999px !important;
	background-color: #d9d1c4 !important;
	background-image: radial-gradient(circle at 12px 50%, #fffdf8 0 8px, transparent 8.5px) !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: background-color .18s ease, background-image .18s ease, border-color .18s ease;
}

.vm-privacy-choices-site #cmplz-document .cmplz-service-desc input.cmplz-accept-service:not(.cmplz-hidden):checked {
	border-color: #58674b !important;
	background-color: #58674b !important;
	background-image: radial-gradient(circle at 30px 50%, #fffdf8 0 8px, transparent 8.5px) !important;
}

.vm-privacy-choices-site #cmplz-document .cmplz-service-desc input.cmplz-accept-service:not(.cmplz-hidden):focus-visible {
	outline: 2px solid #9a792e;
	outline-offset: 3px;
}

.vm-privacy-choices-site #cmplz-document .cmplz-service-desc input.cmplz-accept-service.cmplz-hidden {
	display: none !important;
}

.vm-cmplz-privacy-request-copy {
	max-width: 760px;
	padding: 18px 20px;
	border-left: 2px solid var(--vm-gold);
	background: rgba(255, 255, 255, .27);
}


.vm-cmplz-rights-route {
	max-width: 760px;
	margin: 22px 0 8px;
	padding: 22px 24px;
	border: 1px solid rgba(92, 71, 40, .2);
	border-left: 3px solid var(--vm-gold);
	background: rgba(255, 255, 255, .3);
}

.vm-cmplz-rights-route-label {
	margin: 0 0 7px !important;
	color: #76571f;
	font-family: var(--vm-sans);
	font-size: 11px !important;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.vm-cmplz-rights-route p:not(.vm-cmplz-rights-route-label) {
	margin-bottom: 13px !important;
}

.vm-cmplz-rights-route-link {
	display: inline-block;
	padding-bottom: 2px;
	border-bottom: 1px solid rgba(118, 87, 31, .45);
	color: #76571f !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	letter-spacing: .07em;
	text-decoration: none !important;
	text-transform: uppercase;
}

/* Data-request and consent controls. */
.vm-privacy-choices-site #cmplz-document input[type="text"],
.vm-privacy-choices-site #cmplz-document input[type="email"],
.vm-privacy-choices-site #cmplz-document textarea,
.vm-privacy-choices-site #cmplz-document select {
	min-height: 44px;
	padding: 9px 12px;
	border: 1px solid rgba(92, 71, 40, .28);
	border-radius: 0;
	background: rgba(255, 255, 255, .35);
	font-size: 15px !important;
}

.vm-privacy-choices-site #cmplz-document textarea {
	min-height: 105px;
}

.vm-privacy-choices-site #cmplz-document input[type="submit"],
.vm-privacy-choices-site #cmplz-document button:not(.cmplz-category-toggle) {
	min-height: 44px;
	padding: 10px 18px;
	border: 1px solid var(--vm-gold);
	border-radius: 0;
	background: var(--vm-gold);
	color: #211e18;
	font-family: var(--vm-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
}

.vm-privacy-choices-site #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-categories {
	margin-top: 14px;
}

.vm-privacy-choices-site #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-category {
	margin-bottom: 7px;
	border: 1px solid rgba(92, 71, 40, .16);
	background: rgba(255, 255, 255, .24);
}

.vm-privacy-choices-site #cmplz-manage-consent-container.cmplz-manage-consent-container .cmplz-category .cmplz-category-header {
	padding: 10px 13px;
	background: rgba(255, 255, 255, .22);
}


/* Complianz's manage-consent controls on legal documents do not inherit the
 * banner's slider stylesheet, so render those real consent checkboxes as the
 * same accessible switch treatment instead of blue browser checkmarks. */
.vm-privacy-choices-site #cmplz-manage-consent-container .cmplz-banner-checkbox {
	position: relative;
	display: inline-flex;
	align-items: center;
	min-width: 42px;
	height: 24px;
}

.vm-privacy-choices-site #cmplz-manage-consent-container .cmplz-banner-checkbox input.cmplz-consent-checkbox {
	position: absolute;
	z-index: 2;
	top: 0;
	left: 0;
	width: 42px !important;
	height: 24px !important;
	margin: 0 !important;
	opacity: 0;
	cursor: pointer;
}

.vm-privacy-choices-site #cmplz-manage-consent-container .cmplz-banner-checkbox .cmplz-label {
	position: relative;
	display: block;
	width: 42px;
	height: 24px;
	min-height: 24px;
	margin: 0 !important;
	padding: 0 !important;
}

.vm-privacy-choices-site #cmplz-manage-consent-container .cmplz-banner-checkbox .cmplz-label::before {
	position: absolute;
	inset: 0;
	border: 1px solid rgba(92, 71, 40, .28);
	border-radius: 999px;
	background: #d9d1c4;
	content: "";
	transition: background-color .18s ease, border-color .18s ease;
}

.vm-privacy-choices-site #cmplz-manage-consent-container .cmplz-banner-checkbox .cmplz-label::after {
	position: absolute;
	top: 4px;
	left: 4px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #fffdf8;
	box-shadow: 0 1px 2px rgba(33, 30, 24, .18);
	content: "";
	transition: transform .18s ease;
}

.vm-privacy-choices-site #cmplz-manage-consent-container .cmplz-banner-checkbox input.cmplz-consent-checkbox:checked + .cmplz-label::before {
	border-color: #58674b;
	background: #58674b;
}

.vm-privacy-choices-site #cmplz-manage-consent-container .cmplz-banner-checkbox input.cmplz-consent-checkbox:checked + .cmplz-label::after {
	transform: translateX(18px);
}

.vm-privacy-choices-site #cmplz-manage-consent-container .cmplz-banner-checkbox input.cmplz-consent-checkbox:focus-visible + .cmplz-label::before {
	outline: 2px solid #9a792e;
	outline-offset: 3px;
}

/* Standard Kadence footer repair remains for any non-custom legal pages. */
.site-footer .vm-kadence-footer-heading {
	margin: 0 0 18px !important;
	font-size: 25px !important;
	line-height: 1.15 !important;
}

.site-footer .vm-kadence-footer-link {
	margin: 0 0 10px !important;
	font-size: 15px !important;
	line-height: 1.5 !important;
}

.site-footer .vm-kadence-footer-legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 7px 10px;
	font-size: 12px;
	line-height: 1.6;
}

.site-footer .vm-kadence-footer-legal a {
	display: inline-block;
	white-space: normal;
}

.site-footer .vm-footer-separator {
	opacity: .55;
}

.site-footer .footer-html-inner p {
	margin: 0;
}

@media (max-width: 980px) {
	.vm-privacy-choices-summary-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.vm-privacy-choices-summary-action {
		grid-column: 1 / -1;
		border-top: 1px solid rgba(255, 255, 255, .13);
		border-left: 0 !important;
	}
	.vm-privacy-choices-summary-action .vm-button {
		max-width: 330px;
	}
}

@media (max-width: 760px) {
	.vm-privacy-choices-hero {
		min-height: 390px;
	}
	.vm-privacy-choices-summary-grid {
		grid-template-columns: 1fr;
	}
	.vm-privacy-choices-summary-grid > div {
		padding: 17px 0;
		border-top: 1px solid rgba(255, 255, 255, .12);
		border-left: 0;
	}
	.vm-privacy-choices-summary-grid > div:first-child {
		border-top: 0;
	}
	.vm-privacy-choices-summary-action {
		padding: 20px 0 !important;
	}
	.vm-privacy-choices-summary-action .vm-button {
		max-width: none;
	}
	.vm-privacy-choices-main {
		padding: 58px 0 66px;
	}
	.vm-privacy-choices-intro {
		grid-template-columns: 1fr;
		gap: 22px;
		margin-bottom: 34px;
	}
	.vm-privacy-choices-intro h2 {
		font-size: 38px;
	}
	.vm-privacy-choices-toolbar {
		justify-content: flex-start;
		flex-wrap: wrap;
	}
	.vm-cmplz-section > summary {
		padding: 19px 2px;
	}
	.vm-cmplz-section-title {
		font-size: 22px;
	}
	.vm-cmplz-section-body {
		padding: 0 0 25px 2px;
	}
	.vm-privacy-choices-site #cmplz-document,
	.vm-privacy-choices-site #cmplz-document p,
	.vm-privacy-choices-site #cmplz-document li,
	.vm-privacy-choices-site #cmplz-document label,
	.vm-privacy-choices-site #cmplz-document td,
	.vm-privacy-choices-site #cmplz-document th {
		font-size: 15px !important;
		line-height: 1.65 !important;
	}
	.vm-privacy-choices-site #cmplz-document .cmplz-dropdown summary div {
		grid-template-columns: minmax(0, 1fr) 18px !important;
		gap: 8px !important;
	}
	.site-footer .vm-kadence-footer-legal {
		gap: 8px;
		font-size: 12px;
	}
}

/* v1.25.60: reliable in-page navigation to the real Complianz privacy controls. */
.vm-privacy-choices-page #cmplz-manage-consent-container,
.vm-privacy-choices-page details.vm-cmplz-section[data-vm-privacy-controls="1"] {
	scroll-margin-top: 110px;
}

.vm-privacy-choices-page [data-vm-privacy-jump]:focus-visible {
	outline: 3px solid #d6bb67;
	outline-offset: 4px;
}


/* v1.26.4 — consent banner clarity and equal-choice prominence.
 * Complianz uses .cmplz-accept and .cmplz-deny for the primary consent choices.
 * Keep both actions the same size, weight, contrast, and filled treatment so
 * neither choice is visually subordinated. */
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-accept,
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-deny {
	min-height: 46px !important;
	padding: 11px 18px !important;
	border: 1px solid #3f4630 !important;
	border-radius: 2px !important;
	background: #3f4630 !important;
	box-shadow: none !important;
	color: #f7f0e3 !important;
	font-family: var(--vm-sans, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif) !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	text-decoration: none !important;
	opacity: 1 !important;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-accept:hover,
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-deny:hover {
	background: #303724 !important;
	border-color: #303724 !important;
	color: #fffaf0 !important;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-accept:focus-visible,
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-deny:focus-visible,
.vm-footer a.cmplz-show-banner:focus-visible {
	outline: 3px solid #b49252 !important;
	outline-offset: 3px !important;
}

/* Footer preference control should look like the surrounding policy links,
 * while remaining available on every page where the shared footer is used. */
.vm-footer a.cmplz-show-banner {
	cursor: pointer;
}

.vm-footer a.vm-footer-preferences {
	font-size: 11px;
	opacity: .76;
}

.vm-footer a.vm-footer-preferences:hover,
.vm-footer a.vm-footer-preferences:focus-visible {
	opacity: 1;
}
