/* ///////// */
/* Container layout change to allow overflow ///////////////// */

.ns-content-main-container {
    /* --ns-content-max-width: 65rem; */
    --padding-common: 2.5rem;
    --columns: [bleed-start] auto [content-start]
        min(calc(100% - 8rem), calc(var(--ns-content-max-width) - 8rem)) [content-end] auto
        [bleed-end];

    display: grid;
    grid-template-columns: var(--columns);
    max-width: none;
    padding-inline: 0;
    padding-block-end: 10rem;

    @media (width < 1024px) {
        --columns: [bleed-start] auto [content-start]
            min(calc(100% - 4rem), calc(var(--ns-content-max-width) - 4rem)) [content-end] auto
            [bleed-end];
    }
}

.ns-content-main-container > *:not(header, section:not(.card)) {
    grid-column: content;
}

header,
section:not(.card),
.updates {
    grid-column: bleed;
}

/* ///////// */
/* Inherit spacing rules in nested areas ///////////////// */

.ns-content-main-container > section > *,
.ns-fc-question-and-answer > *,
.ns-fc-question-and-answer > div > *,
.ns-fc-question-and-answer dd > *,
.archive > * {
    margin: 0;
}

.ns-content-main-container > section > * + *,
.ns-fc-question-and-answer > * + *,
.ns-fc-question-and-answer > div > * + *,
.ns-fc-question-and-answer dd > * + *,
.archive > * + * {
    margin: 2rem 0 0;
}

h3:has(> strong:first-child:last-child:empty) {
    display: none;
}

/* ///////// */
/* Additional vertical spacing ///////////////// */

.ns-content-main-container > * + h2,
.ns-content-main-container > * + h3,
.ns-content-main-container > * + .ns-fc-image,
.ns-content-main-container > * + .ns-fc-table,
.ns-content-main-container > * + section,
.ns-content-main-container > * + .ns-fc-question-and-answer {
    margin-top: 4rem;
}

/* ///////// */
/* Inherit bullet styling in nested areas ///////////////// */

.ns-fc-question-and-answer ul li {
    list-style-type: none;
    padding-left: 1.25rem;
}

.ns-fc-question-and-answer ul li:before {
    content: '';
    position: absolute;
    top: 9px;
    left: 0;
    width: 8px;
    height: 8px;
    border-radius: 8px;
    background-color: var(--ns-color-primary);
    margin-right: 0.75rem;
}

.ns-fc-question-and-answer ul {
    column-count: 1;
    column-fill: balance;
    column-gap: 2rem;
}

.ns-fc-question-and-answer li {
    break-inside: avoid-column;
}

@media (min-width: 768px) {
    .ns-fc-question-and-answer ul {
        column-count: 2;
    }
}

/* ///////// */
/* Drop the border for H2 ///////////////// */

.ns-content-main-container h2 {
    border: 0 none;
    padding-bottom: 0;
}

/* ///////// */
/* Table changes for small viewport ///////////////// */

@media (width <= 650px) {
    .ns-fc-table {
        margin-inline: -4rem;
    }

    .ns-fc-table table td {
        min-width: 28ch;
    }
}

/* ///////// */
/* Menu toggle ///////////////// */

.ns-header-toggle {
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
}

/* ///////// */
/* Cover ///////////////// */

.ns-content-main-container header {
    margin-top: -2rem;
    padding-block: var(--padding-common);
    background-color: var(--ns-color-primary);

    display: grid;
    grid-template-columns: var(--columns);
}

.ns-content-main-container header:not(:has(+ section)) {
    margin-bottom: 2rem;
}

.ns-content-main-container header > * {
    grid-column: content;
}

.ns-content-main-container header a:first-child {
    font-weight: 700;
    text-transform: uppercase;
    background-color: var(--ns-color-primary-dark);
    color: var(--ns-color-white);
    padding: 0.5em 0.6em;
    transition: background-color 0.3s;
}

.ns-content-main-container header a:first-child:hover {
    background-color: var(--ns-color-black);
}

@media (width < 500px) {
    .ns-content-main-container header figure {
        margin-top: 2rem;
    }
}

