/* Pointer Consulting: a shared, responsive design system. */
:root {
    --ink:#17362e;
    --forest:#133b30;
    --muted:#586860;
    --paper:#f8f8f3;
    --tint:#eff1e8;
    --lime:#d5ee88;
    --line:#dce1d5;
    --white:#fff;
    --radius:12px;
}

* {
    box-sizing:border-box;
}

html {
    scroll-behavior:smooth;
    scroll-padding-top:110px;
}

body {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:"Segoe UI",Arial,sans-serif;
    font-size:16px;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
}

h1,h2,h3,p,figure {
    margin:0;
}

h1,h2,h3 {
    font-weight:500;
    line-height:1.1;
    letter-spacing:-.045em;
}

h1 {
    font-size:clamp(2.7rem,5.3vw,4.7rem);
}

h2 {
    font-size:clamp(2rem,3.35vw,3rem);
}

h3 {
    font-size:1.45rem;
    letter-spacing:-.03em;
}

p {
    color:var(--muted);
}

p+p {
    margin-top:1rem;
}

a {
    color:inherit;
    text-underline-offset:4px;
}

button,input,textarea,select {
    font:inherit;
}

button,a,input,textarea,select,summary {
    -webkit-tap-highlight-color:transparent;
}

button {
    cursor:pointer;
}

img {
    display:block;
    max-width:100%;
    height:auto;
}

ul,ol {
    padding-left:1.3rem;
}

button:disabled {
    cursor:not-allowed;
    opacity:.55;
}

[hidden] {
    display:none!important;
}

::selection {
    color:var(--forest);
    background:var(--lime);
}

:focus-visible {
    outline:3px solid #648929;
    outline-offset:5px;
}

main:focus {
    outline:none;
}

.container {
    width:min(1240px,calc(100% - 96px));
    margin-inline:auto;
}

.section {
    padding:100px 0;
}

.section-tint {
    background:var(--tint);
}

.section-dark {
    background:var(--forest);
    color:var(--paper);
}

.section-dark p {
    color:#c5d1c6;
}

.eyebrow {
    font-size:.68rem;
    letter-spacing:.16em;
    font-weight:700;
    line-height:1.5;
    text-transform:uppercase;
    color:var(--forest);
    margin-bottom:20px;
}

.section-dark .eyebrow {
    color:var(--lime);
}

.section-heading {
    margin-bottom:44px;
}

.section-heading>p {
    max-width:620px;
    margin-top:24px;
}

.heading-with-link {
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:50px;
}

.heading-with-link>p {
    max-width:380px;
    margin:0 0 4px;
}

.lead,.intro-copy {
    font-size:1.12rem;
    line-height:1.8;
}

.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:26px;
    min-height:50px;
    padding:13px 23px;
    border:1px solid transparent;
    border-radius:6px;
    font-size:.85rem;
    font-weight:600;
    text-decoration:none;
    line-height:1.4;
    transition:background .2s,transform .2s;
}

.button:hover {
    transform:translateY(-2px);
}

.button-primary {
    background:var(--forest);
    color:var(--white);
}

.button-primary:hover {
    background:#235640;
}

.button-secondary {
    border-color:var(--forest);
    color:var(--forest);
    background:transparent;
}

.section-dark .button-primary {
    background:var(--lime);
    color:var(--forest);
}

.section-dark .button-primary:hover {
    background:#e5f7b0;
}

.button span[aria-hidden] {
    font-size:1.2rem;
}

.button-row {
    display:flex;
    gap:27px;
    align-items:center;
    flex-wrap:wrap;
}

.text-link {
    font-size:.85rem;
    font-weight:600;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    gap:16px;
    line-height:1.6;
}

.text-link:hover {
    text-decoration:underline;
}

.skip-link {
    position:absolute;
    left:20px;
    top:-100px;
    background:var(--lime);
    color:var(--ink);
    padding:12px 20px;
    z-index:100;
}

.skip-link:focus {
    top:8px;
}


/* Header and footer */
.site-header {
    position:sticky;
    top:0;
    z-index:20;
    background:rgba(248,248,243,.97);
    border-bottom:1px solid var(--line);
}

.main-nav {
    min-height:96px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
}

.brand {
    display:inline-flex;
    align-items:center;
    gap:10px;
    text-decoration:none;
    font-size:2rem;
    font-weight:650;
    letter-spacing:-.08em;
    line-height:.95;
}

.brand img {
    object-fit:contain;
    flex-shrink:0;
}

.brand-descriptor {
    display:block;
    margin-top:7px;
    font-size:.52rem;
    font-weight:600;
    letter-spacing:.29em;
}

.main-nav .brand {
    gap:12px;
    font-size:2.4rem;
    flex-shrink:0;
}

.main-nav .brand img {
    width:60px;
    height:60px;
}

.main-nav .brand-descriptor {
    font-size:.65rem;
    letter-spacing:.3em;
}

.navigation {
    display:flex;
    align-items:center;
    gap:36px;
}

