/* ==========================================================================
   Starlink Engineering: public site (home, about, contact)
   Loaded by resources/views/layouts/public.blade.php after Bootstrap.
   Every class is prefixed `lp-` so nothing leaks into the employee portal.
   ========================================================================== */

/* ---------- Design tokens ---------- */
:root {
    --lp-brand: #01803d;          /* logo green */
    --lp-brand-600: #016a33;
    --lp-brand-700: #014b25;
    --lp-brand-100: #d2eedd;
    --lp-brand-50: #eaf6ef;
    --lp-accent: #4ade80;         /* highlight on dark backgrounds */
    --lp-star: #e2232a;           /* logo star red, used sparingly */

    --lp-dark: #04241a;           /* hero, dark sections, footer */
    --lp-dark-2: #083526;
    --lp-ink: #0f1f17;            /* headings */
    --lp-text: #34423b;           /* body copy */
    --lp-muted: #56655e;          /* secondary copy, AA on white and surface */
    --lp-line: #e1e8e4;
    --lp-surface: #f4f7f5;
    --lp-on-dark: #eef5f1;
    --lp-on-dark-muted: #b3c6bb;  /* AA on --lp-dark */

    --lp-radius-sm: 8px;
    --lp-radius: 14px;
    --lp-radius-lg: 20px;
    --lp-shadow-sm: 0 1px 2px rgba(4, 36, 26, .05), 0 2px 6px rgba(4, 36, 26, .06);
    --lp-shadow: 0 12px 32px -14px rgba(4, 36, 26, .22);
    --lp-shadow-lg: 0 32px 64px -24px rgba(0, 0, 0, .55);

    --lp-font: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    --lp-header-h: 72px;
    --lp-gutter: clamp(16px, 4vw, 32px);
    --lp-section-y: clamp(64px, 9vw, 112px);
    --lp-focus: var(--lp-brand);
}

/* ---------- Base ---------- */
html { scroll-padding-top: calc(var(--lp-header-h) + 16px); }
@media (prefers-reduced-motion: no-preference) {
    html { scroll-behavior: smooth; }
}

