/*
 * Lead Axis — widget styles.
 * Light brand system: one accent, cool grounds, soft shadows, rounded cards.
 * Reads theme tokens; declares no literal colour.
 */

/* ==================== Shared heading ==================== */
.la-w-head{display:grid;gap:var(--la-s4);margin-bottom:var(--la-s10);max-width:70ch}
.la-w-head__title{margin:0}
.la-w-head--center{justify-items:center;text-align:center;margin-inline:auto}

/* ==================== Hero ==================== */
.la-hero{position:relative;display:grid;gap:var(--la-s10);align-items:center;padding-block:var(--la-s16)}
.la-hero--photo{
  min-height:78svh;align-content:center;border-radius:var(--la-r-xl);overflow:hidden;
  padding:clamp(2.5rem,6vw,5rem);
}
.la-hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.la-hero__scrim{position:absolute;inset:0;background:var(--la-dark);z-index:1}
.la-hero--photo > *:not(.la-hero__bg):not(.la-hero__scrim){position:relative;z-index:2}
.la-hero--photo .la-hero__title{color:#fff}
.la-hero--photo .la-hero__lede{color:rgba(255,255,255,.92)}
.la-hero--photo .la-eyebrow{color:var(--la-accent-300)}
.la-hero--photo .la-hero__points li{color:rgba(255,255,255,.92)}

.la-hero__copy{max-width:62ch}
.la-hero__title{margin-top:var(--la-s4);font-size:var(--la-d1);color:var(--la-ink);font-weight:700;line-height:1.08}
.la-hero__lede{margin-top:var(--la-s5);font-size:clamp(1rem,1.2vw,1.1875rem);line-height:1.66;color:var(--la-muted);max-width:56ch}
.la-hero__actions{display:flex;flex-wrap:wrap;gap:var(--la-s3);margin-top:var(--la-s8)}
.la-hero__points{display:flex;flex-wrap:wrap;gap:var(--la-s3) var(--la-s6);margin-top:var(--la-s8)}
.la-hero__points li{display:flex;align-items:center;gap:var(--la-s3);font-size:var(--la-sm);color:var(--la-muted)}
.la-hero__points li::before{
  content:"";width:18px;height:18px;flex:none;border-radius:50%;
  background:var(--la-accent-tint);box-shadow:inset 0 0 0 5px var(--la-accent);
}
.la-hero__points .n{display:none}
.la-hero__visual,.la-hero__panel{display:none}

/* ==================== Stats ==================== */
.la-stats__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));gap:var(--la-s5);margin-top:var(--la-s10)}
.la-stat{
  background:var(--la-off);border:1px solid var(--la-line);border-radius:var(--la-r-lg);
  padding:var(--la-s8) var(--la-s5);text-align:center;display:grid;gap:var(--la-s2);
}
.la-stat__n{font-size:clamp(1.75rem,2.6vw,2.25rem);font-weight:700;color:var(--la-accent);letter-spacing:-.02em;line-height:1}
.la-stat__l{font-size:var(--la-sm);font-weight:600;color:var(--la-ink)}
.la-stats__note{margin-top:var(--la-s5);font-size:var(--la-xs);color:var(--la-faint)}
.la-stats__cta{margin-top:var(--la-s10);display:flex;justify-content:center}

