/* ==========================================================================
   Lake Tapps Boat & RV Center — design system (lt-system.css)
   Uploaded via SFTP and linked in <head> via a header-scripts plugin.
   Must load AFTER Avada's stylesheets (view-source and check it's last).
   Prefix `lt-` avoids collisions with Avada's `fusion-` classes.

   HOW IT FITS WITH AVADA
   - Avada Container  = the section band: background color/image, vertical
     padding, full-width. Use Avada's responsive settings here.
   - Avada Column     = the content column(s). Column padding 0.
   - Code Block       = your HTML, wrapped in <div class="lt-block">.
   - `.lt-section` is OPTIONAL: use it only when you want a band Avada
     isn't providing (e.g. announcement bar inside a header layout).
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. TOKENS
   -------------------------------------------------------------------------- */
:root {
  /* Color */
  --lt-navy:        #063f63;   /* dark sections, headings, hero overlay */
  --lt-blue:        #1684b5;   /* links, header CTA, eyebrows */
  --lt-yellow:      #ffc735;   /* primary CTA, accents, badges */
  --lt-slate:       #294a5a;   /* default text (nav, banner, closing CTA) */
  --lt-text-muted:  #52617a;   /* body copy, subheads */
  --lt-cream:       #fcfbf7;   /* page / card background */
  --lt-ice:         #f3f9fb;   /* light-blue section + icon badge bg */
  --lt-border:      #dfe4eb;   /* dividers, card borders */
  --lt-white:       #ffffff;
  --lt-black:       #000000;

  --lt-shadow-card: 0 0.5rem 1.25rem rgba(25, 47, 87, 0.06);
  --lt-overlay-hero: linear-gradient(90deg, #063f63 43.75%, rgba(6, 63, 99, 0) 100%);
  /* 60% cream veil = artwork sitting at 40% opacity over cream */
  --lt-veil-cream: linear-gradient(rgba(252, 251, 247, 0.6), rgba(252, 251, 247, 0.6));
  /* 60% navy veil = Figma's navy 50% / image 80% / navy 50% stack */
  --lt-veil-navy: linear-gradient(rgba(6, 63, 99, 0.6), rgba(6, 63, 99, 0.6));
  --lt-overlay-hero-mobile: linear-gradient(180deg, rgba(6, 63, 99, 0.98), rgba(6, 63, 99, 0.94) 42%, rgba(6, 63, 99, 0.65) 65%, rgba(6, 63, 99, 0) 88%, rgba(6, 63, 99, 0));

  /* Type */
  --lt-font: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  --lt-fs-xs:   0.6875rem;  /* 11 — fine print */
  --lt-fs-sm:   0.8125rem;  /* 13 — eyebrow, nav, banner */
  --lt-fs-btn:  0.875rem;   /* 14 — buttons, badge */
  --lt-fs-md:   0.9375rem;  /* 15 — subheads, detail */
  --lt-fs-base: 1rem;       /* 16 — body */
  --lt-fs-lg:   1.0625rem;  /* 17 — hero subhead */
  --lt-fs-xl:   1.125rem;   /* 18 — card body, benefit, step title */
  --lt-fs-h4:   1.375rem;   /* 22 — card title */
  --lt-fs-h3:   clamp(1.5rem, 1.2rem + 1.2vw, 1.875rem);   /* 24–30 section heading */
  --lt-fs-h2:   clamp(1.75rem, 1.4rem + 1.5vw, 2.5rem);    /* 28–40 large section heading */
  --lt-fs-h1:   clamp(2rem, 1.6rem + 2vw, 2.75rem);        /* 32–44 hero headline */
  --lt-fs-display: clamp(2.25rem, 1.8rem + 2.4vw, 3rem);   /* 36–48 "Double Your Savings" */
  --lt-fs-stat: clamp(2rem, 1.6rem + 2vw, 2.625rem);       /* 32–42 "10% OFF" */

  --lt-lh-tight: 1.15;
  --lt-lh-snug:  1.3;
  --lt-lh-body:  1.5;
  --lt-lh-loose: 1.6;

  --lt-track-caps: 0.025em;
  --lt-track-wide: 0.16em;   /* footer column labels */

  /* Space (0.25rem base) */
  --lt-sp-1: 0.25rem;
  --lt-sp-2: 0.5rem;
  --lt-sp-3: 0.75rem;
  --lt-sp-4: 1rem;
  --lt-sp-5: 1.5rem;
  --lt-sp-6: 2rem;
  --lt-sp-7: 3rem;
  --lt-sp-8: 4rem;
  --lt-sp-9: 6rem;

  --lt-section-y: var(--lt-sp-7);          /* 48 — section vertical padding */
  --lt-section-y-lg: 5rem;                 /* 80 — hero-ish sections */
  --lt-gutter: var(--lt-sp-8);
  /* Single source of truth for section side padding. Every band uses
     padding-inline: max(var(--lt-pad), (100% - var(--lt-content-max)) / 2) */
  --lt-pad: var(--lt-sp-8);        /* 64 */

  /* Layout */
  --lt-container: 80rem;
  --lt-content-max: 90rem;         /* content cap; bands stay edge to edge */
  --lt-container-narrow: 60rem;

  /* Shape */
  --lt-radius-sm: 0.5rem;
  --lt-radius:    0.75rem;
  --lt-radius-lg: 1rem;
  --lt-radius-pill: 62.4375rem;

  /* Icons (currentColor via mask) */
  --lt-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h10M8.5 3.5 13 8l-4.5 4.5' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

  /* Motion */
  --lt-ease: 160ms ease;
}

@media (max-width: 64rem) {
  :root {
    --lt-gutter: var(--lt-sp-6);
    --lt-pad: var(--lt-sp-7);      /* 48 */
  }
}
@media (max-width: 48rem) {
  :root {
    --lt-gutter: var(--lt-sp-5);
    --lt-pad: var(--lt-sp-6);      /* 32 */
    --lt-section-y: var(--lt-sp-6);
    --lt-section-y-lg: var(--lt-sp-7);
  }
}
@media (max-width: 30rem) {
  :root {
    --lt-gutter: 1.25rem;
    --lt-pad: var(--lt-sp-5);      /* 24 */
  }
}


/* --------------------------------------------------------------------------
   2. BASE — scoped to .lt-block / .lt-section so Avada's own UI is untouched
   -------------------------------------------------------------------------- */
.lt-block,
.lt-section,
.lt-block *,
.lt-section * {
  box-sizing: border-box;
}

.lt-block,
.lt-section {
  font-family: var(--lt-font);
  font-size: var(--lt-fs-base);
  line-height: var(--lt-lh-body);
  color: var(--lt-slate);
  -webkit-font-smoothing: antialiased;
}

.lt-block img,
.lt-section img,
.lt-block svg,
.lt-section svg {
  max-width: 100%;
  height: auto;
  display: block;
}

.lt-block a,
.lt-section a {
  color: inherit;
  text-decoration: none;
}

.lt-block ul,
.lt-section ul,
.lt-block ol,
.lt-section ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

.lt-block h1,
.lt-section h1,
.lt-block h2,
.lt-block h3,
.lt-block h4,
.lt-block p,
.lt-section h2,
.lt-section h3,
.lt-section h4,
.lt-section p {
  margin: 0;
}

.lt-block :focus-visible,
.lt-section :focus-visible {
  outline: 0.1875rem solid var(--lt-yellow);
  outline-offset: 0.1875rem;
}

@media (prefers-reduced-motion: reduce) {
  .lt-block *,
  .lt-section * {
    transition: none !important;
    animation: none !important;
  }
}

/* .lt-block = root of any Code Block HTML. No padding; Avada's Container
   and Column provide the band and spacing. */
.lt-block {
  width: 100%;
  position: relative;
}


/* --------------------------------------------------------------------------
   3. LAYOUT
   -------------------------------------------------------------------------- */
/* Section = a band YOU own (not an Avada Container). Add a bg modifier. */
.lt-section {
  width: 100%;
  padding: var(--lt-section-y) var(--lt-gutter);
  position: relative;
}
.lt-section--lg      { padding-block: var(--lt-section-y-lg); }
.lt-section--flush   { padding: 0; }

.lt-section--cream   { background: var(--lt-cream); }
.lt-section--ice     { background: var(--lt-ice); }
.lt-section--navy    { background: var(--lt-navy); color: var(--lt-white); }
.lt-section--yellow  { background: var(--lt-yellow); color: var(--lt-slate); }

/* Background image sections (hero, how-it-works, offer) */
.lt-section--bg {
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
.lt-section--bg > .lt-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.lt-overlay--hero {
  background: var(--lt-overlay-hero);
  opacity: 0.8;
  right: auto;
  width: 81.5%;                    /* 1174 of 1440 — fades out before the right edge */
}
.lt-overlay--navy  { background: var(--lt-navy); opacity: 0.6; }

/* Container = centered content column */
.lt-container {
  width: 100%;
  max-width: var(--lt-container);
  margin-inline: auto;
  position: relative;
  z-index: 1;
}
.lt-container--narrow { max-width: var(--lt-container-narrow); }

/* Grid helpers */
.lt-grid {
  display: grid;
  gap: var(--lt-sp-5);
}
.lt-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lt-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lt-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.lt-grid--split { grid-template-columns: minmax(0, 31.5rem) minmax(0, 1fr); align-items: center; }

@media (max-width: 1024px) {
  .lt-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lt-grid--split { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .lt-grid--2,
  .lt-grid--3,
  .lt-grid--4 { grid-template-columns: 1fr; }
}

/* Flex helpers */
.lt-row {
  display: flex;
  align-items: center;
  gap: var(--lt-sp-4);
}
.lt-row--between { justify-content: space-between; }
.lt-row--center  { justify-content: center; }
.lt-row--start   { align-items: flex-start; }
.lt-row--wrap    { flex-wrap: wrap; }

.lt-stack {
  display: flex;
  flex-direction: column;
  gap: var(--lt-sp-4);
}
.lt-stack--sm { gap: var(--lt-sp-2); }
.lt-stack--lg { gap: var(--lt-sp-6); }
.lt-stack--center { align-items: center; text-align: center; }

/* Spacing utilities (use sparingly; prefer component gaps) */
.lt-mt-2 { margin-top: var(--lt-sp-2); }
.lt-mt-4 { margin-top: var(--lt-sp-4); }
.lt-mt-6 { margin-top: var(--lt-sp-6); }
.lt-mt-7 { margin-top: var(--lt-sp-7); }
.lt-mb-2 { margin-bottom: var(--lt-sp-2); }
.lt-mb-4 { margin-bottom: var(--lt-sp-4); }
.lt-mb-6 { margin-bottom: var(--lt-sp-6); }

.lt-text-center { text-align: center; }
.lt-text-left   { text-align: left; }

.lt-measure    { max-width: 62ch; }
.lt-measure-sm { max-width: 40ch; }


/* --------------------------------------------------------------------------
   4. TYPOGRAPHY
   -------------------------------------------------------------------------- */
.lt-eyebrow {
  font-size: var(--lt-fs-sm);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: var(--lt-track-caps);
  text-transform: uppercase;
  color: var(--lt-navy);
}
.lt-eyebrow--yellow { color: var(--lt-yellow); }
.lt-eyebrow--blue   { color: var(--lt-blue); }

/* Eyebrow with the short yellow rule in front (Contact section) */
.lt-eyebrow--rule {
  display: inline-flex;
  align-items: center;
  gap: var(--lt-sp-4);
  color: var(--lt-blue);
}
.lt-eyebrow--rule::before {
  content: "";
  width: 2.5rem;
  height: 0.1875rem;
  background: var(--lt-yellow);
}

.lt-h1,
.lt-h2,
.lt-h3,
.lt-h4,
.lt-display {
  font-weight: 800;
  line-height: var(--lt-lh-tight);
  color: var(--lt-navy);
}
.lt-display { font-size: var(--lt-fs-display); font-weight: 900; line-height: 0.95; }
.lt-h1      { font-size: var(--lt-fs-h1); }
.lt-h2      { font-size: var(--lt-fs-h2); }
.lt-h3      { font-size: var(--lt-fs-h3); }
.lt-h4      { font-size: var(--lt-fs-h4); line-height: var(--lt-lh-snug); }

.lt-stat {
  font-size: var(--lt-fs-stat);
  font-weight: 900;
  line-height: 1.2;
  color: var(--lt-navy);
}

.lt-lead {           /* hero / offer explanation */
  font-size: var(--lt-fs-xl);
  font-weight: 500;
  line-height: var(--lt-lh-body);
  color: var(--lt-text-muted);
}
.lt-lead--hero {
  font-size: var(--lt-fs-lg);
  color: var(--lt-white);
}

.lt-subhead {        /* under section headings */
    font-size: var(--lt-fs-md);
    font-weight: 500;
    line-height: var(--lt-lh-body);
    color: var(--lt-text-muted);
    letter-spacing: 0;
  
}

.lt-body {
  font-size: var(--lt-fs-base);
  font-weight: 500;
  line-height: var(--lt-lh-loose);
  color: var(--lt-text-muted);
}
.lt-body--lg { font-size: var(--lt-fs-xl); }

.lt-fine {           /* "For our first 50 qualifying customers." */
  font-size: var(--lt-fs-xs);
  font-weight: 500;
  letter-spacing: 0.025rem;
  line-height: 1.45;
  color: var(--lt-text-muted);
}

.lt-label {          /* bold label above a detail (Address / Phone) */
  font-size: var(--lt-fs-xl);
  font-weight: 800;
  line-height: 1.1;
  color: var(--lt-navy);
}
.lt-detail {
  font-size: var(--lt-fs-md);
  font-weight: 500;
  color: var(--lt-text-muted);
}

/* Color overrides for dark sections */
.lt-section--navy .lt-h1,
.lt-section--navy .lt-h2,
.lt-section--navy .lt-h3,
.lt-section--navy .lt-h4,
.lt-section--navy .lt-subhead,
.lt-section--navy .lt-body,
.lt-on-dark { color: var(--lt-white); }

.lt-accent-yellow { color: var(--lt-yellow); }
.lt-accent-blue   { color: var(--lt-blue); }
.lt-text-navy     { color: var(--lt-navy); }
.lt-text-muted    { color: var(--lt-text-muted); }

/* Text link with arrow ("Learn More  →") */
.lt-link {
  display: inline-flex;
  align-items: center;
  gap: var(--lt-sp-2);
  font-size: var(--lt-fs-xl);
  font-weight: 800;
  color: var(--lt-blue);
  transition: color var(--lt-ease);
}
.lt-link:hover { color: var(--lt-navy); }
.lt-link::after {
  content: "";
  flex-shrink: 0;
  width: 1em;
  height: 1em;
  background-color: currentColor;
  -webkit-mask: var(--lt-arrow) center / contain no-repeat;
          mask: var(--lt-arrow) center / contain no-repeat;
}


/* --------------------------------------------------------------------------
   5. BUTTONS
   -------------------------------------------------------------------------- */
.lt-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--lt-sp-2);
  padding: 0.8125rem 1.5rem;
  font-family: var(--lt-font);
  font-size: var(--lt-fs-btn);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0;
  border: 1px solid transparent;
  border-radius: 0;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color var(--lt-ease), color var(--lt-ease), border-color var(--lt-ease);
}
.lt-btn::after {
    content: "";
    flex-shrink: 0;
    width: 1em;
    height: 1em;
    background-color: currentColor;
    -webkit-mask: var(--lt-arrow) center / contain no-repeat;
    mask: var(--lt-arrow) center / contain no-repeat;
    color: var(--lt-white);
}
.lt-btn--no-arrow::after { content: none; }
.lt-btn--primary::after,
.lt-btn--outline:hover::after,
.lt-btn--outline:focus-visible::after { color: var(--lt-navy); }

.lt-block .lt-btn--primary,
.lt-btn--primary {               /* yellow */
  background: var(--lt-yellow);
  color: var(--lt-navy);
  border-color: var(--lt-yellow);
}
.lt-block .lt-btn--primary:hover,
.lt-btn--primary:hover {
  background: #f0b720;
  border-color: #f0b720;
}

.lt-block .lt-btn--blue,
.lt-btn--blue {                  /* header CTA */
  background: var(--lt-blue);
  color: var(--lt-white);
  border-color: var(--lt-blue);
}
.lt-block .lt-btn--blue:hover,
.lt-btn--blue:hover {
  background: var(--lt-navy);
  border-color: var(--lt-navy);
}

.lt-block .lt-btn--outline,
.lt-btn--outline {               /* on dark backgrounds */
  background: transparent;
  color: var(--lt-white);
  border-color: var(--lt-white);
}
.lt-block .lt-btn--outline:hover,
.lt-btn--outline:hover {
  background: var(--lt-white);
  color: var(--lt-navy);
}

.lt-block .lt-btn--outline.lt-btn--outline-navy,
.lt-btn--outline-navy {          /* outline button on light backgrounds */
  background: transparent;
  color: var(--lt-navy);
  border-color: var(--lt-navy);
}
.lt-block .lt-btn--outline.lt-btn--outline-navy:hover,
.lt-btn--outline-navy:hover {
  background: var(--lt-navy);
  color: var(--lt-white);
}

.lt-btn--lg { padding: 1rem 2rem; min-width: 14rem; }

.lt-btn-group {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lt-sp-4);
}


/* --------------------------------------------------------------------------
   6. COMPONENTS
   -------------------------------------------------------------------------- */

/* --- Card ---------------------------------------------------------------- */
.lt-card {
  background: var(--lt-cream);
  border-radius: var(--lt-radius);
  box-shadow: var(--lt-shadow-card);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.lt-card--bordered { border: 1px solid var(--lt-border); }
.lt-card--translucent { background: rgba(252, 251, 247, 0.95); }
.lt-card--lg { border-radius: var(--lt-radius-lg); }

.lt-card__body {
  padding: var(--lt-sp-5);
  display: flex;
  flex-direction: column;
  gap: var(--lt-sp-4);
}

/* Yellow strip across the top ("BEST VALUE") */
.lt-card__banner {
  background: var(--lt-yellow);
  color: var(--lt-navy);
  font-size: var(--lt-fs-btn);
  font-weight: 800;
  text-transform: uppercase;
  text-align: center;
  padding: var(--lt-sp-2) 0;
}

/* --- Divider ------------------------------------------------------------- */
.lt-divider {
  width: 100%;
  height: 1px;
  background: var(--lt-border);
}
.lt-divider--v {
  width: 1px;
  height: auto;
  align-self: stretch;
}
.lt-divider--on-dark { background: var(--lt-white); opacity: 0.25; }

/* --- Icon badge (round tinted circle with icon inside) ------------------- */
.lt-badge {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--lt-ice);
  width: 3rem;
  height: 3rem;
}
.lt-badge > img, .lt-badge > svg {
    width: 100%;
    height: 100%;
}

