html.is-quote-entry-boot, html.is-customer-quote-theme { background: #021720; color-scheme: dark; }
.is-customer-quote-theme body { background-color: #021720; }
.is-quote-entry-boot body, .quote-entry-loading {
  background: radial-gradient(ellipse at 50% 30%, #164e5b 0, #072d3a 48%, #011721 100%);
}
.is-quote-entry-boot :is(.sidebar, .topbar, .global-network-banner, .global-action-banner, .mobile-tabbar) { display: none !important; }
.is-quote-entry-boot .app-shell { grid-template-columns: 1fr; }
.is-quote-entry-boot .workspace { background: transparent; }
.quote-entry-loading { position: fixed; inset: 0; margin: 0; }

/* The white payment dialog keeps a light palette inside the dark quote footer. */
[data-public-zelle-dialog] {
  --navy: #143a56; --deep: #0b2538; --ink: #17212b; --muted: #425466; --slate: #425466;
  color-scheme: light;
}
.quote-public-card.is-public-portal .quote-zelle-dialog[data-public-zelle-dialog] .quote-zelle-dialog-card span {
  color: var(--slate);
}
[data-public-zelle-dialog] .quote-zelle-dialog-card p { font-size: 14px; line-height: 1.5; }
[data-public-zelle-dialog] .field > span { font-size: 12px; }
[data-public-zelle-dialog] input {
  color: var(--ink); background: #fff; border-color: #718391; font-size: 16px;
}
[data-public-zelle-dialog] input::placeholder { color: var(--slate); opacity: 1; }
[data-public-zelle-dialog] .icon-button { color: var(--navy); background: #edf3f7; border-color: #718391; }
.quote-public-card.is-public-portal .quote-zelle-dialog[data-public-zelle-dialog] .button.primary {
  color: #fff; background: var(--navy); border-color: var(--navy);
}
.quote-public-card.is-public-portal .quote-zelle-dialog[data-public-zelle-dialog] .button.primary:hover {
  background: var(--deep); border-color: var(--deep);
}
.quote-public-card.is-public-portal .quote-zelle-dialog[data-public-zelle-dialog] .button.secondary {
  color: var(--navy); background: #fff; border-color: #718391;
}
[data-public-zelle-dialog] :is(input, button):focus-visible { outline: 2px solid var(--navy); outline-offset: 2px; }

.christmas-quote-welcome {
  position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; height: 100dvh; max-height: none;
  margin: 0; padding: max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left)); border: 0; color: #fff9e9; background: transparent;
  overflow: auto; overscroll-behavior: contain; box-sizing: border-box;
}
.christmas-quote-welcome::backdrop { background: #021720; }
.christmas-quote-welcome[open] { display: grid; place-items: center; }
.christmas-quote-welcome [hidden] { display: none; }
.christmas-welcome-scene, .christmas-welcome-snow { position: fixed; inset: 0; overflow: hidden; pointer-events: none; }
.christmas-welcome-door {
  position: absolute; top: 0; bottom: 0; width: 50.1%;
  background: radial-gradient(ellipse at 50% 30%, #164e5b 0, #072d3a 48%, #011721 100%);
  background-size: 200% 100%;
}
.christmas-welcome-door:first-child { left: 0; background-position: left center; }
.christmas-welcome-door:last-child { right: 0; background-position: right center; }
.christmas-welcome-door::after { content: ""; position: absolute; top: 0; bottom: 0; width: 2px; opacity: 0; background: linear-gradient(transparent, #efd68b 35%, #fff3c5 55%, transparent); box-shadow: 0 0 24px 3px #efd68b55; }
.christmas-welcome-door:first-child::after { right: 0; }
.christmas-welcome-door:last-child::after { left: 0; }
.christmas-welcome-content { position: relative; z-index: 2; width: min(100%, 640px); margin: auto; padding: 32px 0; text-align: center; }
.christmas-welcome-logo { display: block; width: clamp(120px, 25vw, 180px); height: auto; margin: 0 auto 24px; filter: drop-shadow(0 8px 24px #00121880); }
.christmas-welcome-eyebrow { margin: 0 0 16px; color: #f0d493; font: 700 12px/1.6 system-ui, sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.christmas-welcome-content h1 { margin: 0; color: #fff9e9; font: 400 clamp(38px, 7vw, 72px)/1.1 Georgia, serif; overflow-wrap: anywhere; }
.christmas-welcome-content h1:focus { outline: none; }
.christmas-quote-welcome:not(.is-started):not(.is-entering) { cursor: pointer; }
.christmas-welcome-invitation h1 { animation: christmas-invitation-focus 3200ms cubic-bezier(.3,.45,.3,1) both; }
.christmas-invitation-enter { display: block; min-width: 200px; min-height: 48px; margin: 18px auto 0; padding: 10px 24px; border: 0; border-radius: 8px; background: transparent; color: #c4d0ce; font: 400 14px/1.5 system-ui, sans-serif; cursor: pointer; animation: christmas-greeting-arrive 1200ms ease-out 2200ms both; }
.christmas-invitation-enter:hover { color: #fff9e9; }
.christmas-invitation-enter:focus { outline: none; box-shadow: none; }
.christmas-invitation-enter:focus-visible { animation: none; color: #fff9e9; text-decoration: underline; text-underline-offset: 6px; }
.christmas-welcome-gold-reveal { position: fixed; inset: 0; z-index: 4; overflow: hidden; pointer-events: none; opacity: 0; background: radial-gradient(ellipse at center, #80602b22, #021720dd 75%); }
.christmas-welcome-gold-reveal::before { content: ""; position: absolute; inset: -30% -80%; background: linear-gradient(110deg, transparent 43%, #c6a05b18 47%, #e7c77d55 50%, #c6a05b18 53%, transparent 57%); }
.is-entering .christmas-welcome-gold-reveal { animation: christmas-gold-reveal 1350ms ease-in-out both; }
.is-entering .christmas-welcome-gold-reveal::before { animation: christmas-gold-sweep 1350ms cubic-bezier(.25,.55,.25,1) both; }
.is-entering .christmas-welcome-invitation { pointer-events: none; animation: christmas-invitation-depart 480ms ease-in both; }
.is-entering .christmas-welcome-greeting { pointer-events: none; }
@keyframes christmas-gold-reveal { 0%, 100% { opacity: 0; } 36%, 46% { opacity: 1; } }
@keyframes christmas-gold-sweep { from { transform: translate3d(-28%,0,0); } to { transform: translate3d(28%,0,0); } }
@keyframes christmas-invitation-depart { to { opacity: 0; transform: translate3d(0,-12px,0); } }
.christmas-welcome-greeting { animation: christmas-greeting-arrive 900ms cubic-bezier(.2,.65,.2,1) both; }
.christmas-welcome-ribbon { display: block; width: 160px; height: 45px; margin: 14px auto -16px; overflow: visible; fill: none; stroke: #e7c77d; stroke-width: 1.5; stroke-linecap: round; opacity: .7; }
.christmas-ribbon-knot { fill: #e7c77d; }
@keyframes christmas-invitation-focus { from { filter: blur(12px); opacity: 0; transform: translate3d(0,8px,0); } to { filter: blur(0); opacity: 1; transform: translate3d(0,0,0); } }
@keyframes christmas-greeting-arrive { from { opacity: 0; transform: translate3d(0,12px,0); } to { opacity: 1; transform: translate3d(0,0,0); } }
.christmas-welcome-content #christmas-welcome-description { margin: 20px 0 8px; color: #fff9e9; font: 500 clamp(19px, 4vw, 25px)/1.4 system-ui, sans-serif; }
.christmas-welcome-note { margin: 0 auto 30px; max-width: 340px; color: #bdd5d6; font: 400 15px/1.6 system-ui, sans-serif; }
.christmas-welcome-open { display: flex; align-items: center; justify-content: center; gap: 24px; width: min(100%, 320px); min-height: 58px; margin: 0 auto; padding: 14px 20px; border: 1px solid #f2d27d; border-radius: 14px; background: linear-gradient(115deg, #e8bd60, #ffe3a0 55%, #edc96d); color: #052c38; font: 800 17px/1.4 system-ui, sans-serif; cursor: pointer; box-shadow: 0 5px 26px #edc96d18; }
.christmas-welcome-open:hover { background: #ffe2a0; }
.is-cleaning-quote .christmas-welcome-eyebrow { color: #a4d8ce; }
.is-cleaning-quote .christmas-welcome-open { border-color: #9adbc6; background: linear-gradient(115deg, #a4d8bc, #d3edce 55%, #b5ddc3); color: #123d37; box-shadow: 0 5px 26px #9adbc618; }
.is-cleaning-quote .christmas-welcome-open:hover { background: #d3edce; }
.is-cleaning-quote .christmas-welcome-gold-reveal::before { background: linear-gradient(110deg, transparent 43%, #88bfb218 47%, #b8ddd155 50%, #88bfb218 53%, transparent 57%); }
.is-cleaning-quote .christmas-welcome-door::after { background: linear-gradient(transparent, #a4d8ce 35%, #e3f7ee 55%, transparent); box-shadow: 0 0 24px 3px #a4d8ce55; }
.christmas-welcome-open:focus-visible, .christmas-quote-music:focus-visible { outline: 3px solid #fff9e9; outline-offset: 5px; }
.christmas-welcome-lights { position: fixed; z-index: 1; top: 0; left: 5%; right: 5%; display: flex; justify-content: space-between; border-top: 1px solid #638685; border-radius: 0 0 50% 50%; padding-top: 7px; pointer-events: none; }
.christmas-welcome-lights i { width: 6px; height: 11px; border-radius: 45% 45% 60% 60%; background: #f4da92; box-shadow: 0 0 14px 4px #f0cb7033; }
.christmas-welcome-lights i:nth-child(3n) { background: #e87477; box-shadow: 0 0 14px 4px #e8747726; }
.christmas-welcome-snow { z-index: 1; }
.christmas-welcome-snow i {
  position: absolute; top: 0; left: var(--snow-x); width: var(--snow-size); height: var(--snow-size);
  border-radius: 50%; background: radial-gradient(circle, #fff 0 22%, #eff8ffcc 40%, #eff8ff00 75%);
  opacity: 0; animation: christmas-welcome-snowfall var(--snow-time) var(--snow-delay) linear infinite;
}
@keyframes christmas-welcome-snowfall {
  0% { transform: translate3d(0, -10vh, 0); opacity: 0; }
  8% { opacity: var(--snow-opacity); }
  25% { transform: translate3d(var(--snow-drift), 20vh, 0); }
  50% { transform: translate3d(calc(var(--snow-drift) * -.6), 50vh, 0); }
  75% { transform: translate3d(calc(var(--snow-drift) * .5), 80vh, 0); }
  88% { opacity: var(--snow-opacity); }
  100% { transform: translate3d(var(--snow-drift), 110vh, 0); opacity: 0; }
}
.christmas-quote-welcome.is-opening::backdrop { background: transparent; }
.christmas-quote-welcome.is-opening .christmas-welcome-door { animation: christmas-door-left 1100ms cubic-bezier(.22,.75,.2,1) both; }
.christmas-quote-welcome.is-opening .christmas-welcome-door:last-child { animation-name: christmas-door-right; }
.christmas-quote-welcome.is-opening .christmas-welcome-door::after { animation: christmas-door-edge 1100ms ease both; }
.christmas-quote-welcome.is-opening .christmas-welcome-content,
.christmas-quote-welcome.is-opening .christmas-welcome-lights { pointer-events: none; animation: christmas-greeting-depart 340ms ease-in both; }
.christmas-quote-welcome.is-opening .christmas-welcome-snow { animation: christmas-snow-reveal 1100ms ease-in both; }
.christmas-quote-welcome.is-opening .christmas-ribbon-left { animation: christmas-ribbon-left 340ms ease-in both; }
.christmas-quote-welcome.is-opening .christmas-ribbon-right { animation: christmas-ribbon-right 340ms ease-in both; }
.christmas-quote-welcome.is-opening .christmas-ribbon-knot { animation: christmas-ribbon-knot 180ms ease-out both; }
@keyframes christmas-ribbon-left { to { transform: translate3d(-100px,-12px,0) rotate(-8deg); opacity: 0; } }
@keyframes christmas-ribbon-right { to { transform: translate3d(100px,-12px,0) rotate(8deg); opacity: 0; } }
@keyframes christmas-ribbon-knot { to { transform: scale(.5); opacity: 0; } }
@keyframes christmas-door-left { 0%, 12% { transform: translate3d(0,0,0); } 100% { transform: translate3d(-103%,0,0); } }
@keyframes christmas-door-right { 0%, 12% { transform: translate3d(0,0,0); } 100% { transform: translate3d(103%,0,0); } }
@keyframes christmas-door-edge { 0% { opacity: 0; } 22%, 70% { opacity: .85; } 100% { opacity: 0; } }
@keyframes christmas-greeting-depart { to { transform: translate3d(0,-22px,0) scale(.97); opacity: 0; } }
@keyframes christmas-snow-reveal { to { transform: translate3d(0,8vh,0) scale(1.16); opacity: 0; } }
.christmas-quote-welcome.is-still .christmas-welcome-snow i { animation-play-state: paused; }
.christmas-quote-music { display: block; width: fit-content; min-height: 44px; margin-top: 8px; padding: 6px 12px; border: 1px solid #9b854a; border-radius: 20px; background: #103139; color: #efd59a; font: 600 12px/1.4 system-ui, sans-serif; cursor: pointer; }
.christmas-quote-music:focus-visible { outline-color: #efd59a; }
@media (max-width: 380px), (max-height: 680px) {
  .christmas-quote-welcome { padding: max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left)); }
  .christmas-welcome-content { padding: 18px 0; }
  .christmas-welcome-logo { width: 110px; margin-bottom: 18px; }
  .christmas-welcome-eyebrow { font-size: 10px; margin-bottom: 12px; }
  .christmas-welcome-content #christmas-welcome-description { margin-top: 14px; }
  .christmas-welcome-note { margin-bottom: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .christmas-welcome-snow i, .christmas-welcome-invitation h1, .christmas-invitation-enter, .christmas-welcome-greeting, .christmas-quote-welcome.is-entering *, .christmas-quote-welcome.is-opening * { animation: none !important; }
}
@media print { .christmas-quote-welcome, .christmas-quote-welcome::backdrop, .christmas-quote-music { display: none !important; } }

.has-welcome-video:not(.is-started):not(.is-entering) { cursor: default; }
.has-welcome-video .christmas-welcome-invitation h1 { animation: none; font-size: clamp(32px, 6vw, 56px); }
.christmas-welcome-video { margin-top: 24px; }
.christmas-welcome-video-frame {
  position: relative; width: 100%; aspect-ratio: 16 / 9; max-height: 44dvh;
  overflow: hidden; border: 1px solid #688388; border-radius: 18px; background: #021219;
  box-shadow: 0 18px 48px #0005;
}
.christmas-welcome-video video { display: block; width: 100%; height: 100%; object-fit: contain; }
.christmas-welcome-video-play {
  position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px;
  width: 100%; border: 0; border-radius: inherit; background: linear-gradient(#02172066, #021720d9); color: #fff9e9; cursor: pointer;
}
.christmas-welcome-video-play span {
  display: grid; place-items: center; width: 64px; height: 64px; padding-left: 4px; border-radius: 50%;
  background: #f3d58d; color: #052c38; font-size: 24px; box-shadow: 0 5px 28px #f3d58d33;
}
.christmas-welcome-video-play strong { font: 700 16px/1.4 system-ui, sans-serif; }
.christmas-welcome-video-status { min-height: 1.5em; margin: 16px 0 12px; color: #d1dfdf; font: 400 14px/1.5 system-ui, sans-serif; }
.christmas-welcome-video-next {
  display: block; min-width: 180px; min-height: 48px; margin: 0 auto; padding: 10px 24px;
  border: 1px solid transparent; border-radius: 12px; background: transparent; color: #d1dfdf;
  font: 600 15px/1.5 system-ui, sans-serif; cursor: pointer; text-decoration: underline; text-underline-offset: 4px;
}
.christmas-welcome-video-next.is-ready { border-color: #f2d27d; background: #f3d58d; color: #052c38; font-weight: 800; text-decoration: none; }
.christmas-welcome-video-play:focus-visible { outline: 3px solid #fff9e9; outline-offset: -5px; }
.christmas-welcome-video-next:focus-visible { outline: 3px solid #fff9e9; outline-offset: 3px; }
@media (max-width: 420px) {
  .has-welcome-video .christmas-welcome-invitation { padding: 12px 0; }
  .christmas-welcome-video { margin-top: 20px; }
  .christmas-welcome-video-play span { width: 52px; height: 52px; font-size: 21px; }
  .christmas-welcome-video-play { gap: 10px; }
}
@media (max-height: 450px) {
  .has-welcome-video .christmas-welcome-invitation { padding: 0; }
  .has-welcome-video .christmas-welcome-invitation h1 { font-size: 28px; }
  .christmas-welcome-video { margin-top: 12px; }
  .christmas-welcome-video-status { margin: 8px 0 2px; }
  .christmas-welcome-video-next { min-height: 44px; }
}