/* ==================== Partners ==================== */
.la-partners__track{
  overflow:hidden;margin-top:var(--la-s10);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.la-partners__row{display:flex;width:max-content;animation:la-drift 46s linear infinite}
.la-partners__track:hover .la-partners__row{animation-play-state:paused}
.la-partners__set{display:flex;align-items:center;gap:clamp(2.5rem,6vw,5rem);padding-right:clamp(2.5rem,6vw,5rem)}
.la-partners__item img{height:clamp(30px,3vw,44px);width:auto;object-fit:contain;filter:grayscale(1);opacity:.62;transition:filter var(--la-dur),opacity var(--la-dur)}
.la-partners__item:hover img{filter:none;opacity:1}
.la-partners__empty{
  margin-top:var(--la-s8);padding:var(--la-s5);border-radius:var(--la-r-md);
  background:var(--la-off);border:1px dashed var(--la-line-2);
  font-size:var(--la-sm);color:var(--la-muted);max-width:72ch;
}
@keyframes la-drift{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ==================== Blog ==================== */
.la-blog__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:var(--la-s6)}
.la-post{background:var(--la-white);border-radius:var(--la-r-lg);overflow:hidden;box-shadow:var(--la-shadow-sm);transition:transform var(--la-dur) var(--la-ease),box-shadow var(--la-dur)}
.la-post:hover{transform:translateY(-4px);box-shadow:var(--la-shadow-md)}
.la-post a{display:block;height:100%}
.la-post__media{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:var(--la-off-2)}
.la-post__media img{width:100%;height:100%;object-fit:cover}
.la-post__ph{position:absolute;inset:0;background:var(--la-off-2)}
.la-post__date{
  position:absolute;right:var(--la-s4);bottom:calc(var(--la-s4) * -1);
  display:grid;justify-items:center;padding:.55rem .8rem;border-radius:var(--la-r-sm);
  background:var(--la-ink);color:#fff;line-height:1.1;
}
.la-post__date b{font-size:1.15rem;font-weight:700}
.la-post__date i{font-style:normal;font-size:.625rem;letter-spacing:.1em}
.la-post__body{display:block;padding:var(--la-s8) var(--la-s6) var(--la-s6)}
.la-post__cat{display:block;font-size:var(--la-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--la-accent);margin-bottom:var(--la-s3)}
.la-post__title{font-size:1.0625rem;line-height:1.4;color:var(--la-ink)}
.la-post:hover .la-post__title{color:var(--la-accent)}
.la-blog__more{margin-top:var(--la-s10);display:flex;justify-content:center}

/* ==================== Reviews slider ==================== */
.la-reviews__note{margin:0 auto var(--la-s8);text-align:center;font-size:var(--la-xs);color:var(--la-on-dark-faint)}
.la-reviews__track{
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.la-reviews__track + .la-reviews__track{margin-top:var(--la-s6)}
.la-reviews__row{display:flex;width:max-content;animation:la-drift 64s linear infinite}
.la-reviews__row--b{animation-direction:reverse}
.la-reviews__track:hover .la-reviews__row{animation-play-state:paused}
.la-reviews__set{display:flex;gap:var(--la-s6);padding-right:var(--la-s6)}
.la-review{
  margin:0;width:clamp(280px,26vw,360px);flex:none;display:grid;gap:var(--la-s4);align-content:start;
  background:var(--la-surface-dark);border:1px solid var(--la-line-dark);
  border-radius:var(--la-r-lg);padding:var(--la-s6);
}
.la-review__top{display:flex;align-items:center;gap:var(--la-s3)}
.la-review__stars{color:var(--la-accent-300);letter-spacing:.12em;font-size:.8rem}
.la-review__score{font-size:var(--la-xs);font-weight:700;color:var(--la-on-dark-strong)}
.la-review__text{margin:0;font-size:var(--la-sm);line-height:1.62;color:var(--la-on-dark)}
.la-review__by{display:flex;align-items:center;gap:var(--la-s3)}
.la-review__av{width:38px;height:38px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--la-accent);color:#fff;font-size:var(--la-xs);font-weight:700}
.la-review__by b{display:block;font-size:var(--la-sm);color:var(--la-on-dark-strong)}
.la-review__by i{display:block;font-style:normal;font-size:var(--la-xs);color:var(--la-on-dark-faint)}
@media (prefers-reduced-motion:reduce){
  .la-reviews__row{animation:none;flex-wrap:wrap;width:100%}
  .la-reviews__set:nth-child(2){display:none}
  .la-reviews__set{flex-wrap:wrap}
  .la-review{width:auto;flex:1 1 280px}
}

/* ==================== Comparison ==================== */
.la-vs{display:grid;grid-template-columns:1fr 1fr;gap:var(--la-s6);align-items:start}
.la-vs__col{border-radius:var(--la-r-lg);padding:var(--la-s8);border:1px solid var(--la-line)}
.la-vs__col--a{background:var(--la-off)}
.la-vs__col--b{background:var(--la-white);border-color:var(--la-accent-200);box-shadow:var(--la-shadow-sm)}
.la-vs__head{margin-bottom:var(--la-s6)}
.la-vs__tag{display:inline-flex;align-items:center;font-size:var(--la-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.45rem .9rem;border-radius:var(--la-r-pill)}
.la-vs__tag--a{background:var(--la-off-2);color:var(--la-muted)}
.la-vs__tag--b{background:var(--la-accent);color:#fff}
.la-vs__col ul{display:grid;gap:var(--la-s4)}
.la-vs__col li{display:grid;grid-template-columns:auto 1fr;gap:var(--la-s3);align-items:start;font-size:var(--la-sm);line-height:1.55}
.la-vs__col li i{width:22px;height:22px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:10px;margin-top:1px}
.la-vs__col--a li{color:var(--la-body)}
.la-vs__col--a li i{background:var(--la-off-2);color:var(--la-muted)}
.la-vs__col--b li{color:var(--la-ink);font-weight:500}
.la-vs__col--b li i{background:var(--la-accent-tint);color:var(--la-accent)}
@media (max-width:800px){.la-vs{grid-template-columns:1fr}}

/* ==================== Process ==================== */
.la-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:var(--la-s6)}
.la-step{background:var(--la-white);border:1px solid var(--la-line);border-radius:var(--la-r-lg);padding:var(--la-s6);display:grid;gap:var(--la-s3);align-content:start}
.la-step__n{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:var(--la-r-sm);background:var(--la-accent-tint);color:var(--la-accent);font-weight:700;font-size:var(--la-sm)}
.la-step__title{font-size:var(--la-h4);color:var(--la-ink);font-weight:700}
.la-step__text{font-size:var(--la-sm);color:var(--la-muted);line-height:1.6}
.la-step__meta{display:none}
.la-ground--dark .la-step{background:var(--la-surface-dark);border-color:var(--la-line-dark)}
.la-ground--dark .la-step__title{color:var(--la-on-dark-strong)}
.la-ground--dark .la-step__text{color:var(--la-on-dark)}

/* ==================== FAQ ==================== */
.la-faq{display:grid;gap:var(--la-s3);max-width:56rem;margin-inline:auto}
.la-faq__item{background:var(--la-white);border:1px solid var(--la-line);border-radius:var(--la-r-md);overflow:hidden}
.la-faq__item[open]{border-color:var(--la-accent-200);box-shadow:var(--la-shadow-sm)}
.la-faq__q{display:grid;grid-template-columns:1fr auto;gap:var(--la-s5);align-items:center;padding:var(--la-s5) var(--la-s6);cursor:pointer;list-style:none}
.la-faq__q::-webkit-details-marker{display:none}
.la-faq__n{display:none}
.la-faq__text{font-size:var(--la-base);font-weight:600;color:var(--la-ink);line-height:1.4}
.la-faq__mark{position:relative;width:14px;height:14px;flex:none}
.la-faq__mark::before,.la-faq__mark::after{content:"";position:absolute;background:var(--la-accent);transition:transform var(--la-dur) var(--la-ease)}
.la-faq__mark::before{left:0;top:6px;width:14px;height:2px;border-radius:2px}
.la-faq__mark::after{left:6px;top:0;width:2px;height:14px;border-radius:2px}
.la-faq__item[open] .la-faq__mark::after{transform:scaleY(0)}
.la-faq__a{padding:0 var(--la-s6) var(--la-s6);max-width:72ch}
.la-faq__a p{font-size:var(--la-sm);color:var(--la-muted);line-height:1.7}

/* ==================== Form ==================== */
.la-form{background:var(--la-white);border:1px solid var(--la-line);border-radius:var(--la-r-xl);padding:clamp(1.5rem,3.5vw,3rem);box-shadow:var(--la-shadow-lg)}
.la-ground--dark .la-form{background:var(--la-surface-dark);border-color:var(--la-line-dark)}
.la-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--la-s5)}
.la-form__grid--wide{grid-template-columns:repeat(3,minmax(0,1fr))}
.la-field{display:grid;gap:var(--la-s2)}
.la-field--full{grid-column:1/-1}
.la-field>label{font-size:var(--la-xs);font-weight:600;color:var(--la-ink)}
.la-ground--dark .la-field>label{color:var(--la-on-dark-strong)}
.la-req{color:var(--la-error);margin-left:2px}
.la-input,.la-select,.la-textarea{
  width:100%;font-family:var(--la-sans);font-size:var(--la-sm);color:var(--la-ink);
  background:var(--la-off);border:1px solid var(--la-line);border-radius:var(--la-r-sm);
  padding:.85rem 1rem;transition:border-color var(--la-dur),box-shadow var(--la-dur),background var(--la-dur);
}
.la-ground--dark .la-input,.la-ground--dark .la-select,.la-ground--dark .la-textarea{
  background:rgba(255,255,255,.06);border-color:var(--la-line-dark);color:var(--la-on-dark-strong);
}
.la-textarea{min-height:110px;resize:vertical}
.la-input::placeholder,.la-textarea::placeholder{color:var(--la-faint)}
.la-input:focus,.la-select:focus,.la-textarea:focus{outline:none;border-color:var(--la-accent);box-shadow:0 0 0 4px var(--la-accent-tint)}
.la-select option{color:var(--la-ink)}
.la-hint{font-size:var(--la-xs);color:var(--la-faint)}
.la-err{display:none;font-size:var(--la-xs);color:var(--la-error)}
.la-field--error .la-err{display:block}
.la-field--error .la-input,.la-field--error .la-select,.la-field--error .la-textarea{border-color:var(--la-error)}
.la-hp{position:absolute !important;left:-9999px;width:1px;height:1px;overflow:hidden}
.la-form__consent{margin:var(--la-s6) 0;font-size:var(--la-xs);color:var(--la-muted);line-height:1.6;max-width:82ch}
.la-ground--dark .la-form__consent{color:var(--la-on-dark-faint)}
.la-form__submit{min-width:220px}
.la-form__submit[disabled]{opacity:.6;cursor:progress}
.la-form__spinner{display:none;width:14px;height:14px}
.la-form__submit.is-busy .la-form__spinner{display:inline-block;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:la-spin .7s linear infinite}
@keyframes la-spin{to{transform:rotate(360deg)}}
.la-form__status{display:none;margin-top:var(--la-s4);font-size:var(--la-sm);font-weight:600}
.la-form__status.is-error{display:block;color:var(--la-error)}
.la-form__status.is-success{display:block;color:var(--la-success)}
.la-form.is-done .la-form__grid,.la-form.is-done .la-form__consent,.la-form.is-done .la-form__submit{display:none}
@media (max-width:900px){.la-form__grid--wide{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.la-form__grid,.la-form__grid--wide{grid-template-columns:1fr}}

/* ==================== Marquee band ==================== */
.la-marquee{overflow:hidden;border-block:1px solid var(--la-line);padding-block:var(--la-s5)}
.la-marquee__track{display:flex;width:max-content;animation:la-drift 42s linear infinite}
.la-marquee:hover .la-marquee__track{animation-play-state:paused}
.la-marquee__group{display:flex;align-items:center;gap:var(--la-s8);padding-right:var(--la-s8)}
.la-marquee__item{font-size:var(--la-sm);font-weight:600;color:var(--la-ink);white-space:nowrap}
.la-marquee__dot{width:5px;height:5px;border-radius:50%;background:var(--la-accent);flex:none}

/* ==================== Trust figures ==================== */
.la-figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:var(--la-s6)}
.la-figure{background:var(--la-white);border:1px solid var(--la-line);border-radius:var(--la-r-lg);padding:var(--la-s6);display:grid;gap:var(--la-s3);align-content:start}
.la-figure__n{display:none}
.la-figure__label{font-size:var(--la-h4);font-weight:700;color:var(--la-ink);letter-spacing:0;text-transform:none}
.la-figure__text{font-size:var(--la-sm);color:var(--la-muted);line-height:1.6}

@media (prefers-reduced-motion:reduce){
  .la-marquee__track,.la-partners__row{animation:none}
}


/* ==================== v6 corrections ==================== */

/* Accent word inside a heading, with a hand-drawn underline. */
.la-accent-word{position:relative;color:var(--la-accent);white-space:nowrap}
.la-accent-word::after{
  content:"";position:absolute;left:1%;right:1%;bottom:-.13em;height:.26em;
  background:no-repeat center/100% 100%;opacity:.75;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'%3E%3Cpath d='M3 8.4C34 4.2 78 2.6 130 3.4c26 .4 46 1.4 66 3.2' stroke='%231B5FC1' stroke-width='2.1' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* ---------- Hero: full bleed, no rounded frame ---------- */
.la-hero{padding-block:0}
.la-hero--photo{
  min-height:auto;border-radius:0;overflow:hidden;
  padding:clamp(3rem,7vw,6.5rem) 0;
}
.la-hero__inner{
  position:relative;z-index:2;width:100%;max-width:var(--la-container);
  margin-inline:auto;padding-inline:var(--la-gutter);
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:clamp(2rem,4vw,4rem);align-items:center;
}
.la-hero__copy{max-width:none}
.la-hero__visual{display:block;min-width:0}
.la-hero__visual img{width:100%;height:auto;display:block;filter:drop-shadow(0 30px 60px rgba(6,20,44,.38))}
@media (max-width:960px){
  .la-hero__inner{grid-template-columns:1fr;gap:var(--la-s10)}
  .la-hero__visual{order:2}
}

/* ---------- Brand wash on alternating sections ----------
 * The logo gradient plate, dropped to a wash so section copy stays on a light
 * ground and every text pairing keeps its measured contrast. */
.la-soft{
  position:relative;isolation:isolate;
  background:linear-gradient(180deg,#F5F9FE 0%,#E9F1FD 100%);
}
.la-soft::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:var(--la-bg-soft) no-repeat center/cover;
  opacity:.22;
  -webkit-mask-image:radial-gradient(90% 120% at 100% 0%,#000 0%,rgba(0,0,0,.5) 45%,transparent 78%);
  mask-image:radial-gradient(90% 120% at 100% 0%,#000 0%,rgba(0,0,0,.5) 45%,transparent 78%);
}
/* Supporting copy is lifted a step on the tint so every pairing clears AA. */
.la-soft .la-lede,.la-soft .la-stat__l,.la-soft .la-step__text,
.la-soft .la-plan__blurb,.la-soft .la-figure__text{color:var(--la-body)}
.la-soft .la-stat,.la-soft .la-step{background:rgba(255,255,255,.88);box-shadow:var(--la-shadow-md)}
.la-soft > *{position:relative;z-index:1}

/* ---------- Stats ---------- */
.la-stats__aside{display:grid;gap:var(--la-s5);justify-items:start;align-content:end}
@media (min-width:861px){.la-stats__aside{justify-items:end;text-align:right}}
.la-stat{
  background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.9);
  border-radius:var(--la-r-lg);padding:var(--la-s8) var(--la-s6);
  text-align:left;display:grid;gap:var(--la-s3);justify-items:start;
  box-shadow:var(--la-shadow-sm);backdrop-filter:blur(6px);
}
.la-stat__icon{
  display:grid;place-items:center;width:56px;height:56px;border-radius:var(--la-r-md);
  background:var(--la-accent-50);color:var(--la-accent);font-size:22px;
}
.la-stat__n{font-size:clamp(2.25rem,3.6vw,3rem);font-weight:800;color:var(--la-ink);letter-spacing:-.03em;line-height:1}
.la-stat__l{font-size:var(--la-sm);font-weight:500;color:var(--la-muted)}

/* ---------- Process: connected cards ---------- */
.la-steps{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:var(--la-s6)}
.la-step{
  position:relative;background:rgba(255,255,255,.76);border:1px solid rgba(255,255,255,.9);
  border-radius:var(--la-r-lg);padding:var(--la-s6);display:grid;gap:var(--la-s3);
  align-content:start;box-shadow:var(--la-shadow-sm);backdrop-filter:blur(6px);
}
.la-step__icon{
  display:grid;place-items:center;width:56px;height:56px;border-radius:var(--la-r-md);
  background:var(--la-accent-50);color:var(--la-accent);font-size:22px;margin-bottom:var(--la-s2);
}
/* Connector between cards, drawn only where two sit side by side. */
.la-step + .la-step::before{
  content:"";position:absolute;left:calc(var(--la-s6) * -1 - 1px);top:50%;
  width:var(--la-s6);height:1px;background:var(--la-line-2);
}
.la-step + .la-step::after{
  content:"";position:absolute;left:calc(var(--la-s6) * -0.5 - 4px);top:calc(50% - 3px);
  width:7px;height:7px;border-radius:50%;background:var(--la-accent);
}
@media (max-width:900px){.la-step + .la-step::before,.la-step + .la-step::after{display:none}}

/* ---------- Staggered feature cards ---------- */
.la-figures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--la-s8) var(--la-s10);position:relative}
.la-figure{
  background:var(--la-white);border:1px solid var(--la-line);border-radius:var(--la-r-lg);
  padding:var(--la-s6);display:grid;gap:var(--la-s3);align-content:start;box-shadow:var(--la-shadow-sm);
}
.la-figure:nth-child(even){transform:translateY(var(--la-s10))}
.la-figure__n{
  display:grid;place-items:center;width:44px;height:44px;border-radius:50%;
  background:var(--la-accent-50);color:var(--la-accent);font-size:var(--la-sm);font-weight:700;
}
.la-figure__label{font-size:var(--la-h4);font-weight:700;color:var(--la-ink);letter-spacing:0;text-transform:none}
.la-figure__text{font-size:var(--la-sm);color:var(--la-muted);line-height:1.6}
@media (max-width:760px){
  .la-figures{grid-template-columns:1fr;gap:var(--la-s5)}
  .la-figure:nth-child(even){transform:none}
}

/* ---------- Reviews: portraits ---------- */
.la-review__av{overflow:hidden;background:var(--la-accent)}
.la-review__av img{width:100%;height:100%;object-fit:cover;border-radius:50%}

/* ---------- Pricing ---------- */
.la-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:var(--la-s6);align-items:start}
.la-plan{
  background:var(--la-white);border:1px solid var(--la-line);border-radius:var(--la-r-xl);
  padding:var(--la-s8);display:grid;gap:var(--la-s4);align-content:start;box-shadow:var(--la-shadow-sm);
}
.la-plan--featured{
  background:var(--la-accent-50);border-color:var(--la-accent-200);
  box-shadow:var(--la-shadow-lg);transform:translateY(calc(var(--la-s6) * -1));
}
.la-plan__top{display:flex;align-items:center;justify-content:space-between;gap:var(--la-s3)}
.la-plan__icon{
  display:grid;place-items:center;width:52px;height:52px;border-radius:var(--la-r-md);
  background:var(--la-white);color:var(--la-accent);font-size:20px;box-shadow:var(--la-shadow-sm);
}
.la-plan__badge{
  font-size:var(--la-xs);font-weight:700;padding:.4rem .8rem;border-radius:var(--la-r-pill);
  background:var(--la-accent);color:#fff;
}
.la-plan__name{font-size:1.5rem;font-weight:700;color:var(--la-ink)}
.la-plan__blurb{font-size:var(--la-sm);color:var(--la-muted);line-height:1.6}
.la-plan__price{display:flex;align-items:baseline;gap:.35rem;margin-top:var(--la-s2)}
.la-plan__price b{font-size:2.5rem;font-weight:800;color:var(--la-ink);letter-spacing:-.03em;line-height:1}
.la-plan__price i{font-style:normal;font-size:var(--la-sm);color:var(--la-muted)}
.la-plan__tbc{font-size:1.75rem !important;color:var(--la-muted) !important}
.la-plan__meta{display:grid;gap:var(--la-s2);padding-top:var(--la-s4);border-top:1px solid var(--la-line)}
.la-plan__meta li{display:flex;align-items:center;gap:var(--la-s3);font-size:var(--la-sm);color:var(--la-ink);font-weight:500}
.la-plan__meta li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--la-accent);flex:none}
.la-plan__ftitle{font-size:var(--la-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--la-faint);margin-top:var(--la-s3)}
.la-plan__features{display:grid;gap:var(--la-s3)}
.la-plan__features li{display:grid;grid-template-columns:auto 1fr;gap:var(--la-s3);align-items:start;font-size:var(--la-sm);color:var(--la-body);line-height:1.5}
.la-plan__features li i{
  width:20px;height:20px;flex:none;border-radius:50%;display:grid;place-items:center;
  font-size:9px;background:var(--la-accent-tint);color:var(--la-accent);margin-top:1px;
}
.la-pricing__note{margin-top:var(--la-s8);text-align:center;font-size:var(--la-xs);color:var(--la-faint)}
@media (max-width:900px){.la-plan--featured{transform:none}}