.lt-badge--sm { width: 2.25rem; height: 2.25rem; }
.lt-badge--md { width: 3.25rem; height: 3.25rem; }
.lt-badge--lg { width: 4rem; height: 4rem; }
.lt-badge--xl { width: 7rem; height: 7rem; }   /* What We Offer */

/* Number badge (How It Works) */
.lt-badge--num {
  background: var(--lt-yellow);
  color: var(--lt-navy);
  font-size: var(--lt-fs-btn);
  font-weight: 800;
  width: 2.25rem;
  height: 2.25rem;
}

/* --- Why choose us (benefit grid) --------------------------------------- */
.lt-benefits {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lt-sp-6);
  padding-block: var(--lt-section-y);
  padding-inline: max(var(--lt-pad), (100% - var(--lt-content-max)) / 2);
  background: var(--lt-cream);
  text-align: center;
}
.lt-benefits__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lt-sp-2);
}
.lt-benefits__heading {
  font-size: 1.8125rem;            /* 29 */
  font-weight: 800;
  line-height: 1.17;
  color: var(--lt-navy);
  margin: 0;
}

/* Dividers are borders on the cells, so nothing extra in the markup */
.lt-benefits__grid {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.lt-benefit {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lt-sp-3);
  padding: var(--lt-sp-5) var(--lt-sp-4);
}
.lt-benefits__grid > .lt-benefit:not(:nth-child(3n + 1)) {
  border-left: 1px solid var(--lt-border);
}
.lt-benefits__grid > .lt-benefit:nth-child(n + 4) {
  border-top: 1px solid var(--lt-border);
}

.lt-benefit__icon {
  flex-shrink: 0;
  width: 7rem;                     /* 112 */
  height: 7rem;
  border-radius: 50%;
  background: var(--lt-ice);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.lt-benefit__icon img,
.lt-benefit__icon svg {
  width: 4rem;                     /* 64 */
  height: 4rem;
}
.lt-benefit__title {
  font-size: 1.4375rem;            /* 23 */
  font-weight: 800;
  line-height: 1.26;
  color: var(--lt-navy);
  margin: 0;
}
.lt-benefit__text {
  font-size: 1.25rem;              /* 20 */
  font-weight: 500;
  line-height: 1.4;
  color: var(--lt-text-muted);
  margin: 0;
}

@media (max-width: 64rem) {
  .lt-benefits__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lt-benefits__grid > .lt-benefit:not(:nth-child(3n + 1)) { border-left: 0; }
  .lt-benefits__grid > .lt-benefit:not(:nth-child(2n + 1)) { border-left: 1px solid var(--lt-border); }
  .lt-benefits__grid > .lt-benefit:nth-child(n + 3) { border-top: 1px solid var(--lt-border); }
}
@media (max-width: 48rem) {
  .lt-benefits {
    padding-block: 2.5rem;         /* 40 */
    gap: var(--lt-sp-5);
  }
  .lt-benefits__heading { font-size: 1.75rem; line-height: 1.21; }
  .lt-benefits__grid { grid-template-columns: 1fr; }
  .lt-benefits__grid > .lt-benefit { border-left: 0 !important; }
  .lt-benefits__grid > .lt-benefit + .lt-benefit { border-top: 1px solid var(--lt-border); }
  .lt-benefit { padding-inline: 0; }
  .lt-benefit__icon { width: 5.5rem; height: 5.5rem; }      /* 88 */
  .lt-benefit__icon img,
  .lt-benefit__icon svg { width: 3.5rem; height: 3.5rem; }  /* 56 */
  .lt-benefit__title { font-size: 1.25rem; line-height: 1.3; }
  .lt-benefit__text { font-size: var(--lt-fs-base); line-height: 1.5; }
}

/* --- Check list (legacy, unused) ----------------------------------------- */
.lt-check {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
}
.lt-check__mark {
  flex-shrink: 0;
  width: 1.5625rem;
  height: 1.5625rem;
  margin-top: 0.125rem;
  border-radius: 50%;
  background: var(--lt-yellow);
  color: var(--lt-navy);
  font-size: var(--lt-fs-sm);
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.lt-check__mark::before { content: "✓"; }
.lt-check__text {
  font-size: var(--lt-fs-xl);
  line-height: 1.55;
  color: var(--lt-slate);
}
.lt-check__text strong {
  display: block;
  font-weight: 800;
}
.lt-check__text span { font-weight: 500; }

.lt-check-list {
  display: flex;
  flex-direction: column;
  gap: var(--lt-sp-2);
}

/* --- Plan header (icon + title + term, used in offer cards) ------------- */
.lt-plan {
  display: flex;
  align-items: center;
  gap: var(--lt-sp-4);
}
.lt-plan__title {
  font-size: var(--lt-fs-lg);
  font-weight: 800;
  text-transform: uppercase;
  color: var(--lt-navy);
}
.lt-plan__term {
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: uppercase;
  color: var(--lt-text-muted);
}

/* --- Offer section (grand opening) -------------------------------------- */
.lt-offer {
    display: flex;
    align-items: center;
    gap: var(--lt-sp-5);
    padding-block: var(--lt-section-y);
    padding-inline: max(var(--lt-pad), (100% - var(--lt-content-max)) / 2);
    background-color: var(--lt-cream);
    background-image: var(--lt-veil-cream),
                    url("/wp-content/uploads/2026/10/Mountain-waves-background-extended-scaled.webp");
    background-size: 100% 100%, cover;
    background-position: right center;
    background-repeat: no-repeat;
}

.lt-offer__intro {
  flex: 0 1 31.5rem;              /* 504 */
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--lt-sp-3);
}
.lt-offer__headline {
  font-size: var(--lt-fs-display);
  font-weight: 900;
  line-height: 0.875;             /* 42 on 48 */
  color: var(--lt-navy);
  margin: 0;
}
.lt-offer__headline span { display: block; }
.lt-offer__headline .lt-accent-yellow { color: var(--lt-yellow); }
.lt-offer__text {
  font-size: var(--lt-fs-xl);     /* 18 */
  line-height: 1.5;
  font-weight: 500;
  color: var(--lt-text-muted);
  margin: 0;
}
.lt-offer__note {                 /* mobile-only qualification under the intro */
  display: none;
  font-size: 0.75rem;
  letter-spacing: 0.0625rem;
  line-height: 1.5;
  font-weight: 500;
  text-transform: uppercase;
  color: var(--lt-text-muted);
  margin: 0;
}

.lt-offer__cards {
  flex: 1 1 49rem;                /* 784 */
  display: flex;
  align-items: flex-end;
  gap: var(--lt-sp-4);
}

/* One plan card */
.lt-plan-card {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  border-radius: var(--lt-radius);
  background: var(--lt-cream);
  box-shadow: var(--lt-shadow-card);
  overflow: hidden;
}
.lt-plan-card__banner {
  background: var(--lt-yellow);
  color: var(--lt-navy);
  font-size: var(--lt-fs-btn);
  font-weight: 800;
  line-height: 1.43;
  text-align: center;
  text-transform: uppercase;
  padding: var(--lt-sp-2) 0;
}
.lt-plan-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--lt-sp-4);
  padding: var(--lt-sp-5);
}
.lt-plan-card__header {
  display: flex;
  align-items: center;
  gap: var(--lt-sp-4);
}
.lt-plan-card__title {
  font-size: var(--lt-fs-lg);     /* 17 */
  font-weight: 800;
  line-height: 1.41;
  text-transform: uppercase;
  color: var(--lt-navy);
  margin: 0;
}
.lt-plan-card__term {
  font-size: 0.75rem;             /* 12 */
  font-weight: 500;
  line-height: 1.42;
  text-transform: uppercase;
  color: var(--lt-text-muted);
  margin: 0;
}
.lt-plan-card__savings {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  text-align: center;
}
.lt-plan-card__savings p { margin: 0; }
.lt-plan-card__lead {             /* "Founding customers get" */
  font-size: var(--lt-fs-lg);
  font-weight: 500;
  line-height: 1.41;
  color: var(--lt-text-muted);
}
.lt-plan-card__months {           /* "2 MONTHS INCLUDED" */
  font-size: 1.5rem;              /* 24 */
  font-weight: 800;
  line-height: 1.33;
  color: var(--lt-navy);
}
.lt-plan-card__figure {           /* "10% OFF" */
  font-size: 2.625rem;            /* 42 */
  font-weight: 900;
  line-height: 1.19;
  color: var(--lt-navy);
}
.lt-plan-card__figure--sm { font-size: 2.375rem; }   /* 38 — "+ 10% OFF" */
.lt-plan-card__rate {
  font-size: var(--lt-fs-xl);     /* 18 */
  font-weight: 500;
  line-height: 1.44;
  color: var(--lt-text-muted);
}
.lt-plan-card__fine {
  font-size: var(--lt-fs-xs);     /* 11 */
  font-weight: 500;
  letter-spacing: 0.025rem;
  line-height: 1.45;
  text-transform: uppercase;
  text-align: center;
  color: var(--lt-text-muted);
  margin: 0;
}

@media (max-width: 64rem) {
  /* Stacked: flex-basis would become a HEIGHT in a column, so reset it */
  .lt-offer {
    flex-direction: column;
    align-items: stretch;
    gap: var(--lt-sp-6);
  }
  .lt-offer__intro { flex: 0 0 auto; }
  .lt-offer__cards { flex: 0 0 auto; align-items: stretch; }
  .lt-plan-card { flex: 0 0 auto; }
}
@media (max-width: 48rem) {
  .lt-offer {
    gap: var(--lt-sp-5);
    padding-block: var(--lt-section-y);
    background-image: var(--lt-veil-cream),
                      url("/wp-content/uploads/2026/10/Mountain-waves-background-m-scaled.webp");
    background-position: center, center center;
  }
  .lt-offer__headline { font-size: 2.25rem; line-height: 1.05; }   /* 36 */
  .lt-offer__text { font-size: var(--lt-fs-base); }
  .lt-offer__note { display: block; }
  .lt-offer__cards { flex-direction: column; gap: 1.25rem; }
  .lt-plan-card__term { font-size: 0.6875rem; }
  .lt-plan-card__months { font-size: 1.375rem; }
  .lt-plan-card__fine { font-size: 0.625rem; }
}

/* --- Offer, dark variant (Indoor Storage page): lake photo at 45% over navy */
.lt-offer--dark {
  background-color: var(--lt-navy);
  background-image: linear-gradient(rgba(6, 63, 99, 0.55), rgba(6, 63, 99, 0.55)),
                    url("/wp-content/uploads/2026/10/Lake-Tapps-Background-1-scaled.webp");
  background-size: 100% 100%, cover;
  background-position: center, 50% 44%;         /* ~1440: keeps the mountain in frame */
}
@media (min-width: 100rem) {                     /* 1600+: photo is taller than the band */
  .lt-offer--dark { background-position: center, 50% 33%; }
}
/* "Double" white, "Your Savings" yellow — only in the dark variant.
   Homepage keeps navy / yellow from the base rules. */
.lt-block.lt-offer--dark .lt-offer__headline,
.lt-section.lt-offer--dark .lt-offer__headline,
.lt-offer--dark .lt-offer__headline span:not(.lt-accent-yellow) { color: var(--lt-white); }
.lt-block.lt-offer--dark .lt-offer__headline .lt-accent-yellow,
.lt-offer--dark .lt-offer__headline span.lt-accent-yellow { color: var(--lt-yellow); }
.lt-offer--dark .lt-offer__text { color: var(--lt-white); }
.lt-offer--dark .lt-offer__note {                /* shown on desktop too in this variant */
  display: block;
  font-size: var(--lt-fs-xs);                     /* 11 */
  color: var(--lt-white);
}
@media (max-width: 48rem) {
  .lt-offer--dark {
    padding-inline: 1.25rem;                      /* 20 */
    background-image: linear-gradient(rgba(6, 63, 99, 0.55), rgba(6, 63, 99, 0.55)),
                      url("/wp-content/uploads/2026/10/Lake-Tapps-Background-1-scaled.webp");
  }
  .lt-offer--dark .lt-offer__note { font-size: 0.75rem; }
}

/* --- Service columns (What We Offer) ------------------------------------ */
.lt-services {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lt-sp-6);
  padding-block: var(--lt-section-y);
  padding-inline: max(var(--lt-pad), (100% - var(--lt-content-max)) / 2);
  background: var(--lt-cream);
}
.lt-services__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lt-sp-2);
  text-align: center;
}

.lt-service-row {
  display: flex;
  align-items: stretch;
  gap: var(--lt-sp-4);
  width: 100%;
}
.lt-service-row > .lt-service { flex: 1 1 0; }
.lt-service-row > .lt-service + .lt-service {
  border-left: 1px solid var(--lt-border);
}

.lt-service {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lt-sp-4);
  padding-inline: var(--lt-sp-4);
  text-align: center;
}
.lt-service__details {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lt-sp-2);
  flex: 1 1 auto;
  width: 100%;
}
.lt-service__title {
  font-size: var(--lt-fs-h4);      /* 22 */
  font-weight: 800;
  line-height: 1.27;               /* 28 */
  color: var(--lt-navy);
  margin: 0;
}
.lt-service__body {
  font-size: var(--lt-fs-xl);      /* 18 */
  font-weight: 500;
  line-height: 1.44;               /* 26 */
  color: var(--lt-text-muted);
  margin: 0;
}
/* pushes every Learn More to the same baseline across columns */
.lt-service__link { margin-top: auto; padding-top: var(--lt-sp-4); }

@media (max-width: 64rem) {
  .lt-service-row { flex-direction: column; gap: 0; }
  .lt-service-row > .lt-service + .lt-service {
    border-left: 0;
    border-top: 1px solid var(--lt-border);
  }
  .lt-service {
    padding-block: var(--lt-sp-6);
    padding-inline: 0;
  }
  .lt-service-row > .lt-service:first-child { padding-top: 0; }
  .lt-service-row > .lt-service:last-child { padding-bottom: 0; }
  .lt-service__link { margin-top: 0; }
}

/* --- How it works + closing CTA ----------------------------------------- */
.lt-process {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lt-sp-6);
  padding-block: var(--lt-section-y-lg) 0;
  padding-inline: max(var(--lt-pad), (100% - var(--lt-content-max)) / 2);
  background-color: var(--lt-navy);
  background-image: var(--lt-veil-navy),
                    url("/wp-content/uploads/2026/10/Lake-Tapps-Background.webp");
  background-size: 100% 100%, cover;
  background-position: center, center center;
  background-repeat: no-repeat;
  text-align: center;
}
/* Very wide screens: the photo is taller than the band, so bias it upward
   to keep the mountain and lake in frame. */
@media (min-width: 1600px) {
  .lt-process { background-position: center, center 38%; }
}
.lt-process__top {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lt-sp-6);
}
.lt-process__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lt-sp-2);
}
.lt-process__heading {
  font-size: 2.5rem;               /* 40 */
  font-weight: 800;
  line-height: 1.1;
  color: var(--lt-white);
  margin: 0;
}
.lt-process__subhead {
  font-size: 1.25rem;              /* 20 */
  font-weight: 500;
  line-height: 1.15;
  color: var(--lt-white);
  margin: 0;
}

