/* ==========================================================================
   Levimax homepage — standalone stylesheet
   Everything is scoped under .lx so it cannot collide with a WordPress theme.
   Sizing is fluid end to end: no fixed photo heights, no desktop-only values.
   Order: tokens → reset → layout → components → sections → edges
   ========================================================================== */

.lx{
  /* --- brand ------------------------------------------------------------ */
  --blue:#0073B4;
  --blue-deep:#004675;
  --blue-bright:#0086D1;
  --ink:#1E2A34;
  --body:#4F5B66;
  --muted:#6B7A88;
  --placeholder:#93A1AE;
  --line:#E3EAF0;
  --input:#D5DEE6;
  --dashed:#C9D6E0;
  --tint:#F4F8FB;
  --blue-tint:#EAF4FA;
  --on-dark:#B7C6D3;
  --warn-text:#8A5A00;
  --warn-bg:#FFF3D6;
  --warn-border:#F1D9A0;
  --error:#D14343;

  --font-head:'Montserrat',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-body:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;

  /* --- fluid scale -------------------------------------------------------
     Every size below interpolates with the viewport, so the page holds up
     from a 320px phone to a 3440px ultrawide without breakpoint cliffs.
     The clamp() maxima are reached around 2560px and then hold. */
  --pad:clamp(20px, 1.2rem + 1.4vw, 48px);
  --max:clamp(1120px, 76vw, 1680px);

  --h1:clamp(2.125rem, 1.35rem + 3.1vw, 4.25rem);      /* 34px → 68px */
  --h2:clamp(1.75rem, 1.32rem + 1.7vw, 3rem);          /* 28px → 48px */
  --h2-cta:clamp(1.625rem, 1.28rem + 1.4vw, 2.75rem);
  --h3:clamp(1.0625rem, 1rem + 0.32vw, 1.375rem);      /* 17px → 22px */
  --lead:clamp(1.0625rem, 1rem + 0.5vw, 1.5rem);       /* 17px → 24px */
  --text:clamp(1rem, 0.96rem + 0.34vw, 1.3125rem);
  --body-size:clamp(0.9375rem, 0.91rem + 0.22vw, 1.1875rem);
  --small:clamp(0.8125rem, 0.79rem + 0.15vw, 0.9375rem);
  --eyebrow:clamp(0.6875rem, 0.67rem + 0.12vw, 0.8125rem);

  --section-y:clamp(56px, 2rem + 4.2vw, 144px);
  --gap-split:clamp(32px, 1rem + 3.2vw, 96px);
  --gap-cards:clamp(16px, 0.6rem + 0.9vw, 28px);
  --radius-card:clamp(14px, 0.7rem + 0.4vw, 20px);
  --radius-photo:clamp(16px, 0.8rem + 0.5vw, 26px);
  --nav-h:clamp(64px, 3rem + 1.4vw, 86px);
  --btn-h:clamp(48px, 2.6rem + 0.7vw, 60px);

  --shadow-card:0 20px 50px rgba(30,42,52,.10);
  --shadow-hover:0 14px 34px rgba(30,42,52,.08);

  box-sizing:border-box;
  margin:0;
  background:#fff;
  color:var(--ink);
  font-family:var(--font-body);
  font-size:var(--body-size);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:clip;                 /* nothing may ever push the page sideways */
}

.lx *,.lx *::before,.lx *::after{box-sizing:border-box}
/* :where() so these base rules never outrank a component class (a plain
   `.lx img{height:auto}` would beat `.lx-footer__logo{height:…}`). */
:where(.lx) img,:where(.lx) canvas{max-width:100%;display:block}
:where(.lx) img{height:auto}
:where(.lx) p,:where(.lx) h1,:where(.lx) h2,:where(.lx) h3,:where(.lx) figure{margin:0}
:where(.lx) ul{margin:0;padding:0;list-style:none}
:where(.lx) a{color:var(--blue);text-decoration:none;transition:color .15s ease}
:where(.lx) a:hover{color:var(--blue-deep)}
.lx h1,.lx h2,.lx h3{font-family:var(--font-head);font-weight:600;text-wrap:balance}
.lx :focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:6px}

