/*
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

@import url("https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,700&family=Kaushan+Script&family=Manrope:wght@300;400;600;700;800&display=swap");

.jw {
  --jw-radius: 0.375rem;
  --jw-radius-sm: 0.125rem;

  --jw-evergreen: oklch(0.34 0.058 166);
  --jw-evergreen-2: oklch(0.42 0.068 164);
  --jw-evergreen-deep: oklch(0.26 0.045 168);
  --jw-cream: oklch(0.955 0.025 85);
  --jw-sand: oklch(0.895 0.062 86);
  --jw-gold: oklch(0.8 0.158 78);
  --jw-gold-soft: oklch(0.87 0.11 84);
  --jw-copper: oklch(0.65 0.12 62);
  --jw-brand-red: #b92f26;
  --jw-brand-red-soft: #f0a090;
  --jw-ink: oklch(0.26 0.03 168);
  --jw-on-dark: oklch(0.96 0.022 85);
  --jw-on-dark-muted: oklch(0.83 0.03 120);
  --jw-muted: oklch(0.45 0.03 160);
  --jw-border: oklch(0.86 0.035 85);

  --jw-sand-40: color-mix(in oklab, var(--jw-sand) 40%, var(--jw-cream));
  --jw-sand-50: color-mix(in oklab, var(--jw-sand) 50%, var(--jw-cream));
  --jw-sand-60: color-mix(in oklab, var(--jw-sand) 60%, var(--jw-cream));

  --jw-font-display: "Manrope", ui-sans-serif, system-ui, sans-serif;
  --jw-font-sans: "DM Sans", ui-sans-serif, system-ui, sans-serif;
  --jw-font-script: "Kaushan Script", cursive;

  --jw-glow-gold: 0 0 0 1px color-mix(in oklab, var(--jw-gold) 40%, transparent),
    0 12px 40px -12px color-mix(in oklab, var(--jw-gold) 65%, transparent);
  --jw-shadow-photo: 0 30px 60px -30px color-mix(in oklab, var(--jw-evergreen-deep) 55%, transparent);
  --jw-scrim-hero: linear-gradient(
    100deg,
    color-mix(in oklab, var(--jw-evergreen-deep) 92%, transparent) 0%,
    color-mix(in oklab, var(--jw-evergreen-deep) 70%, transparent) 38%,
    transparent 72%
  );
  --jw-scrim-bottom: linear-gradient(
    to top,
    color-mix(in oklab, var(--jw-evergreen-deep) 92%, transparent) 0%,
    color-mix(in oklab, var(--jw-evergreen-deep) 30%, transparent) 55%,
    transparent 100%
  );

  font-family: var(--jw-font-sans);
  color: var(--jw-ink);
  font-size: 1rem;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-align: left;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 6rem;
}
body.jw-lock {
  overflow: hidden;
}

/* ---------- 2. Scoped reset (beats Hello Elementor defaults) ---------- */
.jw,
.jw *,
.jw *::before,
.jw *::after {
  box-sizing: border-box;
}
.jw h1,
.jw h2,
.jw h3,
.jw h4,
.jw p,
.jw ul,
.jw ol,
.jw li,
.jw figure {
  margin: 0;
  padding: 0;
}
.jw h1,
.jw h2,
.jw h3,
.jw h4 {
  font-family: var(--jw-font-display);
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: -0.01em;
  color: inherit;
}
.jw ul,
.jw ol {
  list-style: none;
}
.jw a {
  color: inherit;
  text-decoration: none;
  background: none;
}
.jw a:hover,
.jw a:active {
  color: inherit;
}
.jw img {
  display: block;
  max-width: 100%;
  height: auto;
  border: 0;
}
.jw button {
  font: inherit;
  letter-spacing: inherit;
  text-transform: none;
  cursor: pointer;
  border-radius: 0;
}
.jw :focus-visible {
  outline: 2px solid var(--jw-gold);
  outline-offset: 3px;
  border-radius: 2px;
}
.jw .jw-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ---------- 3. Layout helpers ---------- */
.jw .jw-wrap {
  width: 100%;
  max-width: 80rem;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}
.jw .jw-wrap--3xl { max-width: 48rem; }
.jw .jw-wrap--4xl { max-width: 56rem; }
.jw .jw-wrap--5xl { max-width: 64rem; }
@media (min-width: 768px) {
  .jw .jw-wrap { padding-left: 1.5rem; padding-right: 1.5rem; }
}

.jw .jw-sec { position: relative; }
.jw .jw-bg-cream { background: var(--jw-cream); }
.jw .jw-bg-sand-40 { background: var(--jw-sand-40); }
.jw .jw-bg-sand-50 { background: var(--jw-sand-50); }
.jw .jw-bg-sand-60 { background: var(--jw-sand-60); }
.jw .jw-bg-evergreen { background: var(--jw-evergreen); color: var(--jw-on-dark); }
.jw .jw-bg-evergreen-deep { background: var(--jw-evergreen-deep); color: var(--jw-on-dark); }
.jw .jw-bg-red { background: var(--jw-brand-red); color: var(--jw-on-dark); }
.jw .jw-bg-gold { background: var(--jw-gold); color: var(--jw-evergreen-deep); }

.jw .jw-py-16-20 { padding-top: 4rem; padding-bottom: 4rem; }
.jw .jw-py-20 { padding-top: 5rem; padding-bottom: 5rem; }
.jw .jw-py-20-24 { padding-top: 5rem; padding-bottom: 5rem; }
.jw .jw-py-20-28 { padding-top: 5rem; padding-bottom: 5rem; }
.jw .jw-py-24 { padding-top: 6rem; padding-bottom: 6rem; }
.jw .jw-py-24-32 { padding-top: 6rem; padding-bottom: 6rem; }
.jw .jw-pb-20-24 { padding-bottom: 5rem; }
@media (min-width: 768px) {
  .jw .jw-py-16-20 { padding-top: 5rem; padding-bottom: 5rem; }
  .jw .jw-py-20-24 { padding-top: 6rem; padding-bottom: 6rem; }
  .jw .jw-py-20-28 { padding-top: 7rem; padding-bottom: 7rem; }
  .jw .jw-py-24-32 { padding-top: 8rem; padding-bottom: 8rem; }
  .jw .jw-pb-20-24 { padding-bottom: 6rem; }
}

.jw .jw-center { text-align: center; }
.jw .jw-block { display: block; }
.jw .jw-grid-12 { display: grid; gap: 2.5rem; }
@media (min-width: 768px) {
  .jw .jw-grid-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 3rem; }
  .jw .jw-col-4 { grid-column: span 4 / span 4; }
  .jw .jw-col-5 { grid-column: span 5 / span 5; }
  .jw .jw-col-6 { grid-column: span 6 / span 6; }
  .jw .jw-col-7 { grid-column: span 7 / span 7; }
  .jw .jw-col-8 { grid-column: span 8 / span 8; }
}
.jw .jw-items-center { align-items: center; }
.jw .jw-self-end { align-self: end; }

/* ---------- 4. Typography ---------- */
.jw .jw-eyebrow {
  font-family: var(--jw-font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}
.jw .jw-display {
  font-family: var(--jw-font-display);
  font-weight: 300;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  line-height: 1.08;
}
.jw .jw-script {
  font-family: var(--jw-font-script);
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  line-height: 1;
}
.jw .jw-heavy { font-weight: 800; }
.jw .jw-light { font-weight: 300; }

/* display sizes */
.jw .jw-fs-xs { font-size: 1.5rem; }
.jw .jw-fs-sm { font-size: 1.5rem; }
.jw .jw-fs-md { font-size: 1.875rem; }
.jw .jw-fs-lg { font-size: 1.875rem; }
.jw .jw-fs-hero { font-size: 2.25rem; }
@media (min-width: 640px) { .jw .jw-fs-hero { font-size: 3rem; } }
@media (min-width: 768px) {
  .jw .jw-fs-xs { font-size: 1.875rem; }
  .jw .jw-fs-sm { font-size: 2.25rem; }
  .jw .jw-fs-md { font-size: 2.25rem; }
  .jw .jw-fs-lg { font-size: 3rem; }
  .jw .jw-fs-hero { font-size: 3.75rem; }
}
/* script sizes */
.jw .jw-sc-s { font-size: 3rem; }
.jw .jw-sc-m { font-size: 3rem; }
.jw .jw-sc-l { font-size: 3.75rem; }
.jw .jw-sc-xl { font-size: 3.75rem; }
.jw .jw-sc-hero { font-size: 4.5rem; }
@media (min-width: 640px) { .jw .jw-sc-hero { font-size: 6rem; } }
@media (min-width: 768px) {
  .jw .jw-sc-s { font-size: 3.75rem; }
  .jw .jw-sc-m { font-size: 4.5rem; }
  .jw .jw-sc-l { font-size: 4.5rem; }
  .jw .jw-sc-xl { font-size: 6rem; }
  .jw .jw-sc-hero { font-size: 8rem; }
}

/* colours */
.jw .jw-c-gold { color: var(--jw-gold); }
.jw .jw-c-red { color: var(--jw-brand-red); }
.jw .jw-c-copper { color: var(--jw-copper); }
.jw .jw-c-ink { color: var(--jw-ink); }
.jw .jw-c-green { color: var(--jw-evergreen); }
.jw .jw-c-dark { color: var(--jw-on-dark); }
.jw .jw-c-dark-muted { color: var(--jw-on-dark-muted); }
.jw .jw-c-muted { color: var(--jw-muted); }

.jw .jw-lead { font-size: 1.125rem; line-height: 1.625; color: var(--jw-muted); }
.jw .jw-body { line-height: 1.625; color: var(--jw-muted); }
.jw .jw-body-dark { line-height: 1.625; color: var(--jw-on-dark-muted); }
.jw .jw-mt-1 { margin-top: 0.25rem; }
.jw .jw-mt-2 { margin-top: 0.5rem; }
.jw .jw-mt-3 { margin-top: 0.75rem; }
.jw .jw-mt-4 { margin-top: 1rem; }
.jw .jw-mt-5 { margin-top: 1.25rem; }
.jw .jw-mt-6 { margin-top: 1.5rem; }
.jw .jw-mt-8 { margin-top: 2rem; }
.jw .jw-mt-10 { margin-top: 2.5rem; }
.jw .jw-mt-12 { margin-top: 3rem; }
.jw .jw-mx-auto { margin-left: auto; margin-right: auto; }
.jw .jw-maxw-xl { max-width: 36rem; }
.jw .jw-maxw-2xl { max-width: 42rem; }

.jw .jw-title-block {
  font-family: var(--jw-font-display);
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.15;
  font-size: 1.875rem;
  color: var(--jw-ink);
}
@media (min-width: 768px) { .jw .jw-title-block { font-size: 3rem; } }
.jw .jw-title-light {
  font-family: var(--jw-font-display);
  font-weight: 300;
  line-height: 1.15;
  font-size: 1.875rem;
  color: var(--jw-ink);
}
.jw .jw-title-light strong { font-weight: 800; }
@media (min-width: 768px) { .jw .jw-title-light { font-size: 2.25rem; } }
.jw .jw-title-light--lg { }
@media (min-width: 768px) { .jw .jw-title-light--lg { font-size: 3rem; } }

/* ---------- 5. Buttons and links ---------- */
.jw .jw-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  min-height: 3rem;
  padding: 0 1.6rem;
  font-family: var(--jw-font-display);
  font-size: 0.75rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-align: center;
  border: 0;
  border-radius: var(--jw-radius);
  transition: background-color 0.25s ease, color 0.25s ease, box-shadow 0.35s ease, transform 0.25s ease;
}
.jw .jw-btn svg { width: 1rem; height: 1rem; }
.jw .jw-btn--gold { background: var(--jw-gold); color: var(--jw-evergreen-deep); }
.jw .jw-btn--gold:hover { background: var(--jw-gold-soft); color: var(--jw-evergreen-deep); box-shadow: var(--jw-glow-gold); }
.jw .jw-btn--green { background: var(--jw-evergreen); color: var(--jw-on-dark); }
.jw .jw-btn--green:hover { background: var(--jw-evergreen-2); color: var(--jw-on-dark); }
.jw .jw-btn--outline {
  background: transparent;
  border: 1px solid color-mix(in oklab, var(--jw-on-dark) 45%, transparent);
  color: var(--jw-on-dark);
}
.jw .jw-btn--outline:hover { background: transparent; border-color: var(--jw-gold); color: var(--jw-gold); }
.jw .jw-btn--full { width: 100%; }
.jw .jw-btn--sm { min-height: 2.25rem; padding: 0 1rem; font-size: 0.62rem; letter-spacing: 0.12em; }
.jw .jw-btn--nav { min-height: 2.75rem; padding: 0 0.75rem; font-size: 0.62rem; letter-spacing: 0.1em; white-space: nowrap; }
@media (min-width: 640px) { .jw .jw-btn--nav { padding: 0 1.25rem; font-size: 0.68rem; } }