body.lp-site {
    margin: 0;
    font-family: var(--lp-font);
    font-size: 1rem;
    line-height: 1.6;
    color: var(--lp-text);
    background: #fff;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}
.lp-site img { max-width: 100%; height: auto; }
.lp-site a { color: var(--lp-brand); }
.lp-site a:hover { color: var(--lp-brand-600); }
.lp-site :focus-visible {
    outline: 3px solid var(--lp-focus);
    outline-offset: 3px;
    border-radius: 4px;
}
.lp-hero, .lp-page-header, .lp-section--dark, .lp-cta, .lp-footer { --lp-focus: var(--lp-accent); }
#main:focus { outline: none; }

.lp-container {
    width: 100%;
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: var(--lp-gutter);
}

.lp-skip-link {
    position: absolute;
    left: 16px;
    top: -100px;
    z-index: 2000;
    padding: 10px 16px;
    border-radius: var(--lp-radius-sm);
    background: var(--lp-brand);
    color: #fff !important;
    font-weight: 600;
    text-decoration: none;
}
.lp-skip-link:focus { top: 12px; }

/* ---------- Buttons & links ---------- */
.lp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    padding: .75rem 1.25rem;
    border: 1.5px solid transparent;
    border-radius: 10px;
    font-size: .95rem;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.lp-btn--sm { padding: .55rem 1rem; font-size: .9rem; }
.lp-btn--lg { padding: .9rem 1.5rem; font-size: 1rem; }

.lp-site .lp-btn--primary { background: var(--lp-brand); color: #fff; box-shadow: 0 6px 16px -8px rgba(1, 128, 61, .7); }
.lp-site .lp-btn--primary:hover { background: var(--lp-brand-600); color: #fff; }

.lp-site .lp-btn--ghost { background: #fff; color: var(--lp-ink); border-color: var(--lp-line); }
.lp-site .lp-btn--ghost:hover { border-color: var(--lp-brand); color: var(--lp-brand); }

.lp-site .lp-btn--outline-light { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .45); }
.lp-site .lp-btn--outline-light:hover { background: rgba(255, 255, 255, .1); border-color: #fff; color: #fff; }

.lp-site .lp-btn--light { background: #fff; color: var(--lp-brand-700); }
.lp-site .lp-btn--light:hover { background: var(--lp-brand-50); color: var(--lp-brand-700); }

.lp-link {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-weight: 600;
    text-decoration: none;
}
.lp-link i { transition: transform .18s ease; }
.lp-link:hover i { transform: translateX(4px); }
.lp-link:hover { text-decoration: underline; text-underline-offset: 4px; }

/* ---------- Header ---------- */
.lp-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    background: rgba(255, 255, 255, .97);
    border-bottom: 1px solid transparent;
    transition: border-color .2s ease, box-shadow .2s ease;
}
@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    .lp-header { background: rgba(255, 255, 255, .92); -webkit-backdrop-filter: saturate(180%) blur(14px); backdrop-filter: saturate(180%) blur(14px); }
}
.lp-header.is-scrolled { border-bottom-color: var(--lp-line); box-shadow: 0 6px 20px -16px rgba(4, 36, 26, .5); }

.lp-header__inner {
    display: flex;
    align-items: center;
    gap: 24px;
    min-height: var(--lp-header-h);
}

.lp-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-right: auto;
    text-decoration: none;
}
.lp-brand__mark { width: 40px; height: 40px; border-radius: 9px; flex-shrink: 0; }
.lp-brand__name { font-size: 1.05rem; font-weight: 800; letter-spacing: -.01em; color: var(--lp-ink); line-height: 1.15; }
.lp-brand__suffix { font-weight: 500; color: var(--lp-muted); }
.lp-brand--on-dark .lp-brand__name { color: #fff; }

.lp-nav-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--lp-line);
    border-radius: 10px;
    background: #fff;
    color: var(--lp-ink);
    font-size: 1.1rem;
}

.lp-nav { display: flex; align-items: center; gap: 28px; }
.lp-nav__list { display: flex; gap: 4px; margin: 0; padding: 0; list-style: none; }
.lp-site .lp-nav__link {
    position: relative;
    display: block;
    padding: .5rem .75rem;
    border-radius: 8px;
    color: var(--lp-ink);
    font-size: .95rem;
    font-weight: 500;
    text-decoration: none;
}
.lp-site .lp-nav__link:hover { color: var(--lp-brand); background: var(--lp-brand-50); }
.lp-site .lp-nav__link[aria-current="page"] { color: var(--lp-brand); font-weight: 600; }
.lp-nav__actions { display: flex; align-items: center; gap: 10px; }

@media (max-width: 991.98px) {
    .lp-nav-toggle { display: inline-flex; }
    .no-js .lp-nav-toggle { display: none; }
    .lp-header__inner { flex-wrap: wrap; }
    .lp-nav {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
        width: 100%;
        padding: 8px 0 20px;
    }
    .js .lp-nav { display: none; }
    .js .lp-header.is-open .lp-nav { display: flex; }
    .lp-header.is-open { background: #fff; border-bottom-color: var(--lp-line); box-shadow: 0 12px 24px -16px rgba(4, 36, 26, .45); }
    .lp-nav__list { flex-direction: column; gap: 2px; }
    .lp-site .lp-nav__link { padding: .75rem .5rem; font-size: 1rem; }
    .lp-nav__actions { flex-direction: column; align-items: stretch; }
    .lp-nav__actions .lp-btn { padding-block: .8rem; font-size: 1rem; }
}
@media (max-width: 399.98px) {
    .lp-brand__suffix { display: none; }
}

/* ---------- Shared type ---------- */
.lp-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    margin: 0 0 24px;
    padding: .4rem .9rem;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 999px;
    background: rgba(255, 255, 255, .06);
    color: var(--lp-on-dark);
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.lp-eyebrow__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--lp-accent);
    box-shadow: 0 0 0 4px rgba(74, 222, 128, .2);
}