.lx-skip{
  position:absolute;left:-9999px;top:0;z-index:100;background:#fff;color:var(--ink);
  padding:12px 18px;border-radius:0 0 10px 0;font-weight:700;box-shadow:var(--shadow-card);
}
.lx-skip:focus{left:0}
.lx-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}

@media (prefers-reduced-motion:reduce){
  .lx *,.lx *::before,.lx *::after{animation-duration:.001ms !important;transition-duration:.001ms !important}
}

/* --- layout --------------------------------------------------------------- */
.lx-container{width:min(100% - (var(--pad) * 2), var(--max));margin-inline:auto}
.lx-section{padding-block:var(--section-y)}
.lx-section--tint{background:var(--tint)}
.lx-section--flush{padding-top:0}

/* Two-column sections. The minmax floor is clamped so a 320px phone gets one
   column and a 3440px screen still gets two balanced ones. */
/* Column counts are explicit, not auto-fit. auto-fit keeps adding tracks as
   the container grows, which on a 34" screen turned the two-column sections
   into three and the six service cards into a five-across row. */
.lx-split{display:grid;gap:var(--gap-split);align-items:center;grid-template-columns:1fr}
.lx-grid-3{display:grid;gap:var(--gap-cards);grid-template-columns:1fr}
.lx-grid-4{display:grid;gap:var(--gap-cards);grid-template-columns:1fr}

@media (min-width:620px){
  .lx-grid-3,.lx-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:900px){
  .lx-split{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lx-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1100px){
  .lx-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
}

.lx-head{text-align:center;max-width:46ch;margin-inline:auto;margin-bottom:clamp(32px,2vw + 1rem,64px)}
.lx-head p{font-size:var(--text);color:var(--body);text-wrap:pretty}

.lx-eyebrow{font-size:var(--eyebrow);font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--blue)}
.lx-h1{font-size:var(--h1);line-height:1.08;letter-spacing:-.02em;margin:.35em 0 .4em}
.lx-h1 span{color:var(--blue)}
.lx-h2{font-size:var(--h2);line-height:1.15;letter-spacing:-.015em;margin:.35em 0 .4em}
.lx-h2--tight{margin-bottom:0}
.lx-lead{font-size:var(--lead);line-height:1.55;color:var(--body);max-width:34ch;text-wrap:pretty}
.lx-text{font-size:var(--text);line-height:1.7;color:var(--body);max-width:56ch;text-wrap:pretty}

