:root {
    --content-padding: 0;
    --site-width: 1180px;
    --fox-gold: #e8dea7;
    --fox-gold-dark: #7d6b20;
    --fox-green: #263c2d;
    --fox-ink: #151515;
    --fox-paper: #eee;
    --header-min-height: 100px;
    --header-background: #fff;
    --header-font-family: "Roboto Slab", serif;
    --nav-text: #111;
    --nav-active: #7d6b20;
    --nav-hover: #7d6b20;
    --nav-arrow: #111;
    --nav-arrow-hover: #7d6b20;
    --contact-background: #e8dea7;
    --contact-text: #111;
    --contact-hover-background: #111;
    --contact-hover-text: #fff;
    --footer-background: #050505;
    --footer-text: #fff;
    --footer-heading: #fff;
    --footer-link: #fff;
    --footer-link-hover: #e8dea7;
    --footer-divider: #3e3e3e;
    --footer-credit-text: #fff;
    --footer-credit-link: #e8dea7;
    --footer-font-family: "Roboto Slab", serif;
}

html { scroll-behavior: smooth; }
* { box-sizing: border-box; }

body {
    margin: 0;
    background: var(--fox-paper);
    color: #333;
    font-family: "Open Sans", sans-serif;
    font-size: 18px;
    line-height: 1.65;
}

img { max-width: 100%; }
a { color: var(--fox-ink); text-underline-offset: .2em; }
h1, h2, h3, h4, h5, h6,
.button, button, .main-navigation, .footer-navigation { font-family: "Roboto Slab", serif; }

.page-heading {
    width: min(var(--site-width), calc(100% - 60px));
    margin: 54px auto 34px;
    color: var(--fox-ink);
    font-family: "Roboto Slab", serif;
    font-size: clamp(2.2rem, 5vw, 3.125rem);
    line-height: 1.1;
}

.page-content-shell,
.nxb-text-block__inner,
.nxb-grid-layout__inner,
.nxb-contact-form__inner {
    width: min(var(--site-width), calc(100% - 60px));
    margin-inline: auto;
}

.site-header {
    position: relative;
    z-index: 100;
    min-height: 100px;
    padding: 0 30px;
    background: #fff;
    border: 0;
    box-shadow: 0 1px 8px rgb(0 0 0 / 9%);
}

.skip-link {
    position: fixed;
    top: 8px;
    left: 8px;
    z-index: 10000;
    padding: .65rem 1rem;
    background: var(--fox-ink);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
    transform: translateY(-180%);
    transition: transform .15s ease;
}

.skip-link:focus { transform: translateY(0); }

.header-logo img {
    width: auto;
    max-width: 190px;
    height: 76px;
    max-height: 76px;
    object-fit: contain;
    filter: brightness(0);
}

.main-navigation > ul { gap: 0; }
.main-navigation a {
    min-height: 100px;
    padding: 0 15px;
    color: var(--fox-ink);
    font-size: 17px;
    line-height: 100px;
}
.main-navigation li.active > a,
.main-navigation a:hover,
.main-navigation a:focus-visible { color: var(--fox-gold-dark); }