/* ---------- FAQ: keep headings inside the container ---------- */
.la-faq{max-width:56rem;margin-inline:auto}
.la-faq__text{min-width:0;overflow-wrap:anywhere}
.la-faq__q{align-items:start}
.la-faq__mark{margin-top:.35rem}

/* ---------- Form on the dark ground ---------- */
.la-ground--dark .la-form{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14)}
.la-ground--dark .la-input,.la-ground--dark .la-select,.la-ground--dark .la-textarea{
  background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:#fff;
}
.la-ground--dark .la-input::placeholder,.la-ground--dark .la-textarea::placeholder{color:rgba(255,255,255,.5)}
.la-ground--dark .la-input:focus,.la-ground--dark .la-select:focus,.la-ground--dark .la-textarea:focus{
  background:rgba(255,255,255,.13);border-color:var(--la-accent-300);box-shadow:0 0 0 4px rgba(127,176,245,.2);
}
.la-ground--dark .la-select option{background:var(--la-dark);color:#fff}
.la-ground--dark .la-hint{color:rgba(255,255,255,.55)}

/* ==================== v7: colour, contrast, composition ==================== */

/* ---------- Hero on the brand gradient ---------- */
.la-hero--photo{padding:clamp(3.5rem,7.5vw,6.5rem) 0 clamp(3rem,6.5vw,5.5rem)}
.la-hero--photo .la-hero__scrim{
  background:linear-gradient(100deg,
    rgba(6,18,38,.96) 0%, rgba(6,18,38,.84) 34%,
    rgba(6,18,38,.42) 68%, rgba(6,18,38,.14) 100%);
}
.la-hero--photo .la-hero__title{letter-spacing:var(--la-track-d)}
.la-hero--photo .la-hero__lede{color:rgba(255,255,255,.86);max-width:48ch}
.la-hero--photo .la-btn--ghost{border-color:rgba(255,255,255,.45);color:#fff}
.la-hero--photo .la-btn--ghost:hover{background:rgba(255,255,255,.12);border-color:#fff}
.la-hero__visual{position:relative}
.la-hero__visual::before{
  content:"";position:absolute;inset:-8% -6%;z-index:-1;border-radius:50%;
  background:radial-gradient(closest-side,rgba(127,176,245,.30),transparent 72%);
}
@media (max-width:960px){
  .la-hero--photo .la-hero__scrim{
    background:linear-gradient(180deg,rgba(6,18,38,.94) 0%,rgba(6,18,38,.86) 60%,rgba(6,18,38,.90) 100%);
  }
  .la-hero__visual{order:2;max-width:560px;margin-inline:auto}
}

/* ---------- Stats on the wash ---------- */
.la-stats__grid{margin-top:var(--la-s12)}
.la-stat{transition:transform var(--la-dur) var(--la-ease),box-shadow var(--la-dur)}
.la-stat:hover{transform:translateY(-4px);box-shadow:var(--la-shadow-md)}
.la-stat__icon{background:linear-gradient(140deg,var(--la-accent) 0%,var(--la-accent-400) 100%);color:#fff}
.la-stats__aside .la-lede{max-width:44ch}

/* ---------- Process on the wash ---------- */
.la-step{transition:transform var(--la-dur) var(--la-ease),box-shadow var(--la-dur)}
.la-step:hover{transform:translateY(-4px);box-shadow:var(--la-shadow-md)}
.la-step__icon{background:linear-gradient(140deg,var(--la-accent) 0%,var(--la-accent-400) 100%);color:#fff}

/* ---------- What you get: staggered figures ---------- */
.la-figure{position:relative;overflow:hidden;transition:transform var(--la-dur) var(--la-ease),box-shadow var(--la-dur),border-color var(--la-dur)}
.la-figure::after{
  content:"";position:absolute;right:-30%;top:-60%;width:70%;aspect-ratio:1;border-radius:50%;
  background:var(--la-accent-50);z-index:0;transition:transform .5s var(--la-ease-out);
}
.la-figure:hover{transform:translateY(-6px);border-color:var(--la-accent-200);box-shadow:var(--la-shadow-md)}
.la-figure:nth-child(even):hover{transform:translateY(calc(var(--la-s10) - 6px))}
.la-figure:hover::after{transform:scale(1.35)}
.la-figure>*{position:relative;z-index:1}
.la-figure__icon{
  display:grid;place-items:center;width:54px;height:54px;border-radius:var(--la-r-md);font-size:21px;
  background:linear-gradient(140deg,var(--la-accent) 0%,var(--la-accent-400) 100%);color:#fff;
}
.la-figure__n{
  position:absolute;top:var(--la-s5);right:var(--la-s6);width:auto;height:auto;background:none;
  font-family:var(--la-mono);font-size:var(--la-xs);color:var(--la-accent-300);
}

/* ---------- FAQ: colour and containment ---------- */
.la-faq__item{transition:border-color var(--la-dur),background var(--la-dur)}
.la-faq__item:hover{border-color:var(--la-accent-200)}
.la-faq__item[open]{background:var(--la-accent-50);border-color:var(--la-accent-200)}
.la-faq__q{gap:var(--la-s5);padding:var(--la-s5) var(--la-s6)}
.la-faq__text{font-size:1.0625rem}
.la-faq__mark{
  width:34px;height:34px;border-radius:50%;background:var(--la-white);
  border:1px solid var(--la-line);display:grid;place-items:center;margin-top:0;
  transition:background var(--la-dur),border-color var(--la-dur);
}
.la-faq__item[open] .la-faq__mark{background:var(--la-accent);border-color:var(--la-accent)}
.la-faq__item[open] .la-faq__mark::before{background:#fff}
.la-faq__mark::before{left:10px;top:16px;width:14px;height:2px}
.la-faq__mark::after{left:16px;top:10px;width:2px;height:14px}

/* ---------- Closing form: a light card on the dark ground ----------
 * Reversing the card out of the dark section is what fixes the contrast: the
 * fields sit on white rather than on a near-black panel. */
.la-ground--dark .la-form{
  background:var(--la-white);border-color:rgba(255,255,255,.16);
  box-shadow:0 40px 90px rgba(0,0,0,.38);
}
.la-ground--dark .la-form .la-field>label{color:var(--la-ink)}
.la-ground--dark .la-form .la-input,
.la-ground--dark .la-form .la-select,
.la-ground--dark .la-form .la-textarea{
  background:var(--la-off);border-color:var(--la-line);color:var(--la-ink);
}
.la-ground--dark .la-form .la-input::placeholder,
.la-ground--dark .la-form .la-textarea::placeholder{color:var(--la-faint)}
.la-ground--dark .la-form .la-input:focus,
.la-ground--dark .la-form .la-select:focus,
.la-ground--dark .la-form .la-textarea:focus{
  background:var(--la-white);border-color:var(--la-accent);box-shadow:0 0 0 4px var(--la-accent-tint);
}
.la-ground--dark .la-form .la-select option{background:var(--la-white);color:var(--la-ink)}
.la-ground--dark .la-form .la-hint,
.la-ground--dark .la-form__consent{color:var(--la-muted)}
.la-ground--dark .la-form__consent a{color:var(--la-accent);text-decoration:underline}

/* ---------- Pricing on the wash ---------- */
.la-plan{transition:transform var(--la-dur) var(--la-ease),box-shadow var(--la-dur)}
.la-plan:not(.la-plan--featured):hover{transform:translateY(-6px);box-shadow:var(--la-shadow-md)}
.la-plan--featured .la-plan__icon{background:var(--la-accent);color:#fff}


/* ==================== v8 ==================== */

/* Hero: a little more room for the dashboard. */
.la-hero__inner{grid-template-columns:minmax(0,.95fr) minmax(0,1.15fr)}
@media (max-width:960px){.la-hero__inner{grid-template-columns:1fr}}

/* An unset figure reads as a held space rather than a broken one. */
.la-stat__n--tbc{color:var(--la-line-2);font-weight:600}

/* Feature card titles are headings, not labels. */
.la-figure__label{
  font-size:var(--la-h4);font-weight:700;color:var(--la-ink);
  letter-spacing:0;text-transform:none;
}

/* ==================== v9 ==================== */

/* Elementor sets `height:auto` on every image it renders, which beat the hero
 * backdrop and left the lower half of tall heroes uncovered. */
.la-hero--photo .la-hero__bg{
  position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;
}

/* Shrink-to-fit items in the stats aside could run past the track. */
.la-stats__aside{justify-items:stretch}
@media (min-width:861px){
  .la-stats__aside{text-align:right}
  .la-stats__aside .la-lede{max-width:100%;margin-left:auto}
  .la-stats__aside .la-btn{justify-self:end}
}

/* ==================== v10 ==================== */

/* ---------- The brand plate used as a real photographic ground ---------- */
.la-photo-ground{position:relative;isolation:isolate;background:var(--la-ink-2)}
.la-photo-ground::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:var(--la-bg-soft) no-repeat center/cover;
}
.la-photo-ground::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(6,18,38,.62) 0%,rgba(6,18,38,.42) 45%,rgba(6,18,38,.66) 100%);
}
.la-photo-ground > *{position:relative;z-index:1}
/* Cards stay solid white on the plate: the copy needs a settled ground. */
.la-photo-ground .la-step{background:var(--la-white);border-color:transparent;box-shadow:var(--la-shadow-lg)}
.la-photo-ground .la-step__title{color:var(--la-ink)}
.la-photo-ground .la-step__text{color:var(--la-body)}
.la-photo-ground .la-step + .la-step::before{background:rgba(255,255,255,.5)}
.la-photo-ground .la-step + .la-step::after{background:#fff}
.la-photo-ground .la-accent-word{color:#fff}
.la-photo-ground .la-accent-word::after{
  opacity:1;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'%3E%3Cpath d='M3 8.4C34 4.2 78 2.6 130 3.4c26 .4 46 1.4 66 3.2' stroke='%237FB0F5' stroke-width='2.1' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* ---------- Split feature ---------- */
.la-split{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,4.5rem);align-items:center;
}
.la-split--right .la-split__media{order:2}
.la-split__media{position:relative;min-width:0}
.la-split__media::before{
  content:"";position:absolute;inset:-6% -4%;z-index:0;border-radius:50%;
  background:radial-gradient(closest-side,var(--la-accent-tint),transparent 72%);
}
.la-split__media img{
  position:relative;z-index:1;width:100%;height:auto;max-width:none;display:block;
  filter:drop-shadow(0 26px 54px rgba(11,34,72,.16));
}
.la-split__body{min-width:0}
.la-split__title{margin-top:var(--la-s3);font-size:var(--la-d2);color:var(--la-ink);letter-spacing:var(--la-track-d)}
.la-split__body .la-lede{margin-top:var(--la-s4)}
.la-split__points{display:grid;gap:var(--la-s6);margin-top:var(--la-s8)}
.la-point{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--la-s5);align-items:start}
.la-point__icon{
  display:grid;place-items:center;width:50px;height:50px;flex:none;border-radius:var(--la-r-md);font-size:19px;
  background:linear-gradient(140deg,var(--la-accent) 0%,var(--la-accent-400) 100%);color:#fff;
}
.la-point__title{font-size:var(--la-h4);font-weight:700;color:var(--la-ink)}
.la-point__text{margin-top:var(--la-s2);font-size:var(--la-sm);line-height:1.65;color:var(--la-muted)}
.la-split__cta{margin-top:var(--la-s8)}
.la-soft .la-point__text{color:var(--la-body)}
@media (max-width:860px){
  .la-split{grid-template-columns:1fr;gap:var(--la-s10)}
  .la-split--right .la-split__media{order:0}
}

/* ---------- Hero: matched button widths ---------- */
.la-hero__actions{align-items:stretch}
.la-hero__actions .la-btn{min-width:13rem}
@media (max-width:480px){.la-hero__actions .la-btn{min-width:0;flex:1 1 100%}}

/* ==================== v11 ==================== */

/*
 * Elementor drives `.e-con::before` from `--background-overlay` and ships that
 * rule after this stylesheet, so an equal-specificity selector loses every
 * property it declares: content, size, background and opacity all reset. The
 * whole backdrop is therefore declared here, one class deeper, where it wins.
 */
.elementor .la-soft::before,
.elementor .la-photo-ground::before,
.elementor .la-photo-ground::after{
  content:"";position:absolute;inset:0;width:100%;height:100%;
  z-index:0;pointer-events:none;mix-blend-mode:normal;transition:none;
}
.elementor .la-soft::before{
  background:var(--la-bg-soft) no-repeat center/cover;opacity:.3;
  -webkit-mask-image:radial-gradient(90% 120% at 100% 0%,#000 0%,rgba(0,0,0,.5) 45%,transparent 78%);
  mask-image:radial-gradient(90% 120% at 100% 0%,#000 0%,rgba(0,0,0,.5) 45%,transparent 78%);
}
.elementor .la-photo-ground::before{
  background:var(--la-bg-soft) no-repeat center/cover;opacity:1;
}
.elementor .la-photo-ground::after{
  background:linear-gradient(180deg,rgba(6,18,38,.60) 0%,rgba(6,18,38,.40) 45%,rgba(6,18,38,.64) 100%);
  opacity:1;
}

/* ==================== v13: interior page blocks ==================== */

/* ---------- Feature cards ---------- */
.la-cards{display:grid;gap:var(--la-s6)}
.la-cards--2{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr))}
.la-cards--3{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr))}
.la-cards--4{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))}
.la-card{
  background:var(--la-white);border:1px solid var(--la-line);border-radius:var(--la-r-lg);
  padding:var(--la-s8) var(--la-s6);display:grid;gap:var(--la-s3);align-content:start;
  box-shadow:var(--la-shadow-sm);
  transition:transform var(--la-dur) var(--la-ease),box-shadow var(--la-dur),border-color var(--la-dur);
}
.la-card:hover{transform:translateY(-4px);box-shadow:var(--la-shadow-md);border-color:var(--la-accent-200)}
.la-card--raised{
  border-color:var(--la-accent);box-shadow:var(--la-shadow-lg);
  transform:translateY(calc(var(--la-s5) * -1));
}
.la-card--raised:hover{transform:translateY(calc(var(--la-s5) * -1 - 4px))}
.la-card__icon{
  display:grid;place-items:center;width:54px;height:54px;border-radius:var(--la-r-md);font-size:21px;
  background:linear-gradient(140deg,var(--la-accent) 0%,var(--la-accent-400) 100%);color:#fff;
}
.la-card__title{font-size:var(--la-d3);font-weight:700;color:var(--la-ink)}
.la-card__text{font-size:var(--la-sm);line-height:1.65;color:var(--la-muted)}
.la-soft .la-card__text{color:var(--la-body)}
@media (max-width:760px){.la-card--raised,.la-card--raised:hover{transform:none}}

/* ---------- Plan comparison table ---------- */
.la-tbl__scroll{overflow-x:auto;border:1px solid var(--la-line);border-radius:var(--la-r-lg);background:var(--la-white)}
.la-tbl{width:100%;min-width:640px;border-collapse:collapse;font-size:var(--la-sm)}
.la-tbl th,.la-tbl td{padding:var(--la-s4) var(--la-s5);text-align:left;border-bottom:1px solid var(--la-line)}
.la-tbl thead th{
  background:var(--la-accent-50);color:var(--la-ink);font-weight:700;
  font-size:var(--la-xs);letter-spacing:var(--la-track-label);text-transform:uppercase;
}
.la-tbl tbody th{font-weight:600;color:var(--la-ink);width:38%}
.la-tbl td{text-align:center;color:var(--la-body);font-variant-numeric:tabular-nums}
.la-tbl tbody tr:last-child th,.la-tbl tbody tr:last-child td{border-bottom:0}
.la-tbl__group th{
  background:var(--la-off);color:var(--la-faint);font-size:var(--la-xs);font-weight:700;
  letter-spacing:var(--la-track-label);text-transform:uppercase;
}
.la-tbl__yes{
  display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;
  background:var(--la-accent-tint);color:var(--la-accent);font-size:10px;
}
.la-tbl__no{display:inline-block;width:12px;height:2px;border-radius:2px;background:var(--la-line-2)}
.la-tbl__val{font-weight:600;color:var(--la-ink)}

/* ---------- Contact details panel ---------- */
.la-contact-panel{
  background:var(--la-white);border:1px solid var(--la-line);border-radius:var(--la-r-xl);
  padding:clamp(1.5rem,3vw,2.5rem);box-shadow:var(--la-shadow-sm);height:100%;
}
.la-contact-panel__title{font-size:var(--la-d3);color:var(--la-ink)}
.la-contact-panel__text{margin-top:var(--la-s3);font-size:var(--la-sm);line-height:1.65;color:var(--la-muted)}
.la-details{display:grid;gap:var(--la-s5);margin-top:var(--la-s8)}
.la-detail{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--la-s4);align-items:start}
.la-detail + .la-detail{padding-top:var(--la-s5);border-top:1px solid var(--la-line)}
.la-detail__icon{
  display:grid;place-items:center;width:44px;height:44px;border-radius:var(--la-r-md);
  background:var(--la-accent-50);color:var(--la-accent);font-size:17px;
}
.la-detail__label{
  display:block;font-size:var(--la-xs);font-weight:700;letter-spacing:var(--la-track-label);
  text-transform:uppercase;color:var(--la-faint);
}
.la-detail__value{display:block;margin-top:var(--la-s1);font-size:var(--la-base);font-weight:600;color:var(--la-ink)}
a.la-detail__value:hover{color:var(--la-accent)}
.la-contact-panel__note{
  margin-top:var(--la-s8);padding-top:var(--la-s5);border-top:1px solid var(--la-line);
  font-size:var(--la-xs);color:var(--la-faint);line-height:1.6;
}