.navigation>a:not(.button) {
    font-size:.83rem;
    text-decoration:none;
    position:relative;
    padding:10px 0;
    color:var(--muted);
}

.navigation>a[aria-current=page]:not(.button) {
    color:var(--forest);
}

.navigation>a[aria-current=page]:not(.button):after {
    position:absolute;
    content:"";
    height:4px;
    width:4px;
    background:var(--forest);
    border-radius:50%;
    left:50%;
    bottom:0;
}

.navigation>a:hover {
    color:var(--forest);
}

.navigation>.nav-cta:hover {
    color:white;
}

.nav-cta {
    margin-left:10px;
    min-height:44px;
    padding:10px 22px;
}

.nav-toggle {
    display:none;
    background:transparent;
    border:1px solid var(--line);
    border-radius:5px;
    padding:9px 14px;
    font-size:.85rem;
    align-items:center;
    gap:12px;
    color:var(--forest);
}

.site-footer {
    padding:68px 0 0;
    border-top:1px solid var(--line);
    background:var(--paper);
}

.footer-grid {
    display:grid;
    grid-template-columns:1.15fr .65fr 1.15fr 1.2fr;
    gap:36px;
    padding-bottom:58px;
}

.footer-grid h2 {
    font-size:.75rem;
    font-weight:600;
    letter-spacing:0;
    margin:6px 0 21px;
}

.footer-grid>div>a:not(.brand) {
    display:block;
    font-size:.78rem;
    text-decoration:none;
    color:var(--muted);
    margin-bottom:10px;
    overflow-wrap:anywhere;
}

.footer-grid a:hover {
    text-decoration:underline;
}

.footer-brand .brand {
    font-size:1.8rem;
}

.footer-brand p {
    font-size:.85rem;
    margin-top:24px;
    line-height:1.8;
}

.footer-grid address {
    font-size:.78rem;
    font-style:normal;
    color:var(--muted);
    margin-top:20px;
}

.footer-bottom {
    border-top:1px solid var(--line);
    padding-block:22px;
    display:flex;
    align-items:center;
    gap:28px;
    font-size:.7rem;
    color:var(--muted);
}

.footer-bottom span {
    margin-left:auto;
}

.footer-bottom a {
    text-decoration:none;
}


/* Homepage */
.home-hero {
    padding:58px 0 0;
}

.hero-grid {
    display:grid;
    grid-template-columns:1.06fr 1fr;
    gap:55px;
    align-items:center;
}

.hero-copy {
    padding:15px 0;
}

.hero-copy .eyebrow {
    display:flex;
    align-items:center;
    gap:9px;
    margin-bottom:27px;
}

.status-dot {
    height:6px;
    width:6px;
    border-radius:50%;
    background:#567c33;
}

.hero-copy h1 {
    font-size:clamp(2.625rem,4.4vw,3.875rem);
    font-weight:500;
    letter-spacing:-.045em;
    line-height:1.12;
}

.hero-copy h1 em {
    font-style:normal;
    color:#5a743c;
}

.hero-description {
    max-width:435px;
    line-height:1.8;
    margin-top:27px;
    font-size:1rem;
}

.hero-copy .button-row {
    margin-top:30px;
    gap:23px;
}

.hero-copy .button {
    padding-inline:20px;
}

.hero-copy .text-link {
    font-size:.77rem;
    gap:10px;
}

.hero-visual {
    position:relative;
    min-width:0;
    aspect-ratio:1/1.075;
    border-radius:13px;
    overflow:hidden;
    background:#eeeee4;
}

.hero-image {
    width:100%;
    height:100%;
    object-fit:cover;
    position:absolute;
    inset:0;
    object-position:52% 50%;
}

.visual-topline {
    position:absolute;
    top:24px;
    left:25px;
    right:25px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:.56rem;
    font-weight:600;
    letter-spacing:.15em;
    color:var(--forest);
}

.visual-topline>span:last-child {
    font-size:1.2rem;
}

.visual-caption {
    position:absolute;
    bottom:52px;
    left:25px;
    right:25px;
    padding:19px 18px;
    background:rgba(248,248,243,.91);
    backdrop-filter:blur(12px);
    border:1px solid rgba(255,255,255,.6);
    border-radius:8px;
    display:flex;
    align-items:center;
    gap:16px;
    font-size:.82rem;
    line-height:1.5;
}

.visual-caption strong {
    font-weight:600;
}

.caption-mark {
    background:var(--forest);
    color:var(--lime);
    width:40px;
    height:40px;
    display:grid;
    place-items:center;
    border-radius:50%;
    font-size:1.2rem;
    flex-shrink:0;
}

.visual-index {
    position:absolute;
    bottom:20px;
    left:25px;
    font-size:.5rem;
    letter-spacing:.16em;
    color:var(--forest);
    font-weight:600;
}

.expertise-strip {
    margin-top:34px;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding-block:16px;
    display:grid;
    grid-template-columns:1fr 1fr 1fr 1fr;
    gap:30px;
    align-items:center;
}

