@font-face {
    font-family: "LL V2 Zona";
    src: url("../fonts/ZonaPro-Bold.woff2") format("woff2");
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: "ZonaPro-Bold";
    src: url("../fonts/ZonaPro-Bold.woff2") format("woff2");
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: "LL V2 Cyntho";
    src: url("../fonts/CynthoSlabPro-Regular.woff2") format("woff2");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "CynthoSlabPro-Regular";
    src: url("../fonts/CynthoSlabPro-Regular.woff2") format("woff2");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "LL V2 Source Sans";
    src: url("../fonts/sourcesanspro-regular-webfont.woff2") format("woff2");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "Source Sans Pro";
    src: url("../fonts/sourcesanspro-regular-webfont.woff2") format("woff2");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

/* Only the V2 shell owns these tokens and rules; no old-template CSS is loaded. */
html:has(body.ll-v2) {
    /* Allow the document to grow with content; do not lock to the viewport. */
    height: auto;
    min-height: 100%;
    overflow-x: clip;
    overflow-y: visible;
}

body.ll-v2 {
    --ll-v2-plum: #553745;
    --ll-v2-red: #e83446;
    --ll-v2-link: #b92236;
    --ll-v2-ink: #302a2d;
    --ll-v2-headings: "LL V2 Zona", Arial, sans-serif;
    --cassiopeia-color-primary: var(--ll-v2-plum);
    --cassiopeia-color-link: var(--ll-v2-link);
    --cassiopeia-color-hover: #851b2a;
    --cassiopeia-font-family-body: "LL V2 Cyntho", Georgia, serif;
    --cassiopeia-font-family-headings: var(--ll-v2-headings);
    --cassiopeia-font-weight-normal: 400;
    --cassiopeia-font-weight-headings: 700;
    --body-font-family: var(--cassiopeia-font-family-body);
    --body-color: var(--ll-v2-ink);
    --link-color: var(--ll-v2-link);
    --link-hover-color: #851b2a;
    display: flex;
    flex-direction: column;
    /* min-height keeps short pages filled; height:auto keeps the footer inside scroll bounds */
    min-height: 100vh;
    height: auto;
    margin: 0;
    background: #fff;
    color: var(--ll-v2-ink);
    font-family: var(--cassiopeia-font-family-body);
    font-size: 1rem;
    line-height: 1.65;
    overflow-x: clip;
    overflow-y: visible;
    overflow-wrap: anywhere;
}

.ll-v2 *,
.ll-v2 *::before,
.ll-v2 *::after {
    box-sizing: border-box;
}

.ll-v2 .ll-v2-container {
    width: min(100% - 2rem, 72rem);
    margin-inline: auto;
    min-width: 0;
}

.ll-v2 :where(h1, h2, h3, h4, h5, h6) {
    color: var(--ll-v2-plum);
    font-family: var(--ll-v2-headings);
    line-height: 1.25;
}

.ll-v2 h1 {
    font-size: clamp(1.75rem, 3.5vw, 2.75rem);
}

.ll-v2 :where(a) {
    text-underline-offset: 0.2em;
}

.ll-v2 :where(a, button, input, select, textarea, summary):focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 4px;
}

.ll-v2 :where(img, video, svg) {
    max-width: 100%;
    height: auto;
}

.ll-v2 :where(iframe) {
    max-width: 100%;
}

.ll-v2 :where(pre, .table-responsive) {
    max-width: 100%;
    overflow-x: auto;
}

.ll-v2 .ll-v2-skip {
    position: absolute;
    inset-block-start: 0.5rem;
    inset-inline-start: 1rem;
    z-index: 1100;
    padding: 0.75rem 1rem;
    transform: translateY(-200%);
    background: #fff;
    color: var(--ll-v2-plum);
    font-family: var(--ll-v2-headings);
}

.ll-v2 .ll-v2-skip:focus {
    transform: none;
}