.jw .jw-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--jw-font-display);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border-bottom: 1px solid currentColor;
  padding-bottom: 0.25rem;
  transition: gap 0.25s ease, color 0.25s ease;
}
.jw .jw-link-arrow:hover { gap: 0.85rem; color: var(--jw-gold); }
.jw .jw-text-link {
  color: var(--jw-evergreen);
  text-decoration: underline;
  text-decoration-color: color-mix(in oklab, var(--jw-gold) 60%, transparent);
  text-underline-offset: 4px;
  transition: color 0.2s ease;
}
.jw .jw-text-link:hover { color: var(--jw-copper); }

/* ---------- 6. Shared pieces ---------- */

/* Cone bulb (used by every .jw-bulb and by the bullet lists below).
   The span itself stays unmasked so its glow is not clipped:
   ::before is the bulb shape, ::after is the glow. */
.jw {
  --jw-cone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 20'%3E%3Crect x='3.5' y='0' width='5' height='5.5' rx='1'/%3E%3Cpath d='M6 20C2 15 1 10 2.2 7.5Q3 5.5 6 5.5Q9 5.5 9.8 7.5C11 10 10 15 6 20Z'/%3E%3C/svg%3E");
}
.jw .jw-bulb {
  --bulb: #e53935;
  position: relative;
  display: inline-block;
  flex: none;
  width: 0.7rem;
  height: 1.15rem;
  isolation: isolate;
}
.jw .jw-bulb::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  -webkit-mask: var(--jw-cone) center / contain no-repeat;
          mask: var(--jw-cone) center / contain no-repeat;
  background:
    radial-gradient(circle at 35% 52%, rgba(255, 255, 255, 0.8) 0 9%, transparent 16%),
    linear-gradient(var(--jw-copper) 0 27%, var(--bulb) 27%);
  animation: jw-bulb 3.2s infinite;
  animation-delay: calc(var(--i, 0) * 0.35s + var(--c, 0) * 0.2s);
}
.jw .jw-bulb::after {
  content: "";
  position: absolute;
  z-index: 0;
  left: -50%;
  top: 0;
  width: 200%;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background: radial-gradient(circle, var(--bulb) 0%, transparent 65%);
  pointer-events: none;
  animation: jw-glow 3.2s infinite;
  animation-delay: calc(var(--i, 0) * 0.35s + var(--c, 0) * 0.2s);
}

/* Bulb colors by the bulb's parent position (cards, steps, cells) */
.jw :nth-child(4n+1) > .jw-bulb { --bulb: #e53935; }
.jw :nth-child(4n+2) > .jw-bulb { --bulb: #ffc94a; }
.jw :nth-child(4n+3) > .jw-bulb { --bulb: #3ccf6e; }
.jw :nth-child(4n+4) > .jw-bulb { --bulb: #4d9bff; }

/* Chase order by the bulb's parent position */
.jw :nth-child(2) > .jw-bulb { --i: 1; }
.jw :nth-child(3) > .jw-bulb { --i: 2; }
.jw :nth-child(4) > .jw-bulb { --i: 3; }
.jw :nth-child(5) > .jw-bulb { --i: 4; }
.jw :nth-child(6) > .jw-bulb { --i: 5; }
.jw :nth-child(7) > .jw-bulb { --i: 6; }
.jw :nth-child(8) > .jw-bulb { --i: 7; }

/* Offset each card so columns don't blink in sync */
.jw .jw-pkg:nth-child(2),
.jw .jw-rpk__card:nth-child(2) { --c: 1; }
.jw .jw-pkg:nth-child(3),
.jw .jw-rpk__card:nth-child(3) { --c: 2; }
.jw .jw-pkg:nth-child(4),
.jw .jw-rpk__card:nth-child(4) { --c: 3; }

/* On, quick off, back on */
@keyframes jw-bulb {
  0%, 38%   { opacity: 1; }
  40%, 56%  { opacity: 0.25; }
  58%, 100% { opacity: 1; }
}
@keyframes jw-glow {
  0%, 38%   { opacity: 0.55; transform: scale(1); }
  40%, 56%  { opacity: 0; transform: scale(0.6); }
  58%, 100% { opacity: 0.55; transform: scale(1); }
}

.jw .jw-zoom { display: block; overflow: hidden; border-radius: var(--jw-radius-sm); }
.jw .jw-zoom img { transition: transform 1.1s cubic-bezier(0.2, 0.7, 0.2, 1); }
.jw .jw-zoom:hover img { transform: scale(1.035); }
.jw .jw-photo { width: 100%; object-fit: cover; box-shadow: var(--jw-shadow-photo); }
.jw .jw-cover { width: 100%; height: 100%; object-fit: cover; }
.jw .jw-abs-fill { position: absolute; inset: 0; }

@keyframes jw-rise {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: none; }
}
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .jw .jw-reveal {
      animation: jw-rise linear both;

      animation-timeline: view();
      animation-range: entry 0% cover 22%;
    }
  }
}

/* Dark photo panel (inner hero + mid-page green panels) */
.jw .jw-panel-photo { position: relative; overflow: hidden; background: var(--jw-evergreen); color: var(--jw-on-dark); }
.jw .jw-panel-photo__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.jw .jw-panel-photo__shade { position: absolute; inset: 0; background: color-mix(in oklab, var(--jw-evergreen) 90%, transparent); }
.jw .jw-panel-photo__body { position: relative; }

/* ---------- 7. FAQ accordion ---------- */
.jw .jw-faq { border-top: 1px solid var(--jw-border); }
.jw .jw-faq__item { border-bottom: 1px solid var(--jw-border); }
.jw .jw-faq__q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  width: 100%;
  margin: 0;
  padding: 1.25rem 0;
  background: none;
  border: 0;
  color: inherit;
  text-align: left;
  font-family: var(--jw-font-display);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.5;
  box-shadow: none;
}
.jw .jw-faq__q:hover,
.jw .jw-faq__q:focus,
.jw .jw-faq__q:active { background: none; color: inherit; }
@media (min-width: 768px) { .jw .jw-faq__q { font-size: 1.125rem; } }
.jw .jw-faq__icon {
  position: relative;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 9999px;
  border: 1px solid color-mix(in oklab, var(--jw-gold) 60%, transparent);
  color: var(--jw-gold);
  transition: background-color 0.3s ease, color 0.3s ease;
}
.jw .jw-faq__icon::before,
.jw .jw-faq__icon::after {
  content: "";
  position: absolute;
  background: currentColor;
  transition: transform 0.3s ease;
}
.jw .jw-faq__icon::before { width: 0.75rem; height: 1px; }
.jw .jw-faq__icon::after { width: 1px; height: 0.75rem; }
.jw .jw-faq__item.is-open .jw-faq__icon { background: var(--jw-gold); color: var(--jw-evergreen-deep); }
.jw .jw-faq__item.is-open .jw-faq__icon::after { transform: scaleY(0); }
.jw .jw-faq__panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s ease;
}
.jw .jw-faq__item.is-open .jw-faq__panel { grid-template-rows: 1fr; }
.jw .jw-faq__panel > div { overflow: hidden; min-height: 0; }
.jw .jw-faq__panel p { max-width: 42rem; padding-bottom: 1.5rem; line-height: 1.625; color: var(--jw-muted); }
.jw .jw-faq--dark,
.jw .jw-faq--dark .jw-faq__item { border-color: color-mix(in oklab, var(--jw-on-dark) 15%, transparent); }
.jw .jw-faq--dark .jw-faq__q { color: var(--jw-on-dark); }
.jw .jw-faq--dark .jw-faq__q:hover,
.jw .jw-faq--dark .jw-faq__q:focus { color: var(--jw-on-dark); }
.jw .jw-faq--dark .jw-faq__panel p { color: var(--jw-on-dark-muted); }

/* ---------- 8. Header ---------- */
.jw .jw-topbar { border-bottom: 1px solid color-mix(in oklab, var(--jw-evergreen) 10%, transparent); background: var(--jw-sand); color: var(--jw-ink); }
.jw .jw-topbar__in {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.5rem 1.5rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
@media (min-width: 768px) { .jw .jw-topbar__in { justify-content: space-between; } }
.jw .jw-topbar__left { display: flex; align-items: center; gap: 0.75rem; }
.jw .jw-topbar__label { display: none; font-size: 0.62rem; color: var(--jw-brand-red); }
@media (min-width: 640px) { .jw .jw-topbar__label { display: inline; } }
@media (min-width: 768px) { .jw .jw-topbar__left { gap: 1rem; } }
.jw .jw-topbar__right { display: none; align-items: center; gap: 1rem; }
@media (min-width: 640px) { .jw .jw-topbar__right { display: flex; } }
@media (min-width: 768px) { .jw .jw-topbar__right { gap: 1.5rem; } }
.jw .jw-topbar__contact { display: none; align-items: center; gap: 1.25rem; font-size: 0.75rem; color: color-mix(in oklab, var(--jw-ink) 70%, transparent); }
@media (min-width: 1024px) { .jw .jw-topbar__contact { display: flex; } }
.jw .jw-topbar__contact a { display: inline-flex; align-items: center; gap: 0.375rem; }
.jw .jw-topbar__contact a:hover { color: var(--jw-brand-red); }
.jw .jw-topbar__contact svg { width: 0.875rem; height: 0.875rem; }
.jw .jw-topbar__contact .jw-eyebrow { font-size: 0.6rem; color: var(--jw-evergreen); }
.jw .jw-topbar__sep { width: 1px; height: 0.75rem; background: color-mix(in oklab, var(--jw-ink) 20%, transparent); }

.jw .jw-countdown { display: flex; align-items: center; gap: 0.375rem; }
.jw .jw-countdown__cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 3.05rem;
  padding: 0.25rem 0.5rem;
  border-radius: var(--jw-radius-sm);
  background: var(--jw-brand-red);
  line-height: 1;
}
.jw .jw-countdown__num { font-family: var(--jw-font-display); font-size: 0.875rem; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--jw-on-dark); }
.jw .jw-countdown__lbl { margin-top: 0.25rem; font-family: var(--jw-font-display); font-size: 0.5rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: color-mix(in oklab, var(--jw-on-dark) 85%, transparent); }
@media (min-width: 768px) { .jw .jw-countdown__num { font-size: 1rem; } }