@media (width > 500px) {
    .ns-content-main-container header > * {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: var(--padding-common);
        align-items: center;
    }
}

.ns-content-main-container header > div > div > * + * {
    margin: 1rem 0 0;
}

.ns-content-main-container header > div > div > a + h1 {
    margin-top: 1.5rem;
}

.ns-content-main-container header > div > div > * {
    text-wrap: pretty;
}

.ns-content-main-container h1 {
    font-weight: 700;
}

.ns-content-main-container h1.color--white {
    color: var(--ns-color-white);
    font-weight: 700 !important;
}

.ns-content-main-container header p {
    font-weight: 700;
    color: rgba(255, 255, 255, 0.6);
}

/* ///////// */
/* Q&A ///////////////// */

.ns-fc-question-and-answer dt {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 1.25rem;
    line-height: 1.35;
    font-weight: 700;
    cursor: pointer;
}

.ns-fc-question-and-answer dt span {
    position: relative;
    background-color: var(--ns-color-primary);
    color: var(--ns-color-white);
    padding: 0.75rem;
    padding-right: 1.8rem;
    align-self: stretch;
}

.ns-fc-question-and-answer dt span:after {
    --width: 0.6rem;
    content: '';
    display: block;
    position: absolute;
    top: 50%;
    right: 0.7rem;
    width: var(--width);
    height: var(--width);
    border: 2px solid var(--ns-color-white);
    border-top: 0 none;
    border-left: 0 none;
    opacity: 0.6;
    transform: translateY(-55%) rotate(45deg);
    transition: var(--ns-transition-fast);
}

.ns-fc-question-and-answer > [data-active] dt span:after {
    transform: translateY(-25%) rotate(-135deg);
}

.ns-fc-question-and-answer dd {
    height: 0;
    interpolate-size: allow-keywords;
    transition: var(--ns-transition-fast);
    overflow: hidden;
}

.ns-fc-question-and-answer > [data-active] dd {
    height: auto;
    margin-bottom: 4rem;
}

/* ///////// */
/* Button ///////////////// */

.ns-fc-button {
    display: inline-flex;
    align-items: center;
    flex: 1;
    padding: 0.75rem;
    line-height: 1.3;
    font-weight: 600;
    color: var(--ns-color-white);
    background-color: var(--ns-color-primary);
    transition: var(--ns-transition-fast);
}

.ns-fc-question-and-answer dt:hover span,
.ns-fc-button:hover {
    background-color: var(--ns-color-primary-dark);
}

/* ///////// */
/* Group ///////////////// */

section {
    padding-block: var(--padding-common);
    overflow: hidden;
}

section > * {
    grid-column: content;
}

section:not(.card) {
    display: grid;
    grid-template-columns: var(--columns);
}

section.guidance {
    background-color: var(--ns-color-grey-light);
}

section.instruction {
    background-color: var(--ns-color-primary);
}

section.alert {
    background-color: var(--ns-color-primary-light);
}

section.instruction > *,
section.alert > * {
    color: var(--ns-color-white);
}

section.instruction ul li:before {
    background-color: rgba(255, 255, 255, 0.4);
}

/* ///////// */
/* Group – card ///////////////// */

section.card {
    padding-inline: var(--padding-common);
    background-color: var(--ns-color-grey-light);
}

section.card > .ns-fc-image {
    grid-column: 1 / 2;
    grid-row: 1 / 20; /* -1 should work ? */
}

section.card:has(.ns-fc-image) > *:not(.ns-fc-image) {
    grid-column: 2 / 3;
}

section.card > .ns-fc-image {
    display: block;
    margin: calc(-1 * var(--padding-common));
}

section.card > .ns-fc-image + * {
    margin-top: 0;
}

section.card > .ns-fc-image .ns-fc-image-caption {
    display: none;
}

@media (width < 768px) {
    section.card > .ns-fc-image:first-child {
        margin-bottom: var(--padding-common);
    }

    section.card > .ns-fc-image:last-child {
        margin-top: var(--padding-common);
    }
}