/* Steps */
.lt-steps {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--lt-sp-7);             /* 48 */
  margin-top: var(--lt-sp-6);
}
.lt-step {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lt-sp-3);
  padding: var(--lt-sp-5) var(--lt-sp-4);
  border: 1px solid var(--lt-border);
  border-radius: var(--lt-radius);
  background: rgba(252, 251, 247, 0.95);
  box-shadow: var(--lt-shadow-card);
}
/* connector arrow between cards */
.lt-step + .lt-step::before {
  content: "";
  position: absolute;
  top: 50%;
  left: calc(-1 * var(--lt-sp-7));
  width: var(--lt-sp-7);
  height: 1.75rem;
  transform: translateY(-50%);
  background-color: var(--lt-white);
  -webkit-mask: var(--lt-arrow) center / 1.75rem 1.75rem no-repeat;
          mask: var(--lt-arrow) center / 1.75rem 1.75rem no-repeat;
}
.lt-step__num {
  position: absolute;
  top: -1.125rem;                  /* -18 */
  left: 50%;
  transform: translateX(-50%);
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: var(--lt-yellow);
  color: var(--lt-navy);
  font-size: var(--lt-fs-btn);
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.lt-step__icon {
  flex-shrink: 0;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background: var(--lt-ice);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.lt-step__icon img,
.lt-step__icon svg { width: 2.25rem; height: 2.25rem; }
.lt-step__title {
  font-size: var(--lt-fs-xl);      /* 18 */
  font-weight: 800;
  line-height: 1.33;
  color: var(--lt-navy);
  margin: 0;
}
.lt-step__copy {
  font-size: var(--lt-fs-base);    /* 16 */
  font-weight: 500;
  line-height: 1.38;
  color: var(--lt-text-muted);
  margin: 0;
}

/* Closing CTA panel, sitting on the same background */
.lt-cta {
  width: 100%;
  display: flex;
  justify-content: center;
  padding-block: var(--lt-sp-9) var(--lt-sp-9);
}
.lt-cta__panel {
  width: min(60rem, 100%);         /* 960 */
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lt-sp-4);
  padding: var(--lt-sp-7) var(--lt-sp-6);
  border-radius: var(--lt-radius-lg);
  background: rgba(252, 251, 247, 0.95);
}
.lt-cta__heading {
  font-size: 2.125rem;             /* 34 */
  font-weight: 800;
  line-height: 1.06;
  color: var(--lt-slate);
  margin: 0;
}
.lt-cta__text {
  font-size: var(--lt-fs-xl);      /* 18 */
  font-weight: 500;
  line-height: 1.33;
  color: var(--lt-slate);
  margin: 0;
}

@media (max-width: 64rem) {
  .lt-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lt-step + .lt-step::before { content: none; }
}
@media (max-width: 48rem) {
  .lt-process {
    padding-block: var(--lt-sp-6) 0;
    gap: var(--lt-sp-5);
  }
  .lt-process__heading { font-size: 1.75rem; line-height: 1.21; }
  .lt-process__subhead { font-size: var(--lt-fs-base); line-height: 1.5; }

  /* Background stops above the CTA, so `cover` isn't scaled to include it */
  .lt-process {
    background-image: none;
    background-color: transparent;
    padding-block: 0;
    gap: 0;                         /* no strip between the photo band and the CTA */
    align-items: stretch;           /* children must fill the width to go edge to edge */
  }
  .lt-process__top {
    width: auto;
    margin-inline: calc(-1 * var(--lt-pad));
    padding: var(--lt-sp-6) var(--lt-pad) var(--lt-sp-7);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--lt-sp-5);
    background-color: var(--lt-navy);
    background-image: var(--lt-veil-navy),
                      url("/wp-content/uploads/2026/10/Lake-Tapps-Background.webp");
    background-size: 100% 100%, cover;
    background-position: center, center center;
    background-repeat: no-repeat;
  }

  .lt-steps {
    grid-template-columns: 1fr;
    gap: var(--lt-sp-7);
    margin-top: var(--lt-sp-5);
  }
  .lt-step { background: var(--lt-cream); }
  /* downward connector between stacked cards */
  .lt-step + .lt-step::before {
    content: "";
    top: calc(-1 * var(--lt-sp-7));
    left: 50%;
    width: 1.75rem;
    height: var(--lt-sp-7);
    transform: translateX(-50%) rotate(90deg);
    -webkit-mask-size: 1.75rem 1.75rem;
            mask-size: 1.75rem 1.75rem;
  }

  /* CTA becomes its own navy band with gold rules, edge to edge */
  .lt-cta {
    width: auto;
    margin-top: 0;
    margin-inline: calc(-1 * var(--lt-pad));   /* cancel the section's side padding */
    padding: var(--lt-sp-7) var(--lt-pad);
    background: var(--lt-navy);
    border-top: 0.5rem solid var(--lt-yellow);
    border-bottom: 0.5rem solid var(--lt-yellow);
  }
  .lt-cta__panel {
    background: var(--lt-cream);
    padding: var(--lt-sp-5) var(--lt-pad);
  }
  .lt-cta__heading { font-size: 1.75rem; line-height: 1.21; }
  .lt-cta__text { font-size: var(--lt-fs-base); line-height: 1.5; }
  .lt-cta__panel .lt-btn { width: 100%; }
}

/* --- Facility carousel -------------------------------------------------- */
.lt-facility {
  display: flex;
  align-items: center;
  gap: var(--lt-sp-6);
  padding-block: var(--lt-sp-7);
  padding-inline: max(var(--lt-pad), (100% - var(--lt-content-max)) / 2);
  background: var(--lt-navy);
  color: var(--lt-white);
}
.lt-facility__intro {
  flex: 0 0 19rem;
  display: flex;
  flex-direction: column;
  gap: var(--lt-sp-3);
}
.lt-facility__heading {
  font-size: 1.6875rem;
  font-weight: 800;
  line-height: 1.15;
  color: var(--lt-white);
  margin: 0;
}
.lt-facility__copy {
  font-size: var(--lt-fs-md);
  font-weight: 500;
  line-height: 1.53;
  color: var(--lt-white);
  margin: 0;
}

/* Track: native horizontal scroll with snap */
.lt-facility__viewport {
  flex: 1 1 auto;
  min-width: 0;
}
.lt-facility__track {
  display: flex;
  gap: 1.25rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 0;
  margin: 0;
  list-style: none;
}
.lt-facility__track::-webkit-scrollbar { display: none; }

.lt-facility__slide {
  /* exactly three across, whatever the viewport */
  flex: 0 0 calc((100% - 2 * 1.25rem) / 3);
  scroll-snap-align: start;
}
.lt-facility__zoom {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  cursor: zoom-in;
  border-radius: var(--lt-radius);
}
.lt-facility__slide img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;             /* scales with the slot instead of letterboxing */
  object-fit: cover;
  border-radius: var(--lt-radius);
  display: block;
  transition: transform var(--lt-ease), filter var(--lt-ease);
}
.lt-facility__zoom:hover img { filter: brightness(1.07); }
.lt-facility__zoom:focus-visible { outline: 3px solid var(--lt-yellow); outline-offset: 3px; }

/* Controls */
.lt-facility__controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  margin-top: var(--lt-sp-5);
  max-width: 17.5rem;
}
.lt-facility__arrow {
  flex-shrink: 0;
  width: 2.5rem;
  height: 2.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1.5px solid rgba(255, 255, 255, 0.22);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  color: var(--lt-white);
  cursor: pointer;
  transition: background-color var(--lt-ease), border-color var(--lt-ease);
}
.lt-facility__arrow:hover {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.5);
}
.lt-facility__arrow svg { width: 0.5rem; height: 1rem; }

.lt-facility__dots {
  display: flex;
  align-items: center;
  gap: var(--lt-sp-2);
}
.lt-facility__dot {
  width: 0.5rem;
  height: 0.5rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--lt-white);
  opacity: 0.3;
  cursor: pointer;
  transition: background-color var(--lt-ease), opacity var(--lt-ease);
}
.lt-facility__dot[aria-current="true"] {
  background: var(--lt-yellow);
  opacity: 1;
}

@media (max-width: 64rem) {
  .lt-facility { flex-direction: column; align-items: stretch; gap: var(--lt-sp-5); }
  .lt-facility__intro { flex: 0 0 auto; }
  /* two across so tablet photos keep a usable size */
  .lt-facility__slide { flex: 0 0 calc((100% - 1.25rem) / 2); }
}
@media (max-width: 48rem) {
  /* Order: heading, copy, photo, controls */
  .lt-facility {
    padding-block: var(--lt-sp-6);
    gap: var(--lt-sp-3);
  }
  .lt-facility__intro { display: contents; }
  .lt-facility__heading { order: 1; font-size: 1.75rem; line-height: 1.21; }
  .lt-facility__copy { order: 2; font-size: var(--lt-fs-base); line-height: 1.5; }
  .lt-facility__viewport { order: 3; margin-top: var(--lt-sp-3); }
  .lt-facility__controls { order: 4; margin-top: 0; max-width: none; }
  .lt-facility__slide { flex: 0 0 100%; }
  .lt-facility__slide img { aspect-ratio: 4 / 3; }
  .lt-facility__arrow { width: 2.75rem; height: 2.75rem; }
}

@media (prefers-reduced-motion: reduce) {
  .lt-facility__track { scroll-behavior: auto; }
}

/* --- About facility variant: copy + button left, one-up carousel right ----
   Arrows sit over the photo, dots centered beneath. Same track/lightbox JS as
   the homepage (one carousel per page). Figma desktop: 520 copy, 704x380 photo,
   72 gap, 34/40 h2, 18/26 body; mobile 40 24, 28/34 h2, 16/24, 342x200 photo. */
.lt-facility--about {
  gap: 4.5rem;                                   /* 72 */
  justify-content: center;
}
.lt-facility--about .lt-facility__intro {
  flex: 0 0 32.5rem;                             /* 520 */
  gap: 1.25rem;                                  /* 20 */
  align-items: flex-start;
}
.lt-block.lt-facility--about .lt-eyebrow {
  font-size: var(--lt-fs-sm);
  line-height: 1.43;
  letter-spacing: 0;
  color: var(--lt-yellow);
  margin: 0;
}
.lt-block.lt-facility--about .lt-facility__heading {
  font-family: var(--lt-font);
  font-size: 2.125rem;                           /* 34 */
  line-height: 1.18;                             /* 40 */
  letter-spacing: 0;
  text-transform: none;
}
.lt-block.lt-facility--about .lt-facility__copy {
  font-size: var(--lt-fs-xl);                    /* 18 */
  line-height: 1.44;                             /* 26 */
}
.lt-facility--about .lt-facility__viewport {
  flex: 0 1 44rem;                               /* 704 */
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lt-sp-4);                           /* 16 */
}
.lt-facility--about .lt-facility__frame {
  position: relative;
  width: 100%;
  border-radius: var(--lt-radius-sm);
  overflow: hidden;
}
.lt-facility--about .lt-facility__track { gap: 0; }
.lt-facility--about .lt-facility__slide { flex: 0 0 100%; }
.lt-facility--about .lt-facility__slide img {
  aspect-ratio: 704 / 380;
  border-radius: var(--lt-radius-sm);
}
.lt-facility--about .lt-facility__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  border-color: rgba(255, 255, 255, 0.69);
  background: rgba(6, 63, 99, 0.58);
}
.lt-facility--about .lt-facility__arrow:hover { background: rgba(6, 63, 99, 0.8); }
.lt-facility--about .lt-facility__arrow--prev { left: 1.375rem; }    /* 22 */
.lt-facility--about .lt-facility__arrow--next { right: 1.375rem; }
.lt-facility--about .lt-facility__dots { justify-content: center; }

@media (max-width: 64rem) {
  .lt-facility--about { gap: 1.75rem; }                             /* 28 */
  .lt-facility--about .lt-facility__intro { flex: 0 0 auto; }
  .lt-facility--about .lt-facility__viewport { flex: 0 0 auto; width: 100%; }
  .lt-facility--about .lt-facility__slide { flex: 0 0 100%; }
}
@media (max-width: 48rem) {
  .lt-facility--about { padding: 2.5rem var(--lt-sp-5); }            /* 40 24 */
  .lt-facility--about .lt-facility__intro { display: flex; }         /* keep intro grouped, button included */
  .lt-facility--about .lt-facility__heading,
  .lt-facility--about .lt-facility__copy { order: 0; }               /* undo the homepage mobile reorder */
  .lt-block.lt-facility--about .lt-facility__heading { font-size: 1.75rem; line-height: 1.21; }
  .lt-block.lt-facility--about .lt-facility__copy { font-size: var(--lt-fs-base); line-height: 1.5; }
  .lt-facility--about .lt-facility__viewport { order: 0; margin-top: 0; }
  .lt-facility--about .lt-facility__slide img { aspect-ratio: 342 / 200; }
  .lt-facility--about .lt-facility__arrow { width: 2.5rem; height: 2.5rem; }
  .lt-facility--about .lt-facility__arrow--prev { left: 0.75rem; }   /* 12 */
  .lt-facility--about .lt-facility__arrow--next { right: 0.75rem; }
}

/* --- Expectations band (About): h2 + 5 icon tiles with dividers ----------
   Self-contained cream band. Dividers are borders on the tiles: vertical
   on desktop, horizontal when stacked. Figma desktop: 48 72 56 padding,
   36/44 h2, 240 tiles, 68 icon circle, 18/24 title, 16/23 body; mobile 40 24,
   28/34 h2, stacked with 24 gap. */
.lt-block.lt-expect {
  background: var(--lt-cream);
  padding: var(--lt-sp-7) max(var(--lt-pad), (100% - var(--lt-content-max)) / 2) 3.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lt-sp-6);                           /* 32 */
  text-align: center;
}
.lt-block.lt-expect .lt-h2 {
  font-size: 2.25rem;                            /* 36 */
  line-height: 1.22;                             /* 44 */
  font-weight: 800;
  color: var(--lt-navy);
  margin: 0;
}
.lt-block.lt-expect .lt-expect__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: 81rem;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.lt-block.lt-expect .lt-expect__tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;                                  /* 12 */
  padding-inline: 0.75rem;
  margin: 0;
}
.lt-block.lt-expect .lt-expect__tile + .lt-expect__tile { border-left: 1px solid var(--lt-border); }
.lt-block.lt-expect .lt-expect__icon {
  width: 4.25rem;                                /* 68 */
  height: 4.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--lt-ice);
  border: 3px solid var(--lt-border);
  border-radius: 50%;
}
.lt-block.lt-expect .lt-expect__icon img { width: 2.5rem; height: 2.5rem; display: block; }   /* 40 */
.lt-block.lt-expect .lt-expect__title {
  font-family: var(--lt-font);
  font-size: var(--lt-fs-xl);                    /* 18 */
  line-height: 1.33;                             /* 24 */
  font-weight: 800;
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-navy);
  margin: 0;
}
.lt-block.lt-expect .lt-expect__copy {
  max-width: 15rem;                              /* 240 */
  font-size: var(--lt-fs-base);
  line-height: 1.44;                             /* 23 */
  font-weight: 500;
  color: var(--lt-text-muted);
  margin: 0;
}

@media (max-width: 64rem) {
  .lt-block.lt-expect .lt-expect__grid { grid-template-columns: 1fr; gap: var(--lt-sp-5); }   /* 24 */
  .lt-block.lt-expect .lt-expect__tile { padding-inline: 0; }
  .lt-block.lt-expect .lt-expect__tile + .lt-expect__tile {
    border-left: 0;
    border-top: 1px solid var(--lt-border);
    padding-top: var(--lt-sp-5);
  }
}
@media (max-width: 48rem) {
  .lt-block.lt-expect { padding: 2.5rem var(--lt-sp-5); gap: 1.75rem; }   /* 40 24, 28 */
  .lt-block.lt-expect .lt-h2 { font-size: 1.75rem; line-height: 1.21; }
}

/* --- Contact & location ------------------------------------------------- */
.lt-contact {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: var(--lt-sp-6);
  padding-block: var(--lt-section-y-lg);
  padding-inline: max(var(--lt-pad), (100% - var(--lt-content-max)) / 2);
  background: var(--lt-ice);
}
.lt-contact__intro {
  display: flex;
  flex-direction: column;
  gap: var(--lt-sp-3);
}
.lt-contact__heading {
  font-size: 2rem;                 /* 32 */
  font-weight: 800;
  line-height: 1.06;
  color: var(--lt-slate);
  margin: 0;
}
.lt-contact__subhead {
  font-size: var(--lt-fs-base);
  font-weight: 500;
  line-height: 1.44;
  color: var(--lt-text-muted);
  margin: 0;
}

/* Panel of labelled rows */
.lt-contact-panel {
  margin-top: var(--lt-sp-3);
  padding: var(--lt-sp-2) var(--lt-sp-5);
  border-radius: var(--lt-radius-lg);
  background: var(--lt-cream);
}
.lt-contact-row {
  display: flex;
  align-items: center;
  gap: var(--lt-sp-5);
  padding: var(--lt-sp-3) 0;
}
.lt-contact-row + .lt-contact-row { border-top: 1px solid var(--lt-border); }
.lt-contact-row__icon {
  flex-shrink: 0;
  width: 3.25rem;                  /* 52 */
  height: 3.25rem;
  border-radius: 50%;
  background: var(--lt-ice);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.lt-contact-row__icon img,
.lt-contact-row__icon svg { width: 1.5rem; height: 1.5rem; }
.lt-contact-row__label {
  font-size: var(--lt-fs-xl);      /* 18 */
  font-weight: 800;
  line-height: 1.22;
  color: var(--lt-slate);
  margin: 0;
}
.lt-contact-row__detail {
  font-size: var(--lt-fs-md);      /* 15 */
  font-weight: 500;
  line-height: 1.47;
  color: var(--lt-text-muted);
  margin: 0;
}
.lt-block a.lt-contact-row__detail { color: var(--lt-text-muted); }
.lt-block a.lt-contact-row__detail:hover,
.lt-block a.lt-contact-row__detail:focus-visible { color: var(--lt-blue); }

/* Map */
.lt-contact__map {
  width: 100%;
  border-radius: var(--lt-radius);
  overflow: hidden;
}
.lt-contact__map img,
.lt-contact__map iframe {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 624 / 550;         /* Figma proportions, scales with the column */
  border: 0;
  object-fit: cover;
}

@media (max-width: 64rem) {
  .lt-contact { grid-template-columns: 1fr; }
}
@media (max-width: 48rem) {
  .lt-contact {
    padding-block: var(--lt-sp-6);
    gap: var(--lt-sp-5);
  }
  .lt-contact__heading { font-size: 1.75rem; line-height: 1.21; }
  .lt-contact__subhead { font-size: var(--lt-fs-base); line-height: 1.5; }
  .lt-contact-panel { padding-inline: var(--lt-sp-4); }
  .lt-contact-row { align-items: flex-start; gap: var(--lt-sp-3); }
  .lt-contact-row__label { font-size: var(--lt-fs-base); line-height: 1.375; }
  .lt-contact-row__detail { font-size: 0.875rem; }
  .lt-contact__map img,
  .lt-contact__map iframe { aspect-ratio: 4 / 3; }
}

/* --- Info line (icon + text, footer / location column) ------------------ */
.lt-info {
  display: flex;
  align-items: flex-start;
  gap: var(--lt-sp-5);
  line-height: 1.5;
}
.lt-info > img,
.lt-info > svg { width: 1.5rem; height: 1.5rem; flex-shrink: 0; }

/* --- Media card / photo tile (Our Facility) ----------------------------- */
.lt-tile {
  border-radius: var(--lt-radius);
  overflow: hidden;
  background: var(--lt-ice);
  aspect-ratio: 300 / 190;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--lt-navy);
  font-size: var(--lt-fs-md);
  font-weight: 800;
  text-transform: uppercase;
}
.lt-tile > img { width: 100%; height: 100%; object-fit: cover; }

/* --- Carousel controls (round ghost buttons + dots on dark) ------------- */
.lt-carousel-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--lt-sp-4);
}
.lt-carousel-btn {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.06);
  color: var(--lt-white);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color var(--lt-ease);
}
.lt-carousel-btn:hover { background: rgba(255, 255, 255, 0.16); }
.lt-dots { display: flex; gap: var(--lt-sp-2); }
.lt-dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--lt-white);
  opacity: 0.3;
}
.lt-dot.is-active { background: var(--lt-yellow); opacity: 1; }