.certifications-section.section {
    padding-block:40px;
}

.certifications-section .certification-strip {
    margin-top:0;
    padding-block:0;
    border:0;
}

.certification-intro p {
    margin-bottom:5px;
    font-size:.75rem;
    line-height:1.6;
}

.certification-intro h2 {
    font-size:1.5rem;
    line-height:1.25;
    font-weight:500;
}

.certification {
    display:grid;
    justify-items:center;
    align-self:start;
    gap:8px;
    min-width:0;
}

/* The original PNGs have alpha transparency; keep their display area clear. */
.certification-badge {
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    max-width:190px;
    height:110px;
    padding:6px;
    background:transparent;
    border:0;
}

.certification-badge img {
    width:auto;
    height:auto;
    max-width:100%;
    max-height:100%;
    object-fit:contain;
}

.certification-monochrome {
    filter:var(--theme-badge-mono-filter,none);
}

.certification figcaption {
    font-size:.88rem;
    font-weight:500;
    line-height:1.45;
    text-align:center;
    letter-spacing:-.025em;
}

.cards-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
}

.service-card {
    display:flex;
    flex-direction:column;
    text-decoration:none;
    background:#fff;
    border:1px solid var(--line);
    padding:32px;
    border-radius:var(--radius);
    transition:border-color .2s,transform .2s,box-shadow .2s;
}

.service-card:hover {
    border-color:#aab994;
    transform:translateY(-4px);
    box-shadow:0 12px 28px #133b3009;
}

.card-top {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:43px;
}

.card-top svg {
    width:40px;
    height:40px;
}

.card-top>span {
    font-size:.7rem;
    color:var(--muted);
}

.service-card h3 {
    font-size:1.65rem;
    line-height:1.16;
}

.service-card>p {
    font-size:.85rem;
    line-height:1.85;
    margin-top:20px;
    margin-bottom:30px;
}

.card-link {
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:.72rem;
    font-weight:600;
    gap:12px;
    border-top:1px solid var(--line);
    padding-top:20px;
    margin-top:auto;
}

.card-link>span {
    font-size:1.2rem;
}

.flow-steps {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
}

.flow-step {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    border:1px solid #577362;
    background:transparent;
    color:#e6eddf;
    border-radius:8px;
    text-align:left;
    padding:22px;
    transition:background .2s,border-color .2s;
}

.flow-step:hover {
    background:#254c3e;
    border-color:var(--lime);
}

.flow-step.is-active {
    background:var(--lime);
    border-color:var(--lime);
    color:var(--forest);
}

.flow-step:focus-visible {
    outline-color:var(--lime);
}

.flow-step .step-index {
    display:flex;
    width:100%;
    justify-content:space-between;
    font-size:.64rem;
    letter-spacing:.06em;
    margin-bottom:22px;
}

.flow-step strong {
    font-weight:500;
    font-size:1.55rem;
    letter-spacing:-.035em;
    margin-bottom:4px;
}

.flow-step>span:last-child {
    font-size:.72rem;
}

.flow-panel {
    display:grid;
    grid-template-columns:1fr 1.35fr;
    gap:70px;
    padding:37px 0 25px;
    min-height:237px;
}

.flow-panel h3 {
    font-size:1.7rem;
    max-width:310px;
}

.flow-panel .eyebrow {
    font-size:.6rem;
    margin-bottom:16px;
}

.flow-panel p {
    font-size:.88rem;
}

.tag-list {
    list-style:none;
    padding:0;
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin:25px 0 0;
}

.tag-list li {
    font-size:.7rem;
    padding:6px 12px;
    border:1px solid var(--line);
    border-radius:4px;
    color:var(--muted);
    background:rgba(255,255,255,.3);
}

.section-dark .tag-list li {
    color:#d9e6d1;
    border-color:#53745c;
    background:transparent;
}

.diagram-disclaimer {
    border-top:1px solid #40614e;
    padding-top:19px;
    font-size:.67rem;
}

.split-layout {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:70px;
    align-items:center;
}

.split-layout h2 {
    margin-bottom:24px;
}

.split-layout p+.text-link,.split-layout .lead+.text-link {
    margin-top:26px;
}

.partnership-section {
    gap:90px;
}

.partnership-section h2 {
    font-size:2.55rem;
}

.partnership-section .lead {
    font-size:.98rem;
}

.principles-list>div {
    display:flex;
    gap:24px;
    padding:25px 0;
    border-bottom:1px solid var(--line);
}

.principles-list>div:first-child {
    padding-top:0;
}

.principles-list>div>span {
    font-size:.65rem;
    padding-top:5px;
    color:var(--muted);
}

.principles-list h3 {
    font-size:1.2rem;
    margin-bottom:10px;
}

.principles-list p {
    font-size:.84rem;
}

.engagement-steps {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:30px;
    margin:0;
    padding:0;
    list-style:none;
}

.engagement-steps li {
    border-top:1px solid #bcc8b3;
    padding-top:25px;
    position:relative;
}

