html,
body {
	overflow-x: hidden;
	max-width: 100%;
}

.site-footer,
#colophon,
.ast-footer-copyright,
.ast-builder-footer-grid-columns {
	display: none !important;
}

.vicora-footer {
	--green: #004643;
	--green-deep: #003230;
	--green-mid: #005a56;
	--cream: #f0ede5;
	--cream-muted: #b8b5ae;
	--gold: #c8a96a;
	--gold-light: #dfc28e;
	--border: rgba(200, 169, 106, 0.18);
	--font-display: "Cormorant Garamond", serif;
	--font-body: "Jost", sans-serif;
	position: relative;
	width: 100%;
	overflow: hidden;
	background: var(--green);
	color: var(--cream);
	font-family: var(--font-body);
}

/* Keep the premium footer identical across every desktop/laptop template. */
@media (min-width: 768px) {
	html body .vicora-footer {
		display: block !important;
		clear: both;
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
	}

	html body .vicora-footer,
	html body .vicora-footer *,
	html body .vicora-footer *::before,
	html body .vicora-footer *::after {
		box-sizing: border-box;
	}

	/* WooCommerce account/product styles must not enlarge payment artwork. */
	html body .vicora-footer .pay-badge {
		width: auto !important;
		max-width: none !important;
		min-height: 36px !important;
	}

	html body .vicora-footer img.pay-logo {
		display: block !important;
		max-width: none !important;
		object-fit: contain !important;
	}

	html body .vicora-footer img.pay-logo--visa {
		width: 56px !important;
		height: 17px !important;
	}

	html body .vicora-footer img.pay-logo--mastercard {
		width: 36px !important;
		height: 22px !important;
	}

	html body .vicora-footer .pay-logo--upi {
		width: 58px !important;
		height: 23px !important;
	}

	html body .vicora-footer img.pay-logo--razorpay {
		width: 66px !important;
		height: 18px !important;
	}
}

.vicora-footer::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	opacity: 0.45;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.06'/%3E%3C/svg%3E");
}

.vicora-footer::after {
	content: "";
	position: absolute;
	z-index: 0;
	bottom: -80px;
	left: -80px;
	width: 480px;
	height: 480px;
	pointer-events: none;
	background: radial-gradient(circle, rgba(0, 90, 86, 0.45) 0%, transparent 70%);
}

.footer-topline,
.footer-newsletter,
.footer-main,
.footer-trust,
.footer-bottom {
	position: relative;
	z-index: 1;
}

.footer-topline {
	width: 100%;
	height: 1px;
	background: linear-gradient(90deg, transparent 0%, var(--gold) 30%, var(--gold-light) 50%, var(--gold) 70%, transparent 100%);
}

.footer-newsletter {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 24px;
	padding: 48px 60px;
	border-bottom: 1px solid var(--border);
	text-align: center;
}

.newsletter-copy h3 {
	margin: 0 0 6px;
	color: var(--cream);
	font-family: var(--font-display);
	font-size: 28px;
	font-weight: 300;
	letter-spacing: 0.04em;
}

.newsletter-copy h3 em {
	color: var(--gold);
	font-style: italic;
}

.newsletter-copy p {
	margin: 0;
	color: var(--cream);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.newsletter-form {
	display: flex;
	width: 100%;
	max-width: 480px;
	overflow: hidden;
	border: 1px solid var(--border);
}

.newsletter-form input {
	flex: 1;
	min-width: 0;
	padding: 14px 20px;
	border: 0;
	outline: 0;
	background: rgba(0, 0, 0, 0.15);
	color: var(--cream);
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 300;
	letter-spacing: 0.08em;
}

.newsletter-form input::placeholder {
	color: var(--cream-muted);
}

.newsletter-form button {
	flex-shrink: 0;
	padding: 14px 24px;
	border: 0;
	background: var(--gold);
	color: var(--green-deep);
	cursor: pointer;
	font-family: var(--font-body);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	transition: background 0.3s ease;
}

.newsletter-form button:hover {
	background: var(--gold-light);
}

.footer-main {
	display: grid;
	grid-template-columns: 1.6fr 1fr 1.2fr 1fr 0.9fr;
	gap: 0;
	padding: 64px 60px 56px;
	border-bottom: 1px solid var(--border);
}

.footer-col {
	padding-right: 40px;
}

.footer-col:not(:last-child) {
	border-right: 1px solid var(--border);
}

.footer-col:not(:first-child) {
	padding-left: 40px;
	padding-right: 0;
}

.footer-brand-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;
	height: 108px;
	overflow: hidden;
}