/* ---------- Call to action band ---------- */
.la-cta{position:relative;text-align:center;isolation:isolate;overflow:hidden}
/* Set low and clipped, so it reads as texture under the block rather than as
 * a second line of type competing with the heading. */
.la-cta__mark{
  position:absolute;left:50%;bottom:-.34em;transform:translateX(-50%);z-index:-1;
  font-size:clamp(4rem,15vw,11rem);font-weight:800;letter-spacing:-.05em;line-height:1;
  white-space:nowrap;color:var(--la-accent);opacity:.06;user-select:none;
}
.la-ground--dark .la-cta__mark{color:#fff;opacity:.05}
.la-cta__inner{display:grid;justify-items:center;gap:var(--la-s4);max-width:44rem;margin-inline:auto}
.la-cta__icon{
  display:grid;place-items:center;width:66px;height:66px;border-radius:50%;font-size:25px;
  background:var(--la-white);color:var(--la-accent);box-shadow:var(--la-shadow-md);
}
.la-cta__title{font-size:var(--la-d2);color:var(--la-ink);letter-spacing:var(--la-track-d);text-wrap:balance}
.la-ground--dark .la-cta__title{color:var(--la-on-dark-strong)}
.la-cta .la-lede{text-align:center}
.la-cta__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--la-s3);margin-top:var(--la-s5)}
.la-cta__actions .la-btn{min-width:12rem}