.lp-kicker {
    margin: 0 0 12px;
    color: var(--lp-brand);
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.lp-heading { max-width: 720px; margin-bottom: clamp(36px, 5vw, 56px); }
.lp-heading--center { margin-inline: auto; text-align: center; }
.lp-heading__title {
    margin: 0;
    color: var(--lp-ink);
    font-size: clamp(1.75rem, 1.2rem + 2vw, 2.5rem);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -.022em;
}
.lp-heading__lead { margin: 16px 0 0; color: var(--lp-muted); font-size: 1.075rem; }
.lp-heading--on-dark .lp-kicker { color: var(--lp-accent); }
.lp-heading--on-dark .lp-heading__title { color: #fff; }
.lp-heading--on-dark .lp-heading__lead { color: var(--lp-on-dark-muted); }

/* ---------- Dark backdrops (hero, page header) ---------- */
.lp-hero,
.lp-page-header {
    position: relative;
    overflow: hidden;
    background-color: var(--lp-dark);
    background-image:
        radial-gradient(60% 80% at 100% 0%, rgba(1, 128, 61, .45), transparent 60%),
        radial-gradient(50% 60% at 0% 100%, rgba(1, 128, 61, .25), transparent 60%),
        linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
    background-size: auto, auto, 48px 48px, 48px 48px;
    color: var(--lp-on-dark);
}

/* ---------- Hero ---------- */
.lp-hero { padding: clamp(40px, 6vw, 80px) 0 clamp(56px, 7vw, 88px); }
.lp-hero__grid { display: grid; gap: clamp(48px, 6vw, 72px); align-items: center; }
@media (min-width: 992px) {
    .lp-hero__grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
}

.lp-hero__title {
    margin: 0;
    color: #fff;
    font-size: clamp(2.1rem, 1.3rem + 3vw, 3.4rem);
    font-weight: 800;
    line-height: 1.07;
    letter-spacing: -.03em;
    text-wrap: balance;
}
.lp-hero__highlight { color: var(--lp-accent); }
.lp-hero__lead {
    max-width: 36em;
    margin: 20px 0 0;
    color: var(--lp-on-dark-muted);
    font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem);
    line-height: 1.65;
}
.lp-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.lp-hero__note { margin: 20px 0 0; color: var(--lp-on-dark-muted); font-size: .95rem; }
.lp-site .lp-hero__note a { color: #fff; font-weight: 600; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .4); text-underline-offset: 4px; }
.lp-site .lp-hero__note a:hover { text-decoration-color: #fff; }

.lp-hero__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 36px 0 0;
    padding: 24px 0 0;
    border-top: 1px solid rgba(255, 255, 255, .12);
    list-style: none;
}
.lp-stat { display: flex; flex-direction: column; gap: 2px; }
.lp-stat__value { color: #fff; font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.1rem); font-weight: 800; line-height: 1.1; letter-spacing: -.02em; }
.lp-stat__label { color: var(--lp-on-dark-muted); font-size: .85rem; }

.lp-hero__media { position: relative; max-width: 560px; justify-self: center; width: 100%; }
.lp-hero__media::before {
    content: "";
    position: absolute;
    inset: 28px -18px -18px 28px;
    border-radius: 24px;
    background: linear-gradient(135deg, rgba(1, 128, 61, .9), rgba(74, 222, 128, .25));
}
.lp-hero__img {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: var(--lp-radius-lg);
    box-shadow: var(--lp-shadow-lg);
}
.lp-hero__badge {
    position: absolute;
    left: -24px;
    bottom: 32px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 18px 12px 12px;
    border-radius: var(--lp-radius);
    background: #fff;
    color: var(--lp-muted);
    box-shadow: var(--lp-shadow);
    font-size: .85rem;
    line-height: 1.3;
}
.lp-hero__badge strong { color: var(--lp-ink); font-size: .95rem; }
.lp-hero__badge-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: var(--lp-brand-50);
    color: var(--lp-brand);
    font-size: 1.1rem;
}
@media (max-width: 991.98px) {
    .lp-hero__media::before { inset: 20px -10px -12px 20px; }
    .lp-hero__badge { left: 12px; bottom: -20px; }
}
@media (max-width: 575.98px) {
    .lp-cta__actions { width: 100%; }
    .lp-hero__actions .lp-btn, .lp-cta__actions .lp-btn { flex: 1 1 100%; }
    .lp-eyebrow { font-size: .7rem; letter-spacing: .05em; padding: .35rem .75rem; }
    .lp-hero__stats { gap: 12px; }
    .lp-stat__label { font-size: .8rem; }
}

/* ---------- Partner logos ---------- */
.lp-logos { padding: 40px 0 44px; border-bottom: 1px solid var(--lp-line); }
.lp-logos__title {
    margin: 0 0 28px;
    color: var(--lp-muted);
    font-size: .8rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-align: center;
    text-transform: uppercase;
}
.lp-logos__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 24px clamp(28px, 5vw, 56px);
    margin: 0;
    padding: 0;
    list-style: none;
}
.lp-logos__item img {
    display: block;
    width: auto;
    height: auto;
    max-height: 44px;
    max-width: 124px;
    filter: grayscale(1);
    opacity: .72;
    transition: filter .2s ease, opacity .2s ease;
}
.lp-logos__item img:hover { filter: none; opacity: 1; }
@media (max-width: 575.98px) {
    .lp-logos__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); justify-items: center; gap: 24px 12px; }
    .lp-logos__item img { max-height: 36px; max-width: 72px; }
}