.jw .jw-social { display: flex; align-items: center; gap: 0.75rem; }
.jw .jw-social a { transition: color 0.2s ease; display: inline-flex; }
.jw .jw-social a:hover { color: var(--jw-brand-red); }
.jw .jw-social svg { fill: currentColor; }

.jw .jw-header {
  position: sticky;
  top: 0;
  z-index: 40;
  border-bottom: 1px solid transparent;
  background: var(--jw-cream);
  transition: all 0.3s ease;
}
.jw .jw-header.is-scrolled {
  border-bottom-color: var(--jw-border);
  background: color-mix(in oklab, var(--jw-cream) 95%, transparent);
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.jw .jw-header__in { display: flex; align-items: center; justify-content: space-between; gap: 1rem; height: 5rem; }
.jw .jw-header__cta { display: flex; align-items: center; gap: 0.75rem; }

.jw .jw-logo { display: inline-flex; align-items: center; gap: 0.5rem; }
.jw .jw-logo img { height: 5rem; width: auto; transition: transform 0.5s ease; }
.jw .jw-logo:hover img { transform: rotate(-6deg); }
.jw .jw-logo__text { font-family: var(--jw-font-script); font-size: 1.5rem; line-height: 1; white-space: nowrap; color: var(--jw-evergreen); }
.jw .jw-logo__text span { color: var(--jw-brand-red); }
.jw .jw-logo--light .jw-logo__text { color: var(--jw-gold); }
.jw .jw-logo--light .jw-logo__text span { color: var(--jw-brand-red-soft); }
@media (min-width: 640px) {
  .jw .jw-logo img { height: 7rem; }
  .jw .jw-logo__text { font-size: 1.9rem; }
}

.jw .jw-nav { display: none; }
@media (min-width: 1024px) { .jw .jw-nav { display: block; } }
.jw .jw-nav__list { display: flex; align-items: center; gap: 1.1rem; }
@media (min-width: 1200px) { .jw .jw-nav__list { gap: 1.75rem; } }
.jw .jw-nav__item { position: relative; }
.jw .jw-nav__link {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  padding: 1.5rem 0;
  font-family: var(--jw-font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  white-space: nowrap;
  text-transform: uppercase;
  color: var(--jw-ink);
  transition: color 0.2s ease;
}
@media (min-width: 1200px) { .jw .jw-nav__link { letter-spacing: 0.16em; } }
.jw .jw-nav__link:hover { color: var(--jw-copper); }
.jw .jw-nav__link svg { width: 0.875rem; height: 0.875rem; color: color-mix(in oklab, var(--jw-ink) 45%, transparent); transition: transform 0.3s ease; }
.jw .jw-nav__item:hover .jw-nav__link svg { transform: rotate(-180deg); }
.jw .jw-nav__drop {
  visibility: hidden;
  position: absolute;
  left: 50%;
  top: 100%;
  z-index: 50;
  opacity: 0;
  transform: translate(-50%, 0.25rem);
  transition: all 0.2s ease;
}
.jw .jw-nav__item:hover .jw-nav__drop,
.jw .jw-nav__item:focus-within .jw-nav__drop { visibility: visible; opacity: 1; transform: translate(-50%, 0); }
.jw .jw-nav__drop ul {
  width: 16rem;

  padding: 0.75rem 0.5rem;
  border: 1px solid var(--jw-border);
  background: var(--jw-cream);
  box-shadow: 0 22px 44px -26px rgb(14 68 52 / 0.55);
}
.jw .jw-nav__drop a {
  display: block;
  padding: 0.625rem 1rem;
  font-family: var(--jw-font-display);
  font-size: 0.66rem;
  font-weight: 700;
  line-height: 1.375;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--jw-evergreen-deep);
  transition: background-color 0.2s ease, color 0.2s ease;
}
.jw .jw-nav__drop a:hover { background: var(--jw-sand); color: var(--jw-brand-red); }

.jw .jw-burger {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  background: transparent;
  border: 1px solid var(--jw-border);
  border-radius: 0.25rem;
  color: var(--jw-ink);
}
.jw .jw-burger:hover,
.jw .jw-burger:focus { background: transparent; color: var(--jw-ink); }
.jw .jw-burger svg { width: 1.25rem; height: 1.25rem; }
@media (min-width: 1024px) { .jw .jw-burger { display: none; } }

.jw .jw-drawer {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  flex-direction: column;
  background: var(--jw-evergreen-deep);
  color: var(--jw-on-dark);
}
.jw .jw-drawer.is-open { display: flex; }
.jw .jw-drawer__top { display: flex; align-items: center; justify-content: space-between; height: 5rem; padding: 0 1rem; }
.jw .jw-drawer__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  background: transparent;
  border: 1px solid color-mix(in oklab, var(--jw-on-dark) 30%, transparent);
  border-radius: 0.25rem;
  color: var(--jw-on-dark);
}
.jw .jw-drawer__close:hover,
.jw .jw-drawer__close:focus { background: transparent; color: var(--jw-on-dark); }
.jw .jw-drawer__close svg { width: 1.25rem; height: 1.25rem; }
.jw .jw-drawer__nav { flex: 1; overflow-y: auto; padding: 1.5rem; }
.jw .jw-drawer__nav > ul > li { border-top: 1px solid color-mix(in oklab, var(--jw-on-dark) 10%, transparent); }
.jw .jw-drawer__nav > ul > li:first-child { border-top: 0; }
.jw .jw-drawer__row { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.jw .jw-drawer__link { display: block; flex: 1; padding: 1rem 0; font-family: var(--jw-font-display); font-size: 1.25rem; font-weight: 600; }
.jw .jw-drawer__toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  background: transparent;
  border: 1px solid color-mix(in oklab, var(--jw-on-dark) 25%, transparent);
  color: var(--jw-on-dark);
}
.jw .jw-drawer__toggle:hover,
.jw .jw-drawer__toggle:focus { background: transparent; color: var(--jw-on-dark); }
.jw .jw-drawer__toggle svg { width: 1rem; height: 1rem; transition: transform 0.3s ease; }
.jw .jw-drawer__toggle[aria-expanded="true"] svg { transform: rotate(-180deg); }
.jw .jw-drawer__sub { display: none; margin-bottom: 1rem; padding-left: 1.25rem; border-left: 1px solid color-mix(in oklab, var(--jw-on-dark) 25%, transparent); }
.jw .jw-drawer__sub.is-open { display: block; }
.jw .jw-drawer__sub a {
  display: block;
  padding: 0.75rem 0;
  font-family: var(--jw-font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--jw-on-dark-muted);
  transition: color 0.2s ease;
}
.jw .jw-drawer__sub a:hover { color: var(--jw-gold); }
.jw .jw-drawer__contact { margin-top: 2.5rem; display: grid; gap: 0.75rem; color: var(--jw-on-dark-muted); }
.jw .jw-drawer__contact a { display: inline-flex; align-items: center; gap: 0.5rem; }
.jw .jw-drawer__contact svg { width: 1rem; height: 1rem; }
.jw .jw-drawer__foot { padding: 1.5rem; }

/* ---------- 9. Footer ---------- */
.jw .jw-footer { background: var(--jw-evergreen-deep); color: var(--jw-on-dark); }
.jw .jw-footer__grid { display: grid; gap: 3rem; padding-top: 4rem; padding-bottom: 4rem; }
@media (min-width: 768px) {
  .jw .jw-footer__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .jw .jw-footer__brand { grid-column: span 4 / span 4; }
  .jw .jw-footer__contact { grid-column: span 3 / span 3; }
  .jw .jw-footer__nav { grid-column: span 5 / span 5; }
}
.jw .jw-footer__brand p { margin-top: 1.25rem; max-width: 20rem; font-size: 0.875rem; line-height: 1.625; color: var(--jw-on-dark-muted); }
.jw .jw-footer .jw-social { margin-top: 1.5rem; gap: 1.25rem; color: var(--jw-on-dark-muted); }
.jw .jw-footer .jw-social a:hover { color: var(--jw-gold); }
.jw .jw-footer__list { margin-top: 1.25rem; display: grid; gap: 0.5rem; font-size: 0.875rem; color: var(--jw-on-dark-muted); }
.jw .jw-footer__list a:hover { color: var(--jw-gold); }
.jw .jw-footer__links { margin-top: 1.25rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem 1.5rem; font-size: 0.875rem; color: var(--jw-on-dark-muted); }
.jw .jw-footer__links a:hover { color: var(--jw-gold); }
.jw .jw-footer__bar { border-top: 1px solid color-mix(in oklab, var(--jw-on-dark) 10%, transparent); }
.jw .jw-footer__bar .jw-wrap { padding-top: 1.25rem; padding-bottom: 1.25rem; font-size: 0.75rem; color: var(--jw-on-dark-muted); }
.jw .jw-footer__bar .jw-eyebrow { font-size: 0.6rem; }
.jw .jw-footer__legal { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; }
.jw .jw-footer__legal div { display: flex; gap: 1.25rem; }
.jw .jw-footer__legal a:hover { color: var(--jw-gold); }

/* ---------- 10. Home: hero ---------- */
.jw .jw-hero { position: relative; isolation: isolate; overflow: hidden; background: var(--jw-evergreen-deep); color: var(--jw-on-dark); }
.jw .jw-hero__bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 70% center; }
.jw .jw-hero__scrim { position: absolute; inset: 0; z-index: -1; background: var(--jw-scrim-hero); }
.jw .jw-hero__scrim-bottom { position: absolute; left: 0; right: 0; bottom: 0; z-index: -1; height: 10rem; background: var(--jw-scrim-bottom); }
.jw .jw-hero__in {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 640px;
  padding-top: 7rem;
  padding-bottom: 4rem;
}
@media (min-width: 768px) {
  .jw .jw-hero__scrim-bottom { display: none; }
  .jw .jw-hero__in { justify-content: center; min-height: 760px; padding-bottom: 6rem; }
}
.jw .jw-hero__title { margin-top: 1.25rem; max-width: 42rem; }
.jw .jw-hero__title .jw-display { display: block; }
.jw .jw-hero__title .jw-script { display: block; margin-top: -0.25rem; color: var(--jw-gold); filter: drop-shadow(0 0 30px var(--jw-gold)); }
.jw .jw-hero__text { margin-top: 1.5rem; max-width: 32rem; font-size: 1rem; line-height: 1.625; color: color-mix(in oklab, var(--jw-on-dark) 85%, transparent); }
@media (min-width: 768px) { .jw .jw-hero__text { font-size: 1.125rem; } }
.jw .jw-hero__btns { display: flex; flex-direction: column; gap: 0.75rem; margin-top: 2.25rem; }
@media (min-width: 640px) { .jw .jw-hero__btns { flex-direction: row; } }
.jw .jw-hero__trust {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.5rem;
  margin-top: 2.5rem;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--jw-on-dark-muted);
}
.jw .jw-hero__trust li { display: flex; align-items: center; gap: 1.5rem; }
.jw .jw-hero__trust li + li::before { content: ""; display: none; width: 1px; height: 0.75rem; background: color-mix(in oklab, var(--jw-on-dark) 30%, transparent); }
@media (min-width: 640px) { .jw .jw-hero__trust li + li::before { display: block; } }
.jw .jw-hero__mascot { display: none; position: absolute; bottom: -0.75rem; right: 1rem; width: 8rem; }
@media (min-width: 768px) { .jw .jw-hero__mascot { display: block; } }
@media (min-width: 1024px) { .jw .jw-hero__mascot { right: 8%; width: 10rem; } }

