/* Shared holiday theme layout — pattern backgrounds + overlays */

body:not([data-theme="default"]) {
  background-color: var(--theme-bg-color, var(--bg));
  background-image:
    var(--theme-bg-overlay),
    var(--theme-bg-image);
  background-size: cover, var(--theme-bg-size, 480px 480px);
  background-position: center top, center top;
  background-repeat: no-repeat, repeat;
  background-attachment: fixed, fixed;
}

body:not([data-theme="default"]) .site-header {
  background: var(--theme-header-bg, rgba(255, 255, 255, 0.88));
  border-bottom-color: var(--theme-header-border, rgba(0, 0, 0, 0.06));
  box-shadow: 0 4px 24px var(--theme-header-shadow, rgba(0, 0, 0, 0.04));
  backdrop-filter: blur(10px);
}

body:not([data-theme="default"]) .nav a.is-active {
  color: var(--accent-dark);
  background: color-mix(in srgb, var(--accent-soft) 85%, #fff);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 28%, transparent);
}

body:not([data-theme="default"]) .header-cta,
body:not([data-theme="default"]) .mobile-bar__btn--call {
  background: var(--accent);
  color: #fff;
  box-shadow: 0 4px 14px color-mix(in srgb, var(--accent) 42%, transparent);
}

body:not([data-theme="default"]) .header-cta:hover,
body:not([data-theme="default"]) .mobile-bar__btn--call:hover {
  background: var(--accent-dark);
}

body:not([data-theme="default"]) .hero {
  background-color: var(--theme-hero-color, var(--accent-soft));
  background-image:
    var(--theme-hero-overlay),
    var(--theme-bg-image);
  background-size: cover, var(--theme-hero-bg-size, 620px 620px);
  background-position: center, right center;
  background-repeat: no-repeat, repeat;
  position: relative;
  overflow: hidden;
}

body:not([data-theme="default"]) .hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--theme-hero-tint, none);
  pointer-events: none;
}

body:not([data-theme="default"]) .hero .container {
  position: relative;
  z-index: 1;
}

body:not([data-theme="default"]) .pill {
  background: var(--theme-pill-bg, linear-gradient(135deg, #fff 0%, var(--accent-soft) 100%));
  border: 1px solid var(--theme-pill-border, color-mix(in srgb, var(--accent) 18%, transparent));
  color: var(--accent-dark);
  box-shadow: 0 2px 12px var(--theme-pill-shadow, color-mix(in srgb, var(--accent) 10%, transparent));
}

body:not([data-theme="default"]) .section {
  background: var(--theme-section-wash, transparent);
}

body:not([data-theme="default"]) .section-alt,
body:not([data-theme="default"]) .seo-section {
  background-color: var(--theme-section-color, var(--bg-alt));
  background-image: var(--theme-section-image, none);
  background-size: var(--theme-bg-size, 480px 480px);
  background-repeat: repeat;
}

body:not([data-theme="default"]) .page-top {
  background:
    var(--theme-page-top-overlay, linear-gradient(135deg, var(--accent-soft), #fff)),
    var(--theme-bg-image);
  background-size: cover, var(--theme-bg-size, 480px 480px);
  background-repeat: no-repeat, repeat;
}

body:not([data-theme="default"]) .section-header h2 {
  background: var(--gradient-text);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

body:not([data-theme="default"]) .cat-card {
  border-color: var(--theme-card-border, color-mix(in srgb, var(--accent) 14%, transparent));
  box-shadow: var(--theme-card-shadow, 0 4px 24px color-mix(in srgb, var(--accent) 8%, transparent));
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(4px);
}

body:not([data-theme="default"]) .cat-card__img:not(:has(img)) {
  background: var(--theme-card-placeholder, linear-gradient(135deg, var(--accent-soft), #fff));
}

body:not([data-theme="default"]) .step {
  border: 1px solid var(--theme-card-border, color-mix(in srgb, var(--accent) 12%, transparent));
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(4px);
}

body:not([data-theme="default"]) .work {
  border: 1px solid var(--theme-card-border, color-mix(in srgb, var(--accent) 10%, transparent));
  background: #fff;
}

body:not([data-theme="default"]) .cta-banner {
  background: var(--theme-cta-bg, linear-gradient(135deg, var(--accent-dark) 0%, var(--accent) 100%));
  position: relative;
  overflow: hidden;
}

body:not([data-theme="default"]) .cta-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--theme-cta-pattern, none);
  background-size: 400px 400px;
  opacity: 0.15;
  pointer-events: none;
}

body:not([data-theme="default"]) .cta-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--theme-cta-overlay, radial-gradient(circle at 80% 20%, rgba(255, 255, 255, 0.15), transparent 50%));
  pointer-events: none;
}

body:not([data-theme="default"]) .cta-banner .container {
  position: relative;
  z-index: 1;
}

body:not([data-theme="default"]) .site-footer {
  background: var(--theme-footer-bg, var(--ink));
  border-top: 3px solid var(--theme-footer-accent, var(--accent));
}

body:not([data-theme="default"]) .mobile-bar {
  background: var(--theme-header-bg, rgba(255, 255, 255, 0.95));
}

body:not([data-theme="default"]) .empty-box {
  background: rgba(255, 255, 255, 0.85);
  border: 1px dashed color-mix(in srgb, var(--accent) 25%, transparent);
}
