/* Landing Page Builder — public sections (theme-2)
 *
 * Every section renders as .lp-section.lp-{type}.lp-variant-{key}, produced
 * by functions/guest/landing-section-renderer.php. The CTA banner section is
 * not styled here — it delegates to the CTA renderer and cta-designs.css.
 * Brand colours come from the :root variables in includes/color-theme.php. */

.lp-page {
    overflow-x: hidden;
}

.lp-section {
    padding: calc(64px * var(--lp-space-scale, 1)) 0;
}

/* ---------------------------------------------- card surface --
 *
 * Whether a design draws cards used to be baked into the variant, which left
 * "Card shadow", "Corners" and "Card border" doing nothing on the plain
 * layouts. lp-card-on gives any repeated item a card surface; lp-card-off
 * takes it away from the designs that ship with one. Both read the same
 * --lp-card-* variables the built-in card designs read, so the shadow, corner
 * and border controls reach every section either way. */

.lp-section.lp-card-on .lp-feature,
.lp-section.lp-card-auto .lp-feature,
.lp-section.lp-card-on .lp-testimonial,
.lp-section.lp-card-auto .lp-testimonial,
.lp-section.lp-card-on .lp-price-card,
.lp-section.lp-card-auto .lp-price-card,
.lp-section.lp-card-on .lp-step,
.lp-section.lp-card-auto .lp-step,
.lp-section.lp-card-on .lp-stat,
.lp-section.lp-card-auto .lp-stat,
.lp-section.lp-card-on .lp-team-member,
.lp-section.lp-card-auto .lp-team-member,
.lp-section.lp-card-on .lp-mile,
.lp-section.lp-card-auto .lp-mile,
.lp-section.lp-card-on .lp-faq-item,
.lp-section.lp-card-auto .lp-faq-item,
.lp-section.lp-card-on .lp-gallery-item,
.lp-section.lp-card-auto .lp-gallery-item,
.lp-section.lp-card-on .lp-ba-pair,
.lp-section.lp-card-auto .lp-ba-pair {
    background: var(--lp-card-bg, #fff);
    border: var(--lp-card-border, 1px solid #e7ebf1);
    border-radius: calc(12px * var(--lp-corner-scale, 1));
    padding: 26px 22px;
    box-shadow: var(--lp-card-shadow, 0 6px 18px rgba(31, 39, 51, .06));
    margin: 0;
}

/* The timeline milestone draws its own left rule; inside a card that reads as
 * a stray line, so the card replaces it. */
.lp-section.lp-card-on .lp-mile-copy,
.lp-section.lp-card-auto .lp-mile-copy {
    border-left: 0;
    padding-left: 0;
    padding-bottom: 0;
}

.lp-section.lp-card-on .lp-gallery-item img,
.lp-section.lp-card-auto .lp-gallery-item img,
.lp-section.lp-card-on .lp-ba-pair img,
.lp-section.lp-card-auto .lp-ba-pair img {
    border-radius: calc(8px * var(--lp-corner-scale, 1));
}


.lp-container {
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 20px;
}

.lp-centered {
    text-align: center;
}

.lp-heading {
    font-size: calc(2rem * var(--lp-heading-scale, 1));
    font-weight: 700;
    margin: 0 0 14px;
    color: #1f2733;
}

.lp-subheading,
.lp-body {
    font-size: calc(1.06rem * var(--lp-text-scale, 1));
    line-height: 1.65;
    color: #4a5462;
    margin: 0 0 18px;
}

.lp-subheading.lp-centered {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

.lp-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 22px;
}

.lp-btn {
    display: inline-block;
    padding: 13px 30px;
    border-radius: calc(6px * var(--lp-corner-scale, 1));
    font-weight: 600;
    font-size: 1rem;
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.lp-btn:hover {
    transform: translateY(-2px);
    text-decoration: none;
}

.lp-btn-primary {
    background: var(--color-primary, #34495e);
    color: #fff;
}

.lp-btn-primary:hover {
    background: var(--color-primary-light, #486c8d);
    color: #fff;
    box-shadow: 0 8px 18px rgba(0, 0, 0, .18);
}

.lp-btn-secondary {
    background: transparent;
    color: var(--color-primary, #34495e);
    border: 2px solid var(--color-primary, #34495e);
}

.lp-hero.has-media .lp-btn-secondary {
    color: #fff;
    border-color: #fff;
}

.lp-btn-secondary:hover {
    background: rgba(0, 0, 0, .08);
}

/* ---------------------------------------------------------------- hero -- */

.lp-hero {
    position: relative;
    padding: calc(96px * var(--lp-space-scale, 1)) 0;
}

.lp-hero.lp-variant-full-bleed,
.lp-hero.lp-variant-boxed {
    background-image: linear-gradient(rgba(15, 20, 26, var(--lp-tint, .5)), rgba(15, 20, 26, var(--lp-tint, .5))), var(--lp-bg);
    background-size: cover;
    background-position: center;
    color: #fff;
}

.lp-hero.lp-variant-boxed {
    margin: 24px auto;
    max-width: 1180px;
    border-radius: calc(14px * var(--lp-corner-scale, 1));
    overflow: hidden;
}

.lp-hero.lp-variant-minimal,
.lp-hero.no-media {
    background: linear-gradient(120deg, var(--color-primary, #34495e), var(--color-secondary, #486c8d));
    color: #fff;
}

.lp-hero .lp-eyebrow {
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: .85rem;
    font-weight: 700;
    opacity: .85;
    margin: 0 0 12px;
}

.lp-hero .lp-hero-title {
    font-size: calc(clamp(2rem, 4.5vw, 3.1rem) * var(--lp-heading-scale, 1));
    font-weight: 800;
    line-height: 1.15;
    margin: 0 0 16px;
}

.lp-hero .lp-hero-subtitle {
    font-size: calc(1.15rem * var(--lp-text-scale, 1));
    line-height: 1.6;
    opacity: .92;
    max-width: 640px;
    margin: 0;
}

.lp-hero.lp-align-center .lp-hero-copy {
    text-align: center;
    margin: 0 auto;
    max-width: 760px;
}

.lp-hero.lp-align-center .lp-hero-subtitle {
    margin: 0 auto;
}

.lp-hero.lp-align-center .lp-buttons {
    justify-content: center;
}

.lp-hero.lp-variant-split-media {
    background: #f5f7fa;
    color: #1f2733;
    padding: 72px 0;
}

.lp-hero.lp-variant-split-media .lp-hero-inner {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 48px;
    align-items: center;
}

.lp-hero.lp-variant-split-media .lp-hero-subtitle {
    color: #4a5462;
}

.lp-hero-media img {
    width: 100%;
    height: auto;
    border-radius: calc(12px * var(--lp-corner-scale, 1));
    box-shadow: 0 18px 40px rgba(0, 0, 0, .16);
}

/* --------------------------------------------------------------- split -- */

.lp-split-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: center;
}

.lp-split.lp-variant-image-right .lp-split-media,
.lp-split.lp-variant-image-right-card .lp-split-media {
    order: 2;
}

.lp-split-media img {
    width: 100%;
    height: auto;
    border-radius: calc(10px * var(--lp-corner-scale, 1));
}

.lp-split.lp-variant-image-left-card,
.lp-split.lp-variant-image-right-card {
    background: #f5f7fa;
}

.lp-split.lp-variant-image-left-card .lp-split-inner,
.lp-split.lp-variant-image-right-card .lp-split-inner {
    background: #fff;
    border-radius: calc(14px * var(--lp-corner-scale, 1));
    box-shadow: var(--lp-card-shadow, 0 10px 30px rgba(31, 39, 51, .08));
    padding: 40px;
}

/* ------------------------------------------------------------ features -- */

.lp-features .lp-features-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    margin-top: 34px;
}

.lp-features.lp-variant-grid-4 .lp-features-grid {
    grid-template-columns: repeat(4, 1fr);
}

.lp-features.lp-variant-checklist .lp-features-grid {
    grid-template-columns: 1fr;
    max-width: 680px;
    margin-left: auto;
    margin-right: auto;
    gap: 18px;
}

.lp-feature {
    text-align: center;
}

.lp-features.lp-variant-checklist .lp-feature {
    display: flex;
    gap: 16px;
    text-align: left;
    align-items: flex-start;
}

.lp-features.lp-variant-cards .lp-feature {
    background: #fff;
    border: var(--lp-card-border, 1px solid #e7ebf1);
    border-radius: calc(12px * var(--lp-corner-scale, 1));
    padding: 28px 22px;
    box-shadow: var(--lp-card-shadow, 0 6px 18px rgba(31, 39, 51, .06));
}

.lp-feature-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: calc(54px * var(--lp-icon-scale, 1));
    height: calc(54px * var(--lp-icon-scale, 1));
    font-size: calc(1.3rem * var(--lp-icon-scale, 1));
    border-radius: 50%;
    background: var(--lp-icon-bg, color-mix(in srgb, var(--color-primary, #34495e) 12%, #fff));
    color: var(--lp-icon-color, var(--color-primary, #34495e));
    font-size: 1.3rem;
    margin-bottom: 14px;
    flex-shrink: 0;
}

.lp-features.lp-variant-checklist .lp-feature-icon {
    width: 38px;
    height: 38px;
    font-size: 1rem;
    margin-bottom: 0;
}

.lp-feature-title {
    font-size: 1.12rem;
    font-weight: 700;
    margin: 0 0 8px;
    color: #1f2733;
}

.lp-feature-text {
    font-size: calc(.98rem * var(--lp-text-scale, 1));
    line-height: 1.6;
    color: #4a5462;
    margin: 0;
}

/* -------------------------------------------------------- testimonials -- */

.lp-testimonials {
    background: #f5f7fa;
}

.lp-testimonials-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
    margin-top: 34px;
}

.lp-testimonials.lp-variant-spotlight .lp-testimonials-list,
.lp-testimonials.lp-variant-stacked .lp-testimonials-list {
    grid-template-columns: 1fr;
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}

.lp-testimonial {
    background: #fff;
    border-radius: calc(12px * var(--lp-corner-scale, 1));
    padding: 28px;
    margin: 0;
    box-shadow: var(--lp-card-shadow, 0 6px 18px rgba(31, 39, 51, .06));
}

.lp-testimonials.lp-variant-spotlight .lp-testimonial {
    text-align: center;
    padding: 44px;
}

.lp-testimonial-quote {
    margin: 0 0 18px;
}

.lp-testimonial-quote i {
    color: var(--color-primary, #34495e);
    opacity: .45;
    font-size: 1.2rem;
    margin-bottom: 10px;
    display: block;
}

.lp-testimonial-quote p {
    font-size: calc(1.05rem * var(--lp-text-scale, 1));
    line-height: 1.65;
    color: #2a3340;
    margin: 0;
}

.lp-testimonials.lp-variant-spotlight .lp-testimonial-quote p {
    font-size: 1.3rem;
}

.lp-testimonial-person {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.lp-testimonials.lp-variant-spotlight .lp-testimonial-person {
    justify-content: center;
}

.lp-testimonial-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    object-fit: cover;
}

.lp-testimonial-name {
    font-weight: 700;
    color: #1f2733;
}

.lp-testimonial-role {
    color: #6b7583;
    font-size: .92rem;
}

/* ----------------------------------------------------------------- faq -- */

.lp-faq-accordion {
    max-width: 760px;
    margin: 30px auto 0;
}

.lp-faq-accordion .accordion-button {
    font-weight: 600;
    color: #1f2733;
}

.lp-faq-accordion .accordion-button:not(.collapsed) {
    background: color-mix(in srgb, var(--color-primary, #34495e) 8%, #fff);
    color: var(--color-primary, #34495e);
    box-shadow: none;
}

.lp-faq-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px 44px;
    margin-top: 34px;
}

.lp-faq-columns .lp-faq-question {
    font-size: 1.08rem;
    font-weight: 700;
    color: #1f2733;
    margin: 0 0 8px;
}

.lp-faq-columns .lp-faq-answer {
    font-size: calc(.98rem * var(--lp-text-scale, 1));
    line-height: 1.6;
    color: #4a5462;
    margin: 0;
}

/* --------------------------------------------------------------- video -- */

.lp-video-frame {
    position: relative;
    aspect-ratio: 16 / 9;
    border-radius: calc(12px * var(--lp-corner-scale, 1));
    overflow: hidden;
    margin-top: 30px;
    background: #0f141a;
}

.lp-video.lp-variant-boxed .lp-video-frame {
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
}

.lp-video-frame iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.lp-video-caption {
    margin-top: 14px;
    color: #6b7583;
    font-size: .95rem;
}

/* ---------------------------------------------------------------- form -- */

.lp-form.lp-variant-banded {
    background: linear-gradient(120deg,
        color-mix(in srgb, var(--color-primary, #34495e) 10%, #fff),
        color-mix(in srgb, var(--color-secondary, #486c8d) 12%, #fff));
}

.lp-form-inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: 36px;
    max-width: 680px;
    margin: 0 auto;
}

.lp-form.lp-variant-centered .lp-form-aside {
    text-align: center;
}

.lp-form.lp-variant-split-panel .lp-form-inner {
    grid-template-columns: 1fr 1fr;
    max-width: none;
    align-items: start;
}

.lp-form-panel {
    background: #fff;
    border: var(--lp-card-border, 1px solid #e7ebf1);
    border-radius: calc(12px * var(--lp-corner-scale, 1));
    padding: 30px;
    box-shadow: var(--lp-card-shadow, 0 10px 30px rgba(31, 39, 51, .08));
}

.lp-form-image {
    width: 100%;
    height: auto;
    border-radius: calc(10px * var(--lp-corner-scale, 1));
    margin-top: 18px;
}

/* Consent & option checkboxes rendered above the form's submit button. */

.lp-consent {
    display: grid;
    gap: 10px;
}

.lp-consent-check .form-check-input {
    margin-top: .22em;
}

.lp-consent-check .form-check-input:checked {
    background-color: var(--color-primary, #34495e);
    border-color: var(--color-primary, #34495e);
}

.lp-consent-check .form-check-label {
    font-size: .95rem;
    line-height: 1.5;
    color: #4a5462;
}

.lp-consent-link {
    color: var(--color-primary, #34495e);
    font-weight: 600;
    text-decoration: underline;
    white-space: nowrap;
}

.lp-consent-link:hover {
    color: var(--color-primary-light, #486c8d);
}

/* The agreement pop-up opened from a consent link. */

.lp-consent-modal .modal-content {
    border: 0;
    border-radius: calc(12px * var(--lp-corner-scale, 1));
}

.lp-consent-modal .modal-title {
    font-weight: 700;
    color: #1f2733;
}

.lp-consent-modal .modal-body {
    line-height: 1.65;
    color: #4a5462;
    white-space: normal;
}

.lp-consent-modal .lp-btn {
    border: 0;
    cursor: pointer;
    padding: 10px 24px;
}

/* --------------------------------------------------------------- stats -- */

.lp-stats.lp-variant-band {
    background: linear-gradient(120deg, var(--color-primary, #34495e), var(--color-secondary, #486c8d));
    color: #fff;
}

.lp-stats.lp-variant-band .lp-heading {
    color: #fff;
}

.lp-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 28px;
    margin-top: 30px;
}

.lp-stats .lp-heading + .lp-stats-grid {
    margin-top: 34px;
}

.lp-stat {
    text-align: center;
}

.lp-stats.lp-variant-cards .lp-stat {
    background: #fff;
    border: var(--lp-card-border, 1px solid #e7ebf1);
    border-radius: calc(12px * var(--lp-corner-scale, 1));
    padding: 26px 18px;
    box-shadow: var(--lp-card-shadow, 0 6px 18px rgba(31, 39, 51, .06));
}

.lp-stat-value {
    display: block;
    font-size: clamp(1.9rem, 3.5vw, 2.6rem);
    font-weight: 800;
    line-height: 1.1;
    color: var(--color-primary, #34495e);
}

.lp-stats.lp-variant-band .lp-stat-value {
    color: #fff;
}

.lp-stat-label {
    display: block;
    margin-top: 6px;
    font-size: .98rem;
    color: #4a5462;
}

.lp-stats.lp-variant-band .lp-stat-label {
    color: rgba(255, 255, 255, .85);
}

/* --------------------------------------------------------------- steps -- */

.lp-steps-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 28px;
    margin: 34px 0 0;
    padding: 0;
    list-style: none;
}

/* 5+ steps: cap at 3 columns so rows split evenly (6 → 3+3) instead of
 * auto-fit leaving a ragged 4+2. */
.lp-steps.lp-variant-horizontal .lp-steps-list:has(> .lp-step:nth-child(5)),
.lp-steps.lp-variant-cards .lp-steps-list:has(> .lp-step:nth-child(5)) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lp-step {
    text-align: center;
}

.lp-steps.lp-variant-cards .lp-step {
    background: #fff;
    border: var(--lp-card-border, 1px solid #e7ebf1);
    border-radius: calc(12px * var(--lp-corner-scale, 1));
    padding: 28px 22px;
    box-shadow: var(--lp-card-shadow, 0 6px 18px rgba(31, 39, 51, .06));
}

.lp-steps.lp-variant-timeline .lp-steps-list {
    grid-template-columns: 1fr;
    max-width: 680px;
    margin-left: auto;
    margin-right: auto;
    gap: 26px;
}

.lp-steps.lp-variant-timeline .lp-step {
    display: flex;
    gap: 18px;
    text-align: left;
    align-items: flex-start;
}

.lp-step-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: calc(46px * var(--lp-icon-scale, 1));
    height: calc(46px * var(--lp-icon-scale, 1));
    font-size: calc(1.15rem * var(--lp-icon-scale, 1));
    border-radius: 50%;
    background: var(--lp-icon-bg, var(--color-primary, #34495e));
    color: var(--lp-icon-color, #fff);
    font-size: 1.15rem;
    font-weight: 700;
    margin-bottom: 14px;
    flex-shrink: 0;
}

.lp-steps.lp-variant-timeline .lp-step-number {
    margin-bottom: 0;
}

.lp-step-title {
    font-size: 1.12rem;
    font-weight: 700;
    margin: 0 0 8px;
    color: #1f2733;
}

.lp-step-text {
    font-size: calc(.98rem * var(--lp-text-scale, 1));
    line-height: 1.6;
    color: #4a5462;
    margin: 0;
}

/* ------------------------------------------------------------- gallery -- */

.lp-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-top: 30px;
}

.lp-gallery.lp-variant-grid-4 .lp-gallery-grid {
    grid-template-columns: repeat(4, 1fr);
}

.lp-gallery.lp-variant-two-up .lp-gallery-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

.lp-gallery-item {
    margin: 0;
}

.lp-gallery-item img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: calc(10px * var(--lp-corner-scale, 1));
    display: block;
}

.lp-gallery-caption {
    margin-top: 8px;
    font-size: .92rem;
    color: #6b7583;
}

/* ------------------------------------------------------------- pricing -- */

/* Masonry columns: cards keep their natural height and pack by height, so a
 * short card slots in under another instead of stretching to match the
 * tallest. 3 columns by default; exactly 2 or 4 packages get 2 columns. */
.lp-pricing-grid {
    columns: 3;
    column-gap: 24px;
    margin-top: 34px;
}

.lp-pricing-grid:has(> .lp-price-card:first-child:last-child) {
    columns: 1;
    max-width: 420px;
    margin-left: auto;
    margin-right: auto;
}

.lp-pricing-grid:has(> .lp-price-card:nth-child(2):last-child),
.lp-pricing-grid:has(> .lp-price-card:nth-child(4):last-child) {
    columns: 2;
    max-width: 984px;
    margin-left: auto;
    margin-right: auto;
}

.lp-price-card {
    display: flex;
    flex-direction: column;
    break-inside: avoid;
    box-sizing: border-box;
    margin-bottom: 24px;
    padding: 30px 26px;
}

.lp-pricing.lp-variant-cards .lp-price-card {
    background: #fff;
    border: var(--lp-card-border, 1px solid #e7ebf1);
    border-radius: calc(12px * var(--lp-corner-scale, 1));
    box-shadow: var(--lp-card-shadow, 0 6px 18px rgba(31, 39, 51, .06));
}

.lp-pricing.lp-variant-minimal .lp-price-card {
    border-top: 3px solid var(--color-primary, #34495e);
    padding-left: 0;
    padding-right: 0;
}

.lp-price-name {
    font-size: 1.05rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #6b7583;
    margin: 0 0 10px;
}

.lp-price-amount {
    margin-bottom: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid #eef1f5;
}

.lp-price-note {
    display: block;
    font-size: .88rem;
    color: #6b7583;
}

.lp-price-value {
    font-size: 2.2rem;
    font-weight: 800;
    color: #1f2733;
    line-height: 1.15;
}

/* Phrase-length prices ("$3 per item + sliding commission") — keep them
 * prominent but stop them dominating the card like a numeric price would. */
.lp-price-value--long {
    font-size: 1.3rem;
    font-weight: 700;
    line-height: 1.4;
    color: var(--color-primary, #34495e);
}

.lp-price-includes {
    list-style: none;
    margin: 0 0 20px;
    padding: 0;
    flex-grow: 1;
}

.lp-price-includes li {
    display: flex;
    gap: 10px;
    align-items: baseline;
    font-size: calc(.98rem * var(--lp-text-scale, 1));
    line-height: 1.6;
    color: #4a5462;
    padding: 5px 0;
}

.lp-price-includes i {
    color: var(--color-primary, #34495e);
    font-size: .85rem;
}

.lp-price-card .lp-buttons {
    margin-top: auto;
}

.lp-price-card .lp-btn {
    width: 100%;
    text-align: center;
}

/* --------------------------------------------------------------- logos -- */

.lp-logos {
    background: #f5f7fa;
    padding: 44px 0;
}

.lp-logos-heading {
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: .85rem;
    font-weight: 700;
    color: #6b7583;
    margin: 0 0 26px;
}

.lp-logos-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 28px 48px;
}

.lp-logos.lp-variant-grid .lp-logos-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    justify-items: center;
    gap: 32px;
}

.lp-logo {
    max-height: 52px;
    max-width: 150px;
    width: auto;
    height: auto;
    object-fit: contain;
    filter: grayscale(1);
    opacity: .7;
    transition: filter .2s ease, opacity .2s ease;
}

.lp-logo:hover {
    filter: none;
    opacity: 1;
}

/* ---------------------------------------------------------------- text -- */

.lp-text .lp-text-inner {
    max-width: 720px;
    margin: 0 auto;
}

.lp-text.lp-variant-wide .lp-text-inner,
.lp-text.lp-variant-two-column .lp-text-inner {
    max-width: none;
}

.lp-text-body p {
    font-size: calc(1.06rem * var(--lp-text-scale, 1));
    line-height: 1.7;
    color: #4a5462;
    margin: 0 0 16px;
}

.lp-text-body p:last-child {
    margin-bottom: 0;
}

.lp-text.lp-variant-two-column .lp-text-body {
    columns: 2;
    column-gap: 44px;
}

/* --------------------------------------------------------------- offer -- */

.lp-offer-box {
    max-width: 640px;
    margin: 0 auto;
    text-align: center;
    padding: 44px 36px;
    border-radius: calc(14px * var(--lp-corner-scale, 1));
}

.lp-offer.lp-variant-coupon .lp-offer-box {
    border: 2px dashed var(--color-primary, #34495e);
    background: color-mix(in srgb, var(--color-primary, #34495e) 4%, #fff);
}

.lp-offer.lp-variant-card .lp-offer-box {
    background: #fff;
    border: var(--lp-card-border, 1px solid #e7ebf1);
    box-shadow: var(--lp-card-shadow, 0 10px 30px rgba(31, 39, 51, .08));
}

.lp-offer.lp-variant-band {
    background: linear-gradient(120deg, var(--color-primary, #34495e), var(--color-secondary, #486c8d));
}

.lp-offer.lp-variant-band .lp-offer-box {
    padding: 0;
}

.lp-offer.lp-variant-band .lp-heading,
.lp-offer.lp-variant-band .lp-eyebrow {
    color: #fff;
}

.lp-offer.lp-variant-band .lp-body,
.lp-offer.lp-variant-band .lp-offer-expiry,
.lp-offer.lp-variant-band .lp-offer-fineprint {
    color: rgba(255, 255, 255, .88);
}

.lp-offer .lp-eyebrow {
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: .85rem;
    font-weight: 700;
    color: var(--color-primary, #34495e);
    margin: 0 0 12px;
}

.lp-offer-code {
    display: inline-block;
    max-width: 100%;
    box-sizing: border-box;
    overflow-wrap: anywhere;
    margin: 6px 0 4px;
    padding: 10px 26px;
    border: 2px dashed var(--color-primary, #34495e);
    border-radius: calc(8px * var(--lp-corner-scale, 1));
    background: #fff;
    color: #1f2733;
    font-family: 'Courier New', monospace;
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: .18em;
}

.lp-offer-expiry {
    margin: 12px 0 0;
    font-size: .95rem;
    font-weight: 600;
    color: #6b7583;
}

.lp-offer .lp-buttons {
    justify-content: center;
}

.lp-offer-fineprint {
    margin: 16px 0 0;
    font-size: .82rem;
    color: #8a93a0;
}

/* ----------------------------------------------------------- countdown -- */

.lp-countdown.lp-variant-band {
    background: linear-gradient(120deg, var(--color-primary, #34495e), var(--color-secondary, #486c8d));
    color: #fff;
}

.lp-countdown.lp-variant-band .lp-heading {
    color: #fff;
}

.lp-countdown.lp-variant-band .lp-subheading {
    color: rgba(255, 255, 255, .88);
}

.lp-countdown-timer {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
    margin-top: 28px;
}

.lp-count-cell {
    min-width: 86px;
    padding: 16px 10px;
    border-radius: calc(10px * var(--lp-corner-scale, 1));
    background: rgba(255, 255, 255, .14);
}

.lp-countdown.lp-variant-minimal .lp-count-cell {
    background: #f5f7fa;
    border: var(--lp-card-border, 1px solid #e7ebf1);
}

.lp-count-value {
    display: block;
    font-size: 2rem;
    font-weight: 800;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}

.lp-countdown.lp-variant-minimal .lp-count-value {
    color: var(--color-primary, #34495e);
}

.lp-count-label {
    display: block;
    margin-top: 4px;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .1em;
    opacity: .8;
}

.lp-countdown-expired {
    margin-top: 26px;
    font-size: 1.2rem;
    font-weight: 700;
}

.lp-countdown-buttons {
    justify-content: center;
}

.lp-countdown.lp-variant-band .lp-btn-primary {
    background: #fff;
    color: var(--color-primary, #34495e);
}

.lp-countdown.lp-variant-band .lp-btn-primary:hover {
    background: rgba(255, 255, 255, .88);
    color: var(--color-primary, #34495e);
}

/* ---------------------------------------------------------- comparison -- */

.lp-compare-wrap {
    margin-top: 34px;
    overflow-x: auto;
}

.lp-comparison.lp-variant-table .lp-compare-wrap {
    background: #fff;
    border: var(--lp-card-border, 1px solid #e7ebf1);
    border-radius: calc(12px * var(--lp-corner-scale, 1));
    box-shadow: var(--lp-card-shadow, 0 6px 18px rgba(31, 39, 51, .06));
}

.lp-compare-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 480px;
}

.lp-compare-table th,
.lp-compare-table td {
    padding: 15px 20px;
    border-bottom: 1px solid #e7ebf1;
    font-size: 1rem;
    color: #4a5462;
}

.lp-compare-table tbody tr:last-child th,
.lp-compare-table tbody tr:last-child td {
    border-bottom: 0;
}

.lp-compare-table thead th {
    font-size: .9rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #6b7583;
}

.lp-compare-table tbody th {
    font-weight: 600;
    color: #1f2733;
    text-align: left;
}

.lp-compare-table td,
.lp-compare-table thead th:not(:first-child) {
    text-align: center;
}

.lp-compare-table .lp-compare-us {
    background: color-mix(in srgb, var(--color-primary, #34495e) 7%, #fff);
    font-weight: 600;
}

.lp-compare-yes {
    color: var(--color-primary, #34495e);
    font-size: 1.1rem;
}

.lp-compare-no {
    color: #b03a2e;
    font-size: 1.05rem;
    opacity: .75;
}

/* --------------------------------------------------------------- table -- */

.lp-table-wrap {
    margin-top: 34px;
    overflow-x: auto;
}

.lp-table.lp-variant-card .lp-table-wrap {
    background: #fff;
    border: var(--lp-card-border, 1px solid #e7ebf1);
    border-radius: calc(12px * var(--lp-corner-scale, 1));
    box-shadow: var(--lp-card-shadow, 0 6px 18px rgba(31, 39, 51, .06));
}

.lp-datatable {
    width: 100%;
    border-collapse: collapse;
    min-width: 420px;
}

.lp-datatable th,
.lp-datatable td {
    padding: 14px 20px;
    border-bottom: 1px solid #e7ebf1;
    font-size: 1rem;
    color: #4a5462;
    text-align: left;
}

.lp-datatable tbody tr:last-child th,
.lp-datatable tbody tr:last-child td {
    border-bottom: 0;
}

.lp-datatable thead th {
    font-size: .9rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #6b7583;
    background: color-mix(in srgb, var(--color-primary, #34495e) 6%, #fff);
}

.lp-datatable tbody th {
    font-weight: 600;
    color: #1f2733;
}

.lp-table.lp-variant-striped .lp-datatable tbody tr:nth-child(even) {
    background: #f5f7fa;
}

.lp-table.lp-variant-simple .lp-datatable thead th {
    background: transparent;
    border-bottom: 2px solid #d8dee6;
}

/* ---------------------------------------------------------------- team -- */

.lp-team-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px 28px;
    margin-top: 34px;
}

.lp-team.lp-variant-grid-4 .lp-team-grid {
    grid-template-columns: repeat(4, 1fr);
}

.lp-team-member {
    text-align: center;
}

.lp-team.lp-variant-cards .lp-team-member {
    background: #fff;
    border: var(--lp-card-border, 1px solid #e7ebf1);
    border-radius: calc(12px * var(--lp-corner-scale, 1));
    padding: 28px 22px;
    box-shadow: var(--lp-card-shadow, 0 6px 18px rgba(31, 39, 51, .06));
}

.lp-team-photo {
    width: 112px;
    height: 112px;
    border-radius: 50%;
    object-fit: cover;
    margin-bottom: 16px;
}

.lp-team-photo-empty {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--color-primary, #34495e) 10%, #fff);
    color: var(--color-primary, #34495e);
    font-size: 2.2rem;
}

.lp-team-name {
    font-size: 1.12rem;
    font-weight: 700;
    color: #1f2733;
    margin: 0 0 4px;
}

.lp-team-role {
    font-size: .92rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--color-primary, #34495e);
    margin: 0 0 10px;
}

.lp-team-blurb {
    font-size: calc(.95rem * var(--lp-text-scale, 1));
    line-height: 1.6;
    color: #4a5462;
    margin: 0;
}

/* -------------------------------------------------------- before/after -- */

.lp-ba-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 28px;
    margin-top: 34px;
}

.lp-ba.lp-variant-stacked .lp-ba-grid {
    grid-template-columns: 1fr;
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
}

.lp-ba-pair {
    margin: 0;
}

.lp-ba-images {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.lp-ba-shot {
    position: relative;
}

.lp-ba-shot img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: calc(10px * var(--lp-corner-scale, 1));
    display: block;
}

.lp-ba-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    padding: 4px 12px;
    border-radius: 999px;
    background: rgba(15, 20, 26, .72);
    color: #fff;
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.lp-ba-badge-after {
    background: var(--color-primary, #34495e);
}

.lp-ba-caption {
    margin-top: 10px;
    font-size: .95rem;
    color: #6b7583;
    text-align: center;
}

/* ------------------------------------------------------------ location -- */

.lp-location-inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    margin-top: 34px;
    max-width: 620px;
    margin-left: auto;
    margin-right: auto;
}

.lp-location.lp-variant-split .lp-location-inner.has-map {
    grid-template-columns: 1fr 1.25fr;
    max-width: none;
    align-items: stretch;
}

.lp-location-info {
    background: #fff;
    border: var(--lp-card-border, 1px solid #e7ebf1);
    border-radius: calc(12px * var(--lp-corner-scale, 1));
    padding: 28px;
    box-shadow: var(--lp-card-shadow, 0 6px 18px rgba(31, 39, 51, .06));
}

.lp-location-row {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 12px 0;
    border-bottom: 1px solid #eef1f5;
    font-size: 1rem;
    color: #4a5462;
}

.lp-location-row:last-child {
    border-bottom: 0;
}

.lp-location-row a {
    color: var(--color-primary, #34495e);
    font-weight: 600;
    text-decoration: none;
}

.lp-location-row a:hover {
    text-decoration: underline;
}

.lp-location-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: calc(38px * var(--lp-icon-scale, 1));
    height: calc(38px * var(--lp-icon-scale, 1));
    font-size: calc(.95rem * var(--lp-icon-scale, 1));
    border-radius: 50%;
    background: var(--lp-icon-bg, color-mix(in srgb, var(--color-primary, #34495e) 12%, #fff));
    color: var(--lp-icon-color, var(--color-primary, #34495e));
    font-size: .95rem;
    flex-shrink: 0;
}

.lp-location-hours {
    list-style: none;
    margin: 0;
    padding: 0;
    flex-grow: 1;
}

.lp-location-hours li {
    padding: 4px 0;
    border-bottom: 1px dashed #eef1f5;
}

.lp-location-hours li:last-child {
    border-bottom: 0;
}

.lp-location-map iframe {
    width: 100%;
    height: 100%;
    min-height: 320px;
    border: 0;
    border-radius: calc(12px * var(--lp-corner-scale, 1));
    display: block;
}

.lp-location.lp-variant-stacked .lp-location-map iframe {
    min-height: 380px;
}

/* -------------------------------------------------------- image banner -- */

.lp-banner {
    background-image: linear-gradient(rgba(15, 20, 26, var(--lp-tint, 0)), rgba(15, 20, 26, var(--lp-tint, 0))), var(--lp-bg);
    background-size: cover;
    background-position: center;
    padding: 110px 0;
}

.lp-banner.lp-variant-tall {
    padding: 190px 0;
}

.lp-banner.has-text {
    color: #fff;
}

.lp-banner-title {
    font-size: calc(clamp(1.6rem, 3.5vw, 2.4rem) * var(--lp-heading-scale, 1));
    font-weight: 800;
    margin: 0 0 10px;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .35);
}

.lp-banner-subtitle {
    font-size: 1.1rem;
    margin: 0;
    opacity: .92;
    text-shadow: 0 1px 8px rgba(0, 0, 0, .35);
}

/* ---------------------------------------------------------- milestones -- */

.lp-miles-list {
    list-style: none;
    max-width: 720px;
    margin: 34px auto 0;
    padding: 0;
}

.lp-mile {
    display: flex;
    gap: 24px;
}

.lp-mile-year {
    flex-shrink: 0;
    width: 86px;
    text-align: right;
    font-weight: 800;
    font-size: 1.05rem;
    color: var(--color-primary, #34495e);
    padding-top: 2px;
}

.lp-mile-copy {
    border-left: 2px solid color-mix(in srgb, var(--color-primary, #34495e) 25%, #fff);
    padding: 0 0 30px 24px;
    position: relative;
}

.lp-mile:last-child .lp-mile-copy {
    padding-bottom: 4px;
}

.lp-mile-copy::before {
    content: '';
    position: absolute;
    left: -7px;
    top: 6px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--color-primary, #34495e);
}

.lp-mile-title {
    font-size: 1.12rem;
    font-weight: 700;
    color: #1f2733;
    margin: 0 0 6px;
}

.lp-mile-text {
    font-size: calc(.98rem * var(--lp-text-scale, 1));
    line-height: 1.6;
    color: #4a5462;
    margin: 0;
}

.lp-miles.lp-variant-grid .lp-miles-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 28px;
    max-width: none;
}

.lp-miles.lp-variant-grid .lp-mile {
    display: block;
    text-align: center;
}

.lp-miles.lp-variant-grid .lp-mile-year {
    display: block;
    width: auto;
    text-align: center;
    font-size: 1.5rem;
    margin-bottom: 10px;
}

.lp-miles.lp-variant-grid .lp-mile-copy {
    border-left: 0;
    padding: 0;
}

.lp-miles.lp-variant-grid .lp-mile-copy::before {
    display: none;
}

/* ----------------------------------------------------------- statement -- */

.lp-statement.lp-variant-band {
    background: linear-gradient(120deg, var(--color-primary, #34495e), var(--color-secondary, #486c8d));
    color: #fff;
}

.lp-statement-mark {
    display: block;
    font-size: 1.9rem;
    color: var(--color-primary, #34495e);
    opacity: .35;
    margin-bottom: 16px;
}

.lp-statement-text {
    font-size: calc(clamp(1.35rem, 2.8vw, 1.9rem) * var(--lp-heading-scale, 1));
    font-weight: 700;
    line-height: 1.4;
    max-width: 860px;
    margin: 0 auto;
    color: #1f2733;
}

.lp-statement.lp-variant-band .lp-statement-text {
    color: #fff;
}

.lp-statement-attr {
    margin: 18px 0 0;
    font-size: 1rem;
    font-weight: 600;
    color: #6b7583;
}

.lp-statement.lp-variant-band .lp-statement-attr {
    color: rgba(255, 255, 255, .85);
}

/* -------------------------------------------------------- draft ribbon -- */

.lp-draft-ribbon {
    position: sticky;
    top: 0;
    z-index: 1050;
    background: #b7791f;
    color: #fff;
    text-align: center;
    font-weight: 600;
    font-size: .95rem;
    padding: 9px 16px;
}

.lp-draft-ribbon i {
    margin-right: 8px;
}

/* ------------------------------------------------- shared style controls -- */
/* Classes injected by render_landing_section() from each section's spacing /
 * background / heading-alignment settings. Backgrounds are light-only, so the
 * overrides below re-darken text on variants that assume a dark band. This
 * block stays below the section styles: equal-specificity ties must resolve
 * to these rules. */

.lp-section.lp-bg-white {
    background: #fff;
    color: #2a3340;
}

.lp-section.lp-bg-tint {
    background: #f5f7fa;
    color: #2a3340;
}

.lp-section.lp-bg-white .lp-heading,
.lp-section.lp-bg-tint .lp-heading,
.lp-section.lp-bg-white .lp-statement-text,
.lp-section.lp-bg-tint .lp-statement-text {
    color: #1f2733;
}

.lp-section.lp-bg-white .lp-subheading,
.lp-section.lp-bg-tint .lp-subheading,
.lp-section.lp-bg-white .lp-body,
.lp-section.lp-bg-tint .lp-body,
.lp-section.lp-bg-white .lp-stat-label,
.lp-section.lp-bg-tint .lp-stat-label {
    color: #4a5462;
}

.lp-section.lp-bg-white .lp-stat-value,
.lp-section.lp-bg-tint .lp-stat-value {
    color: var(--color-primary, #34495e);
}

.lp-section.lp-bg-white .lp-eyebrow,
.lp-section.lp-bg-tint .lp-eyebrow {
    color: var(--color-primary, #34495e);
}

.lp-section.lp-bg-white .lp-statement-attr,
.lp-section.lp-bg-tint .lp-statement-attr,
.lp-section.lp-bg-white .lp-offer-expiry,
.lp-section.lp-bg-tint .lp-offer-expiry {
    color: #6b7583;
}

.lp-section.lp-bg-white .lp-offer-fineprint,
.lp-section.lp-bg-tint .lp-offer-fineprint {
    color: #8a93a0;
}

.lp-section.lp-bg-white .lp-count-cell {
    background: #f5f7fa;
    border: var(--lp-card-border, 1px solid #e7ebf1);
    color: #1f2733;
}

.lp-section.lp-bg-tint .lp-count-cell {
    background: #fff;
    border: var(--lp-card-border, 1px solid #e7ebf1);
    color: #1f2733;
}

.lp-section.lp-bg-white .lp-btn-primary,
.lp-section.lp-bg-tint .lp-btn-primary {
    background: var(--color-primary, #34495e);
    color: #fff;
}

.lp-section.lp-head-left .lp-centered {
    text-align: left;
}

.lp-section.lp-head-left .lp-subheading.lp-centered {
    margin-left: 0;
    margin-right: 0;
}

/* Custom background color (any hex the admin picks). Text colors are the
 * admin's job via the heading/text color controls. */
.lp-section.lp-bg-custom {
    background: var(--lp-bg-color);
}

/* Heading size */
/* Text size — the body/copy classes every section uses */
/* Custom heading / text colors (only active when the class is present, so
 * the design defaults are untouched otherwise) */
.lp-section.lp-has-heading-color .lp-heading,
.lp-section.lp-has-heading-color .lp-hero-title,
.lp-section.lp-has-heading-color .lp-banner-title,
.lp-section.lp-has-heading-color .lp-statement-text,
.lp-section.lp-has-heading-color .lp-feature-title,
.lp-section.lp-has-heading-color .lp-step-title,
.lp-section.lp-has-heading-color .lp-team-name,
.lp-section.lp-has-heading-color .lp-mile-title,
.lp-section.lp-has-heading-color .lp-price-value,
.lp-section.lp-has-heading-color .lp-stat-value,
.lp-section.lp-has-heading-color .lp-faq-columns .lp-faq-question,
.lp-section.lp-has-heading-color .lp-testimonial-name {
    color: var(--lp-heading-color);
}

.lp-section.lp-has-text-color .lp-subheading,
.lp-section.lp-has-text-color .lp-body,
.lp-section.lp-has-text-color .lp-text-body p,
.lp-section.lp-has-text-color .lp-eyebrow,
.lp-section.lp-has-text-color .lp-feature-text,
.lp-section.lp-has-text-color .lp-step-text,
.lp-section.lp-has-text-color .lp-team-blurb,
.lp-section.lp-has-text-color .lp-team-role,
.lp-section.lp-has-text-color .lp-mile-text,
.lp-section.lp-has-text-color .lp-testimonial-quote p,
.lp-section.lp-has-text-color .lp-testimonial-role,
.lp-section.lp-has-text-color .lp-price-includes li,
.lp-section.lp-has-text-color .lp-price-name,
.lp-section.lp-has-text-color .lp-price-note,
.lp-section.lp-has-text-color .lp-stat-label,
.lp-section.lp-has-text-color .lp-faq-columns .lp-faq-answer,
.lp-section.lp-has-text-color .lp-hero-subtitle,
.lp-section.lp-has-text-color .lp-banner-subtitle,
.lp-section.lp-has-text-color .lp-statement-attr,
.lp-section.lp-has-text-color .lp-gallery-caption,
.lp-section.lp-has-text-color .lp-ba-caption,
.lp-section.lp-has-text-color .lp-video-caption,
.lp-section.lp-has-text-color .lp-location-row {
    color: var(--lp-text-color);
}

/* Card shadow — one variable feeds every card box-shadow */
/* Corner rounding — one scale feeds every border-radius */
.lp-section.lp-card-off .lp-feature,
.lp-section.lp-card-off .lp-testimonial,
.lp-section.lp-card-off .lp-price-card,
.lp-section.lp-card-off .lp-step,
.lp-section.lp-card-off .lp-stat,
.lp-section.lp-card-off .lp-team-member,
.lp-section.lp-card-off .lp-mile,
.lp-section.lp-card-off .lp-faq-item,
.lp-section.lp-card-off .lp-gallery-item,
.lp-section.lp-card-off .lp-ba-pair {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0;
}

/* A card background chosen without switching the surface on reaches the cards
 * a design already draws. Emitted only when a colour is actually set, so the
 * default look is never touched. */
.lp-section.lp-cardbg .lp-feature,
.lp-section.lp-cardbg .lp-testimonial,
.lp-section.lp-cardbg .lp-price-card,
.lp-section.lp-cardbg .lp-step,
.lp-section.lp-cardbg .lp-stat,
.lp-section.lp-cardbg .lp-team-member,
.lp-section.lp-cardbg .lp-mile,
.lp-section.lp-cardbg .lp-faq-item,
.lp-section.lp-cardbg .lp-gallery-item,
.lp-section.lp-cardbg .lp-ba-pair {
    background-color: var(--lp-card-bg);
}

/* --------------------------------------------------- icon badge shape -- */

.lp-section.lp-icon-circle .lp-feature-icon,
.lp-section.lp-icon-circle .lp-step-number,
.lp-section.lp-icon-circle .lp-location-icon {
    border-radius: 50%;
}

.lp-section.lp-icon-square .lp-feature-icon,
.lp-section.lp-icon-square .lp-step-number,
.lp-section.lp-icon-square .lp-location-icon {
    border-radius: calc(10px * var(--lp-corner-scale, 1));
}

.lp-section.lp-icon-plain .lp-feature-icon,
.lp-section.lp-icon-plain .lp-step-number,
.lp-section.lp-icon-plain .lp-location-icon {
    background: transparent;
    color: var(--lp-icon-color, var(--color-primary, #34495e));
    width: auto;
    height: auto;
    min-width: 1.6em;
}

/* The milestone year is a badge in spirit, so it follows the icon colour. */
.lp-section .lp-mile-year {
    color: var(--lp-icon-color, var(--color-primary, #34495e));
}

/* Hover animation on the repeated card/tile elements */
.lp-hover-lift .lp-feature,
.lp-hover-lift .lp-testimonial,
.lp-hover-lift .lp-price-card,
.lp-hover-lift .lp-step,
.lp-hover-lift .lp-stat,
.lp-hover-lift .lp-team-member,
.lp-hover-lift .lp-gallery-item img,
.lp-hover-lift .lp-ba-shot img,
.lp-hover-grow .lp-feature,
.lp-hover-grow .lp-testimonial,
.lp-hover-grow .lp-price-card,
.lp-hover-grow .lp-step,
.lp-hover-grow .lp-stat,
.lp-hover-grow .lp-team-member,
.lp-hover-grow .lp-gallery-item img,
.lp-hover-grow .lp-ba-shot img {
    transition: transform var(--lp-hover-speed, 180ms) ease, box-shadow var(--lp-hover-speed, 180ms) ease;
}

.lp-hover-lift .lp-feature:hover,
.lp-hover-lift .lp-testimonial:hover,
.lp-hover-lift .lp-price-card:hover,
.lp-hover-lift .lp-step:hover,
.lp-hover-lift .lp-stat:hover,
.lp-hover-lift .lp-team-member:hover,
.lp-hover-lift .lp-gallery-item img:hover,
.lp-hover-lift .lp-ba-shot img:hover {
    transform: translateY(calc(-1 * var(--lp-hover-shift, 5px)));
}

.lp-hover-grow .lp-feature:hover,
.lp-hover-grow .lp-testimonial:hover,
.lp-hover-grow .lp-price-card:hover,
.lp-hover-grow .lp-step:hover,
.lp-hover-grow .lp-stat:hover,
.lp-hover-grow .lp-team-member:hover,
.lp-hover-grow .lp-gallery-item img:hover,
.lp-hover-grow .lp-ba-shot img:hover {
    transform: scale(var(--lp-hover-scale, 1.03));
}

.lp-section.lp-hover-none .lp-btn:hover {
    transform: none;
    box-shadow: none;
}

/* Inline text formatting produced by lp_rich() */
.lp-txt-sm {
    font-size: .82em;
}

.lp-txt-lg {
    font-size: 1.25em;
}

.lp-txt-xl {
    font-size: 1.55em;
}

.lp-txt-accent {
    color: var(--color-primary, #34495e);
}

/* Highlighter pen. The inline background comes from the marker's own colour. */
.lp-txt-hl {
    padding: .08em .22em;
    border-radius: .18em;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}

/* ---------------------------------------------------------- responsive -- */

@media (max-width: 900px) {
    .lp-section {
        padding: calc(48px * var(--lp-space-scale, 1)) 0;
    }

    .lp-hero {
        padding: calc(72px * var(--lp-space-scale, 1)) 0;
    }

    .lp-hero.lp-variant-split-media .lp-hero-inner,
    .lp-split-inner,
    .lp-form.lp-variant-split-panel .lp-form-inner,
    .lp-faq-columns {
        grid-template-columns: 1fr;
    }

    .lp-hero.lp-variant-split-media .lp-hero-inner,
    .lp-split-inner,
    .lp-form.lp-variant-split-panel .lp-form-inner {
        gap: 28px;
    }

    .lp-faq-columns {
        gap: 24px;
    }

    .lp-features .lp-features-grid,
    .lp-features.lp-variant-grid-4 .lp-features-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .lp-gallery-grid,
    .lp-gallery.lp-variant-grid-4 .lp-gallery-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .lp-team-grid,
    .lp-team.lp-variant-grid-4 .lp-team-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .lp-ba-grid {
        grid-template-columns: 1fr;
    }

    .lp-text.lp-variant-two-column .lp-text-body {
        columns: 1;
    }

    .lp-pricing-grid,
    .lp-pricing-grid:has(> .lp-price-card:nth-child(4):last-child) {
        columns: 2;
    }

    .lp-steps.lp-variant-horizontal .lp-steps-list,
    .lp-steps.lp-variant-cards .lp-steps-list,
    .lp-steps.lp-variant-horizontal .lp-steps-list:has(> .lp-step:nth-child(5)),
    .lp-steps.lp-variant-cards .lp-steps-list:has(> .lp-step:nth-child(5)) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lp-location.lp-variant-split .lp-location-inner.has-map {
        grid-template-columns: 1fr;
    }

    .lp-banner {
        padding: 80px 0;
    }

    .lp-banner.lp-variant-tall {
        padding: 130px 0;
    }

    .lp-split.lp-variant-image-right .lp-split-media,
    .lp-split.lp-variant-image-right-card .lp-split-media {
        order: 0;
    }
}

@media (max-width: 560px) {
    .lp-section {
        padding: 40px 0;
    }

    .lp-container {
        padding: 0 16px;
    }

    .lp-heading {
        font-size: calc(1.55rem * var(--lp-heading-scale, 1));
    }

    .lp-subheading,
    .lp-body {
        font-size: calc(1rem * var(--lp-text-scale, 1));
    }

    /* Buttons go full width so they are easy tap targets */
    .lp-buttons {
        flex-direction: column;
        align-items: stretch;
    }

    .lp-buttons .lp-btn {
        width: 100%;
        text-align: center;
        box-sizing: border-box;
    }

    .lp-hero {
        padding: 56px 0;
    }

    .lp-hero .lp-hero-subtitle {
        font-size: calc(1.05rem * var(--lp-text-scale, 1));
    }

    .lp-hero.lp-variant-boxed {
        margin: 12px;
        border-radius: calc(10px * var(--lp-corner-scale, 1));
    }

    .lp-features .lp-features-grid,
    .lp-features.lp-variant-grid-4 .lp-features-grid {
        grid-template-columns: 1fr;
    }

    .lp-gallery.lp-variant-two-up .lp-gallery-grid {
        grid-template-columns: 1fr;
    }

    .lp-team-grid,
    .lp-team.lp-variant-grid-4 .lp-team-grid {
        grid-template-columns: 1fr;
    }

    .lp-countdown-timer {
        gap: 8px;
    }

    .lp-count-cell {
        min-width: 68px;
        padding: 12px 6px;
    }

    .lp-count-value {
        font-size: 1.5rem;
    }

    .lp-offer-box {
        padding: 32px 22px;
    }

    .lp-mile {
        gap: 14px;
    }

    .lp-mile-year {
        width: 58px;
        font-size: .95rem;
    }

    .lp-split.lp-variant-image-left-card .lp-split-inner,
    .lp-split.lp-variant-image-right-card .lp-split-inner {
        padding: 24px;
    }

    .lp-testimonial {
        padding: 22px;
    }

    .lp-testimonials.lp-variant-spotlight .lp-testimonial {
        padding: 28px 20px;
    }

    .lp-testimonials.lp-variant-spotlight .lp-testimonial-quote p {
        font-size: 1.15rem;
    }

    .lp-form-panel {
        padding: 20px 16px;
    }

    .lp-stats-grid {
        gap: 18px;
    }

    .lp-pricing-grid,
    .lp-pricing-grid:has(> .lp-price-card:nth-child(2):last-child),
    .lp-pricing-grid:has(> .lp-price-card:nth-child(4):last-child) {
        columns: 1;
        max-width: none;
    }

    .lp-steps.lp-variant-horizontal .lp-steps-list,
    .lp-steps.lp-variant-cards .lp-steps-list,
    .lp-steps.lp-variant-horizontal .lp-steps-list:has(> .lp-step:nth-child(5)),
    .lp-steps.lp-variant-cards .lp-steps-list:has(> .lp-step:nth-child(5)) {
        grid-template-columns: minmax(0, 1fr);
    }

    .lp-gallery-grid {
        gap: 12px;
    }

    .lp-compare-table th,
    .lp-compare-table td,
    .lp-datatable th,
    .lp-datatable td {
        padding: 11px 12px;
        font-size: .92rem;
    }

    .lp-offer-code {
        font-size: 1.05rem;
        letter-spacing: .12em;
        padding: 9px 16px;
    }

    .lp-location-info {
        padding: 20px 16px;
    }

    .lp-location-map iframe {
        min-height: 260px;
    }

    .lp-location.lp-variant-stacked .lp-location-map iframe {
        min-height: 300px;
    }

    .lp-banner {
        padding: 64px 0;
    }

    .lp-banner.lp-variant-tall {
        padding: 100px 0;
    }

    .lp-logos-list {
        gap: 20px 28px;
    }

    .lp-logo {
        max-height: 40px;
        max-width: 120px;
    }

    .lp-video-frame {
        border-radius: calc(8px * var(--lp-corner-scale, 1));
    }

    .lp-video.lp-variant-full-width .lp-video-frame {
        border-radius: 0;
    }
}