/* ---------- Review wall ---------- */
.la-wall__note{margin:0 auto var(--la-s8);text-align:center;font-size:var(--la-xs);color:var(--la-faint)}
.la-wall{columns:3 300px;column-gap:var(--la-s6)}
.la-wall__item{
  break-inside:avoid;margin:0 0 var(--la-s6);
  background:var(--la-white);border:1px solid var(--la-line);border-radius:var(--la-r-lg);
  padding:var(--la-s6);display:grid;gap:var(--la-s4);box-shadow:var(--la-shadow-sm);
  transition:transform var(--la-dur) var(--la-ease),box-shadow var(--la-dur);
}
.la-wall__item:hover{transform:translateY(-4px);box-shadow:var(--la-shadow-md)}
.la-wall__top{display:flex;align-items:center;justify-content:space-between;gap:var(--la-s3)}
.la-wall__topic{
  font-size:var(--la-xs);font-weight:700;letter-spacing:var(--la-track-label);text-transform:uppercase;
  color:var(--la-accent);
}
.la-wall__score{
  display:inline-flex;align-items:center;gap:var(--la-s2);font-size:var(--la-xs);font-weight:700;
  color:var(--la-ink);font-variant-numeric:tabular-nums;
}
.la-wall__score i{color:var(--la-accent);font-size:11px}
.la-wall__text{margin:0;font-size:var(--la-sm);line-height:1.7;color:var(--la-body)}
.la-wall__by{display:flex;align-items:center;gap:var(--la-s3);padding-top:var(--la-s4);border-top:1px solid var(--la-line)}
.la-wall__av{width:44px;height:44px;flex:none;border-radius:50%;overflow:hidden;background:var(--la-accent-50)}
.la-wall__av img{width:100%;height:100%;max-width:none;object-fit:cover;display:block}
.la-wall__by b{display:block;font-size:var(--la-sm);color:var(--la-ink)}
.la-wall__by i{display:block;font-style:normal;font-size:var(--la-xs);color:var(--la-muted)}

/* ---------- Timeline ---------- */
.la-line{position:relative;display:grid;gap:var(--la-s8);max-width:52rem}
.la-line::before{
  content:"";position:absolute;left:21px;top:12px;bottom:12px;width:2px;
  background:linear-gradient(180deg,var(--la-accent) 0%,var(--la-accent-200) 100%);
}
.la-line__item{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--la-s6);align-items:start}
.la-line__n{
  position:relative;z-index:1;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;
  background:var(--la-accent);color:#fff;font-size:var(--la-xs);font-weight:700;
  box-shadow:0 0 0 6px var(--la-white);
}
.la-soft .la-line__n{box-shadow:0 0 0 6px #F0F5FD}
.la-line__stage{
  font-size:var(--la-xs);font-weight:700;letter-spacing:var(--la-track-label);
  text-transform:uppercase;color:var(--la-accent);
}
.la-line__title{margin-top:var(--la-s2);font-size:var(--la-d3);font-weight:700;color:var(--la-ink)}
.la-line__text{margin-top:var(--la-s3);font-size:var(--la-sm);line-height:1.7;color:var(--la-muted);max-width:56ch}
.la-soft .la-line__text{color:var(--la-body)}

/* ---------- FAQ, two-column ---------- */
.la-faq--grid{max-width:none;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));align-items:start}
.la-faq--grid .la-faq__q{grid-template-columns:auto 1fr auto;align-items:start}
.la-faq--grid .la-faq__n{
  display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:var(--la-r-sm);
  background:var(--la-accent-50);color:var(--la-accent);font-size:var(--la-xs);font-weight:700;
}
.la-faq--grid .la-faq__item[open] .la-faq__n{background:var(--la-accent);color:#fff}
.la-faq--grid .la-faq__a{padding-left:calc(var(--la-s6) + 34px + var(--la-s5))}
@media (max-width:520px){
  .la-faq--grid .la-faq__a{padding-left:var(--la-s6)}
}

/* ---------- Compact page opener ---------- */
.la-hero--page .la-hero__inner{grid-template-columns:1fr;justify-items:center;text-align:center}
.la-hero--page .la-hero__copy{max-width:52rem}
.la-hero--page .la-hero__lede{margin-inline:auto;max-width:56ch}
.la-hero--page .la-hero__actions{justify-content:center}
.la-hero--page .la-eyebrow{display:block}

/* ---------- Contact layout ----------
 * The two-up sits on Elementor's own inner wrapper, so the selector has to be
 * one class deeper than the container rule it is replacing. */
.elementor .la-contact-split > .e-con-inner{
  display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:var(--la-s8);align-items:start;
}
.elementor .la-contact-split > .e-con-inner > .elementor-widget{min-width:0;width:auto}
.la-contact-split .la-form{box-shadow:var(--la-shadow-sm)}
.la-contact-split .la-form__grid--wide{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:900px){
  .elementor .la-contact-split > .e-con-inner{grid-template-columns:1fr}
}
@media (max-width:640px){
  .la-contact-split .la-form__grid--wide{grid-template-columns:1fr}
}

/* The timeline is a narrow column by design, so it centres in its section. */
.la-line{margin-inline:auto}
.la-line__text{max-width:60ch}

/* Flex items default to min-width:auto, so a wide table refuses to shrink and
 * pushes the page sideways instead of scrolling inside its own container. */
.elementor .e-con-inner > .elementor-element{min-width:0}
.la-tbl__scroll{max-width:100%}

/* ==================== v14: alignment corrections ==================== */

/* ---------- Pricing cards ----------
 * Stretch gives the outer two an identical height; negative block margins let
 * the featured card grow past that row on both sides, so it ends up taller and
 * still optically centred against its neighbours. */
.la-plans{align-items:stretch}
.la-plan{align-content:start}
.la-plan--featured{
  transform:none;
  margin-block:calc(var(--la-s8) * -1);
  padding-block:calc(var(--la-s8) + var(--la-s8));
}
@media (max-width:900px){
  .la-plan--featured{margin-block:0;padding-block:var(--la-s8)}
}

/* ---------- Comparison table ----------
 * Column headings sit over centred values, so they have to be centred too. */
.la-tbl thead th + th,
.la-tbl tbody td{text-align:center}
.la-tbl thead th:first-child,
.la-tbl tbody th{text-align:left}
.la-tbl__yes{line-height:1;vertical-align:middle}
.la-tbl__yes::before{display:block;line-height:1}
.la-tbl__no{vertical-align:middle}

/* ---------- Feature cards ----------
 * Equal cards. Nothing is raised: promoting one of three is a claim, and these
 * three are peers. */
.la-cards{align-items:stretch}
.la-card{height:100%}
.la-card--raised{border-color:var(--la-line);box-shadow:var(--la-shadow-sm);transform:none}
.la-card--raised:hover{transform:translateY(-4px);box-shadow:var(--la-shadow-md)}
.la-card__icon i{line-height:1}

/* ---------- Timeline ----------
 * Left aligned, so the spine lines up with the heading above it. */
.la-line{margin-inline:0}

/* ---------- Icon chips: centre the glyph, not its line box ---------- */
.la-stat__icon i,.la-step__icon i,.la-figure__icon i,
.la-point__icon i,.la-detail__icon i,.la-plan__icon i,.la-cta__icon i{
  line-height:1;display:block;
}

/* ---------- Live leads board ---------- */
.la-board{display:grid;gap:var(--la-s6)}
.la-board__head{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:var(--la-s4);padding-bottom:var(--la-s5);border-bottom:1px solid var(--la-line);
}
.la-board__live{
  display:inline-flex;align-items:center;gap:var(--la-s3);
  font-size:var(--la-xs);font-weight:700;letter-spacing:var(--la-track-label);
  text-transform:uppercase;color:var(--la-ink);
}
.la-board__dot{
  width:9px;height:9px;border-radius:50%;background:var(--la-success);flex:none;
  box-shadow:0 0 0 0 rgba(30,122,82,.45);animation:la-ping 2.4s ease-out infinite;
}
@keyframes la-ping{
  0%{box-shadow:0 0 0 0 rgba(30,122,82,.45)}
  70%{box-shadow:0 0 0 9px rgba(30,122,82,0)}
  100%{box-shadow:0 0 0 0 rgba(30,122,82,0)}
}
.la-board__count{font-size:var(--la-xs);color:var(--la-muted);font-variant-numeric:tabular-nums}
.la-board__list{display:grid;gap:var(--la-s4)}
.la-lead{
  display:grid;grid-template-columns:auto minmax(0,1.35fr) repeat(3,minmax(0,1fr)) auto auto;
  gap:var(--la-s5);align-items:center;
  background:var(--la-white);border:1px solid var(--la-line);border-radius:var(--la-r-lg);
  padding:var(--la-s5) var(--la-s6);box-shadow:var(--la-shadow-sm);
  transition:transform var(--la-dur) var(--la-ease),box-shadow var(--la-dur),border-color var(--la-dur);
}
.la-lead:hover{transform:translateY(-3px);box-shadow:var(--la-shadow-md);border-color:var(--la-accent-200)}
.la-lead__av{
  display:grid;place-items:center;width:46px;height:46px;flex:none;border-radius:50%;
  background:var(--la-accent-50);color:var(--la-accent);font-size:var(--la-sm);font-weight:700;
}
.la-lead--seller .la-lead__av{background:var(--la-success-50);color:var(--la-success)}
.la-lead__who b{display:block;font-size:var(--la-base);font-weight:700;color:var(--la-ink)}
.la-lead__where{display:flex;align-items:center;gap:.4rem;margin-top:2px;font-size:var(--la-xs);color:var(--la-muted)}
.la-lead__where i{font-size:11px;color:var(--la-accent-300)}
.la-lead__cell{display:grid;gap:2px;min-width:0}
.la-lead__k{font-size:var(--la-xs);letter-spacing:var(--la-track-label);text-transform:uppercase;color:var(--la-faint);font-weight:700}
.la-lead__v{font-size:var(--la-sm);font-weight:600;color:var(--la-ink);font-variant-numeric:tabular-nums}
.la-lead__tags{display:flex;flex-wrap:wrap;gap:var(--la-s2);justify-content:flex-end}
.la-tag{
  display:inline-flex;align-items:center;gap:.4rem;padding:.32rem .7rem;border-radius:var(--la-r-pill);
  font-size:var(--la-xs);font-weight:700;white-space:nowrap;
}
.la-tag--buyer{background:var(--la-accent-50);color:var(--la-accent-700)}
.la-tag--seller{background:var(--la-success-50);color:var(--la-success)}
.la-tag--verified{background:var(--la-success-50);color:var(--la-success)}
.la-tag--qualifying{background:#FBF3E3;color:var(--la-warn)}
.la-lead__ago{font-size:var(--la-xs);color:var(--la-faint);white-space:nowrap;text-align:right}
.la-board__note{font-size:var(--la-xs);color:var(--la-faint);text-align:center}

@media (max-width:1080px){
  .la-lead{grid-template-columns:auto minmax(0,1fr) auto;row-gap:var(--la-s4)}
  .la-lead__cell{grid-column:2 / -1;display:flex;gap:var(--la-s2);align-items:baseline}
  .la-lead__cell .la-lead__k::after{content:":"}
  .la-lead__tags{grid-column:2 / -1;justify-content:flex-start}
  .la-lead__ago{grid-column:3;grid-row:1}
}
@media (max-width:560px){
  .la-lead{grid-template-columns:auto minmax(0,1fr);padding:var(--la-s5)}
  .la-lead__ago{grid-column:2;grid-row:auto;text-align:left}
}

/* ---------- Contact details as a horizontal strip ---------- */
.la-details--row{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));
  gap:var(--la-s5);margin-top:0;
}
.la-details--row .la-detail{
  background:var(--la-white);border:1px solid var(--la-line);border-radius:var(--la-r-lg);
  padding:var(--la-s6);box-shadow:var(--la-shadow-sm);align-items:start;
  transition:transform var(--la-dur) var(--la-ease),box-shadow var(--la-dur),border-color var(--la-dur);
}
.la-details--row .la-detail:hover{transform:translateY(-4px);box-shadow:var(--la-shadow-md);border-color:var(--la-accent-200)}
.la-details--row .la-detail + .la-detail{padding-top:var(--la-s6);border-top:0}
.la-details--row .la-detail__value{font-size:var(--la-sm);line-height:1.55}
.la-contact-panel--row{background:none;border:0;padding:0;box-shadow:none}
.la-contact-panel--row .la-contact-panel__note{
  margin-top:var(--la-s6);border-top:0;padding-top:0;text-align:center;
}

