/* -------------------------
DO NOT TOUCH THIS CODE
If you need to edit code within this file please contact a developer

* Site-wide styles only - typography, header, footer, shared utilities
* Block styles belong in /blocks/{block}/style.css
------------------------- */

.lp-header__inner,
.lp-footer__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-block: 1rem;
}

.lp-nav {
    display: flex;
    gap: 1.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.lp-block {
    position: relative;
}

/* -------------------------
Wrapper utilities generated by the shared field partials
(inc/acf/field-partials.php). Every block gets these for free.
------------------------- */

.lp-pt-none { padding-block-start: 0; }
.lp-pt-sm   { padding-block-start: 2rem; }
.lp-pt-md   { padding-block-start: 4rem; }
.lp-pt-lg   { padding-block-start: 7rem; }

.lp-pb-none { padding-block-end: 0; }
.lp-pb-sm   { padding-block-end: 2rem; }
.lp-pb-md   { padding-block-end: 4rem; }
.lp-pb-lg   { padding-block-end: 7rem; }

.lp-bg-light { background-color: #f6f6f6; }
.lp-bg-dark  { background-color: #1a1a1a; color: #fff; }
.lp-bg-brand { background-color: var(--lp-brand); color: #fff; }

.lp-has-bg-image {
    background-size: cover;
    background-position: center;
}

.lp-block {
    position: relative;
}

html {
    scroll-behavior: smooth;
    scroll-padding-block-start: calc(var(--lp-header-h, 72px) + 1rem);
}

button, input, select, textarea { font: inherit; }

/* -------------------------
Wrapper utilities generated by the shared field partials
(inc/acf/field-partials.php). Every block gets these for free.
------------------------- */

.lp-pt-none { padding-block-start: 0; }
.lp-pt-sm   { padding-block-start: 2rem; }
.lp-pt-md   { padding-block-start: 4rem; }
.lp-pt-lg   { padding-block-start: 7rem; }

.lp-pb-none { padding-block-end: 0; }
.lp-pb-sm   { padding-block-end: 2rem; }
.lp-pb-md   { padding-block-end: 4rem; }
.lp-pb-lg   { padding-block-end: 7rem; }

.lp-bg-light { background-color: #f6f6f6; }
.lp-bg-dark  { background-color: #1a1a1a; color: #fff; }
.lp-bg-brand { background-color: var(--lp-brand); color: #fff; }

.lp-has-bg-image {
    background-size: cover;
    background-position: center;
}

/* -------------------------
Typography base. The family comes from --lp-font-* which each child theme sets.
------------------------- */

h1, h2, h3, h4, h5, h6 {
    margin-block: 0 .75rem;
    font-family: var(--lp-font-heading, inherit);
    font-weight: 800;
    line-height: 1.2;
    /* Inter wants slightly tighter tracking at display sizes */
    letter-spacing: -.01em;
    text-wrap: balance;
}

p { margin-block: 0 1rem; }

p:last-child { margin-block-end: 0; }

a {
    color: inherit;
    text-decoration-thickness: 1px;
    text-underline-offset: .15em;
}

strong, b { font-weight: 700; }

ul, ol { padding-inline-start: 1.25rem; }

/* -------------------------
Buttons - shared by the header chrome and every block
------------------------- */

.lp-btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .75rem 1.5rem;
    border: 0;
    border-radius: 999px;
    font-weight: 700;
    font-size: .9375rem;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease, transform .2s ease;
}

.lp-btn:hover { transform: translateY(-1px); }

.lp-btn--primary   { background: var(--lp-brand); color: var(--lp-on-brand, #fff); }
.lp-btn--secondary { background: var(--lp-text); color: #fff; }
.lp-btn--text      { padding-inline: 0; background: none; color: currentColor; text-decoration: underline; }

.lp-btn--ghost {
    background: none;
    color: #fff;
    border: 2px solid var(--lp-btn-ghost-border, #ffffff59);
}

.lp-btn--ghost:hover { border-color: #fff; }

/* Falls back to no colour change when a site hasn't set --lp-brand-hover */
.lp-btn--primary:hover { background: var(--lp-brand-hover, var(--lp-brand)); }

/* -------------------------
Header
------------------------- */

.lp-header {
    background: var(--lp-header-bg, #fff);
    border-block-end: 1px solid var(--lp-hairline, rgba(0, 0, 0, .08));
}

.lp-header--sticky {
    position: sticky;
    inset-block-start: 0;
    z-index: 100;
}

.lp-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    /* Header runs wider than the 1200px section container */
    max-width: var(--lp-header-max, 1700px);
    min-height: var(--lp-header-h, 72px);
}

.lp-header__brand {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    color: inherit;
}

.lp-header__brand-text { font-size: 1.125rem; font-weight: 800; }

.lp-header__logo { display: block; height: auto; }

.lp-header__actions {
    display: flex;
    align-items: center;
    gap: 2rem;
}

.lp-nav {
    display: flex;
    align-items: center;
    gap: 2rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.lp-nav a {
    font-size: .9375rem;
    line-height: 1.5; 
    font-weight: 600;
    text-decoration: none;
    color: inherit;
}

/* Brand yellow is illegible as text on white, so hover uses the ink variant */
.lp-nav a:hover,
.lp-nav .current-menu-item > a { color: var(--lp-brand-ink, var(--lp-brand)); }

.lp-header__phone {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-size: 1.0625rem;
    line-height: 1.5;
    font-weight: 700;
    text-decoration: none;
    color: inherit;
    white-space: nowrap;
}

.lp-header__phone-icon { flex: 0 0 auto; }

.lp-header__cta {
    padding: 1rem 1.75rem;
    min-width: 10.875rem;
    justify-content: center;
}

/* Swapped in below 900px when a mobile label is set */
.lp-header__cta-short { display: none; }

/* -------------------------
Shared centred section header - eyebrow, heading, optional intro
------------------------- */

/* Shared kicker above section headings - see dagmar_lp_fields_eyebrow() */

.lp-eyebrow {
    margin: 0 0 .75rem;
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .165em;
    text-transform: uppercase;
    line-height: 1.4;
    /* Brand colour is often illegible as text on a light background,
       so sites set --lp-brand-ink to a darker variant */
    color: var(--lp-brand-ink, var(--lp-brand));
}

.lp-section-head {
    max-width: 46rem;
    margin: 0 auto 3rem;
    text-align: center;
}

.lp-section-head__heading {
    margin: 0;
    font-size: clamp(1.75rem, 3.4vw, 2.25rem);
    line-height: 1.15;
    font-weight: 800;
    text-wrap: balance;
}

.lp-section-head__lede {
    max-width: 37rem;
    margin: 1rem auto 0;
    font-size: 1.0625rem;
    line-height: 1.55;
    color: var(--lp-muted, inherit);
}

/* -------------------------
Footer
------------------------- */

.lp-footer {
    background: var(--lp-footer-bg, #141414);
    color: var(--lp-footer-ink, #fff);
}

.lp-footer__inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 2.5rem;
    padding-block: 3rem;
}

.lp-footer__brand {
    display: inline-block;
    color: inherit;
    text-decoration: none;
    font-weight: 800;
}

.lp-footer__logo { display: block; height: auto; }

.lp-footer__info {
    display: grid;
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.lp-footer__item {
    display: flex;
    align-items: center;
    gap: .75rem;
    font-size: .9375rem; 
    line-height: 1.5; 
    font-weight: 400;
}

.lp-footer__icon {
    flex: 0 0 auto;
    color: var(--lp-brand);
}

.lp-footer__item a {
    color: inherit;
    text-decoration: none;
}

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

/* Optional row - only renders when a legal line or footer menu exists */
.lp-footer__legal {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-block: 1.25rem;
    border-block-start: 1px solid rgba(255, 255, 255, .12);
    font-size: .8125rem;
}

.lp-footer__legal-text { margin: 0; opacity: .7; }

/* -------------------------
Mobile
------------------------- */

@media (max-width: 900px) {
    .lp-header__inner { gap: 1rem; }

    /* max-width constrains the inline width from the logo field without !important */
    .lp-header__logo { max-width: 150px; }

    .lp-header__actions { gap: 1rem; }

    /* No nav on mobile by design - phone icon and button only */
    .lp-header__nav { display: none; }

    /* Icon-only phone. The link's aria-label keeps its accessible name */
    .lp-header__phone-text { display: none; }

        .lp-header__cta {
        padding: .8125rem 1.25rem;
        min-width: 0;
    }


    .lp-header__cta--has-short .lp-header__cta-full  { display: none; }
    .lp-header__cta--has-short .lp-header__cta-short { display: inline; }

    .lp-footer__inner {
        flex-direction: column;
        gap: 2rem;
        padding-block: 2.5rem;
    }
}