.engagement-steps li:before {
    content:"";
    position:absolute;
    top:-4px;
    left:0;
    width:7px;
    height:7px;
    border-radius:50%;
    background:#6d894a;
}

.engagement-steps .step-index,.engagement-steps .step-number {
    font-size:.68rem;
    color:var(--muted);
    display:block;
    margin-bottom:24px;
}

.engagement-steps h3 {
    font-size:1.3rem;
    margin-bottom:15px;
}

.engagement-steps p {
    font-size:.83rem;
    line-height:1.8;
}

.callout {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:50px;
}

.callout p:not(.eyebrow) {
    max-width:600px;
    margin-top:20px;
}

.callout .button {
    flex-shrink:0;
}

.cta-section {
    padding-block:82px;
}

.cta-section h2 {
    font-size:2.65rem;
}


/* Interior pages */
.page-intro {
    padding:76px 0 65px;
    background:var(--tint);
    border-bottom:1px solid var(--line);
}

.page-intro h1 {
    max-width:950px;
    line-height:1.08;
}

.page-intro .intro-copy,.page-intro .lead {
    max-width:750px;
    margin-top:26px;
}

.content-card {
    padding:32px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:var(--white);
    min-width:0;
}

.content-card h3 {
    margin-bottom:18px;
    line-height:1.25;
}

.content-card p {
    font-size:.9rem;
    line-height:1.8;
}

.content-card .eyebrow {
    font-size:.61rem;
}

.card-number {
    display:block;
    font-size:.74rem;
    margin-bottom:38px;
    color:#607f3c;
}

.about-image {
    border-radius:var(--radius);
    overflow:hidden;
    height:530px;
    background:#eeeee4;
}

.about-image img {
    height:100%;
    width:100%;
    object-fit:cover;
}

.founder-note {
    margin-top:26px;
    border-left:2px solid #92ae65;
    padding-left:22px;
}

.founder-note .eyebrow {
    font-size:.61rem;
    margin-bottom:10px;
}

.founder-note p {
    font-size:.82rem;
}

.founder-note strong {
    font-weight:600;
}

.faq-list {
    border-top:1px solid #c5cebb;
}

.faq-item {
    border-bottom:1px solid #c5cebb;
    padding:20px 0;
}

.faq-item summary {
    cursor:pointer;
    list-style:none;
    font-size:.95rem;
    font-weight:500;
    padding-right:28px;
    position:relative;
    line-height:1.5;
}

.faq-item summary::-webkit-details-marker {
    display:none;
}

.faq-item summary:after {
    content:"+";
    position:absolute;
    right:0;
    top:-3px;
    font-size:1.3rem;
    font-weight:400;
}

.faq-item[open] summary:after {
    content:"−";
}

.faq-item p {
    font-size:.88rem;
    margin-top:16px;
    padding-right:15px;
}

.service-nav {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:24px;
    margin-top:46px;
}

.service-nav a {
    display:flex;
    align-items:center;
    gap:12px;
    text-decoration:none;
    font-size:.8rem;
    border-top:1px solid #bfcbb5;
    padding-top:18px;
}

.service-nav a:hover {
    text-decoration:underline;
}

.service-nav a>span:first-child {
    font-size:.62rem;
    color:#627e48;
}

.service-nav a>span:last-child {
    margin-left:auto;
    font-size:1.1rem;
}

.service-section {
    scroll-margin-top:96px;
}

.architecture-boundary {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:12px 24px;
    padding:18px 0;
    border-top:1px solid #40614e;
    margin-bottom:16px;
    font-size:.8rem;
    color:#d4dfd1;
}

.architecture-boundary .eyebrow,
.architecture-foundation .eyebrow {
    margin:0;
    font-size:.58rem;
}

.architecture-foundation {
    border-top:1px solid #40614e;
    padding:22px 0;
}

.architecture-foundation .tag-list {
    margin-top:14px;
}

.architecture-consumers {
    margin-bottom:0;
}

.architecture-detail-link {
    margin-top:18px;
}

.automation-feature .lead {
    font-size:1rem;
}

.domain-cards {
    gap:24px;
    align-items:stretch;
}

.diagram-panel h3 + .architecture-flow,
.service-section .tag-list + .text-link,
.service-section .button-row {
    margin-top:26px;
}

.service-section .split-layout {
    align-items:start;
    gap:50px;
    margin-bottom:48px;
}

.service-section .split-layout p:not(.eyebrow) {
    font-size:.92rem;
}

.service-deliverables {
    list-style:none;
    padding:0;
    margin:25px 0;
}

.service-deliverables li {
    font-size:.83rem;
    position:relative;
    padding-left:22px;
    margin:11px 0;
}

.service-deliverables li:before {
    content:"↗";
    position:absolute;
    left:0;
    color:#607d3c;
}

.diagram-panel {
    padding:30px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:var(--tint);
    min-width:0;
}

.diagram-label {
    font-size:.64rem!important;
    text-transform:uppercase;
    font-weight:700;
    letter-spacing:.14em;
    color:var(--forest);
    margin-bottom:30px;
}