/* Timeline: heading holds the left column while the stages run down the right. */
.la-linewrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
.la-linewrap .la-head{margin-bottom:0;position:sticky;top:96px}
.la-linewrap .la-line{max-width:none}
@media (max-width:900px){
  .la-linewrap{grid-template-columns:1fr;gap:var(--la-s10)}
  .la-linewrap .la-head{position:static}
}

/* ==================== v15 ==================== */

/* ---------- Accordion rows: text centred against the marker ---------- */
.la-faq__q{align-items:center}
.la-faq__mark{margin-top:0}
.la-faq--grid .la-faq__q{align-items:center}

/* ---------- Ticks sit dead centre in their circle ---------- */
.la-plan__features li i,
.la-tbl__yes{
  display:inline-flex;align-items:center;justify-content:center;
  line-height:1;font-size:9px;margin-top:0;
}
.la-plan__features li{align-items:center}
.la-plan__features li i{width:20px;height:20px;flex:none}
.la-tbl__yes{width:22px;height:22px;font-size:10px}

/* ---------- Pricing: air between the opener and the cards ---------- */
.la-pricing .la-head{margin-bottom:var(--la-s20)}
.la-plans{margin-top:var(--la-s4)}
@media (max-width:900px){
  .la-pricing .la-head{margin-bottom:var(--la-s10)}
}

/* ---------- Contact tiles: centred block, even tiles ---------- */
.la-contact-panel--row{text-align:center}
.la-contact-panel--row .la-contact-panel__title{font-size:var(--la-d2);letter-spacing:var(--la-track-d)}
.la-contact-panel--row .la-contact-panel__text{
  max-width:60ch;margin-inline:auto;margin-bottom:var(--la-s12);font-size:var(--la-base);
}
.la-details--row{text-align:left}
.la-details--row .la-detail{
  grid-template-columns:1fr;justify-items:center;text-align:center;
  gap:var(--la-s4);align-content:start;padding:var(--la-s8) var(--la-s6);
}
.la-details--row .la-detail__icon{width:52px;height:52px;font-size:19px}
.la-details--row .la-detail__label{margin-bottom:var(--la-s1)}
.la-details--row .la-detail__value{font-size:var(--la-base);line-height:1.5}

/* ==================== Live lead dashboard ==================== */

.la-dash{display:grid;gap:var(--la-s6)}

.la-dash__bar{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:var(--la-s4) var(--la-s6);
}
.la-dash__badge{
  display:inline-flex;align-items:center;gap:var(--la-s3);
  padding:.5rem 1rem;border-radius:var(--la-r-pill);
  background:var(--la-accent-50);color:var(--la-accent-700);
  font-size:var(--la-xs);font-weight:700;letter-spacing:var(--la-track-label);text-transform:uppercase;
}
.la-dash__last{
  display:inline-flex;align-items:center;gap:var(--la-s3);flex-wrap:wrap;
  padding:.5rem 1.1rem;border-radius:var(--la-r-pill);
  background:var(--la-white);border:1px solid var(--la-line);box-shadow:var(--la-shadow-sm);
  font-size:var(--la-sm);color:var(--la-muted);
}
.la-dash__last b{color:var(--la-accent);font-weight:700}
.la-dash__last i{font-style:normal;color:var(--la-faint)}
.la-dash__sep{width:4px;height:4px;border-radius:50%;background:var(--la-line-2)}

.la-dash__grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:var(--la-s6);align-items:start}
@media (max-width:1024px){.la-dash__grid{grid-template-columns:1fr}}

.la-panel{
  background:var(--la-white);border:1px solid var(--la-line);border-radius:var(--la-r-xl);
  padding:var(--la-s6);box-shadow:var(--la-shadow-sm);display:grid;gap:var(--la-s5);align-content:start;
}
.la-panel__head{display:flex;align-items:center;justify-content:space-between;gap:var(--la-s4)}
.la-panel__head h3{font-size:var(--la-h4);font-weight:700;color:var(--la-ink)}
.la-panel__tag{
  display:inline-flex;align-items:center;gap:var(--la-s2);
  padding:.3rem .7rem;border-radius:var(--la-r-pill);
  background:var(--la-off);color:var(--la-muted);
  font-size:var(--la-xs);font-weight:700;white-space:nowrap;
}

/* ---- recent leads ---- */
.la-dash__leads{display:grid;gap:var(--la-s2)}
.la-drow{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--la-s4);align-items:center;
  padding:var(--la-s3);border-radius:var(--la-r-md);
  transition:background var(--la-dur);
}
.la-drow:hover{background:var(--la-off)}
.la-drow.is-new{animation:la-drop .5s var(--la-ease-out) both}
@keyframes la-drop{
  from{opacity:0;transform:translateY(-10px);background:var(--la-accent-50)}
  to{opacity:1;transform:none}
}
.la-drow__av{
  width:40px;height:40px;flex:none;border-radius:50%;overflow:hidden;
  display:grid;place-items:center;background:var(--la-accent-50);
  color:var(--la-accent);font-size:var(--la-xs);font-weight:700;
}
.la-drow__av img{width:100%;height:100%;max-width:none;object-fit:cover;display:block}
.la-drow__who{min-width:0}
.la-drow__who b{display:block;font-size:var(--la-sm);font-weight:700;color:var(--la-ink)}
.la-drow__who i{display:block;font-style:normal;font-size:var(--la-xs);color:var(--la-muted);margin-top:1px}

.la-tag--warm{background:#FBF3E3;color:var(--la-warn)}
.la-tag--ok{background:var(--la-success-50);color:var(--la-success)}

/* ---- counters ---- */
.la-dash__metrics{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--la-s3);
  padding-top:var(--la-s5);border-top:1px solid var(--la-line);
}
.la-dash__metrics li{
  display:grid;gap:2px;padding:var(--la-s4) var(--la-s2);border-radius:var(--la-r-md);
  background:var(--la-off);text-align:center;
}
.la-dash__metrics b{font-size:1.125rem;font-weight:800;color:var(--la-ink);font-variant-numeric:tabular-nums}
.la-dash__metrics span{font-size:11px;color:var(--la-muted);line-height:1.3}
@media (max-width:520px){.la-dash__metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* ---- two column footer of the map panel ---- */
.la-dash__two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--la-s6)}
.la-dash__col h4{
  font-size:var(--la-xs);font-weight:700;letter-spacing:var(--la-track-label);
  text-transform:uppercase;color:var(--la-faint);margin-bottom:var(--la-s4);
}
@media (max-width:640px){.la-dash__two{grid-template-columns:1fr}}