/* --- Announcement bar (yellow strip above header) ----------------------- */
.lt-announcement {
  background: var(--lt-yellow);
  color: var(--lt-navy);
  font-size: var(--lt-fs-sm);
  font-weight: 800;
  line-height: 1.35;
  text-align: center;
  padding: var(--lt-sp-3) var(--lt-gutter);
}
.lt-announcement p {
  margin: 0;
  max-width: 60rem;
  margin-inline: auto;
  letter-spacing: 0;
}
.lt-announcement a { text-decoration: underline; text-underline-offset: 0.15em; }
@media (max-width: 640px) {
  .lt-announcement { font-size: 0.875rem; padding-block: var(--lt-sp-4); }
}

/* --- Site header: logo + primary nav + CTA ------------------------------ */
.lt-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--lt-sp-5);
  padding-block: var(--lt-sp-5);
  padding-inline: max(var(--lt-pad), (100% - var(--lt-content-max)) / 2);
  background: var(--lt-cream);
  position: relative;
  z-index: 50;
}
.lt-header__logo {
  display: block;
  flex-shrink: 0;
  line-height: 0;
}
.lt-header__logo img {
  width: 20rem;      /* 320 */
  height: auto;
}

/* Primary nav: fills the space between logo and edge; links centered, CTA right */
.lt-nav {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
}
.lt-nav__list {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3.125rem;     /* 50 */
}
.lt-nav__list a {
  display: inline-block;
  font-size: var(--lt-fs-sm);
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: var(--lt-track-caps);
  color: var(--lt-slate);
  padding: var(--lt-sp-2) 0;
  transition: color var(--lt-ease);
}
.lt-nav__list a:hover,
.lt-nav__list a:focus-visible { color: var(--lt-blue); }
.lt-nav__list a[aria-current="page"] {
  color: var(--lt-blue);
  box-shadow: inset 0 -0.125rem 0 var(--lt-yellow);
}
/* CTA sits after the list, pinned right; links center in the remaining space */
.lt-nav .lt-nav__cta {
  flex-shrink: 0;
  text-transform: uppercase;
  letter-spacing: var(--lt-track-caps);
  margin-left: var(--lt-sp-6);
  color: var(--lt-white);
}
.lt-nav .lt-nav__cta:hover,
.lt-nav .lt-nav__cta:focus-visible { color: var(--lt-white); }

/* Toggle button (hidden on desktop) */
.lt-nav-toggle {
  display: none;
  flex-shrink: 0;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  color: var(--lt-slate);
  align-items: center;
  justify-content: center;
}
.lt-nav-toggle__bars {
  position: relative;
  display: block;
  width: 1.625rem;
  height: 0.125rem;
  background: currentColor;
  transition: background-color var(--lt-ease);
}
.lt-nav-toggle__bars::before,
.lt-nav-toggle__bars::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 0.125rem;
  background: currentColor;
  transition: transform var(--lt-ease);
}
.lt-nav-toggle__bars::before { transform: translateY(-0.5rem); }
.lt-nav-toggle__bars::after  { transform: translateY(0.5rem); }

.lt-nav-toggle[aria-expanded="true"] .lt-nav-toggle__bars { background: transparent; }
.lt-nav-toggle[aria-expanded="true"] .lt-nav-toggle__bars::before { transform: rotate(45deg); }
.lt-nav-toggle[aria-expanded="true"] .lt-nav-toggle__bars::after  { transform: rotate(-45deg); }

.lt-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;
}

/* Mobile / tablet: nav collapses into a panel under the header */
@media (max-width: 76rem) {
  .lt-header { padding-block: var(--lt-sp-4); }
  .lt-header__logo img { width: 11.5rem; }

  .lt-nav-toggle { display: inline-flex; }

  .lt-nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--lt-cream);
    border-top: 1px solid var(--lt-border);
    box-shadow: var(--lt-shadow-card);
    padding-block: var(--lt-sp-4) var(--lt-sp-6);
    padding-inline: max(var(--lt-pad), (100% - var(--lt-content-max)) / 2);
    /* closed state — no transition by default so breakpoint changes don't animate */
    visibility: hidden;
    opacity: 0;
    transform: translateY(-0.5rem);
  }
  .lt-nav.is-open {
    visibility: visible;
    opacity: 1;
    transform: none;
  }
  /* JS adds .is-animating only while the toggle is pressed */
  .lt-nav.is-animating {
    transition: opacity var(--lt-ease), transform var(--lt-ease), visibility 0s linear 160ms;
  }
  .lt-nav.is-animating.is-open {
    transition: opacity var(--lt-ease), transform var(--lt-ease), visibility 0s;
  }

  .lt-nav__list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }
  .lt-nav__list li + li { border-top: 1px solid var(--lt-border); }
  .lt-nav__list a {
    display: block;
    font-size: var(--lt-fs-base);
    padding: var(--lt-sp-4) 0;
  }
  .lt-nav__list a[aria-current="page"] {
    box-shadow: inset 0.25rem 0 0 var(--lt-yellow);
    padding-left: var(--lt-sp-4);
  }
  .lt-nav {
    display: block;
  }
  .lt-nav .lt-nav__cta {
    display: flex;
    width: 100%;
    justify-content: center;
    margin: var(--lt-sp-5) 0 0;
    padding: 1rem 1.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .lt-nav { transition: none; transform: none; }
}

/* --- Footer -------------------------------------------------------------- */
.lt-footer {
  position: relative;
  overflow: hidden;
  background: var(--lt-navy);
  color: var(--lt-white);
}

/* decorative mountain + lake artwork */
.lt-footer__art {
  position: absolute;
  right: 0;
  top: 4.625rem;                   /* 74 */
  width: 29.4375rem;               /* 471 */
  max-width: 48%;
  opacity: 0.18;
  pointer-events: none;
  z-index: 0;
}
.lt-footer__art img { width: 100%; height: auto; display: block; }

.lt-footer__columns {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1.2fr);
  gap: var(--lt-sp-8);
  padding-block: var(--lt-sp-7);
  padding-inline: max(var(--lt-pad), (100% - var(--lt-content-max)) / 2);
}
.lt-footer__columns > * + * {
  border-left: 1px solid rgba(255, 255, 255, 0.25);
  padding-left: var(--lt-sp-8);
}

.lt-footer__brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--lt-sp-5);
}
.lt-footer__logo img {
  width: 20rem;
  max-width: 100%;
  height: auto;
}
.lt-footer__tagline {
  font-size: var(--lt-fs-base);
  line-height: 1.5;
  margin: 0;
  max-width: 24rem;
}

.lt-footer__label {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: var(--lt-track-wide);
  text-transform: uppercase;
  opacity: 0.65;
  margin: 0 0 var(--lt-sp-5);
}

/* link list */
.lt-footer__links {
  display: flex;
  flex-direction: column;
  gap: var(--lt-sp-5);
  margin: 0;
  padding: 0;
  list-style: none;
}
.lt-block .lt-footer__links a,
.lt-block .lt-footer__info a {
  color: var(--lt-white);
  line-height: 1.5;
  transition: color var(--lt-ease);
}
.lt-block .lt-footer__links a:hover,
.lt-block .lt-footer__links a:focus-visible,
.lt-block .lt-footer__info a:hover,
.lt-block .lt-footer__info a:focus-visible { color: var(--lt-yellow); }

/* icon + text rows */
.lt-footer__info {
  display: flex;
  flex-direction: column;
  gap: var(--lt-sp-3);
  margin: 0;
  padding: 0;
  list-style: none;
}
.lt-footer__info li {
  display: flex;
  align-items: flex-start;
  gap: var(--lt-sp-4);
  line-height: 1.5;
}
.lt-footer__info img,
.lt-footer__info svg {
  flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
}

/* legal bar */
.lt-footer__legal {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--lt-sp-4);
  flex-wrap: wrap;
  padding-block: var(--lt-sp-5);
  padding-inline: max(var(--lt-pad), (100% - var(--lt-content-max)) / 2);
  background: rgba(0, 0, 0, 0.16);
  font-size: 0.75rem;
}
.lt-footer__legal p { margin: 0; opacity: 0.75; line-height: 1.5; }
.lt-footer__legal-links {
  display: flex;
  gap: var(--lt-sp-4);
  margin: 0;
  padding: 0;
  list-style: none;
}
.lt-block .lt-footer__legal-links a {
  color: var(--lt-white);
  opacity: 0.75;
  line-height: 1.5;
  transition: opacity var(--lt-ease), color var(--lt-ease);
}
.lt-block .lt-footer__legal-links a:hover,
.lt-block .lt-footer__legal-links a:focus-visible { opacity: 1; color: var(--lt-yellow); }

/* Quick links go two-up from tablet down */
.lt-footer__links--grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--lt-sp-3) var(--lt-sp-4);
}

@media (max-width: 64rem) {
  .lt-footer__columns {
    grid-template-columns: 1fr;
    gap: var(--lt-sp-5);
  }
  .lt-footer__columns > * + * {
    border-left: 0;
    padding-left: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
    padding-top: var(--lt-sp-5);
  }
  .lt-footer__links { 
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--lt-sp-3) var(--lt-sp-4);
  }
  /* artwork drops behind the Location column, as in the mobile comp */
  .lt-footer__art {
    top: auto;
    bottom: 5.5rem;
    width: 18.75rem;               /* 300 */
    max-width: 70%;
    opacity: 0.32;
  }
}
@media (max-width: 48rem) {
  .lt-footer__logo img { width: 16rem; }
  .lt-footer__legal {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--lt-sp-3);
  }
  .lt-footer__legal-links { font-size: 0.6875rem; }
}

/* --------------------------------------------------------------------------
   7. HERO — inside an Avada Container (.lt-full) that carries the bg image
   -------------------------------------------------------------------------- */
.lt-hero {
  position: relative;
  overflow: hidden;
  min-height: 31.25rem;            /* 500 */
  display: flex;
  align-items: center;
  padding-block: var(--lt-section-y-lg);
  padding-inline: max(var(--lt-pad), (100% - var(--lt-content-max)) / 2);
  color: var(--lt-white);
  font-size: var(--lt-fs-btn);
  background-color: var(--lt-navy);   /* shows while the image loads */
  background-image: url("/wp-content/uploads/2026/10/Hero-facility-placeholder-scaled.webp");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
.lt-hero > .lt-container { max-width: none; margin: 0; }
.lt-hero > .lt-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.lt-hero__content {
  position: relative;
  z-index: 1;
  max-width: 46.625rem;            /* 746 */
  display: flex;
  flex-direction: column;
  gap: var(--lt-sp-4);
  padding-left: 2rem;              /* 112 from edge at 1440 = 80 gutter + 32 */
}
.lt-hero__content .lt-h1  { color: var(--lt-white); }
.lt-hero__content .lt-lead {
  color: var(--lt-white);
  max-width: 35rem;                /* 560 */
  font-size: var(--lt-fs-lg);      /* 17 */
  line-height: 1.53;               /* 26 */
}
.lt-hero__content .lt-h1 { line-height: 1.16; }   /* 51 on 44 */
.lt-hero__content .lt-btn-group { gap: var(--lt-sp-4); }
.lt-hero__content .lt-btn-group { margin-top: var(--lt-sp-2); }

@media (max-width: 48rem) {
  .lt-hero {
    min-height: 46rem;              /* 736 — Figma mobile */
    align-items: flex-start;        /* content sits at the top, photo shows below */
    padding-block: var(--lt-sp-7) var(--lt-sp-9);
    background-image: url("/wp-content/uploads/2026/10/Hero-facility-placeholder-mobile-scaled.webp");
    background-position: center bottom;
  }
  .lt-hero__content { padding-left: 0; }
  /* Vertical fade: solid navy behind the copy, clear photo at the bottom */
  .lt-hero > .lt-overlay--hero {
    width: 100%;
    right: 0;
    background: var(--lt-overlay-hero-mobile);
    opacity: 1;
  }
  .lt-hero__content .lt-btn-group .lt-btn { width: 100%; }
}


/* --- Hero variant: centered copy (Indoor Storage page) -------------------- */
.lt-hero--center {
  min-height: 0;
  padding-block: 6rem;                        /* 96 */
  text-align: center;
  justify-content: center;
}
.lt-hero--center > .lt-overlay--hero {         /* Figma: navy fill, image at 10% */
  width: 100%;
  right: 0;
  background: var(--lt-navy);
  opacity: 0.9;
}
.lt-hero--center .lt-hero__content {
  max-width: 62.5rem;                         /* 1000 */
  margin-inline: auto;
  padding-left: 0;
  align-items: center;
}
.lt-hero--center .lt-hero__content .lt-lead {
  max-width: 57.5rem;                         /* 920 */
  font-size: 1.25rem;                         /* 20 */
  line-height: 1.4;
}
.lt-hero--center .lt-hero__content .lt-btn-group { justify-content: center; }

/* Per-page background (placeholder until the real storage photo exists) */
.lt-hero--storage {
  background-image: url("/wp-content/uploads/2026/10/Hero-indoor-storage-placeholder-scaled.webp");
}

/* Down-pointing arrow for in-page anchors */
.lt-btn--down::after { transform: rotate(90deg); }

@media (max-width: 48rem) {
  .lt-hero--center {
    min-height: 0;
    padding: var(--lt-sp-7) var(--lt-sp-5);   /* 48 24 */
    text-align: left;
    align-items: flex-start;
  }
  .lt-hero--center .lt-hero__content {
    margin-inline: 0;
    align-items: stretch;
    gap: var(--lt-sp-5);
  }
  .lt-hero--center .lt-hero__content .lt-lead {
    font-size: var(--lt-fs-base);
    line-height: 1.56;
  }
  .lt-hero--center .lt-hero__content .lt-btn-group { justify-content: stretch; }
  .lt-hero--center > .lt-overlay--hero {       /* same flat wash on mobile, no vertical fade */
    background: var(--lt-navy);
    opacity: 0.9;
  }
  .lt-hero--storage {
    background-image: url("/wp-content/uploads/2026/10/Hero-indoor-storage-placeholder-mobile-scaled.webp");
  }
}

/* --- Service & Detailing hero: per-page background ----------------------
   Placeholder image — swap both URLs when the real service-bay photo exists. */
.lt-hero--service {
  background-image: url("/wp-content/uploads/2026/10/Hero-service-detailing-placeholder-scaled.webp");
}
@media (max-width: 48rem) {
  .lt-hero--service {
    background-image: url("/wp-content/uploads/2026/10/Hero-service-detailing-placeholder-mobile-scaled.webp");
  }
}

/* --- About hero: per-page background, image at 20% (overlay 0.8 vs 0.9) ---
   Placeholder image — swap both URLs when the real lake photo exists. */
.lt-hero--about {
  background-image: url("/wp-content/uploads/2026/10/Hero-about-placeholder-scaled.webp");
}
.lt-hero--center.lt-hero--about > .lt-overlay--hero { opacity: 0.8; }
@media (max-width: 48rem) {
  .lt-hero--about {
    background-image: url("/wp-content/uploads/2026/10/Hero-about-placeholder-mobile-scaled.webp");
  }
  .lt-hero--center.lt-hero--about > .lt-overlay--hero { opacity: 0.8; }
}

/* Headline break: forces the 2-line hero title on desktop, wraps naturally on mobile */
.lt-block .lt-br-desktop { display: inline; }
@media (max-width: 48rem) {
  .lt-block .lt-br-desktop { display: none; }
}


/* --- Intro band: centered heading + muted copy (Service & Detailing page)
   Self-contained band (own cream background + side padding) so it can sit in
   the same lt-full Code Block as the hero. Figma: 900 max, 30/35 heading,
   16/24 body; mobile 28/34 heading, 40 24 padding. */
.lt-block.lt-intro {
  background: var(--lt-cream);
  padding-block: 3.4375rem;                  /* 55 */
  padding-inline: max(var(--lt-pad), (100% - var(--lt-content-max)) / 2);
  text-align: center;
}
.lt-block.lt-intro .lt-intro__inner {
  max-width: 56.25rem;                       /* 900 */
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: 0.4375rem;                            /* 7 */
}
.lt-block.lt-intro .lt-h2 {
  font-size: 1.875rem;                       /* 30 */
  line-height: 1.17;                         /* 35 */
  font-weight: 800;
  color: var(--lt-navy);
  margin: 0;
}
.lt-block.lt-intro p {
  font-family: var(--lt-font);
  font-size: var(--lt-fs-base);              /* 16 */
  line-height: 1.5;                          /* 24 */
  font-weight: 500;
  color: var(--lt-text-muted);
  margin: 0;
}
.lt-block.lt-intro p + p { margin-top: 1.5rem; }   /* the <br><br> gap in Figma */

@media (max-width: 48rem) {
  .lt-block.lt-intro {
    padding-block: 2.5rem;                   /* 40 */
    padding-inline: var(--lt-sp-5);          /* 24 */
  }
  .lt-block.lt-intro .lt-intro__inner { gap: 1.25rem; }   /* 20 */
  .lt-block.lt-intro .lt-h2 {
    font-size: 1.75rem;                      /* 28 */
    line-height: 1.21;                       /* 34 */
  }
}

/* --- Services band: eyebrow + h2 + 3 photo cards (Service & Detailing) ---
   Self-contained ice band. Figma desktop: 64 72 padding, 1296 max, 24 gap,
   416-wide cards, 184 photo, 80 badge overlapping photo/body; mobile: stacked. */
.lt-block.lt-services {
  background: var(--lt-ice);
  padding-block: 4rem;                        /* 64 */
  padding-inline: max(var(--lt-pad), (100% - var(--lt-content-max)) / 2);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lt-sp-6);                        /* 32 */
  text-align: center;
}
.lt-block.lt-services .lt-services__header {
  width: 100%;
  max-width: 81rem;                           /* 1296 */
  display: flex;
  flex-direction: column;
  gap: 0.75rem;                               /* 12 */
}
.lt-block.lt-services .lt-eyebrow {
  font-size: var(--lt-fs-sm);                 /* 14 */
  line-height: 1.43;                          /* 20 */
  letter-spacing: 0;
  color: var(--lt-blue);
  margin: 0;
}
.lt-block.lt-services .lt-h2 {
  font-size: 2.5rem;                          /* 40 */
  line-height: 1.2;                           /* 48 */
  font-weight: 800;
  color: var(--lt-navy);
  margin: 0;
}
.lt-block.lt-services .lt-services__grid {
  list-style: none;
  width: 100%;
  max-width: 81rem;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--lt-sp-5);                        /* 24 */
  text-align: left;
}
.lt-block.lt-services .lt-service-card {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  background: var(--lt-cream);
  border-radius: var(--lt-radius-sm);         /* 8 */
  overflow: hidden;
  margin: 0;
}
.lt-block.lt-services .lt-service-card__photo {
  display: block;
  width: 100%;
  height: 11.5rem;                            /* 184 */
  object-fit: cover;
}
.lt-block.lt-services .lt-service-card__badge {
  position: absolute;
  top: 9rem;                                  /* 144 */
  left: var(--lt-sp-5);                       /* 24 */
  width: 5rem;                                /* 80 */
  height: 5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--lt-cream);
  border: 1.5px solid var(--lt-blue);
  border-radius: 50%;
  z-index: 2;
}
.lt-block.lt-services .lt-service-card__badge img {
  width: 3.25rem;                             /* 52 */
  height: 3.25rem;
  display: block;
}
.lt-block.lt-services .lt-service-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--lt-sp-4);                        /* 16 */
  padding: 3.25rem 2rem 1.75rem;              /* 52 32 28 */
}
.lt-block.lt-services .lt-service-card__title {
  font-family: var(--lt-font);
  font-size: 1.4375rem;                       /* 23 */
  line-height: 1.26;                          /* 29 */
  font-weight: 800;
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-navy);
  margin: 0;
}
.lt-block.lt-services .lt-service-card__intro {
  font-size: var(--lt-fs-xl);                 /* 18 */
  line-height: 1.44;                          /* 26 */
  font-weight: 500;
  color: var(--lt-navy);
  margin: 0;
}
.lt-block.lt-services .lt-service-card__desc {
  font-size: var(--lt-fs-base);               /* 16 */
  line-height: 1.5;                           /* 24 */
  font-weight: 500;
  color: var(--lt-text-muted);
  margin: 0;
}
.lt-block.lt-services a.lt-link {
  margin-top: auto;                           /* pins the link to the card bottom */
  font-size: var(--lt-fs-lg);                 /* 17 */
  line-height: 1.41;                          /* 24 */
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

@media (max-width: 64rem) {
  .lt-block.lt-services .lt-services__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 48rem) {
  .lt-block.lt-services {
    padding: 2.5rem var(--lt-sp-5);           /* 40 24 */
  }
  .lt-block.lt-services .lt-h2 {
    font-size: 1.75rem;                       /* 28 */
    line-height: 1.21;                        /* 34 */
  }
  .lt-block.lt-services .lt-services__grid { grid-template-columns: 1fr; }
  .lt-block.lt-services .lt-service-card__body { padding: 3.25rem var(--lt-sp-5) var(--lt-sp-5); }  /* 52 24 24 */
  .lt-block.lt-services .lt-service-card__title {
    font-size: 1.375rem;                      /* 22 */
    line-height: 1.27;                        /* 28 */
  }
  .lt-block.lt-services .lt-service-card__intro { font-size: var(--lt-fs-base); line-height: 1.5; }
}

/* --- Service process band: 5 steps + notice (Service & Detailing) --------
   Self-contained cream band. Reuses the homepage .lt-steps / .lt-step cards
   (number badge, icon, title, copy, connector arrows) with light-band overrides.
   Figma desktop: 48 72 padding, 1296 max, 36/44 h2, cards 16/21 + 14/20;
   mobile: 40 24, 28/34 h2, cards 20/26 + 16/24, stacked with down arrows. */
.lt-block.lt-service-process {
  background: var(--lt-cream);
  padding-block: var(--lt-sp-7);              /* 48 */
  padding-inline: max(var(--lt-pad), (100% - var(--lt-content-max)) / 2);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lt-sp-6);                        /* 32 */
  text-align: center;
}
.lt-block.lt-service-process .lt-service-process__header {
  width: 100%;
  max-width: 81rem;                           /* 1296 */
  display: flex;
  flex-direction: column;
  gap: 0.75rem;                               /* 12 */
}
.lt-block.lt-service-process .lt-eyebrow {
  font-size: var(--lt-fs-sm);
  line-height: 1.43;
  letter-spacing: 0;
  color: var(--lt-blue);
  margin: 0;
}
.lt-block.lt-service-process .lt-h2 {
  font-size: 2.25rem;                         /* 36 */
  line-height: 1.22;                          /* 44 */
  font-weight: 800;
  color: var(--lt-navy);
  margin: 0;
}
.lt-block.lt-service-process .lt-service-process__sub {
  font-size: var(--lt-fs-xl);                 /* 18 */
  line-height: 1.44;                          /* 26 */
  font-weight: 500;
  color: var(--lt-text-muted);
  margin: 0;
}
/* steps: 5 across, tighter gap, navy connector arrows, solid cards */
.lt-block.lt-service-process .lt-steps {
  max-width: 81rem;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--lt-sp-6);                        /* 32 */
  margin-top: var(--lt-sp-5);                 /* room for the number badge */
  list-style: none;
  padding: 0;
}
.lt-block.lt-service-process .lt-step {
  background: var(--lt-cream);
  padding: 1.75rem 1rem 1.25rem;              /* 28 16 20 */
  margin: 0;
}
.lt-block.lt-service-process .lt-step + .lt-step::before {
  left: calc(-1 * var(--lt-sp-6));
  width: var(--lt-sp-6);
  height: 1.25rem;
  background-color: var(--lt-navy);
  -webkit-mask-size: 1.25rem 1.25rem;
          mask-size: 1.25rem 1.25rem;
}
.lt-block.lt-service-process .lt-step__title {
  font-family: var(--lt-font);
  font-size: var(--lt-fs-base);               /* 16 */
  line-height: 1.31;                          /* 21 */
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-navy);
}
.lt-block.lt-service-process .lt-step__copy {
  font-size: var(--lt-fs-sm);                 /* 14 */
  line-height: 1.43;                          /* 20 */
}