.data-vault-diagram {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:15px;
    padding:6px 0 22px;
}

.diagram-column {
    position:relative;
    min-width:0;
}

.diagram-column:not(:last-child):after {
    content:"";
    position:absolute;
    top:57px;
    left:100%;
    width:15px;
    height:1px;
    background:#799463;
}

.diagram-node {
    text-align:center;
    padding:14px 6px;
    border:1px solid #adc39b;
    border-radius:6px;
    min-height:113px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:6px;
}

.diagram-node>span {
    font-size:.56rem;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.1em;
}

.diagram-node strong {
    font-size:.79rem;
    line-height:1.35;
    font-weight:600;
}

.diagram-node small {
    font-size:.57rem;
    line-height:1.45;
}

.diagram-node-hub {
    background:var(--forest);
    color:var(--white);
    border-color:var(--forest);
}

.diagram-node-link {
    background:var(--lime);
    border-color:#bfd480;
}

.diagram-node-satellite {
    background:#fff;
    min-height:125px;
}

.diagram-connector {
    height:35px;
    width:1px;
    background:#799463;
    margin:auto;
}

.diagram-note {
    font-size:.74rem;
    line-height:1.75;
    color:var(--muted);
    border-top:1px solid #cbd6c0;
    padding-top:20px;
    margin-top:9px;
}

.architecture-flow {
    list-style:none;
    padding:0;
    margin:0;
}

.architecture-flow li {
    display:flex;
    align-items:start;
    gap:18px;
    padding-bottom:25px;
    position:relative;
}

.architecture-flow li:not(:last-child):after {
    content:"";
    position:absolute;
    left:17px;
    top:36px;
    height:calc(100% - 36px);
    width:1px;
    background:#a1b987;
}

.architecture-flow .step-index {
    font-size:.65rem;
    background:var(--forest);
    color:var(--lime);
    width:35px;
    height:35px;
    display:grid;
    place-items:center;
    flex-shrink:0;
    border-radius:50%;
    position:relative;
    z-index:1;
}

.architecture-flow strong {
    font-size:.95rem;
    font-weight:600;
}

.architecture-flow p {
    font-size:.8rem!important;
    margin-top:4px;
}

.service-section .tag-list {
    margin-top:30px;
}

.prose {
    max-width:820px;
}

.prose h2 {
    font-size:1.75rem;
    margin-top:40px;
    margin-bottom:20px;
}

.prose h2:first-child {
    margin-top:0;
}

.prose ul {
    color:var(--muted);
}


/* Accessible inquiry form */
.contact-layout {
    display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);
    gap:80px;
    align-items:start;
}

.contact-form {
    padding:38px;
}

.contact-form h2 {
    font-size:2rem;
    margin-bottom:18px;
}

.contact-form>p {
    margin-bottom:30px;
}

.form-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:22px;
}

.form-field {
    min-width:0;
}

.form-field-full {
    grid-column:1/-1;
}

.form-field label {
    display:block;
    font-size:.78rem;
    font-weight:600;
    margin-bottom:9px;
}

.form-control {
    display:block;
    width:100%;
    border:1px solid #c8d0c0;
    border-radius:5px;
    background:#fdfefa;
    padding:12px 13px;
    color:var(--ink);
    font-size:.88rem;
    line-height:1.5;
    min-height:47px;
}

.form-control:focus {
    outline:2px solid #759747;
    outline-offset:1px;
    border-color:#759747;
}

textarea.form-control {
    resize:vertical;
    min-height:145px;
}

.form-note {
    font-size:.72rem!important;
    line-height:1.6!important;
    margin:8px 0 12px;
}

.form-note .text-link {
    font-size:inherit;
    overflow-wrap:anywhere;
    display:inline;
}

.form-feedback {
    padding:17px 19px;
    border-radius:6px;
    margin-bottom:25px;
    font-size:.85rem;
}

.form-feedback-success {
    background:#e9f4d9;
    border:1px solid #b8d190;
}

.form-feedback-error {
    background:#fff1eb;
    color:#813c21;
    border:1px solid #e4b9a4;
}

.form-feedback ul {
    margin:0;
    padding-left:18px;
}

.field-error {
    font-size:.74rem;
    color:#a02e1a;
    display:block;
    margin-top:6px;
}

.input-validation-error {
    border-color:#a02e1a;
}

.validation-summary-valid,.field-validation-valid {
    display:none;
}

.contact-layout aside>h2 {
    font-size:2.2rem;
    margin-bottom:32px;
}

.contact-steps {
    list-style:none;
    padding:0;
    margin:0;
    counter-reset:contact;
}

.contact-steps li {
    position:relative;
    padding:0 0 26px 39px;
    counter-increment:contact;
}

.contact-steps li:before {
    content:"0" counter(contact);
    position:absolute;
    left:0;
    top:2px;
    font-size:.67rem;
    color:var(--muted);
}

.contact-steps strong {
    font-size:.95rem;
    font-weight:600;
}