.la-dash__events{display:grid;gap:var(--la-s2)}
.la-devent{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--la-s3);align-items:center;
  padding:.55rem .75rem;border-radius:var(--la-r-sm);background:var(--la-off);
  font-size:var(--la-xs);color:var(--la-ink);font-weight:500;
}
.la-devent i{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;border-radius:50%;font-size:8px;line-height:1;
  background:var(--la-accent-tint);color:var(--la-accent);
}
.la-devent.is-new{animation:la-drop .5s var(--la-ease-out) both}

.la-bars{display:grid;gap:var(--la-s3)}
.la-bars li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px var(--la-s3);align-items:center}
.la-bars__k{font-size:var(--la-xs);font-weight:600;color:var(--la-ink);grid-column:1}
.la-bars__v{font-size:var(--la-xs);font-weight:700;color:var(--la-muted);grid-column:2;grid-row:1/3;align-self:center;font-variant-numeric:tabular-nums}
.la-bars__track{grid-column:1;height:6px;border-radius:3px;background:var(--la-off-2);overflow:hidden}
.la-bars__fill{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--la-accent) 0%,var(--la-accent-400) 100%)}

@media (prefers-reduced-motion:reduce){
  .la-drow.is-new,.la-devent.is-new{animation:none}
}

/* ==================== v17: outline map and dashboard balance ==================== */

/* The two panels are peers, so they share a height and each fills it. */
.la-dash__grid{align-items:stretch}
.la-panel{height:100%}
.la-dash__leads{align-content:start}
.la-dash__metrics{margin-top:auto}

/* ---------- Outline map ---------- */
.la-usmap{
  position:relative;border-radius:var(--la-r-lg);
  background:linear-gradient(180deg,#F7FAFE 0%,#EEF4FD 100%);
  border:1px solid var(--la-line);
  padding:var(--la-s6) var(--la-s5);
}
.la-usmap__svg{display:block;width:100%;height:auto;overflow:visible}
.la-usmap__s{
  fill:#DFE8F6;stroke:#F7FAFE;stroke-width:1.6;stroke-linejoin:round;
  transition:fill .45s var(--la-ease);
}
.la-usmap__s.is-live{fill:var(--la-accent-200)}
.la-usmap__s.is-hot{
  fill:var(--la-accent);
  filter:drop-shadow(0 6px 14px rgba(27,95,193,.45));
}

/* The pulse that marks where the newest lead came from. */
.la-usmap__pin{
  position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;
  background:#fff;border:3px solid var(--la-accent);z-index:2;pointer-events:none;
  box-shadow:0 0 0 0 rgba(27,95,193,.5);animation:la-ping-a 2.2s ease-out infinite;
}
@keyframes la-ping-a{
  0%{box-shadow:0 0 0 0 rgba(27,95,193,.5)}
  70%{box-shadow:0 0 0 14px rgba(27,95,193,0)}
  100%{box-shadow:0 0 0 0 rgba(27,95,193,0)}
}

.la-usmap__tip{
  position:absolute;z-index:3;transform:translate(-104%,-124%);
  display:grid;gap:2px;max-width:15rem;
  padding:var(--la-s4) var(--la-s5);border-radius:var(--la-r-md);
  background:var(--la-dark);color:#fff;pointer-events:none;
  box-shadow:0 14px 30px rgba(6,18,38,.28);
}
.la-usmap__tip.is-right{transform:translate(4%,-124%)}
.la-usmap__tip b{font-size:var(--la-sm);font-weight:700;line-height:1.2}
.la-usmap__tip span{font-size:var(--la-xs);color:var(--la-accent-300);line-height:1.3}
.la-usmap__tip[hidden],.la-usmap__pin[hidden],.la-usmap__card[hidden]{display:none}

.la-usmap__card{
  position:absolute;right:var(--la-s5);bottom:var(--la-s5);z-index:3;
  display:grid;gap:2px;max-width:16rem;
  padding:var(--la-s4) var(--la-s5);border-radius:var(--la-r-md);
  background:var(--la-white);border:1px solid var(--la-line);
  box-shadow:var(--la-shadow-md);pointer-events:none;
}
.la-usmap__card b{font-size:var(--la-sm);font-weight:700;color:var(--la-accent-700);line-height:1.25}
.la-usmap__card span{font-size:var(--la-xs);color:var(--la-muted)}

@media (max-width:560px){
  .la-usmap{padding:var(--la-s4) var(--la-s3)}
  .la-usmap__tip{max-width:11rem;padding:var(--la-s3) var(--la-s4)}
  .la-usmap__card{position:static;margin-top:var(--la-s4);max-width:none}
}
@media (prefers-reduced-motion:reduce){
  .la-usmap__pin{animation:none}
  .la-usmap__s{transition:none}
}

/* Near the top edge the callout drops below its anchor instead of clipping. */
.la-usmap__tip.is-below{transform:translate(-104%,24%)}
.la-usmap__tip.is-below.is-right{transform:translate(4%,24%)}

/*
 * Font Awesome ships `.fas{display:inline-block}` and its stylesheet loads
 * after this one, so a single-class rule loses the tie and the tick reverts to
 * an inline box that cannot centre. Matching one level deeper settles it.
 */
.la-tbl td i.la-tbl__yes{
  display:inline-flex;align-items:center;justify-content:center;
  line-height:1;vertical-align:middle;
}

/* ==================== v17: services, rail, vision, logo strip ==================== */

/* ---------- Services: the photograph carries the card ---------- */
.la-svc{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:var(--la-s6)}
/* The card cannot clip: the icon badge deliberately hangs past the image edge,
 * so the photograph clips itself instead. */
.la-svc__item{
  display:grid;grid-template-rows:auto 1fr;
  background:var(--la-white);border:1px solid var(--la-line);border-radius:var(--la-r-xl);
  box-shadow:var(--la-shadow-sm);
  transition:transform var(--la-dur) var(--la-ease),box-shadow var(--la-dur),border-color var(--la-dur);
}
.la-svc__item:hover{transform:translateY(-6px);box-shadow:var(--la-shadow-lg);border-color:var(--la-accent-200)}
.la-svc__media{
  position:relative;aspect-ratio:16/10;background:var(--la-off-2);
  border-radius:var(--la-r-xl) var(--la-r-xl) 0 0;
}
.la-svc__media img{border-radius:inherit}
.la-svc__media img{
  width:100%;height:100%;max-width:none;object-fit:cover;display:block;
  transition:transform .7s var(--la-ease-out);
}
.la-svc__item:hover .la-svc__media img{transform:scale(1.06)}
/* The badge straddles the image edge, tying photograph and copy together. */
.la-svc__icon{
  position:absolute;left:var(--la-s5);bottom:calc(var(--la-s6) * -1);
  display:grid;place-items:center;width:52px;height:52px;border-radius:var(--la-r-md);
  background:linear-gradient(140deg,var(--la-accent) 0%,var(--la-accent-400) 100%);
  color:#fff;font-size:20px;box-shadow:var(--la-shadow-md);
}
.la-svc__icon i{line-height:1}
.la-svc__body{padding:calc(var(--la-s8) + var(--la-s3)) var(--la-s6) var(--la-s6);display:grid;gap:var(--la-s3);align-content:start}
.la-svc__title{font-size:var(--la-d3);font-weight:700;color:var(--la-ink)}
.la-svc__text{font-size:var(--la-sm);line-height:1.65;color:var(--la-muted)}
.la-soft .la-svc__text{color:var(--la-body)}
.la-svc__link{
  display:inline-flex;align-items:center;gap:var(--la-s2);margin-top:var(--la-s2);white-space:nowrap;
  font-size:var(--la-xs);font-weight:700;letter-spacing:var(--la-track-label);
  text-transform:uppercase;color:var(--la-accent);
}
.la-svc__link i{font-size:11px;line-height:1;transition:transform var(--la-dur) var(--la-ease)}
.la-svc__link:hover i{transform:translateX(3px)}

/* ---------- Photo rail ---------- */
.la-rail{--la-rail-h:210px;display:grid;gap:var(--la-s5)}
.la-rail__track{
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.la-rail__row{display:flex;width:max-content;animation:la-drift 90s linear infinite}
.la-rail__row--b{animation-direction:reverse}
.la-rail__track:hover .la-rail__row{animation-play-state:paused}
.la-rail__set{display:flex;gap:var(--la-s5);padding-right:var(--la-s5)}
.la-rail__pic{
  flex:none;height:var(--la-rail-h);aspect-ratio:4/3;margin:0;
  border-radius:var(--la-r-lg);overflow:hidden;background:var(--la-off-2);
  box-shadow:var(--la-shadow-sm);
}
.la-rail__pic img{width:100%;height:100%;max-width:none;object-fit:cover;display:block}
@media (max-width:640px){.la-rail{--la-rail-h:150px}}
@media (prefers-reduced-motion:reduce){
  .la-rail__row{animation:none;flex-wrap:wrap;width:100%}
  .la-rail__set:nth-child(2){display:none}
  .la-rail__set{flex-wrap:wrap}
}

/* ---------- Vision and mission ---------- */
.la-vm{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,4rem);align-items:center}
.la-vm--right .la-vm__media{order:2}
.la-vm__media{border-radius:var(--la-r-xl);overflow:hidden;box-shadow:var(--la-shadow-lg);aspect-ratio:4/3}
.la-vm__media img{width:100%;height:100%;max-width:none;object-fit:cover;display:block}
.la-vm__list{display:grid;gap:var(--la-s6);min-width:0}
.la-vm__item{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--la-s5);align-items:start;
  background:var(--la-white);border:1px solid var(--la-line);border-radius:var(--la-r-lg);
  padding:var(--la-s6);box-shadow:var(--la-shadow-sm);
  transition:transform var(--la-dur) var(--la-ease),box-shadow var(--la-dur);
}
.la-vm__item:hover{transform:translateY(-4px);box-shadow:var(--la-shadow-md)}
.la-vm__icon{
  display:grid;place-items:center;width:52px;height:52px;border-radius:var(--la-r-md);font-size:20px;
  background:linear-gradient(140deg,var(--la-accent) 0%,var(--la-accent-400) 100%);color:#fff;
}
.la-vm__icon i{line-height:1}
.la-vm__label{font-size:var(--la-d3);font-weight:700;color:var(--la-ink)}
.la-vm__text{margin-top:var(--la-s3);font-size:var(--la-sm);line-height:1.7;color:var(--la-muted)}
.la-soft .la-vm__text{color:var(--la-body)}
@media (max-width:860px){
  .la-vm{grid-template-columns:1fr}
  .la-vm--right .la-vm__media{order:0}
}

