.hgvp-christmas {
	--hgvp-primary: #b82b42;
	--hgvp-primary-light: #f4d493;
	--hgvp-bg: #080f0d;
	--hgvp-card: #111b17;
	--hgvp-muted: #b9c4bc;
	--hgvp-border: rgba(221, 184, 112, .25);
	background: #080f0d;
}
.hgvp-christmas .hgvp-main { background: radial-gradient(ellipse at 0 35%, rgba(18, 81, 53, .13), transparent 60%); }
.hgvp-xmas-announcement { position: relative; background: #10382a; border-bottom: 1px solid #7d6640; color: #f9e6bd; font-size: 12px; }
.hgvp-xmas-announcement-inner { min-height: 43px; display: flex; justify-content: center; align-items: center; gap: 25px; padding-block: 8px; }
.hgvp-xmas-announcement a { font-weight: 800; color: #fff2d4; text-decoration: underline; text-underline-offset: 4px; white-space: nowrap; }
.hgvp-xmas-star { display: inline-block; margin-right: 7px; color: #ffd98b; }
.hgvp-xmas-lights { position: fixed; inset: 0 0 auto; height: 17px; z-index: 60; display: flex; justify-content: space-around; pointer-events: none; border-top: 2px solid #294b35; overflow: hidden; }
.admin-bar .hgvp-xmas-lights { top: 32px; }
.hgvp-xmas-lights i { position: relative; width: 5px; height: 9px; margin-top: 3px; flex: 0 0 auto; border-radius: 45% 45% 50% 50%; background: #ffd68c; box-shadow: 0 0 8px #ffce72; animation: hgvp-xmas-twinkle 4s ease-in-out infinite alternate; }
.hgvp-xmas-lights i::before { content: ""; position: absolute; width: 3px; height: 4px; top: -4px; left: 1px; background: #356543; }
.hgvp-xmas-lights i:nth-child(3n) { background: #f07278; box-shadow: 0 0 9px #f05564; animation-delay: -1.3s; }
.hgvp-xmas-lights i:nth-child(3n + 1) { background: #8ad9a6; box-shadow: 0 0 9px #63c791; animation-delay: -2.6s; }
.hgvp-christmas .hgvp-header { background: rgba(9, 23, 17, .94); border-color: rgba(224, 186, 120, .3); }
.hgvp-christmas .hgvp-menu-sub, .hgvp-christmas .hgvp-menu.is-open { background: #111e17; }
.hgvp-christmas .hgvp-button { border-color: #ca5060; background: linear-gradient(135deg, #c73a50, #96223a); box-shadow: 0 7px 25px rgba(157, 33, 54, .22); }
.hgvp-christmas .hgvp-button:hover { background: #d24759; box-shadow: 0 8px 28px rgba(186, 48, 68, .35); }
.hgvp-christmas .hgvp-button-ghost { border-color: #b79a64; background: rgba(11, 35, 25, .6); }
.hgvp-christmas .hgvp-button-light { color: #612332 !important; background: #fff0cf; border-color: #fff0cf; }
.hgvp-christmas .hgvp-hero { isolation: isolate; background-color: #091a12; background-image: radial-gradient(ellipse at 50% 20%, rgba(24, 100, 59, .4), transparent 65%), linear-gradient(130deg, #0c251b, #080f0d 75%); }
.hgvp-christmas .hgvp-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: url("christmas-ornaments.svg") center top / min(1450px, 130%) auto no-repeat; opacity: .85; }
.hgvp-christmas .hgvp-hero h1, .hgvp-christmas .hgvp-page-hero h1 { background-image: linear-gradient(110deg, #fff9ec 15%, #f9e2ab 65%, #d7ae60); }
.hgvp-christmas .hgvp-hero .hgvp-kicker::before { content: "\2726"; padding-right: 9px; }
.hgvp-christmas .hgvp-orb-one { background: rgba(26, 116, 63, .15); }
.hgvp-christmas .hgvp-orb-two { background: rgba(172, 45, 58, .13); }
.hgvp-christmas .hgvp-page-hero { position: relative; background-color: #0b1b14; background-image: url("christmas-ornaments.svg"), radial-gradient(ellipse at center, #153626, #0a1410); background-position: center top; background-size: max(100%, 900px) auto, cover; background-repeat: no-repeat; border-bottom: 1px solid var(--hgvp-border); }
.hgvp-christmas .hgvp-section-muted { background: linear-gradient(180deg, rgba(20, 72, 47, .16), rgba(8, 15, 13, .3)); }
.hgvp-christmas .hgvp-card, .hgvp-christmas .hgvp-service-card, .hgvp-christmas .hgvp-review-card { border-top-color: #b89a64; background-color: #101b15; }
.hgvp-christmas .hgvp-card-icon { border-color: var(--hgvp-border); color: #eed29b; background: #183b29; box-shadow: none; }
.hgvp-christmas .hgvp-cta { position: relative; background: radial-gradient(ellipse at top, rgba(214, 158, 65, .13), transparent 70%), linear-gradient(125deg, #16422c, #0e281c); border-block: 1px solid #6d5b35; }
.hgvp-christmas .hgvp-cta h2::before { content: "\2726"; display: block; color: #e9c578; font-size: 28px; margin-bottom: 14px; }
.hgvp-christmas .hgvp-footer { position: relative; border-top: 1px solid #8c7140; background: #0b1711; }
.hgvp-christmas .hgvp-footer::before { content: ""; display: block; height: 70px; margin: -70px 0 24px; pointer-events: none; background: url("christmas-ornaments.svg") center 0 / 850px auto repeat-x; opacity: .8; }
.hgvp-xmas-spotlight { position: relative; isolation: isolate; display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-bottom: 28px; padding: 30px 34px; border: 1px solid #917843; border-radius: 20px; background: radial-gradient(ellipse at 0 0, #1a4d32, transparent 70%), linear-gradient(120deg, #122b1d, #161a11); overflow: hidden; }
.hgvp-xmas-spotlight::after { content: "\2726"; position: absolute; right: 18%; top: -40px; z-index: -1; font-size: 180px; line-height: 1; color: rgba(232, 194, 114, .07); pointer-events: none; }
.hgvp-xmas-spotlight h2 { margin: 7px 0 8px; font-size: clamp(23px, 3vw, 34px); color: #ffedc5; letter-spacing: -.035em; line-height: 1.15; }
.hgvp-xmas-spotlight p { margin: 0; max-width: 560px; color: #c2cfbf; font-size: 14px; }
.hgvp-xmas-spotlight > a { flex-shrink: 0; }
.hgvp-christmas .hgvp-xmas-featured { border-color: #c5a15e; box-shadow: 0 0 0 1px rgba(199, 163, 88, .12), 0 10px 35px rgba(10, 61, 35, .22); }
.hgvp-christmas .hgvp-xmas-featured .hgvp-portfolio-copy { background: linear-gradient(145deg, #152c20, #111b15); }
.hgvp-christmas .hgvp-xmas-featured .hgvp-play { background: #a82c42; box-shadow: 0 0 0 5px rgba(245, 211, 147, .2); }
.hgvp-christmas-filtered .hgvp-portfolio-grid { max-width: 860px; margin-inline: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hgvp-xmas-badge { position: absolute; left: 12px; bottom: 12px; max-width: calc(100% - 24px); display: inline-flex; align-items: center; gap: 6px; padding: 7px 11px; border: 1px solid #e3be77; border-radius: 8px; background: #123e2a; color: #ffe3a8; font: 800 11px/1.3 "DM Sans", sans-serif; box-shadow: 0 3px 15px rgba(0, 0, 0, .25); }
.hgvp-xmas-badge::before { content: "\2726"; }
.hgvp-christmas .hgvp-filters .hgvp-xmas-filter { border-color: #9c824c; color: #f3d696; background: #123521; }
.hgvp-christmas .hgvp-filters .hgvp-xmas-filter::before { content: "\2726"; padding-right: 6px; }
.hgvp-christmas .hgvp-filters .hgvp-xmas-filter.is-active { background: #f0d295; color: #183a27; }
.hgvp-xmas-snow { position: fixed; inset: 0; z-index: 45; overflow: hidden; pointer-events: none; contain: strict; }
.hgvp-xmas-snow i { position: absolute; top: -10px; left: var(--x); width: var(--size); height: var(--size); border-radius: 50%; background: #fff; opacity: var(--opacity); animation: hgvp-xmas-snowfall var(--duration) var(--delay) linear infinite; }
.hgvp-xmas-snow-toggle { position: fixed; left: 16px; bottom: max(16px, env(safe-area-inset-bottom)); z-index: 49; display: inline-flex; align-items: center; gap: 7px; min-height: 36px; padding: 7px 12px; border: 1px solid #779785; border-radius: 999px; background: #10251c; color: #ecf5ed; font: 600 11px/1.2 "DM Sans", sans-serif; cursor: pointer; box-shadow: 0 3px 15px #0003; }
.hgvp-xmas-snow-toggle[hidden] { display: none; }
.hgvp-xmas-snow-toggle > span:first-child { font-size: 18px; color: #b6e2ca; }
.hgvp-xmas-snow-toggle:focus-visible, .hgvp-xmas-announcement a:focus-visible { outline: 2px solid #ffda89; outline-offset: 4px; }
.hgvp-xmas-snow-paused .hgvp-xmas-snow { visibility: hidden; }
.hgvp-xmas-snow-paused .hgvp-xmas-snow i, .hgvp-xmas-snow-paused .hgvp-xmas-lights i { animation-play-state: paused; }
.hgvp-overlay-open .hgvp-xmas-snow, .hgvp-overlay-open .hgvp-xmas-snow-toggle, .hgvp-assistant-open .hgvp-xmas-snow-toggle { visibility: hidden; }
.hgvp-overlay-open .hgvp-xmas-snow i { animation-play-state: paused; }
@keyframes hgvp-xmas-snowfall { from { transform: translate3d(0, -12px, 0); } to { transform: translate3d(var(--drift), calc(100vh + 20px), 0); } }
@keyframes hgvp-xmas-twinkle { from { opacity: .55; } to { opacity: 1; } }
@media (max-width: 782px) { .admin-bar .hgvp-xmas-lights { top: 46px; } }
@media (max-width: 680px) {
	.hgvp-xmas-announcement-inner { min-height: 52px; flex-direction: column; gap: 1px; padding-block: 7px; font-size: 11px; }
	.hgvp-xmas-announcement a { font-size: 10px; }
	.hgvp-xmas-lights i:nth-child(even) { display: none; }
	.hgvp-christmas .hgvp-hero::before { background-size: 100% auto; opacity: .9; }
	.hgvp-christmas .hgvp-page-hero { background-size: 100% auto, cover; }
	.hgvp-christmas-filtered .hgvp-portfolio-grid { grid-template-columns: 1fr; }
	.hgvp-xmas-spotlight { align-items: flex-start; flex-direction: column; gap: 18px; padding: 23px; }
	.hgvp-xmas-spotlight p { font-size: 13px; }
	.hgvp-xmas-spotlight > a { width: 100%; }
	.hgvp-xmas-snow-toggle { bottom: max(12px, env(safe-area-inset-bottom)); left: 10px; min-height: 36px; padding: 7px 10px; }
	.hgvp-christmas .hgvp-footer::before { background-size: 650px auto; }
}
@media (prefers-reduced-motion: reduce) {
	.hgvp-xmas-lights i { animation: none; }
	.hgvp-xmas-snow i { animation-duration: 40s; }
}
@media print { .hgvp-xmas-lights, .hgvp-xmas-snow, .hgvp-xmas-snow-toggle, .hgvp-xmas-announcement { display: none !important; } }