.contact-steps p {
    font-size:.85rem;
    margin-top:7px;
    line-height:1.8;
}

.contact-details {
    border-top:1px solid var(--line);
    padding-top:30px;
    margin-top:13px;
}

.contact-details h3 {
    font-size:1.2rem;
    margin-bottom:24px;
}

.contact-details .eyebrow {
    display:block;
    margin-bottom:7px;
    font-size:.58rem;
    color:#647451;
}

.contact-details p {
    font-size:.86rem;
    margin-bottom:22px;
}

.contact-details a {
    overflow-wrap:anywhere;
}

.contact-details .text-link {
    display:inline;
}

.section-dark .text-link {
    color:var(--lime);
}

@media(min-width:1440px) {
    .hero-copy h1 {
        font-size:4rem;
    }
}

@media(max-width:1100px) {
    .service-nav {
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
    .container {
        width:calc(100% - 64px);
    }
    .hero-grid {
        gap:30px;
    }
    .hero-copy h1 {
        font-size:4.2vw;
    }
    .hero-copy .button-row {
        gap:17px;
    }
    .hero-copy .button {
        padding-inline:15px;
        font-size:.77rem;
    }
    .hero-visual {
        aspect-ratio:1/1.2;
    }
    .section {
        padding:80px 0;
    }
    .service-card {
        padding:25px;
    }
    .service-card h3 {
        font-size:1.45rem;
    }
    .card-link {
        font-size:.65rem;
    }
    .split-layout,.partnership-section {
        gap:40px;
    }
    .partnership-section h2 {
        font-size:2.2rem;
    }
    .contact-layout {
        gap:45px;
    }
    .footer-grid {
        gap:25px;
    }
    .diagram-panel {
        padding:20px;
    }
    .data-vault-diagram {
        gap:10px;
    }
    .diagram-column:not(:last-child):after {
        width:10px;
    }
    .diagram-node strong {
        font-size:.7rem;
    }
    .diagram-node small {
        font-size:.53rem;
    }
}

@media(max-width:800px) {
    .service-nav {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .container {
        width:calc(100% - 44px);
    }
    .main-nav {
        min-height:80px;
    }
    .navigation {
        gap:22px;
    }
    .navigation>a:not(.button) {
        font-size:.75rem;
    }
    .nav-cta {
        margin-left:0;
        padding:10px 15px;
    }
    .brand {
        font-size:1.75rem;
    }
    .brand img {
        width:34px;
        height:34px;
    }
    .hero-grid {
        gap:28px;
        grid-template-columns:1fr;
    }
    .hero-copy h1 {
        font-size:clamp(2rem,8.5vw,3.6rem);
    }
    .hero-description {
        font-size:.88rem;
        margin-top:20px;
    }
    .hero-copy .eyebrow {
        font-size:.55rem;
        margin-bottom:23px;
    }
    .hero-copy .button-row {
        gap:20px;
    }
    .hero-visual {
        aspect-ratio:1/1.45;
    }
    .visual-topline {
        left:16px;
        right:16px;
        font-size:.43rem;
    }
    .visual-caption {
        left:16px;
        right:16px;
        padding:14px 12px;
        font-size:.67rem;
        gap:10px;
    }
    .caption-mark {
        height:32px;
        width:32px;
    }
    .visual-index {
        left:16px;
        font-size:.43rem;
    }
    .expertise-strip {
        gap:20px;
        margin-top:28px;
    }
    .certification figcaption {
        font-size:.8rem;
    }
    .certification-strip {
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
    .certification-intro {
        grid-column:1/-1;
        text-align:center;
    }
    .cards-grid {
        gap:15px;
    }
    .service-card {
        padding:22px;
    }
    .service-card h3 {
        font-size:1.25rem;
    }
    .service-card p {
        font-size:.78rem;
    }
    .card-top {
        margin-bottom:30px;
    }
    .card-link {
        font-size:.62rem;
    }
    .heading-with-link {
        gap:35px;
    }
    .heading-with-link>p {
        max-width:280px;
        font-size:.86rem;
    }
    .flow-step {
        padding:17px;
    }
    .flow-step strong {
        font-size:1.3rem;
    }
    .flow-step>span:last-child {
        font-size:.64rem;
    }
    .flow-panel {
        gap:35px;
    }
    .split-layout {
        gap:35px;
    }
    .partnership-section h2 {
        font-size:1.9rem;
    }
    .engagement-steps {
        gap:22px;
    }
    .callout {
        gap:35px;
    }
    .callout .button {
        max-width:210px;
        gap:12px;
    }
    .footer-grid {
        grid-template-columns:1fr 1fr;
        row-gap:40px;
    }
    .page-intro {
        padding:58px 0;
    }
    .content-card {
        padding:25px;
    }
    .about-image {
        height:560px;
    }
    .service-section .split-layout {
        grid-template-columns:1fr;
        gap:35px;
    }
    .service-section .split-layout>div {
        max-width:680px;
    }
    .diagram-panel {
        max-width:600px;
        width:100%;
        padding:30px;
    }
    .diagram-node strong {
        font-size:.9rem;
    }
    .diagram-node small {
        font-size:.7rem;
    }
    .diagram-column:not(:last-child):after {
        top:55px;
    }
    .contact-layout {
        grid-template-columns:1.3fr 1fr;
        gap:30px;
    }
    .contact-form {
        padding:23px;
    }
    .contact-layout aside>h2 {
        font-size:1.8rem;
    }
    .form-grid {
        grid-template-columns:1fr;
    }
}

/* Give the larger brand room before switching to the compact navigation. */
@media(max-width:1100px) {
    .main-nav {
        min-height:88px;
        flex-wrap:wrap;
        gap:0;
    }
    .main-nav .brand {
        font-size:2.1rem;
    }
    .main-nav .brand img {
        width:54px;
        height:54px;
    }
    .has-navigation .nav-toggle {
        display:flex;
    }
    .navigation {
        flex-basis:100%;
        flex-wrap:wrap;
        padding:16px 0 24px;
        gap:15px 25px;
    }
    .has-navigation .navigation {
        display:none;
    }
    .has-navigation .navigation.is-open {
        display:flex;
        flex-direction:column;
        align-items:stretch;
        gap:8px;
    }
    .navigation>a:not(.button) {
        font-size:.9rem;
        padding:10px 0;
    }
    .navigation>a[aria-current=page]:not(.button):after {
        left:auto;
        right:10px;
        bottom:20px;
    }
    .nav-cta {
        margin:8px 0 0;
        justify-content:space-between;
    }
}

@media(max-width:640px) {
    html {
        scroll-padding-top:94px;
    }
    .container {
        width:calc(100% - 40px);
    }
    .section {
        padding:62px 0;
    }
    .main-nav {
        min-height:84px;
    }
    .brand {
        font-size:1.7rem;
    }
    .main-nav .brand {
        gap:10px;
        font-size:1.95rem;
    }
    .main-nav .brand img {
        width:48px;
        height:48px;
    }
    .main-nav .brand-descriptor {
        font-size:.6rem;
    }
    .home-hero {
        padding-top:34px;
    }
    .hero-grid {
        grid-template-columns:1fr;
        gap:32px;
    }
    .hero-copy {
        padding:0;
    }
    .hero-copy .eyebrow {
        font-size:.59rem;
        margin-bottom:24px;
    }
    .hero-description {
        max-width:440px;
        font-size:.98rem;
        margin-top:24px;
    }
    .hero-copy .button-row {
        gap:21px;
        margin-top:27px;
    }
    .hero-copy .button {
        font-size:.8rem;
        padding-inline:17px;
    }
    .hero-copy .text-link {
        font-size:.74rem;
    }
    .hero-visual {
        aspect-ratio:1.16/1;
        max-height:420px;
    }
    .visual-topline {
        top:20px;
        left:22px;
        right:22px;
        font-size:.53rem;
    }
    .visual-caption {
        left:22px;
        right:22px;
        bottom:45px;
        font-size:.76rem;
        padding:15px;
    }
    .visual-index {
        left:22px;
        bottom:17px;
        font-size:.45rem;
    }
    .caption-mark {
        height:36px;
        width:36px;
    }
    .expertise-strip {
        grid-template-columns:1fr 1fr;
        gap:22px 18px;
        margin-top:26px;
        padding-block:14px;
    }
    .certification-strip {
        grid-template-columns:1fr;
        gap:16px;
    }
    .certification {
        grid-template-columns:96px minmax(0,1fr);
        align-items:center;
        justify-items:stretch;
        gap:16px;
        width:100%;
        max-width:340px;
        margin-inline:auto;
    }
    .certification-badge {
        height:84px;
        padding:2px;
    }
    .certification figcaption {
        font-size:.8rem;
        text-align:left;
    }
    .certifications-section.section {
        padding-block:32px;
    }
    .section-heading {
        margin-bottom:30px;
    }
    .heading-with-link {
        display:block;
    }
    .heading-with-link>p {
        max-width:100%;
        margin-top:21px;
        font-size:.95rem;
    }
    .eyebrow {
        font-size:.61rem;
        margin-bottom:17px;
    }
    h2 {
        font-size:2.2rem;
    }
    .cards-grid {
        grid-template-columns:1fr;
        gap:18px;
    }
    .service-card {
        padding:27px;
    }
    .card-top {
        margin-bottom:28px;
    }
    .service-card h3 {
        font-size:1.75rem;
    }
    .service-card p {
        font-size:.91rem;
        margin-top:16px;
        margin-bottom:24px;
    }
    .card-link {
        font-size:.77rem;
    }
    .service-card h3 br {
        display:none;
    }
    .flow-steps {
        grid-template-columns:1fr 1fr;
        gap:10px;
    }
    .flow-step {
        padding:18px 16px;
        min-height:145px;
    }
    .flow-step strong {
        font-size:1.4rem;
    }
    .flow-step>span:last-child {
        font-size:.65rem;
    }
    .flow-step .step-index {
        margin-bottom:16px;
    }
    .flow-panel {
        grid-template-columns:1fr;
        gap:20px;
        min-height:0;
        padding-top:28px;
    }
    .flow-panel h3 {
        max-width:none;
        font-size:1.7rem;
    }
    .flow-panel p {
        font-size:.88rem;
    }
    .flow-panel .tag-list {
        margin-top:20px;
    }
    .diagram-disclaimer {
        font-size:.64rem;
    }
    .split-layout,.contact-layout {
        grid-template-columns:1fr;
        gap:37px;
    }
    .partnership-section h2 {
        font-size:2.2rem;
    }
    .principles-list>div {
        gap:20px;
    }
    .principles-list p {
        font-size:.9rem;
    }
    .engagement-steps {
        grid-template-columns:1fr 1fr;
        gap:32px 22px;
    }
    .engagement-steps h3 {
        font-size:1.2rem;
    }
    .engagement-steps p {
        font-size:.83rem;
    }
    .engagement-steps .step-index,.engagement-steps .step-number {
        margin-bottom:16px;
    }
    .callout {
        align-items:flex-start;
        flex-direction:column;
        gap:28px;
    }
    .callout .button {
        max-width:none;
    }
    .cta-section h2 {
        font-size:2.2rem;
    }
    .footer-grid {
        gap:34px 24px;
        padding-bottom:35px;
    }
    .footer-brand {
        grid-column:1/-1;
    }
    .footer-brand p {
        margin-top:18px;
    }
    .footer-grid>div:last-child {
        grid-column:1/-1;
    }
    .site-footer {
        padding-top:45px;
    }
    .footer-bottom {
        flex-wrap:wrap;
        gap:12px 24px;
        font-size:.65rem;
    }
    .footer-bottom span {
        margin-left:0;
        flex-basis:100%;
    }
    .page-intro {
        padding:46px 0;
    }
    .page-intro h1 {
        font-size:clamp(2.65rem,9.3vw,3.6rem);
    }
    .page-intro .lead,.page-intro .intro-copy {
        font-size:1rem;
        margin-top:24px;
    }
    .content-card {
        padding:27px;
    }
    .content-card p {
        font-size:.9rem;
    }
    .card-number {
        margin-bottom:22px;
    }
    .about-image {
        height:320px;
    }
    .founder-note {
        padding-left:18px;
    }
    .founder-note p {
        font-size:.85rem;
    }
    .faq-item summary {
        font-size:.92rem;
    }
    .service-nav {
        grid-template-columns:1fr;
        gap:18px;
        margin-top:32px;
    }
    .service-nav a {
        padding-top:15px;
        font-size:.85rem;
    }
    .service-section {
        scroll-margin-top:76px;
    }
    .service-section .split-layout {
        margin-bottom:30px;
    }
    .diagram-panel {
        padding:20px;
    }
    .diagram-label {
        font-size:.57rem!important;
        letter-spacing:.09em;
        margin-bottom:23px;
    }
    .data-vault-diagram {
        gap:10px;
    }
    .diagram-node {
        padding:12px 4px;
        min-height:115px;
    }
    .diagram-node strong {
        font-size:.7rem;
    }
    .diagram-node small {
        font-size:.52rem;
    }
    .diagram-node>span {
        font-size:.5rem;
    }
    .diagram-node-satellite {
        min-height:120px;
    }
    .diagram-node-satellite strong {
        font-size:.66rem;
    }
    .diagram-note {
        font-size:.69rem;
    }
    .tag-list {
        gap:7px;
    }
    .tag-list li {
        font-size:.64rem;
        padding:5px 9px;
    }
    .contact-form {
        padding:24px 20px;
    }
    .contact-form h2 {
        font-size:1.8rem;
    }
    .form-control {
        font-size:16px;
    }
    .form-grid {
        gap:20px;
    }
    .contact-layout aside {
        padding-top:10px;
    }
    .contact-layout aside>h2 {
        font-size:2rem;
    }
    .prose h2 {
        font-size:1.55rem;
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto;
    }
    *,*:before,*:after {
        animation:none!important;
        transition:none!important;
    }
}

@media print {
    .site-header,.site-footer,.button,.button-row,.service-nav,.nav-toggle {
        display:none!important;
    }
    .section,.page-intro {
        padding:24px 0;
    }
    .certifications-section.section {
        padding-block:24px;
        break-inside:avoid;
    }
    .container {
        width:100%;
    }
    .section-dark {
        background:white;
        color:black;
    }
    .section-dark p,.section-dark .eyebrow {
        color:black;
    }
    .flow-panel[hidden] {
        display:grid!important;
    }
    .hero-image {
        position:static;
    }
    .hero-visual {
        max-height:250px;
    }
    .cards-grid,.split-layout {
        gap:20px;
    }
    .content-card,.service-card,.diagram-panel {
        break-inside:avoid;
    }
}