.ll-v2 .ll-v2-header {
    display: block;
    position: static;
    padding: 0;
    margin: 0;
    background: var(--ll-v2-plum);
    color: #fff;
    box-shadow: none;
}

.ll-v2 .ll-v2-header-inner {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 1.5rem;
    min-height: 7.5rem;
    padding-block: 1rem;
}

.ll-v2 .ll-v2-brand {
    display: inline-flex;
    align-items: center;
    justify-self: start;
}

.ll-v2 .ll-v2-brand img {
    display: block;
    width: 80px;
    height: auto;
}

.ll-v2 .ll-v2-menu {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    margin: 0;
    padding: 0;
    font-family: var(--ll-v2-headings);
    font-size: 0.875rem;
    line-height: 1.45;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.ll-v2 .ll-v2-menu .mod-menu {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.25rem 0.75rem;
    margin: 0;
    padding: 0;
    list-style: none;
    color: #fff;
    font-size: inherit;
}

.ll-v2 .ll-v2-menu .mod-menu li {
    position: relative;
    min-width: 0;
    margin: 0;
    padding: 0;
    font-size: inherit;
}

.ll-v2 .ll-v2-menu .mod-menu > li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

/* The original identity uses a red active underline, not Cassiopeia's bar. */
.ll-v2 .ll-v2-menu .mod-menu > li::after {
    content: none;
}

.ll-v2 .ll-v2-menu .mod-menu a,
.ll-v2 .ll-v2-menu .mod-menu button,
.ll-v2 .ll-v2-menu .mod-menu__heading,
.ll-v2 .ll-v2-menu .mod-menu__separator {
    display: flex;
    align-items: center;
    min-height: 2.75rem;
    padding: 0.65rem 0.5rem;
    background: transparent;
    color: #fff;
    font-family: inherit;
    font-size: inherit;
    font-weight: 700;
    letter-spacing: inherit;
    text-transform: inherit;
    text-decoration: none;
    white-space: normal;
}

.ll-v2 .ll-v2-menu .mod-menu button {
    min-width: 2.75rem;
    border: 0;
    cursor: pointer;
}

.ll-v2 .ll-v2-menu .mod-menu button > .mod-menu__heading,
.ll-v2 .ll-v2-menu .mod-menu button > .mod-menu__separator {
    padding: 0;
}

.ll-v2 .ll-v2-menu .mod-menu a:hover,
.ll-v2 .ll-v2-menu .mod-menu a:focus,
.ll-v2 .ll-v2-menu .mod-menu button:hover,
.ll-v2 .ll-v2-menu .mod-menu button:focus {
    color: #fff;
    text-decoration: underline;
}

.ll-v2 .ll-v2-menu .mod-menu > li.active > a,
.ll-v2 .ll-v2-menu .mod-menu > li.current > a,
.ll-v2 .ll-v2-menu .mod-menu a[aria-current="page"],
.ll-v2 .ll-v2-menu .mod-menu > li.active > button > .mod-menu__heading,
.ll-v2 .ll-v2-menu .mod-menu > li.active > button > .mod-menu__separator {
    text-decoration: underline;
    text-decoration-color: var(--ll-v2-red);
    text-decoration-thickness: 2px;
    text-underline-offset: 0.5rem;
}

.ll-v2 .ll-v2-menu .mod-menu__sub {
    position: static;
    flex-basis: 100%;
    min-width: 0;
    margin: 0;
    padding: 0 0 0 0.75rem;
    list-style: none;
    background: var(--ll-v2-plum);
}

/* Native menu.js owns submenu state; absence of JS leaves children readable. */
.ll-v2 .ll-v2-menu .mod-menu__sub:not([aria-hidden]) {
    display: block;
}

.ll-v2 .ll-v2-menu .mod-menu__sub[aria-hidden="true"] {
    display: none;
}

.ll-v2 .ll-v2-menu .mod-menu__sub[aria-hidden="false"] {
    display: block;
}

.ll-v2 .ll-v2-menu .mod-menu > li > .mod-menu__sub[aria-hidden] {
    position: absolute;
    inset-block-start: 100%;
    inset-inline-end: 0;
    z-index: 20;
    width: max-content;
    max-width: min(24rem, 85vw);
    padding: 0.5rem;
    box-shadow: 0 0.3rem 0.6rem #0003;
}

.ll-v2 .ll-v2-menu .mod-menu__toggle-sub .icon-chevron-down {
    margin-inline-start: 0.5rem;
}

.ll-v2 .ll-v2-navigation-toggle {
    grid-column: 3;
    grid-row: 1;
    align-items: center;
    justify-content: center;
    min-width: 2.75rem;
    min-height: 2.75rem;
    padding: 0.5rem;
    border: 0;
    background: transparent;
    color: #fff;
    cursor: pointer;
}

.ll-v2 .ll-v2-navigation-bars {
    display: block;
    width: 1.75rem;
}

.ll-v2 .ll-v2-navigation-bars > span {
    display: block;
    height: 3px;
    margin-block: 5px;
    background: currentColor;
}

.ll-v2 [data-ll-v2-panel][hidden],
.ll-v2 [data-ll-v2-toggle][hidden] {
    display: none !important;
}

.ll-v2 .ll-v2-languages {
    grid-column: 3;
    min-width: 0;
    font-family: var(--ll-v2-headings);
    font-size: 0.875rem;
}

.ll-v2 .ll-v2-languages .mod-languages__list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ll-v2 .ll-v2-languages li {
    margin: 0;
}

.ll-v2 .ll-v2-languages a,
.ll-v2 .ll-v2-languages button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.75rem;
    min-height: 2.75rem;
    padding: 0.5rem;
}