/* --- buttons -------------------------------------------------------------- */
.lx-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  min-height:var(--btn-h);padding:.75em 1.6em;border:0;border-radius:10px;
  font-family:var(--font-body);font-size:var(--body-size);font-weight:700;line-height:1.2;
  text-decoration:none;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s;
}
.lx-btn svg{flex:none}
.lx-btn--sm{min-height:clamp(42px,2.3rem + .5vw,52px);padding:.6em 1.2em;font-size:var(--small)}
.lx-btn--primary{background:var(--blue);color:#fff}
.lx-btn--primary:hover{background:var(--blue-deep);color:#fff}
.lx-btn--secondary{background:#fff;color:var(--ink);border:1.5px solid var(--input)}
.lx-btn--secondary:hover{border-color:var(--blue);color:var(--blue)}
.lx-btn--block{width:100%}
.lx-btn--dark{background:var(--blue);color:#fff;justify-content:flex-start}
.lx-btn--dark:hover{background:var(--blue-bright);color:#fff}
.lx-btn--outline{background:transparent;color:#fff;justify-content:flex-start;
  border:1.5px solid rgba(255,255,255,.35)}
.lx-btn--outline:hover{border-color:#fff;color:#fff}
.lx-btn[disabled]{opacity:.65;cursor:default}

/* --- photos ---------------------------------------------------------------
   aspect-ratio, never a pixel height: the frame follows the column width at
   every viewport, so an image can never overflow its box. */
.lx-photo{
  width:100%;border-radius:var(--radius-photo);overflow:hidden;background:var(--tint);
  aspect-ratio:var(--ratio,3/2);
}
.lx-photo img{width:100%;height:100%;object-fit:cover;object-position:var(--focus,center)}
.lx-photo--hero{--ratio:2.2/1;--focus:center 30%}
.lx-photo--why{--ratio:5/4}
.lx-photo--areas{--ratio:4/3}
.lx-photo--rental{--ratio:5/4}
@media (max-width:700px){
  .lx-photo--hero{--ratio:16/10}
  .lx-photo--why,.lx-photo--areas,.lx-photo--rental{--ratio:4/3}
}

/* --- cards ---------------------------------------------------------------- */
.lx-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-card);
  padding:clamp(22px,1rem + 1vw,36px)}
.lx-card--hover{transition:box-shadow .2s,transform .2s}
.lx-card--hover:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}
.lx-icon-tile{width:clamp(44px,2.4rem + .6vw,56px);aspect-ratio:1;border-radius:12px;
  background:var(--blue-tint);color:var(--blue);display:grid;place-items:center}
.lx-pill{display:inline-block;width:fit-content;font-size:var(--eyebrow);font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--blue);background:var(--blue-tint);
  padding:.45em .8em;border-radius:999px;white-space:nowrap}
.lx-pill--muted{color:var(--muted);background:var(--tint)}
.lx-pill--plain{letter-spacing:normal;text-transform:none;color:var(--ink);background:var(--tint);
  border:1px solid var(--line)}

/* --- nav ------------------------------------------------------------------ */
.lx-nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.admin-bar .lx-nav{top:32px}
.lx-nav__inner{width:min(100% - (var(--pad) * 2), var(--max));margin-inline:auto;
  display:flex;align-items:center;justify-content:space-between;gap:clamp(16px,2vw,40px);
  min-height:var(--nav-h);padding-block:10px}
.lx-nav__logo img{height:clamp(38px,2rem + 1vw,54px);width:auto}
.lx-nav__menu{display:contents}
.lx-nav__links{display:flex;flex-wrap:wrap;gap:clamp(14px,1.6vw,32px);
  font-size:var(--small);font-weight:600}
.lx-nav__links a{color:var(--ink)}
.lx-nav__links a:hover{color:var(--blue)}
.lx-nav__actions{display:flex;align-items:center;gap:clamp(12px,1.4vw,24px)}
.lx-nav__phone{font-weight:700;font-size:var(--small);color:var(--ink);white-space:nowrap}
.lx-nav__toggle{display:none;width:46px;height:46px;border:1.5px solid var(--input);
  border-radius:10px;background:#fff;color:var(--ink);cursor:pointer;
  align-items:center;justify-content:center}
.lx-bars{position:relative;display:block;width:20px;height:2px;background:currentColor;border-radius:2px}
.lx-bars::before,.lx-bars::after{content:"";position:absolute;left:0;width:20px;height:2px;
  background:currentColor;border-radius:2px;transition:transform .18s,top .18s}
.lx-bars::before{top:-6px}
.lx-bars::after{top:6px}
[aria-expanded="true"] .lx-bars{background:transparent}
[aria-expanded="true"] .lx-bars::before{top:0;transform:rotate(45deg)}
[aria-expanded="true"] .lx-bars::after{top:0;transform:rotate(-45deg)}

@media (max-width:1000px){
  .lx-nav__toggle{display:flex}
  .lx-nav__inner{flex-wrap:wrap}
  .lx-nav__menu{display:none;order:3;width:100%;flex-direction:column;align-items:stretch;
    gap:14px;padding:6px 0 18px;border-top:1px solid var(--line)}
  .lx-nav__menu.is-open{display:flex}
  .lx-nav__links{flex-direction:column;gap:0;font-size:var(--text)}
  .lx-nav__links a{display:block;padding:12px 0}
  .lx-nav__actions{flex-direction:column;align-items:stretch;gap:12px}
  .lx-nav__phone{padding:6px 0;font-size:var(--text)}
  .lx-nav__actions .lx-btn{width:100%}
}

/* --- hero ----------------------------------------------------------------- */
.lx-hero{background:linear-gradient(180deg,#F4F8FB 0%,#FFF 100%)}
.lx-hero__grid{display:grid;gap:var(--gap-split);align-items:center;
  grid-template-columns:1fr;padding-block:clamp(40px,2rem + 2.6vw,96px)}
@media (min-width:900px){.lx-hero__grid{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr)}}
.lx-hero__btns{display:flex;flex-wrap:wrap;gap:14px;margin-top:clamp(24px,2vw,40px)}
.lx-hero__proof{display:flex;flex-wrap:wrap;gap:12px clamp(18px,2vw,34px);
  margin-top:clamp(26px,2.4vw,48px);font-size:var(--small);font-weight:600;color:var(--body)}
.lx-hero__proof li{display:flex;align-items:center;gap:8px}
.lx-hero__proof svg{flex:none;color:var(--blue)}

/* --- lead form ------------------------------------------------------------ */
.lx-form-card{width:100%;max-width:520px;justify-self:end;background:#fff;
  border:1px solid var(--line);border-radius:clamp(16px,.8rem + .5vw,22px);
  padding:clamp(22px,1rem + 1.2vw,38px);box-shadow:var(--shadow-card)}
@media (max-width:1000px){.lx-form-card{justify-self:stretch;max-width:none}}
.lx-form-card h2{font-size:clamp(1.25rem,1.1rem + .5vw,1.6rem)}
.lx-form-card__sub{margin:.5em 0 1.4em;font-size:var(--small);line-height:1.55;color:var(--muted)}
.lx-form{display:grid;gap:14px}
.lx-form__row{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:380px){.lx-form__row{grid-template-columns:1fr}}
.lx-field{display:grid;gap:6px}
.lx-field label{font-size:var(--small);font-weight:700}
.lx-field input,.lx-field select{width:100%;min-height:clamp(44px,2.4rem + .5vw,54px);
  border:1px solid var(--input);border-radius:10px;padding:0 14px;
  font-family:var(--font-body);font-size:max(16px,var(--small));color:var(--ink);
  background:#fff;transition:border-color .15s}
/* 16px minimum: anything smaller makes iOS Safari zoom on focus. */
.lx-field input::placeholder{color:var(--placeholder)}
.lx-field input:focus,.lx-field select:focus{outline:none;border-color:var(--blue)}
.lx-field--error input,.lx-field--error select{border-color:var(--error)}
.lx-field__error{font-size:var(--small);font-weight:600;color:var(--error)}
.lx-form__note{font-size:var(--small);line-height:1.5;color:var(--muted);text-align:center}
.lx-form__note a{color:var(--ink);font-weight:700;white-space:nowrap}
.lx-form__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.lx-form__alert{font-size:var(--small);line-height:1.55;padding:12px 14px;border-radius:10px;
  background:#FDECEC;border:1px solid #F3C9C9;color:#8C2A2A}
.lx-form__success{display:grid;gap:10px;justify-items:center;text-align:center;padding:24px 4px}
.lx-form__success span{width:52px;aspect-ratio:1;border-radius:50%;background:var(--blue-tint);
  color:var(--blue);display:grid;place-items:center}
.lx-form__success strong{font-family:var(--font-head);font-size:var(--h3);font-weight:600}
.lx-form__success p{font-size:var(--body-size);color:var(--body)}

/* --- stats ---------------------------------------------------------------- */
.lx-stats{display:grid;gap:var(--gap-cards);margin-top:var(--gap-cards);
  grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:430px){.lx-stats{grid-template-columns:1fr}}
@media (min-width:1000px){.lx-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}
.lx-stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius-card);
  padding:clamp(20px,1rem + .9vw,32px)}
.lx-stat--tint{background:var(--tint)}
.lx-stat__num{font-family:var(--font-head);font-size:clamp(2rem,1.5rem + 1.6vw,3.25rem);
  font-weight:600;line-height:1;color:var(--blue);letter-spacing:-.02em}
.lx-stat__num small{font-size:.48em;font-weight:600;color:var(--muted)}
.lx-stat__label{margin-top:.7em;font-size:var(--small);line-height:1.45;color:var(--body)}
.lx-stat__quote{margin-top:.6em;font-family:var(--font-head);font-size:var(--h3);
  font-weight:600;line-height:1.35}

/* --- services / steps ----------------------------------------------------- */
.lx-service h3{font-size:var(--h3);margin:1em 0 .5em}
.lx-service p,:where(.lx-step) p{font-size:var(--body-size);line-height:1.65;color:var(--body)}
.lx-step{background:#fff;border:1px solid var(--line);border-radius:var(--radius-card);
  padding:clamp(20px,1rem + 1vw,32px)}
.lx-step__num{width:clamp(38px,2rem + .8vw,50px);aspect-ratio:1;border-radius:50%;
  background:var(--blue);color:#fff;font-family:var(--font-head);font-weight:600;
  font-size:var(--body-size);display:grid;place-items:center}
.lx-step h3{font-size:var(--h3);margin:1em 0 .45em}

/* --- why ------------------------------------------------------------------ */
.lx-pillars{display:grid;gap:clamp(14px,1.4vw,26px);margin-top:clamp(20px,2vw,36px)}
.lx-pillar{display:flex;gap:14px;align-items:flex-start}
.lx-pillar__check{flex:none;width:28px;aspect-ratio:1;border-radius:50%;background:var(--blue-tint);
  color:var(--blue);display:grid;place-items:center;margin-top:3px}
.lx-pillar h3{font-size:var(--body-size);font-weight:600}
.lx-pillar p{font-size:var(--body-size);line-height:1.6;color:var(--body);margin-top:.25em}

/* --- service area --------------------------------------------------------- */
.lx-areas{display:grid;gap:12px;margin-top:clamp(20px,2vw,36px)}
.lx-area{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding:clamp(14px,.7rem + .5vw,22px);border:1px solid var(--line);
  border-radius:calc(var(--radius-card) - 2px);background:#fff}
.lx-area--request{border-style:dashed;border-color:var(--dashed)}
.lx-area__main{display:flex;align-items:center;gap:14px;min-width:0}
.lx-area__pin{flex:none;width:clamp(36px,2rem + .5vw,44px);aspect-ratio:1;border-radius:50%;
  background:var(--blue-tint);color:var(--blue);display:grid;place-items:center}
.lx-area--request .lx-area__pin{background:var(--tint);color:var(--muted)}
.lx-area__name{font-family:var(--font-head);font-weight:600;font-size:var(--h3)}
.lx-area__sub{font-size:var(--small);color:var(--muted)}

/* --- rentals -------------------------------------------------------------- */
.lx-rating{display:flex;flex-wrap:wrap;align-items:center;gap:18px clamp(18px,2vw,32px);
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-card);
  padding:clamp(16px,1rem + .6vw,28px);margin-block:clamp(22px,2.4vw,40px);max-width:520px}
.lx-rating__num{font-family:var(--font-head);font-size:clamp(2.25rem,1.6rem + 1.8vw,3.5rem);
  font-weight:600;line-height:1;color:var(--blue);letter-spacing:-.02em}
.lx-rating__label{font-weight:700;font-size:var(--body-size)}
.lx-rating__pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:.6em}

/* --- testimonials --------------------------------------------------------- */
.lx-quotes-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;
  gap:16px;margin-bottom:clamp(26px,2.6vw,48px)}
.lx-warn{font-size:var(--eyebrow);font-weight:700;color:var(--warn-text);background:var(--warn-bg);
  border:1px solid var(--warn-border);padding:.5em 1em;border-radius:999px}
.lx-quote__mark{color:var(--blue);font-size:2.4em;line-height:1;font-family:var(--font-head);font-weight:700}
.lx-quote blockquote{margin:0}
.lx-quote blockquote p{font-size:var(--body-size);line-height:1.65;color:var(--body);margin:.3em 0 1.4em}
.lx-quote figcaption{display:flex;align-items:center;gap:12px}
.lx-quote__avatar{flex:none;width:42px;aspect-ratio:1;border-radius:50%;background:var(--blue-tint);
  color:var(--blue);font-weight:800;display:grid;place-items:center}
.lx-quote__name{font-weight:700;font-size:var(--small)}
.lx-quote__role{font-size:var(--small);color:var(--muted)}

/* --- FAQ ------------------------------------------------------------------ */
.lx-faq{display:grid;gap:var(--gap-split);grid-template-columns:1fr}
@media (min-width:900px){.lx-faq{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}}
.lx-faq__intro p{font-size:var(--body-size);line-height:1.65;color:var(--body)}
.lx-faq__intro a{font-weight:700}
.lx-faq__list{display:grid;gap:10px}
.lx-faq__item{background:#fff;border:1px solid var(--line);
  border-radius:calc(var(--radius-card) - 2px);padding:clamp(14px,.7rem + .5vw,24px)}
.lx-faq__item summary{display:flex;justify-content:space-between;align-items:center;gap:16px;
  cursor:pointer;font-family:var(--font-head);font-weight:600;font-size:var(--h3);list-style:none}
.lx-faq__item summary::-webkit-details-marker{display:none}
.lx-faq__item summary::marker{content:""}
.lx-faq__item summary::after{content:"+";color:var(--blue);font-size:1.4em;line-height:1;
  font-weight:500;transition:transform .18s}
.lx-faq__item[open] summary::after{transform:rotate(45deg)}
.lx-faq__item p{margin-top:.8em;font-size:var(--body-size);line-height:1.65;color:var(--body)}

/* --- CTA ------------------------------------------------------------------ */
.lx-cta{padding:clamp(28px,1.5rem + 2.4vw,72px);border-radius:clamp(18px,1rem + .8vw,30px);
  background:var(--ink);color:#fff;display:grid;gap:var(--gap-split);align-items:center;
  grid-template-columns:1fr}
@media (min-width:900px){.lx-cta{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}}
.lx-cta h2{font-size:var(--h2-cta);line-height:1.15;letter-spacing:-.015em;margin-bottom:.35em}
.lx-cta p{font-size:var(--text);line-height:1.6;color:var(--on-dark)}
.lx-cta__actions{display:grid;gap:12px;max-width:420px;width:100%;justify-self:end}
@media (max-width:1000px){.lx-cta__actions{justify-self:stretch;max-width:none}}

/* --- footer + its animation ----------------------------------------------- */
.lx-footer{position:relative;isolation:isolate;background:var(--tint);
  border-top:1px solid var(--line);overflow:hidden}
/* The canvas sits behind the footer content and never takes pointer events. */
.lx-footer__canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-1;
  pointer-events:none;opacity:0;transition:opacity 1.2s ease}