/* notice panel */
.lt-block.lt-service-process .lt-notice {
  width: 100%;
  max-width: 81rem;
  display: flex;
  align-items: center;
  gap: var(--lt-sp-5);                        /* 24 */
  padding: var(--lt-sp-4) var(--lt-sp-5);     /* 16 24 */
  background: #fff7e5;
  border-left: 5px solid var(--lt-yellow);
  border-radius: var(--lt-radius-sm);
  text-align: left;
}
.lt-block.lt-service-process .lt-notice__icon {
  flex-shrink: 0;
  width: 4rem;                                /* 64 */
  height: 3.5rem;                             /* 56 */
  display: block;
}
.lt-block.lt-service-process .lt-notice__rule {
  flex-shrink: 0;
  width: 1px;
  height: 3rem;                               /* 48 */
  background: var(--lt-border);
}
.lt-block.lt-service-process .lt-notice__text {
  display: flex;
  flex-direction: column;
  gap: var(--lt-sp-2);                        /* 8 */
}
.lt-block.lt-service-process .lt-notice__title {
  font-family: var(--lt-font);
  font-size: var(--lt-fs-xl);                 /* 18 */
  line-height: 1.33;                          /* 24 */
  font-weight: 800;
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-navy);
  margin: 0;
}
.lt-block.lt-service-process .lt-notice__copy {
  font-size: var(--lt-fs-sm);                 /* 14 */
  line-height: 1.43;                          /* 20 */
  font-weight: 500;
  color: var(--lt-text-muted);
  margin: 0;
}

@media (max-width: 64rem) {
  .lt-block.lt-service-process .lt-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lt-block.lt-service-process .lt-step + .lt-step::before { content: none; }
}
@media (max-width: 48rem) {
  .lt-block.lt-service-process { padding: 2.5rem var(--lt-sp-5); }   /* 40 24 */
  .lt-block.lt-service-process .lt-h2 { font-size: 1.75rem; line-height: 1.21; }
  .lt-block.lt-service-process .lt-service-process__sub { font-size: var(--lt-fs-base); line-height: 1.5; }
  .lt-block.lt-service-process .lt-steps {
    grid-template-columns: 1fr;
    gap: 3.5rem;                              /* 28 + arrow row */
  }
  .lt-block.lt-service-process .lt-step { padding: 1.75rem 1rem 1.5rem; }   /* 28 16 24 */
  .lt-block.lt-service-process .lt-step + .lt-step::before {
    content: "";
    top: calc(-1 * 3.5rem);
    left: 50%;
    width: 1.25rem;
    height: 3.5rem;
    transform: translateX(-50%) rotate(90deg);
  }
  .lt-block.lt-service-process .lt-step__title { font-size: 1.25rem; line-height: 1.3; }   /* 20/26 */
  .lt-block.lt-service-process .lt-step__copy { font-size: var(--lt-fs-base); line-height: 1.5; }
  .lt-block.lt-service-process .lt-notice {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--lt-sp-4);
  }
  .lt-block.lt-service-process .lt-notice__rule { display: none; }
}

/* --- Overview: photo left, copy right (Indoor Storage page) --------------- */
.lt-overview {
  display: grid;
  grid-template-columns: minmax(0, 40rem) minmax(0, 37.5rem);  /* 640 / 600 */
  justify-content: center;             /* columns stay together, centered in the band */
  align-items: center;
  gap: 4.5rem;                         /* 72 fixed — never opens up on wide screens */
  padding-block: var(--lt-section-y);
  padding-inline: max(var(--lt-pad), (100% - var(--lt-content-max)) / 2);
  background: var(--lt-cream);
  color: var(--lt-slate);
}
.lt-overview__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 640 / 345;
  object-fit: cover;
  border-radius: var(--lt-radius);
}
.lt-overview__copy {
  display: flex;
  flex-direction: column;
  gap: var(--lt-sp-4);
}
.lt-block .lt-overview__heading,
.lt-section .lt-overview__heading {
  font-family: var(--lt-font);
  font-size: var(--lt-fs-h3);          /* 30 at desktop, 28 mobile */
  font-weight: 800;
  line-height: 1.17;                   /* 35 on 30 */
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-slate);
  margin: 0 0 var(--lt-sp-2);
}
.lt-block .lt-overview__text,
.lt-section .lt-overview__text {
  max-width: 35rem;                    /* 560 */
  font-size: var(--lt-fs-base);
  font-weight: 500;
  line-height: 1.5;
  color: var(--lt-text-muted);
  margin: 0;
}
@media (max-width: 64rem) {
  .lt-overview { grid-template-columns: 1fr; gap: var(--lt-sp-4); }
  .lt-overview__media img { aspect-ratio: 342 / 220; }
  .lt-overview__heading br { display: none; }
  .lt-block .lt-overview__heading,
  .lt-section .lt-overview__heading { line-height: 1.29; }   /* 36 on 28 */
  .lt-block .lt-overview__text,
  .lt-section .lt-overview__text { max-width: none; line-height: 1.56; }
}


/* --- Our Story variant (About): copy left, photo right, yellow-rule eyebrow -
   Figma desktop: 48 72 padding, 564 copy / 676 photo, 56 gap, 36/40 heading,
   18/26 body; mobile 40 24, 28/34 heading, 16/24 body, photo below copy. */
.lt-overview--story {
  grid-template-columns: minmax(0, 35.25rem) minmax(0, 42.25rem);   /* 564 / 676 */
  gap: 3.5rem;                                                      /* 56 */
  padding-block: var(--lt-sp-7);                                    /* 48 */
}
.lt-overview--story .lt-overview__copy { gap: var(--lt-sp-4); }
.lt-overview--story .lt-eyebrow--rule {
  font-size: var(--lt-fs-sm);
  line-height: 1.43;
  font-weight: 800;
  letter-spacing: 0;
  color: var(--lt-navy);
  margin: 0;
}
.lt-overview--story .lt-eyebrow--rule::before { height: 0.25rem; }   /* 4 */
.lt-block .lt-overview--story .lt-overview__heading {
  font-size: 2.25rem;                   /* 36 */
  line-height: 1.11;                    /* 40 */
  color: var(--lt-navy);
  margin: 0;
}
.lt-block .lt-overview--story .lt-overview__text {
  max-width: none;
  font-size: var(--lt-fs-xl);           /* 18 */
  line-height: 1.44;                    /* 26 */
}
.lt-block .lt-overview--story .lt-overview__text + .lt-overview__text { margin-top: 0.5rem; }
.lt-overview--story .lt-overview__media img {
  aspect-ratio: 676 / 350;
  border-radius: var(--lt-radius-sm);   /* 8 */
}
@media (max-width: 64rem) {
  .lt-overview--story { grid-template-columns: 1fr; gap: 1.75rem; }   /* stack; 28 gap */
  .lt-block .lt-overview--story .lt-overview__heading { font-size: 1.75rem; line-height: 1.21; }   /* 28/34 */
  .lt-block .lt-overview--story .lt-overview__text { font-size: var(--lt-fs-base); line-height: 1.5; }
  .lt-overview--story .lt-overview__media img { aspect-ratio: 342 / 220; }
}
@media (max-width: 48rem) {
  .lt-overview--story { padding: 2.5rem var(--lt-sp-5); }           /* 40 24 */
}

/* --- Meet Rob variant (About): ice band, portrait photo left, copy right --
   Shares the --story type styles below via the shared selector list.
   Figma desktop: 395x500 photo, 564 copy, 120 gap; mobile: 234x274 photo
   centered above the copy, 28 gap. */
.lt-overview--rob {
  grid-template-columns: minmax(0, 24.6875rem) minmax(0, 35.25rem);   /* 395 / 564 */
  gap: 7.5rem;                                                        /* 120 */
  padding-block: var(--lt-sp-7);                                      /* 48 */
  background: var(--lt-ice);
}
.lt-overview--rob .lt-overview__copy { gap: var(--lt-sp-4); }
.lt-overview--rob .lt-eyebrow--rule {
  font-size: var(--lt-fs-sm);
  line-height: 1.43;
  font-weight: 800;
  letter-spacing: 0;
  color: var(--lt-navy);
  margin: 0;
}
.lt-overview--rob .lt-eyebrow--rule::before { height: 0.25rem; }
.lt-block .lt-overview--rob .lt-overview__heading {
  font-size: 2.25rem;
  line-height: 1.11;
  color: var(--lt-navy);
  margin: 0;
}
.lt-block .lt-overview--rob .lt-overview__text {
  max-width: none;
  font-size: var(--lt-fs-xl);
  line-height: 1.44;
}
.lt-block .lt-overview--rob .lt-overview__text + .lt-overview__text { margin-top: 0.5rem; }
.lt-overview--rob .lt-overview__media img {
  aspect-ratio: 395 / 500;
  border-radius: var(--lt-radius-sm);
}
@media (max-width: 64rem) {
  .lt-overview--rob { grid-template-columns: 1fr; gap: 1.75rem; justify-items: center; }
  .lt-overview--rob .lt-overview__copy { width: 100%; }
  .lt-overview--rob .lt-overview__media { width: 14.625rem; }        /* 234 */
  .lt-overview--rob .lt-overview__media img { aspect-ratio: 234 / 274; }
  .lt-block .lt-overview--rob .lt-overview__heading { font-size: 1.75rem; line-height: 1.21; }
  .lt-block .lt-overview--rob .lt-overview__text { font-size: var(--lt-fs-base); line-height: 1.5; }
}
@media (max-width: 48rem) {
  .lt-overview--rob { padding: 2.5rem var(--lt-sp-5); }
}

/* --- Storage features: eyebrow + heading + 3x2 card grid ------------------ */
.lt-features {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lt-sp-4);
  padding-block: var(--lt-sp-6);        /* 32 */
  padding-inline: max(var(--lt-pad), (100% - var(--lt-content-max)) / 2);
  background: var(--lt-ice);
  color: var(--lt-slate);
  text-align: center;
}
.lt-features__header {
  width: 100%;
  max-width: 80rem;                     /* 1280 */
  display: flex;
  flex-direction: column;
  gap: var(--lt-sp-4);
}
.lt-block .lt-features__eyebrow {
  font-size: var(--lt-fs-base);
  line-height: 1.4;
  letter-spacing: 0;
  margin: 0;
}
.lt-block .lt-features__heading,
.lt-section .lt-features__heading {
  font-family: var(--lt-font);
  font-size: 2rem;                      /* 32 */
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-slate);
  margin: 0;
}
.lt-block .lt-features__grid {
  list-style: none;
  width: 100%;
  max-width: 80rem;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--lt-sp-4);
  text-align: left;
}
.lt-feature-card {
  min-height: 11.25rem;                 /* 180 */
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;                         /* 20 */
  padding: var(--lt-sp-5);              /* 24 */
  background: var(--lt-cream);
  border: 1px solid var(--lt-border);
  border-radius: var(--lt-radius-sm);
  margin: 0;
}
.lt-feature-card__icon {
  flex: 0 0 2rem;
  width: 2rem;
  height: 2rem;
}
.lt-feature-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--lt-sp-2);
  min-width: 0;
}
.lt-block .lt-feature-card__title,
.lt-section .lt-feature-card__title {
  font-family: var(--lt-font);
  font-size: var(--lt-fs-xl);           /* 18 */
  font-weight: 800;
  line-height: 1.45;
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-slate);
  margin: 0;
}
.lt-block .lt-feature-card__text,
.lt-section .lt-feature-card__text {
  font-size: var(--lt-fs-base);
  font-weight: 500;
  line-height: 1.45;
  color: var(--lt-text-muted);
  margin: 0;
}
@media (max-width: 64rem) {
  .lt-block .lt-features__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 48rem) {
  .lt-features {
    align-items: flex-start;
    text-align: left;
    padding-block: var(--lt-sp-7);      /* 48 */
  }
  .lt-block .lt-features__eyebrow { font-size: var(--lt-fs-btn); line-height: 1.43; }
  .lt-block .lt-features__heading,
  .lt-section .lt-features__heading { font-size: 1.75rem; line-height: 1.29; }  /* 28/36 */
  .lt-block .lt-features__grid { grid-template-columns: 1fr; }
  .lt-feature-card { min-height: 0; padding: 1.25rem; gap: var(--lt-sp-4); }
  .lt-block .lt-feature-card__title,
  .lt-section .lt-feature-card__title { font-size: var(--lt-fs-lg); line-height: 1.41; }   /* 17/24 */
  .lt-block .lt-feature-card__text,
  .lt-section .lt-feature-card__text { font-size: var(--lt-fs-md); line-height: 1.53; }    /* 15/23 */
}


