:root {
    --navy:#103e4c;
    --blue:#206674;
    --blue2:#184b59;
    --gold:#8a6413;
    --cream:#f5f7f4;
    --soft:#eef4f4;
    --line:#d8e2e3;
    --text:#1a2e35;
    --muted:#566a71;
    --max:1380px
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth;
    scroll-padding-top:30px
}
body {
    margin:0;
    color:var(--text);
    background:#fff;
    font-family:Arial,Helvetica,sans-serif;
    font-size:16px;
    line-height:1.65
}
a {
    color:var(--blue);
    text-decoration:none
}
a:hover {
    text-decoration:underline
}
button,a {
    -webkit-tap-highlight-color:transparent
}
button {
    font:inherit
}
a:focus-visible,button:focus-visible {
    outline:3px solid #bd872d;
    outline-offset:5px
}
img {
    max-width:100%;
    height:auto
}
h1,h2,h3,p {
    margin-top:0
}
h1,h2,h3 {
    color:var(--navy)
}
h1,h2 {
    font-family:Georgia,'Times New Roman',serif;
    font-weight:400;
    letter-spacing:-1.2px;
    line-height:1.18
}
h2 {
    font-size:40px;
    margin-bottom:21px
}
h3 {
    font-size:21px;
    line-height:1.35
}
p {
    margin-bottom:20px
}
.container {
    width:min(var(--max),calc(100% - 64px));
    margin-inline:auto
}
.topbar {
    background:var(--blue2);
    color:#fff;
    font-size:12px;
    letter-spacing:.2px
}
.topbar .container {
    min-height:39px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px
}
.topbar .container>div {
    display:flex;
    gap:24px
}
.topbar a {
    color:white
}
.site-header {
    background:#fff;
    border-bottom:1px solid var(--line);
    position:relative;
    z-index:20
}
.header-row {
    min-height:108px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px
}
.brand {
    display:flex;
    align-items:center;
    gap:10px;
    flex-shrink:0;
    color:var(--navy)
}
.brand:hover {
    text-decoration:none
}
.brand-mark {
    width:42px;
    height:52px
}
.brand-main {
    font-family:Georgia,'Times New Roman',serif;
    font-size:25px;
    display:block;
    line-height:1.15;
    letter-spacing:-.8px
}
.brand-sub {
    display:block;
    font-size:10px;
    letter-spacing:3px;
    margin-top:7px
}
.main-nav {
    display:flex;
    align-items:center;
    gap:22px
}
.menu,.sub-menu,.footer-grid ul,.footer-bottom ul {
    list-style:none;
    margin:0;
    padding:0
}
.menu {
    display:flex;
    gap:22px;
    align-items:center
}
.menu-item {
    position:relative
}
.menu-item-row {
    display:flex;
    align-items:center;
    gap:5px
}
.menu-item-row>a {
    color:var(--text);
    font-size:13px;
    font-weight:600;
    white-space:nowrap;
    padding-block:40px
}
.submenu-toggle {
    border:0;
    background:transparent;
    padding:8px 2px;
    cursor:pointer;
    color:var(--blue)
}
.submenu-toggle span {
    display:block;
    width:5px;
    height:5px;
    border-right:1px solid;
    border-bottom:1px solid;
    transform:rotate(45deg) translateY(-2px)
}
.sub-menu {
    display:none;
    position:absolute;
    top:100%;
    left:-20px;
    min-width:260px;
    background:#fff;
    border-top:3px solid var(--blue);
    box-shadow:0 12px 30px #103e4c26;
    padding:14px;
    border-radius:0 0 6px 6px
}
.sub-menu a {
    display:block;
    color:var(--text);
    font-size:14px;
    padding:9px 12px
}
.sub-menu a:hover {
    background:var(--soft);
    text-decoration:none
}
.menu-item.open>.sub-menu {
    display:block
}
.button {
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:16px;
    padding:14px 21px;
    background:var(--blue);
    border:1px solid var(--blue);
    border-radius:5px;
    color:#fff;
    font-size:14px;
    font-weight:600;
    line-height:1.35;
    text-decoration:none!important;
    transition:background .18s
}
.button:hover {
    background:var(--navy)
}
.appointment-button {
    font-size:12px;
    padding:14px;
    white-space:nowrap
}
.menu-toggle {
    display:none
}
.skip-link {
    position:absolute;
    top:-80px;
    left:20px;
    background:#fff;
    padding:12px;
    z-index:100
}
.skip-link:focus {
    top:10px
}
.home-intro {
    padding-top:28px
}
.intro-layout {
    display:grid;
    grid-template-columns:38% 62%;
    min-height:455px
}
.intro-copy {
    background:linear-gradient(125deg,#103e4c,#206674);
    border-radius:9px 0 0 9px;
    padding:44px 40px;
    position:relative;
    overflow:hidden;
    color:#fff;
    display:flex;
    flex-direction:column;
    justify-content:center
}
.intro-copy:before,.appointment-section:before {
    content:'';
    position:absolute;
    inset:0;
    background:url('../images/wave-bg.webp') center/cover;
    opacity:.14;
    pointer-events:none
}
.intro-copy>* {
    position:relative
}
.eyebrow {
    font-size:11px;
    letter-spacing:1.8px;
    line-height:1.6;
    font-weight:700;
    color:var(--blue);
    margin-bottom:16px
}
.intro-copy .eyebrow {
    color:#cce4e5
}
h1 {
    font-size:60px;
    margin:0 0 20px;
    color:#fff
}
.intro-description {
    font-size:16px;
    line-height:1.7;
    color:#e3eeef;
    max-width:390px;
    margin-bottom:26px
}
.button-row {
    display:flex;
    align-items:center;
    gap:18px;
    flex-wrap:wrap
}
.button-white {
    background:#fff;
    border-color:#fff;
    color:var(--navy)
}
.button-white:hover {
    background:#dfecee
}
.intro-copy .button-row {
    gap:17px
}
.intro-link {
    font-size:13px;
    color:#fff
}
.intro-location {
    border-top:1px solid #ffffff30;
    padding-top:20px;
    margin-top:28px;
    font-size:12px;
    color:#d3e7e8;
    display:flex;
    align-items:center;
    gap:9px
}
.location-dot {
    width:7px;
    height:7px;
    border-radius:50%;
    background:#8bbfc1
}
.quick-links {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    padding-top:23px;
    padding-bottom:15px;
    gap:24px
}
.quick-links a {
    border-bottom:1px solid var(--line);
    color:var(--text);
    font-size:14px;
    font-weight:600;
    padding:14px 0 19px;
    display:flex;
    align-items:center;
    gap:13px
}
.quick-links a span {
    color:#67868e;
    font-size:11px;
    font-weight:400
}
.quick-links b {
    margin-left:auto;
    color:var(--blue);
    font-size:20px;
    font-weight:400
}
.section {
    padding:68px 0
}
.section-heading {
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:30px
}
.section-heading h2 {
    margin-bottom:14px
}
.section-heading>.text-link {
    white-space:nowrap;
    margin-bottom:17px
}
.section-description {
    color:var(--muted);
    max-width:760px
}
.text-link {
    display:inline-flex;
    align-items:center;
    gap:18px;
    font-size:13px;
    font-weight:700
}
.service-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:22px;
    margin-top:31px
}
.service-card {
    border:1px solid var(--line);
    border-top:3px solid var(--blue);
    border-radius:7px;
    padding:24px 25px;
    display:flex;
    flex-direction:column
}
.service-number {
    font-family:Georgia,serif;
    font-size:27px;
    color:#92abad;
    line-height:1;
    margin-bottom:25px
}
.service-card h3 {
    font-size:20px;
    margin-bottom:12px
}
.service-card h3 a {
    color:var(--navy)
}
.service-card p {
    font-size:14px;
    color:var(--muted);
    margin-bottom:22px
}
.service-card>.text-link {
    margin-top:auto
}
.additional-services {
    display:flex;
    gap:24px;
    flex-wrap:wrap;
    margin-top:27px;
    font-size:12px
}
.additional-services>span {
    color:var(--muted)
}
.section-soft {
    background:var(--soft)
}
.section-cream {
    background:var(--cream)
}
.two-column {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:100px;
    align-items:center
}
.two-column>div>p:not(.eyebrow) {
    color:var(--muted);
    font-size:15px;
    max-width:540px
}
.two-column .button {
    margin-top:8px
}
.visit-panel {
    background:#fff;
    border:1px solid var(--line);
    border-radius:8px;
    padding:31px 36px;
    box-shadow:0 5px 25px #103e4c08
}
.panel-label {
    font-size:10px;
    letter-spacing:1.7px;
    color:var(--blue);
    font-weight:700
}
.visit-panel h3 {
    font-family:Georgia,serif;
    font-size:27px;
    font-weight:400;
    margin-top:12px
}
.visit-panel ol {
    list-style:none;
    padding:0;
    margin:0
}
.visit-panel li {
    display:flex;
    gap:17px;
    padding:17px 0;
    border-top:1px solid var(--line)
}
.visit-panel li>span {
    color:var(--blue);
    font-family:Georgia,serif;
    font-size:20px
}
.visit-panel strong {
    font-size:14px
}
.visit-panel li p {
    font-size:12px;
    color:var(--muted);
    margin:4px 0 0
}
.community-links>a {
    display:flex;
    gap:20px;
    align-items:center;
    padding:26px 0;
    border-bottom:1px solid var(--line)
}
.community-links>a:first-child {
    border-top:1px solid var(--line)
}
.community-links>a:hover {
    text-decoration:none
}
.link-index {
    font-family:Georgia,serif;
    font-size:21px;
    color:#8ca4a9
}
.community-links h3 {
    margin:0 0 7px;
    font-size:19px
}
.community-links p {
    font-size:13px;
    color:var(--muted);
    margin:0
}
.community-links>a>span:last-child {
    margin-left:auto;
    font-size:21px
}
.library-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:25px;
    margin-top:30px
}
.library-grid>a {
    display:flex;
    flex-direction:column;
    background:#fff;
    border:1px solid var(--line);
    border-radius:7px;
    padding:29px 30px;
    border-bottom:3px solid #7b9fa4
}
.library-grid>a:hover {
    border-bottom-color:var(--blue);
    text-decoration:none
}
.topic {
    font-size:10px;
    letter-spacing:1.4px;
    color:var(--blue);
    font-weight:700
}
.library-grid h3 {
    font-family:Georgia,serif;
    font-size:26px;
    font-weight:400;
    margin:19px 0 27px
}
.topic-link {
    font-size:12px;
    font-weight:700;
    margin-top:auto
}
.appointment-section {
    background:var(--blue2);
    position:relative;
    overflow:hidden;
    color:#fff;
    padding:49px 0
}
.appointment-inner {
    position:relative;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:35px
}
.appointment-inner h2 {
    color:#fff;
    font-size:35px;
    margin-bottom:12px
}
.appointment-inner p {
    font-size:14px;
    color:#d4e7e8;
    margin-bottom:0
}
.appointment-inner .eyebrow {
    color:#c3e0e2;
    font-size:10px;
    margin-bottom:12px
}
.button-outline {
    background:transparent;
    border-color:#a3c2c8
}
.site-footer {
    background:#103542;
    color:#d3e0e3;
    padding:54px 0 0
}
.footer-grid {
    display:grid;
    grid-template-columns:1.35fr 1fr 1fr 1fr;
    gap:60px;
    padding-bottom:44px
}
.site-footer .brand {
    color:#fff
}
.site-footer .brand-main {
    font-size:23px
}
.site-footer .brand-sub {
    font-size:9px
}
.footer-brand p {
    font-size:13px;
    max-width:270px;
    margin:21px 0 18px;
    color:#b4cbd1
}
.site-footer a {
    color:#d3e0e3
}
.site-footer h2 {
    font-family:Arial,Helvetica,sans-serif;
    font-size:14px;
    font-weight:700;
    color:#fff;
    letter-spacing:0;
    margin:7px 0 19px
}
.footer-grid li {
    font-size:12px;
    margin-bottom:9px
}
.footer-contact {
    font-size:13px;
    font-weight:700
}
.footer-bottom {
    border-top:1px solid #ffffff24;
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:24px 0;
    color:#adc6cc;
    font-size:10px
}
.footer-bottom p {
    margin:0
}
.footer-bottom ul {
    display:flex;
    flex-wrap:wrap;
    gap:20px
}
.back-to-top {
    position:fixed;
    bottom:20px;
    right:20px;
    background:var(--blue);
    border:1px solid #ffffff60;
    color:#fff;
    width:39px;
    height:39px;
    border-radius:4px;
    cursor:pointer;
    opacity:0;
    visibility:hidden;
    transition:opacity .2s
}
.back-to-top.visible {
    opacity:1;
    visibility:visible
}
@media(min-width:1440px) {
    .intro-layout {
        min-height:480px
    }
}
@media(max-width:1320px) {
    .header-row {
        gap:18px
    }
    .brand-main {
        font-size:23px
    }
    .brand-mark {
        width:35px
    }
    .main-nav,.menu {
        gap:15px
    }
    .menu-item-row>a {
        font-size:12px
    }
    .appointment-button {
        font-size:11px;
        padding:13px 10px
    }
    .intro-copy {
        padding:35px
    }
    .intro-copy h1 {
        font-size:54px
    }
    .two-column {
        gap:65px
    }
}
@media(max-width:1120px) {
    .header-row {
        min-height:90px
    }
    .menu-toggle {
        display:flex;
        gap:12px;
        align-items:center;
        border:1px solid var(--line);
        padding:10px 16px;
        border-radius:4px;
        background:#fff;
        color:var(--navy);
        cursor:pointer
    }
    .main-nav {
        display:none;
        position:absolute;
        top:100%;
        left:0;
        width:100%;
        background:#fff;
        padding:20px 32px;
        border-bottom:1px solid var(--line);
        box-shadow:0 9px 15px #103e4c15
    }
    .main-nav.open {
        display:block
    }
    .menu {
        display:block
    }
    .menu-item-row {
        justify-content:space-between
    }
    .menu-item-row>a {
        padding:13px 0;
        font-size:15px;
        flex:1
    }
    .submenu-toggle {
        padding:15px
    }
    .sub-menu {
        position:static;
        box-shadow:none;
        border:0;
        border-left:2px solid var(--line);
        margin-bottom:9px;
        border-radius:0
    }
    .main-nav .appointment-button {
        font-size:14px;
        margin-top:12px
    }
    .intro-layout {
        grid-template-columns:42% 58%
    }
    .intro-copy h1 {
        font-size:48px
    }
    .intro-description {
        font-size:15px
    }
    .intro-copy {
        padding:32px
    }
    .service-card {
        padding:22px 19px
    }
    .service-card h3 {
        font-size:18px
    }
    .footer-grid {
        gap:32px
    }
    .topbar .container>div {
        gap:18px
    }
}
@media(max-width:760px) {
    .container {
        width:calc(100% - 36px)
    }
    .topbar .container {
        padding:8px 0;
        min-height:34px
    }
    .topbar .container>span {
        display:none
    }
    .topbar .container>div {
        width:100%;
        justify-content:space-between;
        gap:12px;
        font-size:10px
    }
    .header-row {
        min-height:84px
    }
    .brand-main {
        font-size:23px
    }
    .brand-sub {
        font-size:9px;
        letter-spacing:2.4px
    }
    .brand-mark {
        width:35px;
        height:44px
    }
    .menu-toggle {
        font-size:13px;
        padding:9px 12px
    }
    .home-intro {
        padding-top:18px
    }
    .intro-layout {
        grid-template-columns:1fr;
        min-height:0
    }
    .intro-copy {
        border-radius:8px 8px 0 0;
        padding:32px 26px
    }
    .intro-copy h1 {
        font-size:49px
    }
    .intro-description {
        max-width:100%;
        font-size:15px
    }
    .intro-copy h1 br {
        display:none
    }
    .intro-location {
        margin-top:22px;
        padding-top:15px
    }
    .quick-links {
        grid-template-columns:1fr 1fr;
        gap:0 20px;
        padding-top:13px
    }
    .quick-links a {
        font-size:12px;
        padding:14px 0;
        gap:8px
    }
    .quick-links a span {
        font-size:10px
    }
    .quick-links b {
        font-size:17px
    }
    .section {
        padding:42px 0
    }
    h2 {
        font-size:32px
    }
    .section-heading {
        display:block
    }
    .section-heading>.text-link {
        margin:0 0 10px
    }
    .section-description {
        font-size:14px
    }
    .service-grid {
        grid-template-columns:1fr 1fr;
        gap:14px;
        margin-top:22px
    }
    .service-card {
        padding:21px 17px
    }
    .service-number {
        font-size:23px;
        margin-bottom:21px
    }
    .service-card h3 {
        font-size:18px
    }
    .service-card p {
        font-size:13px
    }
    .text-link {
        font-size:12px;
        gap:9px
    }
    .additional-services {
        gap:12px 20px;
        font-size:11px
    }
    .additional-services>span {
        width:100%
    }
    .two-column {
        grid-template-columns:1fr;
        gap:30px
    }
    .two-column>div>p:not(.eyebrow) {
        font-size:14px
    }
    .visit-panel {
        padding:25px
    }
    .visit-panel h3 {
        font-size:25px
    }
    .community-links>a {
        padding:23px 0
    }
    .community-links h3 {
        font-size:18px
    }
    .library-grid {
        grid-template-columns:1fr;
        gap:15px
    }
    .library-grid>a {
        padding:23px
    }
    .library-grid h3 {
        font-size:25px;
        margin:12px 0 19px
    }
    .library-grid h3 br {
        display:none
    }
    .appointment-section {
        padding:35px 0
    }
    .appointment-inner {
        display:block
    }
    .appointment-inner h2 {
        font-size:30px
    }
    .appointment-inner .button-row {
        margin-top:24px;
        gap:12px
    }
    .appointment-inner .button {
        font-size:13px;
        padding:13px 16px
    }
    .footer-grid {
        grid-template-columns:1fr 1fr;
        gap:29px 22px;
        padding-bottom:30px
    }
    .footer-brand {
        grid-column:1/-1
    }
    .footer-brand p {
        max-width:100%;
        margin:16px 0 10px
    }
    .footer-grid li {
        font-size:12px
    }
    .footer-bottom {
        display:block;
        font-size:10px;
        padding:20px 0
    }
    .footer-bottom ul {
        margin-top:13px;
        gap:14px
    }
    .site-footer {
        padding-top:35px
    }
}
@media(max-width:370px) {
    .brand-main {
        font-size:20px
    }
    .brand-sub {
        font-size:8px
    }
    .service-grid {
        grid-template-columns:1fr
    }
    .intro-copy h1 {
        font-size:42px
    }
    .quick-links a {
        font-size:11px
    }
    .topbar .container>div {
        font-size:9px
    }
}
@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }
    * {
        transition:none!important
    }
}
/* Shared page layouts. */
.utility-nav {
    display:flex;
    align-items:center;
    gap:23px
}
.current-menu-item>.menu-item-row>a {
    color:var(--blue)
}
.page-heading {
    padding:32px 0 42px;
    background:var(--blue2);
    color:#d8e9ec
}
.page-heading h1 {
    font-size:48px;
    line-height:1.2;
    max-width:1100px;
    margin:18px 0 16px
}
.page-heading p {
    max-width:890px;
    font-size:16px;
    line-height:1.7;
    margin:0
}
.breadcrumbs ol {
    list-style:none;
    padding:0;
    margin:0;
    display:flex;
    flex-wrap:wrap;
    gap:7px 0;
    font-size:11px;
    line-height:1.7
}
.breadcrumbs li+li:before {
    content:'/';
    color:#81a7b1;
    margin:0 12px
}
.breadcrumbs a {
    color:#d7e9ec
}
.breadcrumbs [aria-current] {
    color:#a9c8ce
}
.page-layout {
    display:grid;
    grid-template-columns:minmax(0,1fr) 300px;
    gap:72px;
    padding-top:54px;
    padding-bottom:64px;
    align-items:start
}
.page-layout-wide {
    display:block
}
.entry-content {
    min-width:0
}
.entry-content>p:first-child {
    font-size:17px;
    color:#4e646c
}
.entry-content p {
    margin-bottom:20px;
    line-height:1.8
}
.entry-content h2 {
    font-size:30px;
    margin-top:0;
    margin-bottom:17px;
    letter-spacing:-.5px
}
.entry-content h3 {
    font-size:20px;
    letter-spacing:0;
    margin-bottom:13px
}
.entry-content>section {
    margin-top:34px
}
.entry-content>section:first-child {
    margin-top:0
}
.entry-content ul,.entry-content ol {
    padding-left:24px;
    margin-top:0;
    margin-bottom:22px
}
.entry-content li {
    padding-left:3px;
    margin-bottom:8px
}
.entry-content a:not(.button):not(.text-link) {
    text-decoration:underline;
    text-underline-offset:3px
}
.entry-content address {
    font-style:normal;
    line-height:1.8;
    margin:0 0 15px;
    color:var(--muted)
}
.page-sidebar {
    position:sticky;
    top:25px
}
.sidebar-section {
    border:1px solid var(--line);
    border-top:3px solid var(--blue);
    border-radius:6px;
    padding:25px
}
.sidebar-section h2,.sidebar-contact h2 {
    font-family:Georgia,serif;
    font-size:23px;
    letter-spacing:-.3px;
    margin-bottom:20px
}
.sidebar-section ul {
    list-style:none;
    padding:0;
    margin:0
}
.sidebar-section li {
    border-top:1px solid var(--line)
}
.sidebar-section a {
    display:block;
    font-size:13px;
    color:var(--text);
    padding:11px 0
}
.sidebar-section a[aria-current] {
    color:var(--blue);
    font-weight:700
}
.sidebar-contact {
    margin-top:22px;
    border-radius:6px;
    padding:27px 25px;
    background:var(--soft)
}
.sidebar-contact p {
    font-size:13px;
    color:var(--muted)
}
.sidebar-contact .button {
    font-size:12px;
    padding:13px 12px;
    display:flex
}
.sidebar-phone {
    display:block;
    text-align:center;
    font-size:13px;
    font-weight:700;
    margin-top:16px
}
.resource-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
    margin:26px 0
}
.resource-card {
    border:1px solid var(--line);
    border-top:3px solid var(--blue);
    border-radius:7px;
    padding:27px;
    display:flex;
    flex-direction:column
}
.resource-card h3 {
    font-size:21px;
    margin-bottom:13px
}
.resource-card h3 a {
    text-decoration:none!important
}
.resource-card p {
    font-size:14px;
    color:var(--muted);
    margin-bottom:20px
}
.resource-card>.text-link {
    margin-top:auto
}
.location-card {
    border:1px solid var(--line);
    border-left:4px solid var(--blue);
    border-radius:6px;
    padding:28px
}
.page-layout-wide .location-card {
    display:inline-block;
    vertical-align:top;
    width:calc(50% - 14px);
    margin:20px 24px 0 0
}
.page-layout-wide .location-card:nth-of-type(2n) {
    margin-right:0
}
.page-layout-wide .location-card h2 {
    font-size:26px
}
.content-note {
    background:var(--soft);
    border-left:3px solid var(--blue);
    padding:24px;
    margin-top:28px
}
.content-note p:last-child {
    margin-bottom:0
}
.faq-list details {
    border-bottom:1px solid var(--line);
    padding:20px 0
}
.faq-list details:first-child {
    border-top:1px solid var(--line)
}
.faq-list summary {
    font-size:17px;
    font-weight:700;
    cursor:pointer;
    padding-right:15px;
    color:var(--navy)
}
.faq-list details>p {
    margin:14px 0 0;
    padding-right:15px;
    font-size:15px
}
.information-list {
    display:grid;
    grid-template-columns:130px 1fr;
    gap:10px 20px
}
.information-list dt {
    font-weight:700
}
.information-list dd {
    margin:0
}
.name-columns {
    columns:2;
    column-gap:40px
}
.directory-links {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin:25px 0 35px
}
.directory-links a {
    border:1px solid var(--line);
    border-radius:4px;
    padding:9px 15px;
    font-size:13px;
    font-weight:700;
    text-decoration:none!important
}
.directory-links a:hover {
    background:var(--soft)
}
.directory-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px
}
.directory-card {
    border:1px solid var(--line);
    border-top:3px solid #7b9fa4;
    border-radius:6px;
    padding:26px
}
.directory-card h3 {
    font-family:Georgia,serif;
    font-size:24px;
    font-weight:400
}
.directory-card p {
    font-size:14px;
    line-height:1.8;
    color:var(--muted)
}
.directory-card p:last-child {
    margin-bottom:0
}
.directory-card .provider-role {
    font-size:10px;
    letter-spacing:.8px;
    text-transform:uppercase;
    color:var(--blue);
    font-weight:700;
    line-height:1.6;
    margin-bottom:14px
}
.publication-context {
    font-size:12px;
    font-weight:700;
    color:var(--blue)
}
.article-sources {
    border-top:1px solid var(--line);
    padding-top:25px
}
.article-sources h2 {
    font-size:23px
}
.article-sources li {
    font-size:13px
}
.button-secondary {
    background:white;
    color:var(--blue);
    border-color:var(--blue)
}
.button-secondary:hover {
    color:white
}
@media(max-width:1120px) {
    .sub-menu {
        max-height:none
    }
    .page-layout {
        gap:38px;
        grid-template-columns:minmax(0,1fr) 265px
    }
    .page-heading h1 {
        font-size:42px
    }
    .directory-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
    .utility-nav {
        gap:18px
    }
    .sub-menu {
        min-width:0
    }
}
@media(max-width:760px) {
    .utility-nav {
        width:100%;
        justify-content:space-between;
        gap:12px;
        font-size:10px
    }
    .topbar .container>span {
        display:none
    }
    .page-heading {
        padding:23px 0 30px
    }
    .page-heading h1 {
        font-size:35px;
        margin-top:16px
    }
    .page-heading p {
        font-size:14px
    }
    .breadcrumbs ol {
        font-size:10px
    }
    .breadcrumbs li+li:before {
        margin:0 8px
    }
    .page-layout {
        display:block;
        padding-top:32px;
        padding-bottom:39px
    }
    .entry-content h2 {
        font-size:27px
    }
    .entry-content>p:first-child {
        font-size:16px
    }
    .entry-content p,.entry-content li {
        font-size:14px
    }
    .entry-content>section {
        margin-top:28px
    }
    .page-sidebar {
        position:static;
        margin-top:35px
    }
    .sidebar-section {
        padding:22px
    }
    .sidebar-section ul {
        columns:2;
        column-gap:22px
    }
    .sidebar-section li {
        break-inside:avoid
    }
    .resource-grid {
        gap:17px;
        margin:22px 0
    }
    .resource-card {
        padding:21px
    }
    .resource-card h3 {
        font-size:19px
    }
    .resource-card p {
        font-size:13px
    }
    .page-layout-wide .location-card {
        display:block;
        width:100%;
        margin:18px 0 0
    }
    .location-card {
        padding:23px
    }
    .name-columns {
        columns:1
    }
    .directory-grid {
        gap:17px
    }
    .directory-card {
        padding:21px
    }
    .directory-card h3 {
        font-size:22px
    }
    .directory-card .provider-role {
        font-size:9px
    }
    .directory-card p {
        font-size:13px
    }
    .faq-list summary {
        font-size:16px
    }
    .sidebar-contact .button {
        display:inline-flex
    }
    .sidebar-phone {
        text-align:left
    }
    .site-footer .brand-mark path:last-child {
        fill:#e3eeef
    }
}
@media(max-width:480px) {
    .resource-grid,.directory-grid {
        grid-template-columns:1fr
    }
    .sidebar-section ul {
        columns:1
    }
    .directory-card {
        padding:24px
    }
    .page-heading h1 {
        font-size:32px
    }
    .utility-nav {
        font-size:9px;
        gap:10px
    }
    .information-list {
        grid-template-columns:100px 1fr;
        gap:9px 12px;
        font-size:14px
    }
}

/* Keep the complete photograph at its original proportions. */
.intro-picture {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 0;
    padding: 0;
    background: #e4eded;
    border-radius: 0 9px 9px 0;
}

.intro-picture img {
    display: block;
    position: static;
    width: 100%;
    height: auto;
    max-height: none;
    aspect-ratio: auto;
    object-fit: contain;
}

@media (max-width: 760px) {
    .intro-picture {
        display: block;
        border-radius: 0 0 9px 9px;
    }
}