.lx-footer__canvas.is-live{opacity:1}
.lx-footer__inner{position:relative;padding-block:clamp(40px,2rem + 2.4vw,88px) clamp(24px,2vw,40px)}
.lx-footer__cols{display:grid;gap:clamp(26px,2.6vw,56px);padding-bottom:clamp(28px,2.6vw,52px);
  border-bottom:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:480px){.lx-footer__cols{grid-template-columns:1fr}}
@media (min-width:900px){.lx-footer__cols{grid-template-columns:1.3fr 1fr 1fr 1fr}}
.lx-footer__logo{height:clamp(44px,2.4rem + 1vw,64px);width:auto}
.lx-footer__about{font-size:var(--small);line-height:1.6;color:var(--body);margin-top:1em;max-width:34ch}
.lx-footer__col{font-size:var(--small);line-height:2.1;color:var(--body)}
.lx-footer__col a{color:var(--body)}
.lx-footer__col a:hover{color:var(--blue)}
.lx-footer__heading{font-weight:800;font-size:var(--eyebrow);letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink);margin-bottom:.4em}
.lx-footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;
  padding-top:clamp(16px,1.6vw,28px);font-size:var(--small);color:var(--muted)}

/* --- very large screens ---------------------------------------------------
   Past ~2200px the clamps have topped out; widen the gutters instead of the
   line length so paragraphs stay readable on a 34" monitor. */
@media (min-width:2200px){
  .lx{--max:min(1680px, 68vw)}
  .lx-hero__grid{gap:clamp(64px,4vw,140px)}
}

/* --- print ---------------------------------------------------------------- */
@media print{
  .lx-nav,.lx-form-card,.lx-cta__actions,.lx-footer__canvas{display:none !important}
  .lx{color:#000}
}