.ll-v2 .ll-v2-languages .mod-languages__list a {
    color: #fff;
}

.ll-v2 .ll-v2-languages .mod-languages__list .lang-active {
    background-color: transparent;
}

.ll-v2 .ll-v2-languages .mod-languages__list .lang-active a {
    text-decoration: underline;
    text-decoration-thickness: 2px;
}

.ll-v2 .ll-v2-languages .dropdown-menu {
    background-color: #fff;
}

/* Bounded fallback until Bootstrap/Popper supplies its own placement. */
.ll-v2 .ll-v2-languages .dropdown-menu:not([data-popper-placement]) {
    inset-block-start: 100%;
    inset-inline-start: auto;
    inset-inline-end: 0;
    max-width: calc(100vw - 2rem);
}

.ll-v2 .ll-v2-languages .dropdown-menu a {
    justify-content: flex-start;
    width: 100%;
    color: var(--ll-v2-plum);
}

.ll-v2 .ll-v2-languages .dropdown-menu a:hover,
.ll-v2 .ll-v2-languages .dropdown-menu a:focus {
    background-color: #f0f0f0;
    color: var(--ll-v2-plum);
}

/* Normal flow: every native component child receives the full available width. */
.ll-v2 .ll-v2-main {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    min-height: 0;
}

.ll-v2 .ll-v2-component {
    display: flow-root;
    padding-block: clamp(2rem, 5vw, 4rem);
}

.ll-v2 .ll-v2-component > * {
    min-width: 0;
    max-width: 100%;
}

.ll-v2 .ll-v2-above-content,
.ll-v2 .ll-v2-below-content {
    padding-block: 2rem;
}

.ll-v2 .ll-v2-footer {
    flex: 0 0 auto;
    /* Old template kept the footer bar on the bottom edge of the viewport. */
    position: sticky;
    bottom: 0;
    z-index: 20;
    margin-block-start: auto;
    /* Port of templates/l-l.law/css/shared.css .footer */
    background: #553745;
    color: #fff;
    min-height: 4.6rem;
    width: 100%;
}

.ll-v2 .ll-v2-footer-inner {
    /* Port of .footer-ct: space-between logo | middle | copyright */
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    min-height: 4.6rem;
    padding-block: 0;
}