/* --- Storage rates table (Indoor Storage page) ---------------------------- */
.lt-rates {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--lt-sp-4);
  padding-block: var(--lt-sp-8);                 /* 64 */
  padding-inline: max(var(--lt-pad), (100% - var(--lt-content-max)) / 2);
  background: var(--lt-white);
  color: var(--lt-text-muted);
  scroll-margin-top: 6rem;                       /* room for the header on #rates jumps */
}
.lt-block .lt-rates__heading,
.lt-section .lt-rates__heading {
  font-family: var(--lt-font);
  font-size: 2.25rem;                            /* 36 */
  font-weight: 800;
  line-height: 1.22;
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-slate);
  margin: 0;
}
.lt-block .lt-rates__intro,
.lt-section .lt-rates__intro {
  font-size: var(--lt-fs-xl);                    /* 18 */
  font-weight: 500;
  line-height: 1.56;
  color: var(--lt-text-muted);
  margin: 0;
}
.lt-rates__table-wrap {
  width: 100%;
  max-width: 80rem;                              /* 1280 */
  border: 1px solid var(--lt-border);
  border-radius: var(--lt-radius-sm);
  overflow: hidden;
}
.lt-block .lt-rates__table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  margin: 0;
  font-family: var(--lt-font);
  font-size: var(--lt-fs-xl);                    /* 18 */
  line-height: 1.44;
  color: var(--lt-text-muted);
  background: var(--lt-white);
  table-layout: fixed;
}
.lt-block .lt-rates__table th,
.lt-block .lt-rates__table td {
  padding: 0.75rem 1rem;
  text-align: left;
  vertical-align: middle;
  border: 0;
  border-right: 1px solid var(--lt-border);
  border-bottom: 1px solid var(--lt-border);
  background: transparent;
}
.lt-block .lt-rates__table th:last-child,
.lt-block .lt-rates__table td:last-child { border-right: 0; }
.lt-block .lt-rates__table tbody tr:last-child th,
.lt-block .lt-rates__table tbody tr:last-child td { border-bottom: 0; }
/* Column widths: 170 / 400 / 400 / 310 of 1280 (Length / Founding prepay / Standard prepay / Monthly) */
.lt-rates__table col:nth-child(1), .lt-block .lt-rates__table th:nth-child(1) { width: 13.3%; }
.lt-block .lt-rates__table th:nth-child(2) { width: 31.25%; }
.lt-block .lt-rates__table th:nth-child(3) { width: 31.25%; }
.lt-block .lt-rates__table th:nth-child(4) { width: 24.2%; }
.lt-block .lt-rates__table thead th {
  height: 3.5rem;                                /* 56 */
  font-size: var(--lt-fs-base);
  font-weight: 800;
  line-height: 1.375;
  color: var(--lt-navy);
  text-transform: none;
}
.lt-block .lt-rates__table tbody th {            /* length column */
  height: 3.75rem;                               /* 60 — 11 rows now, was 68 */
  font-weight: 500;
  color: var(--lt-text-muted);
}
.lt-block .lt-rates__table td.lt-rates__monthly {
  font-weight: 800;
  color: var(--lt-navy);
}
.lt-block .lt-rates__table td.lt-rates__monthly--std {
  font-weight: 500;
  color: var(--lt-text-muted);
}
.lt-rates__th-short, .lt-rates__sub { display: none; }
.lt-block .lt-rates__fine,
.lt-section .lt-rates__fine {
  font-size: var(--lt-fs-base);
  font-weight: 500;
  line-height: 1.4;
  color: var(--lt-text-muted);
  margin: 0;
}

/* Tablet: keep the 5-column table but tighten type so cells don't wrap */
@media (max-width: 64rem) {
  .lt-block .lt-rates__table { font-size: var(--lt-fs-base); }
  .lt-block .lt-rates__table th,
  .lt-block .lt-rates__table td { padding: 0.75rem; }
}

/* Compact 3-column layout: Length / 12-month prepay (founding over standard) / Monthly */
@media (max-width: 48rem) {
  .lt-rates {
    gap: var(--lt-sp-5);
    padding-block: var(--lt-sp-7);               /* 48 */
  }
  .lt-block .lt-rates__heading,
  .lt-section .lt-rates__heading { font-size: 1.75rem; line-height: 1.29; }   /* 28/36 */
  .lt-block .lt-rates__intro,
  .lt-section .lt-rates__intro { font-size: var(--lt-fs-base); line-height: 1.56; }
  .lt-rates__table-wrap { border-radius: 0.25rem; }
  .lt-block .lt-rates__table,
  .lt-block .lt-rates__table thead,
  .lt-block .lt-rates__table tbody { display: block; width: 100%; }
  .lt-block .lt-rates__table tr {
    display: grid;
    grid-template-columns: 24% 46% 30%;
    grid-template-rows: auto auto;
    border-bottom: 1px solid var(--lt-border);
  }
  .lt-block .lt-rates__table tbody tr:last-child { border-bottom: 0; }
  .lt-block .lt-rates__table th,
  .lt-block .lt-rates__table td,
  .lt-block .lt-rates__table th:nth-child(n),      /* beat the desktop width rules */
  .lt-block .lt-rates__table tbody th {             /* beat the desktop 68px height */
    display: block;
    width: auto;
    height: auto;
    padding: 0.75rem 0.5rem;
    border: 0;
    background: var(--lt-cream);
  }
  .lt-block .lt-rates__table .lt-rates__founding { background: var(--lt-ice); }
  /* header: hide the standard-prepay heading (col 2 covers both), swap long labels for short */
  .lt-block .lt-rates__table thead th {
    height: 3.75rem;                             /* 60 */
    font-size: 0.75rem;                          /* 12 */
    line-height: 1.5;
    display: flex;
    align-items: center;
  }
  .lt-block .lt-rates__table thead th.lt-rates__founding { color: var(--lt-blue); }
  .lt-block .lt-rates__table thead th.lt-rates__th-prepay { display: none; }
  .lt-block .lt-rates__table thead th:nth-child(4) { grid-column: 3; }
  .lt-rates__th-full { display: none; }
  .lt-rates__th-short { display: inline; }
  /* body cell placement: prepay stacks founding over standard, monthly spans both rows */
  .lt-block .lt-rates__table tbody th { grid-column: 1; grid-row: 1 / span 2; }
  .lt-block .lt-rates__table tbody td:nth-child(2) { grid-column: 2; grid-row: 1; padding-bottom: 0.25rem; }
  .lt-block .lt-rates__table tbody td:nth-child(3) { grid-column: 2; grid-row: 2; padding-top: 0; }
  .lt-block .lt-rates__table tbody td:nth-child(4) {
    grid-column: 3;
    grid-row: 1 / span 2;
    display: flex;
    align-items: center;
  }
  /* length cell: bold length + Founding / Standard labels */
  .lt-block .lt-rates__table tbody th {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.625rem;                         /* 10 */
    line-height: 1.6;
  }
  .lt-rates__len { font-size: var(--lt-fs-sm); font-weight: 800; line-height: 1.54; color: var(--lt-navy); }
  .lt-rates__sub { display: block; }
  /* values */
  .lt-block .lt-rates__table td.lt-rates__monthly,
  .lt-block .lt-rates__table td.lt-rates__monthly--std {
    font-size: var(--lt-fs-xl);
    font-weight: 800;
    line-height: 1.33;
    color: var(--lt-navy);
  }
  .lt-rates__dash { display: none; }
  .lt-rates__prepay { display: block; font-size: var(--lt-fs-btn); line-height: 1.43; }
  .lt-rates__eff    { display: block; font-size: var(--lt-fs-xs); line-height: 1.45; margin-top: 0.25rem; }
  .lt-block .lt-rates__fine,
  .lt-section .lt-rates__fine { font-size: var(--lt-fs-btn); line-height: 1.43; }
}


/* --- FAQ accordion (Indoor Storage page) — native details/summary --------- */
.lt-faq {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--lt-sp-5);
  padding-block: var(--lt-sp-8);                 /* 64 */
  padding-inline: max(var(--lt-pad), (100% - var(--lt-content-max)) / 2);
  background: var(--lt-ice);
  color: var(--lt-slate);
  text-align: center;
}
.lt-faq__header { display: flex; flex-direction: column; gap: var(--lt-sp-4); }
.lt-block .lt-faq__heading,
.lt-section .lt-faq__heading {
  font-family: var(--lt-font);
  font-size: 2.25rem;                            /* 36 */
  font-weight: 800;
  line-height: 1.22;
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-slate);
  margin: 0;
}
.lt-block .lt-faq__subhead,
.lt-section .lt-faq__subhead {
  font-size: var(--lt-fs-xl);
  font-weight: 500;
  line-height: 1.56;
  color: var(--lt-text-muted);
  margin: 0;
}
.lt-faq__columns {
  width: 100%;
  max-width: 80rem;                              /* 1280 */
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--lt-sp-5);                           /* 24 */
  align-items: start;
  text-align: left;
}
.lt-faq__col { display: flex; flex-direction: column; gap: var(--lt-sp-2); }   /* 8 */
.lt-faq__item {
  background: var(--lt-white);
  border: 1px solid var(--lt-border);
  border-radius: var(--lt-radius-sm);
  padding: var(--lt-sp-4) var(--lt-sp-5);        /* 16 24 */
}
.lt-block .lt-faq__q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--lt-sp-4);
  list-style: none;
  cursor: pointer;
  font-family: var(--lt-font);
  font-size: var(--lt-fs-base);
  font-weight: 800;
  line-height: 1.45;
  color: var(--lt-slate);
  margin: 0;
}
.lt-block .lt-faq__q::-webkit-details-marker { display: none; }
.lt-block .lt-faq__q::after {                    /* + / − toggle */
  content: "+";
  flex: 0 0 1.5rem;
  width: 1.5rem;
  text-align: center;
  font-size: 1.25rem;
  font-weight: 800;
  line-height: 1.45;
  color: var(--lt-blue);
}
.lt-faq__item[open] > .lt-faq__q::after { content: "−"; }
.lt-block .lt-faq__q:focus-visible { outline: 2px solid var(--lt-blue); outline-offset: 4px; border-radius: 2px; }
.lt-faq__a { padding-top: var(--lt-sp-3); }      /* 12 */
.lt-block .lt-faq__a p {
  font-size: var(--lt-fs-base);
  font-weight: 500;
  line-height: 1.45;
  color: var(--lt-text-muted);
  margin: 0;
}
.lt-block .lt-faq__a p + p { margin-top: 1.45em; }
@media (max-width: 48rem) {
  .lt-faq {
    align-items: flex-start;
    text-align: left;
    padding-block: var(--lt-sp-7);               /* 48 */
  }
  .lt-block .lt-faq__heading,
  .lt-section .lt-faq__heading { font-size: 1.75rem; line-height: 1.29; }
  .lt-block .lt-faq__subhead,
  .lt-section .lt-faq__subhead { font-size: var(--lt-fs-base); }
  .lt-faq__columns { grid-template-columns: 1fr; gap: var(--lt-sp-4); }
  .lt-faq__col { gap: var(--lt-sp-4); }
  .lt-faq__item { padding: var(--lt-sp-4); }
  .lt-block .lt-faq__q { font-size: var(--lt-fs-md); line-height: 1.47; }   /* 15/22 */
  .lt-block .lt-faq__a p { font-size: var(--lt-fs-md); line-height: 1.53; }
}

/* FAQ answers with a bullet list (Service & Detailing "what to include") */
.lt-block .lt-faq__a ul {
  list-style: disc;
  margin: 0.75em 0 0;
  padding-left: 1.25rem;
}
.lt-block .lt-faq__a li {
  font-size: var(--lt-fs-base);
  font-weight: 500;
  line-height: 1.45;
  color: var(--lt-text-muted);
  margin: 0 0 0.25em;
  padding: 0;
}
.lt-block .lt-faq__a ul + p { margin-top: 0.75em; }
@media (max-width: 48rem) {
  .lt-block .lt-faq__a li { font-size: var(--lt-fs-md); line-height: 1.53; }
}


/* --- Closing CTA band (Indoor Storage page): lake photo + gold rules ------ */
.lt-cta-band {
  position: relative;
  min-height: 28.75rem;                          /* 460 */
  display: flex;
  align-items: center;
  padding-inline: var(--lt-pad);
  border-top: 0.5rem solid var(--lt-yellow);     /* 8 */
  border-bottom: 0.5rem solid var(--lt-yellow);
  background-color: var(--lt-navy);
  background-image: url("/wp-content/uploads/2026/10/cta-lake-sunset-placeholder.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  text-align: center;
}
.lt-cta-band .lt-cta { padding-block: var(--lt-sp-7); }          /* 48 inside the band */
.lt-cta-band .lt-cta__panel {
  min-height: 19.375rem;                         /* 310 */
  justify-content: center;
  padding: var(--lt-sp-5) var(--lt-sp-6);        /* 24 32 */
  background: var(--lt-cream);                   /* solid, not the 95% used on the homepage */
}
.lt-block.lt-cta-band .lt-cta__text { line-height: 1.33; }
.lt-cta-band .lt-cta__panel .lt-btn--lg { min-width: 14rem; min-height: 3.5rem; }   /* 224 x 56 */
@media (max-width: 48rem) {
  .lt-cta-band {
    min-height: 0;
    padding: var(--lt-sp-7) 1.25rem;             /* 48 20 */
  }
  .lt-cta-band .lt-cta {                        /* undo the homepage's mobile band styling */
    margin: 0;
    padding: 0;
    background: none;
    border: 0;
  }
  .lt-cta-band .lt-cta__panel {
    min-height: 0;
    padding: var(--lt-sp-5) 1.25rem;             /* 24 20 */
  }
  .lt-block.lt-cta-band .lt-cta__heading { line-height: 1.21; }
  .lt-cta-band .lt-cta__panel .lt-btn--lg { min-width: 0; min-height: 3rem; width: 100%; }
}


/* --- Legal pages: Privacy, Terms, Accessibility --------------------------- */
#wrapper .lt-block .lt-legal__updated {
  font-size: var(--lt-fs-sm);
  font-weight: 500;
  color: var(--lt-text-muted);
  margin: 0;
}
.lt-legal {
  max-width: 72ch;
  padding-block: var(--lt-sp-6) var(--lt-sp-9);
  color: var(--lt-text-muted);
}
#wrapper .lt-block.lt-legal h2,
#wrapper .lt-block.lt-legal h3 {
  font-family: var(--lt-font);
  font-weight: 800;
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-slate);
  margin: var(--lt-sp-6) 0 var(--lt-sp-3);
}
#wrapper .lt-block.lt-legal h2 { font-size: var(--lt-fs-h4); line-height: 1.3; }
#wrapper .lt-block.lt-legal h3 { font-size: var(--lt-fs-xl); line-height: 1.4; margin-top: var(--lt-sp-5); }
#wrapper .lt-block.lt-legal p,
#wrapper .lt-block.lt-legal li {
  font-size: var(--lt-fs-base);
  font-weight: 500;
  line-height: 1.6;
  color: var(--lt-text-muted);
  margin: 0 0 var(--lt-sp-4);
}
#wrapper .lt-block.lt-legal ul {
  margin: 0 0 var(--lt-sp-4);
  padding-left: 1.25rem;
  list-style: disc;
}
#wrapper .lt-block.lt-legal li { margin-bottom: var(--lt-sp-2); list-style: disc; }
#wrapper .lt-block.lt-legal h2:first-child { margin-top: 0; }
#wrapper .lt-block.lt-legal a { color: var(--lt-blue); text-decoration: underline; text-underline-offset: 0.15em; }
#wrapper .lt-block.lt-legal a:hover { color: var(--lt-navy); }


/* --- 404 page: page-head with buttons, filled to a sensible height -------- */
.lt-block.lt-404 {
  min-height: 50vh;
  padding-bottom: var(--lt-sp-9);
  padding-inline: max(var(--lt-pad), (100% - var(--lt-content-max)) / 2);   /* self-contained: Container padding not required */
  border-bottom: 0;
}
.lt-block.lt-404 .lt-btn-group { margin-top: var(--lt-sp-4); }


/* --------------------------------------------------------------------------
   8. AVADA OVERRIDES — the only part of this file that touches Avada
   -------------------------------------------------------------------------- */

/* --- Code Block output: no extra spacing around our HTML ----------------- */
.fusion-code-block,
.fusion-code-block .fusion-text {
  margin: 0;
}

/* --- Avada Text element: match brand body copy --------------------------- */
.fusion-text p {
  font-family: var(--lt-font);
  font-weight: 500;
  color: var(--lt-text-muted);
}
.fusion-text p:last-child { margin-bottom: 0; }

/* --- Avada Button element: make it look like .lt-btn so either works ----- */
.fusion-button {
  font-family: var(--lt-font) !important;
  font-weight: 800 !important;
  text-transform: uppercase;
  letter-spacing: var(--lt-track-caps);
  border-radius: 0 !important;
  transition: background-color var(--lt-ease), color var(--lt-ease);
}
.fusion-button.button-default,
.fusion-button.button-flat {
  background: var(--lt-yellow) !important;
  color: var(--lt-navy) !important;
  border-color: var(--lt-yellow) !important;
}
.fusion-button.button-default:hover,
.fusion-button.button-flat:hover {
  background: #f0b720 !important;
  border-color: #f0b720 !important;
}

/* --- Headings rendered by Avada (page content, Title element) ------------ */
.fusion-title h1,
.fusion-title h2,
.fusion-title h3,
.fusion-title h4 {
  font-family: var(--lt-font);
  font-weight: 800;
  color: var(--lt-navy);
}

/* --- Remove column inner padding when a column holds only a Code Block --- */
.fusion-column-wrapper:has(> .fusion-code-block:only-child) {
  padding: 0;
}

/* --- Header / footer tweaks go here once those are built ----------------- */
/* --- .lt-full on an Avada Container = true full-bleed wrapper ------------ */
.lt-full.fusion-fullwidth {
  padding: 0 !important;
}
.lt-full .fusion-builder-row {
  max-width: none !important;
  width: 100%;
  margin: 0 !important;
}
.lt-full .fusion-layout-column {
  width: 100% !important;
  margin: 0 !important;
  --awb-spacing-right-small: 0;
  --awb-spacing-left-small: 0;
}
.lt-full .fusion-column-wrapper {
  padding: 0 !important;
  margin: 0 !important;
}

