/* Pressure Wave — holiday lighting page (loads after site.css) */
.page-holiday { --night: #0a0d18; }
.page-holiday ::selection { background: var(--warm); color: #241500; }
.page-holiday .nav-inner { background: rgba(10, 13, 24, .55); }
.page-holiday .nav.scrolled .nav-inner { background: rgba(10, 13, 24, .84); }
.page-holiday .brand b { color: var(--warm); }
.nav-back svg { font-size: 14px; }
.page-holiday .nav-phone svg { color: var(--warm); }

/* ---------- hero ---------- */
.hero-holiday { background: var(--night); }
.hero-holiday::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(rgba(255, 220, 160, .55) 1px, transparent 1.5px); background-size: 90px 90px; opacity: .25; animation: twinkle 4s ease-in-out infinite alternate; }
.hero-holiday::after { display: none; }
.hero-holiday .holiday-glow { background:
  radial-gradient(700px 520px at 80% 15%, rgba(255, 180, 80, .26), transparent 70%),
  radial-gradient(520px 420px at 5% 95%, rgba(255, 90, 90, .14), transparent 70%); }
.hero-holiday { min-height: min(100svh, 940px); display: flex; flex-direction: column; justify-content: center; }
.hero-holiday .hero-grid { grid-template-columns: 1.3fr .7fr; align-items: end; padding-bottom: clamp(70px, 9vw, 120px); }
.hero-photo-bg { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.hero-photo-bg img { width: 100%; height: 100%; object-fit: cover; object-position: 62% 40%; transform: scale(1.04); animation: slowzoom-bg 22s ease-in-out infinite alternate; }
@keyframes slowzoom-bg { to { transform: scale(1.12) translateX(-1.5%); } }
.hero-photo-bg::after { content: ""; position: absolute; inset: 0; background:
  linear-gradient(90deg, rgba(10, 13, 24, .94) 0%, rgba(10, 13, 24, .78) 38%, rgba(10, 13, 24, .25) 72%, rgba(10, 13, 24, .1) 100%),
  linear-gradient(180deg, rgba(10, 13, 24, .55) 0%, transparent 22%, transparent 70%, rgba(10, 13, 24, .9) 100%); }
.hero-holiday h1 { font-size: clamp(44px, 5.7vw, 86px); }
.eyebrow-warm { color: var(--warm); border-color: rgba(255, 220, 160, .2); background: rgba(255, 197, 107, .05); }
.eyebrow-warm .dot { background: var(--warm); animation-name: ping-warm; }
@keyframes ping-warm { 70% { box-shadow: 0 0 0 9px rgba(255,197,107,0); } 100% { box-shadow: 0 0 0 0 rgba(255,197,107,0); } }
.hero-holiday .holiday-glow { opacity: .7; }
.hero-holiday::before { opacity: .18; }
.hero-holiday .hero-copy { text-shadow: 0 2px 30px rgba(0,0,0,.35); }
.hero-badges { display: grid; gap: 14px; justify-items: end; }
.hero-badges .float-card { position: relative; inset: auto; background: rgba(14, 16, 30, .55); }
.hero-badges .rating-card { animation: bob 6s ease-in-out infinite; }
.book-card { max-width: 240px; animation: bob 7s ease-in-out infinite -3s; }
.book-card p { display: flex; align-items: center; gap: 7px; font-family: var(--display); font-weight: 600; font-size: 18px; letter-spacing: -.02em; }
.book-card p svg { color: var(--warm); }
.book-card small { display: block; color: rgba(255,255,255,.62); font-size: 12.5px; line-height: 1.4; margin-top: 4px; }

/* ---------- before / after (three sliders) ---------- */
.h-ba { background: var(--paper); }
.hba-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.hba { margin: 0; }
.hba .ba { aspect-ratio: 4 / 3.4; max-height: none; background: #1a1d29; border-radius: var(--r); }
.ba-night .t-after { background: var(--warm); color: #241500; }
.hba figcaption { display: flex; align-items: baseline; gap: 12px; margin-top: 16px; font-family: var(--display); font-size: clamp(19px, 1.6vw, 22px); font-weight: 600; letter-spacing: -.03em; line-height: 1.2; }
.hba figcaption span { font-family: var(--mono); font-size: 12px; font-weight: 500; letter-spacing: .08em; color: var(--muted); }

/* ---------- custom displays ---------- */
.h-what { background: var(--white); }
.what-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.what-item { padding: 36px 28px 40px; border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); }
.what-item:nth-child(3n + 1) { padding-left: 0; }
.what-item:nth-child(3n) { border-right: 0; padding-right: 0; }
.what-item:nth-last-child(-n + 3) { border-bottom: 0; }
.what-item h3 { font-size: 22px; margin-bottom: 10px; letter-spacing: -.03em; }
.what-item p { color: var(--muted); font-size: 15.5px; max-width: 340px; }
.what-item .ico { color: #b06d00; background: #fff6e6; }
.what-item:hover .ico { background: var(--warm); color: #241500; transform: rotate(-8deg) scale(1.05); }

/* ---------- gallery (dark) ---------- */
.h-gallery { padding-bottom: clamp(90px, 11vw, 150px); }
.h-gallery .sec-sub { color: rgba(255,255,255,.62); }
.hgal { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: clamp(150px, 15vw, 210px); gap: 14px; }
.hgal-item { position: relative; padding: 0; border: 1px solid rgba(255, 220, 160, .14); border-radius: 18px; overflow: hidden; background: #151827; cursor: zoom-in; }
.hgal-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease), filter .5s; filter: saturate(.92); }
.hgal-item:hover img { transform: scale(1.05); filter: saturate(1.08); }
.hgal-item::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 0 var(--warm); transition: box-shadow .3s var(--ease); pointer-events: none; }
.hgal-item:hover::after, .hgal-item:focus-visible::after { box-shadow: inset 0 0 0 2px var(--warm); }
.hgal-item:hover { box-shadow: 0 0 80px -20px rgba(255, 180, 80, .5); }
.g-a { grid-column: span 7; grid-row: span 2; }
.g-b { grid-column: span 5; grid-row: span 3; }
.g-c { grid-column: span 7; grid-row: span 1; }
.g-d { grid-column: span 4; grid-row: span 1; }
.g-e { grid-column: span 4; grid-row: span 1; }
.g-f { grid-column: span 4; grid-row: span 1; }
.hgal-cta { display: flex; justify-content: center; margin-top: 48px; }

/* ---------- permanent ---------- */
.h-perm { background: var(--paper); }
.perm-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 90px); align-items: center; }
.perm-copy h2 { font-size: clamp(36px, 4.6vw, 64px); letter-spacing: -.05em; line-height: .95; margin-bottom: 24px; }
.perm-copy > p:not(.kicker) { color: var(--muted); font-size: 18px; max-width: 540px; }
.ticks-ink li { color: var(--ink); font-size: 16px; }
.ticks-ink svg { background: var(--ink); }

.carousel { position: relative; border-radius: var(--r-lg); overflow: hidden; background: var(--night); box-shadow: 0 40px 80px -40px rgba(6,18,28,.5); }
.carousel-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.carousel-track::-webkit-scrollbar { display: none; }
.carousel-slide { flex: 0 0 100%; scroll-snap-align: start; aspect-ratio: 4 / 4.2; padding: 0; border: 0; background: none; cursor: zoom-in; }
.carousel-slide img { width: 100%; height: 100%; object-fit: cover; }
.carousel-ui { position: absolute; left: 16px; right: 16px; bottom: 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; pointer-events: none; }
.carousel-btn { pointer-events: auto; width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255,255,255,.2); background: rgba(10,13,24,.55); color: #fff; display: grid; place-items: center; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); transition: background .2s, transform .3s var(--ease); }
.carousel-btn:hover { background: rgba(10,13,24,.85); transform: scale(1.06); }
.carousel-btn svg { width: 20px; height: 20px; }
.carousel-dots { pointer-events: auto; display: flex; gap: 6px; padding: 8px 12px; border-radius: 999px; background: rgba(10,13,24,.55); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.carousel-dots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 999px; background: rgba(255,255,255,.4); transition: width .35s var(--ease), background .3s; }
.carousel-dots button[aria-current="true"] { width: 22px; background: var(--warm); }

/* ---------- process / faq accents ---------- */
.page-holiday .process { padding-top: clamp(80px, 11vw, 150px); }
.page-holiday .steps::after { background: linear-gradient(90deg, var(--warm), #ff8a5c); }
.page-holiday .kicker:not(.kicker-warm) { color: #a8650a; }
.page-holiday .sec-sub a { color: #a8650a; }

/* ---------- quote (dark warm) ---------- */
.quote-holiday { background: var(--night); }
.quote-holiday .holiday-glow { background:
  radial-gradient(700px 600px at 0% 0%, rgba(255, 180, 80, .22), transparent 70%),
  radial-gradient(500px 400px at 100% 100%, rgba(255, 90, 90, .1), transparent 70%); }
.quote-holiday .contact-list svg { color: var(--warm); }
.quote-holiday .contact-list a:hover { color: var(--warm); }
.quote-holiday .qform .btn-warm { box-shadow: 0 14px 40px -14px rgba(214, 140, 30, .8); white-space: normal; text-align: center; }
.quote-holiday .quote-grid > * { min-width: 0; }
.quote-holiday .svc input:checked + span { background: var(--night); border-color: var(--night); }
.page-holiday .fld input:focus, .page-holiday .fld textarea:focus { border-color: #e0a040; box-shadow: 0 0 0 4px rgba(255, 197, 107, .25); }
.fld textarea::placeholder, .fld input::placeholder { color: #9aa6b0; }

.page-holiday .mbar-quote { background: var(--warm); color: #241500; }
.page-holiday .footer { background: var(--night); }
.page-holiday .socials a:hover { color: var(--night); }

/* ---------- lightbox ---------- */
.lightbox { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 70px 16px; background: rgba(6, 8, 16, .92); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); opacity: 0; transition: opacity .3s; }
.lightbox[hidden] { display: none; }
.lightbox.show { opacity: 1; }
.lb-img { max-width: min(1200px, 100%); max-height: 100%; border-radius: 16px; object-fit: contain; box-shadow: 0 40px 100px -30px rgba(0,0,0,.9); }
.lb-btn { position: absolute; width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.08); color: #fff; display: grid; place-items: center; transition: background .2s; }
.lb-btn:hover { background: rgba(255,255,255,.18); }
.lb-btn svg { width: 22px; height: 22px; }
.lb-close { top: 16px; right: 16px; }
.lb-prev { left: 16px; top: 50%; margin-top: -24px; }
.lb-next { right: 16px; top: 50%; margin-top: -24px; }
.lb-cap { position: absolute; left: 16px; right: 16px; bottom: 20px; text-align: center; color: rgba(255,255,255,.7); font-size: 14px; }
body.lb-open { overflow: hidden; }

/* ---------- responsive ---------- */
@media (max-width: 1080px) {
  .hero-holiday .hero-grid { grid-template-columns: 1fr; }
  .hero-badges { grid-template-columns: auto auto; justify-content: start; justify-items: start; }
  .hero-photo-bg img { object-position: 70% center; }
  .hero-photo-bg::after { background: linear-gradient(180deg, rgba(10, 13, 24, .5) 0%, rgba(10, 13, 24, .62) 30%, rgba(10, 13, 24, .78) 60%, rgba(10, 13, 24, .95) 100%); }
  .hba-grid { grid-template-columns: 1fr 1fr; }
  .hba:last-child { grid-column: 1 / -1; }
  .hba:last-child .ba { aspect-ratio: 16 / 9; }
  .what-grid { grid-template-columns: 1fr 1fr; }
  .what-item, .what-item:nth-child(n) { padding: 32px 24px 34px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .what-item:nth-child(2n + 1) { padding-left: 0; }
  .what-item:nth-child(2n) { border-right: 0; padding-right: 0; }
  .what-item:nth-last-child(-n + 2) { border-bottom: 0; }
}
@media (max-width: 860px) {
  .perm-grid { grid-template-columns: 1fr; }
  .hgal { grid-template-columns: repeat(6, 1fr); grid-auto-rows: clamp(140px, 30vw, 220px); }
  .g-a { grid-column: span 6; grid-row: span 2; }
  .g-b { grid-column: span 3; grid-row: span 2; }
  .g-c, .g-d { grid-column: span 3; grid-row: span 1; }
  .g-e, .g-f { grid-column: span 3; grid-row: span 1; }
}
@media (max-width: 640px) {
  .hero-holiday { min-height: 0; }
  .hero-badges { display: none; }
  .book-card { max-width: 200px; padding: 11px 13px; }
  .book-card p { font-size: 16px; }
  .hba-grid { grid-template-columns: 1fr; gap: 28px; }
  .hba:last-child { grid-column: auto; }
  .hba .ba, .hba:last-child .ba { aspect-ratio: 4 / 3.3; }
  .what-grid { grid-template-columns: 1fr; }
  .what-item, .what-item:nth-child(n) { padding: 26px 0 24px; border-right: 0; border-bottom: 1px solid var(--line); }
  .what-item:last-child { border-bottom: 0; }
  .what-item .ico { margin-bottom: 18px; }
  .hgal { gap: 10px; grid-auto-rows: 120px; }
  .g-a { grid-row: span 2; }
  .g-b { grid-column: span 3; grid-row: span 3; }
  .g-c, .g-d, .g-e { grid-column: span 3; grid-row: span 1; }
  .g-f { grid-column: span 6; grid-row: span 2; }
  .hgal-cta .btn { width: 100%; }
  .carousel-slide { aspect-ratio: 4 / 4.4; }
  .perm-copy .hero-actions .btn { flex: 1 1 100%; white-space: normal; text-align: center; }
  .lb-prev, .lb-next { top: auto; bottom: 14px; margin: 0; }
  .lb-cap { bottom: 74px; }
}

/* holiday page: the quote form also appears inside the quote popup, outside .quote-holiday */
.page-holiday .qpop .qform .btn-warm { box-shadow: 0 14px 40px -14px rgba(214, 140, 30, .8); white-space: normal; text-align: center; }
.page-holiday .qpop .svc input:checked + span { background: var(--night); border-color: var(--night); }