/* ---------- 11. Home: two ways ---------- */
.jw .jw-ways { display: grid; gap: 2rem; margin-top: 3.5rem; }
@media (min-width: 768px) {
  .jw .jw-ways { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1.5rem; }
  .jw .jw-way--home { grid-column: span 7 / span 7; }
  .jw .jw-way--biz { grid-column: span 5 / span 5; margin-top: 6rem; }
}
.jw .jw-way img { aspect-ratio: 4 / 3; width: 100%; object-fit: cover; }
.jw .jw-way .jw-eyebrow { margin-top: 1.5rem; color: var(--jw-gold); }
.jw .jw-way p.jw-way__text { margin-top: 0.75rem; max-width: 28rem; line-height: 1.625; color: color-mix(in oklab, var(--jw-on-dark) 85%, transparent); }
.jw .jw-way .jw-link-arrow { margin-top: 1.25rem; color: var(--jw-on-dark); }
.jw .jw-way .jw-link-arrow:hover { color: var(--jw-gold); }

/* ---------- 12. Home: residential intro ---------- */
.jw .jw-res-intro { padding-top: 5rem; padding-bottom: 3rem; }
@media (min-width: 768px) { .jw .jw-res-intro { padding-top: 7rem; } }

/* ---------- 13. Home: packages ---------- */
.jw .jw-packages { padding-bottom: 6rem; }
.jw .jw-packages__box { padding: 3.5rem 1.5rem; border-radius: var(--jw-radius-sm); background: var(--jw-brand-red); color: var(--jw-on-dark); }
@media (min-width: 768px) { .jw .jw-packages__box { padding: 5rem 3.5rem; } }
.jw .jw-packages__grid {
  display: grid;
  gap: 1px;
  margin-top: 3rem;
  overflow: hidden;
  border-radius: var(--jw-radius-sm);
  background: color-mix(in oklab, var(--jw-on-dark) 10%, transparent);
}
@media (min-width: 640px) { .jw .jw-packages__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .jw .jw-packages__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.jw .jw-pkg { padding: 1.75rem; background: var(--jw-evergreen-deep); transition: background-color 0.5s ease; }
.jw .jw-pkg:hover { background: var(--jw-evergreen); }
.jw .jw-pkg__bulbs { display: flex; align-items: flex-end; gap: 0.5rem; height: 1.5rem; }
.jw .jw-pkg__bulbs .jw-bulb { transition: all 0.5s ease; }
.jw .jw-pkg:hover .jw-pkg__bulbs .jw-bulb:not(.is-off) { transform: scale(1.25); }
.jw .jw-pkg__bulbs .jw-bulb.is-off { opacity: 0.15; box-shadow: none; }
.jw .jw-pkg__bulbs .jw-bulb.is-off::after { display: none; }
/* Package level bulbs sit side by side, so color and chase by their own position */
.jw .jw-pkg__bulbs .jw-bulb:nth-child(4n+1) { --bulb: #e53935; --i: 0; }
.jw .jw-pkg__bulbs .jw-bulb:nth-child(4n+2) { --bulb: #ffc94a; --i: 1; }
.jw .jw-pkg__bulbs .jw-bulb:nth-child(4n+3) { --bulb: #3ccf6e; --i: 2; }
.jw .jw-pkg__bulbs .jw-bulb:nth-child(4n+4) { --bulb: #4d9bff; --i: 3; }
.jw .jw-pkg__num { margin-top: 2rem; font-family: var(--jw-font-display); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.2em; color: var(--jw-on-dark-muted); }
.jw .jw-pkg__name { margin-top: 0.25rem; font-family: var(--jw-font-display); font-size: 1.875rem; font-weight: 800; letter-spacing: 0.025em; text-transform: uppercase; line-height: 1.2; color: var(--jw-brand-red); }
.jw .jw-pkg__line { margin-top: 0.75rem; line-height: 1.625; color: color-mix(in oklab, var(--jw-on-dark) 85%, transparent); }
.jw .jw-pkg__best { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid color-mix(in oklab, var(--jw-on-dark) 10%, transparent); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: #fff; }
.jw .jw-packages__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2.5rem; }
.jw .jw-packages__foot p { font-size: 0.875rem; color: var(--jw-on-dark-muted); }

/* ---------- 14. Home: includes ---------- */
.jw .jw-includes { display: grid; align-items: center; gap: 3.5rem; }
@media (min-width: 768px) {
  .jw .jw-includes { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .jw .jw-includes__text { grid-column: span 6 / span 6; }
  .jw .jw-includes__pics { grid-column: span 6 / span 6; }
}
@media (min-width: 1024px) {
  .jw .jw-includes__text { grid-column: span 5 / span 5; }
  .jw .jw-includes__pics { grid-column: 7 / span 6; }
}
.jw .jw-includes__list { margin-top: 2.5rem; }
.jw .jw-includes__list li { display: flex; align-items: baseline; gap: 1.25rem; padding: 1rem 0; border-bottom: 1px solid color-mix(in oklab, var(--jw-evergreen) 15%, transparent); }
.jw .jw-includes__list .n { font-family: var(--jw-font-display); font-size: 0.75rem; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--jw-copper); }
.jw .jw-includes__list .t { font-size: 1.125rem; color: var(--jw-ink); }
.jw .jw-includes__pics { position: relative; }
.jw .jw-includes__main { display: block; width: 100%; max-width: 28rem; margin-left: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--jw-radius-sm); box-shadow: var(--jw-shadow-photo); }
.jw .jw-includes__inset { display: none; position: absolute; left: 0; bottom: -2.5rem; width: 48%; aspect-ratio: 4 / 3; object-fit: cover; border: 8px solid var(--jw-cream); border-radius: var(--jw-radius-sm); box-shadow: var(--jw-shadow-photo); }
@media (min-width: 768px) {
  .jw .jw-includes__main { width: 85%; }
  .jw .jw-includes__inset { display: block; }
}

/* ---------- 15. Home: gentle ---------- */
.jw .jw-gentle { display: grid; align-items: center; gap: 3rem; }
@media (min-width: 768px) {
  .jw .jw-gentle { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .jw .jw-gentle__pic { grid-column: span 7 / span 7; }
  .jw .jw-gentle__text { grid-column: span 5 / span 5; }
}
.jw .jw-gentle__pic img { aspect-ratio: 3 / 2; width: 100%; object-fit: cover; }

/* ---------- 16. Home: FAQ sections ---------- */
.jw .jw-faq-sec { display: grid; gap: 3rem; padding-top: 6rem; padding-bottom: 6rem; }
.jw .jw-faq-sec--line { border-top: 1px solid var(--jw-border); }
@media (min-width: 768px) {
  .jw .jw-faq-sec { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .jw .jw-faq-sec__head { grid-column: span 4 / span 4; }
  .jw .jw-faq-sec__body { grid-column: span 8 / span 8; }
}

/* ---------- 17. Home: commercial ---------- */
.jw .jw-com-intro { text-align: center; padding-top: 5rem; padding-bottom: 5rem; }
.jw .jw-com-intro .jw-eyebrow { color: var(--jw-copper); }
.jw .jw-com-intro h2 { max-width: 56rem; margin: 1rem auto 0; }
.jw .jw-sectors { display: grid; gap: 1rem; margin-top: 3.5rem; }
@media (min-width: 768px) {
  .jw .jw-sectors { grid-template-columns: repeat(6, minmax(0, 1fr)); grid-template-rows: repeat(3, minmax(0, 220px)); }
  .jw .jw-tile--a { grid-column: span 4 / span 4; grid-row: span 2 / span 2; }
  .jw .jw-tile--b { grid-column: span 2 / span 2; grid-row: span 2 / span 2; }
  .jw .jw-tile--c { grid-column: span 2 / span 2; }
}
.jw .jw-tile { position: relative; overflow: hidden; min-height: 260px; border-radius: var(--jw-radius-sm); }
.jw .jw-tile > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s cubic-bezier(0.2, 0.7, 0.2, 1); }
.jw .jw-tile:hover > img { transform: scale(1.035); }
.jw .jw-tile__scrim { position: absolute; inset: 0; background: var(--jw-scrim-bottom); }
.jw .jw-tile__body { position: relative; display: flex; flex-direction: column; justify-content: flex-end; height: 100%; padding: 1.5rem; }
.jw .jw-tile__body h4 { font-family: var(--jw-font-display); font-size: 1.125rem; font-weight: 800; letter-spacing: 0.025em; text-transform: uppercase; line-height: 1.4; color: var(--jw-on-dark); }
.jw .jw-tile__body p { margin-top: 0.25rem; max-width: 24rem; font-size: 0.875rem; color: color-mix(in oklab, var(--jw-on-dark) 80%, transparent); }
.jw .jw-tile__body .jw-link-arrow { align-self: flex-start; margin-top: 1rem; color: var(--jw-gold); }
.jw .jw-tile__body .jw-link-arrow:hover { color: var(--jw-gold-soft); }

/* ---------- 18. Home: process preview ---------- */
.jw .jw-process__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.jw .jw-process__steps { position: relative; display: grid; gap: 2rem; margin-top: 4rem; }
.jw .jw-process__steps::before { content: ""; position: absolute; left: 0.3rem; top: 0.25rem; width: 1px; height: 100%; background: color-mix(in oklab, var(--jw-copper) 40%, transparent); }
.jw .jw-process__steps li { position: relative; padding-left: 2.5rem; }
.jw .jw-process__steps .jw-bulb { position: absolute; left: -0.05rem; top: 0.125rem; }
.jw .jw-process__steps .n { font-family: var(--jw-font-display); font-size: 0.75rem; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--jw-copper); }
.jw .jw-process__steps .t { margin-top: 0.25rem; font-family: var(--jw-font-display); font-size: 1.125rem; font-weight: 800; letter-spacing: 0.025em; text-transform: uppercase; color: var(--jw-evergreen); }
@media (min-width: 768px) {
  .jw .jw-process__steps { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1rem; }
  .jw .jw-process__steps::before { left: 0; top: 0.3rem; width: 100%; height: 1px; }
  .jw .jw-process__steps li { padding-left: 0; padding-top: 2.5rem; }
  .jw .jw-process__steps .jw-bulb { top: 0.15rem; }
}

/* ---------- 19. Home: service area ---------- */
.jw .jw-area .jw-eyebrow { color: var(--jw-copper); }
.jw .jw-area h2 { margin-top: 1rem; }
.jw .jw-area__towns { display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; margin-top: 1.5rem; }
.jw .jw-area__towns li { display: flex; align-items: center; gap: 0.5rem; font-family: var(--jw-font-display); font-size: 0.875rem; font-weight: 600; color: var(--jw-evergreen); }
.jw .jw-area__towns li::before { content: ""; width: 0.375rem; height: 0.375rem; border-radius: 9999px; background: var(--jw-gold); }

/* ---------- 20. Closing CTAs and gallery ---------- */
.jw .jw-cta-cream { overflow: hidden; text-align: center; }
.jw .jw-cta-cream h2 { margin-top: 1.5rem; }
.jw .jw-cta-cream p { max-width: 36rem; margin: 1.25rem auto 0; color: var(--jw-muted); }
/* CTA bulb: bigger, and changes color each time it blinks off */
.jw .jw-cta-cream .jw-bulb {
  width: 0.9rem;
  height: 1.5rem;
  animation: jw-cta-color 12.8s infinite;
}
@keyframes jw-cta-color {
  0%, 11.9%    { --bulb: #e53935; }
  12%, 36.9%   { --bulb: #ffc94a; }
  37%, 61.9%   { --bulb: #3ccf6e; }
  62%, 86.9%   { --bulb: #4d9bff; }
  87%, 100%    { --bulb: #e53935; }
}
.jw .jw-cta-green__mascot { display: none; position: absolute; right: 6%; bottom: -1.5rem; width: 9rem; opacity: 0.95; transform: rotate(6deg); pointer-events: none; }
@media (min-width: 768px) { .jw .jw-cta-green__mascot { display: block; } }
@media (min-width: 1024px) { .jw .jw-cta-green__mascot { width: 11rem; } }
.jw .jw-cta-green { text-align: center; }
.jw .jw-cta-green p { max-width: 32rem; margin: 1.5rem auto 0; color: var(--jw-on-dark-muted); }
.jw .jw-cta-green p a { color: var(--jw-on-dark); text-underline-offset: 4px; }
.jw .jw-cta-green p a:hover { text-decoration: underline; }
.jw .jw-gallery__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.jw .jw-gallery__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; margin-top: 2.5rem; }
.jw .jw-gallery__grid a img { aspect-ratio: 1 / 1; width: 100%; height: 100%; object-fit: cover; }
.jw .jw-gallery__grid a:first-child { grid-column: span 2 / span 2; grid-row: span 2 / span 2; }
@media (min-width: 768px) {
  .jw .jw-gallery__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1rem; }
  .jw .jw-gallery__grid a:nth-child(2) { grid-column: span 2 / span 2; }
}

/* ---------- 21. Inner pages: hero + breadcrumb ---------- */
.jw .jw-inner { position: relative; overflow: hidden; background: var(--jw-evergreen); color: var(--jw-on-dark); }
.jw .jw-inner__shade1 { position: absolute; inset: 0; background: color-mix(in oklab, var(--jw-evergreen) 85%, transparent); }
.jw .jw-inner__shade2 { position: absolute; inset: 0; background: linear-gradient(to top, var(--jw-evergreen), color-mix(in oklab, var(--jw-evergreen) 40%, transparent), color-mix(in oklab, var(--jw-evergreen) 70%, transparent)); }
.jw .jw-inner__in { position: relative; padding-top: 2.5rem; padding-bottom: 5rem; }
@media (min-width: 768px) { .jw .jw-inner__in { padding-bottom: 7rem; } }
.jw .jw-crumb { font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--jw-on-dark-muted); }
.jw .jw-crumb a:hover { color: var(--jw-gold); }
.jw .jw-crumb .sep { margin: 0 0.5rem; }
.jw .jw-crumb .cur { color: var(--jw-on-dark); }
.jw .jw-inner .jw-eyebrow { margin-top: 3.5rem; color: var(--jw-gold); }
.jw .jw-inner h1 { max-width: 56rem; margin-top: 1rem; font-size: 2.25rem; color: var(--jw-on-dark); }
@media (min-width: 768px) { .jw .jw-inner h1 { font-size: 3.75rem; } }
.jw .jw-inner__script { margin-top: 1rem; font-size: 2.25rem; color: var(--jw-gold); }
@media (min-width: 768px) { .jw .jw-inner__script { font-size: 3.75rem; } }

/* ---------- 22. Summit page sections ---------- */
.jw .jw-intro { padding-top: 4rem; padding-bottom: 4rem; text-align: center; }
@media (min-width: 768px) { .jw .jw-intro { padding-top: 5rem; padding-bottom: 5rem; } }
.jw .jw-intro .jw-lead { font-size: 1.125rem; }
@media (min-width: 768px) { .jw .jw-intro .jw-lead { font-size: 1.25rem; } }
.jw .jw-intro__btns { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; margin-top: 2.5rem; }
@media (min-width: 640px) { .jw .jw-intro__btns { flex-direction: row; } }

.jw .jw-split { display: grid; align-items: center; gap: 3rem; }
@media (min-width: 768px) {
  .jw .jw-split { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .jw .jw-split > * { grid-column: span 6 / span 6; }
}
.jw .jw-split img { width: 100%; object-fit: cover; box-shadow: var(--jw-shadow-photo); }
.jw .jw-split .ar-3-2 { aspect-ratio: 3 / 2; }
.jw .jw-split .ar-5-4 { aspect-ratio: 5 / 4; }

.jw .jw-cells { display: grid; gap: 1px; margin-top: 3rem; overflow: hidden; border-radius: var(--jw-radius-sm); background: color-mix(in oklab, var(--jw-on-dark) 15%, transparent); }
@media (min-width: 640px) { .jw .jw-cells { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .jw .jw-cells--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .jw .jw-cells--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.jw .jw-cell { padding: 2rem; background: var(--jw-evergreen); }
.jw .jw-cell h3 { font-family: var(--jw-font-display); font-size: 1.125rem; font-weight: 700; line-height: 1.4; color: var(--jw-on-dark); }
.jw .jw-cell .jw-bulb + h3 { margin-top: 1.25rem; }
.jw .jw-cell h3.jw-c-gold { color: var(--jw-gold); }
.jw .jw-cell p { margin-top: 0.75rem; font-size: 0.875rem; line-height: 1.625; color: var(--jw-on-dark-muted); }
.jw .jw-note { margin-top: 2rem; text-align: center; font-size: 0.875rem; color: var(--jw-on-dark-muted); }

.jw .jw-prose { margin-top: 2rem; display: grid; gap: 1.25rem; line-height: 1.625; color: var(--jw-muted); }

.jw .jw-items { display: grid; gap: 2.5rem; margin-top: 3rem; }
@media (min-width: 640px) { .jw .jw-items { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .jw .jw-items--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 768px) { .jw .jw-items--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .jw .jw-items--3 { grid-template-columns: 1fr; } }
.jw .jw-item h3 { font-family: var(--jw-font-display); font-size: 1.125rem; font-weight: 700; line-height: 1.4; color: var(--jw-ink); }
.jw .jw-item .jw-bulb + h3 { margin-top: 1.25rem; }
.jw .jw-item h3.jw-step-h { margin-top: 1rem; }
.jw .jw-item p { margin-top: 0.75rem; font-size: 0.875rem; line-height: 1.625; color: var(--jw-muted); }
.jw .jw-item .num { display: block; font-family: var(--jw-font-display); font-size: 3.75rem; font-weight: 800; line-height: 1; color: var(--jw-gold); }

.jw .jw-towns { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem 1.5rem; margin-top: 2rem; }
.jw .jw-towns li { display: flex; align-items: center; gap: 0.75rem; font-size: 0.875rem; color: var(--jw-on-dark); }
.jw .jw-towns li::before { content: ""; width: 0.25rem; height: 0.25rem; border-radius: 9999px; background: var(--jw-gold); }

.jw .jw-band h2 { }
.jw .jw-band--red p { margin-top: 1.5rem; line-height: 1.625; color: color-mix(in oklab, var(--jw-on-dark) 85%, transparent); }
.jw .jw-band--gold .jw-wrap { display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 1.5rem; padding-top: 2.5rem; padding-bottom: 2.5rem; }
@media (min-width: 768px) { .jw .jw-band--gold .jw-wrap { flex-direction: row; } }
.jw .jw-band--gold h2 { font-weight: 800; }

.jw .jw-explore { border-top: 1px solid var(--jw-border); text-align: center; padding-top: 3.5rem; padding-bottom: 3.5rem; }
.jw .jw-explore .jw-eyebrow { color: var(--jw-copper); }
.jw .jw-explore ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem 1.5rem; margin-top: 1.5rem; }
.jw .jw-explore a { font-size: 0.875rem; }




/* ==========================================================================
   PART 2: Residential, Commercial, Process, Portfolio, Reviews, Contact
   ========================================================================== */

.jw {
  --jw-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  --jw-card: oklch(0.975 0.015 85);
}

/* ---------- Check lists: cone bulb bullets (all .jw-checks and .jw-svclist lists) ---------- */
.jw .jw-checks { display: grid; gap: 0.75rem; margin-bottom: 15px; }
.jw .jw-checks li,
.jw .jw-svclist li {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
}
.jw .jw-pkg .jw-checks li { font-size: 14px; }

/* Bulb */
.jw .jw-checks li::before,
.jw .jw-svclist li::before {
  content: "";
  flex: none;
  width: 0.7rem;
  height: 1.15rem;
  margin: 0.1rem 0.15rem 0;
  -webkit-mask: var(--jw-cone) center / contain no-repeat;
          mask: var(--jw-cone) center / contain no-repeat;
  background:
    radial-gradient(circle at 35% 52%, rgba(255, 255, 255, 0.8) 0 9%, transparent 16%),
    linear-gradient(var(--jw-copper) 0 27%, var(--bulb, #e53935) 27%);
  animation: jw-bulb 3.2s infinite;
  animation-delay: calc(var(--i, 0) * 0.35s + var(--c, 0) * 0.2s);
}

/* Glow halo behind the bulb */
.jw .jw-checks li::after,
.jw .jw-svclist li::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: -0.2rem;
  top: 0.1rem;
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 50%;
  background: radial-gradient(circle, var(--bulb, #e53935) 0%, transparent 65%);
  pointer-events: none;
  animation: jw-glow 3.2s infinite;
  animation-delay: calc(var(--i, 0) * 0.35s + var(--c, 0) * 0.2s);
}

/* Colors: red, gold, green, blue */
.jw .jw-checks li:nth-child(4n+1),
.jw .jw-svclist li:nth-child(4n+1) { --bulb: #e53935; }
.jw .jw-checks li:nth-child(4n+2),
.jw .jw-svclist li:nth-child(4n+2) { --bulb: #ffc94a; }
.jw .jw-checks li:nth-child(4n+3),
.jw .jw-svclist li:nth-child(4n+3) { --bulb: #3ccf6e; }
.jw .jw-checks li:nth-child(4n+4),
.jw .jw-svclist li:nth-child(4n+4) { --bulb: #4d9bff; }

/* Chase order: position in the list */
.jw .jw-checks li:nth-child(2),
.jw .jw-svclist li:nth-child(2) { --i: 1; }
.jw .jw-checks li:nth-child(3),
.jw .jw-svclist li:nth-child(3) { --i: 2; }
.jw .jw-checks li:nth-child(4),
.jw .jw-svclist li:nth-child(4) { --i: 3; }
.jw .jw-checks li:nth-child(5),
.jw .jw-svclist li:nth-child(5) { --i: 4; }
.jw .jw-checks li:nth-child(6),
.jw .jw-svclist li:nth-child(6) { --i: 5; }
.jw .jw-checks li:nth-child(7),
.jw .jw-svclist li:nth-child(7) { --i: 6; }
.jw .jw-checks li:nth-child(8),
.jw .jw-svclist li:nth-child(8) { --i: 7; }

.jw .jw-checks--copper li { color: var(--jw-ink); font-size: 1rem; line-height: 1.625; gap: 0.75rem; }
.jw .jw-checks--copper li::before { margin-top: 0.3rem; }
.jw .jw-checks--copper li::after { top: 0.3rem; }
.jw .jw-checks--copper { gap: 1rem; }

/* Lights stay on, no blinking, for visitors who turn off motion */
@media (prefers-reduced-motion: reduce) {
  .jw .jw-bulb,
  .jw .jw-bulb::before,
  .jw .jw-bulb::after,
  .jw .jw-checks li::before,
  .jw .jw-checks li::after,
  .jw .jw-svclist li::before,
  .jw .jw-svclist li::after { }
}

/* ---------- Package cards: extra bits used on Home ---------- */
.jw .jw-pkg { display: flex; flex-direction: column; }
.jw .jw-pkg__tag { margin-top: 0.25rem; font-family: var(--jw-font-display); font-size: 0.62rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--jw-on-dark-muted); }
.jw .jw-pkg .jw-checks { margin-top: 1.5rem; }
.jw .jw-pkg__note { margin-top: 1.25rem; font-size: 0.75rem; font-style: italic; line-height: 1.6; color: var(--jw-on-dark-muted); }
.jw .jw-pkg__best { min-height: 2.15rem; line-height: 1.375; margin-top: 2rem; }
@media (min-width: 1024px) { .jw .jw-pkg__best { margin-top: auto; } }
@media (min-width: 1024px) { .jw .jw-pkg .jw-pkg__best { margin-top: auto; } }

/* ---------- Extra buttons ---------- */
.jw .jw-btn--ghost { background: transparent; border: 1px solid var(--jw-evergreen); color: var(--jw-evergreen); }
.jw .jw-btn--ghost:hover { background: var(--jw-sand); color: var(--jw-evergreen); }
.jw .jw-btn--text { background: transparent; color: var(--jw-evergreen); }
.jw .jw-btn--text:hover { background: transparent; color: var(--jw-brand-red); }
.jw .jw-btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem; margin-top: 2rem; }

/* ---------- Generic helpers ---------- */
.jw .jw-split--flat img { box-shadow: none; }
.jw .jw-split .ar-4-3 { aspect-ratio: 4 / 3; }
.jw .jw-split .ar-4-5 { aspect-ratio: 4 / 5; max-height: 600px; }
.jw .jw-split img { border-radius: var(--jw-radius-sm); }
.jw .jw-intro--sm { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.jw .jw-mt-7 { margin-top: 1.75rem; }
.jw .jw-inline { display: inline-block; }
.jw .jw-mb-10 { margin-bottom: 2.5rem; }
.jw .jw-h2-sub { margin-top: 0.5rem; }

/* ---------- Residential: package panel ---------- */
.jw .jw-rpk { display: grid; gap: 1.25rem; margin-top: 3rem; }
@media (min-width: 640px) { .jw .jw-rpk { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1280px) { .jw .jw-rpk { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.jw .jw-rpk__card { display: flex; flex-direction: column; padding: 1.5rem; border: 1px solid color-mix(in oklab, var(--jw-on-dark) 20%, transparent); background: color-mix(in oklab, var(--jw-evergreen-deep) 70%, transparent); }
.jw .jw-rpk__card h3 { margin-top: 1.25rem; font-family: var(--jw-font-display); font-size: 1.875rem; font-weight: 800; text-transform: uppercase; line-height: 1.2; color: var(--jw-gold); }
.jw .jw-rpk__tag { margin-top: 0.5rem; font-size: 0.75rem; text-transform: uppercase; color: var(--jw-on-dark-muted); }
.jw .jw-rpk__card .jw-checks { margin-top: 1.5rem; gap: 1rem; }
.jw .jw-rpk__card .jw-checks li { color: var(--jw-on-dark); line-height: 1.6; }
.jw .jw-rpk__card .jw-pkg__note { margin-top: 1.25rem; }
.jw .jw-rpk__card .jw-link-arrow { align-self: flex-start; margin-top: 2rem; color: var(--jw-gold); }
.jw .jw-rpk__card .jw-link-arrow:hover { color: var(--jw-gold-soft); }
.jw .jw-rpk__intro { max-width: 42rem; margin: 1.5rem auto 0; text-align: center; line-height: 1.625; color: var(--jw-on-dark-muted); }

/* ---------- Residential: how it works (circles) ---------- */
.jw .jw-hsteps { display: grid; gap: 2.25rem; margin-top: 3rem; }
@media (min-width: 640px) { .jw .jw-hsteps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .jw .jw-hsteps { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.jw .jw-hsteps li { text-align: center; }
.jw .jw-hsteps .circ { display: flex; align-items: center; justify-content: center; width: 3.5rem; height: 3.5rem; margin: 0 auto; border: 1px solid var(--jw-gold); border-radius: 9999px; font-family: var(--jw-font-display); font-size: 1.25rem; font-weight: 600; color: var(--jw-evergreen); }
.jw .jw-hsteps h3 { margin-top: 1.25rem; font-family: var(--jw-font-display); font-size: 1rem; font-weight: 700; text-transform: uppercase; line-height: 1.4; color: var(--jw-ink); }
.jw .jw-hsteps p { margin-top: 0.75rem; font-size: 0.875rem; line-height: 1.625; color: var(--jw-muted); }
.jw .jw-hsteps-link { margin-top: 2.5rem; text-align: center; }
.jw .jw-hsteps-link .jw-link-arrow { color: var(--jw-evergreen); }
.jw .jw-hsteps-link .jw-link-arrow:hover { color: var(--jw-copper); }

/* ---------- Service area / booking (shared by Residential + Commercial) ---------- */
.jw .jw-svc p { max-width: 42rem; margin: 1.5rem auto 0; line-height: 1.625; color: var(--jw-on-dark-muted); }
.jw .jw-svc .jw-btn { margin-top: 2rem; }
.jw .jw-towns2 { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem 1.75rem; margin-top: 2.25rem; }
.jw .jw-towns2 li { padding-bottom: 0.5rem; border-bottom: 1px solid color-mix(in oklab, var(--jw-copper) 50%, transparent); font-family: var(--jw-font-display); font-size: 0.875rem; font-weight: 600; color: var(--jw-evergreen); }
.jw .jw-towns2 a:hover { color: var(--jw-brand-red); }
.jw .jw-book h2 .jw-display { font-size: 1.5rem; }
.jw .jw-book h2 .jw-script { display: inline-block; font-size: 2.25rem; color: var(--jw-on-dark); }
.jw .jw-book p { margin-top: 1.25rem; line-height: 1.625; color: var(--jw-on-dark); }
.jw .jw-ready { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1.5rem; padding-top: 2.25rem; padding-bottom: 2.25rem; }
.jw .jw-ready h2 { font-family: var(--jw-font-display); font-size: 1.25rem; font-weight: 500; text-transform: uppercase; line-height: 1.3; color: var(--jw-evergreen-deep); }
.jw .jw-crosslink { text-align: center; padding-top: 3rem; padding-bottom: 3rem; }
.jw .jw-crosslink p { color: var(--jw-muted); }
.jw .jw-crosslink .jw-link-arrow { margin-top: 1rem; color: var(--jw-evergreen); }
.jw .jw-crosslink .jw-link-arrow:hover { color: var(--jw-copper); }

/* ---------- Commercial ---------- */
.jw .jw-cintro { display: grid; align-items: center; gap: 2rem; padding-top: 3rem; padding-bottom: 3rem; }
@media (min-width: 768px) { .jw .jw-cintro { grid-template-columns: 1fr auto; } }
.jw .jw-cintro > div { max-width: 48rem; }
.jw .jw-cintro__mascot { display: none; width: 8rem; }
@media (min-width: 768px) { .jw .jw-cintro__mascot { display: block; } }
.jw .jw-strip { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem 3rem; padding-top: 1.25rem; padding-bottom: 1.25rem; font-family: var(--jw-font-display); font-size: 0.75rem; font-weight: 700; text-transform: uppercase; color: var(--jw-evergreen-deep); }
.jw .jw-cards { display: grid; gap: 1.5rem; margin-top: 3rem; }
@media (min-width: 640px) { .jw .jw-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .jw .jw-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.jw .jw-card { overflow: hidden; border-radius: var(--jw-radius-sm); background: var(--jw-evergreen); color: var(--jw-on-dark); }
.jw .jw-card img { aspect-ratio: 4 / 3; width: 100%; object-fit: cover; }
.jw .jw-card__body { padding: 1.5rem; }
.jw .jw-card__body h3 { font-family: var(--jw-font-display); font-size: 1.25rem; font-weight: 700; text-transform: uppercase; line-height: 1.3; color: var(--jw-on-dark); }
.jw .jw-card__body p { margin-top: 0.75rem; font-size: 0.875rem; line-height: 1.625; color: var(--jw-on-dark-muted); }
.jw .jw-card__body .jw-link-arrow { margin-top: 1.5rem; color: var(--jw-gold); }
.jw .jw-card__body .jw-link-arrow:hover { color: var(--jw-gold-soft); }
.jw .jw-svclist { display: grid; gap: 1.25rem; margin-top: 2rem; }
.jw .jw-svclist li { display: flex; gap: 0.75rem; }
.jw .jw-svclist h3 { font-family: var(--jw-font-display); font-size: 0.875rem; font-weight: 700; text-transform: uppercase; color: var(--jw-ink); }
.jw .jw-svclist p { margin-top: 0.25rem; font-size: 0.875rem; line-height: 1.625; color: var(--jw-muted); }
.jw .jw-isteps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.25rem; margin-top: 3rem; }
@media (min-width: 640px) { .jw .jw-isteps { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.jw .jw-isteps li { text-align: center; }
.jw .jw-isteps svg { display: block; width: 2.25rem; height: 2.25rem; margin: 0 auto; color: var(--jw-gold); fill: none; stroke: currentColor; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; }
.jw .jw-isteps h3 { margin-top: 1rem; font-family: var(--jw-font-display); font-size: 0.875rem; font-weight: 700; text-transform: uppercase; color: var(--jw-on-dark); }
.jw .jw-centernote { margin-top: 2rem; text-align: center; color: var(--jw-on-dark-muted); }
.jw .jw-centerlink { margin-top: 1.5rem; text-align: center; }
.jw .jw-centerlink .jw-link-arrow { color: var(--jw-gold); }

/* ---------- Our process page ---------- */
.jw .jw-wire { position: relative; background: var(--jw-cream); }
.jw .jw-wire::before { content: ""; display: none; position: absolute; left: 1.5rem; top: 0; width: 1px; height: 100%; background: linear-gradient(to bottom, transparent, color-mix(in oklab, var(--jw-gold) 50%, transparent), transparent); }
@media (min-width: 1280px) { .jw .jw-wire::before { display: block; } }
.jw .jw-marker { display: flex; align-items: center; gap: 1rem; }
.jw .jw-marker span:last-child { font-family: var(--jw-font-display); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.2em; color: var(--jw-copper); }
.jw .jw-stephead { display: flex; align-items: flex-end; gap: 1rem; margin-top: 1.5rem; }
.jw .jw-stephead .big { font-family: var(--jw-font-display); font-size: 4.5rem; font-weight: 800; line-height: 1; color: var(--jw-sand); }
.jw .jw-stephead h2 { padding-bottom: 0.5rem; font-family: var(--jw-font-display); font-size: 1.875rem; font-weight: 800; letter-spacing: 0.025em; text-transform: uppercase; line-height: 1.15; color: var(--jw-ink); }
.jw .jw-stepsub { margin-top: 1rem; font-family: var(--jw-font-display); font-size: 1.25rem; color: var(--jw-copper); }
.jw .jw-stepsub strong { font-weight: 700; color: var(--jw-evergreen); }
@media (min-width: 768px) {
  .jw .jw-stephead .big { font-size: 6rem; }
  .jw .jw-stephead h2 { font-size: 2.25rem; }
}
.jw .jw-step--dark .jw-marker span:last-child { color: var(--jw-on-dark-muted); }
.jw .jw-step--dark .jw-stephead .big { color: color-mix(in oklab, var(--jw-on-dark) 15%, transparent); }
.jw .jw-step--dark .jw-stephead h2 { color: var(--jw-on-dark); }
.jw .jw-step--dark .jw-stepsub { color: var(--jw-on-dark-muted); }
.jw .jw-step--dark .jw-stepsub strong { color: var(--jw-gold); }
.jw .jw-p { margin-top: 1.5rem; line-height: 1.625; color: var(--jw-muted); }
.jw .jw-p + .jw-p { margin-top: 1rem; }

.jw .jw-s1 { display: grid; align-items: center; gap: 3rem; padding-top: 5rem; padding-bottom: 5rem; }
@media (min-width: 768px) {
  .jw .jw-s1 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .jw .jw-s1__text { grid-column: span 5 / span 5; }
  .jw .jw-s1__pic { grid-column: span 7 / span 7; }
}
.jw .jw-s1__pic img { aspect-ratio: 3 / 2; width: 100%; object-fit: cover; box-shadow: var(--jw-shadow-photo); }

.jw .jw-s2 { padding-top: 3rem; padding-bottom: 3rem; }
@media (min-width: 768px) { .jw .jw-s2 { padding-top: 5rem; padding-bottom: 5rem; } }
.jw .jw-s2__in { position: relative; }
.jw .jw-s2__in > img { aspect-ratio: 4 / 3; width: 100%; object-fit: cover; border-radius: var(--jw-radius-sm); }
.jw .jw-s2__panel { position: relative; margin: -4rem 0 0 1rem; padding: 2rem; background: var(--jw-card); box-shadow: var(--jw-shadow-photo); }
@media (min-width: 768px) {
  .jw .jw-s2__in > img { aspect-ratio: 16 / 8; width: 78%; }
  .jw .jw-s2__panel { position: absolute; right: 0; bottom: -3rem; width: 46%; margin: 0; padding: 3rem; }
}

.jw .jw-s3 { display: grid; align-items: end; gap: 3rem; padding-top: 6rem; padding-bottom: 5rem; }
@media (min-width: 768px) {
  .jw .jw-s3 { grid-template-columns: repeat(12, minmax(0, 1fr)); padding-top: 9rem; }
  .jw .jw-s3__text { grid-column: 2 / span 6; }
  .jw .jw-s3__pic { grid-column: span 4 / span 4; }
}
.jw .jw-s3__pic { aspect-ratio: 5 / 4; width: 100%; object-fit: cover; border-radius: var(--jw-radius-sm); box-shadow: var(--jw-shadow-photo); }

.jw .jw-s4 { position: relative; isolation: isolate; overflow: hidden; background: var(--jw-evergreen-deep); color: var(--jw-on-dark); }
.jw .jw-s4__bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; opacity: 0.6; }
.jw .jw-s4__scrim { position: absolute; inset: 0; z-index: -1; background: var(--jw-scrim-hero); }
.jw .jw-s4__in { display: grid; gap: 3rem; padding-top: 6rem; padding-bottom: 6rem; }
@media (min-width: 768px) {
  .jw .jw-s4__in { grid-template-columns: repeat(12, minmax(0, 1fr)); padding-top: 9rem; padding-bottom: 9rem; }
  .jw .jw-s4__text { grid-column: span 6 / span 6; }
  .jw .jw-s4__pic { grid-column: 8 / span 5; }
}
.jw .jw-s4 .jw-p { color: color-mix(in oklab, var(--jw-on-dark) 85%, transparent); }
.jw .jw-dots { display: grid; gap: 0.5rem 1.5rem; margin-top: 1.5rem; font-size: 0.875rem; color: var(--jw-on-dark-muted); }
@media (min-width: 640px) { .jw .jw-dots { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.jw .jw-dots li { display: flex; align-items: center; gap: 0.75rem; }
.jw .jw-dots li::before { content: ""; width: 0.25rem; height: 0.25rem; border-radius: 9999px; background: var(--jw-gold); }
.jw .jw-s4__pic { display: none; align-self: end; aspect-ratio: 4 / 3; width: 100%; object-fit: cover; border: 8px solid color-mix(in oklab, var(--jw-on-dark) 10%, transparent); border-radius: var(--jw-radius-sm); }
@media (min-width: 768px) { .jw .jw-s4__pic { display: block; } }

.jw .jw-s5 { display: grid; align-items: center; gap: 2.5rem; max-width: 72rem; padding-top: 5rem; padding-bottom: 5rem; }
@media (min-width: 768px) {
  .jw .jw-s5 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .jw .jw-s5__pic { grid-column: span 4 / span 4; }
  .jw .jw-s5__text { grid-column: 6 / span 7; }
}
.jw .jw-s5__pic { aspect-ratio: 1 / 1; width: 100%; object-fit: cover; border-radius: 9999px; box-shadow: var(--jw-shadow-photo); }

.jw .jw-s6 { display: grid; }
@media (min-width: 768px) { .jw .jw-s6 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.jw .jw-s6 > img { aspect-ratio: 4 / 3; width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 768px) { .jw .jw-s6 > img { aspect-ratio: auto; } }
.jw .jw-s6__text { display: flex; align-items: center; padding: 5rem 1rem; }
@media (min-width: 768px) { .jw .jw-s6__text { padding: 5rem 4rem; } }
.jw .jw-s6__text > div { max-width: 28rem; }

.jw .jw-s7 > img { aspect-ratio: 16 / 9; width: 100%; object-fit: cover; border-radius: var(--jw-radius-sm); box-shadow: var(--jw-shadow-photo); }
@media (min-width: 768px) { .jw .jw-s7 > img { aspect-ratio: 21 / 9; } }
.jw .jw-s7__grid { display: grid; gap: 2rem; margin-top: 3rem; }
@media (min-width: 768px) {
  .jw .jw-s7__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .jw .jw-s7__a { grid-column: span 5 / span 5; }
  .jw .jw-s7__b { grid-column: 7 / span 6; padding-top: 4rem; }
}
.jw .jw-s7__b p { font-size: 1.125rem; line-height: 1.625; color: var(--jw-muted); }

/* ---------- Reviews stub ---------- */
.jw .jw-stub { background: var(--jw-evergreen); color: var(--jw-on-dark); background-image: repeating-linear-gradient(-28deg, transparent 0 46px, color-mix(in oklab, var(--jw-gold) 9%, transparent) 46px 47px); }
.jw .jw-stub .jw-wrap { padding-top: 5rem; padding-bottom: 5rem; }
@media (min-width: 768px) { .jw .jw-stub .jw-wrap { padding-top: 7rem; padding-bottom: 7rem; } }
.jw .jw-stub .jw-eyebrow { color: var(--jw-gold); }
.jw .jw-stub h1 { margin-top: 1rem; font-size: 2.25rem; color: var(--jw-on-dark); }
.jw .jw-stub__script { margin-top: 0.75rem; font-size: 2.25rem; color: var(--jw-gold); }
@media (min-width: 768px) { .jw .jw-stub h1 { font-size: 3.75rem; } .jw .jw-stub__script { font-size: 3rem; } }
.jw .jw-stubbody { text-align: center; padding-top: 5rem; padding-bottom: 5rem; }
.jw .jw-stubbody .jw-link-arrow { margin-top: 2rem; color: var(--jw-evergreen); }
.jw .jw-stubbody .jw-link-arrow:hover { color: var(--jw-copper); }

/* ---------- Portfolio ---------- */
.jw .jw-pf { padding-top: 3.5rem; padding-bottom: 3.5rem; }
@media (min-width: 768px) { .jw .jw-pf { padding-top: 5rem; padding-bottom: 5rem; } }
.jw .jw-pf__head { display: flex; flex-direction: column; justify-content: space-between; gap: 1.5rem; margin-bottom: 2.5rem; }
@media (min-width: 768px) { .jw .jw-pf__head { flex-direction: row; align-items: flex-end; margin-bottom: 3.5rem; } }
.jw .jw-pf__head > div { max-width: 42rem; }
.jw .jw-pf__head .jw-eyebrow { color: var(--jw-evergreen); }
.jw .jw-pf__head h2 { margin-top: 1rem; }
.jw .jw-pf__head p.jw-body { max-width: 36rem; margin-top: 1.25rem; }
.jw .jw-pf__head .jw-btn { align-self: flex-start; flex-shrink: 0; }
.jw .jw-pf__cols { columns: 1; column-gap: 1.5rem; }
@media (min-width: 640px) { .jw .jw-pf__cols { columns: 2; } }
@media (min-width: 1024px) { .jw .jw-pf__cols { columns: 3; column-gap: 2rem; } }
.jw .jw-pf__fig { margin-bottom: 2rem; break-inside: avoid; }
.jw .jw-pf__fig--feat { margin-bottom: 2.5rem; }
@media (min-width: 768px) { .jw .jw-pf__fig { margin-bottom: 2.5rem; } .jw .jw-pf__fig--feat { margin-bottom: 3.5rem; } }
.jw .jw-pf__btn { position: relative; display: block; width: 100%; padding: 0; overflow: hidden; border: 0; border-radius: var(--jw-radius-sm); background: transparent; line-height: 0; }
.jw .jw-pf__btn:hover,
.jw .jw-pf__btn:focus { background: transparent; }
.jw .jw-pf__btn img { display: block; width: 100%; height: auto; transition: transform 1.1s cubic-bezier(0.2, 0.7, 0.2, 1); }
.jw .jw-pf__btn:hover img { transform: scale(1.035); }
.jw .jw-pf__btn .ex { position: absolute; right: 1rem; bottom: 1rem; display: flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border-radius: var(--jw-radius-sm); background: color-mix(in oklab, var(--jw-evergreen) 90%, transparent); color: var(--jw-on-dark); transition: background-color 0.2s ease; }
.jw .jw-pf__btn:hover .ex { background: var(--jw-evergreen); }
.jw .jw-pf__btn .ex svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.jw .jw-pf__fig figcaption { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.75rem; margin-top: 1rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--jw-border); }
.jw .jw-pf__fig figcaption p { font-size: 0.75rem; color: var(--jw-muted); }
.jw .jw-pf__fig figcaption h3 { margin-top: 0.5rem; font-family: var(--jw-font-display); font-size: 1.125rem; font-weight: 600; line-height: 1.4; color: var(--jw-ink); }
.jw .jw-pf__fig--feat figcaption h3 { font-size: 1.25rem; }
@media (min-width: 768px) { .jw .jw-pf__fig--feat figcaption h3 { font-size: 1.5rem; } }
.jw .jw-pf__fig figcaption span { padding-top: 0.25rem; font-family: var(--jw-font-display); font-size: 0.75rem; color: var(--jw-muted); }

.jw .jw-lb { width: calc(100% - 2rem); max-width: 72rem; margin: auto; padding: 3rem 1rem 1rem; border: 1px solid var(--jw-evergreen-2); background: var(--jw-evergreen-deep); color: var(--jw-on-dark); }
@media (min-width: 640px) { .jw .jw-lb { padding: 3rem 1.5rem 1.5rem; } }
.jw .jw-lb::backdrop { background: rgb(0 0 0 / 0.8); }
.jw .jw-lb img { display: block; width: 100%; height: min(65vh, 800px); object-fit: contain; }
.jw .jw-lb__foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 0.75rem; }
.jw .jw-lb__foot h3 { font-family: var(--jw-font-display); font-size: 1rem; line-height: 1.4; color: var(--jw-on-dark); }
.jw .jw-lb__foot p { margin-top: 0.25rem; font-size: 0.75rem; color: var(--jw-on-dark-muted); }
.jw .jw-lb__nav { display: flex; flex-shrink: 0; align-items: center; gap: 0.5rem; }
.jw .jw-lb__nav span { min-width: 2rem; text-align: center; font-size: 0.75rem; font-variant-numeric: tabular-nums; color: var(--jw-on-dark-muted); }
.jw .jw-lb button { display: flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; padding: 0; border: 0; border-radius: var(--jw-radius); background: transparent; color: var(--jw-on-dark); }
.jw .jw-lb button:hover,
.jw .jw-lb button:focus { background: color-mix(in oklab, var(--jw-on-dark) 12%, transparent); color: var(--jw-on-dark); }
.jw .jw-lb button svg { width: 1.1rem; height: 1.1rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.jw .jw-lb__close { position: absolute; top: 0.5rem; right: 0.5rem; }

/* ---------- Contact page ---------- */
.jw.jw-contact-section { background: var(--jw-cream); }
.jw .jw-contact-grid { display: grid !important; grid-template-columns: minmax(0, 1fr); gap: 3rem; width: 100%; max-width: 80rem; margin: 0 auto; padding: 4rem 1rem; }
@media (min-width: 768px) { .jw .jw-contact-grid { padding: 5rem 1.5rem; } }
@media (min-width: 1024px) { .jw .jw-contact-grid { grid-template-columns: 0.85fr 1.15fr; gap: 5rem; } }
.jw .jw-contact-info .jw-eyebrow { color: var(--jw-copper); }
.jw .jw-contact-info h2.name { margin-top: 1rem; font-family: var(--jw-font-display); font-size: 1.5rem; font-weight: 800; color: var(--jw-ink); }
.jw .jw-contact-info .loc { display: flex; align-items: center; gap: 0.5rem; margin-top: 0.5rem; color: var(--jw-muted); }
.jw .jw-contact-info svg.i { width: 1rem; height: 1rem; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.jw .jw-contact-info .loc svg { color: var(--jw-evergreen); }
.jw .jw-contact-info address { display: grid; gap: 0.75rem; margin-top: 1.75rem; font-style: normal; }
.jw .jw-contact-info address a { display: flex; align-items: center; gap: 0.75rem; font-weight: 600; color: var(--jw-evergreen); word-break: break-all; }
.jw .jw-contact-info address a:hover { color: var(--jw-brand-red); }
.jw .jw-contact-info .jw-social { gap: 1rem; margin-top: 1.5rem; color: var(--jw-evergreen); }
.jw .jw-contact-info .jw-social a { align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border: 1px solid color-mix(in oklab, var(--jw-copper) 60%, transparent); border-radius: 9999px; }
.jw .jw-next { margin-top: 3rem; padding-top: 2.5rem; border-top: 1px solid var(--jw-border); }
@media (min-width: 1024px) { .jw .jw-next { margin-top: 4rem; } }
.jw .jw-next h2 { font-family: var(--jw-font-display); font-size: 1.5rem; font-weight: 300; text-transform: uppercase; color: var(--jw-ink); }
.jw .jw-next h2 .jw-script { margin-left: 0.25rem; font-size: 3rem; color: var(--jw-brand-red); }
.jw .jw-next ol { display: grid; gap: 1.5rem; margin-top: 2rem; }
.jw .jw-next li { display: flex; gap: 1rem; }
.jw .jw-next li .n { margin-top: 0.25rem; font-family: var(--jw-font-display); font-size: 0.875rem; font-weight: 800; color: var(--jw-copper); }
.jw .jw-next h3 { font-size: 1rem; font-weight: 700; color: var(--jw-ink); }
.jw .jw-next li p { margin-top: 0.25rem; font-size: 0.875rem; line-height: 1.625; color: var(--jw-muted); }
.jw .jw-next > p { margin-top: 2rem; font-size: 0.875rem; line-height: 1.625; color: var(--jw-muted); }
.jw .jw-next > p a { font-weight: 600; color: var(--jw-evergreen); text-decoration: underline; text-decoration-color: var(--jw-copper); text-underline-offset: 4px; }

.jw .jw-form-panel { padding: 2.25rem 1.25rem; background: color-mix(in oklab, var(--jw-sand) 55%, var(--jw-cream)); }
@media (min-width: 640px) { .jw .jw-form-panel { padding: 2.5rem 2rem; } }
@media (min-width: 1024px) { .jw .jw-form-panel { padding: 2.5rem; } }
.jw .jw-form-panel h2 { text-align: center; font-family: var(--jw-font-display); font-size: 1.875rem; font-weight: 300; line-height: 1.2; color: var(--jw-ink); }
.jw .jw-form-panel h2 .jw-script { display: block; margin-top: 0.5rem; font-size: 3rem; color: var(--jw-brand-red); }
.jw .jw-form-panel .req { margin-top: 1.25rem; text-align: center; font-size: 0.875rem; color: var(--jw-muted); }
.jw .jw-form-panel .req span { color: var(--jw-brand-red); }
.jw .jw-form-panel .elementor-widget-form { margin-top: 2rem; }
.jw .jw-form .elementor-form { font-family: var(--jw-font-sans); }
.jw .jw-form .elementor-field-group { margin-bottom: 0; padding-bottom: 1.25rem; }
.jw .jw-form .elementor-field-label { display: block; margin-bottom: 0.5rem; font-family: var(--jw-font-sans); font-size: 0.875rem; font-weight: 700; color: var(--jw-evergreen); }
.jw .jw-form .elementor-mark-required .elementor-field-label::after { content: " *"; color: var(--jw-brand-red); padding: 0; }
.jw .jw-form .elementor-field-textual,
.jw .jw-form .elementor-field-group .elementor-select-wrapper select {
  width: 100%;
  min-height: 3rem;
  padding: 0 0.75rem;
  border: 1px solid color-mix(in oklab, var(--jw-copper) 50%, transparent);
  border-radius: var(--jw-radius-sm);
  background-color: var(--jw-card);
  box-shadow: none;
  font-family: var(--jw-font-sans);
  font-size: 1rem;
  color: var(--jw-ink);
}
.jw .jw-form textarea.elementor-field-textual { min-height: 8rem; padding: 0.75rem; }
.jw .jw-form .elementor-field-textual:focus,
.jw .jw-form .elementor-field-group .elementor-select-wrapper select:focus { border-color: var(--jw-evergreen); outline: 2px solid color-mix(in oklab, var(--jw-evergreen) 35%, transparent); outline-offset: 0; box-shadow: none; }
.jw .jw-form .elementor-select-wrapper select { height: 3rem; }
.jw .jw-form .elementor-button {
  min-height: 3rem;
  padding: 0 1.75rem;
  border: 0;
  border-radius: var(--jw-radius);
  background: var(--jw-evergreen);
  font-family: var(--jw-font-display);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--jw-on-dark);
  transition: background-color 0.25s ease;
}
.jw .jw-form .elementor-button:hover,
.jw .jw-form .elementor-button:focus { background: var(--jw-evergreen-2); color: var(--jw-on-dark); }
.jw .jw-form .elementor-message { font-family: var(--jw-font-sans); font-size: 0.9375rem; }
.jw .jw-form .elementor-message-success { color: var(--jw-evergreen); }
.jw .jw-form .elementor-message-danger { color: var(--jw-brand-red); }
.jw .jw-form-panel .legal { margin-top: 0.5rem; font-size: 0.75rem; line-height: 1.6; color: var(--jw-muted); }

.jw .jw-ctapanel .jw-wrap { text-align: center; padding-top: 4rem; padding-bottom: 4rem; }
@media (min-width: 768px) { .jw .jw-ctapanel .jw-wrap { padding-top: 5rem; padding-bottom: 5rem; } }
.jw .jw-ctapanel h2 { font-size: 3rem; color: var(--jw-gold); }
@media (min-width: 768px) { .jw .jw-ctapanel h2 { font-size: 3.75rem; } }
.jw .jw-ctapanel p { margin-top: 1.5rem; color: var(--jw-on-dark-muted); }
.jw .jw-ctapanel p a { color: var(--jw-on-dark); text-decoration: underline; text-underline-offset: 4px; }


.jw .jw-inner h1.jw-mt-14 { margin-top: 3.5rem; }



/* ==========================================================================
   PART 3: Towns index, town pages, legal pages
   ========================================================================== */

/* Linked towns inside the dark "Serving ... and nearby" panel */
.jw .jw-towns a { text-decoration: underline; text-decoration-color: color-mix(in oklab, var(--jw-gold) 50%, transparent); text-underline-offset: 4px; transition: color 0.2s ease; }
.jw .jw-towns a:hover { color: var(--jw-gold); }
.jw .jw-footer__bar a:hover { color: var(--jw-gold); }

/* Towns index */
.jw .jw-citygrid { display: grid; gap: 1px; margin-top: 2.5rem; overflow: hidden; border-radius: var(--jw-radius-sm); background: var(--jw-border); }
@media (min-width: 640px) { .jw .jw-citygrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .jw .jw-citygrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.jw .jw-citycell { display: block; padding: 1.75rem; background: var(--jw-cream); transition: background-color 0.2s ease; }
.jw .jw-citycell:hover { background: color-mix(in oklab, var(--jw-cream) 60%, var(--jw-border)); }
.jw .jw-citycell h3 { font-family: var(--jw-font-display); font-size: 1.25rem; font-weight: 300; letter-spacing: 0.06em; text-transform: uppercase; line-height: 1.2; color: var(--jw-ink); }
.jw .jw-citycell .jw-script { margin-top: 0.25rem; font-size: 1.5rem; line-height: 1.2; color: var(--jw-brand-red); }
.jw .jw-citycell .jw-link-arrow { margin-top: 1rem; font-size: 0.875rem; color: var(--jw-evergreen); }
.jw .jw-citycell:hover .jw-link-arrow { color: var(--jw-copper); }

/* Legal pages */
.jw .jw-legal { padding-top: 3rem; padding-bottom: 3rem; font-size: 1rem; line-height: 1.75; color: var(--jw-ink); }
@media (min-width: 768px) { .jw .jw-legal { padding-top: 4rem; padding-bottom: 4rem; } }
.jw .jw-legal__date { padding-bottom: 1.5rem; border-bottom: 1px solid var(--jw-gold); font-weight: 500; color: var(--jw-muted); }
.jw .jw-legal__notice { margin-top: 2rem; padding: 1rem 1.25rem; border-left: 4px solid var(--jw-gold); background: var(--jw-sand-60); }
.jw .jw-legal mark { background: color-mix(in oklab, var(--jw-gold-soft) 60%, transparent); color: var(--jw-ink); text-decoration: underline; text-decoration-color: var(--jw-copper); text-underline-offset: 2px; }
.jw .jw-legal__body { margin-top: 3rem; display: grid; gap: 3rem; }
.jw .jw-legal__sec { padding-bottom: 2.5rem; border-bottom: 1px solid var(--jw-border); scroll-margin-top: 7rem; }
.jw .jw-legal__sec:last-child { padding-bottom: 0; border-bottom: 0; }
.jw .jw-legal__sec h2 { margin-bottom: 1.25rem; font-family: var(--jw-font-display); font-size: 1.25rem; font-weight: 800; line-height: 1.35; color: var(--jw-ink); }
@media (min-width: 768px) { .jw .jw-legal__sec h2 { font-size: 1.5rem; } }
.jw .jw-legal__sec > p,
.jw .jw-legal__sec > ul { margin-top: 1rem; }
.jw .jw-legal__sec > h2 + p,
.jw .jw-legal__sec > h2 + ul { margin-top: 0; }
.jw .jw-legal__sec p.b { font-weight: 700; }
.jw .jw-legal__sec strong { font-weight: 700; color: var(--jw-evergreen-deep); }
.jw .jw-legal__sec ul { list-style: disc; padding-left: 1.5rem; display: grid; gap: 0.75rem; }
.jw .jw-legal__sec ul li { padding-left: 0.25rem; }
.jw .jw-legal__sec ul li::marker { color: var(--jw-copper); }
.jw .jw-legal__fields { display: grid; gap: 1.5rem 2rem; margin-top: 1.75rem; }
@media (min-width: 640px) { .jw .jw-legal__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.jw .jw-legal__fields p,
.jw .jw-legal__sign p { font-size: 0.875rem; font-weight: 700; line-height: 1.5; color: var(--jw-evergreen); }
.jw .jw-legal__sign p { font-size: 1rem; color: var(--jw-ink); }
.jw .jw-legal hr { height: 1px; margin: 1.25rem 0 0; border: 0; background: color-mix(in oklab, var(--jw-evergreen) 40%, transparent); }
.jw .jw-legal__sign { margin-top: 2rem; }
.jw .jw-legal__sign hr { margin-top: 2.5rem; }