.ll-v2 .ll-v2-footer-logo {
    /* Port of .footer-logo */
    width: 72px;
    height: auto;
    margin: 0;
}

.ll-v2 .ll-v2-footer-modules {
    flex: 1 1 auto;
    min-width: 0;
    text-align: center;
}

/*
 * Old site: footer-middle uses the global `a` rule from shared.css
 * (ZonaPro-Bold + brand red). Copyright uses .copyright white Source Sans.
 */
.ll-v2 .ll-v2-footer-modules,
.ll-v2 .ll-v2-footer-modules a,
.ll-v2 .ll-v2-footer-modules a:link,
.ll-v2 .ll-v2-footer-modules a:visited {
    color: rgba(232, 52, 70, 1);
    font-family: "ZonaPro-Bold", Helvetica, Arial, serif;
    font-size: 16px;
    font-weight: 400;
    font-style: normal;
    letter-spacing: normal;
    line-height: normal;
    text-decoration: none;
    text-align: center;
}

.ll-v2 .ll-v2-footer-modules a:hover,
.ll-v2 .ll-v2-footer-modules a:focus-visible {
    color: rgba(232, 52, 70, 1);
    text-decoration: underline;
}

.ll-v2 .ll-v2-footer small {
    /* Port of .copyright */
    margin-inline-start: 0;
    color: rgba(255, 255, 255, 1);
    font-family: "Source Sans Pro", Helvetica, Arial, serif;
    font-size: 14px;
    font-weight: 300;
    font-style: normal;
    letter-spacing: 1px;
    line-height: 18px;
    text-align: left;
    white-space: nowrap;
}

@media (width < 1080px) {
    .ll-v2 .ll-v2-header-inner {
        grid-template-columns: minmax(0, 1fr) auto auto;
        gap: 0.5rem;
        min-height: 5rem;
        /* The taller Greek mark must fit without enlarging the 80px header. */
        padding-block: 0.5rem;
    }

    .ll-v2 .ll-v2-languages {
        grid-column: 2;
        grid-row: 1;
    }

    .ll-v2 .ll-v2-menu {
        grid-column: 1 / -1;
        grid-row: 2;
        width: 100%;
    }

    .ll-v2 .ll-v2-navigation-toggle {
        display: inline-flex;
    }

    .ll-v2 .ll-v2-menu .mod-menu,
    .ll-v2 .ll-v2-menu .mod-menu > li {
        width: 100%;
    }

    .ll-v2 .ll-v2-menu .mod-menu {
        flex-direction: column;
        align-items: stretch;
    }

    .ll-v2 .ll-v2-menu .mod-menu > li > a,
    .ll-v2 .ll-v2-menu .mod-menu > li > button,
    .ll-v2 .ll-v2-menu .mod-menu > li > span {
        width: 100%;
        min-height: 3rem;
        padding: 0.8rem;
    }

    .ll-v2 .ll-v2-menu .mod-menu > li > a {
        flex: 1 1 0;
        min-width: 0;
    }

    /* A linked parent has a separate native submenu button on the same row. */
    .ll-v2 .ll-v2-menu .mod-menu > li > a + .mod-menu__toggle-sub {
        flex: 0 0 2.75rem;
        justify-content: center;
        width: 2.75rem;
        min-width: 2.75rem;
        padding: 0;
    }

    .ll-v2 .ll-v2-menu .mod-menu > li > .mod-menu__sub[aria-hidden] {
        position: static;
        width: 100%;
        max-width: 100%;
        padding: 0 0 0 0.75rem;
        box-shadow: none;
    }

    .ll-v2 .ll-v2-footer-inner {
        flex-direction: column;
        justify-content: center;
        text-align: center;
        gap: 0.5rem;
        padding-block: 0.75rem;
    }

    .ll-v2 .ll-v2-footer-logo,
    .ll-v2 .ll-v2-footer-modules,
    .ll-v2 .ll-v2-footer small {
        text-align: center;
        white-space: normal;
    }
}