/* ---------- Brokerage strip: one fixed logo height ---------- */
.la-partners__track{
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.la-partners__row{display:flex;width:max-content;animation:la-drift 46s linear infinite}
.la-partners__track:hover .la-partners__row{animation-play-state:paused}
.la-partners__set{display:flex;align-items:center;gap:clamp(2.5rem,6vw,5rem);padding-right:clamp(2.5rem,6vw,5rem)}
.la-partners__item{
  flex:none;display:grid;place-items:center;height:44px;
  opacity:.72;transition:opacity var(--la-dur);
}
.la-partners__item:hover{opacity:1}
/* Every mark is normalised to the same height so none dominates the row. */
.la-partners__item img{height:100%;width:auto;max-width:none;object-fit:contain;display:block}
.la-partners__word{
  font-size:clamp(1rem,1.5vw,1.25rem);font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--la-muted);white-space:nowrap;
}
.la-ground--dark .la-partners__word{color:var(--la-on-dark)}
.la-partners__empty{
  margin-top:var(--la-s6);padding:var(--la-s5) var(--la-s6);border-radius:var(--la-r-lg);
  background:var(--la-accent-50);border:1px solid var(--la-accent-100);
  font-size:var(--la-sm);color:var(--la-ink);
}
@media (prefers-reduced-motion:reduce){
  .la-partners__row{animation:none;flex-wrap:wrap;width:100%;justify-content:center}
  .la-partners__set:nth-child(2){display:none}
}

/*
 * Grid items default to min-width:auto, so the media box was sizing to the
 * photograph's intrinsic width and spilling past the card. The card's single
 * column is pinned to minmax(0,1fr) so the image resolves against the column.
 */
.la-svc__item{grid-template-columns:minmax(0,1fr)}
.la-svc__media{min-width:0}
.la-svc__media img{width:100%;height:100%;object-fit:cover}

/*
 * The photograph gets its own clipping frame inside the media box. The badge is
 * a sibling, so it can still hang past the edge, and a slow or missing image
 * can never push the card taller than its neighbours.
 */
.la-svc__frame{
  display:block;position:absolute;inset:0;overflow:hidden;
  border-radius:var(--la-r-xl) var(--la-r-xl) 0 0;background:var(--la-off-2);
}
.la-svc__frame img{width:100%;height:100%;max-width:none;object-fit:cover;display:block}
.la-svc__media{position:relative;aspect-ratio:16/10;min-width:0}

/* ==================== Plan switch ==================== */

.la-switch{display:grid;gap:var(--la-s10);justify-items:center}
.la-switch__bar{
  display:inline-flex;gap:4px;padding:5px;border-radius:var(--la-r-pill);
  background:var(--la-white);border:1px solid var(--la-line);box-shadow:var(--la-shadow-sm);
}
.la-switch__opt{position:relative;cursor:pointer}
.la-switch__opt input{position:absolute;inset:0;opacity:0;cursor:pointer}
.la-switch__opt span{
  display:block;padding:.65rem 1.5rem;border-radius:var(--la-r-pill);
  font-size:var(--la-sm);font-weight:600;color:var(--la-muted);white-space:nowrap;
  transition:background var(--la-dur),color var(--la-dur);
}
.la-switch__opt input:checked + span{background:var(--la-accent);color:#fff}
.la-switch__opt input:focus-visible + span{outline:2px solid var(--la-accent);outline-offset:2px}
.la-switch__opt:hover input:not(:checked) + span{color:var(--la-ink)}
.la-switch__panel{width:100%}
.la-switch__panel[hidden]{display:none}
.la-switch__note{font-size:var(--la-xs);color:var(--la-faint);text-align:center;max-width:64ch}

/* The three figures an agent compares before reading the feature list. */
.la-plan__facts{
  display:grid;gap:var(--la-s3);margin-top:var(--la-s5);
  padding-top:var(--la-s5);border-top:1px solid var(--la-line);
}
.la-plan__facts > div{display:flex;align-items:baseline;justify-content:space-between;gap:var(--la-s4)}
.la-plan__facts dt{font-size:var(--la-xs);color:var(--la-muted)}
.la-plan__facts dd{
  margin:0;font-size:var(--la-sm);font-weight:700;color:var(--la-ink);
  text-align:right;font-variant-numeric:tabular-nums;
}
.la-plan--featured .la-plan__facts{border-top-color:var(--la-accent-200)}

/* A single team plan should not stretch across the full row. */
.la-switch__panel .la-plan{max-width:none}
.la-switch__panel:has(> .la-plan:only-child){max-width:26rem;margin-inline:auto}

/* ==================== Image sizing vs Elementor ====================
 * Elementor ships `.elementor img{height:auto}` and its stylesheet loads after
 * this one, so every single-class rule that sets an image height loses the tie
 * and the picture falls back to its intrinsic size. Each of these images is
 * sized by its container, so the rule is re-asserted one level deeper.
 */
.elementor .la-post__media img,
.elementor .la-review__av img,
.elementor .la-wall__av img,
.elementor .la-drow__av img,
.elementor .la-rail__pic img,
.elementor .la-vm__media img,
.elementor .la-svc__frame img,
.elementor .la-svc__media img{
  width:100%;height:100%;max-width:none;object-fit:cover;display:block;
}

/* Logos keep their aspect ratio and are normalised to one height, so no mark
 * dominates the row. Shown in full colour: these are the client's partners. */
.elementor .la-partners__item img{
  height:100%;width:auto;max-width:none;object-fit:contain;display:block;
  filter:none;opacity:1;
}
.la-partners__item{opacity:1}
.la-partners__item:hover{opacity:.75}

/*
 * A percentage height needs a definite containing block. These logos sit in a
 * content-sized flex row, so the height is indefinite during intrinsic sizing
 * and `height:100%` collapses to `auto` — the logo then renders at its full
 * 300px. An explicit height is both the fix and the requirement: every mark
 * is normalised to the same height whatever its source file measures.
 */
.elementor .la-partners__item img{
  height:clamp(30px,3.4vw,46px);width:auto;max-width:170px;
  object-fit:contain;display:block;
}
.la-partners__item{height:auto;min-height:0}

/*
 * Trimmed logos range from square to 6.8:1, so a fixed height alone would make
 * the wordmarks tower over the badges. Every mark gets the same box instead and
 * scales inside it, which is what makes the row read as one row. Explicit sizes
 * rather than percentages: the containing block here is content-sized, so a
 * percentage would resolve to auto.
 */
.la-partners__item{
  width:clamp(112px,11vw,152px);height:clamp(34px,3.8vw,48px);
  display:grid;place-items:center;
}
.elementor .la-partners__item img{
  width:100%;height:100%;max-width:none;
  object-fit:contain;object-position:center;display:block;
}

/*
 * The marquee row is width:max-content, so intrinsic sizing runs and a
 * percentage height against the item resolves to auto — the logo then takes
 * its natural height and the track clips it. Both axes are stated outright.
 */
.elementor .la-partners__item img{
  width:clamp(112px,11vw,152px);
  height:clamp(34px,3.8vw,48px);
  max-width:none;object-fit:contain;object-position:center;display:block;
}

/* ==================== Consent gates ==================== */

.la-consent{display:grid;gap:var(--la-s4);margin:var(--la-s6) 0}
.la-check{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--la-s4);
  align-items:start;cursor:pointer;font-size:var(--la-sm);line-height:1.6;color:var(--la-body);
}
.la-check input{
  width:20px;height:20px;margin:2px 0 0;flex:none;cursor:pointer;
  accent-color:var(--la-accent);
}
.la-check__links{display:block;margin-top:2px;font-size:var(--la-xs)}
.la-check__links a{color:var(--la-accent);text-decoration:underline}
.la-check__links a:hover{color:var(--la-accent-600)}
.la-ground--dark .la-form .la-check{color:var(--la-body)}
.la-form__submit[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
.la-req{color:var(--la-error)}

/* ==================== Video reviews ==================== */

.la-vid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:var(--la-s6)}
.la-vid__item{
  display:grid;grid-template-rows:auto 1fr;min-width:0;
  background:var(--la-white);border:1px solid var(--la-line);border-radius:var(--la-r-xl);
  overflow:hidden;box-shadow:var(--la-shadow-sm);
  transition:transform var(--la-dur) var(--la-ease),box-shadow var(--la-dur);
}
.la-vid__item:hover{transform:translateY(-5px);box-shadow:var(--la-shadow-md)}
.la-vid__frame{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--la-ink);min-width:0}
.elementor .la-vid__frame img{width:100%;height:100%;max-width:none;object-fit:cover;display:block}
.la-vid__frame::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(6,18,38,0) 45%,rgba(6,18,38,.55) 100%);
}
.la-vid__play{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;
  width:64px;height:64px;border-radius:50%;border:0;cursor:pointer;
  display:grid;place-items:center;font-size:19px;
  background:rgba(255,255,255,.94);color:var(--la-accent);
  box-shadow:0 10px 30px rgba(6,18,38,.35);
  transition:transform var(--la-dur) var(--la-ease),background var(--la-dur);
}
.la-vid__play i{line-height:1;margin-left:3px}
.la-vid__play:hover{transform:translate(-50%,-50%) scale(1.08);background:#fff}
.la-vid__play:focus-visible{outline:3px solid var(--la-accent-300);outline-offset:3px}
.la-vid__soon{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;
  padding:.45rem 1rem;border-radius:var(--la-r-pill);
  background:rgba(255,255,255,.9);color:var(--la-ink);
  font-size:var(--la-xs);font-weight:700;
}
.la-vid__len{
  position:absolute;right:var(--la-s4);bottom:var(--la-s4);z-index:2;
  padding:.2rem .55rem;border-radius:var(--la-r-sm);
  background:rgba(6,18,38,.72);color:#fff;
  font-size:var(--la-xs);font-weight:600;font-variant-numeric:tabular-nums;
}
.la-vid__player{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.la-vid__body{padding:var(--la-s6);display:grid;gap:var(--la-s4);align-content:start}
.la-vid__quote{margin:0;font-size:var(--la-sm);line-height:1.7;color:var(--la-body)}
.la-vid__by b{display:block;font-size:var(--la-sm);color:var(--la-ink)}
.la-vid__by i{display:block;font-style:normal;font-size:var(--la-xs);color:var(--la-muted);margin-top:2px}

/*
 * Video posters are square portraits, so a 4:3 frame crops through the face.
 * The frame matches the source instead, and four cards sit on one row rather
 * than wrapping three-plus-one.
 */
.la-vid{grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr))}
.la-vid__frame{aspect-ratio:1/1}
@media (min-width:1100px){
  .la-vid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:1099px) and (min-width:640px){
  .la-vid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* The badge sits clear of the face rather than across it. */
.la-vid__soon{top:auto;bottom:var(--la-s4);left:var(--la-s4);transform:none}