/* ---------- Sections ---------- */
.lp-section { padding: var(--lp-section-y) 0; }
.lp-section--tinted { background: var(--lp-surface); }
.lp-section--dark { background: var(--lp-dark); color: var(--lp-on-dark); }

.lp-grid { display: grid; gap: 24px; }
@media (min-width: 576px) { .lp-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .lp-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; } }
@media (min-width: 640px) { .lp-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 992px) { .lp-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ---------- Feature (value pillar) ---------- */
.lp-feature { padding-top: 24px; border-top: 2px solid var(--lp-line); }
.lp-feature__icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--lp-brand-50);
    color: var(--lp-brand);
    font-size: 1.2rem;
}
.lp-feature__title { margin: 20px 0 8px; color: var(--lp-ink); font-size: 1.125rem; font-weight: 700; line-height: 1.3; }
.lp-feature__text { margin: 0; color: var(--lp-muted); font-size: .975rem; }

@media (max-width: 575.98px) {
    .lp-feature { display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: 16px; padding-top: 20px; }
    .lp-feature__icon { grid-row: span 2; width: 44px; height: 44px; font-size: 1.05rem; }
    .lp-feature__title { margin: 0 0 4px; }
}

/* ---------- Service card ---------- */
.lp-service {
    height: 100%;
    padding: 28px;
    border: 1px solid var(--lp-line);
    border-radius: var(--lp-radius);
    background: #fff;
    box-shadow: var(--lp-shadow-sm);
}
.lp-service__icon {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 12px;
    background: var(--lp-brand);
    color: #fff;
    font-size: 1.25rem;
}
.lp-service__title { margin: 22px 0 8px; color: var(--lp-ink); font-size: 1.15rem; font-weight: 700; line-height: 1.3; }
.lp-service__text { margin: 0; color: var(--lp-muted); font-size: .95rem; }

@media (max-width: 575.98px) {
    .lp-service { display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: 16px; padding: 20px; }
    .lp-service__icon { grid-row: span 2; width: 44px; height: 44px; font-size: 1.05rem; }
    .lp-service__title { margin: 0 0 4px; font-size: 1.075rem; }
}