@media (width > 768px) {
    section.card:has(.ns-fc-image) {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: auto;
        gap: 0 var(--padding-common);
    }

    section.card > .ns-fc-image {
        margin: calc(-1 * var(--padding-common));
        margin-right: 0;
    }
}

/* ///////// */
/* Pattern flourish ///////////////// */

.ns-content-main-container header,
section {
    overflow: hidden;
}

.ns-content-main-container header:after,
section:after {
    content: '';
    position: absolute;
    inset: 0;
    top: 30%;
    left: 50%;
    background-image: url(/wp-content/themes/nhbc-2025/assets/images/pattern-diagonal-1.png);
    background-repeat: repeat;
    transform: translateX(calc(var(--ns-content-max-width) * 0.1));
    z-index: 1;
}

.ns-content-main-container header:after {
    background-image: url(/wp-content/themes/nhbc-2025/assets/images/pattern-diagonal-1.png);
}

section:after {
    background-image: url(/wp-content/themes/nhbc-2025/assets/images/pattern-diagonal-1-white.png);
    opacity: 0.6;
}

section.instruction:after {
    opacity: 0.1;
}

section.alert:after {
    opacity: 0.2;
}

.ns-content-main-container header > *,
section > * {
    z-index: 2;
}

/* ///////// */
/* Pagination ///////////////// */

.ns-pagination a {
    display: inline-flex;
    align-items: center;
    flex: 1;
    padding: 0.75rem;
    line-height: 1.3;
    font-weight: 600;
    color: var(--ns-color-white);
    background-color: var(--ns-color-primary);
    transition: var(--ns-transition-fast);
}

.ns-pagination a[rel='prev'],
.ns-pagination a.ns-pagination-link-prev {
    padding-left: 3.25rem;
}

.ns-pagination a[rel='next'] {
    justify-content: end;
    text-align: right;
    padding-right: 3.25rem;
}

.ns-pagination a::before {
    content: '';
    position: absolute;
    inset: 50% auto auto 1rem;
    width: 24px;
    height: 24px;
    transform: translateY(-50%);
    background-repeat: no-repeat;
    background-size: 18px;
    background-image: url(/wp-content/themes/nhbc-2025/assets/images/caret-left-bold.svg);
    background-position: 50% 50%;
}

.ns-pagination a[rel='next']::before {
    inset: 50% 1rem auto auto;
    background-image: url(/wp-content/themes/nhbc-2025/assets/images/caret-right-bold.svg);
}

.ns-pagination a:hover {
    background-color: var(--ns-color-primary-dark);
}

/* ///////// */
/* Index ///////////////// */

.page .ns-content-main-container header {
    --offset: 4.3rem;
    top: 0;
    bottom: 0;
    background-position: left bottom;
    padding-bottom: calc(var(--padding-common) + var(--offset));
    margin-bottom: calc(-1 * var(--offset)) !important;
    transition: var(--ns-transition-fast);
}

.updates {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 1.5rem;
    list-style: none;
    margin: 3.5rem 0 0;
    padding: 0 !important;
    z-index: 2;
}

@media (width >= 768px) {
    .updates {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (width >= 1280px) {
    .updates {
        grid-template-columns: repeat(3, 1fr);
    }
}

.updates li {
    min-height: 12rem;
}

.updates li + li {
    margin: 0;
}

.updates a {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    height: 100%;
    padding: 1.5rem;
    background-color: var(--ns-color-primary-dark);
    color: var(--ns-color-white);
    transition: var(--ns-transition-fast);
    font-family: var(--ns-font-family-display);
    font-weight: 600;
}

.updates a:hover {
    background-color: var(--ns-color-primary);
}

.updates a > span {
    display: block;
}

.updates a > span:first-child:not(:last-child) {
    padding-bottom: 1.2rem;
    border-bottom: 4px solid var(--ns-color-primary);
    transition: var(--ns-transition-fast);
    font-size: 1.5rem;
    line-height: 1.25;
    color: var(--ns-color-primary);
}

.updates a:hover > span:first-child:not(:last-child) {
    border-bottom-color: var(--ns-color-white);
    color: var(--ns-color-white);
}

.updates a > span:last-child {
    text-wrap: pretty;
}