.header-actions { gap: 14px; }
.header-search { position: relative; }
.header-search summary {
    position: relative;
    width: 28px;
    height: 28px;
    list-style: none;
    cursor: pointer;
}
.header-search summary::-webkit-details-marker { display: none; }
.header-search summary::before {
    content: "";
    position: absolute;
    top: 4px;
    left: 3px;
    width: 13px;
    height: 13px;
    border: 2px solid var(--fox-ink);
    border-radius: 50%;
}
.header-search summary::after {
    content: "";
    position: absolute;
    top: 17px;
    left: 17px;
    width: 8px;
    height: 2px;
    background: var(--fox-ink);
    transform: rotate(45deg);
    transform-origin: left center;
}
.header-search summary:focus-visible {
    outline: 3px solid var(--fox-gold-dark);
    outline-offset: 4px;
}
.header-search form {
    position: absolute;
    top: calc(100% + 18px);
    right: 0;
    display: flex;
    z-index: 20;
    min-width: 340px;
    padding: 12px;
    background: #fff;
    box-shadow: 0 8px 24px rgb(0 0 0 / 18%);
}
.header-search input {
    min-width: 0;
    flex: 1;
    padding: .6rem .75rem;
    border: 1px solid #999;
    font: inherit;
}
.header-search button {
    padding-inline: 1rem;
    border: 1px solid var(--fox-ink);
    background: var(--fox-ink);
    color: #fff;
    font: inherit;
    cursor: pointer;
}
.button-light,
.nxb-text-block__button,
.nxb-banner__button,
.nxb-simple-pods__link,
.nxb-contact-form__submit {
    border: 1px solid var(--fox-ink);
    border-radius: 0;
    background: var(--fox-gold);
    color: var(--fox-ink);
    font-family: "Roboto Slab", serif;
    font-weight: 600;
    text-transform: none;
}
.button-light:hover,
.nxb-text-block__button:hover,
.nxb-banner__button:hover,
.nxb-simple-pods__link:hover,
.nxb-contact-form__submit:hover { background: var(--fox-ink); color: #fff; }

.nxb-banner { background: var(--fox-ink); }
.nxb-banner--width-full-screen { width: 100%; }
.nxb-banner--size-medium-crop { min-height: clamp(360px, 48vw, 640px); }
.nxb-banner__title {
    font-size: clamp(2.4rem, 5.4vw, 4.8rem);
    line-height: 1.02;
    text-shadow: 0 2px 14px rgb(0 0 0 / 45%);
}
.nxb-banner__subtitle,
.nxb-banner__intro { font-size: clamp(1.05rem, 2vw, 1.35rem); }

.nxb-text-block { padding-block: 60px; }
.nxb-text-block--background-white { background: #fff; }
.nxb-text-block--background-light-grey { background: var(--fox-paper); }
.nxb-text-block--background-dark { background: var(--fox-green); color: #fff; }
.nxb-text-block__secondary-heading {
    margin-bottom: .55rem;
    color: var(--fox-gold-dark);
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.nxb-text-block__heading { color: var(--fox-ink); }

.nxb-simple-pods { padding-block: 55px; }
.nxb-simple-pods__card { background: #fff; border: 0; box-shadow: 0 12px 35px rgb(0 0 0 / 8%); }
.nxb-simple-pods__heading { color: var(--fox-ink); }
.nxb-simple-pods__media { aspect-ratio: 4 / 3; overflow: hidden; }
.nxb-simple-pods__image { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.nxb-simple-pods__card:hover .nxb-simple-pods__image { transform: scale(1.035); }

.nxb-gallery { padding-block: 50px; background: #fff; }
.nxb-gallery__image { transition: transform .3s ease; }
.nxb-gallery__link:hover .nxb-gallery__image { transform: scale(1.025); }

.nxb-blog { background: #fff; }
.nxb-blog__header-content,
.nxb-blog__body { width: min(900px, calc(100% - 60px)); margin-inline: auto; }
.nxb-blog__title { color: var(--fox-ink); }

.nxb-contact-form { padding-block: 60px; background: #fff; }
.nxb-contact-form__heading { color: var(--fox-ink); }
.nxb-contact-form input,
.nxb-contact-form textarea { border-radius: 0; border-color: #bbb; }

.nxb-code-block { width: 100%; }
.nxb-code-block iframe { display: block; width: 100%; max-width: 100%; border: 0; }

.nxb-sitemap,
.nxb-search-results {
    width: min(var(--site-width), calc(100% - 60px));
    margin-inline: auto;
    padding-block: 45px 70px;
}

.site-footer { background: var(--footer-background); color: var(--footer-text); }
.footer-inner { width: min(var(--site-width), calc(100% - 60px)); padding: 55px 0 25px; }
.footer-logo img { max-height: 100px; width: auto; filter: brightness(0) invert(1); }
.footer-locations .nxb-simple-pods { padding-block: 25px; }
.footer-locations .nxb-simple-pods__card { background: transparent; box-shadow: none; color: #fff; }
.footer-locations .nxb-simple-pods__heading { color: #fff; }
.footer-services-navigation a,
.footer-navigation a,
.footer-cookie-settings { color: var(--footer-link); }
.footer-services-navigation a:hover,
.footer-navigation a:hover,
.footer-cookie-settings:hover { color: var(--footer-link-hover); }
.site-credit { display: inline-flex !important; align-items: center; gap: .35rem; }
.site-credit__dragon { width: 24px; height: 18px; object-fit: contain; }

.nxb-heading-align-centre :is(h1, h2, h3, h4, h5, h6, .nxb-text-block__secondary-heading) { text-align: center; }
.nxb-heading-align-right :is(h1, h2, h3, h4, h5, h6, .nxb-text-block__secondary-heading) { text-align: right; }
.nxb-remove-top-padding { padding-top: 0 !important; }
.nxb-remove-bottom-padding { padding-bottom: 0 !important; }

.site-notification { border-radius: 0; }
.site-notification__buttons button { border-radius: 0; }

@media (max-width: 991px) {
    .site-header { min-height: 80px; padding-inline: 20px; }
    .header-logo img { height: 62px; max-height: 62px; }
    .main-navigation a { min-height: 52px; line-height: 52px; }
    .page-heading,
    .page-content-shell,
    .nxb-text-block__inner,
    .nxb-grid-layout__inner,
    .nxb-contact-form__inner,
    .nxb-sitemap,
    .nxb-search-results,
    .footer-inner { width: min(100% - 36px, var(--site-width)); }
}

@media (max-width: 575px) {
    body { font-size: 16px; }
    .page-heading { margin-block: 34px 24px; }
    .nxb-text-block,
    .nxb-simple-pods,
    .nxb-gallery,
    .nxb-contact-form { padding-block: 38px; }
    .site-credit { flex-wrap: wrap; height: auto !important; }
    .header-search form { min-width: min(300px, calc(100vw - 36px)); }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