/* Header must sit above page content so the mobile panel overlays it.
   Avada renders header layout sections in different wrappers depending on
   where the layout section is assigned, so cover all of them. */
.fusion-tb-header,
.fusion-tb-page-title-bar,
.fusion-page-title-bar,
.fusion-header-wrapper,
.fusion-tb-header .fusion-fullwidth,
.fusion-tb-page-title-bar .fusion-fullwidth {
  position: relative;
  z-index: 1000;
}
/* ...and the page content must not create a competing context */
#main,
.fusion-footer {
  position: relative;
  z-index: 1;
}

/* Header containers must not clip the dropdown nav panel */
.fusion-tb-page-title-bar,
.fusion-page-title-bar,
.fusion-tb-page-title-bar .lt-full.fusion-fullwidth,
.fusion-tb-page-title-bar .lt-full .fusion-builder-row,
.fusion-tb-page-title-bar .lt-full .fusion-layout-column,
.fusion-tb-page-title-bar .lt-full .fusion-column-wrapper,
.fusion-tb-header .lt-full.fusion-fullwidth,
.fusion-tb-header .lt-full .fusion-builder-row,
.fusion-tb-header .lt-full .fusion-layout-column,
.fusion-tb-header .lt-full .fusion-column-wrapper {
  overflow: visible !important;
}

/* --- Headings: beat Avada's `.fusion-* h1` rules without !important ------ */
.lt-block .lt-display,
.lt-block .lt-h1,
.lt-block .lt-h2,
.lt-block .lt-h3,
.lt-block .lt-h4,
.lt-section .lt-display,
.lt-section .lt-h1,
.lt-section .lt-h2,
.lt-section .lt-h3,
.lt-section .lt-h4 {
  margin: 0;
  font-family: var(--lt-font);
  font-weight: 800;
  line-height: var(--lt-lh-tight);
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-navy);
}
.lt-block .lt-display, .lt-section .lt-display { font-size: var(--lt-fs-display); font-weight: 900; line-height: 0.95; }
.lt-block .lt-h1, .lt-section .lt-h1 { font-size: var(--lt-fs-h1); }
.lt-block .lt-h2, .lt-section .lt-h2 { font-size: var(--lt-fs-h2); }
.lt-block .lt-h3, .lt-section .lt-h3 { font-size: var(--lt-fs-h3); }
.lt-block .lt-h4, .lt-section .lt-h4 { font-size: var(--lt-fs-h4); line-height: var(--lt-lh-snug); }

/* Hero headline (Figma: 44/51, 800, white) */
.lt-block .lt-hero__content .lt-h1,
.lt-section .lt-hero__content .lt-h1 {
  font-size: var(--lt-fs-h1);
  line-height: 1.16;
  color: var(--lt-white);
}
.lt-block .lt-section--navy .lt-h1,
.lt-block .lt-section--navy .lt-h2,
.lt-block .lt-section--navy .lt-h3,
.lt-block .lt-section--navy .lt-h4,
.lt-block .lt-on-dark { color: var(--lt-white); }

/* --- Component headings: same Avada specificity problem as .lt-h1 ------- */
.lt-block .lt-offer__headline,
.lt-section .lt-offer__headline {
  font-size: var(--lt-fs-display);
  font-weight: 900;
  line-height: 0.875;
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-navy);
  margin: 0;
}
.lt-block .lt-service__title,
.lt-section .lt-service__title {
  font-size: var(--lt-fs-h4);
  font-weight: 800;
  line-height: var(--lt-lh-snug);
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-navy);
  margin: 0;
}
.lt-block .lt-step__title,
.lt-section .lt-step__title {
  font-size: var(--lt-fs-xl);
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-navy);
  margin: 0;
}
.lt-block .lt-plan-card__title,
.lt-section .lt-plan-card__title {
  font-size: var(--lt-fs-lg);
  font-weight: 800;
  line-height: 1.41;
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--lt-navy);
  margin: 0;
}
.lt-block .lt-label,
.lt-section .lt-label {
  font-size: var(--lt-fs-xl);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-navy);
  margin: 0;
}

@media (max-width: 48rem) {
  .lt-block .lt-offer__headline,
  .lt-section .lt-offer__headline { font-size: 2.25rem; line-height: 1.05; }
}

/* --- Text links: Avada's own `a` rules were winning ---------------------- */
.lt-block a.lt-link,
.lt-section a.lt-link {
  color: var(--lt-blue);
}
.lt-block a.lt-link:hover,
.lt-block a.lt-link:focus-visible,
.lt-section a.lt-link:hover,
.lt-section a.lt-link:focus-visible {
  color: var(--lt-navy);
}

/* Avada sets `body a:after { color: var(--link_color) }`, so the arrow
   pseudo-element never inherits the link/button color. Force it back. */
.lt-block a.lt-link::after,
.lt-section a.lt-link::after,
.lt-block a.lt-link::before,
.lt-section a.lt-link::before {
  color: inherit;
}
.lt-block a.lt-btn::after,
.lt-section a.lt-btn::after,
.lt-block a.lt-btn::before,
.lt-section a.lt-btn::before {
  color: inherit;
}

/* Facility heading — Avada's `.post h2, h2` rules out-specify one class */
.lt-block .lt-facility__heading,
.lt-section .lt-facility__heading {
  font-size: 1.6875rem;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-white);
  margin: 0;
}
@media (max-width: 48rem) {
  .lt-block .lt-facility__heading,
  .lt-section .lt-facility__heading { font-size: 1.75rem; line-height: 1.21; }
}

/* --- Lightbox ----------------------------------------------------------- */
.lt-lightbox {
  width: min(92vw, 70rem);
  max-width: none;
  max-height: 92vh;
  padding: 0;
  border: 0;
  border-radius: var(--lt-radius);
  background: transparent;
  overflow: visible;
}
.lt-lightbox::backdrop { background: rgba(6, 63, 99, 0.88); }
.lt-lightbox__figure { margin: 0; }
.lt-lightbox__figure img {
  display: block;
  width: 100%;
  max-height: 80vh;
  object-fit: contain;
  aspect-ratio: auto;
  border-radius: var(--lt-radius);
  background: var(--lt-navy);
}
.lt-lightbox__caption {
  margin-top: var(--lt-sp-3);
  font-family: var(--lt-font);
  font-size: var(--lt-fs-md);
  font-weight: 500;
  color: var(--lt-white);
  text-align: center;
}
.lt-lightbox__btn {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  padding: 0;
  border: 1.5px solid rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  background: rgba(6, 63, 99, 0.75);
  color: var(--lt-white);
  cursor: pointer;
  transition: background-color var(--lt-ease);
}
.lt-lightbox__btn:hover { background: var(--lt-blue); }
.lt-lightbox__btn svg { width: 1rem; height: 1rem; }
.lt-lightbox__close { top: -1.5rem; right: -1.5rem; }
.lt-lightbox__prev { left: -1.5rem; top: 50%; transform: translateY(-50%); }
.lt-lightbox__next { right: -1.5rem; top: 50%; transform: translateY(-50%); }

@media (max-width: 48rem) {
  .lt-lightbox { width: 94vw; }
  .lt-lightbox__close { top: -3.25rem; right: 0; }
  .lt-lightbox__prev { left: 0.5rem; }
  .lt-lightbox__next { right: 0.5rem; }
}

/* Benefit headings — Avada's own h2/h3 rules out-specify one class */
.lt-block .lt-benefits__heading,
.lt-section .lt-benefits__heading {
  font-size: 1.8125rem;
  font-weight: 800;
  line-height: 1.17;
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-navy);
  margin: 0;
}
.lt-block .lt-benefit__title,
.lt-section .lt-benefit__title {
  font-size: 1.4375rem;
  font-weight: 800;
  line-height: 1.26;
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-navy);
  margin: 0;
}
@media (max-width: 48rem) {
  .lt-block .lt-benefits__heading,
  .lt-section .lt-benefits__heading { font-size: 1.75rem; line-height: 1.21; }
  .lt-block .lt-benefit__title,
  .lt-section .lt-benefit__title { font-size: 1.25rem; line-height: 1.3; }
}

/* Process + CTA headings — Avada specificity */
.lt-block .lt-process__heading,
.lt-section .lt-process__heading {
  font-size: 2.5rem; font-weight: 800; line-height: 1.1;
  letter-spacing: 0; text-transform: none; color: var(--lt-white); margin: 0;
}
.lt-block .lt-step__title,
.lt-section .lt-step__title {
  font-size: var(--lt-fs-xl); font-weight: 800; line-height: 1.33;
  letter-spacing: 0; text-transform: none; color: var(--lt-navy); margin: 0;
}
.lt-block .lt-cta__heading,
.lt-section .lt-cta__heading {
  font-size: 2.125rem; font-weight: 800; line-height: 1.06;
  letter-spacing: 0; text-transform: none; color: var(--lt-slate); margin: 0;
}
@media (max-width: 48rem) {
  .lt-block .lt-process__heading,
  .lt-section .lt-process__heading { font-size: 1.75rem; line-height: 1.21; }
  .lt-block .lt-cta__heading,
  .lt-section .lt-cta__heading { font-size: 1.75rem; line-height: 1.21; }
}

/* Contact heading — Avada specificity */
.lt-block .lt-contact__heading,
.lt-section .lt-contact__heading {
  font-size: 2rem; font-weight: 800; line-height: 1.06;
  letter-spacing: 0; text-transform: none; color: var(--lt-slate); margin: 0;
}
@media (max-width: 48rem) {
  .lt-block .lt-contact__heading,
  .lt-section .lt-contact__heading { font-size: 1.75rem; line-height: 1.21; }
}


/* ==========================================================================
   9. GRAVITY FORMS — add `lt-form` as the form's CSS Class Name
   ========================================================================== */

.lt-form {
  font-family: var(--lt-font);
  color: var(--lt-slate);
}

/* --- Section headings (Gravity Section Break fields) --------------------- */
.lt-form .gsection {
  border-bottom: 1px solid var(--lt-border);
  margin: var(--lt-sp-6) 0 var(--lt-sp-4);
  padding-bottom: var(--lt-sp-3);
}
.lt-form .gsection_title {
  font-size: var(--lt-fs-h4);
  font-weight: 800;
  line-height: var(--lt-lh-snug);
  color: var(--lt-navy);
  margin: 0;
}
.lt-form .gsection_description {
  font-size: var(--lt-fs-md);
  font-weight: 500;
  color: var(--lt-text-muted);
  margin: var(--lt-sp-1) 0 0;
}

/* --- Labels and descriptions -------------------------------------------- */
.lt-form .gfield_label {
  font-size: var(--lt-fs-base);
  font-weight: 800;
  color: var(--lt-slate);
}
.lt-form .gfield_required { color: var(--lt-blue); }
.lt-form .gfield_description {
  font-size: var(--lt-fs-md);
  font-weight: 500;
  color: var(--lt-text-muted);
}

/* --- Inputs -------------------------------------------------------------- */
.lt-form input[type="text"],
.lt-form input[type="email"],
.lt-form input[type="tel"],
.lt-form input[type="number"],
.lt-form input[type="date"],
.lt-form select,
.lt-form textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  font-family: var(--lt-font);
  font-size: var(--lt-fs-base);
  font-weight: 500;
  line-height: 1.4;
  color: var(--lt-slate);
  background: var(--lt-white);
  border: 1px solid var(--lt-border);
  border-radius: var(--lt-radius-sm);
  transition: border-color var(--lt-ease), box-shadow var(--lt-ease);
}
.lt-form input::placeholder,
.lt-form textarea::placeholder { color: var(--lt-text-muted); opacity: 0.7; }

.lt-form input:focus,
.lt-form select:focus,
.lt-form textarea:focus {
  outline: none;
  border-color: var(--lt-blue);
  box-shadow: 0 0 0 3px rgba(22, 132, 181, 0.18);
}
.lt-form textarea { min-height: 9rem; resize: vertical; }

/* --- Choice sub-labels (HTML in the choice Label, value stays clean) ----- */
.lt-form .lt-choice__sub {
  display: block;
  font-size: var(--lt-fs-md);
  font-weight: 500;
  line-height: 1.4;
  color: var(--lt-text-muted);
  margin-top: 0.125rem;
}

/* --- Radio choices as selectable cards ---------------------------------- */
.lt-form .gfield_radio { display: grid; gap: var(--lt-sp-3); }
@media (min-width: 48rem) {
  .lt-form .gfield_radio { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.lt-form .gfield_radio .gchoice {
  position: relative;
  border: 1px solid var(--lt-border);
  border-radius: var(--lt-radius);
  background: var(--lt-white);
  transition: border-color var(--lt-ease), background-color var(--lt-ease);
}
.lt-form .gfield_radio .gchoice:hover { border-color: var(--lt-blue); }
.lt-form .gfield_radio .gchoice label {
  display: block;
  padding: var(--lt-sp-4) var(--lt-sp-4) var(--lt-sp-4) 3rem;
  font-weight: 800;
  color: var(--lt-navy);
  cursor: pointer;
}
.lt-form .gfield_radio .gchoice input[type="radio"] {
  position: absolute;
  top: 1.25rem;
  left: var(--lt-sp-4);
  margin: 0;
  accent-color: var(--lt-blue);
}
.lt-form .gfield_radio .gchoice:has(input:checked) {
  border-color: var(--lt-blue);
  background: var(--lt-ice);
}
.lt-form .gfield_radio .gchoice:has(input:focus-visible) {
  outline: 3px solid var(--lt-yellow);
  outline-offset: 2px;
}

/* --- File upload --------------------------------------------------------- */
.lt-form .gform_fileupload_rules { font-size: var(--lt-fs-md); color: var(--lt-text-muted); }
.lt-form .gform_drop_area {
  border: 1px dashed var(--lt-border);
  border-radius: var(--lt-radius);
  background: var(--lt-white);
  color: var(--lt-text-muted);
}

/* --- Validation ---------------------------------------------------------- */
.lt-form .gfield_error input,
.lt-form .gfield_error select,
.lt-form .gfield_error textarea { border-color: #c0392b; }
.lt-form .gfield_validation_message,
.lt-form .validation_message {
  font-size: var(--lt-fs-md);
  font-weight: 500;
  color: #c0392b;
  background: none;
  border: 0;
  padding: var(--lt-sp-1) 0 0;
}
.lt-form .gform_validation_errors {
  border-radius: var(--lt-radius);
  border: 1px solid #c0392b;
  background: #fdf3f2;
}

/* --- Notice box (HTML field above the submit button) --------------------- */
.lt-form .lt-form__notice {
  border-radius: var(--lt-radius-sm);
  background: rgba(255, 199, 53, 0.22);
  border-left: 4px solid var(--lt-yellow);
  padding: var(--lt-sp-4);
  font-size: var(--lt-fs-md);
  font-weight: 500;
  line-height: 1.5;
  color: var(--lt-slate);
}

/* --- Submit button ------------------------------------------------------- */
.lt-form .gform_footer { display: flex; justify-content: flex-end; }
.lt-form input[type="submit"],
.lt-form .gform_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--lt-sp-2);
  padding: 0.8125rem 1.5rem;
  min-width: 14rem;
  font-family: var(--lt-font);
  font-size: var(--lt-fs-btn);
  font-weight: 800;
  line-height: 1.2;
  color: var(--lt-navy);
  background: var(--lt-yellow);
  border: 1px solid var(--lt-yellow);
  border-radius: 0;
  cursor: pointer;
  transition: background-color var(--lt-ease), border-color var(--lt-ease);
}
.lt-form input[type="submit"]:hover,
.lt-form .gform_button:hover {
  background: #f0b720;
  border-color: #f0b720;
}

/* --- Confirmation -------------------------------------------------------- */
.gform_confirmation_message {
  font-family: var(--lt-font);
  font-size: var(--lt-fs-xl);
  font-weight: 500;
  line-height: 1.5;
  color: var(--lt-slate);
  padding: var(--lt-sp-5);
  border-radius: var(--lt-radius);
  background: var(--lt-cream);
}

@media (max-width: 48rem) {
  .lt-form .gform_footer { justify-content: stretch; }
  .lt-form input[type="submit"],
  .lt-form .gform_button { width: 100%; }
}


/* --------------------------------------------------------------------------
   9b. GRAVITY FORMS — retune the Orbital theme at its own variables
   Gravity 2.9+ ships the "Orbital" theme driven by CSS custom properties.
   Setting them here is cleaner than fighting its selectors one by one.
   -------------------------------------------------------------------------- */
.gform_wrapper.lt-form_wrapper.gform-theme,
.gform_wrapper.lt-form_wrapper.gform-theme--framework {
  --gf-color-primary: var(--lt-blue);
  --gf-color-primary-rgb: 22, 132, 181;
  --gf-color-primary-contrast: #ffffff;
  --gf-color-primary-darker: var(--lt-navy);
  --gf-color-primary-lighter: #3ba3d1;

  --gf-color-secondary: var(--lt-white);
  --gf-color-secondary-contrast: var(--lt-slate);

  --gf-color-in-ctrl: var(--lt-white);
  --gf-color-in-ctrl-contrast: var(--lt-slate);
  --gf-color-in-ctrl-primary: var(--lt-blue);
  --gf-color-in-ctrl-primary-contrast: #ffffff;

  --gf-ctrl-border-color: var(--lt-border);
  --gf-ctrl-label-color-primary: var(--lt-slate);
  --gf-ctrl-label-color-secondary: var(--lt-text-muted);

  --gf-radius: var(--lt-radius-sm);
  --gf-font-size-secondary: var(--lt-fs-md);
  --gf-font-size-tertiary: 0.8125rem;

  /* submit button */
  --gf-ctrl-btn-bg-color-primary: var(--lt-yellow);
  --gf-ctrl-btn-bg-color-hover-primary: #f0b720;
  --gf-ctrl-btn-color-primary: var(--lt-navy);
  --gf-ctrl-btn-border-color-primary: var(--lt-yellow);
  --gf-ctrl-btn-font-size: var(--lt-fs-btn);
}

/* Form page wrapper — put `lt-form-page` on the Avada Container,
   NOT `lt-full` (that one is for full-bleed bands and kills the padding). */
.lt-form-page {
  background: var(--lt-cream);
  padding-block: var(--lt-section-y);
  padding-inline: max(var(--lt-pad), (100% - 56rem) / 2);
}

/* Gravity's own form title/description — Avada styles these as page headings */
.lt-block .gform_title,
.lt-form_wrapper .gform_title {
  font-family: var(--lt-font);
  font-size: var(--lt-fs-h3);
  font-weight: 800;
  line-height: var(--lt-lh-tight);
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-navy);
  margin: 0 0 var(--lt-sp-2);
}
.lt-form_wrapper .gform_description {
  display: block;
  font-size: var(--lt-fs-base);
  font-weight: 500;
  line-height: 1.5;
  color: var(--lt-text-muted);
}
.lt-form .gsection_title {
  font-family: var(--lt-font);
  font-size: var(--lt-fs-h4);
  font-weight: 800;
  line-height: var(--lt-lh-snug);
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-navy);
  margin: 0;
}

