:root {
  --navy-950: #07131f;
  --navy-900: #0b1d2c;
  --navy-800: #123149;
  --green-700: #13633f;
  --green-600: #1b7a4d;
  --green-100: #dcf6e8;
  --gold-500: #e7ad35;
  --gold-100: #fff2ce;
  --ink: #10202e;
  --muted: #5c6a75;
  --line: #dce4e8;
  --paper: #ffffff;
  --mist: #f4f8f7;
  --shadow: 0 22px 50px rgba(7, 25, 38, .14);
  --radius: 1.25rem;
  --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, .button { touch-action: manipulation; }
:focus-visible { outline: 3px solid var(--gold-500); outline-offset: 3px; }
.skip-link {
  position: fixed;
  z-index: 1000;
  top: .5rem;
  left: .5rem;
  transform: translateY(-150%);
  padding: .75rem 1rem;
  color: #fff;
  background: var(--navy-950);
  border-radius: .5rem;
}
.skip-link:focus { transform: translateY(0); }
.container { width: min(var(--max), calc(100% - 2rem)); margin-inline: auto; }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin: 0 0 1rem;
  color: var(--green-700);
  font-weight: 800;
  font-size: .82rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 1.75rem; height: 2px; background: currentColor; }
h1, h2, h3, h4 { margin: 0 0 .7rem; line-height: 1.08; letter-spacing: -.035em; }
h1 { font-size: clamp(2.65rem, 6.4vw, 5.4rem); }
h2 { font-size: clamp(2rem, 4vw, 3.35rem); }
h3 { font-size: clamp(1.15rem, 2.2vw, 1.45rem); }
p { margin: 0 0 1rem; }
.lead { max-width: 48rem; color: var(--muted); font-size: clamp(1.05rem, 2vw, 1.25rem); }
.section { padding: clamp(4.5rem, 8vw, 7.5rem) 0; }
.section--soft { background: var(--mist); }
.section--dark { color: #fff; background: var(--navy-950); }
.section-head { display: grid; gap: 1.25rem; margin-bottom: 2.5rem; }
.section-head p { max-width: 45rem; color: var(--muted); }
.section--dark .section-head p { color: #c4d2dc; }
.button-row { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.5rem; }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 3.25rem;
  padding: .85rem 1.25rem;
  border: 1px solid transparent;
  border-radius: .75rem;
  text-decoration: none;
  font-weight: 800;
  cursor: pointer;
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.button:hover { transform: translateY(-2px); }
.button--primary { color: #fff; background: var(--green-600); box-shadow: 0 12px 25px rgba(27, 122, 77, .25); }
.button--primary:hover { background: var(--green-700); }
.button--gold { color: var(--navy-950); background: var(--gold-500); }
.button--ghost { color: #fff; border-color: rgba(255,255,255,.42); background: rgba(7,19,31,.25); }
.button--light { color: var(--navy-900); border-color: var(--line); background: #fff; }

.site-header {
  position: sticky;
  z-index: 100;
  top: 0;
  color: #fff;
  background: rgba(7, 19, 31, .96);
  border-bottom: 1px solid rgba(255,255,255,.1);
  backdrop-filter: blur(14px);
}
.topline { color: #dce8ef; background: #04101a; font-size: .82rem; }
.topline .container { display: flex; justify-content: space-between; gap: 1rem; padding-block: .42rem; }
.topline a { color: #fff; font-weight: 700; text-decoration: none; }
.navbar { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 5rem; }
.brand { display: inline-flex; align-items: center; gap: .75rem; color: #fff; text-decoration: none; }
.brand img { width: 3rem; height: 3rem; object-fit: contain; }
.brand strong { display: block; max-width: 14rem; font-size: .95rem; line-height: 1.1; letter-spacing: .02em; text-transform: uppercase; }
.brand span { display: block; margin-top: .2rem; color: #a9becb; font-size: .72rem; letter-spacing: .08em; }
.nav-links { display: flex; align-items: center; gap: 1.15rem; }
.nav-links a { color: #eaf1f4; font-size: .9rem; font-weight: 700; text-decoration: none; }
.nav-links a:hover, .nav-links a[aria-current="page"] { color: var(--gold-500); }
.nav-toggle { display: none; width: 3rem; height: 3rem; color: #fff; border: 1px solid rgba(255,255,255,.22); background: transparent; border-radius: .6rem; }

.hero {
  position: relative;
  min-height: 46rem;
  display: grid;
  align-items: center;
  color: #fff;
  overflow: hidden;
  isolation: isolate;
  background: var(--navy-950);
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background: url("/assets/year-round-property-care.jpg") center/cover no-repeat;
}
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(4,16,26,.96) 0%, rgba(4,16,26,.86) 38%, rgba(4,16,26,.45) 67%, rgba(4,16,26,.18) 100%);
}
.hero-content { max-width: 48rem; padding: 7rem 0 8rem; }
.hero .eyebrow { color: #79dea6; }
.hero h1 span { color: var(--gold-500); }
.hero .lead { color: #e4edf2; }
.proof-row { display: flex; flex-wrap: wrap; gap: 1rem 1.6rem; margin-top: 2.2rem; color: #e7eff3; font-size: .93rem; }
.proof-row strong { color: #fff; }
.proof-item { display: inline-flex; align-items: center; gap: .45rem; }
.proof-item::before { content: "✓"; display: grid; place-items: center; width: 1.45rem; height: 1.45rem; color: var(--navy-950); background: var(--gold-500); border-radius: 50%; font-weight: 900; }

.season-bar { position: relative; z-index: 2; margin-top: -3.4rem; }
.season-grid { display: grid; grid-template-columns: repeat(4, 1fr); background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; }
.season-card { min-height: 8.4rem; padding: 1.45rem; border-right: 1px solid var(--line); }
.season-card:last-child { border-right: 0; }
.season-card span { display: block; color: var(--green-700); font-size: .78rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.season-card strong { display: block; margin-top: .5rem; font-size: 1.05rem; }
.season-card a { display: inline-block; margin-top: .5rem; color: var(--green-700); font-size: .88rem; font-weight: 800; }

.cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.card {
  display: flex;
  flex-direction: column;
  padding: 1.55rem;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 1rem;
  box-shadow: 0 10px 24px rgba(7,25,38,.06);
}
.card-icon { display: grid; place-items: center; width: 3rem; height: 3rem; margin-bottom: 1.25rem; color: var(--green-700); background: var(--green-100); border-radius: .8rem; font-size: 1.45rem; }
.card p { color: var(--muted); }
.card a { margin-top: auto; color: var(--green-700); font-weight: 900; }
.card--featured { color: #fff; background: var(--navy-900); border-color: var(--navy-900); }
.card--featured p { color: #c7d4dc; }
.card--featured a { color: #ffd872; }

.split { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2.2rem, 6vw, 5.5rem); align-items: center; }
.feature-panel { padding: 2rem; color: #fff; background: var(--navy-900); border-radius: var(--radius); box-shadow: var(--shadow); }
.feature-list { display: grid; gap: 1rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.feature-list li { display: grid; grid-template-columns: 2.2rem 1fr; gap: .8rem; }
.feature-list li::before { content: "✓"; display: grid; place-items: center; width: 2rem; height: 2rem; color: var(--navy-950); background: var(--gold-500); border-radius: 50%; font-weight: 900; }
.feature-list strong { display: block; }
.feature-list span { color: #bdccd5; font-size: .92rem; }

.numbers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.number { padding: 1.6rem; text-align: center; background: #fff; border: 1px solid var(--line); border-radius: 1rem; }
.number strong { display: block; color: var(--green-700); font-size: 2.25rem; line-height: 1; }
.number span { display: block; margin-top: .55rem; color: var(--muted); font-weight: 700; }

.area-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; }
.area-link { padding: 1rem; color: #fff; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); border-radius: .75rem; text-decoration: none; font-weight: 800; }
.area-link:hover { border-color: var(--gold-500); background: rgba(255,255,255,.12); }

.quote-wrap { display: grid; grid-template-columns: .9fr 1.1fr; gap: 2rem; padding: 2rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.field { display: grid; gap: .35rem; }
.field--wide { grid-column: 1 / -1; }
label { color: #283a47; font-weight: 800; font-size: .9rem; }
input, select, textarea { width: 100%; padding: .8rem .9rem; color: var(--ink); background: #fff; border: 1px solid #bdcbd2; border-radius: .6rem; }
textarea { min-height: 7rem; resize: vertical; }
.form-note { margin: .8rem 0 0; color: var(--muted); font-size: .82rem; }
.form-status { margin-top: .8rem; font-weight: 800; }

.page-hero { padding: clamp(5.5rem, 10vw, 8rem) 0; color: #fff; background: radial-gradient(circle at 85% 20%, rgba(231,173,53,.22), transparent 28%), linear-gradient(135deg, var(--navy-950), var(--navy-800)); }
.page-hero .eyebrow { color: #7be0aa; }
.page-hero h1 { max-width: 54rem; font-size: clamp(2.6rem, 6vw, 4.8rem); }
.page-hero .lead { color: #dbe7ed; }
.breadcrumb { margin-bottom: 1.5rem; color: #b8cad5; font-size: .88rem; }
.breadcrumb a { color: #fff; }
.content-grid { display: grid; grid-template-columns: minmax(0, 1fr) 21rem; gap: 3rem; align-items: start; }
.prose { max-width: 48rem; }
.prose h2 { margin-top: 2.5rem; font-size: clamp(1.7rem, 3vw, 2.4rem); }
.prose h3 { margin-top: 1.8rem; }
.prose p, .prose li { color: #455661; }
.prose ul { padding-left: 1.2rem; }
.sidebar { position: sticky; top: 8rem; padding: 1.35rem; background: var(--mist); border: 1px solid var(--line); border-radius: 1rem; }
.sidebar ul { display: grid; gap: .65rem; margin: 1rem 0; padding: 0; list-style: none; }
.sidebar a { color: var(--green-700); font-weight: 800; }
.process { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; counter-reset: steps; }
.process-item { counter-increment: steps; padding: 1.4rem; background: #fff; border: 1px solid var(--line); border-radius: 1rem; }
.process-item::before { content: "0" counter(steps); display: block; margin-bottom: 1rem; color: var(--green-700); font-weight: 900; letter-spacing: .08em; }
.faq-list { display: grid; gap: .8rem; max-width: 52rem; }
.faq-list details { padding: 1rem 1.15rem; background: #fff; border: 1px solid var(--line); border-radius: .75rem; }
.faq-list summary { cursor: pointer; font-weight: 900; }
.faq-list details p { margin: .8rem 0 0; color: var(--muted); }

.site-footer { color: #d9e5eb; background: #04101a; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2rem; padding: 4rem 0 2.5rem; }
.footer-grid h3, .footer-grid h4 { color: #fff; }
.footer-grid p { color: #aebfca; }
.footer-grid ul { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.footer-grid a { color: #d9e5eb; text-decoration: none; }
.footer-grid a:hover { color: var(--gold-500); }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; padding: 1.25rem 0; color: #91a6b3; border-top: 1px solid rgba(255,255,255,.1); font-size: .82rem; }
.mobile-call { display: none; }

/* Seasonal holiday-lighting homepage */
.holiday-site {
  --holiday-red: #a92e35;
  --holiday-red-dark: #742028;
  --holiday-green: #0d5f42;
  --holiday-cream: #fffaf0;
  background: var(--holiday-cream);
}
.snowfall {
  position: fixed;
  z-index: 90;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.snowflake {
  position: absolute;
  top: -12vh;
  left: var(--snow-left);
  color: rgba(255,255,255,var(--snow-opacity));
  font-family: Georgia, "Times New Roman", serif;
  font-size: var(--snow-size);
  line-height: 1;
  text-shadow: 0 0 8px rgba(220,244,255,.85), 0 2px 4px rgba(5,34,49,.3);
  filter: blur(var(--snow-blur));
  animation: real-snowfall var(--snow-duration) linear var(--snow-delay) infinite;
  will-change: transform;
}
@keyframes real-snowfall {
  0% { transform: translate3d(0, -8vh, 0) rotate(0deg); }
  32% { transform: translate3d(var(--snow-drift), 32vh, 0) rotate(150deg); }
  68% { transform: translate3d(var(--snow-drift-back), 72vh, 0) rotate(330deg); }
  100% { transform: translate3d(var(--snow-drift-end), 118vh, 0) rotate(560deg); }
}
.holiday-site .section--soft { background: #f7f1e5; }
.holiday-header { background: rgba(4, 13, 19, .97); }
.holiday-header .topline { background: var(--holiday-red-dark); }
.holiday-header .topline .container span:first-child { color: #fff5d7; font-weight: 800; letter-spacing: .04em; }
.holiday-header .nav-links a:not(.button):hover { color: #ffd472; }

.holiday-hero {
  position: relative;
  min-height: 46rem;
  display: grid;
  align-items: center;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 75% 18%, rgba(245, 184, 65, .14), transparent 24rem),
    linear-gradient(135deg, #041019 0%, #0b2730 55%, #07151d 100%);
}
.holiday-glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: radial-gradient(circle, rgba(255, 217, 129, .7) 1px, transparent 1.5px);
  background-size: 54px 54px;
  opacity: .12;
  mask-image: linear-gradient(90deg, transparent, #000 62%, #000);
}
.holiday-hero-grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(19rem, .72fr);
  gap: clamp(2rem, 7vw, 6rem);
  align-items: center;
  padding-block: clamp(3.5rem, 7vw, 6rem);
}
.holiday-copy { padding-block: 2rem; }
.holiday-copy .eyebrow { color: #7be0aa; }
.holiday-copy h1 { max-width: 50rem; font-size: clamp(3.2rem, 6.8vw, 6.4rem); }
.holiday-copy h1 span { display: block; color: #ffd472; }
.holiday-copy .lead { max-width: 44rem; color: #e3edf0; }
.holiday-media {
  position: relative;
  width: min(100%, 27rem);
  justify-self: end;
  aspect-ratio: 9 / 16;
  max-height: 40rem;
  overflow: hidden;
  background: #06141d;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 1.5rem;
  box-shadow: 0 30px 80px rgba(0,0,0,.5), 0 0 0 10px rgba(255,255,255,.035);
}
.holiday-media video { width: 100%; height: 100%; display: block; object-fit: cover; }
.holiday-media::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 34%;
  pointer-events: none;
  background: linear-gradient(transparent, rgba(2,8,12,.92));
}
.video-toggle {
  position: absolute;
  z-index: 2;
  top: 1rem;
  right: 1rem;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .65rem .8rem;
  color: #fff;
  background: rgba(4,13,19,.76);
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 800;
  cursor: pointer;
  backdrop-filter: blur(10px);
}
.video-caption { position: absolute; z-index: 2; inset: auto 1.2rem 1.2rem; }
.video-caption strong { display: block; color: #fff; font-size: 1rem; }
.video-caption span { color: #ccd9df; font-size: .8rem; }

.booking-strip { color: #fff; background: var(--holiday-red); }
.booking-strip-inner { display: flex; align-items: center; justify-content: center; gap: 1rem; min-height: 4.4rem; text-align: center; }
.booking-strip a { color: #fff7d8; font-weight: 900; }
.christmas-countdown {
  padding: clamp(2.5rem, 5vw, 4.5rem) 0;
  color: #fff;
  background:
    radial-gradient(circle at 8% 20%, rgba(255,212,114,.18), transparent 18rem),
    linear-gradient(135deg, #08271f, #0b4b38);
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.countdown-wrap { display: grid; grid-template-columns: minmax(15rem, .8fr) minmax(24rem, 1.2fr); gap: clamp(1.5rem, 5vw, 4.5rem); align-items: center; }
.countdown-heading .eyebrow { color: #ffd472; }
.countdown-heading h2 { font-size: clamp(2rem, 4vw, 3.5rem); }
.countdown-heading > p:last-child { margin-bottom: 0; color: #cde2da; }
.countdown-clock { display: grid; grid-template-columns: repeat(4, 1fr); gap: .7rem; }
.countdown-clock > div { padding: 1.1rem .6rem; text-align: center; background: rgba(2,13,9,.36); border: 1px solid rgba(255,255,255,.18); border-radius: .9rem; box-shadow: inset 0 1px rgba(255,255,255,.08); }
.countdown-clock strong { display: block; color: #ffd472; font-size: clamp(2rem, 4.8vw, 4rem); font-variant-numeric: tabular-nums; line-height: .95; letter-spacing: -.05em; }
.countdown-clock span { display: block; margin-top: .55rem; color: #e7f1ed; font-size: .72rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.countdown-message { grid-column: 2; margin: -.5rem 0 0; color: #cde2da; text-align: center; font-size: .85rem; font-weight: 700; }
.grinch-promo {
  position: relative;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 18% 50%, rgba(255, 211, 103, .25), transparent 24rem),
    linear-gradient(125deg, #4a0e16 0%, #801f2b 62%, #a52c36 100%);
}
.grinch-promo::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(135deg, rgba(255,255,255,.035) 0 2px, transparent 2px 18px);
}
.grinch-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(18rem, .82fr) minmax(0, 1.18fr); align-items: center; min-height: 34rem; }
.grinch-art { align-self: end; display: grid; place-items: end center; }
.grinch-art img { width: min(100%, 35rem); max-height: 36rem; object-fit: contain; object-position: bottom center; filter: drop-shadow(0 25px 30px rgba(0,0,0,.35)); transform: translateY(1.8rem) scale(1.05); }
.grinch-copy { padding: clamp(4rem, 8vw, 7rem) 0 clamp(4rem, 8vw, 7rem) clamp(1rem, 5vw, 5rem); }
.grinch-copy h2 { max-width: 47rem; font-size: clamp(3rem, 6vw, 5.8rem); letter-spacing: -.055em; }
.grinch-copy h2 span { display: block; color: #ffd472; }
.grinch-copy > p:not(.mini-label) { max-width: 42rem; color: #f5e5e7; font-size: 1.1rem; }
.grinch-copy .button { margin-top: 1rem; }
.holiday-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; }
.holiday-card {
  position: relative;
  padding: 2rem;
  overflow: hidden;
  background: #fff;
  border: 1px solid #e2d9c8;
  border-radius: 1.2rem;
  box-shadow: 0 14px 32px rgba(31, 31, 20, .07);
}
.holiday-card-number { display: block; margin-bottom: 2.2rem; color: var(--holiday-green); font-weight: 900; letter-spacing: .14em; }
.holiday-card p { color: var(--muted); }
.holiday-card ul { display: grid; gap: .5rem; margin: 1.3rem 0 0; padding: 1.2rem 0 0; border-top: 1px solid var(--line); list-style: none; }
.holiday-card li::before { content: "✓"; margin-right: .55rem; color: var(--holiday-green); font-weight: 900; }
.holiday-card--featured { color: #fff; background: linear-gradient(155deg, #7e252c, #3f1117); border-color: transparent; transform: translateY(-.8rem); box-shadow: 0 20px 45px rgba(105, 28, 36, .25); }
.holiday-card--featured p { color: #f5dde0; }
.holiday-card--featured ul { border-color: rgba(255,255,255,.2); }
.holiday-card--featured li::before, .holiday-card--featured .holiday-card-number { color: #ffd472; }
.mini-label { margin-bottom: .75rem !important; color: #ffd472 !important; font-size: .75rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }

.section--holiday-dark { color: #fff; background: #061921; }
.section--holiday-dark .eyebrow { color: #7be0aa; }
.section--holiday-dark .section-head p { color: #c4d2d8; }
.holiday-process { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; overflow: hidden; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.14); border-radius: 1.2rem; }
.holiday-process article { padding: 1.7rem; background: #0a252f; }
.holiday-process article > span { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; margin-bottom: 2rem; color: #16201d; background: #ffd472; border-radius: 50%; font-weight: 900; }
.holiday-process p { margin-bottom: 0; color: #bfd0d7; }
.snow-service {
  position: relative;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 12% 20%, rgba(178, 226, 255, .28), transparent 19rem),
    linear-gradient(125deg, #0a3d5e, #0a6a80);
}
.snow-service::after { content: "❄"; position: absolute; right: -2rem; bottom: -7rem; color: rgba(255,255,255,.06); font-size: 30rem; line-height: 1; transform: rotate(12deg); }
.snow-service-grid { position: relative; z-index: 1; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.snow-service .eyebrow { color: #bfe9ff; }
.snow-service .lead { color: #e0f3fb; }
.snow-icon { display: grid; place-items: center; width: clamp(6rem, 12vw, 9rem); height: clamp(6rem, 12vw, 9rem); color: #0a5470; background: #e1f6ff; border: 8px solid rgba(255,255,255,.2); border-radius: 50%; font-size: clamp(3rem, 6vw, 5rem); box-shadow: 0 20px 45px rgba(1,25,43,.28); }
.snow-points { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.3rem; }
.snow-points span { padding: .45rem .7rem; color: #e7f8ff; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); border-radius: 999px; font-size: .84rem; font-weight: 800; }
.snow-action { display: grid; gap: .8rem; min-width: 14rem; text-align: center; }
.snow-action > a:last-child { color: #e0f4ff; font-weight: 800; }
.holiday-feature { background: linear-gradient(155deg, #0c4937, #05251c); }
.holiday-feature h3 { font-size: clamp(1.6rem, 3vw, 2.3rem); }
.holiday-quote-section { background: radial-gradient(circle at 10% 20%, rgba(255,212,114,.24), transparent 24rem), #f6edda; }
.holiday-quote { border-color: #e4d4b4; }
.holiday-site .button--primary { background: var(--holiday-red); box-shadow: 0 12px 25px rgba(126,37,44,.22); }
.holiday-site .button--primary:hover { background: var(--holiday-red-dark); }
.holiday-site .number strong, .holiday-site .eyebrow { color: var(--holiday-green); }
.holiday-site .section--dark .eyebrow { color: #7be0aa; }
.holiday-footer { background: #030c11; }

@media (max-width: 960px) {
  .nav-toggle { display: grid; place-items: center; }
  .nav-links { position: absolute; inset: calc(100% + 1px) 0 auto; display: none; padding: 1.25rem 1rem 1.5rem; background: var(--navy-950); border-bottom: 1px solid rgba(255,255,255,.1); }
  .nav-links[data-open="true"] { display: grid; }
  .nav-links .button { justify-self: start; }
  .cards, .season-grid, .process { grid-template-columns: repeat(2, 1fr); }
  .season-card:nth-child(2) { border-right: 0; }
  .season-card:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .split, .quote-wrap, .content-grid { grid-template-columns: 1fr; }
  .sidebar { position: static; }
  .area-grid { grid-template-columns: repeat(3, 1fr); }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
  .holiday-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(17rem, .62fr); gap: 2rem; }
  .holiday-copy h1 { font-size: clamp(3rem, 7vw, 4.6rem); }
  .holiday-cards { grid-template-columns: 1fr; }
  .holiday-card--featured { transform: none; }
  .holiday-process { grid-template-columns: repeat(2, 1fr); }
  .countdown-wrap { grid-template-columns: 1fr; }
  .countdown-message { grid-column: auto; }
  .grinch-grid { grid-template-columns: .8fr 1.2fr; }
  .grinch-art img { transform: translateY(1.2rem); }
  .grinch-copy { padding-left: 1.5rem; }
  .snow-service-grid { grid-template-columns: auto 1fr; }
  .snow-action { grid-column: 1 / -1; grid-template-columns: max-content max-content; align-items: center; justify-content: center; }
}

@media (max-width: 640px) {
  body { padding-bottom: 4.25rem; }
  .topline .container { justify-content: center; }
  .topline span:first-child { display: none; }
  .brand strong { font-size: .78rem; }
  .brand span { display: none; }
  .hero { min-height: 43rem; }
  .hero::after { background: linear-gradient(180deg, rgba(4,16,26,.82), rgba(4,16,26,.96)); }
  .hero-content { padding: 5rem 0 7rem; }
  .cards, .season-grid, .numbers, .process, .form-grid, .area-grid, .footer-grid { grid-template-columns: 1fr; }
  .season-card { border-right: 0; border-bottom: 1px solid var(--line); }
  .season-card:last-child { border-bottom: 0; }
  .field--wide { grid-column: auto; }
  .quote-wrap { padding: 1.2rem; }
  .footer-bottom { display: grid; text-align: center; }
  .mobile-call { position: fixed; z-index: 200; inset: auto 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; padding: .55rem; background: var(--navy-950); border-top: 1px solid rgba(255,255,255,.16); }
  .mobile-call a { min-height: 3.1rem; }
  .holiday-hero { min-height: auto; }
  .holiday-hero-grid { grid-template-columns: 1fr; padding-block: 3rem 4rem; }
  .holiday-copy { padding-block: 0; }
  .holiday-copy h1 { font-size: clamp(2.8rem, 14vw, 4.2rem); }
  .holiday-media { width: min(100%, 22rem); justify-self: center; max-height: none; }
  .booking-strip-inner { flex-wrap: wrap; gap: .35rem .75rem; padding-block: .9rem; }
  .booking-strip-inner span:nth-of-type(2) { display: none; }
  .holiday-process { grid-template-columns: 1fr; }
  .holiday-process article > span { margin-bottom: 1rem; }
  .countdown-heading { text-align: center; }
  .countdown-heading .eyebrow { justify-content: center; }
  .countdown-clock { gap: .35rem; }
  .countdown-clock > div { padding: .85rem .25rem; border-radius: .65rem; }
  .countdown-clock strong { font-size: clamp(1.8rem, 10vw, 2.7rem); }
  .countdown-clock span { font-size: .6rem; letter-spacing: .04em; }
  .grinch-grid { grid-template-columns: 1fr; }
  .grinch-art { order: 2; }
  .grinch-art img { width: min(100%, 28rem); margin-top: -3rem; transform: translateY(1rem); }
  .grinch-copy { padding: 4rem 0 0; text-align: center; }
  .grinch-copy h2 { font-size: clamp(2.8rem, 14vw, 4.4rem); }
  .grinch-copy .mini-label { justify-content: center; }
  .snow-service-grid { grid-template-columns: 1fr; text-align: center; }
  .snow-icon { margin-inline: auto; }
  .snow-service .eyebrow { justify-content: center; }
  .snow-points { justify-content: center; }
  .snow-action { grid-column: auto; grid-template-columns: 1fr; }
}

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