/* ---------- Process ---------- */
.lp-process {
    display: grid;
    gap: 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.lp-step {
    position: relative;
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    column-gap: 20px;
}
.lp-step__num {
    grid-row: span 2;
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    border: 2px solid var(--lp-brand);
    border-radius: 50%;
    background: #fff;
    color: var(--lp-brand);
    font-weight: 800;
    letter-spacing: .02em;
}
.lp-step__title { margin: 4px 0 6px; color: var(--lp-ink); font-size: 1.15rem; font-weight: 700; }
.lp-step__text { margin: 0; color: var(--lp-muted); font-size: .975rem; }
.lp-step:not(:last-child)::after {
    content: "";
    position: absolute;
    left: 27px;
    top: 68px;
    bottom: -12px;
    width: 2px;
    background: repeating-linear-gradient(to bottom, var(--lp-brand-100) 0 6px, transparent 6px 12px);
}
@media (min-width: 992px) {
    .lp-process { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
    .lp-step { grid-template-columns: 1fr; }
    .lp-step__num { grid-row: auto; margin-bottom: 20px; }
    .lp-step:not(:last-child)::after {
        left: 72px;
        right: -16px;
        top: 27px;
        bottom: auto;
        width: auto;
        height: 2px;
        background: repeating-linear-gradient(to right, var(--lp-brand-100) 0 6px, transparent 6px 12px);
    }
}

/* ---------- Projects ---------- */
.lp-projects {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 170px;
    gap: 12px;
}
.lp-project {
    position: relative;
    margin: 0;
    overflow: hidden;
    border-radius: var(--lp-radius);
    background: var(--lp-dark-2);
}
.lp-project img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}
.lp-project--featured { grid-column: span 2; grid-row: span 2; }
.lp-project:last-child:nth-child(even) { grid-column: span 2; }
.lp-project__caption {
    position: absolute;
    inset: auto 0 0 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 48px 14px 12px;
    background: linear-gradient(to top, rgba(4, 36, 26, .95) 0%, rgba(4, 36, 26, .65) 55%, rgba(4, 36, 26, 0) 100%);
    color: #fff;
}
.lp-project__category { color: var(--lp-accent); font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.lp-project__title { font-size: .95rem; font-weight: 700; line-height: 1.3; }
@media (max-width: 767.98px) {
    .lp-project:not(.lp-project--featured) .lp-project__category { display: none; }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
    .lp-project:hover img { transform: scale(1.04); }
}
@media (min-width: 768px) {
    .lp-projects { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 220px; gap: 16px; }
    .lp-project:last-child:nth-child(even) { grid-column: auto; }
    .lp-project__caption { padding: 64px 20px 18px; }
    .lp-project__title { font-size: 1.05rem; }
}
@media (min-width: 1200px) {
    .lp-projects { grid-auto-rows: 250px; }
}

/* ---------- Split (text + image) ---------- */
.lp-split { display: grid; gap: clamp(40px, 6vw, 72px); align-items: center; }
@media (min-width: 992px) { .lp-split { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.lp-split__media img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: var(--lp-radius-lg);
    box-shadow: var(--lp-shadow);
}
.lp-split__content .lp-heading { margin-bottom: 20px; }
.lp-split__content > p { margin: 0 0 20px; font-size: 1.05rem; }

.lp-checklist { margin: 0 0 28px; padding: 0; list-style: none; }
.lp-checklist li { display: flex; gap: 12px; align-items: baseline; margin: 10px 0; color: var(--lp-ink); font-weight: 500; }
.lp-checklist i { color: var(--lp-brand); }

/* ---------- CTA band ---------- */
.lp-cta {
    padding: clamp(48px, 6vw, 72px) 0;
    background: linear-gradient(115deg, var(--lp-brand-700) 0%, var(--lp-brand-600) 100%);
    color: #fff;
}
.lp-cta__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px; }
.lp-cta__copy { max-width: 640px; }
.lp-cta__title { margin: 0; color: #fff; font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.1rem); font-weight: 800; line-height: 1.2; letter-spacing: -.02em; }
.lp-cta__text { margin: 12px 0 0; color: #fff; font-size: 1.075rem; }
.lp-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- Employee portal ---------- */
.lp-portal__card {
    display: grid;
    gap: 32px;
    padding: clamp(28px, 4vw, 48px);
    border: 1px solid var(--lp-line);
    border-radius: var(--lp-radius-lg);
    background: #fff;
    box-shadow: var(--lp-shadow-sm);
}
@media (min-width: 992px) {
    .lp-portal__card { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 56px; align-items: center; }
}
.lp-portal__title { margin: 0; color: var(--lp-ink); font-size: clamp(1.5rem, 1.2rem + 1vw, 1.9rem); font-weight: 800; letter-spacing: -.02em; }
.lp-portal__text { margin: 12px 0 0; color: var(--lp-muted); font-size: 1.05rem; }
.lp-portal__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.lp-portal__help { padding: 24px; border-radius: var(--lp-radius); background: var(--lp-surface); }
.lp-portal__help-title { display: flex; align-items: center; gap: 10px; margin: 0 0 8px; color: var(--lp-ink); font-size: 1rem; font-weight: 700; }
.lp-portal__help-title i { color: var(--lp-brand); }
.lp-portal__lines { margin: 0; padding: 0; list-style: none; }
.lp-portal__lines li {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 4px 16px;
    padding: 10px 0;
    border-bottom: 1px dashed var(--lp-line);
}
.lp-portal__lines li:last-child { border-bottom: 0; }
.lp-portal__lines span { color: var(--lp-muted); font-weight: 600; }
.lp-site .lp-portal__lines a { color: var(--lp-ink); font-weight: 600; text-decoration: none; }
.lp-site .lp-portal__lines a:hover { color: var(--lp-brand); text-decoration: underline; }
.lp-portal__hint { margin: 12px 0 0; color: var(--lp-muted); font-size: .875rem; }

/* ---------- Inner page header ---------- */
.lp-page-header { padding: clamp(56px, 8vw, 96px) 0; }
.lp-page-header__title {
    max-width: 20em;
    margin: 0;
    color: #fff;
    font-size: clamp(2rem, 1.3rem + 2.8vw, 3.25rem);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -.028em;
    text-wrap: balance;
}
.lp-page-header__lead { max-width: 40em; margin: 20px 0 0; color: var(--lp-on-dark-muted); font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem); }

/* ---------- Info card (contact) ---------- */
.lp-info {
    display: flex;
    gap: 18px;
    height: 100%;
    padding: 26px;
    border: 1px solid var(--lp-line);
    border-radius: var(--lp-radius);
    background: #fff;
}
.lp-info__icon {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: var(--lp-brand-50);
    color: var(--lp-brand);
    font-size: 1.1rem;
}
.lp-info__title { margin: 0 0 8px; color: var(--lp-ink); font-size: 1.075rem; font-weight: 700; }
.lp-info__body { min-width: 0; color: var(--lp-muted); }
.lp-info__body p, .lp-info__body address { margin: 0 0 8px; font-style: normal; }
.lp-info__body a { font-weight: 600; overflow-wrap: anywhere; }

/* ---------- Prose / figures (about) ---------- */
.lp-prose { max-width: 68ch; }
.lp-prose p { margin: 0 0 18px; font-size: 1.05rem; }
.lp-figure { margin: 0; }
.lp-figure img { display: block; width: 100%; border: 1px solid var(--lp-line); border-radius: var(--lp-radius); background: #fff; }
.lp-figure figcaption { margin-top: 12px; color: var(--lp-muted); font-size: .9rem; text-align: center; }

.lp-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.lp-facts .lp-stat { padding: 22px; border: 1px solid var(--lp-line); border-radius: var(--lp-radius); background: #fff; }
.lp-facts .lp-stat__value { color: var(--lp-brand); }
.lp-facts .lp-stat__label { color: var(--lp-muted); font-size: .9rem; }
@media (min-width: 768px) { .lp-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.lp-facts--spaced { margin-top: clamp(48px, 7vw, 80px); }

/* ---------- Enquiry panel (contact) ---------- */
.lp-enquiry {
    margin-top: clamp(48px, 7vw, 80px);
    padding: clamp(28px, 4vw, 48px);
    border-radius: var(--lp-radius-lg);
    background: var(--lp-surface);
}
.lp-enquiry .lp-heading { margin-bottom: 24px; }
.lp-checklist--grid { display: grid; gap: 0 32px; }
@media (min-width: 768px) { .lp-checklist--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- Sign-in (auth/login) ---------- */
.lp-auth { display: grid; min-height: 100vh; min-height: 100dvh; }
@media (min-width: 992px) {
    .lp-auth { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
}

.lp-auth__brand {
    display: flex;
    align-items: center;
    padding: 16px var(--lp-gutter);
    background-color: var(--lp-dark);
    color: var(--lp-on-dark);
}
.lp-auth__intro, .lp-auth__since { display: none; }
@media (min-width: 992px) {
    .lp-auth__brand {
        position: sticky;
        top: 0;
        height: 100vh;
        height: 100dvh;
        flex-direction: column;
        align-items: flex-start;
        justify-content: space-between;
        padding: 48px clamp(40px, 5vw, 72px);
        background-image:
            radial-gradient(70% 60% at 100% 0%, rgba(1, 128, 61, .5), transparent 60%),
            linear-gradient(180deg, rgba(4, 36, 26, .9) 0%, rgba(4, 36, 26, .97) 70%),
            url(../images/landing/hero-800.webp);
        background-size: auto, auto, cover;
        background-position: center;
    }
    .lp-auth__intro { display: block; max-width: 30rem; }
    .lp-auth__since { display: block; margin: 0; color: var(--lp-on-dark-muted); font-size: .875rem; }
}
.lp-auth__headline {
    margin: 0;
    color: #fff;
    font-size: clamp(1.9rem, 1.2rem + 1.6vw, 2.6rem);
    font-weight: 800;
    line-height: 1.12;
    letter-spacing: -.025em;
    text-wrap: balance;
}
.lp-auth__points { display: grid; gap: 14px; margin: 32px 0 0; padding: 0; list-style: none; }
.lp-auth__points li { display: flex; align-items: center; gap: 14px; color: var(--lp-on-dark); font-weight: 500; }
.lp-auth__points span {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 10px;
    background: rgba(255, 255, 255, .06);
    color: var(--lp-accent);
}

.lp-auth__panel {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: clamp(32px, 6vw, 64px) var(--lp-gutter) 28px;
    background: var(--lp-surface);
}
.lp-auth__card {
    width: 100%;
    max-width: 440px;
    padding: clamp(28px, 5vw, 44px);
    border: 1px solid var(--lp-line);
    border-radius: var(--lp-radius-lg);
    background: #fff;
    box-shadow: var(--lp-shadow);
}
.lp-auth__title { margin: 0; color: var(--lp-ink); font-size: 1.75rem; font-weight: 800; letter-spacing: -.02em; }
.lp-auth__lead { margin: 8px 0 28px; color: var(--lp-muted); }
.lp-auth__help {
    margin: 28px 0 0;
    padding-top: 20px;
    border-top: 1px solid var(--lp-line);
    color: var(--lp-muted);
    font-size: .875rem;
}
.lp-auth__help a { font-weight: 600; overflow-wrap: anywhere; }
.lp-auth__help a[href^="tel:"] { white-space: nowrap; }
.lp-auth__alt { margin: 20px 0 0; color: var(--lp-muted); font-size: .925rem; text-align: center; }
.lp-auth__alt a { font-weight: 600; }
.lp-auth__back { margin: 24px 0 0; font-size: .925rem; }
.lp-site .lp-auth__back a { display: inline-flex; align-items: center; gap: 8px; color: var(--lp-muted); font-weight: 600; text-decoration: none; }
.lp-site .lp-auth__back a:hover { color: var(--lp-brand); }
.lp-auth__copy { margin: 8px 0 0; color: var(--lp-muted); font-size: .8rem; }

/* ---------- Form controls ---------- */
.lp-field { margin-bottom: 20px; }
.lp-field__row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.lp-label { display: block; margin-bottom: 8px; color: var(--lp-ink); font-size: .925rem; font-weight: 600; }
.lp-site .lp-field__link { font-size: .875rem; font-weight: 600; text-decoration: none; }
.lp-site .lp-field__link:hover { text-decoration: underline; text-underline-offset: 3px; }

.lp-input {
    display: block;
    width: 100%;
    height: 48px;
    padding: 0 14px;
    border: 1.5px solid #c9d3cd;
    border-radius: 10px;
    background: #fff;
    color: var(--lp-ink);
    font: inherit;
    font-size: 1rem;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.lp-input:hover { border-color: #9fb0a6; }
.lp-site .lp-input:focus-visible { outline: none; }
.lp-input:focus { border-color: var(--lp-brand); box-shadow: 0 0 0 4px rgba(1, 128, 61, .2); outline: none; }
.lp-input.is-invalid { border-color: #c0392b; }
.lp-input.is-invalid:focus { box-shadow: 0 0 0 4px rgba(192, 57, 43, .18); }

.lp-input-group { position: relative; }
.lp-input-group .lp-input { padding-right: 52px; }
.lp-input-group__btn {
    position: absolute;
    top: 4px;
    right: 4px;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--lp-muted);
}
.lp-input-group__btn:hover { background: var(--lp-surface); color: var(--lp-ink); }
.no-js .lp-input-group__btn { display: none; }

.lp-hint { margin: 8px 0 0; color: var(--lp-muted); font-size: .85rem; }
.lp-error { display: flex; align-items: baseline; gap: 6px; margin: 8px 0 0; color: #b42318; font-size: .875rem; font-weight: 500; }

.lp-check { display: inline-flex; align-items: center; gap: 10px; margin: 4px 0 24px; color: var(--lp-text); font-size: .95rem; cursor: pointer; }
.lp-check input { width: 18px; height: 18px; margin: 0; accent-color: var(--lp-brand); cursor: pointer; }

.lp-btn--block { width: 100%; }
.lp-btn[disabled] { opacity: .75; cursor: progress; }

.lp-alert { margin-bottom: 20px; padding: 12px 14px; border: 1px solid transparent; border-radius: 10px; font-size: .925rem; }
.lp-alert--success { border-color: var(--lp-brand-100); background: var(--lp-brand-50); color: var(--lp-brand-700); }
.lp-alert i { margin-right: 6px; }

/* ---------- Footer ---------- */
.lp-footer { padding: 64px 0 28px; background: var(--lp-dark); color: var(--lp-on-dark-muted); font-size: .95rem; }
.lp-footer__grid { display: grid; gap: 40px; }
@media (min-width: 640px) { .lp-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 992px) { .lp-footer__grid { grid-template-columns: 1.5fr .9fr 1.1fr 1.7fr; gap: 48px; } }
.lp-footer__blurb { max-width: 34ch; margin: 18px 0 0; }
.lp-footer__title { margin: 0 0 16px; color: #fff; font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.lp-footer ul { margin: 0; padding: 0; list-style: none; }
.lp-footer li { margin: 0 0 10px; }
.lp-site .lp-footer a { color: var(--lp-on-dark-muted); text-decoration: none; }
.lp-site .lp-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.lp-footer__address { margin: 0 0 14px; font-style: normal; line-height: 1.7; }
.lp-footer__contact li { display: flex; align-items: baseline; gap: 10px; }
.lp-footer__contact i { color: var(--lp-accent); font-size: .85rem; }
.lp-footer__bottom {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px 24px;
    margin-top: 48px;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, .1);
    font-size: .85rem;
}
.lp-footer__bottom p { margin: 0; }

/* ---------- Scroll reveal (enabled by landing.js; off for reduced motion) ---------- */
.lp-reveal [data-reveal] {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .6s cubic-bezier(.22, .61, .36, 1), transform .6s cubic-bezier(.22, .61, .36, 1);
}
.lp-reveal [data-reveal].is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
    .lp-reveal [data-reveal] { opacity: 1; transform: none; transition: none; }
}

/* ---------- Print ---------- */
@media print {
    .lp-header, .lp-nav-toggle, .lp-hero__media, .lp-cta, .lp-portal { display: none !important; }
    .lp-hero, .lp-page-header, .lp-section--dark, .lp-footer { background: none !important; color: #000 !important; }
    .lp-hero__title, .lp-page-header__title, .lp-heading__title { color: #000 !important; }
}
