/*
Theme Name: VIS
Template: apparatus
Theme URI: https://www.pixouls.com/
Author: Pixouls
Author URI: https://www.pixouls.com/
Description: Custom Veterans Information Service theme built on the Apparatus framework.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: vis
Tags:
*/

@font-face {
    font-family: "VIS Inter";
    src: url("assets/fonts/inter-latin.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 100 900;
}

/* My VIS: protected digital publication */
.vis-portal-hero {
    background: var(--vis-navy-deep);
    padding: clamp(7rem, 9vw, 12rem) max(4.5vw, calc((100vw - 140rem) / 2));
}

.vis-portal-hero > div { max-width: 88rem; }
.vis-site .vis-portal-hero h1 { color: var(--c-w); font-size: clamp(5rem, 8vw, 10rem); }
.vis-portal-hero p:last-child { color: var(--c-mist); font-size: clamp(1.8rem, 2vw, 2.3rem); margin: 2rem 0 0; max-width: 76rem; }

.vis-portal-gate,
.vis-portal-shell,
.vis-member-article {
    margin: 0 auto;
    width: var(--vis-width);
}

.vis-portal-gate { max-width: 90rem; padding: clamp(8rem, 11vw, 15rem) 0; }
.vis-portal-gate h2 { margin-bottom: 2.5rem; }

.vis-portal-shell {
    align-items: start;
    display: grid;
    gap: clamp(4rem, 7vw, 10rem);
    grid-template-columns: minmax(20rem, .28fr) minmax(0, 1fr);
    padding: clamp(6rem, 9vw, 12rem) 0;
}

.vis-portal-shell--wide { display: block; }
.vis-portal-shell--wide .vis-portal-main { margin: 0 auto; max-width: 112rem; }

.vis-portal-nav {
    border-top: .3rem solid var(--vis-navy);
    display: grid;
    position: sticky;
    top: calc(var(--vis-header-main-height) + 2rem);
}

.vis-portal-nav a {
    align-items: center;
    border-bottom: .1rem solid var(--vis-line);
    color: var(--vis-navy);
    display: flex;
    font-size: 1.4rem;
    font-weight: 720;
    gap: 1rem;
    justify-content: space-between;
    padding: 1.5rem .4rem;
    text-decoration: none;
}

.vis-portal-nav a[aria-current="page"] { color: var(--vis-blue); padding-left: 1.2rem; }
.vis-portal-nav small {
    color: var(--vis-muted);
    font-size: .9rem;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap;
}
.vis-portal-main { min-width: 0; }
.vis-portal-main > h2 { font-size: clamp(4rem, 5vw, 6.6rem); margin-bottom: 2.5rem; }
.vis-portal-lede { font-size: 2rem; max-width: 86rem; }
.vis-portal-main > .vis-portal-search:first-child,
.vis-portal-main > .vis-newsletter-grid:first-child,
.vis-portal-main > .vis-empty-state:first-child,
.vis-roadmap-view > :first-child { margin-top: 0; }

.vis-portal-cards,
.vis-newsletter-grid {
    display: grid;
    gap: 2rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 5rem 0;
}

.vis-portal-cards article,
.vis-newsletter-grid article,
.vis-search-results article {
    background: var(--vis-paper);
    border: .1rem solid var(--vis-line);
    padding: clamp(2.5rem, 4vw, 4.5rem);
}

.vis-portal-cards span,
.vis-newsletter-grid article > p:first-child,
.vis-search-results article > p:first-child {
    color: var(--vis-blue);
    display: block;
    font-size: 1.1rem;
    font-weight: 800;
    letter-spacing: .12em;
    margin-bottom: 1.5rem;
    text-transform: uppercase;
}

.vis-portal-cards h3,
.vis-newsletter-grid h3 { margin-bottom: 1.5rem; }
.vis-portal-cards a,
.vis-newsletter-grid a,
.vis-search-results a { color: var(--vis-navy); font-weight: 750; }

.vis-legacy-upgrade {
    background: var(--vis-blue-light);
    border: .1rem solid var(--vis-line);
    border-left: .4rem solid var(--vis-blue);
    margin-top: 5rem;
    padding: clamp(3rem, 5vw, 5rem);
}
.vis-newsletter-grid + .vis-legacy-upgrade { margin-top: 0; }
.vis-legacy-upgrade h2 {
    font-size: clamp(3rem, 4vw, 4.8rem);
    margin-bottom: 1.8rem;
    max-width: 78rem;
}
.vis-legacy-upgrade > p:not(.vis-kicker) { max-width: 76rem; }
.vis-legacy-upgrade .vis-actions { margin-top: 2.8rem; }

.vis-roadmap {
    background: var(--vis-blue-light);
    border: .1rem solid var(--vis-line);
    border-left: .4rem solid var(--vis-blue);
    margin-top: 5rem;
    padding: clamp(3rem, 5vw, 5rem);
}

.vis-roadmap h3 { margin-bottom: 1.5rem; }
.vis-roadmap p:last-child { margin-bottom: 0; }
.vis-roadmap__links {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 3rem;
}
.vis-roadmap__links a {
    background: color-mix(in srgb, var(--c-w) 72%, transparent);
    border: .1rem solid transparent;
    display: grid;
    padding: 1.8rem;
    text-decoration: none;
    transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.vis-roadmap__links a:hover,
.vis-roadmap__links a:focus-visible {
    background: var(--vis-paper);
    border-color: var(--vis-blue);
    transform: translateY(-.2rem);
}
.vis-roadmap__links strong { color: var(--vis-navy); }
.vis-roadmap__links span { color: var(--vis-muted); font-size: 1.3rem; }

.vis-account-panel {
    border-top: .1rem solid var(--vis-line);
    margin-top: clamp(7rem, 10vw, 12rem);
    padding-top: clamp(5rem, 7vw, 8rem);
}
.vis-account-panel__heading {
    align-items: end;
    display: grid;
    gap: 3rem 8rem;
    grid-template-columns: minmax(0, 1.2fr) minmax(28rem, .8fr);
    margin-bottom: 4rem;
}
.vis-account-panel__heading h3 { max-width: 68rem; }
.vis-account-panel__heading > p { margin: 0; }
.vis-account-links {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.vis-account-links a {
    align-items: center;
    background: var(--vis-paper);
    border: .1rem solid var(--vis-line);
    display: grid;
    gap: .6rem 2rem;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 14rem;
    padding: 2.5rem;
    text-decoration: none;
    transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.vis-account-links a:hover,
.vis-account-links a:focus-visible {
    background: var(--vis-blue-light);
    border-color: var(--vis-blue);
    transform: translateY(-.2rem);
}
.vis-account-links strong {
    color: var(--vis-navy-deep);
    font-size: 1.4rem;
}
.vis-account-links span {
    color: var(--vis-muted);
    font-size: 1.2rem;
    grid-column: 1;
    line-height: 1.5;
}
.vis-account-links .vis-icon {
    color: var(--vis-blue);
    grid-column: 2;
    grid-row: 1 / 3;
}

.vis-roadmap-view > h2 { font-size: clamp(4rem, 5vw, 6.6rem); margin-bottom: 2.5rem; }
.vis-roadmap-view__notice {
    background: var(--vis-blue-light);
    border: .1rem solid var(--vis-line);
    border-left: .4rem solid var(--vis-blue);
    margin: 4rem 0;
    padding: 2.5rem 3rem;
}
.vis-roadmap-view__notice strong {
    color: var(--vis-navy);
    display: block;
    font-size: 1.2rem;
    letter-spacing: .1em;
    margin-bottom: .7rem;
    text-transform: uppercase;
}
.vis-roadmap-view__notice p { margin: 0; }
.vis-roadmap-view__list { list-style: none; margin: 4rem 0; padding: 0; }
.vis-roadmap-view__list li {
    align-items: baseline;
    border-top: .1rem solid var(--vis-line);
    display: grid;
    gap: 2rem;
    grid-template-columns: 4rem 1fr;
    padding: 2.2rem 0;
}
.vis-roadmap-view__list span { color: var(--vis-gold); font-family: var(--vis-serif); font-size: 2rem; }
.vis-roadmap-view__list p { margin: 0; }

.vis-portal-search {
    background: var(--vis-paper);
    border: .1rem solid var(--vis-line);
    margin: 4rem 0;
    padding: clamp(2.5rem, 4vw, 4rem);
}

.vis-portal-search label { color: var(--vis-navy-deep); display: block; font-weight: 750; margin-bottom: 1rem; }
.vis-portal-search > div { display: flex; }
.vis-portal-search input { border: .1rem solid var(--vis-line); flex: 1; font: inherit; min-width: 0; padding: 1.3rem 1.6rem; }

.vis-edition-reference {
    background: var(--vis-blue-light);
    border: .1rem solid var(--vis-line);
    border-left: .4rem solid var(--vis-blue);
    margin: 0 0 5rem;
    padding: 2rem 2.4rem;
}
.vis-edition-reference > span {
    color: var(--vis-blue);
    display: block;
    font-size: 1.1rem;
    font-weight: 800;
    letter-spacing: .12em;
    margin-bottom: .8rem;
    text-transform: uppercase;
}
.vis-edition-reference p { margin: 0; }

.vis-book-toc { list-style: none; margin: 5rem 0 0; padding: 0; }
.vis-book-toc li { border-top: .1rem solid var(--vis-line); display: grid; gap: 2rem; grid-template-columns: 5rem 1fr; padding: 3rem 0; }
.vis-book-toc li > span { color: var(--vis-gold); font-family: var(--vis-serif); font-size: 2rem; }
.vis-book-toc h3 { margin-bottom: 1rem; }
.vis-book-toc h3 a { color: inherit; text-decoration: none; }

.vis-empty-state { border: .1rem dashed var(--vis-line); margin-top: 4rem; padding: clamp(3rem, 5vw, 5rem); }
.vis-empty-state h3 { margin-bottom: 1rem; }
.vis-empty-state p { margin-bottom: 0; }

.vis-search-results { display: grid; gap: 1.5rem; }
.vis-search-results article h3 { margin-bottom: 1rem; }
.vis-search-count { font-weight: 750; }

.vis-member-article { max-width: 96rem; padding: clamp(7rem, 10vw, 14rem) 0; }
.vis-member-back { color: var(--vis-blue); display: inline-block; font-weight: 750; margin-bottom: 5rem; }
.vis-member-article header { border-bottom: .1rem solid var(--vis-line); margin-bottom: 4rem; padding-bottom: 4rem; }
.vis-member-article h1 { font-size: clamp(4.5rem, 7vw, 8rem); }
.vis-member-meta { margin-top: 2rem; }
.vis-member-content { font-family: var(--vis-serif); font-size: 2rem; }
.vis-member-content h2 { font-size: 4rem; margin: 5rem 0 2rem; }
.vis-member-download,
.vis-member-related { border-top: .1rem solid var(--vis-line); margin-top: 6rem; padding-top: 4rem; }
.vis-member-download h2,
.vis-member-related h2 { font-size: 3.5rem; margin-bottom: 2rem; }

@media (max-width: 760px) {
    .vis-portal-shell { display: block; }
    .vis-portal-nav { display: flex; margin-bottom: 5rem; overflow-x: auto; position: static; }
    .vis-portal-nav a { flex: 0 0 auto; padding: 1.5rem; }
    .vis-portal-cards,
    .vis-newsletter-grid { grid-template-columns: 1fr; }
    .vis-roadmap__links { grid-template-columns: 1fr; }
    .vis-account-panel__heading { display: block; }
    .vis-account-panel__heading > p { margin-top: 2rem; }
    .vis-account-links { grid-template-columns: 1fr; }
    .vis-portal-search > div { display: grid; }
}

@font-face {
    font-family: "VIS Newsreader";
    src: url("assets/fonts/newsreader-latin.woff2") format("woff2");
    font-display: swap;
    font-style: normal;
    font-weight: 200 800;
}

:root {
    --vis-navy: var(--c-sec);
    --vis-navy-deep: var(--c-d);
    --vis-blue: var(--c-pri);
    --vis-blue-light: var(--c-qui);
    --vis-red: var(--c-ter);
    --vis-gold: var(--c-qua);
    --vis-cream: var(--c-l);
    --vis-paper: var(--c-paper);
    --vis-ink: var(--c-ink);
    --vis-muted: var(--c-muted);
    --vis-line: color-mix(in srgb, var(--c-sec) 17%, transparent);
    --vis-shadow: 0 2.4rem 7rem color-mix(in srgb, var(--c-d) 12%, transparent);
    --vis-header-bar-height: 3.4rem;
    --vis-header-main-height: 9.6rem;
    --vis-header-height: calc(var(--vis-header-bar-height) + var(--vis-header-main-height));
    --vis-width: min(91vw, 140rem);
    --vis-serif: "VIS Newsreader", Georgia, serif;
    --vis-sans: "VIS Inter", Arial, sans-serif;
}

html {
    background: var(--vis-navy-deep);
    color-scheme: light;
    overflow-x: clip;
    scroll-padding-top: var(--vis-header-height);
    scroll-behavior: smooth;
}

html:has(.vis-header--member) { --vis-header-bar-height: 0rem; }

body.vis-site {
    background: var(--vis-cream);
    color: var(--vis-ink);
    font-family: var(--vis-sans);
    font-size: 1.7rem;
    line-height: 1.65;
    margin: 0;
}

.vis-site .app,
.vis-site .main {
    background: var(--vis-cream);
}

.vis-site .main {
    min-height: 58vh;
    overflow: clip;
}

.vis-site h1,
.vis-site h2,
.vis-site h3,
.vis-site h4 {
    color: var(--vis-navy-deep);
    font-family: var(--vis-serif);
    font-weight: 520;
    letter-spacing: -.025em;
    line-height: 1.02;
    margin: 0;
    text-wrap: balance;
}

.vis-site h1 { font-size: clamp(5rem, 7.2vw, 10.2rem); }
.vis-site h2 { font-size: clamp(4rem, 5.1vw, 7.2rem); }
.vis-site h3 { font-size: clamp(2.5rem, 2.3vw, 3.5rem); }

.vis-site p {
    color: var(--vis-muted);
    line-height: 1.65;
    margin: 0 0 2.4rem;
}

.vis-site a { color: inherit; }
.vis-site img { display: block; height: auto; }
.vis-site [id] { scroll-margin-top: 0; }
.vis-site :focus-visible { outline: .3rem solid var(--vis-gold); outline-offset: .4rem; }
.vis-site ::selection { background: var(--vis-gold); color: var(--vis-navy-deep); }

.vis-site .skip-link {
    background: var(--vis-paper);
    border: .2rem solid var(--vis-navy);
    color: var(--vis-navy);
    font-size: 1.4rem;
    font-weight: 750;
    left: 2rem;
    padding: 1.2rem 1.6rem;
    top: -10rem;
    z-index: 9999;
}

.vis-site .skip-link:focus { top: 2rem; }

.vis-kicker {
    align-items: center;
    color: var(--vis-blue) !important;
    display: flex;
    font-size: 1.2rem;
    font-weight: 800;
    gap: 1rem;
    letter-spacing: .16em;
    margin-bottom: 2rem !important;
    text-transform: uppercase;
}

.vis-kicker::before {
    background: currentColor;
    content: "";
    height: .2rem;
    width: 3.8rem;
}

.vis-kicker--light { color: var(--c-sky) !important; }

.vis-section {
    margin: 0 auto;
    padding: clamp(8rem, 10vw, 15rem) 0;
    width: var(--vis-width);
}

.vis-section__heading {
    align-items: end;
    display: grid;
    gap: clamp(4rem, 9vw, 14rem);
    grid-template-columns: minmax(0, 1.35fr) minmax(28rem, .65fr);
    margin-bottom: clamp(5rem, 7vw, 10rem);
}

.vis-section__heading > p { font-size: 1.9rem; margin-bottom: .5rem; }

.vis-section__heading--center {
    display: block;
    margin-left: auto;
    margin-right: auto;
    max-width: 92rem;
    text-align: center;
}

.vis-section__heading--center .vis-kicker { justify-content: center; }
.vis-section__heading--center > p { margin: 2.8rem auto 0; max-width: 70rem; }

.vis-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 2rem 3rem;
}

.vis-site .vis-button,
.vis-site .button,
.vis-site button.button,
.vis-site input[type="submit"],
.vis-site .wp-element-button {
    align-items: center;
    background: var(--vis-blue);
    border: .1rem solid var(--vis-blue);
    border-radius: 0;
    color: var(--c-w);
    display: inline-flex;
    font-family: var(--vis-sans);
    font-size: 1.3rem;
    font-weight: 760;
    gap: 1.6rem;
    justify-content: center;
    letter-spacing: .04em;
    min-height: 5.4rem;
    padding: 1.5rem 2.2rem;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    transition: background .2s ease, border-color .2s ease, color .2s ease;
    white-space: nowrap;
}

.vis-site .vis-button:hover,
.vis-site .vis-button:focus-visible,
.vis-site .button:hover,
.vis-site button.button:hover,
.vis-site input[type="submit"]:hover,
.vis-site .wp-element-button:hover {
    background: var(--vis-navy);
    border-color: var(--vis-navy);
    color: var(--c-w);
}

.vis-site .vis-button:hover .vis-icon,
.vis-text-link:hover .vis-icon { transform: translateX(.4rem); }

.vis-site .vis-button--light {
    background: var(--vis-paper);
    border-color: var(--vis-paper);
    color: var(--vis-navy);
    white-space: nowrap;
}
.vis-site .vis-button--light:hover,
.vis-site .vis-button--light:focus-visible {
    background: transparent;
    border-color: color-mix(in srgb, var(--c-w) 60%, transparent);
    color: var(--c-w);
}
.vis-site .vis-button--outline { background: transparent; color: var(--vis-navy); }
.vis-site .vis-button--gold { background: var(--vis-gold); border-color: var(--vis-gold); color: var(--vis-navy-deep); }
.vis-site .vis-button--outline:hover,
.vis-site .vis-button--outline:focus-visible,
.vis-site .vis-button--gold:hover,
.vis-site .vis-button--gold:focus-visible { color: var(--c-w); }

.vis-text-link {
    align-items: center;
    border-bottom: .1rem solid var(--vis-line);
    color: var(--vis-navy) !important;
    display: inline-flex;
    font-size: 1.4rem;
    font-weight: 750;
    gap: 1.2rem;
    padding: .8rem 0;
    text-decoration: none;
}

.vis-icon {
    flex: 0 0 auto;
    height: 2rem;
    transition: transform .2s ease;
    width: 2rem;
}

/* Header and navigation */
.vis-header {
    background: color-mix(in srgb, var(--c-l) 98%, transparent);
    border-bottom: .1rem solid var(--vis-line);
    position: sticky;
    top: 0;
    transition: box-shadow .2s ease;
    z-index: 100;
}

.vis-header--scrolled { box-shadow: 0 .8rem 3rem color-mix(in srgb, var(--c-d) 8%, transparent); }

.vis-header__bar {
    align-items: center;
    background: var(--vis-navy-deep);
    color: var(--c-w);
    display: flex;
    font-size: 1.1rem;
    font-weight: 650;
    height: var(--vis-header-bar-height);
    justify-content: space-between;
    letter-spacing: .1em;
    padding: 0 max(4.5vw, calc((100vw - 140rem) / 2));
    text-transform: uppercase;
}
.vis-header__bar a { color: var(--c-w); text-decoration: none; }

.vis-header__inner {
    align-items: center;
    display: grid;
    gap: clamp(2rem, 3vw, 5rem);
    grid-template-columns: auto 1fr auto;
    height: var(--vis-header-main-height);
    margin: 0 auto;
    width: var(--vis-width);
}

.vis-brand {
    align-items: center;
    color: var(--vis-navy-deep) !important;
    display: inline-flex;
    gap: 1.2rem;
    text-decoration: none;
}

.vis-brand__mark { height: 6.6rem; object-fit: contain; width: 6.8rem; }
.vis-brand__name { font-family: var(--vis-serif); font-size: 1.8rem; font-weight: 650; line-height: 1.05; }

.vis-nav.nav {
    align-items: center;
    display: flex;
    height: auto;
    justify-content: center;
    margin: 0;
    opacity: 1;
    position: static;
    transform: none;
    visibility: visible;
    width: auto;
}

.vis-nav__list {
    align-items: center;
    display: flex;
    gap: clamp(2rem, 2.8vw, 4.8rem);
    list-style: none;
    margin: 0;
    padding: 0;
}

.vis-nav__item { margin: 0; position: static; }

.vis-nav__link {
    align-items: center;
    color: var(--vis-navy-deep) !important;
    display: flex;
    font-size: 1.3rem;
    font-weight: 720;
    gap: .7rem;
    letter-spacing: .045em;
    padding: 3.8rem 0;
    position: relative;
    text-decoration: none;
    text-transform: uppercase;
}

.vis-nav__link::after {
    background: var(--vis-red);
    bottom: 2.5rem;
    content: "";
    height: .2rem;
    left: 0;
    position: absolute;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform .2s ease;
    width: 100%;
}

.vis-nav__link:hover::after,
.vis-nav__link:focus-visible::after,
.vis-nav__item--active > .vis-nav__link::after {
    transform: scaleX(1);
    transform-origin: left;
}

.vis-nav__chevron { height: .8rem; transition: transform .2s ease; width: 1.2rem; }
.vis-nav__link[aria-expanded="true"] .vis-nav__chevron { transform: rotate(180deg); }
.vis-nav__tag {
    background: var(--vis-blue-light);
    color: var(--vis-blue);
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .08em;
    padding: .25rem .45rem;
    text-transform: uppercase;
}

.vis-nav__sub {
    background: var(--vis-paper);
    border-bottom: .1rem solid var(--vis-line);
    border-top: .1rem solid var(--vis-line);
    box-shadow: 0 2.5rem 5rem color-mix(in srgb, var(--c-d) 10%, transparent);
    left: 0;
    position: absolute;
    top: 100%;
    width: 100%;
}

.vis-nav__sub[hidden] { display: none; }

.vis-nav__sub-inner {
    display: grid;
    gap: 2.4rem 6rem;
    grid-template-columns: 22rem 1fr;
    margin: 0 auto;
    padding: 4.5rem 0 5rem;
    width: var(--vis-width);
}

.vis-nav__eyebrow {
    color: var(--vis-blue) !important;
    font-size: 1.1rem;
    font-weight: 780;
    letter-spacing: .14em;
    margin: .7rem 0 0 !important;
    text-transform: uppercase;
}

.vis-nav__sub-list {
    display: grid;
    gap: 2rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
}

.vis-nav__sub-list a {
    border-left: .1rem solid var(--vis-line);
    display: block;
    min-height: 100%;
    padding: .3rem 2rem;
    text-decoration: none;
}

.vis-nav__sub-list a:hover strong { color: var(--vis-blue); }
.vis-nav__sub-list strong,
.vis-nav__sub-list span { display: block; }

.vis-nav__sub-list strong {
    color: var(--vis-navy-deep);
    font-family: var(--vis-serif);
    font-size: 2.3rem;
    font-weight: 550;
    margin-bottom: .7rem;
}

.vis-nav__sub-list span { color: var(--vis-muted); font-size: 1.3rem; line-height: 1.5; }
.vis-nav__sub-list--member { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vis-nav__sub-list strong small {
    color: var(--vis-blue);
    display: block;
    font-family: var(--vis-sans);
    font-size: .9rem;
    font-weight: 800;
    letter-spacing: .08em;
    margin-top: .5rem;
    text-transform: uppercase;
}

.vis-nav__sub-cta {
    align-items: center;
    color: var(--vis-navy) !important;
    display: inline-flex;
    font-size: 1.2rem;
    font-weight: 780;
    gap: 1rem;
    grid-column: 2;
    justify-self: center;
    letter-spacing: .06em;
    text-decoration: none;
    text-transform: uppercase;
}

.vis-nav__item--mobile { display: none; }
.vis-header__actions { align-items: center; display: flex; gap: 1.8rem; }
.vis-header__account,
.vis-header__logout,
.vis-header__shop { color: var(--vis-navy) !important; font-size: 1.1rem; font-weight: 750; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.vis-header__shop { border: .1rem solid var(--vis-line); padding: .8rem 1rem; }
.vis-header__logout { color: var(--vis-muted) !important; }
.vis-header__cart { align-items: center; color: var(--vis-navy) !important; display: flex; position: relative; }
.vis-header__cart-icon { height: 2.2rem; width: 2.2rem; }

.vis-header__cart-count {
    align-items: center;
    background: var(--vis-red);
    border: .2rem solid var(--vis-cream);
    border-radius: 50%;
    color: var(--c-w);
    display: flex;
    font-size: .9rem;
    font-weight: 800;
    height: 1.9rem;
    justify-content: center;
    position: absolute;
    right: -.9rem;
    top: -1rem;
    width: 1.9rem;
}

.vis-header .vis-header__toggle { display: none; }

.vis-header--member .vis-header__inner {
    gap: clamp(2rem, 4vw, 7rem);
    grid-template-columns: auto 1fr;
}
.vis-header--member .vis-nav.nav { justify-content: flex-end; }
.vis-header--member .vis-nav__list { gap: clamp(2rem, 2.6vw, 4rem); }

.vis-nav__item--profile { margin-left: clamp(.5rem, 1vw, 1.5rem); position: relative; }
.vis-header--member .vis-member-trigger {
    font-size: 1.4rem;
    gap: .9rem;
    letter-spacing: 0;
    padding: 1.6rem 0;
    text-transform: none;
}
.vis-member-trigger::after { display: none; }
.vis-member-trigger__chevron { margin-left: .2rem; }
.vis-member-avatar {
    align-items: center;
    background: var(--c-avatar);
    border: .1rem solid var(--vis-line);
    border-radius: 50%;
    color: var(--vis-blue);
    display: inline-flex;
    flex: 0 0 auto;
    height: 4.2rem;
    justify-content: center;
    width: 4.2rem;
}
.vis-member-avatar__icon { height: 2rem; width: 2rem; }

.vis-member-menu {
    border: .1rem solid var(--vis-line);
    left: auto;
    right: 0;
    top: calc(100% - .8rem);
    width: 31rem;
}
.vis-member-menu__inner {
    display: block;
    padding: 2.2rem;
    width: auto;
}
.vis-member-menu__identity {
    border-bottom: .1rem solid var(--vis-line);
    display: grid;
    overflow: hidden;
    padding: .2rem .4rem 1.8rem;
}
.vis-member-menu__identity strong {
    color: var(--vis-navy-deep);
    font-size: 1.4rem;
}
.vis-member-menu__identity span {
    color: var(--vis-muted);
    font-size: 1.15rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.vis-member-menu__links {
    list-style: none;
    margin: 1rem 0 0;
    padding: 0;
}
.vis-member-menu__links a {
    align-items: center;
    color: var(--vis-navy-deep) !important;
    display: flex;
    font-size: 1.3rem;
    font-weight: 700;
    justify-content: space-between;
    padding: 1rem .4rem;
    text-decoration: none;
}
.vis-member-menu__links a:hover,
.vis-member-menu__links a:focus-visible { color: var(--vis-blue) !important; }
.vis-member-menu__links a > span {
    background: var(--vis-blue-light);
    border-radius: 2rem;
    color: var(--vis-blue);
    font-size: 1rem;
    line-height: 1;
    min-width: 2rem;
    padding: .5rem .7rem;
    text-align: center;
}
.vis-member-menu__logout {
    border-top: .1rem solid var(--vis-line);
    margin-top: 1rem;
    padding-top: 1rem;
}
.vis-member-menu__logout a { color: var(--vis-muted) !important; }

/* Home */
.vis-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(40rem, .95fr);
    margin: 0 auto;
    max-width: 160rem;
    min-height: min(76rem, calc(100vh - var(--vis-header-height)));
}

.vis-hero__content {
    align-self: stretch;
    background: var(--vis-navy-deep);
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(8rem, 9vw, 15rem) 6vw clamp(7rem, 9vw, 13rem) max(4.5vw, calc((100vw - 140rem) / 2));
}

.vis-site .vis-hero h1 {
    color: var(--c-w);
    font-size: clamp(5rem, 4.4vw, 7.2rem);
    max-width: 83rem;
}
.vis-hero h1 span,
.vis-hero h1 em { display: block; }
.vis-hero h1 span { font-weight: 650; }
.vis-hero h1 em { color: var(--c-w); font-weight: 350; }
.vis-hero__content .vis-kicker { color: var(--c-sky) !important; }

.vis-hero__intro {
    color: color-mix(in srgb, var(--c-w) 82%, transparent) !important;
    font-size: clamp(1.8rem, 1.7vw, 2.25rem);
    margin: 3.2rem 0 4rem !important;
    max-width: 68rem;
}

.vis-hero__proof {
    border-top: .1rem solid color-mix(in srgb, var(--c-w) 24%, transparent);
    display: grid;
    gap: 2.5rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    list-style: none;
    margin: 6rem 0 0;
    max-width: 64rem;
    padding: 2.8rem 0 0;
}

.vis-hero__proof li { display: grid; gap: .4rem; }
.vis-hero__proof strong { color: var(--c-w); font-family: var(--vis-serif); font-size: 2.4rem; font-weight: 600; }
.vis-hero__proof span { color: var(--c-mist); font-size: 1.15rem; letter-spacing: .04em; text-transform: uppercase; }
.vis-hero__content .vis-text-link {
    border-color: color-mix(in srgb, var(--c-w) 30%, transparent);
    color: var(--c-w) !important;
}

@media only screen and (min-width: 1101px) {
    .vis-hero h1 span,
    .vis-hero h1 em { white-space: nowrap; }
}

.vis-hero__visual {
    background: var(--vis-blue);
    border-left: .1rem solid var(--vis-line);
    min-height: 100%;
    padding: clamp(4rem, 5vw, 8rem) max(4.5vw, calc((100vw - 140rem) / 2)) 4rem clamp(4rem, 5vw, 8rem);
    position: relative;
}

.vis-hero__visual::before {
    background: var(--vis-red);
    content: "";
    height: 10rem;
    left: 0;
    position: absolute;
    top: 14%;
    width: .5rem;
}

.vis-hero__image-wrap {
    box-shadow: var(--vis-shadow);
    height: min(58rem, 65vh);
    margin-top: clamp(2rem, 4vw, 7rem);
    position: relative;
}

.vis-hero__image-wrap > img { height: 100%; object-fit: cover; width: 100%; }

.vis-hero__seal {
    align-items: center;
    background: var(--vis-navy);
    border: .7rem solid color-mix(in srgb, var(--c-w) 25%, transparent);
    border-radius: 50%;
    bottom: -4rem;
    color: var(--c-w);
    display: flex;
    font-family: var(--vis-serif);
    font-size: 1.6rem;
    height: 11rem;
    justify-content: center;
    line-height: 1.12;
    position: absolute;
    right: -3rem;
    text-align: center;
    transform: rotate(5deg);
    width: 11rem;
}

.vis-hero__caption {
    color: var(--c-w) !important;
    font-family: var(--vis-serif);
    font-size: 1.6rem;
    font-style: italic;
    margin: 3.5rem 0 0 !important;
    text-align: right;
}

.vis-trust {
    align-items: center;
    background: var(--vis-blue-light);
    border-bottom: .1rem solid var(--vis-line);
    border-top: .1rem solid var(--vis-line);
    color: var(--vis-navy-deep);
    display: grid;
    gap: 6rem;
    grid-template-columns: minmax(24rem, .7fr) minmax(0, 1.3fr);
    padding: 3.5rem max(4.5vw, calc((100vw - 140rem) / 2));
}

.vis-trust__intro { align-items: center; display: flex; gap: 1.8rem; }
.vis-trust__intro p { color: var(--vis-navy) !important; font-family: var(--vis-serif); font-size: 1.8rem; line-height: 1.2; margin: 0 !important; }
.vis-trust__rule { background: var(--vis-red); height: .2rem; width: 5rem; }

.vis-trust ul {
    display: grid;
    gap: 2rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
}

.vis-trust li { align-items: center; border-left: .1rem solid var(--vis-line); display: flex; gap: 1.4rem; padding-left: 2rem; }
.vis-trust li span { color: var(--vis-red); font-family: var(--vis-serif); font-size: 1.4rem; }
.vis-trust li strong { font-size: 1.2rem; letter-spacing: .05em; text-transform: uppercase; }

.vis-purpose__grid { display: grid; gap: 2rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }

.vis-feature-card {
    background: var(--vis-paper);
    border: .1rem solid var(--vis-line);
    min-height: 43rem;
    padding: 4rem;
    position: relative;
    transition: box-shadow .25s ease, transform .25s ease;
}

.vis-feature-card:hover { box-shadow: var(--vis-shadow); transform: translateY(-.5rem); }
.vis-feature-card--accent { background: var(--vis-blue-light); }
.vis-feature-card__number { color: var(--vis-red); font-size: 1.1rem; font-weight: 800; letter-spacing: .12em; }
.vis-feature-card__icon { color: var(--vis-blue); display: block; height: 7rem; margin: 6rem 0 4.5rem; width: 7rem; }
.vis-feature-card h3 { margin-bottom: 1.8rem; }
.vis-feature-card p { font-size: 1.55rem; margin-bottom: 0; }

.vis-audience {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    max-width: none;
    padding: 0;
    width: 100%;
}

.vis-audience__image { min-height: 73rem; }
.vis-audience__image img { height: 100%; object-fit: cover; width: 100%; }

.vis-audience__content {
    background: var(--vis-navy);
    color: var(--c-w);
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(7rem, 9vw, 15rem) max(4.5vw, calc((100vw - 140rem) / 2)) clamp(7rem, 9vw, 15rem) clamp(5rem, 8vw, 13rem);
}

.vis-audience__content h2 { color: var(--c-w); max-width: 70rem; }
.vis-audience__content > p:not(.vis-kicker) { color: color-mix(in srgb, var(--c-w) 76%, transparent); font-size: 1.9rem; margin: 3rem 0 5rem; max-width: 66rem; }

.vis-audience__columns {
    border-bottom: .1rem solid color-mix(in srgb, var(--c-w) 20%, transparent);
    border-top: .1rem solid color-mix(in srgb, var(--c-w) 20%, transparent);
    display: grid;
    gap: 3rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 4rem;
    padding: 3rem 0;
}

.vis-audience__columns div { display: grid; gap: .8rem; }
.vis-audience__columns strong { font-family: var(--vis-serif); font-size: 2rem; }
.vis-audience__columns span { color: color-mix(in srgb, var(--c-w) 68%, transparent); font-size: 1.35rem; }
.vis-audience__content .vis-button { align-self: flex-start; }

.vis-plans--renewal { padding-top: clamp(5rem, 6vw, 8rem); }
.vis-plans__grid { align-items: stretch; display: grid; gap: 2rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }

.vis-plan {
    background: var(--vis-paper);
    border: .1rem solid var(--vis-line);
    display: flex;
    flex-direction: column;
    padding: 4.5rem 3.5rem 3.5rem;
    position: relative;
}

.vis-plan--featured { border: .2rem solid var(--vis-blue); box-shadow: var(--vis-shadow); transform: none; }

.vis-plan__flag {
    background: var(--vis-blue);
    color: var(--c-w) !important;
    font-size: 1rem;
    font-weight: 800;
    left: -.2rem;
    letter-spacing: .12em;
    margin: 0 !important;
    padding: .8rem 1.4rem;
    position: absolute;
    text-transform: uppercase;
    top: -3.2rem;
}

.vis-plan__head { border-bottom: .1rem solid var(--vis-line); margin-bottom: 2.5rem; padding-bottom: 2.5rem; }
.vis-plan__price { color: var(--vis-navy) !important; font-family: var(--vis-serif); font-size: 3.5rem; margin: 1.5rem 0 0 !important; }
.vis-plan__price small,
.vis-plan__price .subscription-details { color: var(--vis-muted); font-family: var(--vis-sans); font-size: 1.15rem; }
.vis-plan > p { font-size: 1.5rem; }
.vis-plan ul { display: grid; gap: 1.3rem; list-style: none; margin: 1rem 0 3.5rem; padding: 0; }
.vis-plan li { color: var(--vis-ink); display: flex; font-size: 1.35rem; gap: 1rem; }
.vis-plan li span { color: var(--vis-blue); font-weight: 800; }
.vis-plan .vis-button { margin-top: auto; }
.vis-plans__note { font-size: 1.35rem; margin: 4rem 0 0 !important; text-align: center; }
.vis-plans__note a { color: var(--vis-blue); font-weight: 700; text-decoration: underline; text-underline-offset: .3rem; }

.vis-disclaimer { background: var(--c-sand); padding: 2.5rem max(4.5vw, calc((100vw - 140rem) / 2)); }
.vis-disclaimer p { font-size: 1.1rem; letter-spacing: .02em; margin: 0 !important; text-align: center; }

.vis-renewal-result {
    background: var(--vis-paper);
    border-bottom: .1rem solid var(--vis-line);
    padding: 4rem max(4.5vw, calc((100vw - 140rem) / 2));
}

.vis-renewal-lookup {
    border-left: .4rem solid var(--vis-blue);
    margin: 0 auto;
    max-width: 140rem;
    padding: 1rem 0 1rem 3rem;
}

.vis-renewal-lookup h2 {
    font-size: clamp(3rem, 4vw, 5rem);
    margin-bottom: 1.5rem;
}

.vis-renewal-lookup > p { max-width: 76rem; }
.vis-renewal-lookup dl { display: grid; gap: 0; grid-template-columns: minmax(16rem, .35fr) minmax(0, 1fr); margin: 3rem 0 0; max-width: 80rem; }
.vis-renewal-lookup dt,
.vis-renewal-lookup dd { border-top: .1rem solid var(--vis-line); font-size: 1.35rem; margin: 0; padding: 1.2rem 0; }
.vis-renewal-lookup dt { color: var(--vis-navy); }
.vis-renewal-lookup dd { color: var(--vis-muted); }
.vis-renewal-lookup__actions { margin-top: 3rem; }

/* Interior pages */
.vis-page-hero,
.vis-page__hero,
.vis-legal__hero {
    background: var(--vis-blue-light);
    border-bottom: .1rem solid var(--vis-line);
    border-top: .1rem solid var(--vis-line);
    display: grid;
    gap: 5rem;
    grid-template-columns: minmax(0, 1.2fr) minmax(30rem, .8fr);
    padding: clamp(8rem, 9vw, 13rem) max(4.5vw, calc((100vw - 140rem) / 2));
}

.vis-page-hero > p { align-self: end; font-size: 2rem; margin: 0; max-width: 55rem; }
.vis-page__hero,
.vis-legal__hero { display: block; }
.vis-page__hero h1,
.vis-legal__hero h1 { font-size: clamp(4.8rem, 6vw, 8.2rem); }

.vis-page__content {
    margin: 0 auto;
    padding: clamp(6rem, 8vw, 11rem) 0;
    width: var(--vis-width);
}

.vis-page:not(.vis-commerce *) .vis-page__content { max-width: 90rem; }

.vis-about-intro {
    align-items: center;
    display: grid;
    gap: clamp(5rem, 10vw, 16rem);
    grid-template-columns: minmax(28rem, .65fr) minmax(0, 1.35fr);
    margin: 0 auto;
    padding: clamp(9rem, 11vw, 16rem) 0;
    width: var(--vis-width);
}

.vis-about-intro__mark { background: var(--vis-navy-deep); padding: clamp(4rem, 6vw, 8rem); position: relative; }
.vis-about-intro__mark::after { border: .1rem solid var(--vis-gold); content: ""; inset: 2rem -2rem -2rem 2rem; pointer-events: none; position: absolute; }
.vis-about-intro__mark--book { background: var(--vis-blue); padding: clamp(2rem, 3vw, 4rem); }
.vis-about-intro__mark--book img { display: block; height: auto; width: 100%; }
.vis-about-intro__copy h2 { margin-bottom: 3rem; }
.vis-about-intro__copy > p:not(.vis-kicker) { font-size: 1.85rem; max-width: 72rem; }

.vis-history {
    background: var(--vis-navy);
    color: var(--c-w);
    padding: clamp(8rem, 10vw, 15rem) max(4.5vw, calc((100vw - 140rem) / 2));
}

.vis-history__heading { max-width: 90rem; }
.vis-history h2,
.vis-history h3 { color: var(--c-w); }

.vis-history__timeline {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 8rem;
}

.vis-history__timeline article { border-left: .1rem solid color-mix(in srgb, var(--c-w) 22%, transparent); padding: 0 4rem 0 3rem; position: relative; }
.vis-history__timeline article::before { background: var(--vis-gold); border: .5rem solid var(--vis-navy); border-radius: 50%; content: ""; height: 1.8rem; left: -.9rem; position: absolute; top: 0; width: 1.8rem; }
.vis-history__timeline span { color: var(--c-sky); display: block; font-size: 1.1rem; font-weight: 800; letter-spacing: .13em; margin-bottom: 3rem; text-transform: uppercase; }
.vis-history__timeline h3 { font-size: 2.7rem; margin-bottom: 1.5rem; }
.vis-history__timeline p { color: color-mix(in srgb, var(--c-w) 68%, transparent); font-size: 1.45rem; margin: 0; }

.vis-principles__list { border-top: .1rem solid var(--vis-line); list-style: none; margin: 0; padding: 0; }
.vis-principles__list li { align-items: start; border-bottom: .1rem solid var(--vis-line); display: grid; gap: 3rem; grid-template-columns: 8rem 1fr; padding: 3.5rem 0; }
.vis-principles__list > li > span { color: var(--vis-red); font-family: var(--vis-serif); font-size: 1.8rem; }
.vis-principles__list div { display: grid; gap: 2rem; grid-template-columns: minmax(24rem, .7fr) minmax(0, 1.3fr); }
.vis-principles__list p { margin: 0; }

.vis-about-audiences {
    background: var(--vis-navy-deep);
    color: var(--c-w);
    display: grid;
    gap: clamp(5rem, 10vw, 15rem);
    grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr);
    padding: clamp(8rem, 10vw, 14rem) max(4.5vw, calc((100vw - 140rem) / 2));
}

.vis-about-audiences h2 { color: var(--c-w); }
.vis-about-audiences ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.vis-about-audiences li { border: .1rem solid color-mix(in srgb, var(--c-w) 14%, transparent); display: grid; gap: 1rem; margin: -.05rem; padding: 3rem; }
.vis-about-audiences strong { font-family: var(--vis-serif); font-size: 2.2rem; font-weight: 550; }
.vis-about-audiences span { color: color-mix(in srgb, var(--c-w) 65%, transparent); font-size: 1.35rem; }

.vis-simple-cta { margin: 0 auto; max-width: 95rem; padding: clamp(9rem, 11vw, 16rem) 4vw; text-align: center; }
.vis-simple-cta .vis-kicker,
.vis-simple-cta .vis-actions { justify-content: center; }
.vis-simple-cta h2 { margin-bottom: 4rem; }

.vis-contact {
    display: grid;
    gap: clamp(6rem, 10vw, 15rem);
    grid-template-columns: minmax(28rem, .7fr) minmax(0, 1.3fr);
    margin: 0 auto;
    padding: clamp(8rem, 10vw, 14rem) 0;
    width: var(--vis-width);
}

.vis-contact__details h2 { margin-bottom: 4rem; }
.vis-contact__details dl { border-top: .1rem solid var(--vis-line); margin: 0; }
.vis-contact__details dl > div { border-bottom: .1rem solid var(--vis-line); display: grid; gap: 2rem; grid-template-columns: 8rem 1fr; padding: 2.4rem 0; }
.vis-contact__details dt { color: var(--vis-blue); font-size: 1.1rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.vis-contact__details dd { color: var(--vis-ink); font-size: 1.5rem; line-height: 1.6; margin: 0; }
.vis-contact__details dd a { color: var(--vis-navy); text-decoration: underline; text-underline-offset: .3rem; }

.vis-contact__note { background: var(--vis-blue-light); border: .1rem solid var(--vis-line); border-left: .3rem solid var(--vis-blue); margin-top: 4rem; padding: 2.4rem; }
.vis-contact__note strong { color: var(--vis-navy); display: block; font-size: 1.3rem; margin-bottom: .8rem; }
.vis-contact__note p { font-size: 1.25rem; margin: 0; }

.vis-contact__form { background: var(--vis-paper); border: .1rem solid var(--vis-line); padding: clamp(3rem, 5vw, 6rem); }
.vis-contact__form-heading { align-items: baseline; border-bottom: .1rem solid var(--vis-line); display: flex; justify-content: space-between; margin-bottom: 3.5rem; padding-bottom: 2rem; }
.vis-contact__form-heading span { color: var(--vis-navy-deep); font-family: var(--vis-serif); font-size: 3rem; }
.vis-contact__form-heading p { font-size: 1.1rem; margin: 0; }
.vis-notice { background: var(--vis-blue-light); border: .1rem solid var(--vis-line); border-left: .3rem solid var(--vis-blue); padding: 2rem; }
.vis-notice a { color: var(--vis-blue); font-weight: 700; }

/* Forms */
.vis-site input:not([type="checkbox"], [type="radio"], [type="submit"]),
.vis-site select,
.vis-site textarea {
    background: var(--c-w);
    border: .1rem solid color-mix(in srgb, var(--c-d) 35%, transparent);
    border-radius: 0;
    color: var(--vis-ink);
    min-height: 5.2rem;
    padding: 1.2rem 1.5rem;
    width: 100%;
}

.vis-site textarea { min-height: 16rem; }
.vis-site input:focus,
.vis-site select:focus,
.vis-site textarea:focus { border-color: var(--vis-blue); box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--c-pri) 15%, transparent); outline: 0; }
.vis-site label,
.vis-site .gfield_label { color: var(--vis-navy-deep); font-size: 1.3rem; font-weight: 720; }
.vis-site .gform_wrapper.gravity-theme .gfield { margin-bottom: 1rem; }
.vis-site .gform_wrapper.gravity-theme .gform_fields { gap: 2.2rem; }
.vis-site .gform_wrapper .gfield_required { color: var(--vis-red); }
.vis-site .gform_wrapper .gform_footer { margin: 2.5rem 0 0; padding: 0; }
.vis-site .gform_confirmation_message { background: var(--vis-blue-light); border: .1rem solid var(--vis-line); border-left: .4rem solid var(--vis-blue); color: var(--vis-navy); padding: 2.4rem; }

/* Legal */
.vis-legal__hero { grid-template-columns: 1fr; }
.vis-legal__updated { font-size: 1.25rem; margin: 2rem 0 0 !important; }

.vis-legal__layout {
    align-items: start;
    display: grid;
    gap: clamp(5rem, 8vw, 12rem);
    grid-template-columns: 25rem minmax(0, 76rem);
    justify-content: center;
    margin: 0 auto;
    padding: clamp(7rem, 9vw, 12rem) 0;
    width: var(--vis-width);
}

.vis-legal__nav { background: var(--vis-paper); border-top: .3rem solid var(--vis-blue); max-height: calc(100vh - var(--vis-header-height) - 4rem); overflow-y: auto; padding: 2.5rem; position: sticky; top: calc(var(--vis-header-height) + 2rem); }
.vis-legal__nav strong { color: var(--vis-navy-deep); display: block; font-size: 1.2rem; letter-spacing: .08em; margin-bottom: 1.2rem; text-transform: uppercase; }
.vis-legal__nav ol { display: grid; gap: .4rem; list-style: none; margin: 0; padding: 0; }
.vis-legal__nav a { border-bottom: .1rem solid var(--vis-line); color: var(--vis-muted); display: block; font-size: 1.2rem; line-height: 1.35; padding: .8rem 0; }
.vis-legal__nav a:hover,
.vis-legal__nav a:focus-visible { color: var(--vis-blue); }
.vis-legal__content h2 { font-size: 3.6rem; margin: 5rem 0 2rem; }
.vis-legal__content h2:first-child { margin-top: 0; }
.vis-legal__content h3 { font-family: var(--vis-sans); font-size: 1.8rem; font-weight: 760; letter-spacing: 0; line-height: 1.4; margin: 3.5rem 0 1.2rem; }
.vis-legal__content ul,
.vis-legal__content ol { color: var(--vis-muted); line-height: 1.65; }

/* WooCommerce */
.vis-woo { margin: 0 auto; padding: clamp(6rem, 8vw, 11rem) 0; width: var(--vis-width); }
.vis-woo--shop .woocommerce-products-header { display: none; }
.vis-woo__back { color: var(--vis-blue) !important; display: inline-block; font-size: 1.2rem; font-weight: 750; letter-spacing: .05em; margin-bottom: 4rem; text-transform: uppercase; }

body.vis-site.woocommerce-page .button,
body.vis-site .woocommerce .button,
body.vis-site .wc-block-components-button {
    align-items: center !important;
    background: var(--vis-blue) !important;
    border: .1rem solid var(--vis-blue) !important;
    border-radius: 0 !important;
    color: var(--c-w) !important;
    display: inline-flex !important;
    font-family: var(--vis-sans) !important;
    font-size: 1.3rem !important;
    font-weight: 760 !important;
    justify-content: center !important;
    letter-spacing: .04em !important;
    line-height: 1.2 !important;
    min-height: 5.4rem;
    padding: 1.5rem 2.2rem !important;
    text-align: center;
    text-transform: uppercase;
    white-space: nowrap;
}

body.vis-site.woocommerce-page .button:hover,
body.vis-site.woocommerce-page .button:focus-visible,
body.vis-site .woocommerce .button:hover,
body.vis-site .woocommerce .button:focus-visible,
body.vis-site .wc-block-components-button:hover,
body.vis-site .wc-block-components-button:focus-visible {
    background: var(--vis-navy) !important;
    border-color: var(--vis-navy) !important;
    color: var(--c-w) !important;
}

body.vis-site.woocommerce-page .button:disabled,
body.vis-site.woocommerce-page .button.disabled,
body.vis-site .woocommerce .button:disabled,
body.vis-site .woocommerce .button.disabled,
body.vis-site .wc-block-components-button:disabled {
    cursor: not-allowed;
    opacity: .5;
}

.vis-site.woocommerce .woocommerce-breadcrumb,
.vis-site.woocommerce .woocommerce-result-count,
.vis-site.woocommerce .woocommerce-ordering { display: none; }

.vis-site.woocommerce ul.products {
    display: grid;
    gap: 2rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
}

.vis-site.woocommerce ul.products::before,
.vis-site.woocommerce ul.products::after { display: none; }

.vis-site.woocommerce ul.products li.product {
    background: var(--vis-paper);
    border: .1rem solid var(--vis-line);
    display: flex;
    flex-direction: column;
    float: none;
    margin: 0;
    padding: 2rem 2rem 2.5rem;
    width: auto;
}

.vis-site.woocommerce ul.products li.product a img { aspect-ratio: 4 / 3; background: var(--vis-blue-light); border: .1rem solid var(--vis-line); margin: 0 0 2.5rem; object-fit: cover; }
.vis-site.woocommerce ul.products li.product .woocommerce-loop-product__title { color: var(--vis-navy-deep); font-family: var(--vis-serif); font-size: 2.8rem; font-weight: 550; padding: 0; }
.vis-site.woocommerce ul.products li.product .price { color: var(--vis-blue); font-size: 1.7rem; font-weight: 750; margin: 1.2rem 0 2rem; }
.vis-site.woocommerce ul.products li.product .button { margin-top: auto; }
.vis-site.woocommerce div.product { display: flow-root; }
.vis-site.woocommerce div.product div.images,
.vis-site.woocommerce div.product div.summary { margin-bottom: 8rem; }
.vis-site.woocommerce div.product div.summary { padding: clamp(1rem, 3vw, 4rem); }
.vis-site.woocommerce div.product .product_title { font-size: clamp(4rem, 5vw, 7rem); }
.vis-site.woocommerce div.product p.price,
.vis-site.woocommerce div.product span.price { color: var(--vis-blue); font-family: var(--vis-serif); font-size: 2.7rem; margin: 2rem 0; }
.vis-site.woocommerce div.product .woocommerce-product-details__short-description { border-bottom: .1rem solid var(--vis-line); border-top: .1rem solid var(--vis-line); margin: 3rem 0; padding: 2.5rem 0 .5rem; }
.vis-site.woocommerce div.product .vis-print-reference {
    color: var(--vis-ink-muted);
    display: flex;
    flex-wrap: wrap;
    font-size: 1.35rem;
    font-weight: 700;
    gap: .5rem 1.4rem;
    margin: -1.4rem 0 2.8rem;
}
.vis-site.woocommerce div.product .vis-print-reference span + span {
    border-left: .1rem solid var(--vis-line);
    padding-left: 1.4rem;
}
.vis-site.woocommerce div.product .woocommerce-variation-description .vis-print-reference {
    margin: 0 0 2rem;
}
.vis-site.woocommerce div.product form.cart { align-items: stretch; display: flex; flex-wrap: wrap; gap: 1rem; }
.vis-site.woocommerce div.product form.cart .wc-memberships-for-teams-team-fields-wrapper,
.vis-site.woocommerce div.product form.cart .vis-seat-guidance,
.vis-site.woocommerce div.product form.cart .wcsatt-options-wrapper {
    flex: 0 0 100%;
}
.vis-site.woocommerce div.product form.variations_form {
    display: block;
    margin: 0;
}
.vis-site.woocommerce div.product form.variations_form table.variations,
.vis-site.woocommerce div.product form.variations_form table.variations tbody,
.vis-site.woocommerce div.product form.variations_form table.variations tr,
.vis-site.woocommerce div.product form.variations_form table.variations td {
    display: block;
    width: 100%;
}
.vis-site.woocommerce div.product form.variations_form table.variations {
    border: 0;
    margin: 0 0 2.4rem;
}
.vis-site.woocommerce div.product form.variations_form table.variations td {
    padding: 0;
}
.vis-site.woocommerce div.product form.variations_form table.variations .label label {
    color: var(--vis-navy-deep);
    display: block;
    font-weight: 750;
    margin-bottom: .8rem;
}
.vis-site.woocommerce div.product form.variations_form table.variations select {
    min-height: 5.4rem;
    width: 100%;
}
.vis-site.woocommerce div.product form.variations_form .reset_variations {
    color: var(--vis-blue);
    display: inline-block;
    font-size: 1.35rem;
    font-weight: 700;
    margin-top: .8rem;
    text-decoration: underline;
    text-underline-offset: .3rem;
}
.vis-site.woocommerce div.product form.variations_form .single_variation_wrap {
    width: 100%;
}
.vis-site.woocommerce div.product form.variations_form .woocommerce-variation-price {
    margin: 0 0 2rem;
}
.vis-site.woocommerce div.product form.variations_form .variations_button {
    align-items: stretch;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}
.vis-site.woocommerce div.product form.cart .team-fields {
    background: transparent;
    border: 0;
    padding: 0;
}
.vis-site.woocommerce div.product form.cart .team-fields .form-row {
    margin: 0;
    padding: 0;
    width: 100%;
}
.vis-site.woocommerce div.product form.cart .team-fields label,
.vis-site.woocommerce div.product form.cart .team-seat-count-label {
    color: var(--vis-navy-deep);
    display: block;
    font-weight: 750;
    margin: 0 0 .8rem;
}
.vis-site.woocommerce div.product form.cart .team-fields input[type="text"] {
    border: .1rem solid var(--vis-line);
    min-height: 5.4rem;
    width: 100%;
}
.vis-site.woocommerce div.product form.cart .vis-field-help {
    color: var(--vis-ink-muted);
    display: block;
    font-size: 1.4rem;
    line-height: 1.5;
    margin-top: .8rem;
}
.vis-site.woocommerce div.product form.cart .team-seat-count-label {
    font-size: 1.7rem;
    margin: 2.8rem 0 .8rem;
}
.vis-seat-guidance {
    background: var(--vis-blue-light);
    border: .1rem solid var(--vis-line);
    color: var(--vis-navy-deep);
    margin-bottom: .8rem;
    padding: 1.8rem 2rem .8rem;
}
.vis-seat-guidance p { margin-bottom: 1rem; }
.vis-organization-callout,
.vis-previous-edition-callout {
    border-left: .3rem solid var(--vis-blue);
    margin-top: 2.4rem;
    padding: .2rem 0 .2rem 1.6rem;
}
.vis-organization-callout p,
.vis-previous-edition-callout p { color: var(--vis-ink-muted); margin-bottom: .4rem; }
.vis-site.woocommerce div.product .vis-organization-callout a,
.vis-site.woocommerce div.product .vis-previous-edition-callout a {
    color: var(--vis-blue);
    font-weight: 750;
    text-decoration: underline;
    text-underline-offset: .3rem;
}
.vis-site.woocommerce div.product .vis-organization-callout a:hover,
.vis-site.woocommerce div.product .vis-organization-callout a:focus-visible,
.vis-site.woocommerce div.product .vis-previous-edition-callout a:hover,
.vis-site.woocommerce div.product .vis-previous-edition-callout a:focus-visible {
    color: var(--vis-navy-deep);
}
.vis-site.woocommerce div.product form.cart .wcsatt-options-wrapper {
    background: transparent;
    border: 0;
    margin: 0 0 2rem;
    padding: 0;
    width: 100%;
}
.vis-site.woocommerce div.product form.cart .wcsatt-options-prompt-text {
    color: var(--vis-navy-deep);
    font-size: 1.7rem;
    font-weight: 750;
    margin-bottom: 1.2rem;
}
.vis-site.woocommerce div.product form.cart .wcsatt-options-product,
.vis-site.woocommerce div.product form.cart .wcsatt-options-prompt-radios {
    list-style: none;
    margin: 0;
    padding: 0;
}
.vis-site.woocommerce div.product form.cart .wcsatt-options-prompt-radios {
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr;
}
.vis-site.woocommerce div.product form.cart .wcsatt-options-product li,
.vis-site.woocommerce div.product form.cart .wcsatt-options-prompt-radio {
    margin: 0;
}
.vis-site.woocommerce div.product form.cart .wcsatt-options-product label,
.vis-site.woocommerce div.product form.cart .wcsatt-options-prompt-label {
    align-items: center;
    background: var(--vis-paper);
    border: .1rem solid var(--vis-line);
    cursor: pointer;
    display: flex;
    font-weight: 750;
    gap: 1rem;
    height: 100%;
    line-height: 1.35;
    padding: 1.6rem;
    transition: background-color var(--vis-speed), border-color var(--vis-speed), box-shadow var(--vis-speed), transform var(--vis-speed);
}
.vis-site.woocommerce div.product form.cart .wcsatt-options-prompt-label:hover {
    border-color: var(--vis-blue);
    transform: translateY(-.1rem);
}
.vis-site.woocommerce div.product form.cart .wcsatt-options-prompt-label:has(input:checked) {
    background: var(--vis-blue-light);
    border-color: var(--vis-blue);
    box-shadow: inset .4rem 0 0 var(--vis-blue);
}
.vis-site.woocommerce div.product form.cart .wcsatt-options-prompt-action-input {
    appearance: none;
    background: var(--c-w);
    border: .2rem solid var(--vis-line);
    border-radius: 50%;
    flex: 0 0 2.2rem;
    height: 2.2rem;
    margin: 0;
    transition: border-color var(--vis-speed), box-shadow var(--vis-speed);
    width: 2.2rem;
}
.vis-site.woocommerce div.product form.cart .wcsatt-options-prompt-action-input:checked {
    border-color: var(--vis-blue);
    box-shadow: inset 0 0 0 .5rem var(--c-w);
    background: var(--vis-blue);
}
.vis-site.woocommerce div.product form.cart .wcsatt-options-prompt-action-input:focus-visible {
    outline: .2rem solid var(--vis-navy-deep);
    outline-offset: .3rem;
}
.vis-site.woocommerce div.product form.cart .wcsatt-options-prompt-action .price,
.vis-site.woocommerce div.product form.cart .wcsatt-options-prompt-action .subscription-details {
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    margin: 0;
}
.vis-site.woocommerce div.product form.cart .quantity input { max-width: 8rem; min-height: 5.4rem; }
.vis-product-details {
    background: var(--vis-blue-light);
    border: .1rem solid var(--vis-line);
    clear: both;
    margin-top: 2rem;
    padding: clamp(3rem, 5vw, 7rem);
}
.vis-product-details .vis-kicker { margin-bottom: 2rem; }
.vis-product-details__copy { max-width: 105rem; }
.vis-product-details__copy h2 {
    font-size: clamp(3.4rem, 4.5vw, 5.8rem);
    margin-bottom: 2rem;
    max-width: 90rem;
}
.vis-product-details__copy p,
.vis-product-details__copy li { font-size: 1.7rem; line-height: 1.7; }
.vis-product-details__copy ul,
.vis-product-details__copy ol { margin: 2.5rem 0 0; padding-left: 2.2rem; }
.vis-product-details__copy li { margin-bottom: .7rem; }

.vis-site .woocommerce-message,
.vis-site .woocommerce-info,
.vis-site .woocommerce-error,
.vis-site .wc-block-components-notice-banner {
    background: var(--vis-blue-light);
    border: .1rem solid var(--vis-line);
    border-left: .4rem solid var(--vis-blue);
    color: var(--vis-navy-deep);
    list-style: none;
    margin-bottom: 3rem;
    padding: 2rem 2.4rem;
}

body.vis-site .woocommerce-message,
body.vis-site .woocommerce-info,
body.vis-site .woocommerce-error {
    line-height: 1.55;
    padding: 2.2rem 2.4rem 2.2rem 5.8rem !important;
    position: relative;
}

body.vis-site .woocommerce-message,
body.vis-site .woocommerce-info {
    align-items: center;
    column-gap: 2rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
}

body.vis-site .woocommerce-message::before,
body.vis-site .woocommerce-info::before,
body.vis-site .woocommerce-error::before {
    color: var(--vis-blue);
    left: 2.2rem !important;
    line-height: 1;
    top: 50% !important;
    transform: translateY(-50%);
}

body.vis-site .woocommerce-error { background: var(--c-error); border-left-color: var(--vis-red); }
body.vis-site .woocommerce-error::before { color: var(--vis-red); top: 2.3rem !important; transform: none; }
body.vis-site .woocommerce-message > .button,
body.vis-site .woocommerce-info > .button {
    float: none !important;
    grid-column: 2;
    grid-row: 1;
    margin: 0;
}

body.vis-site .wc-block-components-notice-banner {
    align-items: flex-start !important;
    display: flex !important;
    gap: 1.6rem;
    padding: 2rem 2.4rem !important;
}

body.vis-site .wc-block-components-notice-banner > svg {
    flex: 0 0 2.4rem;
    margin: 0 !important;
    position: static;
}

body.vis-site .wc-block-components-notice-banner__content {
    align-items: center;
    display: flex;
    flex: 1;
    gap: 1.6rem;
    justify-content: space-between;
}

.vis-site .woocommerce table.shop_table { background: var(--vis-paper); border: .1rem solid var(--vis-line); border-collapse: collapse; border-radius: 0; }
.vis-site .woocommerce table.shop_table th,
.vis-site .woocommerce table.shop_table td { border-color: var(--vis-line); padding: 1.8rem; }
.vis-account-entry {
    align-items: stretch;
    display: grid;
    gap: clamp(2rem, 4vw, 5rem);
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.vis-account-entry__login,
.vis-account-entry__legacy {
    border: .1rem solid var(--vis-line);
    padding: clamp(3rem, 4vw, 5rem);
}
.vis-account-entry__login {
    background: var(--vis-paper);
    border-top: .3rem solid var(--vis-navy);
}
.vis-account-entry__login > h2,
.vis-account-entry__legacy h2 { font-size: clamp(3rem, 3.5vw, 4.4rem); }
.vis-account-entry__login .woocommerce-form-login {
    border: 0;
    margin: 0;
    padding: 0;
}
.vis-account-entry__login .form-row { margin-bottom: 1.8rem; }
.vis-account-entry__login label { color: var(--vis-navy-deep); font-weight: 700; }
.vis-account-entry__login .input-text {
    background: var(--c-w);
    border: .1rem solid var(--vis-line);
    min-height: 5.4rem;
    width: 100%;
}
.vis-account-entry__login .woocommerce-form-login__rememberme { align-items: center; display: inline-flex; gap: .7rem; margin-right: 1.5rem; }
.vis-account-entry__legacy {
    align-content: center;
    background: var(--vis-navy-deep);
    color: var(--c-w);
    display: grid;
}
.vis-account-entry__legacy .vis-kicker { color: var(--vis-blue-light); }
.vis-account-entry__legacy h2,
.vis-account-entry__legacy p { color: var(--c-w); }
.vis-account-entry__legacy > p:not(.vis-kicker) { color: color-mix(in srgb, var(--c-w) 78%, transparent); font-size: 1.65rem; }
.vis-account-entry__legacy .vis-button { justify-self: start; margin-top: 1rem; }

.vis-account-setup {
    display: grid;
    gap: clamp(3rem, 6vw, 8rem);
    grid-template-columns: minmax(0, 1.15fr) minmax(28rem, .85fr);
}
.vis-account-setup__intro > p:last-child { font-size: 1.8rem; line-height: 1.75; }
.vis-account-setup__help {
    align-self: start;
    background: var(--vis-blue-light);
    border: .1rem solid var(--vis-line);
    border-top: .3rem solid var(--vis-blue);
    padding: clamp(3rem, 4vw, 5rem);
}
.vis-account-setup__help h3 { font-size: clamp(2.8rem, 3.5vw, 4rem); }
.vis-account-setup__help .vis-actions { align-items: flex-start; flex-direction: column; gap: 1.8rem; }
.vis-account-setup__steps {
    display: flex;
    gap: 1.6rem 2.4rem;
    list-style: none;
    margin: 0 0 2.4rem;
    padding: 0;
}
.vis-account-setup__steps li {
    color: var(--vis-muted);
    font-size: 1.2rem;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.vis-account-setup__steps .is-current { color: var(--vis-blue); }
.vis-account-setup__steps span {
    display: inline-grid;
    font-size: 1.1rem;
    height: 2.2rem;
    margin-right: .6rem;
    place-items: center;
    width: 2.2rem;
}
.vis-account-setup__notice {
    background: var(--vis-paper);
    border: .1rem solid var(--vis-line);
    border-left: .4rem solid var(--vis-navy);
    margin: 0 0 2rem;
    padding: 1.4rem 1.6rem;
}
.vis-account-setup__form { display: grid; gap: 1.8rem; justify-items: start; }
.vis-account-setup__form [type="submit"]:disabled { cursor: wait; opacity: .72; }
.vis-account-setup__form .form-row { display: grid; gap: .6rem; margin: 0; width: min(100%, 48rem); }
.vis-account-setup__form label { color: var(--vis-navy-deep); font-weight: 700; }
.vis-account-setup__form .input-text {
    background: var(--c-w);
    border: .1rem solid var(--vis-line);
    min-height: 5.4rem;
    padding: 1.2rem 1.4rem;
    width: 100%;
}
.vis-account-setup__hint { color: var(--vis-muted); font-size: 1.45rem; margin: 0; max-width: 48rem; }
.vis-account-setup__wizard > p a,
.vis-account-setup__hint a {
    color: var(--vis-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: .3rem;
}
.vis-account-setup__choices { display: grid; gap: 1.2rem; width: min(100%, 64rem); }
.vis-account-setup__choice {
    align-items: center;
    background: var(--vis-paper);
    border: .1rem solid var(--vis-line);
    cursor: pointer;
    display: grid;
    gap: 1.4rem;
    grid-template-columns: auto minmax(0, 1fr);
    padding: 1.6rem 1.8rem;
}
.vis-account-setup__choice:has(input:checked) {
    border-color: var(--vis-blue);
    box-shadow: inset .3rem 0 0 var(--vis-blue);
}
.vis-account-setup__choice span { display: grid; gap: .3rem; }
.vis-account-setup__choice strong { color: var(--vis-navy-deep); font-size: 1.7rem; }
.vis-account-setup__choice-meta { color: var(--vis-muted); font-size: 1.4rem; }
.vis-legacy-history { display: grid; gap: 2.4rem; }
.vis-legacy-history__record {
    background: var(--vis-paper);
    border: .1rem solid var(--vis-line);
    border-top: .3rem solid var(--vis-navy);
    padding: clamp(2rem, 3vw, 3rem);
}
.vis-legacy-history__record h3 { font-size: clamp(2.4rem, 3vw, 3.2rem); margin: 0 0 1.6rem; }
.vis-legacy-history dl {
    display: grid;
    gap: .8rem 2rem;
    grid-template-columns: minmax(14rem, 24rem) minmax(0, 1fr);
    margin: 0;
}
.vis-legacy-history dt { color: var(--vis-navy-deep); font-weight: 750; }
.vis-legacy-history dd { margin: 0; }
.vis-site.woocommerce-account .woocommerce-MyAccount-navigation {
    background: var(--vis-paper);
    border: .1rem solid var(--vis-line);
    border-top: .3rem solid var(--vis-navy);
    padding: 1rem;
    width: 25%;
}
.vis-site.woocommerce-account .woocommerce-MyAccount-navigation ul {
    border: 0;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.vis-site.woocommerce-account .woocommerce-MyAccount-navigation li {
    border: 0;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.vis-site.woocommerce-account .woocommerce-MyAccount-navigation li::marker { content: ""; }
.vis-site.woocommerce-account .woocommerce-MyAccount-navigation li + li { border-top: .1rem solid var(--vis-line); }
.vis-site.woocommerce-account .woocommerce-MyAccount-navigation a {
    align-items: center;
    color: var(--vis-navy);
    display: flex;
    font-size: 1.3rem;
    font-weight: 720;
    justify-content: space-between;
    padding: 1.5rem 1.4rem;
    text-decoration: none;
    transition: background .2s ease, color .2s ease, padding .2s ease;
}
.vis-site.woocommerce-account .woocommerce-MyAccount-navigation a:hover,
.vis-site.woocommerce-account .woocommerce-MyAccount-navigation a:focus-visible {
    background: var(--vis-blue-light);
    color: var(--vis-blue);
    padding-left: 1.8rem;
}
.vis-site.woocommerce-account .woocommerce-MyAccount-navigation .is-active a {
    background: var(--vis-blue-light);
    box-shadow: inset .3rem 0 0 var(--vis-blue);
    color: var(--vis-blue);
    padding-left: 1.8rem;
}
.vis-site.woocommerce-account .woocommerce-MyAccount-content { width: 70%; }
.vis-site .wc-block-cart,
.vis-site .wc-block-checkout { font-family: var(--vis-sans); }
.vis-site .wc-block-components-sidebar { background: var(--vis-paper); padding: 2.5rem; }
.vis-site .wc-block-components-title,
.vis-site .wc-block-components-checkout-step__title { font-family: var(--vis-serif); }
.vis-site .wp-block-woocommerce-empty-cart-block {
    margin: 0;
    padding: clamp(7rem, 10vw, 13rem) 5vw;
}
.vis-empty-cart {
    margin: 0 auto;
    max-width: 64rem;
    text-align: center;
}
.vis-empty-cart h2 {
    color: var(--vis-navy-deep);
    font-size: clamp(4rem, 5vw, 6.5rem);
    margin-bottom: 1.5rem;
}
.vis-empty-cart p {
    color: var(--vis-ink-muted);
    font-size: 1.8rem;
    margin: 0 auto 3rem;
    max-width: 52rem;
}
.vis-empty-cart .wp-block-buttons { justify-content: center; }
.vis-empty-cart__button .wp-block-button__link {
    background: var(--vis-blue);
    border: .1rem solid var(--vis-blue);
    border-radius: 0;
    color: var(--c-w);
    font-size: 1.3rem;
    font-weight: 760;
    letter-spacing: .04em;
    line-height: 1.2;
    padding: 1.7rem 2.4rem;
    text-transform: uppercase;
}
.vis-empty-cart__button .wp-block-button__link:hover,
.vis-empty-cart__button .wp-block-button__link:focus-visible {
    background: var(--vis-navy);
    border-color: var(--vis-navy);
    color: var(--c-w);
}

/* Footer */
.vis-footer { background: var(--vis-navy-deep); color: var(--c-w); }

.vis-footer__cta {
    align-items: center;
    background: var(--vis-blue);
    display: flex;
    gap: 5rem;
    justify-content: space-between;
    padding: clamp(5rem, 6vw, 8rem) max(4.5vw, calc((100vw - 140rem) / 2));
}

.vis-footer__cta h2 { color: var(--c-w); font-size: clamp(3.6rem, 4vw, 5.8rem); max-width: 85rem; }

.vis-footer__main {
    display: grid;
    gap: 5rem;
    grid-template-columns: 1fr 1.4fr .65fr .8fr;
    margin: 0 auto;
    padding: 8rem 0;
    width: var(--vis-width);
}

.vis-footer__brand { align-items: center; align-self: start; display: flex; }
.vis-footer__brand img { height: 12rem; width: 14.1rem; }
.vis-footer__statement p { color: color-mix(in srgb, var(--c-w) 72%, transparent); font-family: var(--vis-serif); font-size: 2.2rem; line-height: 1.35; max-width: 42rem; }
.vis-footer__statement .vis-footer__since { color: var(--vis-gold); font-family: var(--vis-sans); font-size: 1.05rem; font-weight: 750; letter-spacing: .11em; text-transform: uppercase; }
.vis-footer__label { color: var(--c-sky) !important; font-size: 1.05rem; font-weight: 760; letter-spacing: .13em; margin-bottom: 2rem !important; text-transform: uppercase; }
.vis-footer__nav ul { display: grid; gap: 1rem; list-style: none; margin: 0; padding: 0; }
.vis-footer__nav a,
.vis-footer__contact a { color: color-mix(in srgb, var(--c-w) 82%, transparent); font-size: 1.35rem; text-decoration: none; }
.vis-footer__nav a:hover,
.vis-footer__contact a:hover { color: var(--c-w); text-decoration: underline; text-underline-offset: .3rem; }
.vis-footer__contact { display: flex; flex-direction: column; gap: .8rem; }
.vis-footer__contact address { color: color-mix(in srgb, var(--c-w) 58%, transparent); font-size: 1.25rem; font-style: normal; line-height: 1.55; margin-top: 1rem; }

.vis-footer__legal {
    align-items: center;
    border-top: .1rem solid color-mix(in srgb, var(--c-w) 14%, transparent);
    display: flex;
    gap: 3rem;
    margin: 0 auto;
    min-height: 8rem;
    width: var(--vis-width);
}

.vis-footer__legal p,
.vis-footer__legal a { color: color-mix(in srgb, var(--c-w) 55%, transparent); font-size: 1.05rem; margin: 0; text-decoration: none; }
.vis-footer__legal nav { flex: 1; }
.vis-footer__legal ul { display: flex; gap: 2rem; list-style: none; margin: 0; padding: 0; }
.vis-footer__pixouls { align-items: center; display: inline-flex; gap: .8rem; margin-left: auto; }
.vis-footer__pixouls .pix { fill: color-mix(in srgb, var(--c-w) 55%, transparent); height: 1.4rem; transition: fill .2s ease; width: auto; }
.vis-footer__pixouls:hover .pix,
.vis-footer__pixouls:focus-visible .pix { fill: var(--c-w); }

/* Responsive */
@media only screen and (max-width: 1100px) {
    .vis-header__inner { gap: 2rem; }
    .vis-brand__name { display: none; }
    .vis-nav__list { gap: 2.4rem; }
    .vis-hero { grid-template-columns: minmax(0, 1.1fr) minmax(36rem, .9fr); }
    .vis-trust { display: block; }
    .vis-trust ul { margin-top: 2.5rem; }
    .vis-footer__main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media only screen and (max-width: 768px) {
    :root {
        --vis-header-bar-height: 0rem;
        --vis-header-main-height: 8rem;
    }
    body.vis-site { font-size: 1.6rem; }
    .vis-header__bar { display: none; }
    .vis-header__inner { grid-template-columns: 1fr auto; height: var(--vis-header-main-height); }
    .vis-brand__mark { height: 5.6rem; width: 5.8rem; }
    .vis-brand__name { display: block; font-size: 1.55rem; }
    .vis-header__actions { display: none; }

    .vis-header .vis-header__toggle {
        background: transparent;
        border: 0;
        color: var(--vis-navy);
        display: grid;
        height: 4.8rem;
        padding: 1.2rem;
        place-content: center;
        position: relative;
        width: 4.8rem;
        z-index: 102;
    }

    .vis-header__toggle-open,
    .vis-header__toggle-close { grid-area: 1 / 1; height: 2.6rem; width: 2.6rem; }
    .vis-header__toggle-close { display: none; }
    .vis-header__toggle.hdr__nav-toggle--open .vis-header__toggle-open { display: none; }
    .vis-header__toggle.hdr__nav-toggle--open .vis-header__toggle-close { display: block; }

    .vis-nav.nav {
        align-items: stretch;
        background: var(--vis-navy-deep);
        display: block;
        height: calc(100dvh - var(--vis-header-height));
        left: 0;
        opacity: 0;
        overflow-y: auto;
        padding: 3rem 5vw;
        pointer-events: none;
        position: fixed;
        right: 0;
        top: var(--vis-header-height);
        transform: translateX(100%);
        transition: opacity .2s ease, transform .25s ease;
        visibility: hidden;
        width: 100%;
    }

    .vis-nav.nav--open { opacity: 1; pointer-events: auto; transform: translateX(0); visibility: visible; }
    .vis-nav__list { align-items: stretch; display: block; }
    .vis-nav__item { border-bottom: .1rem solid color-mix(in srgb, var(--c-w) 15%, transparent); }
    .vis-nav__link { color: var(--c-w) !important; font-family: var(--vis-serif); font-size: 3rem; font-weight: 500; justify-content: space-between; letter-spacing: -.01em; padding: 2rem 0; text-transform: none; width: 100%; }
    .vis-nav__link::after { display: none; }
    .vis-nav__sub { background: transparent; border: 0; box-shadow: none; position: static; }
    .vis-nav__sub-inner { display: block; padding: 0 0 2.5rem; width: 100%; }
    .vis-nav__eyebrow,
    .vis-nav__sub-cta { display: none; }
    .vis-nav__sub-list { display: grid; grid-template-columns: 1fr; }
    .vis-nav__sub-list a { border-color: color-mix(in srgb, var(--c-w) 20%, transparent); padding: .4rem 0 .4rem 1.8rem; }
    .vis-nav__sub-list strong { color: var(--c-w); font-family: var(--vis-sans); font-size: 1.5rem; font-weight: 700; }
    .vis-nav__sub-list span { color: color-mix(in srgb, var(--c-w) 55%, transparent); }
    .vis-nav__item--mobile { display: block; }
    .vis-header--member .vis-nav__link { font-size: 3rem; padding: 2rem 0; }
    .vis-nav__item--profile { margin-left: 0; }
    .vis-header--member .vis-member-trigger {
        font-family: var(--vis-sans);
        font-size: 2rem;
        font-weight: 700;
        justify-content: flex-start;
        padding: 1.6rem 0;
    }
    .vis-member-trigger__chevron { margin-left: auto; }
    .vis-member-menu { border: 0; width: 100%; }
    .vis-member-menu__inner { padding: 0 0 2.5rem 5.1rem; }
    .vis-member-menu__identity { border-color: color-mix(in srgb, var(--c-w) 16%, transparent); }
    .vis-member-menu__identity strong { color: var(--c-w); }
    .vis-member-menu__identity span { color: color-mix(in srgb, var(--c-w) 55%, transparent); }
    .vis-member-menu__links a { color: var(--c-w) !important; padding: 1.2rem .4rem; }
    .vis-member-menu__logout { border-color: color-mix(in srgb, var(--c-w) 16%, transparent); }
    .vis-member-menu__logout a { color: color-mix(in srgb, var(--c-w) 65%, transparent) !important; }

    .vis-hero { display: flex; flex-direction: column; min-height: auto; }
    .vis-hero__content { padding: 7rem 5vw; }
    .vis-hero__visual { padding: 4rem 7vw 5rem; }
    .vis-hero__image-wrap { height: min(65rem, 105vw); margin: 0; }
    .vis-trust ul,
    .vis-purpose__grid,
    .vis-plans__grid,
    .vis-history__timeline { grid-template-columns: 1fr; }
    .vis-trust li { min-height: 4rem; }
    .vis-section__heading,
    .vis-page-hero,
    .vis-contact,
    .vis-about-intro,
    .vis-about-audiences,
    .vis-account-entry,
    .vis-account-setup,
    .vis-audience { grid-template-columns: 1fr; }
    .vis-legacy-history dl { grid-template-columns: 1fr; }
    .vis-page-hero,
    .vis-page__hero,
    .vis-legal__hero { gap: 3rem; padding-left: 5vw; padding-right: 5vw; }
    .vis-audience__image { min-height: 70vw; }
    .vis-audience__content { padding: 7rem 5vw; }
    .vis-plan--featured { margin-top: 3.5rem; transform: none; }
    .vis-history__timeline article { padding: 0 0 5rem 3rem; }
    .vis-history__timeline article:last-child { padding-bottom: 0; }
    .vis-principles__list div { grid-template-columns: 1fr; }
    .vis-contact { width: 90vw; }
    .vis-legal__layout { grid-template-columns: 1fr; }
    .vis-legal__nav { max-height: none; overflow: visible; position: static; }
    .vis-site.woocommerce ul.products { grid-template-columns: 1fr; }
    .vis-site.woocommerce div.product div.images,
    .vis-site.woocommerce div.product div.summary { float: none; width: 100%; }
    .vis-site.woocommerce-account .woocommerce-MyAccount-navigation,
    .vis-site.woocommerce-account .woocommerce-MyAccount-content { float: none; width: 100%; }
    .vis-site.woocommerce-account .woocommerce-MyAccount-navigation { margin-bottom: 4rem; }
    .vis-footer__cta { align-items: flex-start; flex-direction: column; }
    .vis-footer__main { grid-template-columns: 1fr 1fr; }
}

@media only screen and (max-width: 512px) {
    :root { --vis-width: 90vw; }
    .vis-site h1 { font-size: clamp(4.5rem, 15vw, 6.2rem); }
    .vis-site h2 { font-size: clamp(3.6rem, 11vw, 5rem); }
    .vis-hero__proof,
    .vis-audience__columns,
    .vis-about-audiences ul,
    .vis-footer__main { grid-template-columns: 1fr; }
    .vis-trust { padding: 3.5rem 5vw; }
    .vis-trust ul { display: block; }
    .vis-trust li { margin-top: 1.5rem; }
    .vis-feature-card { min-height: 0; }
    .vis-about-intro__mark { margin-right: 2rem; }
    .vis-principles__list li { gap: 1rem; grid-template-columns: 4rem 1fr; }
    .vis-contact__form { padding: 3rem 2rem; }
    .vis-contact__form-heading { align-items: flex-start; flex-direction: column; gap: .8rem; }
    body.vis-site .woocommerce-message,
    body.vis-site .woocommerce-info { align-items: start; grid-template-columns: 1fr; }
    body.vis-site .woocommerce-message > .button,
    body.vis-site .woocommerce-info > .button { grid-column: 1; grid-row: auto; justify-self: start; margin-top: 1.5rem; }
    body.vis-site .wc-block-components-notice-banner__content { align-items: flex-start; flex-direction: column; }
    .vis-footer__main { gap: 4rem; }
    .vis-footer__legal { align-items: flex-start; flex-direction: column; gap: 1.5rem; padding: 2.5rem 0; }
    .vis-footer__legal ul { flex-wrap: wrap; }
    .vis-footer__pixouls { margin-left: 0; }
}

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