/* ═══════════════════════════════════════════════════════════════════════════
   InnoLynk Solution — Section Block Styles
   Mirror theme + LeftCoast editorial aesthetic
   ═══════════════════════════════════════════════════════════════════════════ */

/* Typography: Inter (Latin) + Noto Sans TC (中文). Load fonts in page.blade.php */
:root {
    --font-sans: "Inter", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", ui-sans-serif, sans-serif;
    /* 主標題 (scaled down ~2 steps from prior 48–64px band) */
    --type-display: clamp(2.35rem, 3.2vw, 3.15rem);
    /* 副標題 */
    --type-lede: clamp(1.05rem, 1.2vw, 1.22rem);
    /* 卡片大數字 / 強調 */
    --type-card-figure: clamp(1.55rem, 2.55vw, 2rem);
    /* 卡片副標 */
    --type-card-label: clamp(1rem, 1.05vw, 1.12rem);
    /* 內文 */
    --type-body: clamp(0.9rem, 0.92vw, 1.02rem);
    --lh-body: 1.7;
    --lh-display: 1.12;
}

#main-content {
    font-family: var(--font-sans);
}

/* ── Background utility classes (use mirror theme tokens) ─────────────── */
.section-bg-white   { background: #ffffff; color: var(--text-primary, #0a0a0a); }
.section-bg-light   { background: var(--bg-primary,   #f7f6f3); color: var(--text-primary, #0a0a0a); }
.section-bg-section { background: var(--bg-section,   #edecea); color: var(--text-primary, #0a0a0a); }
.section-bg-dark    { background: var(--bg-dark,       #0a0a0a); color: var(--text-on-dark, #f0f0ee); }
.section-bg-accent  { background: var(--accent,        #c41230); color: #fff; }

.section-bg-dark  .lc-section-sub,
.section-bg-dark  .lc-about-text,
.section-bg-dark  .lc-service-desc { color: rgba(240,240,238,.65); }
.section-bg-accent .lc-section-sub,
.section-bg-accent .lc-about-text  { color: rgba(255,255,255,.8); }
.section-bg-white .lc-section-sub,
.section-bg-white .lc-about-text,
.section-bg-white .lc-service-desc { color: #6b7280; }

/* ── Shared section layout ────────────────────────────────────────────── */
.lc-section {
    padding: 6rem 0;
    width: 100%;
}
.lc-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0;
}
/* Apply horizontal spacing to all sections except hero */
.lc-section:not(.lc-hero) .lc-container {
    padding-left: 2.5%;
    padding-right: 2.5%;
}
.lc-section-header {
    max-width: 600px;
    margin-bottom: 3.5rem;
}
.lc-section-title {
    font-family: var(--font-sans);
    font-size: var(--type-display);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: var(--lh-display);
    margin-bottom: 1rem;
}
.lc-section-sub {
    font-family: var(--font-sans);
    font-size: var(--type-lede);
    font-weight: 500;
    color: var(--text-secondary, #444);
    line-height: 1.65;
}

/* ── Buttons ──────────────────────────────────────────────────────────── */
.lc-btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .85rem 2rem;
    font-size: .8rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    border-radius: var(--mirror-radius, 3px);
    text-decoration: none;
    transition: all var(--mirror-transition, .22s ease);
    cursor: pointer;
    border: 2px solid transparent;
}
.lc-btn--primary {
    background: var(--accent, #c41230);
    color: #fff;
    border-color: var(--accent, #c41230);
}
.lc-btn--primary:hover {
    background: var(--accent-dark, #8b0d20);
    border-color: var(--accent-dark, #8b0d20);
    color: #fff;
    transform: translateY(-2px);
}
.lc-btn--ghost {
    background: transparent;
    color: var(--text-on-dark, #f0f0ee);
    border-color: rgba(240,240,238,.4);
}
.lc-btn--ghost:hover {
    border-color: var(--text-on-dark, #f0f0ee);
    color: var(--text-on-dark, #f0f0ee);
}
.lc-btn--outline {
    background: transparent;
    color: var(--accent, #c41230);
    border-color: var(--accent, #c41230);
}
.lc-btn--outline:hover {
    background: var(--accent, #c41230);
    color: #fff;
}
.lc-btn--lg { padding: 1rem 2.5rem; font-size: .88rem; }

/* ── HERO ─────────────────────────────────────────────────────────────── */
/* Default / non-InnoLynk themes: tall first screen so short copy still fills most of the viewport.
   InnoLynk overrides this with theme CSS (100vh shell) on html[data-site-theme="innolynk"] .lc-hero. */
.lc-hero {
    position: relative;
    min-height: 92vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    isolation: isolate;
    padding: 8rem 2rem 6rem;
}
.lc-hero[style*="--hero-bg-image"] {
    background-image: var(--hero-bg-image);
    background-size: cover;
    background-position: center;
}
.lc-hero__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.55);
    z-index: 2;
}
.lc-hero__inner {
    position: relative;
    z-index: 3;
    max-width: 1200px;
    margin: 0 auto;
    width: 100%;
}
.lc-hero--left .lc-hero__inner {
    margin-left: 0;
    margin-right: auto;
}
.lc-hero--left {
    justify-content: flex-start;
}
.lc-hero--left-bottom .lc-hero__inner {
    margin-left: 0;
    margin-right: auto;
}
.lc-hero--left-top .lc-hero__inner {
    margin-left: 0;
    margin-right: auto;
}
.lc-hero--left-bottom {
    justify-content: flex-start;
    align-items: flex-end;
}
.lc-hero--left-top {
    justify-content: flex-start;
    align-items: flex-start;
}
.lc-hero--centered .lc-hero__inner { text-align: center; }
.lc-hero__heading {
    font-family: var(--font-sans);
    font-size: var(--type-display);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: var(--lh-display);
    color: var(--hero-title-color, inherit);
    margin-bottom: 1.5rem;
}
.lc-hero__sub {
    font-family: var(--font-sans);
    font-size: var(--type-lede);
    font-weight: 500;
    color: var(--hero-subtitle-color, rgba(240,240,238,.8));
    max-width: 560px;
    line-height: 1.65;
    margin-bottom: 2.5rem;
}
.lc-hero--centered .lc-hero__sub { margin-left: auto; margin-right: auto; }
.lc-hero__actions { display: flex; gap: 1rem; flex-wrap: wrap; }
.lc-hero--centered .lc-hero__actions { justify-content: center; }
.lc-hero .lc-hero__actions .lc-btn--primary {
    color: var(--hero-button-text-color, inherit);
}
.lc-hero .lc-hero__actions .lc-btn--ghost {
    color: var(--hero-button-secondary-text-color, var(--hero-button-text-color, inherit));
}
.lc-hero__scroll-hint {
    position: absolute;
    bottom: 2.5rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
}
.lc-hero__scroll-hint span {
    display: block;
    width: 24px;
    height: 38px;
    border: 2px solid rgba(255,255,255,.4);
    border-radius: 12px;
    position: relative;
}
.lc-hero__scroll-hint span::after {
    content: '';
    position: absolute;
    top: 5px;
    left: 50%;
    transform: translateX(-50%);
    width: 4px;
    height: 8px;
    background: rgba(255,255,255,.7);
    border-radius: 2px;
    animation: scrollDot 1.8s ease-in-out infinite;
}
@keyframes scrollDot { 0%,100% { opacity:.7; top: 5px; } 50% { opacity:0; top: 16px; } }
.lc-hero--slider {
    min-height: 86vh;
    padding: 0;
}
.lc-hero-swiper,
.lc-work-swiper,
.lc-services-swiper,
.lc-content-tabs-tabs-swiper {
    width: 100%;
    position: relative;
}
.lc-hero-swiper .swiper-slide {
    min-height: 86vh;
    position: relative;
    display: flex;
    align-items: center;
}
.lc-hero-slide-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
}
.lc-hero-slide-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, rgba(0,0,0,.68), rgba(0,0,0,.3));
}

.lc-hero-mobile-bg {
    display: none;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    pointer-events: none;
    z-index: 1;
}
.lc-hero-bg-media,
.lc-hero-bg-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}
.lc-hero-bg-media {
    display: block;
    z-index: 1;
}
.lc-hero-bg-img {
    display: block;
    object-fit: cover;
    object-position: center;
}
.lc-hero-slide-content {
    position: relative;
    z-index: 2;
    max-width: 1200px;
    margin: 0 auto;
    width: 100%;
    padding: 8rem 2rem 6rem;
}
.lc-slider-arrow {
    position: absolute;
    bottom: 0;
    top: auto;
    transform: none;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 999px;
    background: #4d4d4d;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    z-index: 3;
    transition:
        background 0.18s ease,
        border-color 0.18s ease,
        color 0.18s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease,
        opacity 0.2s ease;
    cursor: pointer;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.12) inset,
        0 2px 10px rgba(0, 0, 0, 0.28);
    font-size: 0.92rem;
}
.lc-slider-arrow:hover {
    background: #5c5c5c;
    transform: scale(1.06);
    border-color: rgba(255, 255, 255, 0.2);
}
.lc-slider-arrow:focus-visible {
    outline: none;
}
.lc-slider-arrow--prev { right: 74px; left: auto; }
.lc-slider-arrow--next { right: 16px; }
.lc-work-swiper .swiper-slide,
.lc-services-swiper .swiper-slide,
.lc-content-tabs-tabs-swiper .swiper-slide {
    height: auto;
}
/* Work / hero / services / content-tabs: nav below slides — spaced pair, on-brand (not flat grey blobs) */
.lc-work-swiper,
.lc-services-swiper,
.lc-content-tabs-tabs-swiper {
    --lc-swiper-nav-size: 42px;
    --lc-swiper-nav-gap: 14px;
    padding-bottom: 3.85rem;
}
.lc-hero-swiper {
    --lc-swiper-nav-size: 44px;
    --lc-swiper-nav-gap: 12px;
    padding-bottom: 4.65rem;
}
.lc-work-swiper .lc-slider-arrow,
.lc-hero-swiper .lc-slider-arrow,
.lc-services-swiper .lc-slider-arrow,
.lc-content-tabs-tabs-swiper .lc-slider-arrow {
    top: auto;
    bottom: 0.45rem;
    width: var(--lc-swiper-nav-size);
    height: var(--lc-swiper-nav-size);
    font-size: 1rem;
}
.lc-work-swiper .lc-slider-arrow .bi,
.lc-hero-swiper .lc-slider-arrow .bi,
.lc-services-swiper .lc-slider-arrow .bi,
.lc-content-tabs-tabs-swiper .lc-slider-arrow .bi {
    line-height: 1;
}
/* Light sections: soft white pills + violet accent (matches tab / service cards) */
.lc-work-swiper .lc-slider-arrow,
.lc-services-swiper .lc-slider-arrow,
.lc-content-tabs-tabs-swiper .lc-slider-arrow {
    transform: none;
    background: linear-gradient(168deg, #ffffff 0%, #f7f5ff 52%, #faf8ff 100%);
    color: #5b21b6;
    border: 1px solid rgba(124, 58, 237, 0.22);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.98) inset,
        0 1px 2px rgba(91, 33, 182, 0.05),
        0 10px 26px rgba(15, 23, 42, 0.07);
}
.lc-work-swiper .lc-slider-arrow:hover,
.lc-services-swiper .lc-slider-arrow:hover,
.lc-content-tabs-tabs-swiper .lc-slider-arrow:hover {
    background: linear-gradient(168deg, #faf5ff 0%, #ffffff 55%);
    color: #4c1d95;
    border-color: rgba(124, 58, 237, 0.42);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.98) inset,
        0 2px 6px rgba(91, 33, 182, 0.1),
        0 14px 32px rgba(15, 23, 42, 0.09);
    transform: translateY(-2px);
}
.lc-work-swiper .lc-slider-arrow:focus-visible,
.lc-services-swiper .lc-slider-arrow:focus-visible,
.lc-content-tabs-tabs-swiper .lc-slider-arrow:focus-visible {
    box-shadow:
        0 0 0 2px #fff,
        0 0 0 5px rgba(124, 58, 237, 0.45),
        0 10px 26px rgba(15, 23, 42, 0.07);
}
.lc-work-swiper .lc-slider-arrow.swiper-button-disabled,
.lc-services-swiper .lc-slider-arrow.swiper-button-disabled,
.lc-content-tabs-tabs-swiper .lc-slider-arrow.swiper-button-disabled {
    opacity: 0.38;
    transform: none;
    pointer-events: none;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.85) inset,
        0 6px 16px rgba(15, 23, 42, 0.04);
}
/* Hero: frosted light controls on dark imagery */
.lc-hero-swiper .lc-slider-arrow {
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.38);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.2) inset,
        0 6px 22px rgba(0, 0, 0, 0.35);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.lc-hero-swiper .lc-slider-arrow:hover {
    background: rgba(255, 255, 255, 0.26);
    border-color: rgba(255, 255, 255, 0.55);
    color: #fff;
    transform: translateY(-2px);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.28) inset,
        0 10px 28px rgba(0, 0, 0, 0.38);
}
.lc-hero-swiper .lc-slider-arrow:focus-visible {
    box-shadow:
        0 0 0 2px rgba(0, 0, 0, 0.35),
        0 0 0 5px rgba(196, 181, 253, 0.85),
        0 6px 22px rgba(0, 0, 0, 0.35);
}
.lc-hero-swiper .lc-slider-arrow.swiper-button-disabled {
    opacity: 0.35;
    transform: none;
    pointer-events: none;
}
.lc-work-swiper .lc-slider-arrow--prev,
.lc-hero-swiper .lc-slider-arrow--prev,
.lc-services-swiper .lc-slider-arrow--prev,
.lc-content-tabs-tabs-swiper .lc-slider-arrow--prev {
    right: auto;
    left: calc(50% - var(--lc-swiper-nav-size) - var(--lc-swiper-nav-gap) / 2);
}
.lc-work-swiper .lc-slider-arrow--next,
.lc-hero-swiper .lc-slider-arrow--next,
.lc-services-swiper .lc-slider-arrow--next,
.lc-content-tabs-tabs-swiper .lc-slider-arrow--next {
    right: auto;
    left: calc(50% + var(--lc-swiper-nav-gap) / 2);
}
@media (prefers-reduced-motion: reduce) {
    .lc-work-swiper .lc-slider-arrow:hover,
    .lc-services-swiper .lc-slider-arrow:hover,
    .lc-content-tabs-tabs-swiper .lc-slider-arrow:hover,
    .lc-hero-swiper .lc-slider-arrow:hover {
        transform: none;
    }
}

@media (max-width: 1199.98px) {
    .lc-services-swiper .lc-slider-arrow,
    .lc-content-tabs-tabs-swiper .lc-slider-arrow {
        display: none !important;
    }
    .lc-services-swiper,
    .lc-content-tabs-tabs-swiper {
        padding-bottom: 0.9rem;
    }
}

/* ── SLIDER SECTION ───────────────────────────────────────────────────── */
.lc-slider .lc-generic-slider-swiper,
.lc-slider-shell .lc-generic-slider-swiper,
.lc-sticky-process__slider-wrap .lc-generic-slider-swiper {
    overflow: hidden;
    position: relative;
    padding-bottom: 56px;
    width: 100%;
    min-width: 0;
}
.lc-slider-shell {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 2rem;
    align-items: stretch;
}
.lc-slider-shell.lc-slider-shell--right {
    grid-template-columns: 2fr 1fr;
}
.lc-slider-shell.lc-slider-shell--right .lc-slider-copy { order: 2; }
.lc-slider-shell.lc-slider-shell--right .lc-generic-slider-swiper { order: 1; }
/* When content is on right: mirror image order — secondary(small) LEFT, primary(big) RIGHT */
.lc-slider-shell.lc-slider-shell--right .lc-slider-media {
    flex-direction: row-reverse;
}
/* Arrows move to bottom-left when content is on the right */
.lc-content-right .lc-slider-arrow--prev { right: auto; left: 16px; }
.lc-content-right .lc-slider-arrow--next { right: auto; left: 70px; }
.lc-slider-copy {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 1rem 0 .5rem;
}
.lc-slider-eyebrow {
    font-size: .72rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #6b7280;
    margin-bottom: .65rem;
    font-weight: 700;
}
.lc-slider-copy .lc-section-title {
    margin-bottom: .6rem;
    font-family: var(--font-sans);
    font-size: clamp(1.6rem, 2.55vw, 2.4rem);
    font-weight: 700;
    line-height: var(--lh-display);
    letter-spacing: -.02em;
}
.lc-slider-copy .lc-section-sub {
    margin-bottom: 1rem;
    font-family: var(--font-sans);
    font-size: var(--type-lede);
    font-weight: 500;
    color: #6b7280;
    max-width: 92%;
    line-height: 1.65;
}
/* Image row: equal columns, wide gap. Images are width-only — intrinsic height, never stretched or cropped. */
.lc-slider-media {
    display: flex;
    flex-direction: row;
    gap: clamp(2.5rem, 6.5vw, 5rem);
    align-items: flex-start;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}
.lc-slider-shell .swiper-slide,
.lc-sticky-process__slider-wrap .swiper-slide {
    height: auto;
    box-sizing: border-box;
}
.lc-slider-media-item,
.lc-slider-media-item--secondary {
    border-radius: 16px;
    overflow: hidden;
    background: transparent;
    flex: 1 1 0;
    min-width: 0;
    width: 0;
    align-self: flex-start;
}
.lc-slider-media-item:only-child {
    flex: 1 1 0;
    width: 0;
}
.lc-slider-media-item img {
    width: 100%;
    height: auto;
    max-width: 100%;
    display: block;
}
.lc-slider-copy .lc-btn {
    width: fit-content;
    padding: .65rem 1.3rem;
    font-size: .76rem;
    align-self: flex-start;
}

/* ── CONTENT TABS (masonry cards + detail) ───────────────────────────── */
.lc-content-tabs {
    overflow-anchor: none;
}
.lc-section.lc-content-tabs.section-bg-light {
    background:
        radial-gradient(ellipse 90% 55% at 18% 0%, rgba(196, 18, 48, 0.04), transparent 52%),
        radial-gradient(ellipse 70% 45% at 100% 100%, rgba(15, 23, 42, 0.04), transparent 50%),
        var(--bg-primary, #f7f6f3);
}
.lc-section.lc-content-tabs.section-bg-white {
    background:
        radial-gradient(ellipse 80% 50% at 10% 10%, rgba(15, 23, 42, 0.025), transparent 55%),
        #fff;
}
/* Slightly more inset than default sections so this block doesn’t ride the viewport edge. */
.lc-section.lc-content-tabs .lc-container {
    padding-left: clamp(2.5rem, 7vw, 6rem);
    padding-right: clamp(2.5rem, 7vw, 6rem);
}
.lc-content-tabs__intro {
    max-width: none;
    width: 100%;
    margin-bottom: 0.75rem;
    flex-shrink: 0;
}
.lc-content-tabs__intro-title {
    font-family: var(--font-sans);
    font-size: clamp(1rem, 1.2vw, 1.12rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.25;
    color: var(--text-primary, #0a0a0a);
    margin: 0 0 0.3rem;
}
.lc-content-tabs__intro-sub {
    font-family: var(--font-sans);
    font-size: 0.9rem;
    font-weight: 400;
    line-height: 1.5;
    color: var(--text-secondary, #5f6774);
    margin: 0;
    max-width: 36ch;
}
.section-bg-dark .lc-content-tabs__intro-title {
    color: var(--text-on-dark, #f5f5f3);
}
.section-bg-dark .lc-content-tabs__intro-sub {
    color: rgba(255, 255, 255, 0.72);
}
/* Masonry service cards (left) + detail copy (right). Only active detail panel contributes height. */
.lc-content-tabs-shell {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: clamp(1.5rem, 2.6vw, 2.25rem);
    width: 100%;
    justify-content: space-around;
    box-sizing: border-box;
}
.lc-content-tabs-shell.is-content-right .lc-content-tabs__left {
    order: 2;
}
.lc-content-tabs-shell.is-content-right .lc-content-tabs__right {
    order: 1;
}
.lc-content-tabs__left {
    flex: 0 1 52%;
    min-width: 0;
}
.lc-content-tabs__right {
    flex: 0 1 min(620px, 38%);
    min-width: 0;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1rem;
}
.lc-content-tabs__masonry {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: clamp(0.85rem, 1.35vw, 1.1rem);
}
.lc-content-tabs-tabs-swiper {
    min-width: 0;
    overflow: hidden;
}
.lc-content-tabs-tabs-swiper .swiper-wrapper {
    align-items: stretch;
}
.lc-content-tabs-tabs-swiper .lc-content-tabs__card.lc-content-tabs__tab {
    min-height: clamp(8.5rem, 28vw, 11rem);
    width: 100%;
}
/* Service cards: compact editorial tiles inspired by the reference, but lighter and cleaner. */
.lc-content-tabs__card.lc-content-tabs__tab {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr);
    align-items: stretch;
    justify-items: stretch;
    width: 100%;
    min-height: clamp(9.5rem, 12vw, 12rem);
    grid-column: span 2;
    font-family: var(--font-sans);
    text-align: left;
    padding: clamp(1rem, 1.8vw, 1.35rem);
    border-radius: 16px;
    border: 1px solid rgba(124, 58, 237, 0.08);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(255, 255, 255, 0.92)),
        #fff;
    color: var(--text-primary, #101218);
    cursor: pointer;
    transition:
        border-color 0.18s ease,
        background-color 0.18s ease,
        color 0.18s ease,
        box-shadow 0.22s ease,
        transform 0.18s ease;
    outline: none;
    -webkit-tap-highlight-color: transparent;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.9) inset,
        0 10px 28px rgba(15, 23, 42, 0.06),
        0 22px 46px rgba(15, 23, 42, 0.045);
}
.lc-content-tabs__card.lc-content-tabs__tab:nth-child(3n + 1) {
    min-height: clamp(10.5rem, 13vw, 13rem);
}
.lc-content-tabs__card.lc-content-tabs__tab:nth-child(3n + 2) {
    min-height: clamp(9.25rem, 11.5vw, 11.5rem);
}
.lc-content-tabs__card.lc-content-tabs__tab:nth-child(3n) {
    min-height: clamp(10rem, 12.5vw, 12.5rem);
}
.lc-content-tabs__card.lc-content-tabs__tab:nth-child(4),
.lc-content-tabs__card.lc-content-tabs__tab:nth-child(5) {
    grid-column: span 3;
    min-height: clamp(10rem, 12vw, 12rem);
}
.lc-content-tabs__card.lc-content-tabs__tab:nth-child(n + 6) {
    grid-column: span 2;
}
.lc-content-tabs__card-icon {
    grid-row: 1;
    justify-self: start;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    perspective: 420px;
    transform-style: preserve-3d;
    border-radius: 12px;
    border: 1px solid rgba(124, 58, 237, 0.18);
    background: rgba(124, 58, 237, 0.08);
    color: #7c3aed;
    font-size: 0.95rem;
    font-weight: 700;
    transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}
.lc-content-tabs__card-icon-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    transform-origin: center center;
    transition: transform 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.lc-content-tabs__card-body {
    grid-row: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 0.5rem;
    min-height: 0;
    min-width: 0;
    margin-top: 0.65rem;
    padding-top: 0;
    text-align: left;
}
.lc-content-tabs__card-title {
    display: block;
    margin: 0;
    font-size: clamp(0.92rem, 1.2vw, 1.08rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.25;
    color: inherit;
}
.lc-content-tabs__card-copy {
    display: block;
    margin: 0;
    font-size: 0.78rem;
    font-weight: 400;
    line-height: 1.55;
    letter-spacing: 0;
    color: rgba(75, 85, 99, 0.86);
}
.lc-content-tabs__card.lc-content-tabs__tab:hover {
    border-color: rgba(124, 58, 237, 0.2);
    color: #0a0a0a;
    background:
        linear-gradient(135deg, rgba(124, 58, 237, 0.08), rgba(255, 255, 255, 0) 46%),
        #fff;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.9) inset,
        0 12px 34px rgba(15, 23, 42, 0.09),
        0 26px 56px rgba(15, 23, 42, 0.06);
    transform: translateY(-3px);
}
.lc-content-tabs__card.lc-content-tabs__tab.is-active {
    border-color: rgba(124, 58, 237, 0.28);
    color: #0a0a0a;
    background:
        linear-gradient(135deg, rgba(124, 58, 237, 0.14), rgba(255, 255, 255, 0) 48%),
        #fff;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.95) inset,
        0 14px 40px rgba(15, 23, 42, 0.11),
        0 0 0 1px rgba(124, 58, 237, 0.12);
    transform: translateY(-3px);
}
.lc-content-tabs__card.lc-content-tabs__tab.is-active .lc-content-tabs__card-icon,
.lc-content-tabs__card.lc-content-tabs__tab:hover .lc-content-tabs__card-icon {
    border-color: rgba(124, 58, 237, 0.35);
    background: #7c3aed;
    color: #fff;
}
.lc-content-tabs__card.lc-content-tabs__tab:hover .lc-content-tabs__card-icon-inner,
.lc-content-tabs__card.lc-content-tabs__tab:focus-visible .lc-content-tabs__card-icon-inner {
    /* 2D only: card hover uses translateY, which flattens 3D — rotateY would look like “no motion” */
    transform: rotate(-10deg) scale(1.12);
}
@media (prefers-reduced-motion: reduce) {
    .lc-content-tabs__card-icon-inner {
        transition: none;
    }
    .lc-content-tabs__card.lc-content-tabs__tab:hover .lc-content-tabs__card-icon-inner,
    .lc-content-tabs__card.lc-content-tabs__tab:focus-visible .lc-content-tabs__card-icon-inner {
        transform: none;
    }
}
.lc-content-tabs__card.lc-content-tabs__tab:focus:not(:focus-visible) {
    outline: none;
}
.lc-content-tabs__card.lc-content-tabs__tab:focus-visible {
    outline: 2px solid #a78bfa;
    outline-offset: 3px;
}
.section-bg-dark .lc-content-tabs__card.lc-content-tabs__tab {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.14);
    color: rgba(255, 255, 255, 0.82);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.06) inset,
        0 6px 24px rgba(0, 0, 0, 0.35);
}
.section-bg-dark .lc-content-tabs__card-icon {
    border-color: rgba(167, 139, 250, 0.32);
    background: rgba(167, 139, 250, 0.12);
    color: #ddd6fe;
}
.section-bg-dark .lc-content-tabs__card-copy {
    color: rgba(255, 255, 255, 0.62);
}
.section-bg-dark .lc-content-tabs__card.lc-content-tabs__tab:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(167, 139, 250, 0.38);
    color: #fff;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.08) inset,
        0 8px 28px rgba(0, 0, 0, 0.4);
}
.section-bg-dark .lc-content-tabs__card.lc-content-tabs__tab.is-active {
    border-color: rgba(167, 139, 250, 0.5);
    background: rgba(167, 139, 250, 0.14);
    color: #fff;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.12) inset,
        0 10px 36px rgba(0, 0, 0, 0.45);
}
.section-bg-dark .lc-content-tabs__card.lc-content-tabs__tab.is-active .lc-content-tabs__card-icon,
.section-bg-dark .lc-content-tabs__card.lc-content-tabs__tab:hover .lc-content-tabs__card-icon {
    background: #a78bfa;
    border-color: #a78bfa;
    color: #111827;
}
.section-bg-accent .lc-content-tabs__card.lc-content-tabs__tab {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.22);
    color: rgba(255, 255, 255, 0.92);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.12) inset,
        0 6px 24px rgba(0, 0, 0, 0.2);
}
.section-bg-accent .lc-content-tabs__card-icon {
    border-color: rgba(255, 255, 255, 0.28);
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
}
.section-bg-accent .lc-content-tabs__card-copy {
    color: rgba(255, 255, 255, 0.72);
}
.section-bg-accent .lc-content-tabs__card.lc-content-tabs__tab:hover {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(221, 214, 254, 0.48);
    color: #fff;
}
.section-bg-accent .lc-content-tabs__card.lc-content-tabs__tab.is-active {
    border-color: rgba(221, 214, 254, 0.6);
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.18) inset,
        0 10px 36px rgba(0, 0, 0, 0.22);
}
.section-bg-accent .lc-content-tabs__card.lc-content-tabs__tab.is-active .lc-content-tabs__card-icon,
.section-bg-accent .lc-content-tabs__card.lc-content-tabs__tab:hover .lc-content-tabs__card-icon {
    background: #fff;
    border-color: #fff;
    color: #7c3aed;
}
.section-bg-dark .lc-content-tabs-tabs-swiper .lc-slider-arrow,
.section-bg-accent .lc-content-tabs-tabs-swiper .lc-slider-arrow {
    background: rgba(255, 255, 255, 0.1);
    color: #ede9fe;
    border-color: rgba(196, 181, 253, 0.38);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.12) inset,
        0 6px 22px rgba(0, 0, 0, 0.32);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.section-bg-dark .lc-content-tabs-tabs-swiper .lc-slider-arrow:hover,
.section-bg-accent .lc-content-tabs-tabs-swiper .lc-slider-arrow:hover {
    background: rgba(255, 255, 255, 0.18);
    border-color: rgba(221, 214, 254, 0.52);
    color: #fff;
}
.section-bg-dark .lc-content-tabs-tabs-swiper .lc-slider-arrow:focus-visible,
.section-bg-accent .lc-content-tabs-tabs-swiper .lc-slider-arrow:focus-visible {
    box-shadow:
        0 0 0 2px rgba(15, 23, 42, 0.45),
        0 0 0 5px rgba(196, 181, 253, 0.55),
        0 6px 22px rgba(0, 0, 0, 0.32);
}
.lc-content-tabs__detail-stack {
    position: relative;
    width: 100%;
    max-width: 620px;
    margin-inline: auto;
    min-width: 0;
    overflow: hidden;
}
.lc-content-tabs__panel.lc-content-tabs__panel--detail {
    min-width: 0;
    box-sizing: border-box;
}
.lc-content-tabs__panel.lc-content-tabs__panel--detail:not(.is-ct-panel-active) {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    width: 100%;
    visibility: hidden;
    pointer-events: none;
    z-index: 0;
}
.lc-content-tabs__panel.lc-content-tabs__panel--detail.is-ct-panel-active {
    position: relative;
    visibility: visible;
    pointer-events: auto;
    z-index: 1;
}
.lc-content-tabs__detail-inner {
    border-left: 3px solid var(--accent, #c41230);
    padding: 0.1rem 0 0.25rem 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.section-bg-dark .lc-content-tabs__detail-inner {
    border-left-color: rgba(255, 255, 255, 0.55);
}
.lc-content-tabs__detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 1rem;
    align-items: center;
}
.lc-content-tabs__headline {
    font-family: var(--font-sans);
    font-size: clamp(1.28rem, 2vw, 1.68rem);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.025em;
    color: var(--text-primary, #0a0a0a);
    margin: 0;
}
.lc-content-tabs__body {
    font-family: var(--font-sans);
    font-size: var(--type-body);
    font-weight: 400;
    line-height: var(--lh-body);
    color: var(--text-secondary, #5f6774);
    max-width: min(72ch, 100%);
}
.section-bg-dark .lc-content-tabs__headline {
    color: var(--text-on-dark, #f5f5f3);
}
.section-bg-dark .lc-content-tabs__body {
    color: rgba(255, 255, 255, 0.72);
}
.lc-content-tabs__richtext {
    font-family: var(--font-sans);
    font-size: var(--type-body);
    line-height: var(--lh-body);
    color: var(--text-secondary, #5f6774);
}
.section-bg-dark .lc-content-tabs__richtext {
    color: rgba(255, 255, 255, 0.75);
}
.lc-content-tabs__cta {
    align-self: flex-start;
    margin: 0;
}
.section-bg-dark .lc-content-tabs__cta.lc-btn--primary {
    background: #fff;
    color: #0a0a0a;
    border-color: #fff;
}
.section-bg-dark .lc-content-tabs__cta.lc-btn--primary:hover {
    background: #f3f4f6;
    border-color: #f3f4f6;
    color: #0a0a0a;
}
@media (max-width: 768px) {
    .lc-content-tabs-shell,
    .lc-content-tabs-shell.is-content-right {
        flex-direction: column;
        align-items: stretch;
    }
    .lc-content-tabs-shell .lc-content-tabs__left,
    .lc-content-tabs-shell .lc-content-tabs__right {
        flex: 1 1 auto;
        max-width: none;
    }
    .lc-content-tabs-shell.is-content-right .lc-content-tabs__left,
    .lc-content-tabs-shell.is-content-right .lc-content-tabs__right {
        order: initial;
    }
    .lc-content-tabs__masonry--desktop {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.85rem;
    }
    .lc-content-tabs__masonry--desktop .lc-content-tabs__card.lc-content-tabs__tab,
    .lc-content-tabs__masonry--desktop .lc-content-tabs__card.lc-content-tabs__tab:nth-child(n) {
        grid-column: auto;
    }
}
@media (max-width: 480px) {
    .lc-content-tabs__masonry--desktop {
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
    }
    .lc-content-tabs__masonry--desktop .lc-content-tabs__card.lc-content-tabs__tab,
    .lc-content-tabs__masonry--desktop .lc-content-tabs__card.lc-content-tabs__tab:nth-child(n) {
        grid-column: auto;
        min-height: 9rem;
    }
}

/* ── SERVICES ─────────────────────────────────────────────────────────── */
.lc-services-split-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: clamp(1.25rem, 4vw, 3rem);
    margin-bottom: clamp(2.5rem, 5vw, 3.5rem);
    flex-wrap: wrap;
    width: 100%;
}
.lc-services-split-head .lc-section-title {
    margin-bottom: 0;
    flex: 0 1 auto;
}
.lc-services-split-head .lc-section-sub {
    margin-bottom: 0;
    flex: 0 1 auto;
    max-width: min(46ch, 100%);
    text-align: left;
}
.lc-services-split-head--single {
    flex-direction: column;
    align-items: flex-start;
}
.lc-services-split-head--single .lc-section-sub {
    max-width: none;
}
@media (max-width: 768px) {
    .lc-services-split-head:not(.lc-services-split-head--single) {
        flex-direction: column;
        align-items: flex-start;
    }
    .lc-services-split-head:not(.lc-services-split-head--single) .lc-section-sub {
        max-width: none;
    }
}
.lc-service-card {
    padding: 2rem;
    height: 100%;
    border: 1px solid #e8eaef;
    border-radius: 1.5rem;
    transition: box-shadow var(--mirror-transition, .22s ease), border-color var(--mirror-transition, .22s ease);
    background: var(--bg-card, #fff);
    box-shadow: 0 1px 0 rgba(0,0,0,.03), 0 12px 36px rgba(15, 23, 42, .05);
}
/* Flip tile height cap (grid column width already limits card width) */
.lc-service-card--flip {
    --lc-svc-card-max-h: min(16.5rem, 32vw);
    position: relative;
    perspective: 1400px;
    padding: 0;
    min-height: 0;
    width: 100%;
    aspect-ratio: 5 / 4.15;
    max-height: var(--lc-svc-card-max-h);
    border-radius: 1.25rem;
    overflow: hidden;
    border: none;
    background: transparent;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 10px 28px rgba(15, 23, 42, 0.06);
}
@media (max-width: 767.98px) {
    .lc-service-card--flip {
        --lc-svc-card-max-h: min(18rem, 58vw);
    }
}
.lc-service-flip-inner {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 0;
    transform-style: preserve-3d;
    transition: transform 0.55s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.lc-service-card--flip:hover .lc-service-flip-inner,
.lc-service-card--flip:focus-within .lc-service-flip-inner {
    transform: rotateY(180deg);
}
@media (prefers-reduced-motion: reduce) {
    .lc-service-card--flip:hover .lc-service-flip-inner,
    .lc-service-card--flip:focus-within .lc-service-flip-inner {
        transform: none;
    }
}
.lc-service-face {
    position: absolute;
    inset: 0;
    padding: 1.1rem 1.25rem 1.2rem;
    border-radius: 1.25rem;
    border: 1px solid #e8eaef;
    background: #fff;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    justify-items: stretch;
    text-align: left;
}
.lc-service-face-icon {
    grid-row: 1;
    grid-column: 1;
    justify-self: start;
    align-self: start;
    font-size: 1.2rem;
    line-height: 1;
    color: #111827;
    margin: 0 0 0.4rem;
    pointer-events: none;
}
.lc-service-face-icon i {
    display: block;
    font-style: normal;
}
.lc-service-face-bottom {
    grid-row: 2;
    grid-column: 1;
    align-self: end;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    width: 100%;
    min-height: 0;
}
.lc-service-face--back .lc-service-face-bottom {
    align-self: end;
    overflow: auto;
    gap: 0.55rem;
    padding-bottom: 0.15rem;
    max-height: 100%;
}
.lc-service-face--back {
    transform: rotateY(180deg);
    padding: 1.2rem 1.35rem 1.4rem;
}
.lc-service-face--back .lc-service-face-icon {
    margin-bottom: 0.65rem;
}
.lc-service-face--back .lc-service-title,
.lc-service-face--back .lc-service-desc {
    color: inherit;
}
.lc-service-face--back .lc-btn {
    margin-top: 0.35rem;
    align-self: flex-start;
    padding: 0.55rem 1.1rem;
    font-size: 0.72rem;
}
.lc-service-card:not(.lc-service-card--flip):hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 48px rgba(0,0,0,.1);
    border-color: #d1d5db;
}
.lc-service-card--flip:hover {
    transform: none;
    box-shadow: 0 1px 0 rgba(0,0,0,.04), 0 20px 52px rgba(15, 23, 42, .1);
}

/* Services swiper (<xl): one card per swipe, back only — grid+align-end caused a huge icon↔copy gap */
.lc-services-swiper {
    min-width: 0;
    width: 100%;
    overflow: hidden;
}
.lc-services-swiper .swiper-wrapper {
    align-items: stretch;
}
.lc-services-slide-inner {
    min-width: 0;
    height: auto;
}
.lc-services-swiper .lc-service-card--flip {
    perspective: none;
    -webkit-perspective: none;
    aspect-ratio: auto;
    min-height: 0;
    max-height: none;
}
.lc-services-swiper .lc-service-flip-inner {
    transform: none !important;
    -webkit-transform: none !important;
    transform-style: flat !important;
    -webkit-transform-style: flat !important;
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: auto;
}
.lc-services-swiper .lc-service-face--front {
    display: none !important;
}
.lc-services-swiper .lc-service-face--back {
    position: relative;
    inset: auto;
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 0.4rem;
    padding: 1rem 1.15rem 1.15rem;
    transform: none !important;
    -webkit-transform: none !important;
    backface-visibility: visible !important;
    -webkit-backface-visibility: visible !important;
    grid-template-rows: none;
    grid-template-columns: none;
    flex: 1 1 auto;
    min-height: 0;
}
.lc-services-swiper .lc-service-face--back .lc-service-face-icon {
    grid-row: auto;
    grid-column: auto;
    margin: 0 0 0.1rem;
}
.lc-services-swiper .lc-service-face--back .lc-service-face-bottom {
    grid-row: auto;
    grid-column: auto;
    align-self: stretch;
    align-items: flex-start;
    flex: 0 1 auto;
    max-height: none;
    gap: 0.45rem;
}
.lc-services-swiper .lc-service-card--flip:hover .lc-service-flip-inner,
.lc-services-swiper .lc-service-card--flip:focus-within .lc-service-flip-inner {
    transform: none !important;
}

.section-bg-dark .lc-service-card:not(.lc-service-card--flip) {
    background: rgba(255,255,255,.05);
    border-color: rgba(255,255,255,.1);
}
.lc-service-icon {
    font-size: 1.05rem;
    color: #111827;
    margin-bottom: 0;
    line-height: 1;
}
.lc-service-title {
    font-family: var(--font-sans);
    font-size: clamp(1.05rem, 1.55vw, 1.25rem);
    font-weight: 700;
    margin: 0;
    letter-spacing: -0.02em;
    line-height: 1.25;
    color: var(--text-primary, #0a0a0a);
}
.lc-service-face--back .lc-service-title {
    margin: 0;
}
.lc-service-desc {
    font-family: var(--font-sans);
    font-size: var(--type-body);
    line-height: var(--lh-body);
    margin: 0;
    color: #5f6774;
    font-weight: 400;
    opacity: 1;
}
.section-bg-dark .lc-service-face--front .lc-service-desc,
.section-bg-dark .lc-service-face--back .lc-service-desc {
    color: rgba(240,240,238,.75);
}
.section-bg-dark .lc-service-face--front .lc-service-title,
.section-bg-dark .lc-service-face--back .lc-service-title {
    color: var(--text-on-dark, #f0f0ee);
}
.section-bg-dark .lc-service-face--front,
.section-bg-dark .lc-service-face--back {
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.12);
}
.section-bg-dark .lc-service-face-icon {
    color: #f0f0ee;
}

/* ── WORK / PORTFOLIO ─────────────────────────────────────────────────── */
.lc-work-card {
    display: block;
    text-decoration: none;
    color: inherit;
}
.lc-work-img-wrap {
    position: relative;
    overflow: hidden;
    border-radius: var(--mirror-radius-lg, 8px);
    aspect-ratio: 16/10;
    background: var(--bg-elevated, #eee);
}
.lc-work-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}
.lc-work-card:hover .lc-work-img-wrap img { transform: scale(1.05); }
.lc-work-overlay {
    position: absolute;
    inset: 0;
    background: rgba(196,18,48,.85);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity var(--mirror-transition, .22s ease);
}
.lc-work-card:hover .lc-work-overlay { opacity: 1; }
.lc-work-overlay span { color: #fff; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: .85rem; }
.lc-work-meta { padding: 1.25rem 0 .5rem; }
.lc-work-cat { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--accent, #c41230); }
.lc-work-title { font-size: .95rem; font-weight: 700; margin: .4rem 0 0; }

/* ── Workflow (overlapping rings + stroke draw via sections.js) ─────── */
.lc-workflow__row {
    --wf-count: 5;
    --wf-overlap: 0.2;
    --wf-step-pct: calc(100% / (var(--wf-count) - (var(--wf-count) - 1) * var(--wf-overlap)));
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: clamp(1rem, 2.5vw, 2rem) 0;
    box-sizing: border-box;
    overflow-x: clip;
}
.lc-workflow__step {
    position: relative;
    flex: 0 0 auto;
    width: var(--wf-step-pct);
    aspect-ratio: 1 / 1;
    box-sizing: border-box;
    color: inherit;
    isolation: isolate;
}
.lc-workflow__step + .lc-workflow__step {
    margin-left: calc(-1 * var(--wf-overlap) * var(--wf-step-pct));
}
.lc-workflow__ring {
    position: absolute;
    inset: 0;
    pointer-events: none;
    color: inherit;
}
.lc-workflow__ring svg {
    display: block;
    width: 100%;
    height: 100%;
}
.lc-workflow__stroke {
    fill: none;
    stroke-width: 1px;
    vector-effect: non-scaling-stroke;
    stroke-linecap: round;
    transition: stroke-dashoffset 2.85s cubic-bezier(0.22, 1, 0.36, 1);
}
.lc-workflow__step.is-ring-drawn .lc-workflow__stroke {
    stroke-dashoffset: 0 !important;
}

@media (prefers-reduced-motion: reduce) {
    .lc-workflow__stroke {
        transition: none !important;
        stroke-dashoffset: 0 !important;
    }
}
.lc-workflow__label {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 0.35em 0.45em;
    max-width: 92%;
    margin: auto;
    font-size: clamp(0.78rem, 3.2vw, 1.15rem);
    font-weight: 500;
    line-height: 1.25;
    box-sizing: border-box;
}

/* ── Sticky timeline ───────────────────────────────────────────────────── */
.lc-sticky-timeline {
    /* Below fixed header while left copy is sticky in the viewport */
    --lc-st-timeline-sticky-top: clamp(72px, 10vh, 120px);
}
.lc-sticky-timeline__grid {
    display: grid;
    grid-template-columns: minmax(280px, .95fr) minmax(0, 1.4fr);
    gap: clamp(1rem, 2.8vw, 2.8rem);
    align-items: stretch;
}
.lc-sticky-timeline__left {
    position: relative;
    min-width: 0;
    display: flex;
    flex-direction: column;
}
/* Short sticky viewport: copy stays vertically centred until the last timeline card has scrolled through */
.lc-sticky-timeline__sticky {
    position: sticky;
    top: var(--lc-st-timeline-sticky-top);
    height: calc(100vh - var(--lc-st-timeline-sticky-top));
    height: calc(100dvh - var(--lc-st-timeline-sticky-top));
    display: flex;
    align-items: center;
    box-sizing: border-box;
    padding-bottom: 0.5rem;
}
.lc-sticky-timeline__left-inner {
    display: grid;
    gap: .9rem;
    max-width: 34rem;
    width: 100%;
}
.lc-sticky-timeline__left-inner .lc-btn {
    justify-self: start;
    width: fit-content;
    max-width: 100%;
    box-sizing: border-box;
}
.lc-sticky-timeline__heading {
    margin: 0;
    font-size: var(--type-display);
    line-height: var(--lh-display);
    letter-spacing: -0.03em;
}
.lc-sticky-timeline__sub {
    margin: 0;
    font-size: var(--type-lede);
    line-height: 1.65;
    color: #475569;
}
.lc-sticky-timeline__right {
    position: relative;
    min-width: 0;
}
.lc-sticky-timeline__list {
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
    max-width: 920px;
    margin-inline: auto;
}
.lc-sticky-timeline__list::before {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: 0;
    bottom: 0;
    width: 2px;
    background: linear-gradient(180deg, rgba(100,116,139,.45), rgba(100,116,139,.16));
}
.lc-sticky-timeline__item {
    position: relative;
    padding-bottom: 1.2rem;
}
.lc-sticky-timeline__dot {
    position: absolute;
    left: 50%;
    transform: translate(-50%, 0);
    top: 1rem;
    width: .95rem;
    height: .95rem;
    border-radius: 999px;
    border: 2px solid #cbd5e1;
    background: #fff;
    z-index: 1;
    transition: transform .2s ease, border-color .2s ease, background .2s ease;
}
.lc-sticky-timeline__item.is-active .lc-sticky-timeline__dot {
    transform: translate(-50%, 0) scale(1.08);
    border-color: #0f172a;
    background: #0f172a;
}
.lc-sticky-timeline__card {
    width: min(46%, 380px);
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .06);
    padding: .95rem;
}
/* Zig-zag: odd rows card on the left, even rows on the right */
.lc-sticky-timeline__item:nth-child(odd) .lc-sticky-timeline__card {
    margin-right: auto;
    margin-left: 0;
}
.lc-sticky-timeline__item:nth-child(even) .lc-sticky-timeline__card {
    margin-left: auto;
    margin-right: 0;
}
.lc-sticky-timeline__time {
    font-size: .75rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #64748b;
    font-weight: 700;
    margin-bottom: .35rem;
}
.lc-sticky-timeline__title {
    margin: 0;
    font-size: clamp(1.1rem, 1.5vw, 1.35rem);
    line-height: 1.2;
}
.lc-sticky-timeline__desc {
    margin: .45rem 0 0;
    color: #475569;
    line-height: 1.65;
}
.lc-sticky-timeline__media {
    margin-top: .7rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .6rem;
}
.lc-sticky-timeline__media-item {
    border-radius: .75rem;
    overflow: hidden;
    background: #e2e8f0;
    min-height: 120px;
}
.lc-sticky-timeline__media-item img {
    width: 100%;
    height: 100%;
    min-height: 120px;
    object-fit: cover;
    display: block;
}

/* ── Intro split (headline then body — single column, never side-by-side) ─ */
.lc-section.lc-intro-split {
    min-height: 75vh;
    box-sizing: border-box;
    display: grid;
    align-items: center;
    padding-top: clamp(2rem, 4vh, 3.5rem);
    padding-bottom: clamp(2rem, 4vh, 3.5rem);
}
.lc-intro-split__inner {
    display: block;
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-left: calc(2.5% + env(safe-area-inset-left, 0px));
    padding-right: calc(2.5% + env(safe-area-inset-right, 0px));
    box-sizing: border-box;
}
.lc-intro-split__inner::after {
    content: "";
    display: table;
    clear: both;
}
.lc-intro-split__copy {
    margin-top: clamp(1.25rem, 3vh, 2.25rem);
    max-width: min(72ch, 100%);
    min-width: 0;
    float: right;
    margin-right: 5%;
}
.lc-intro-split__title {
    min-width: 0;
    margin-left: 5%;
}
.lc-intro-split__title h2 {
    margin: 0;
    font-family: var(--font-sans);
    font-size: clamp(1.65rem, 2.6vw, 2.65rem);
    font-weight: 300;
    line-height: 1.12;
    letter-spacing: -0.02em;
}
.section-bg-dark .lc-intro-split__title h2,
.section-bg-accent .lc-intro-split__title h2 {
    color: #fff;
}
.section-bg-light .lc-intro-split__title h2,
.section-bg-white .lc-intro-split__title h2,
.section-bg-section .lc-intro-split__title h2 {
    color: #0a0a0a;
}
.lc-intro-split__para {
    margin: 0 0 1rem;
    font-family: var(--font-sans);
    font-size: clamp(0.88rem, 1.02vw, 1rem);
    font-weight: 400;
    line-height: 1.65;
}
.lc-intro-split__para:last-child {
    margin-bottom: 0;
}
.section-bg-dark .lc-intro-split__para,
.section-bg-accent .lc-intro-split__para {
    color: rgba(255, 255, 255, 0.88);
}
.section-bg-light .lc-intro-split__para,
.section-bg-white .lc-intro-split__para,
.section-bg-section .lc-intro-split__para {
    color: rgba(10, 10, 10, 0.78);
}

.lc-intro-split--title-right .lc-intro-split__title {
    margin-left: 0;
    margin-right: 5%;
    text-align: right;
}
.lc-intro-split--title-right .lc-intro-split__copy {
    float: left;
    margin-left: 5%;
    margin-right: 0;
}

/* ── Simple page (title + long body) ─────────────────────────────────── */
.lc-section.lc-simple-page {
    padding-top: clamp(1rem, 2vh, 1.5rem);
    padding-bottom: clamp(2rem, 4vh, 3.5rem);
}
.lc-simple-page__inner {
    max-width: min(72ch, 100%);
    margin-inline: auto;
    padding-left: env(safe-area-inset-left, 0px);
    padding-right: env(safe-area-inset-right, 0px);
    box-sizing: border-box;
}
.lc-simple-page__heading {
    text-align: center;
    margin-top: clamp(3rem, 12vw, 150px);
    margin-bottom: clamp(1.75rem, 4vw, 2.5rem);
}
.lc-simple-page__title {
    margin: 0;
    font-family: var(--font-sans);
    font-size: clamp(1.5rem, 2.2vw, 2rem);
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -0.02em;
}
.lc-simple-page__inner:not(:has(.lc-simple-page__heading)) .lc-simple-page__body,
.lc-simple-page__inner:not(:has(.lc-simple-page__heading)) .lc-simple-page__body--rich {
    margin-top: clamp(2rem, 4vh, 3rem);
}
.section-bg-dark .lc-simple-page__title,
.section-bg-accent .lc-simple-page__title {
    color: #fff;
}
.section-bg-light .lc-simple-page__title,
.section-bg-white .lc-simple-page__title,
.section-bg-section .lc-simple-page__title {
    color: #0a0a0a;
}
.lc-simple-page__body {
    font-family: var(--font-sans);
    font-size: clamp(0.9rem, 1.02vw, 1.05rem);
    font-weight: 400;
    line-height: 1.7;
}
.lc-simple-page__body p {
    margin: 0 0 1rem;
}
.lc-simple-page__body p:last-child {
    margin-bottom: 0;
}
.section-bg-dark .lc-simple-page__body,
.section-bg-accent .lc-simple-page__body {
    color: rgba(255, 255, 255, 0.9);
}
.section-bg-light .lc-simple-page__body,
.section-bg-white .lc-simple-page__body,
.section-bg-section .lc-simple-page__body {
    color: rgba(10, 10, 10, 0.82);
}

.lc-simple-page__body--rich {
    font-family: var(--font-sans);
    font-size: clamp(0.9rem, 1.02vw, 1.05rem);
    font-weight: 400;
    line-height: 1.7;
    overflow-wrap: anywhere;
}
.lc-simple-page__body--rich > *:first-child {
    margin-top: 0;
}
.lc-simple-page__body--rich > *:last-child {
    margin-bottom: 0;
}
.lc-simple-page__body--rich h1,
.lc-simple-page__body--rich h2,
.lc-simple-page__body--rich h3,
.lc-simple-page__body--rich h4 {
    font-family: var(--font-sans);
    font-weight: 600;
    line-height: 1.25;
    margin: 1.35em 0 0.5em;
}
.lc-simple-page__body--rich h1 { font-size: clamp(1.35rem, 2vw, 1.75rem); }
.lc-simple-page__body--rich h2 { font-size: clamp(1.2rem, 1.65vw, 1.45rem); }
.lc-simple-page__body--rich h3 { font-size: clamp(1.05rem, 1.35vw, 1.2rem); }
.lc-simple-page__body--rich h4 { font-size: 1.05rem; }
.lc-simple-page__body--rich p {
    margin: 0 0 1rem;
}
.lc-simple-page__body--rich ul,
.lc-simple-page__body--rich ol {
    margin: 0 0 1rem;
    padding-left: 1.35em;
}
.lc-simple-page__body--rich li {
    margin-bottom: 0.35em;
}
.lc-simple-page__body--rich blockquote {
    margin: 0 0 1rem;
    padding: 0.5rem 0 0.5rem 1rem;
    border-left: 3px solid rgba(128, 128, 128, 0.45);
}
.lc-simple-page__body--rich pre,
.lc-simple-page__body--rich code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.92em;
}
.lc-simple-page__body--rich pre {
    overflow-x: auto;
    padding: 0.75rem 1rem;
    border-radius: 6px;
    margin: 0 0 1rem;
}
.lc-simple-page__body--rich table {
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 1rem;
    font-size: 0.95em;
}
.lc-simple-page__body--rich th,
.lc-simple-page__body--rich td {
    border: 1px solid rgba(128, 128, 128, 0.35);
    padding: 0.45rem 0.6rem;
    vertical-align: top;
}
.lc-simple-page__body--rich img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0.5rem 0 1rem;
}
.lc-simple-page__body--rich a {
    text-decoration: underline;
    text-underline-offset: 2px;
}
.section-bg-dark .lc-simple-page__body--rich,
.section-bg-accent .lc-simple-page__body--rich {
    color: rgba(255, 255, 255, 0.92);
}
.section-bg-dark .lc-simple-page__body--rich a,
.section-bg-accent .lc-simple-page__body--rich a {
    color: #fff;
}
.section-bg-light .lc-simple-page__body--rich,
.section-bg-white .lc-simple-page__body--rich,
.section-bg-section .lc-simple-page__body--rich {
    color: rgba(10, 10, 10, 0.85);
}
.section-bg-light .lc-simple-page__body--rich a,
.section-bg-white .lc-simple-page__body--rich a,
.section-bg-section .lc-simple-page__body--rich a {
    color: inherit;
}

/* ── ABOUT ────────────────────────────────────────────────────────────── */
.lc-about-text {
    font-family: var(--font-sans);
    font-size: var(--type-body);
    font-weight: 400;
    line-height: var(--lh-body);
    color: var(--text-secondary, #444);
    white-space: pre-line;
}
.lc-about-img-wrap {
    border-radius: var(--mirror-radius-lg, 8px);
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0,0,0,.12);
}
.lc-about-img-wrap img { width: 100%; display: block; object-fit: cover; }
.lc-about-placeholder { height: 400px; display: flex; align-items: center; justify-content: center; }
.lc-about-graphic { display: flex; gap: 16px; align-items: flex-end; }
.lc-ag-bar {
    width: 48px;
    background: var(--accent, #c41230);
    border-radius: 4px 4px 0 0;
    opacity: .7;
    animation: barPulse 2s ease-in-out infinite;
}
.lc-ag-bar:nth-child(1) { height: 80px; animation-delay: 0s; }
.lc-ag-bar:nth-child(2) { height: 140px; animation-delay: .3s; }
.lc-ag-bar:nth-child(3) { height: 110px; animation-delay: .6s; }
@keyframes barPulse { 0%,100% { opacity:.4; } 50% { opacity:.9; } }

/* ── STATS (split header + 4-up editorial cards, ref LeftCoast) ─────── */
.lc-stats--editorial {
    --lc-stat-max-h: min(16rem, 52vw);
}
@media (min-width: 721px) {
    .lc-stats--editorial {
        --lc-stat-max-h: min(15rem, 32vw);
    }
}
@media (min-width: 1025px) {
    .lc-stats--editorial {
        --lc-stat-max-h: min(13.5rem, 22vw);
    }
}
.lc-stats--editorial .lc-stats-split-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(1.5rem, 5vw, 4rem);
    align-items: start;
    margin-bottom: clamp(2.25rem, 5vw, 3.5rem);
    width: 100%;
}
.lc-stats-split-head__title {
    margin: 0;
    font-family: var(--font-sans);
    font-size: var(--type-display);
    font-weight: 700;
    line-height: var(--lh-display);
    letter-spacing: -0.035em;
    color: var(--text-primary, #0a0a0a);
    max-width: 20ch;
}
.lc-stats-split-head__lead {
    margin: 0;
    justify-self: end;
    max-width: 50ch;
    font-family: var(--font-sans);
    font-size: var(--type-lede);
    line-height: 1.65;
    color: #6b7280;
    font-weight: 500;
    text-align: left;
    white-space: pre-line;
}
.lc-stats-split-head--single {
    grid-template-columns: 1fr;
}
.lc-stats-split-head--single .lc-stats-split-head__lead {
    justify-self: start;
    max-width: none;
}
.section-bg-dark .lc-stats-split-head__title {
    color: var(--text-on-dark, #f5f5f3);
}
.section-bg-dark .lc-stats-split-head__lead {
    color: rgba(255, 255, 255, 0.72);
}
@media (max-width: 800px) {
    .lc-stats--editorial .lc-stats-split-head:not(.lc-stats-split-head--single) {
        grid-template-columns: 1fr;
    }
    .lc-stats-split-head__lead {
        justify-self: start;
        max-width: none;
    }
}
.lc-stats-editorial-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(0.75rem, 1.8vw, 1.1rem);
}
.lc-stat-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    width: 100%;
    min-height: min(10.5rem, var(--lc-stat-max-h));
    max-height: var(--lc-stat-max-h);
    padding: 1.15rem 1.2rem;
    background: #fff;
    border-radius: 1.25rem;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 10px 28px rgba(15, 23, 42, 0.06);
    border: 1px solid rgba(15, 23, 42, 0.06);
    text-align: left;
    box-sizing: border-box;
}
.lc-stat-card__icon {
    font-size: 1.4rem;
    line-height: 1;
    color: var(--text-primary, #0a0a0a);
}
.lc-stat-card__icon i {
    font-weight: 300;
    font-style: normal;
    display: block;
}
.lc-stat-card__body {
    margin-top: auto;
    width: 100%;
    padding-top: 0;
}
.lc-stat-card__number {
    font-family: var(--font-sans);
    font-size: var(--type-card-figure);
    font-weight: 700;
    line-height: 0.98;
    letter-spacing: -0.04em;
    font-variant-numeric: tabular-nums;
    color: var(--text-primary, #0a0a0a);
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .06em;
}
.lc-stat-card__number .lc-stat-suffix { font-size: .58em; font-weight: 700; }
.lc-stat-card__label {
    margin-top: 0.45rem;
    font-family: var(--font-sans);
    font-size: var(--type-card-label);
    line-height: 1.4;
    color: #6b7280;
    font-weight: 600;
}

/* Stats — flip cards (match reference: square tile, icon top / value bottom, click to flip) */
.lc-stat-flip {
    position: relative;
    width: 100%;
}
.lc-stat-flip-perspective {
    position: relative;
    width: 100%;
    max-height: var(--lc-stat-max-h);
    aspect-ratio: 5 / 6;
    margin: 0 auto;
    perspective: 1200px;
    -webkit-perspective: 1200px;
    box-sizing: border-box;
}
.lc-stat-flip-static-icon {
    position: relative;
    flex: 0 0 auto;
    z-index: 2;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: clamp(2.35rem, 2.7vw, 3rem);
    height: clamp(2.35rem, 2.7vw, 3rem);
    margin: 0;
    border-radius: 0.85rem;
    border: 1px solid rgba(15, 23, 42, 0.1);
    background: rgba(15, 23, 42, 0.035);
    font-size: clamp(1.1rem, 1.25vw, 1.45rem);
    line-height: 1;
    color: var(--text-primary, #0a0a0a);
    pointer-events: none;
}
.lc-stat-flip-static-icon i {
    display: block;
    font-weight: 300;
    font-style: normal;
}
.lc-stat-flip-inner {
    position: absolute;
    inset: 0;
    cursor: pointer;
    transform-style: preserve-3d;
    -webkit-transform-style: preserve-3d;
    will-change: transform;
    transition: transform 0.55s cubic-bezier(0.22, 0.61, 0.36, 1);
    border-radius: 1.25rem;
    outline: none;
}
.lc-stat-flip-inner:focus-visible {
    box-shadow: 0 0 0 3px rgba(196, 18, 48, 0.35);
}
.lc-stat-flip-inner.is-flipped {
    transform: rotateY(180deg);
    -webkit-transform: rotateY(180deg);
}
/* Hover preview (fine pointers); click still toggles .is-flipped — see JS suppress-hover-flip */
@media (hover: hover) and (pointer: fine) {
    .lc-stat-flip-perspective:hover .lc-stat-flip-inner:not(.is-flipped):not(.suppress-hover-flip) {
        transform: rotateY(180deg);
        -webkit-transform: rotateY(180deg);
    }
}
@media (prefers-reduced-motion: reduce) {
    .lc-stat-flip-inner {
        transition: none;
    }
    .lc-stat-flip-perspective:hover .lc-stat-flip-inner:not(.is-flipped):not(.suppress-hover-flip) {
        transform: none;
    }
}
.lc-stat-flip-face {
    position: absolute;
    inset: 0;
    /* Flex avoids grid + absolute edge cases where the icon row can collide with caption text on narrow screens */
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    text-align: left;
    padding: 1rem 1.2rem 1.15rem;
    border-radius: 1.25rem;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.06);
    box-shadow:
        0 1px 2px rgba(0, 0, 0, 0.04),
        0 12px 32px rgba(15, 23, 42, 0.06),
        0 0 0 1px rgba(196, 18, 48, 0.04);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    overflow: hidden;
    gap: 0.4rem;
    isolation: isolate;
}
.lc-stat-flip-face--front {
    /* Separate GPU layers — WebKit often leaks the “back” face (duplicate icon) without translateZ */
    transform: rotateY(0deg) translateZ(1px);
    -webkit-transform: rotateY(0deg) translateZ(1px);
}
.lc-stat-flip-face--back {
    padding-top: 1rem;
    background:
        linear-gradient(135deg, rgba(15, 23, 42, 0.035), rgba(255, 255, 255, 0) 46%),
        #fff;
    transform: rotateY(180deg) translateZ(1px);
    -webkit-transform: rotateY(180deg) translateZ(1px);
}
.lc-stat-flip-face__stack {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    width: 100%;
    min-height: 0;
    justify-content: flex-end;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}
.lc-stat-flip-face__stack--back {
    justify-content: flex-start;
    overflow: auto;
    padding-right: 0.15rem;
}
.lc-stat-flip__value {
    font-family: var(--font-sans);
    font-size: var(--type-card-figure);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 0.95;
    color: var(--text-primary, #0a0a0a);
    font-variant-numeric: tabular-nums;
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.04em;
}
.lc-stat-flip__suffix {
    font-size: 0.55em;
    font-weight: 700;
}
.lc-stat-flip__caption {
    margin: 0;
    padding-left: 0.125rem;
    font-family: var(--font-sans);
    font-size: var(--type-card-label);
    line-height: 1.4;
    color: var(--text-muted, #6b7280);
    font-weight: 600;
}
.lc-stat-flip__backtext {
    margin: 0;
    font-family: var(--font-sans);
    font-size: clamp(0.86rem, 0.95vw, 1.02rem);
    line-height: 1.48;
    color: var(--text-primary, #0a0a0a);
    font-weight: 500;
    overflow-wrap: anywhere;
}
.section-bg-dark .lc-stat-flip-face {
    background: rgba(255, 255, 255, 0.07);
    border-color: rgba(255, 255, 255, 0.12);
    box-shadow: none;
}
.section-bg-dark .lc-stat-flip-face--back {
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0) 48%),
        rgba(255, 255, 255, 0.07);
}
.section-bg-dark .lc-stat-flip-static-icon,
.section-bg-dark .lc-stat-flip__value,
.section-bg-dark .lc-stat-flip__backtext {
    color: var(--text-on-dark, #f5f5f3);
}
.section-bg-dark .lc-stat-flip-static-icon {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.14);
}
.section-bg-dark .lc-stat-flip__caption {
    color: rgba(255, 255, 255, 0.68);
}

.section-bg-dark .lc-stat-card {
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.12);
    box-shadow: none;
}
.section-bg-dark .lc-stat-card__icon,
.section-bg-dark .lc-stat-card__number { color: var(--text-on-dark, #f5f5f3); }
.section-bg-dark .lc-stat-card__label { color: rgba(255,255,255,.65); }
@media (max-width: 1024px) {
    .lc-stats-editorial-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
    /* Narrow tiles: flex-end on a flex:1 stack let long titles collide with the icon on WebKit */
    .lc-stat-flip-face--front .lc-stat-flip-face__stack {
        flex: 0 1 auto;
        min-height: 0;
        justify-content: flex-start;
    }
    .lc-stat-flip-static-icon {
        flex-shrink: 0;
    }
}
@media (max-width: 720px) {
    .lc-stats-editorial-grid { grid-template-columns: 1fr; }
    .lc-stat-flip__value,
    .lc-stat-flip-mobile .lc-stat-flip__value {
        font-size: clamp(1.5rem, 6.5vw, 2.1rem);
    }
    .lc-stat-flip-mobile__card {
        min-height: clamp(18rem, 62vw, 24rem);
        gap: 0.95rem;
        padding-top: 1.35rem;
    }
}

/* ≤992px: no 3D flip — headline + body stack in one taller card (WebKit-safe) */
@media (max-width: 991.98px) {
    .lc-stat-flip-perspective {
        aspect-ratio: unset;
        max-height: none;
        height: auto;
        perspective: none;
        -webkit-perspective: none;
    }
    .lc-stat-flip-inner {
        position: relative;
        inset: auto;
        width: 100%;
        min-height: clamp(13rem, 42vw, 16rem);
        height: auto;
        transform: none !important;
        -webkit-transform: none !important;
        transform-style: flat !important;
        -webkit-transform-style: flat !important;
        will-change: auto;
        cursor: default;
        transition: none;
        border-radius: 1.25rem;
        background: #fff;
        border: 1px solid rgba(15, 23, 42, 0.06);
        box-shadow:
            0 1px 2px rgba(0, 0, 0, 0.04),
            0 12px 32px rgba(15, 23, 42, 0.06),
            0 0 0 1px rgba(196, 18, 48, 0.04);
        overflow: hidden;
        padding: 1.1rem 1.15rem 1.25rem;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0.55rem;
        box-sizing: border-box;
    }
    .lc-stat-flip-face {
        position: relative;
        inset: auto;
        flex: 0 1 auto;
        width: 100%;
        min-height: 0;
        transform: none !important;
        -webkit-transform: none !important;
        backface-visibility: visible !important;
        -webkit-backface-visibility: visible !important;
        isolation: auto;
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        padding: 0;
        overflow: visible;
        gap: 0.45rem;
    }
    .lc-stat-flip-face--back {
        padding-top: 0.7rem;
        margin-top: 0.1rem;
        border-top: 1px solid rgba(15, 23, 42, 0.1) !important;
        background: transparent !important;
    }
    .lc-stat-flip-face--back .lc-stat-flip-static-icon {
        display: none;
    }
    .lc-stat-flip-face--front .lc-stat-flip-face__stack {
        flex: 0 1 auto;
        justify-content: flex-start;
    }
    .lc-stat-flip-face__stack--back {
        overflow: visible;
        max-height: none;
        flex: 0 1 auto;
    }
    .lc-stat-flip__backtext {
        font-size: clamp(0.88rem, 2.8vw, 0.95rem);
        line-height: 1.55;
    }
    .lc-stat-flip-perspective:hover .lc-stat-flip-inner {
        transform: none !important;
        -webkit-transform: none !important;
    }
    .section-bg-dark .lc-stat-flip-inner {
        background: rgba(255, 255, 255, 0.07);
        border-color: rgba(255, 255, 255, 0.12);
        box-shadow: none;
    }
    .section-bg-dark .lc-stat-flip-face--back {
        border-top-color: rgba(255, 255, 255, 0.14) !important;
    }
}

/* Flat stats (< Bootstrap lg): markup from stat-card.blade.php — not 3D, cannot overlap faces */
.lc-stat-flip-mobile {
    position: relative;
    width: 100%;
}
.lc-stat-flip-mobile__card {
    border-radius: 1.25rem;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.06);
    box-shadow:
        0 1px 2px rgba(0, 0, 0, 0.04),
        0 12px 32px rgba(15, 23, 42, 0.06),
        0 0 0 1px rgba(196, 18, 48, 0.04);
    padding: 1.25rem 1.15rem 1.35rem;
    min-height: clamp(17rem, 56vw, 22rem);
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.85rem;
    box-sizing: border-box;
}
.lc-stat-flip-mobile .lc-stat-flip-static-icon {
    flex-shrink: 0;
    align-self: flex-start;
    margin-bottom: 0.15rem;
}
/* Tight .lc-stat-flip__value line-height (0.95) lets large titles paint into the row above — clears the icon */
.lc-stat-flip-mobile .lc-stat-flip__value {
    line-height: 1.18;
    margin: 0;
    padding-top: 0.12em;
}
.lc-stat-flip-mobile__stack {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    width: 100%;
    flex: 1 1 auto;
    min-height: 0;
}
.lc-stat-flip-mobile .lc-stat-flip__caption {
    margin: 0;
    line-height: 1.45;
}
.lc-stat-flip-mobile__rule {
    display: block;
    height: 0;
    margin: 0.2rem 0 0;
    border: 0;
    border-top: 1px solid rgba(15, 23, 42, 0.1);
}
.lc-stat-flip-mobile__backtext {
    margin: 0;
}
.section-bg-dark .lc-stat-flip-mobile__card {
    background: rgba(255, 255, 255, 0.07);
    border-color: rgba(255, 255, 255, 0.12);
    box-shadow: none;
}
.section-bg-dark .lc-stat-flip-mobile__rule {
    border-top-color: rgba(255, 255, 255, 0.14);
}

/* ── TEAM ─────────────────────────────────────────────────────────────── */
/* Bootstrap `g-4` is 1.5rem; widen horizontal + vertical gutters on large screens. */
.lc-team > .lc-container > .row {
    --bs-gutter-x: clamp(1.75rem, 4vw, 4.25rem);
    --bs-gutter-y: clamp(2.5rem, 5.5vw, 5.5rem);
}
.lc-team-card { text-align: center; }
.lc-team-photo {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    overflow: hidden;
    margin: 0 auto 1.5rem;
    background: var(--bg-section, #edecea);
    display: flex;
    align-items: center;
    justify-content: center;
}
.lc-team-photo img { width: 100%; height: 100%; object-fit: cover; }
.lc-team-photo--placeholder { font-size: 3.25rem; color: var(--text-muted, #888); }
.lc-team-name { font-size: .95rem; font-weight: 700; margin-bottom: .3rem; }
.lc-team-title { font-size: .82rem; color: var(--accent, #c41230); font-weight: 600; margin-bottom: .5rem; }
.lc-team-bio {
    font-family: var(--font-sans);
    font-size: var(--type-body);
    font-weight: 400;
    color: var(--text-muted, #888);
    line-height: var(--lh-body);
    white-space: pre-line;
}

/* ── TESTIMONIALS ─────────────────────────────────────────────────────── */
.lc-testimonials .lc-section-header {
    max-width: min(48rem, 100%);
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 2.5rem;
    text-align: center;
}
.lc-testimonials-swiper {
    padding-bottom: 3rem !important;
    max-width: min(48rem, 100%);
    margin-left: auto;
    margin-right: auto;
}
.lc-testimonials .lc-testimonial {
    text-align: center;
}
.lc-testimonial {
    border: none;
    padding: clamp(1.75rem, 4vw, 3rem);
    background: var(--bg-card, #fff);
    border-radius: var(--mirror-radius-lg, 8px);
    box-shadow: 0 4px 24px rgba(0,0,0,.07);
}
.lc-testimonial--single {
    max-width: min(48rem, 100%);
    margin-left: auto;
    margin-right: auto;
}
.section-bg-dark .lc-testimonial { background: rgba(255,255,255,.06); }
.lc-testimonial-quote {
    font-family: var(--font-sans);
    font-size: var(--type-body);
    font-weight: 400;
    line-height: var(--lh-body);
    font-style: italic;
    color: var(--text-primary, #0a0a0a);
    margin: 0 auto 1.5rem;
    max-width: 42rem;
}
.section-bg-dark .lc-testimonial-quote { color: var(--text-on-dark, #f0f0ee); }
.lc-testimonial-author strong { display: block; font-weight: 700; font-style: normal; }
.lc-testimonial-author span { font-size: .8rem; color: var(--text-muted, #888); font-style: normal; }
.lc-swiper-pagination { bottom: 0 !important; }
.lc-swiper-pagination .swiper-pagination-bullet-active { background: var(--accent, #c41230) !important; }

/* ── CONTACT ──────────────────────────────────────────────────────────── */
.lc-contact-inner { text-align: center; max-width: 640px; margin: 0 auto; }
.lc-contact-heading {
    font-family: var(--font-sans);
    font-size: var(--type-display);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: var(--lh-display);
    margin-bottom: 1.5rem;
}
.lc-contact-sub {
    font-family: var(--font-sans);
    font-size: var(--type-lede);
    font-weight: 500;
    opacity: .75;
    line-height: 1.65;
    margin-bottom: 2rem;
}
.lc-contact-details { display: flex; flex-wrap: wrap; gap: 1rem 1.75rem; justify-content: flex-start; margin-bottom: 1rem; }
.lc-contact-item {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: .85rem;
    color: inherit;
    opacity: .8;
    text-decoration: none;
    transition: opacity var(--mirror-transition, .22s ease);
}
.lc-contact-item:hover { opacity: 1; }
.lc-contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
    gap: clamp(1.75rem, 3.5vw, 3rem);
    align-items: stretch;
}
.lc-contact-info {
    padding: clamp(0.25rem, 1.2vw, 1rem) 1rem 1rem;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.lc-contact-heading { margin-bottom: clamp(0.65rem, 1.8vw, 1.1rem); }
.lc-contact-sub { margin-bottom: clamp(0.85rem, 2vw, 1.5rem); }
.lc-contact-map {
    position: relative;
    width: 100%;
    margin-top: clamp(0.65rem, 1.8vw, 1.25rem);
    border-radius: 14px;
    overflow: hidden;
    line-height: 0;
    aspect-ratio: 4 / 3;
    max-height: min(560px, 58vh);
    min-height: min(340px, 42vw);
    background: linear-gradient(165deg, rgba(30, 58, 95, 0.4), rgba(15, 23, 42, 0.55));
    box-shadow:
        0 22px 55px rgba(0, 0, 0, 0.38),
        inset 0 1px 0 rgba(255, 255, 255, 0.07);
}
.lc-contact-map iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 14px;
    display: block;
    /* Cool blue–slate tone (matches dark UI; no Maps API styling required) */
    filter: grayscale(0.7) contrast(1.12) brightness(1.05) saturate(0.5) sepia(0.18) hue-rotate(178deg);
}
.section-bg-white .lc-contact-map iframe,
.section-bg-light .lc-contact-map iframe,
.section-bg-section .lc-contact-map iframe {
    filter: grayscale(0.25) contrast(1.04) brightness(1.03) saturate(0.85);
}
@media (prefers-reduced-motion: reduce) {
    .section-bg-dark .lc-contact-map iframe,
    .section-bg-accent .lc-contact-map iframe {
        filter: grayscale(0.45) contrast(1.06) brightness(1.02);
    }
    .section-bg-white .lc-contact-map iframe,
    .section-bg-light .lc-contact-map iframe,
    .section-bg-section .lc-contact-map iframe {
        filter: grayscale(0.15) contrast(1.02) brightness(1.02);
    }
}
/* Contact form — match brief: airy spacing, thin borders, 2px corners, labels above, charcoal send (right). */
.lc-contact-form-wrap {
    --lc-cf-radius: 2px;
    background: rgba(15, 23, 42, 0.52);
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 6px;
    padding: clamp(2rem, 4.5vw, 3.25rem);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.26);
}
.lc-contact-form {
    display: flex;
    flex-direction: column;
    gap: 1.65rem;
    max-width: none;
    margin-inline: 0;
}
.lc-contact-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem 1.5rem;
}
.lc-contact-form input,
.lc-contact-form textarea {
    width: 100%;
    border: 1px solid rgba(148, 163, 184, 0.28);
    background: rgba(15, 23, 42, 0.55);
    color: inherit;
    border-radius: var(--lc-cf-radius, 2px);
    padding: 1.1rem 1.1rem;
    font-size: 0.9375rem;
    line-height: 1.5;
    min-height: 3.45rem;
    box-shadow: none;
    transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}
.lc-contact-form textarea {
    resize: vertical;
    min-height: 13rem;
}
.lc-contact-form input::placeholder,
.lc-contact-form textarea::placeholder {
    color: rgba(226, 232, 240, 0.42);
}
.lc-contact-form input:focus,
.lc-contact-form textarea:focus {
    outline: none;
    border-color: rgba(203, 213, 225, 0.65);
    background: rgba(15, 23, 42, 0.72);
    box-shadow: 0 0 0 2px rgba(148, 163, 184, 0.2);
}
.lc-contact-form select {
    width: 100%;
    border: 1px solid rgba(148, 163, 184, 0.28);
    background: rgba(15, 23, 42, 0.55);
    color: inherit;
    border-radius: var(--lc-cf-radius, 2px);
    padding: 1.1rem 1.1rem;
    font-size: 0.9375rem;
    line-height: 1.5;
    min-height: 3.35rem;
    box-shadow: none;
    transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}
.lc-contact-form select:focus {
    outline: none;
    border-color: rgba(203, 213, 225, 0.65);
    background: rgba(15, 23, 42, 0.72);
    box-shadow: 0 0 0 2px rgba(148, 163, 184, 0.2);
}
.lc-contact-form--builder .lc-contact-form-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.55rem 1.5rem;
    margin-bottom: 0.25rem;
}
.lc-contact-field--full { grid-column: 1 / -1; }
.lc-contact-field__label {
    display: block;
    font-family: var(--font-sans);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    text-transform: none;
    margin-bottom: 0.4rem;
    color: rgba(226, 232, 240, 0.88);
}
.lc-contact-req { color: #ef4444; font-weight: 700; margin-left: 0.2em; }
.lc-contact-fieldset {
    border: 0;
    margin: 0;
    padding: 0;
    min-width: 0;
}
.lc-contact-fieldset .lc-contact-field__label { margin-bottom: 0.55rem; }
.lc-contact-choice-list {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}
.lc-contact-check {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    font-size: 0.9rem;
    line-height: 1.5;
    cursor: pointer;
    color: rgba(241, 245, 249, 0.9);
}
.lc-contact-check input {
    width: auto;
    margin-top: 0.2rem;
    flex-shrink: 0;
}
.lc-contact-check--solo { margin-top: 0.2rem; }
.lc-contact-form__feedback {
    width: 100%;
    margin-bottom: 1rem;
    padding: 0.75rem 1rem;
    border-radius: var(--lc-cf-radius, 2px);
    font-size: 0.875rem;
    line-height: 1.45;
}
.lc-contact-form__feedback--success {
    background: rgba(16, 185, 129, 0.12);
    border: 1px solid rgba(16, 185, 129, 0.35);
    color: #a7f3d0;
}
.lc-contact-form__feedback--error {
    background: rgba(248, 113, 113, 0.1);
    border: 1px solid rgba(248, 113, 113, 0.35);
    color: #fecaca;
}
.section-bg-white .lc-contact-form__feedback--success,
.section-bg-light .lc-contact-form__feedback--success,
.section-bg-section .lc-contact-form__feedback--success {
    color: #047857;
    background: rgba(16, 185, 129, 0.12);
    border-color: rgba(16, 185, 129, 0.35);
}
.section-bg-white .lc-contact-form__feedback--error,
.section-bg-light .lc-contact-form__feedback--error,
.section-bg-section .lc-contact-form__feedback--error {
    color: #b91c1c;
    background: rgba(248, 113, 113, 0.12);
    border-color: rgba(248, 113, 113, 0.35);
}
.lc-contact-field--invalid > input,
.lc-contact-field--invalid > textarea,
.lc-contact-field--invalid > select {
    border-color: #f87171 !important;
}
.lc-contact-field--invalid .lc-contact-choice-list,
.lc-contact-fieldset.lc-contact-field--invalid .lc-contact-choice-list {
    outline: 1px solid rgba(248, 113, 113, 0.55);
    outline-offset: 2px;
    border-radius: var(--lc-cf-radius, 2px);
}
.lc-contact-turnstile {
    display: flex;
    justify-content: flex-end;
    min-height: 78px;
}
.lc-contact-turnstile .cf-turnstile {
    max-width: 100%;
}
@media (max-width: 380px) {
    .lc-contact-turnstile .cf-turnstile {
        transform: scale(0.86);
        transform-origin: right top;
    }
}
.lc-contact-submit__spinner {
    display: none;
    line-height: 0;
}
.lc-contact-submit__spinner i {
    display: block;
    font-size: 1.05rem;
}
.lc-contact-submit.is-busy .lc-contact-submit__icon {
    display: none;
}
.lc-contact-submit.is-busy .lc-contact-submit__spinner {
    display: inline-flex;
}
.lc-contact-submit.is-busy {
    pointer-events: none;
    opacity: 0.92;
}
@media (prefers-reduced-motion: no-preference) {
    .lc-contact-submit.is-busy .lc-contact-submit__spinner i {
        animation: lc-contact-spin 0.7s linear infinite;
    }
}
@keyframes lc-contact-spin {
    to { transform: rotate(360deg); }
}
.lc-contact-submit.lc-btn.lc-btn--primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 1.75rem;
    align-self: flex-end;
    margin-left: auto;
    padding: 1.05rem 2.75rem;
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: none;
    border-radius: var(--lc-cf-radius, 2px);
    border: 1px solid #1f2937;
    background: #1f2937;
    color: #f8fafc;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
    transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}
.lc-contact-submit.lc-btn.lc-btn--primary:hover {
    background: #111827;
    border-color: #111827;
    color: #fff;
    transform: none;
}
@media (prefers-reduced-motion: no-preference) {
    .lc-contact-submit.lc-btn.lc-btn--primary:hover {
        transform: translateY(-1px);
    }
}
.section-bg-white .lc-contact-form input,
.section-bg-white .lc-contact-form textarea,
.section-bg-white .lc-contact-form select,
.section-bg-light .lc-contact-form input,
.section-bg-light .lc-contact-form textarea,
.section-bg-light .lc-contact-form select,
.section-bg-section .lc-contact-form input,
.section-bg-section .lc-contact-form textarea,
.section-bg-section .lc-contact-form select {
    background: #ffffff;
    color: #0f172a;
    border: 1px solid #e5e7eb;
    box-shadow: none;
}
.section-bg-white .lc-contact-form input:focus,
.section-bg-white .lc-contact-form textarea:focus,
.section-bg-white .lc-contact-form select:focus,
.section-bg-light .lc-contact-form input:focus,
.section-bg-light .lc-contact-form textarea:focus,
.section-bg-light .lc-contact-form select:focus,
.section-bg-section .lc-contact-form input:focus,
.section-bg-section .lc-contact-form textarea:focus,
.section-bg-section .lc-contact-form select:focus {
    border-color: #94a3b8;
    background: #fff;
    box-shadow: 0 0 0 2px rgba(15, 23, 42, 0.06);
}
.section-bg-white .lc-contact-form input::placeholder,
.section-bg-white .lc-contact-form textarea::placeholder,
.section-bg-light .lc-contact-form input::placeholder,
.section-bg-light .lc-contact-form textarea::placeholder,
.section-bg-section .lc-contact-form input::placeholder,
.section-bg-section .lc-contact-form textarea::placeholder {
    color: rgba(100, 116, 139, 0.85);
}
.section-bg-white .lc-contact-field__label,
.section-bg-light .lc-contact-field__label,
.section-bg-section .lc-contact-field__label {
    color: #64748b;
}
.section-bg-white .lc-contact-check,
.section-bg-light .lc-contact-check,
.section-bg-section .lc-contact-check {
    color: #475569;
}
.section-bg-white .lc-contact-form-wrap,
.section-bg-light .lc-contact-form-wrap,
.section-bg-section .lc-contact-form-wrap {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
@media (max-width: 575.98px) {
    .lc-contact-form--builder .lc-contact-form-fields {
        grid-template-columns: 1fr;
    }
    .lc-contact-field--half { grid-column: 1 / -1; }
}

/* ── Full image (single photo) ─────────────────────────────────────────── */
.lc-section.lc-full-image {
    padding-top: clamp(1.25rem, 3vw, 2.75rem);
    padding-bottom: clamp(1.25rem, 3vw, 2.75rem);
}
.lc-full-image__figure {
    margin: 0;
    width: 100%;
    min-height: var(--lc-full-image-min-h, 75vh);
    position: relative;
    overflow: hidden;
    border-radius: 2px;
}
.lc-full-image__img {
    /* Figure is position:relative + min-height — image must fill the frame */
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: var(--lc-full-image-fit, cover);
    object-position: center;
    display: block;
}
.lc-section.lc-full-image--width-full {
    padding-left: 0;
    padding-right: 0;
}

@media (max-width: 767.98px) {
    .lc-full-image__figure {
        min-height: 0;
    }
    .lc-full-image__img {
        position: static;
        inset: auto;
        width: 100%;
        max-width: 100%;
        height: auto;
        object-fit: var(--lc-full-image-fit, cover);
    }
}

/* ── Sticky process (pinned sidebar + phased scroll; image strip = lc-generic-slider-swiper) ─ */
.lc-sticky-process {
    --lc-sticky-process-top: clamp(4.75rem, 10vw, 6.25rem);
}
.lc-sticky-process__intro {
    max-width: 52rem;
    margin-bottom: clamp(1.75rem, 4vw, 2.75rem);
}
.lc-sticky-process__heading {
    font-size: clamp(1.65rem, 4vw, 2.35rem);
    font-weight: 600;
    letter-spacing: -0.02em;
    margin: 0 0 .5rem;
    line-height: 1.12;
}
.lc-sticky-process__sub {
    margin: 0;
    font-size: clamp(.95rem, 1.8vw, 1.05rem);
    opacity: .75;
}
.lc-sticky-process__grid {
    display: grid;
    grid-template-columns: minmax(9rem, 17%) 1fr;
    gap: clamp(1.25rem, 3vw, 2.75rem);
    align-items: start;
    /* Ease into the section so the first phase title is not glued to the top edge */
    padding-top: clamp(2rem, 12vh, 7rem);
    /* Prevent min-content blowout from wide slider children (do not use 100vw inside this column) */
    overflow-x: clip;
}
.lc-sticky-process__stack {
    min-width: 0;
}
.lc-sticky-process__sidebar {
    position: sticky;
    /* Below fixed header; do NOT use transform on this element — it breaks position:sticky in Chrome */
    top: var(--lc-sticky-process-top);
    align-self: start;
    z-index: 2;
    margin-top: 0;
    min-height: calc(100dvh - var(--lc-sticky-process-top));
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-top: 0;
}
.lc-sticky-process__nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
.lc-sticky-process__nav-link {
    display: block;
    text-decoration: none;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.35;
    padding: .45rem 0 .45rem 1.1em;
    position: relative;
    border-bottom: none;
    color: inherit;
    opacity: .55;
    transition: opacity .2s ease;
}
/* Active state: leading dot (no underline) */
.lc-sticky-process__nav-link::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    width: 7px;
    height: 7px;
    margin-top: -3.5px;
    border-radius: 50%;
    background: currentColor;
    opacity: 0;
    transform: scale(0.45);
    transition: opacity .22s ease, transform .22s ease;
}
.lc-sticky-process__nav-link:hover {
    opacity: .9;
}
.lc-sticky-process__nav-link.is-active {
    opacity: 1;
}
.lc-sticky-process__nav-link.is-active::before {
    opacity: 1;
    transform: scale(1);
}
.lc-sticky-process__panel {
    min-height: 100vh;
    min-height: 100dvh;
    scroll-margin-top: var(--lc-sticky-process-top);
    padding-bottom: clamp(2rem, 5vh, 4rem);
    display: flex;
    flex-direction: column;
    gap: clamp(1rem, 2vw, 1.5rem);
    min-width: 0;
}
.lc-sticky-process__panel-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: start;
    gap: .75rem 1.25rem;
    margin-top: clamp(1rem, 4.5vh, 2.25rem);
}
.lc-sticky-process__panel-title {
    margin: 0;
    font-size: clamp(1.5rem, 3.5vw, 2.5rem);
    font-weight: 600;
    letter-spacing: -0.02em;
    line-height: 1.1;
}
.lc-sticky-process__panel-duration {
    font-size: .82rem;
    font-weight: 500;
    opacity: .55;
    white-space: nowrap;
}
.lc-sticky-process__panel-body {
    max-width: 52rem;
    font-size: clamp(.92rem, 1.6vw, 1.05rem);
    line-height: 1.65;
    opacity: .92;
}
.lc-sticky-process__slider-wrap {
    margin-top: .25rem;
    min-height: 0;
    flex-shrink: 0;
    width: 100%;
    min-width: 0;
}
.lc-sticky-process__slider-wrap .lc-slider-media {
    width: 100%;
    /* max-width: min(1200px, 100%); */
    margin: 0.35rem 0 0;
}
.lc-sticky-process__slider-wrap .lc-generic-slider-swiper.is-single {
    padding-bottom: 0.35rem;
}
.lc-sticky-process__slider-wrap .lc-generic-slider-swiper.is-single .lc-slider-arrow {
    display: none;
}

@media (max-width: 900px) {
    .lc-sticky-process__slider-wrap .lc-slider-media {
        gap: clamp(2rem, 5.5vw, 3.5rem);
    }
    .lc-sticky-process__grid {
        grid-template-columns: 1fr;
        padding-top: clamp(1rem, 5vh, 2.75rem);
    }
    .lc-sticky-process__sidebar {
        display: none;
    }
    /* Mobile: no viewport min-height — panel height follows content only */
    .lc-sticky-process__panel {
        min-height: unset;
        height: auto;
    }
}

/* ── GSAP animation base states ───────────────────────────────────────── */
.gsap-fade-up { opacity: 0; transform: translateY(32px); }
.gsap-delay-1 { --gsap-delay: 0.14s; }
.gsap-delay-2 { --gsap-delay: 0.28s; }
/* 3D flip needs no transform on this ancestor — any transform flattens preserve-3d and breaks back faces */
.lc-stat-flip.gsap-fade-up { transform: none; }
/* Services flip: column has .gsap-fade-up — translateY on it kills child rotateY; keep opacity-only initial state */
.gsap-fade-up:has(.lc-service-flip-inner) {
    transform: none;
}
/* Swiper measures its root against the viewport — translateY on an ancestor breaks width/height (often “blank” slides). */
.gsap-fade-up:has(.swiper),
.gsap-fade-up--no-shift {
    transform: none;
}

/* Hero copy reveals on load via pure CSS so the LCP element paints immediately
   instead of waiting for the GSAP CDN bundle (Bootstrap → Swiper → GSAP →
   ScrollTrigger → sections.js). GSAP leaves these elements alone once it loads
   (see initGSAP in sections.js). animation-fill-mode:both overrides the base
   .gsap-fade-up{opacity:0} so the heading is never permanently hidden. */
@keyframes lcHeroReveal {
    from { opacity: 0; transform: translateY(36px); }
    to   { opacity: 1; transform: translateY(0); }
}
/* Supporting hero copy (subheading, buttons) can fade up — it isn't the LCP element. */
#hero .lc-hero__inner > .gsap-fade-up {
    animation: lcHeroReveal 0.88s cubic-bezier(0.16, 1, 0.3, 1) both;
    animation-delay: calc(0.1s + var(--gsap-delay, 0s));
}
/* The hero heading is the LCP element. An opacity fade-in delays LCP until the
   animation finishes, so the heading stays fully opaque and reveals with a
   transform-only slide — it counts as painted at first paint (best LCP). */
@keyframes lcHeroHeadingReveal {
    from { transform: translateY(24px); }
    to   { transform: translateY(0); }
}
#hero .lc-hero__inner > .lc-hero__heading.gsap-fade-up {
    opacity: 1;
    animation: lcHeroHeadingReveal 0.7s cubic-bezier(0.16, 1, 0.3, 1) both;
    animation-delay: 0s;
}
@media (prefers-reduced-motion: reduce) {
    #hero .lc-hero__inner > .gsap-fade-up,
    #hero .lc-hero__inner > .lc-hero__heading.gsap-fade-up {
        animation: none;
        opacity: 1;
        transform: none;
    }
}

/* ── Responsive ───────────────────────────────────────────────────────── */
@media (max-width: 991.98px) {
    .lc-section  { padding: 4rem 0; }
    .lc-hero {
        min-height: 100vh;
        min-height: 100dvh;
        height: 100vh;
        height: 100dvh;
        padding: 1.1rem .9rem;
        align-items: flex-end;
    }
    .lc-hero--left { justify-content: flex-start; }
    .lc-hero--centered { justify-content: center; }
    .lc-hero.lc-hero--mobile-left,
    .lc-hero.lc-hero--mobile-left-bottom { justify-content: flex-start; }
    .lc-hero.lc-hero--mobile-left-top { justify-content: flex-start; }
    .lc-hero.lc-hero--mobile-centered { justify-content: center; }
    .lc-hero.lc-hero--mobile-left,
    .lc-hero.lc-hero--mobile-centered { align-items: center; }
    .lc-hero.lc-hero--mobile-left-top { align-items: flex-start; }
    .lc-hero.lc-hero--mobile-left-bottom { align-items: flex-end; }
    .lc-hero.lc-hero--mobile-left .lc-hero__inner,
    .lc-hero.lc-hero--mobile-left-bottom .lc-hero__inner,
    .lc-hero.lc-hero--mobile-left-top .lc-hero__inner {
        margin-left: 0;
        margin-right: auto;
        text-align: left;
    }
    .lc-hero.lc-hero--mobile-centered .lc-hero__inner {
        margin-left: auto;
        margin-right: auto;
        text-align: center;
    }
    .lc-hero.lc-hero--mobile-centered .lc-hero__sub {
        margin-left: auto;
        margin-right: auto;
    }
    .lc-hero.lc-hero--mobile-centered .lc-hero__actions {
        justify-content: center;
    }
    .lc-hero__inner {
        width: 100%;
        box-sizing: border-box;
    }
    .lc-hero.lc-hero--slider {
        min-height: 100vh;
        min-height: 100dvh;
        height: 100vh;
        height: 100dvh;
    }
    .lc-hero.lc-hero--slider .lc-hero-swiper .swiper-slide {
        min-height: 100vh;
        min-height: 100dvh;
        align-items: flex-end;
    }
    .lc-hero.lc-hero--slider .lc-hero-slide-content {
        padding: 0.75rem 0.9rem 1rem;
        box-sizing: border-box;
    }
    .lc-hero.lc-hero--has-mobile-bg {
        background-image: var(--hero-bg-image-mobile) !important;
        background-size: cover;
        background-position: center;
    }
    .lc-hero.lc-hero--has-mobile-bg .lc-hero-mobile-bg {
        display: block !important;
    }
    /* Extra air between hero and the first content block on small screens */
    .lc-hero + .lc-section {
        margin-top: clamp(1rem, 3vw, 1.5rem);
    }
    .lc-hero__scroll-hint {
        display: none;
    }
    .lc-stats-grid { grid-template-columns: repeat(2, 1fr); gap: 2rem; }
    .lc-contact-details { flex-direction: column; align-items: center; }
    .lc-contact-grid { grid-template-columns: 1fr; }
    .lc-contact-row { grid-template-columns: 1fr; }
    .lc-contact-map {
        max-height: min(460px, 72vw);
        min-height: 220px;
    }
    .lc-slider-arrow { display: flex; }
    .lc-slider-shell,
    .lc-slider-shell.lc-slider-shell--right {
        grid-template-columns: 1fr;
    }
    .lc-slider-copy { padding: 1rem 0 .5rem; }
    .lc-slider-shell.lc-slider-shell--right .lc-slider-copy { order: 1; }
    .lc-slider-shell.lc-slider-shell--right .lc-generic-slider-swiper { order: 2; }
    .lc-slider-media {
        gap: clamp(2rem, 5vw, 3.25rem);
    }
    .lc-sticky-timeline__grid { grid-template-columns: 1fr; }
    .lc-sticky-timeline__left {
        position: static;
        display: block;
    }
    .lc-sticky-timeline__sticky {
        position: static;
        height: auto;
        max-height: none;
        display: block;
        padding-bottom: 0;
    }
    .lc-sticky-timeline__list {
        max-width: none;
        margin-inline: 0;
        padding-left: 1.35rem;
    }
    .lc-sticky-timeline__list::before {
        left: .45rem;
        transform: none;
    }
    .lc-sticky-timeline__dot {
        left: .45rem;
        transform: translate(-50%, 0);
    }
    .lc-sticky-timeline__item.is-active .lc-sticky-timeline__dot {
        transform: translate(-50%, 0) scale(1.08);
    }
    .lc-sticky-timeline__card {
        width: auto;
        margin-left: 1rem !important;
        margin-right: 0 !important;
    }
    .lc-workflow__row {
        --wf-overlap: 0.15;
    }
}