/* Submit button — Gravity 2.9 renders a <button>, not an <input> */
.lt-form .gform-footer button.gform_button,
.lt-form .gform_footer button.gform_button,
.lt-form button.gform_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--lt-sp-2);
  min-width: 14rem;
  padding: 0.8125rem 1.5rem;
  font-family: var(--lt-font);
  font-size: var(--lt-fs-btn);
  font-weight: 800;
  line-height: 1.2;
  color: var(--lt-navy);
  background: var(--lt-yellow);
  border: 1px solid var(--lt-yellow);
  border-radius: 0;
  cursor: pointer;
  transition: background-color var(--lt-ease), border-color var(--lt-ease);
}
.lt-form .gform-footer button.gform_button:hover,
.lt-form button.gform_button:hover {
  background: #f0b720;
  border-color: #f0b720;
  color: var(--lt-navy);
}
.lt-form .gform-footer,
.lt-form .gform_footer { justify-content: flex-end; }

/* Gravity's 2-column choice layout conflicts with our card grid */
.lt-form .gfield_radio.gf_list_2col,
.lt-form .gf_list_2col .gfield_radio {
  display: grid;
  gap: var(--lt-sp-3);
}
@media (min-width: 48rem) {
  .lt-form .gfield_radio.gf_list_2col,
  .lt-form .gf_list_2col .gfield_radio {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 48rem) {
  .lt-form .gform-footer,
  .lt-form .gform_footer { justify-content: stretch; }
  .lt-form button.gform_button { width: 100%; }
}

/* Avada styles form controls from its own variables, and they were resolving
   to the navy palette colour. Retune them on the form scope. */
.lt-form,
.lt-form_wrapper {
  --form_bg_color: var(--lt-white);
  --form_text_color: var(--lt-slate);
  --form_border_color: var(--lt-border);
  --form_focus_bg_color: var(--lt-white);
  --form_focus_text_color: var(--lt-slate);
  --form_focus_border_color: var(--lt-blue);
  --form_placeholder_color: var(--lt-text-muted);
  --form_border_radius: var(--lt-radius-sm);
}

/* Belt and braces for the controls themselves */
body .lt-form input[type="text"],
body .lt-form input[type="email"],
body .lt-form input[type="tel"],
body .lt-form input[type="number"],
body .lt-form input[type="date"],
body .lt-form select,
body .lt-form textarea {
  background-color: var(--lt-white);
  color: var(--lt-slate);
  border: 1px solid var(--lt-border);
}
body .lt-form input:focus,
body .lt-form select:focus,
body .lt-form textarea:focus {
  background-color: var(--lt-white);
  color: var(--lt-slate);
  border-color: var(--lt-blue);
}

/* Date field: three small number inputs shouldn't stretch */
.lt-form .ginput_container_date input { max-width: 7rem; }

/* Hide Gravity's anti-spam honeypot and anything conditional logic hid.
   The honeypot renders as a real field, which is the stray box. */
.lt-form .gform_validation_container,
.lt-form .gfield_visibility_hidden,
.lt-form .gform_hidden,
.lt-form li.gform_validation_container {
  display: none !important;
  position: absolute !important;
  left: -9999px !important;
}

/* The radio field uses a <legend>, which Gravity styles small.
   Match it to the section headings. */
.lt-form legend.gfield_label,
.lt-form fieldset > legend.gfield_label {
  display: block;
  width: 100%;
  font-family: var(--lt-font);
  font-size: var(--lt-fs-h4);
  font-weight: 800;
  line-height: var(--lt-lh-snug);
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-navy);
  margin: 0 0 var(--lt-sp-4);
  padding-bottom: var(--lt-sp-3);
  border-bottom: 1px solid var(--lt-border);
}
/* ...but not the Name field's legend, which is a normal field label */
.lt-form .gfield--type-name legend.gfield_label,
.lt-form .gfield--type-date legend.gfield_label {
  font-size: var(--lt-fs-base);
  color: var(--lt-slate);
  margin-bottom: var(--lt-sp-1);
  padding-bottom: 0;
  border-bottom: 0;
}

/* Avada injects div.select-arrow over selects. Inside Gravity's markup it
   escapes its parent and renders as a stray box, so hide it and draw our own. */
.lt-form .select-arrow,
.lt-form .gravity-select-parent .select-arrow,
.lt-form_wrapper .select-arrow {
  display: none !important;
}
.lt-form .gravity-select-parent { position: relative; }

body .lt-form select,
body .lt-form .gfield_select {
  -webkit-appearance: none;
  appearance: none;
  padding-right: 2.75rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%2352617a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 0.75rem 0.5rem;
}
.lt-form select::-ms-expand { display: none; }

/* --------------------------------------------------------------------------
   9c. GRAVITY FORMS — consistent type scale, spacing and control sizing
   -------------------------------------------------------------------------- */

/* Field labels */
body .lt-form .gfield_label,
body .lt-form .gform-field-label {
  display: block;
  font-family: var(--lt-font);
  font-size: var(--lt-fs-base);      /* 16 */
  font-weight: 700;
  line-height: 1.4;
  color: var(--lt-slate);
  margin: 0 0 var(--lt-sp-2);
}
/* Sub-labels (First / Last / MM / DD / YYYY) */
body .lt-form .gform-field-label--type-sub {
  font-size: var(--lt-fs-md);        /* 15 */
  font-weight: 500;
  line-height: 1.4;
  color: var(--lt-text-muted);
  margin: 0 0 var(--lt-sp-2);
}
/* Required marker */
body .lt-form .gfield_required,
body .lt-form .gfield_required_text {
  font-size: var(--lt-fs-md);
  font-weight: 600;
  color: var(--lt-blue);
}
/* Descriptions and helper text */
body .lt-form .gfield_description,
body .lt-form .gsection_description,
body .lt-form .gform_fileupload_rules,
body .lt-form .gform_drop_instructions {
  font-size: var(--lt-fs-md);
  font-weight: 500;
  line-height: 1.5;
  color: var(--lt-text-muted);
}

/* Controls: full width, consistent height and line-height */
body .lt-form input[type="text"],
body .lt-form input[type="email"],
body .lt-form input[type="tel"],
body .lt-form input[type="number"],
body .lt-form input[type="date"],
body .lt-form select,
body .lt-form textarea,
body .lt-form .medium,
body .lt-form .large,
body .lt-form .small {
  width: 100%;
  max-width: 100%;
  font-size: var(--lt-fs-base);
  font-weight: 500;
  line-height: 1.4;
}
body .lt-form input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]),
body .lt-form select {
  height: 3rem;
  padding: 0.625rem 1rem;
}
body .lt-form select { padding-right: 2.75rem; }
body .lt-form textarea { padding: 0.75rem 1rem; line-height: 1.5; }

/* Date field: three inputs sized to content, not stretched */
body .lt-form .ginput_container_date { display: flex; gap: var(--lt-sp-2); }
body .lt-form .gfield_date_month input,
body .lt-form .gfield_date_day input { width: 5rem; }
body .lt-form .gfield_date_year input { width: 6.5rem; }

/* Radio card text weights */
body .lt-form .gfield_radio .gchoice label {
  font-size: var(--lt-fs-base);
  font-weight: 700;
}
body .lt-form .lt-choice__sub {
  font-size: var(--lt-fs-md);
  font-weight: 500;
}

/* File upload button */
body .lt-form .gform_button_select_files {
  font-family: var(--lt-font);
  font-size: var(--lt-fs-btn);
  font-weight: 700;
  color: var(--lt-white);
  background: var(--lt-blue);
  border: 1px solid var(--lt-blue);
  border-radius: var(--lt-radius-sm);
  padding: 0.625rem 1.25rem;
}
body .lt-form .gform_button_select_files:hover {
  background: var(--lt-navy);
  border-color: var(--lt-navy);
}

/* Submit: bigger and left aligned */
body .lt-form .gform-footer,
body .lt-form .gform_footer {
  justify-content: flex-start;
  margin-top: var(--lt-sp-6);
}
body .lt-form button.gform_button {
  min-width: 16rem;
  padding: 1.125rem 2rem;
  font-size: var(--lt-fs-base);
  font-weight: 800;
  letter-spacing: var(--lt-track-caps);
  text-transform: uppercase;
}

@media (max-width: 48rem) {
  body .lt-form button.gform_button { width: 100%; min-width: 0; }
  body .lt-form .ginput_container_date { flex-wrap: wrap; }
}

/* --------------------------------------------------------------------------
   9d. GRAVITY FORMS — ID-level overrides
   Avada styles Gravity with `#wrapper`-prefixed selectors, which outrank
   plain class rules. These match that weight so our values win.
   -------------------------------------------------------------------------- */

/* Controls fill their column — beats Avada's #wrapper .medium / .large */
#wrapper .lt-form input[type="text"],
#wrapper .lt-form input[type="email"],
#wrapper .lt-form input[type="tel"],
#wrapper .lt-form input[type="number"],
#wrapper .lt-form select,
#wrapper .lt-form textarea,
#wrapper .lt-form input.medium,
#wrapper .lt-form input.large,
#wrapper .lt-form select.medium,
#wrapper .lt-form select.large,
#wrapper .lt-form textarea.medium,
#wrapper .lt-form textarea.large {
  width: 100%;
  max-width: 100%;
  font-family: var(--lt-font);
  font-size: var(--lt-fs-base);
  font-weight: 500;
  color: var(--lt-slate);
  background-color: var(--lt-white);
  border: 1px solid var(--lt-border);
  border-radius: var(--lt-radius-sm);
}

/* Height and vertical centring, including selects */
#wrapper .lt-form input[type="text"],
#wrapper .lt-form input[type="email"],
#wrapper .lt-form input[type="tel"],
#wrapper .lt-form input[type="number"],
#wrapper .lt-form select {
  height: 3.25rem;
  padding: 0 1rem;
  line-height: 3.25rem;
}
#wrapper .lt-form select { padding-right: 2.75rem; line-height: normal; }
#wrapper .lt-form textarea { min-height: 9rem; padding: 0.875rem 1rem; line-height: 1.6; }

/* Date inputs stay narrow */
#wrapper .lt-form .gfield_date_month input,
#wrapper .lt-form .gfield_date_day input { width: 5.5rem; }
#wrapper .lt-form .gfield_date_year input { width: 7rem; }

/* Spacing: label → sub-label → input */
#wrapper .lt-form .gfield_label,
#wrapper .lt-form legend.gfield_label {
  margin: 0 0 var(--lt-sp-3);
  font-size: var(--lt-fs-base);
  font-weight: 700;
  line-height: 2.4;
  color: var(--lt-slate);
}
#wrapper .lt-form .gfield--type-name legend.gfield_label,
#wrapper .lt-form .gfield--type-date legend.gfield_label {
  margin-bottom: var(--lt-sp-4);
  padding-bottom: 0;
  border-bottom: 0;
  color: var(--lt-slate);
  font-size: var(--lt-fs-base);
}
#wrapper .lt-form .gform-field-label--type-sub {
  display: block;
  margin: 0 0 var(--lt-sp-2);
  font-size: var(--lt-fs-md);
  font-weight: 500;
  color: var(--lt-text-muted);
}

/* Gap between fields */
#wrapper .lt-form .gform_fields { row-gap: var(--lt-sp-5); }

/* Submit button */
#wrapper .lt-form button.gform_button,
#wrapper .lt-form .gform-footer button.gform_button {
  min-width: 16rem;
  height: auto;
  padding: 1.125rem 2rem;
  font-family: var(--lt-font);
  font-size: var(--lt-fs-base);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: var(--lt-track-caps);
  text-transform: uppercase;
  color: var(--lt-navy);
  background: var(--lt-yellow);
  border: 1px solid var(--lt-yellow);
  border-radius: 0;
}
#wrapper .lt-form button.gform_button:hover {
  background: #f0b720;
  border-color: #f0b720;
}

@media (max-width: 48rem) {
  #wrapper .lt-form button.gform_button { width: 100%; min-width: 0; }
}

/* --------------------------------------------------------------------------
   9e. GRAVITY FORMS — last-resort overrides, scoped to .lt-form only
   Gravity's framework theme sets control sizing from its own variables at a
   weight we can't reach by selector alone. Kept deliberately narrow.
   -------------------------------------------------------------------------- */

/* Selects: same height as text inputs, text vertically centred */
#wrapper .lt-form select,
#wrapper .lt-form select.medium,
#wrapper .lt-form select.large,
#wrapper .lt-form .gfield_select {
  height: 3.25rem !important;
  min-height: 3.25rem !important;
  padding: 0 2.75rem 0 1rem !important;
  line-height: 3.25rem !important;
  vertical-align: middle;
}

/* Text inputs: match */
#wrapper .lt-form input[type="text"],
#wrapper .lt-form input[type="email"],
#wrapper .lt-form input[type="tel"] {
  height: 3.25rem !important;
  min-height: 3.25rem !important;
  padding: 0 1rem !important;
  line-height: 3.25rem !important;
}

/* Date: three inputs sitting together, not spread across a grid */
#wrapper .lt-form .ginput_container_date {
  display: flex !important;
  flex-wrap: nowrap;
  gap: var(--lt-sp-2) !important;
  align-items: flex-start;
}
#wrapper .lt-form .ginput_container_date > div {
  flex: 0 0 auto !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  max-width: none;
}
#wrapper .lt-form .gfield_date_month input,
#wrapper .lt-form .gfield_date_day input {
  width: 100% !important;
  padding-right: 0.5rem !important;
}
#wrapper .lt-form .gfield_date_year input {
  width: 6.5rem !important;
  padding-right: 0.5rem !important;
}

/* --- Page intro: real H1 + an H2 that reads as body copy ----------------- */
.lt-page-head {
  display: flex;
  flex-direction: column;
  gap: var(--lt-sp-4);
  padding-block: var(--lt-section-y) 0;
  /* no padding-inline: this class sits on the Code Block's .lt-block, inside
     the column, so the Container already provides the side padding */
  background: var(--lt-cream);
  /* separator to match the form's section breaks */
  padding-bottom: var(--lt-sp-4);
  border-bottom: 1px solid var(--lt-border);
}

/* A field whose label should read as a section heading (e.g. the
   "How can we help?" radio). Add `lt-field-heading` in the field's
   Appearance -> Custom CSS Class. */
#wrapper .lt-form .lt-field-heading legend.gfield_label,
#wrapper .lt-form .lt-field-heading .gfield_label {
  display: block;
  width: 100%;
  font-size: var(--lt-fs-h4);
  font-weight: 800;
  line-height: var(--lt-lh-snug);
  color: var(--lt-navy);
  margin: 0 0 var(--lt-sp-4);
  padding-bottom: var(--lt-sp-3);
  border-bottom: 1px solid var(--lt-border);
}
/* Gravity 2.9 wraps the label text in a span that Avada styles separately */
#wrapper .lt-form .lt-field-heading legend.gfield_label .gform-field-label__text,
#wrapper .lt-form .lt-field-heading .gfield_label .gform-field-label__text, #field_1_14 > legend > span.gform-field-label__text {
  font-family: var(--lt-font);
  font-size: var(--lt-fs-h4);
  font-weight: 800;
  line-height: var(--lt-lh-snug);
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-navy);
  margin: 0;
}
#field_1_14 > legend {
    border-bottom: none;
    padding-top: 1rem !important;
}
/* An <h2> styled as a paragraph: keeps the heading order valid
   (h1 -> h2 -> the form's h3 sections) without looking like a heading. */
.lt-block .lt-text-h2,
.lt-section .lt-text-h2 {
  font-family: var(--lt-font);
  font-size: var(--lt-fs-xl);        /* 18 */
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-text-muted);
  margin: 0;
  max-width: 48rem;
}
@media (max-width: 48rem) {
  .lt-block .lt-text-h2,
  .lt-section .lt-text-h2 { font-size: var(--lt-fs-base); }
}

/* --- Gravity Forms confirmation message (Contact) -------------------------
   GF wraps the confirmation in its own theme scope, so plain .lt-form-confirm
   rules lose to Avada/GF; #wrapper prefix wins without !important. The <br>s
   GF auto-inserts are hidden so spacing comes from margins only. */
#wrapper .lt-form-confirm {
  max-width: 48rem;
  padding-block: var(--lt-sp-6) var(--lt-sp-7);
}
#wrapper .lt-form-confirm > br { display: none; }
#wrapper .lt-form-confirm h3 {
  font-family: var(--lt-font);
  font-size: var(--lt-fs-h3);
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: 0;
  text-transform: none;
  color: var(--lt-navy);
  margin: 0 0 var(--lt-sp-4);
}
#wrapper .lt-form-confirm p {
  font-size: var(--lt-fs-xl);        /* 18 */
  font-weight: 500;
  line-height: 1.6;
  color: var(--lt-text-muted);
  margin: 0;
}
#wrapper .lt-form-confirm a,
#wrapper .lt-form-confirm a:visited {
  color: var(--lt-blue);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
#wrapper .lt-form-confirm a:hover,
#wrapper .lt-form-confirm a:focus-visible {
  color: var(--lt-navy);
  text-decoration-thickness: 2px;
}
@media (max-width: 48rem) {
  #wrapper .lt-form-confirm p { font-size: var(--lt-fs-base); }
}