.footer-brand-logo img {
	display: block;
	width: 100%;
	max-width: 320px;
	height: auto;
	filter: brightness(0) invert(1) sepia(1) saturate(0.3) brightness(1.1);
}

.footer-brand-para {
	margin: 0;
	color: var(--cream);
	font-family: var(--font-display);
	font-size: 13.5px;
	font-style: italic;
	font-weight: 500;
	line-height: 1.85;
	letter-spacing: 0.03em;
	text-align: center;
}

.footer-brand-para .brand-last {
	display: block;
	color: var(--gold);
}

.footer-col-heading {
	position: relative;
	margin: 0 0 24px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--border);
	color: var(--cream);
	font-family: var(--font-display);
	font-size: 17px;
	font-weight: 400;
	letter-spacing: 0.12em;
}

.footer-col-heading::after {
	content: "";
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 28px;
	height: 1px;
	background: var(--gold);
}

.footer-links {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-links li a,
.footer-legal-links a {
	position: relative;
	display: inline-block;
	color: var(--cream);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-decoration: none;
	transition: color 0.25s ease, letter-spacing 0.25s ease;
}

.footer-links li a::before {
	content: "";
	position: absolute;
	bottom: -2px;
	left: 0;
	width: 0;
	height: 1px;
	background: var(--gold);
	transition: width 0.3s ease;
}

.footer-links li a:hover,
.footer-legal-links a:hover,
.social-link:hover {
	color: var(--gold);
}

.footer-links li a:hover {
	letter-spacing: 0.1em;
}

.footer-links li a:hover::before {
	width: 100%;
}

.social-label {
	margin: 0 0 24px;
	color: var(--cream);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.social-icons {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.social-link {
	display: flex;
	align-items: center;
	gap: 14px;
	color: var(--cream);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-decoration: none;
	transition: color 0.25s ease;
}

.social-icon-wrap {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid var(--border);
	transition: border-color 0.25s ease, background 0.25s ease;
}

.social-link:hover .social-icon-wrap {
	border-color: var(--gold);
	background: rgba(200, 169, 106, 0.1);
}

.social-icon-wrap svg {
	width: 16px;
	height: 16px;
	fill: currentColor;
}

.footer-trust {
	overflow: hidden;
	padding: 32px 60px;
	border-top: 1px solid var(--border);
	background: rgba(0, 0, 0, 0.12);
}

.trust-row,
.trust-group {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 20px;
}

.trust-group {
	gap: 12px;
}

.trust-group-label {
	flex-shrink: 0;
	margin-right: 4px;
	color: var(--gold);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.trust-divider {
	flex-shrink: 0;
	width: 1px;
	height: 36px;
	background: var(--border);
}

.pay-badge {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	gap: 7px;
	min-height: 36px;
	padding: 7px 12px;
	border: 1px solid var(--border);
	border-radius: 4px;
	background: rgba(240, 237, 229, 0.06);
	transition: border-color 0.25s, background 0.25s;
}

.pay-badge:hover {
	border-color: rgba(200, 169, 106, 0.45);
	background: rgba(200, 169, 106, 0.08);
}

.pay-icon {
	display: block;
	width: auto;
	height: 18px;
	fill: var(--gold-light);
	filter: drop-shadow(0 3px 8px rgba(200, 169, 106, 0.18));
}

.pay-icon--visa {
	width: 56px;
}

.pay-icon--mastercard {
	width: 36px;
}

.pay-icon--mastercard circle:first-child {
	fill: rgba(223, 194, 142, 0.92);
}

.pay-icon--mastercard circle:nth-child(2) {
	fill: rgba(200, 169, 106, 0.72);
}

.pay-icon--mastercard path {
	fill: rgba(255, 246, 222, 0.52);
}

.pay-icon--upi {
	width: 44px;
	fill: var(--cream);
}

.pay-icon--upi .upi-arrow {
	fill: var(--gold);
}

.pay-icon--razorpay {
	width: 66px;
}

.pay-logo {
	display: block;
	width: auto;
	max-width: none;
	height: 20px;
	object-fit: contain;
	opacity: 0.96;
	filter: brightness(0) invert(1) drop-shadow(0 4px 10px rgba(255, 255, 255, 0.12));
}

.pay-logo--visa {
	height: 17px;
}

.pay-logo--mastercard {
	height: 22px;
}

.pay-logo--upi {
	width: 58px;
	height: 23px;
	fill: #ffffff;
	filter: drop-shadow(0 4px 10px rgba(255, 255, 255, 0.12));
}

.pay-logo--upi .upi-mark {
	fill: #ffffff;
}

.pay-logo--razorpay {
	height: 18px;
}

.pay-badge__label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}

.del-badge {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	gap: 10px;
}

.del-icon-wrap {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid var(--border);
	border-radius: 50%;
	background: rgba(200, 169, 106, 0.06);
	color: var(--gold);
}

.del-icon-wrap svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.65;
	stroke-linecap: round;
	stroke-linejoin: round;
	filter: drop-shadow(0 4px 10px rgba(200, 169, 106, 0.2));
}

.del-text {
	display: flex;
	flex-direction: column;
}

.del-text strong {
	color: var(--cream);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1.3;
}

.del-text span {
	color: var(--cream-muted);
	font-size: 10px;
	font-weight: 300;
	line-height: 1.3;
}

.footer-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	padding: 22px 60px;
	background: var(--green-deep);
}

.footer-copyright,
.footer-made {
	margin: 0;
	color: var(--cream);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
}

.footer-copyright span {
	color: var(--gold);
}

.footer-legal-links {
	display: flex;
	gap: 28px;
}

.footer-legal-links a {
	font-size: 12px;
}

.footer-made {
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

@media (max-width: 1280px) {
	.footer-main { grid-template-columns: 1.4fr 1fr 1fr 1fr 0.9fr; padding: 56px 40px 48px; }
	.footer-col { padding-right: 28px; }
	.footer-col:not(:first-child) { padding-left: 28px; }
	.footer-newsletter { padding: 40px; }
	.footer-bottom { padding: 20px 40px; }
	.footer-trust { padding: 28px 40px; }
}

@media (max-width: 1024px) {
	.footer-main { grid-template-columns: 1fr 1fr 1fr; padding: 48px 32px; }
	.footer-col:nth-child(1) { grid-column: 1 / -1; border-right: 0 !important; border-bottom: 1px solid var(--border); padding: 0 0 32px !important; }
	.footer-col { border-right: 0 !important; padding: 32px 20px !important; }
	.footer-col:nth-child(5) { grid-column: 1 / -1; border-top: 1px solid var(--border); padding: 32px 0 0 !important; }
	.footer-col:nth-child(5) .social-icons { flex-direction: row; flex-wrap: wrap; gap: 16px; }
	.footer-brand-logo img { max-width: 260px; }
}

@media (max-width: 768px) {
	.footer-newsletter { padding: 32px 20px; gap: 20px; }
	.newsletter-copy h3 { font-size: 22px; }
	.newsletter-form { max-width: 100%; }
	.footer-main { grid-template-columns: 1fr 1fr; padding: 36px 20px; }
	.footer-col:nth-child(1) { grid-column: 1 / -1; padding: 0 0 28px !important; }
	.footer-col { padding: 24px 16px !important; }
	.footer-col:nth-child(2) { padding-left: 0 !important; border-right: 1px solid var(--border) !important; }
	.footer-col:nth-child(4) { padding-left: 0 !important; border-top: 1px solid var(--border); border-right: 1px solid var(--border) !important; }
	.footer-col:nth-child(5) { grid-column: 1 / -1; border-top: 1px solid var(--border); padding: 24px 0 !important; }
	.footer-col:nth-child(5) .social-icons { flex-direction: row; flex-wrap: wrap; gap: 12px; }
	.footer-trust { padding: 20px; }
	.trust-divider { display: none; }
	.trust-group-label { width: 100%; margin-bottom: 4px; }
	.footer-bottom { flex-direction: column; align-items: center; text-align: center; padding: 20px; }
	.footer-legal-links { flex-wrap: wrap; justify-content: center; gap: 14px; }
	.footer-brand-logo img { max-width: 220px; }
}

@media (max-width: 480px) {
	.footer-main { grid-template-columns: 1fr; padding: 28px 16px; }
	.footer-col:nth-child(2),
	.footer-col:nth-child(3),
	.footer-col:nth-child(4) { grid-column: auto; border-right: 0 !important; border-top: 1px solid var(--border); padding: 24px 0 !important; }
	.footer-newsletter { padding: 28px 16px; }
	.footer-bottom { padding: 18px 16px; }
	.footer-trust { padding: 18px 16px; }
	.newsletter-copy h3 { font-size: 20px; }
	.footer-brand-logo img { max-width: 190px; }
	.footer-brand-para { font-size: 12.5px; line-height: 1.8; }
	.pay-badge span { display: none; }
}
