:root {
    --ice:#f3f5f4;
    --navy:#142d45;
    --gold:#b69a62;
    --muted:#526272;
    --line:#d4dcdb;
    --soft:#e9eeeb;
    --white:#fff;
    --serif:'Lora',Georgia,serif;
    --sans:'Quicksand',Arial,sans-serif;
    --page:1280px;
    --space:clamp(64px,7vw,112px);
}

* {
    box-sizing:border-box;
}

html {
    scroll-behavior:smooth;
    scroll-padding-top:110px;
}

body {
    margin:0;
    background:var(--ice);
    color:var(--navy);
    font-family:var(--sans);
    font-size:18px;
    font-weight:500;
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
}

body,button,input,select {
    font-family:var(--sans);
}

a {
    color:inherit;
    text-decoration:none;
}

button,input,select {
    font-size:inherit;
}

button,a,input,summary,select {
    -webkit-tap-highlight-color:transparent;
}

button {
    cursor:pointer;
}

img {
    max-width:100%;
    display:block;
}

figure,p,h1,h2,h3 {
    margin:0;
}

h1,h2,h3 {
    font-family:var(--serif);
    font-weight:400;
    line-height:1.24;
}

h1 {
    font-size:clamp(42px,4.5vw,66px);
    letter-spacing:-2.4px;
}

h2 {
    font-size:clamp(32px,3vw,44px);
    letter-spacing:-1.1px;
}

h3 {
    font-size:27px;
    letter-spacing:-.5px;
}

p {
    color:var(--muted);
}

button {
    border:0;
}

em {
    font-weight:400;
}

small {
    font-size:14px;
    line-height:1.65;
}

.icon {
    width:23px;
    height:23px;
    flex:0 0 23px;
    vertical-align:middle;
}

a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible {
    outline:3px solid var(--gold);
    outline-offset:5px;
}

::selection {
    background:var(--navy);
    color:var(--ice);
}

[hidden] {
    display:none!important;
}

.container {
    width:min(var(--page),calc(100% - 112px));
    margin-inline:auto;
}

.section {
    padding-block:var(--space);
}

.section-bottom {
    padding-bottom:var(--space);
}

.narrow {
    max-width:800px;
}

.eyebrow {
    font-family:var(--sans);
    font-size:12px;
    font-weight:700;
    line-height:1.5;
    text-transform:uppercase;
    letter-spacing:2px;
    color:var(--navy);
    margin-bottom:22px;
}

.gold-line {
    display:block;
    width:54px;
    height:1px;
    background:var(--gold);
}

.line-before {
    display:flex;
    align-items:center;
    gap:14px;
}

.line-before:before {
    content:"";
    width:36px;
    height:1px;
    background:var(--gold);
}

.sr-only {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}

.skip-link {
    position:fixed;
    top:-100px;
    left:20px;
    background:var(--navy);
    color:var(--ice);
    padding:14px 24px;
    z-index:100;
}

.skip-link:focus {
    top:12px;
}

.preview-bar {
    padding:6px 30px;
    background:var(--navy);
    color:var(--ice);
    display:flex;
    justify-content:center;
    gap:22px;
    font-size:11px;
    letter-spacing:.35px;
}

.preview-bar span+span {
    color:#c6d0d8;
    border-left:1px solid #536474;
    padding-left:22px;
}

.site-header {
    position:sticky;
    top:0;
    background:var(--ice);
    z-index:30;
    border-bottom:1px solid var(--line);
}

.header-inner {
    min-height:107px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
}

.wordmark {
    display:inline-flex;
    flex-direction:column;
    flex-shrink:0;
}

.wordmark>span {
    font-family:var(--serif);
    font-size:27px;
    line-height:1.3;
    letter-spacing:-.8px;
}

.wordmark small {
    text-transform:uppercase;
    font-size:9px;
    letter-spacing:3.1px;
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:7px;
}

.wordmark i {
    width:21px;
    height:1px;
    background:var(--gold);
}

/* The original transparent symbol inherits the approved brand colors. */
.brand-lockup::before,
.brand-heading::before,
.contact-band-copy::before {
    content:"";
    display:block;
    width:var(--brand-symbol-size, 48px);
    aspect-ratio:90 / 94;
    background-color:currentColor;
    -webkit-mask:url('../images/simbolo-dra-thaisa.png') center / contain no-repeat;
    mask:url('../images/simbolo-dra-thaisa.png') center / contain no-repeat;
    pointer-events:none;
}

.wordmark.brand-lockup {
    display:inline-grid;
    grid-template-columns:var(--brand-symbol-size, 48px) auto;
    column-gap:14px;
}

.brand-lockup::before {
    grid-column:1;
    grid-row:1 / 4;
    align-self:center;
}

.brand-lockup > * {
    grid-column:2;
}

.brand-heading {
    display:flex;
    align-items:center;
    gap:16px;
}

.brand-heading::before {
    --brand-symbol-size:40px;
    flex-shrink:0;
}

.contact-band-copy {
    position:relative;
    padding-left:76px;
}

.contact-band-copy::before {
    position:absolute;
    top:4px;
    left:0;
    --brand-symbol-size:52px;
}

@media(max-width:380px) {
    .site-header .wordmark.brand-lockup {
        --brand-symbol-size:32px;
        column-gap:8px;
    }
    .site-header .brand-lockup > span:not(.professional-registration):not(.sr-only) {
        font-size:20px;
    }
    .site-header .brand-lockup small {
        font-size:7px;
        letter-spacing:1.8px;
    }
    .site-header .menu-toggle {
        min-width:44px;
        justify-content:center;
        padding:10px;
    }
    .site-header .menu-toggle span {
        display:none;
    }
}

.main-nav {
    display:flex;
    align-items:center;
    gap:27px;
    font-size:13px;
    font-weight:600;
}

.main-nav>a:not(.button) {
    position:relative;
    padding-block:13px;
    white-space:nowrap;
}

.main-nav>a[aria-current]:after {
    position:absolute;
    bottom:3px;
    content:"";
    height:2px;
    width:20px;
    left:0;
    background:var(--gold);
}

.main-nav>a:hover,.nav-dropdown summary:hover {
    color:#4c6377;
}

.nav-dropdown {
    position:relative;
}

.nav-dropdown summary {
    list-style:none;
    display:flex;
    gap:5px;
    align-items:center;
    cursor:pointer;
    padding-block:14px;
}

.nav-dropdown summary::-webkit-details-marker {
    display:none;
}

.nav-dropdown summary .icon {
    width:12px;
    height:12px;
    flex-basis:12px;
}

.nav-dropdown summary.is-current {
    box-shadow:inset 0 -2px var(--gold);
}

.nav-dropdown-panel {
    position:absolute;
    left:-20px;
    top:50px;
    min-width:260px;
    background:var(--ice);
    border:1px solid var(--line);
    padding:12px;
    box-shadow:0 12px 26px #142d450c;
}

.nav-dropdown-panel a {
    display:block;
    padding:9px 12px;
    border-radius:2px;
}

.nav-dropdown-panel a:hover {
    background:var(--soft);
}

.mobile-contact-link {
    display:none;
}

.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    min-height:58px;
    padding:16px 25px;
    border-radius:3px;
    background:var(--navy);
    color:var(--ice);
    font-family:var(--sans);
    font-size:15px;
    font-weight:600;
    line-height:1.4;
    border:1px solid var(--navy);
    transition:background .2s,transform .2s;
}

.button:hover {
    background:#24455f;
    transform:translateY(-2px);
}

.button .icon {
    width:20px;
    height:20px;
    flex-basis:20px;
}

.button-small {
    min-height:46px;
    padding:12px 18px;
    font-size:12px;
    gap:15px;
}

.button-light {
    background:var(--ice);
    color:var(--navy);
    border-color:var(--ice);
}

.button-light:hover {
    background:#e1e9e5;
}

.text-link {
    display:inline-flex;
    align-items:center;
    gap:20px;
    font-size:15px;
    font-weight:600;
    line-height:1.5;
    padding-block:9px;
    border-bottom:1px solid var(--gold);
    width:fit-content;
}

.text-link .icon {
    width:20px;
    height:20px;
    flex-basis:20px;
    transition:transform .2s;
}

.text-link:hover .icon {
    transform:translateX(4px);
}

.menu-toggle {
    display:none;
}

.hero {
    display:grid;
    grid-template-columns:1.04fr 1fr;
    gap:74px;
    padding-block:63px 55px;
    align-items:center;
}

.hero-copy {
    padding-block:20px;
}

.hero h1 {
    margin-bottom:28px;
}

.hero h1 em {
    font-size:.94em;
}

.hero-description {
    font-size:18px;
    line-height:1.8;
    max-width:460px;
    margin-bottom:31px;
}

.hero-secondary {
    display:flex;
    margin-top:15px;
    font-size:13px;
    gap:22px;
}

.hero-location {
    display:flex;
    align-items:center;
    gap:10px;
    font-size:12px;
    color:var(--muted);
    margin-top:37px;
}

.hero-location .icon {
    width:17px;
    height:17px;
    flex-basis:17px;
}

.hero-figure {
    min-width:0;
    position:relative;
}

.hero-image-frame {
    position:relative;
    margin-right:13px;
}

.hero-image-frame:after {
    content:"";
    position:absolute;
    inset:17px -13px -13px 17px;
    border:1px solid var(--gold);
    z-index:-1;
}

.hero-image-frame img {
    width:100%;
    height:535px;
    object-fit:cover;
    object-position:51% 50%;
    border-radius:3px;
}

.hero-figure figcaption {
    display:flex;
    gap:13px;
    align-items:center;
    margin-top:32px;
    font-family:var(--serif);
    font-size:18px;
    font-style:italic;
}

.hero-figure figcaption .gold-line {
    width:27px;
}

.hero-figure figcaption small {
    margin-left:auto;
    font-family:var(--sans);
    font-size:10px;
    letter-spacing:.3px;
    font-style:normal;
    color:var(--muted);
}

.principles {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    padding:27px 0;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
}

.principles>div {
    display:flex;
    justify-content:center;
    align-items:center;
    gap:16px;
    font-size:14px;
}

.principles>div+div {
    border-left:1px solid var(--line);
}

.principles .icon {
    color:#8c7341;
    width:24px;
    height:24px;
}

.section-heading {
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:75px;
    margin-bottom:48px;
}

.section-heading>div {
    max-width:580px;
}

.section-heading>p {
    max-width:390px;
    font-size:16px;
    line-height:1.85;
    padding-bottom:5px;
}

.section-heading>.text-link {
    flex-shrink:0;
}

.section-heading .eyebrow {
    margin-bottom:18px;
}

.care-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:32px;
}

.care-card {
    display:flex;
    flex-direction:column;
    padding:0 0 28px;
    border-bottom:1px solid var(--line);
}

.care-image {
    overflow:hidden;
    margin-bottom:26px;
}

.care-image img {
    width:100%;
    height:auto;
    aspect-ratio:3 / 2;
    object-fit:cover;
    transition:transform .5s cubic-bezier(.16,1,.3,1);
}

.care-card:hover .care-image img {
    transform:scale(1.035);
}

.care-card:hover .card-link {
    text-decoration:underline;
    text-underline-offset:5px;
}

.care-card h3 {
    font-size:30px;
    margin-bottom:18px;
}

.care-card>p {
    font-size:16px;
    line-height:1.85;
    max-width:34ch;
}

.card-link {
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-top:auto;
    padding-top:30px;
    font-size:13px;
    font-weight:600;
}

.about-band {
    background:var(--navy);
    color:var(--ice);
    padding-block:85px;
}

.about-band-inner {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:100px;
    align-items:center;
}

.about-copy {
    max-width:480px;
}

.about-copy .eyebrow {
    color:#cbb789;
}

.about-copy h2 {
    margin-bottom:25px;
}

.about-copy p:not(.eyebrow) {
    color:#d3dce1;
    font-size:17px;
    line-height:1.85;
    margin-bottom:18px;
}

.about-copy .text-link {
    margin-top:10px;
}

.steps-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    list-style:none;
    counter-reset:step;
    margin:0 0 30px;
    padding:0;
    gap:50px;
}

.steps-grid li {
    border-top:1px solid var(--line);
    padding-top:26px;
}

.step-number {
    font-family:var(--serif);
    font-size:36px;
    color:#8d784a;
    display:block;
    margin-bottom:20px;
}

.steps-grid h3 {
    font-size:24px;
    margin-bottom:15px;
}

.steps-grid p {
    font-size:16px;
}

.articles-section {
    background:var(--soft);
}

.article-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px;
}

.article-image-link {
    display:block;
    position:relative;
    overflow:hidden;
    border-radius:3px;
}

.article-image-link>img {
    width:100%;
    height:260px;
    object-fit:cover;
    transition:transform .4s;
}

.article-card:hover .article-image-link>img {
    transform:scale(1.025);
}

.article-card:nth-child(2) .article-image-link>img {
    object-position:50% 52%;
}

.image-arrow {
    position:absolute;
    bottom:14px;
    right:14px;
    width:38px;
    height:38px;
    background:var(--ice);
    display:grid;
    place-items:center;
    border-radius:50%;
}

.image-arrow .icon {
    width:18px;
    height:18px;
}

.article-meta {
    display:flex;
    gap:12px;
    justify-content:space-between;
    margin:24px 0 14px;
    text-transform:uppercase;
    letter-spacing:.7px;
    font-size:10px;
    font-weight:700;
}

.article-meta>span+span {
    font-weight:500;
    color:var(--muted);
    text-transform:none;
    letter-spacing:0;
}

.article-card :is(h2, h3) {
    font-size:26px;
    line-height:1.35;
    margin-bottom:14px;
}

.article-card :is(h2, h3) a:hover {
    text-decoration:underline;
    text-decoration-thickness:1px;
    text-underline-offset:5px;
}

.article-card>p {
    font-size:15px;
    line-height:1.8;
}

.demo-label {
    display:inline-block;
    color:var(--muted);
    font-size:10px;
    letter-spacing:.4px;
    border:1px solid #b6c3c0;
    padding:2px 7px;
    border-radius:2px;
    margin-top:15px;
}

.contact-band {
    padding-block:74px;
    background:var(--navy);
    color:var(--ice);
}

.contact-band-inner {
    display:grid;
    grid-template-columns:1.5fr 1fr;
    gap:65px;
    align-items:center;
}

.contact-band .eyebrow {
    color:#cbb789;
    margin-bottom:17px;
}

.contact-band h2 {
    font-size:clamp(32px,2.8vw,42px);
    margin-bottom:19px;
}

.contact-band p:not(.eyebrow) {
    color:#d3dce1;
    font-size:16px;
    max-width:580px;
}

.contact-band-action {
    display:flex;
    align-items:center;
    flex-direction:column;
    gap:16px;
}

.contact-band-action small {
    font-size:11px;
    color:#c9d4dc;
    max-width:280px;
    text-align:center;
}

.site-footer {
    padding-top:70px;
}

.footer-main {
    display:grid;
    grid-template-columns:1.4fr 1fr .8fr 1.2fr;
    gap:50px;
    padding-bottom:86px;
}

.footer-main h2 {
    font-family:var(--sans);
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:1.2px;
    font-weight:700;
    margin:6px 0 22px;
}

.footer-main>div>a:not(.wordmark) {
    display:block;
    font-size:13px;
    margin:11px 0;
}

.footer-main>div>a:hover {
    text-decoration:underline;
    text-underline-offset:4px;
}

.footer-brand>p {
    font-size:14px;
    line-height:1.9;
    margin-top:22px;
}

.footer-brand .wordmark>span {
    font-size:25px;
}

.footer-contact>a {
    font-size:20px!important;
    letter-spacing:-.6px;
}

.footer-contact .icon {
    margin-left:12px;
    width:18px;
    height:18px;
}

.footer-contact p {
    font-size:13px;
    margin:12px 0;
}

.footer-contact small {
    font-size:11px;
    color:var(--muted);
}

.footer-bottom {
    display:flex;
    justify-content:space-between;
    gap:20px;
    border-top:1px solid var(--line);
    padding-block:23px 30px;
    color:var(--muted);
    font-size:10px;
}

.footer-bottom strong {
    font-weight:600;
    color:var(--navy);
}

.developer-link {
    text-decoration:underline;
    text-decoration-color:var(--gold);
    text-underline-offset:3px;
}

.developer-link:hover {
    text-decoration-color:currentColor;
}

.floating-contact {
    position:fixed;
    --floating-contact-gap:24px;
    bottom:calc(var(--floating-contact-gap) + var(--floating-footer-offset, 0px));
    right:26px;
    z-index:25;
    display:flex;
    align-items:center;
    gap:10px;
    background:var(--navy);
    color:var(--ice);
    border:1px solid #809198;
    border-radius:3px;
    padding:13px 17px;
    box-shadow:0 4px 20px #142d4515;
    font-size:12px;
    font-weight:600;
    transition:transform .2s;
}

.floating-contact:hover {
    transform:translateY(-3px);
}

.floating-contact .icon {
    width:22px;
    height:22px;
}

.breadcrumbs {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:14px;
    color:var(--muted);
    font-size:12px;
    margin-bottom:48px;
}

.breadcrumbs a:hover {
    text-decoration:underline;
}

.breadcrumbs>span:last-child {
    color:var(--navy);
}

.page-heading {
    padding-top:30px;
    padding-bottom:70px;
}

.page-heading h1 {
    max-width:900px;
}

.page-intro {
    max-width:700px;
    font-size:20px;
    line-height:1.8;
    margin-top:28px;
}

.service-grid {
    display:grid;
    grid-template-columns:1.2fr .8fr;
    gap:110px;
    align-items:start;
}

.prose section+section {
    margin-top:43px;
}

.prose h2 {
    font-size:29px;
    margin-bottom:20px;
    letter-spacing:-.5px;
}

.prose p+p {
    margin-top:18px;
}

.prose p {
    font-size:18px;
    line-height:1.9;
}

.prose ul {
    color:var(--muted);
    padding-left:25px;
}

.prose li {
    margin-bottom:14px;
}

.check-list {
    list-style:none;
    padding:0!important;
}

.check-list li {
    display:flex;
    gap:15px;
    margin-bottom:16px;
}

.check-list .icon {
    margin-top:5px;
    color:#8c7341;
    width:20px;
    height:20px;
    flex-basis:20px;
}

.service-aside img {
    width:100%;
    height:490px;
    object-fit:cover;
    border-radius:3px;
}

.service-aside figcaption,.article-cover figcaption {
    font-size:11px;
    color:var(--muted);
    margin-top:10px;
}

.aside-contact {
    padding:28px 0 0;
    margin-top:25px;
    border-top:1px solid var(--line);
}

.aside-contact p {
    font-family:var(--serif);
    font-size:24px;
    line-height:1.5;
    color:var(--navy);
    margin-bottom:15px;
}

.faq-section {
    background:var(--soft);
}

.faq-grid {
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:100px;
}

.faq-list details {
    border-bottom:1px solid #c9d3cd;
}

.faq-list details:first-child {
    border-top:1px solid #c9d3cd;
}

.faq-list summary {
    cursor:pointer;
    list-style:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    padding:24px 0;
    font-size:17px;
    font-weight:600;
}

.faq-list summary::-webkit-details-marker {
    display:none;
}

.faq-list summary .icon {
    transition:transform .2s;
}

.faq-list details[open] summary .icon {
    transform:rotate(180deg);
}

.faq-list details>p {
    padding:0 40px 24px 0;
    font-size:16px;
}

.about-page-grid {
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:90px;
    align-items:start;
}

.about-nameplate {
    padding:62px 45px;
    background:var(--navy);
    color:var(--ice);
    min-height:470px;
}

.about-biography > * + * {
    margin-top: clamp(56px, 6vw, 88px);
}

.about-biography .about-page-grid > * {
    min-width: 0;
}

.about-academic {
    padding-top: clamp(40px, 5vw, 64px);
    border-top: 1px solid var(--line);
}

.academic-portrait img {
    display: block;
    width: 100%;
    height: auto;
}

.practice-areas {
    padding: clamp(24px, 4vw, 48px);
    background: var(--soft);
}

.practice-areas-intro {
    max-width: 72ch;
}

.practice-area-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 40px;
    list-style: none;
    padding: 0;
    margin: 32px 0 0;
}

.practice-area-list li {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    align-content: start;
    gap: 16px;
    padding: 24px 0;
    border-top: 1px solid var(--line);
}

.practice-check {
    color: #8c7341;
    margin-top: 3px;
}

.practice-area-list h3 {
    font-family: var(--sans);
    font-size: 19px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0;
    margin: 0;
}

.practice-area-list p {
    font-size: 17px;
    line-height: 1.7;
    margin: 7px 0 0;
}

.about-closing {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 50px;
}

.about-closing.prose section + section {
    margin-top: 0;
}

.about-biography > .text-link {
    margin-top: 32px;
}

@media (max-width: 800px) {
    .about-biography .about-page-grid,
    .about-closing,
    .practice-area-list {
        grid-template-columns: 1fr;
    }
    .about-biography .about-page-grid,
    .about-closing {
        gap: 36px;
    }
    .about-introduction .doctor-profile,
    .academic-portrait {
        width: 100%;
        max-width: 440px;
        margin-inline: auto;
    }
    .practice-area-list li { padding-block: 20px; }
}

.care-principles {
    margin-top: 38px;
    padding: clamp(24px, 3vw, 38px);
    background: var(--navy);
    color: var(--ice);
}

.care-principles h2 {
    font-size: 30px;
    letter-spacing: -.5px;
    text-wrap: balance;
}

.care-principles ul {
    list-style: none;
    padding: 0;
    margin: 32px 0 0;
}

.care-principles li {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr);
    gap: 16px;
}

.care-principles li + li {
    margin-top: 26px;
    padding-top: 26px;
    border-top: 1px solid #4a5e6e;
}

.care-principle-icon {
    width: 26px;
    height: 26px;
    margin-top: 2px;
    color: #d2bf99;
}

.care-principles h3 {
    font-family: var(--serif);
    font-size: 22px;
    font-weight: 400;
    letter-spacing: -.3px;
    line-height: 1.35;
    margin-bottom: 10px;
}

.care-principles p {
    font-size: 16px;
    line-height: 1.8;
    color: #d3dce1;
}

.office-grid .prose > .text-link {
    margin-top: 22px;
}

.about-nameplate .eyebrow {
    color:#cbb789;
}

.about-nameplate h2 {
    font-size:56px;
    line-height:1.25;
}

.about-nameplate .gold-line {
    margin:30px 0;
}

.about-nameplate p:not(.eyebrow) {
    color:var(--ice);
    font-family:var(--serif);
    font-style:italic;
    font-size:23px;
}

.about-nameplate small {
    display:block;
    margin-top:32px;
    color:#c9d4dc;
    font-size:12px;
}

.editorial-note {
    padding:17px 20px;
    background:var(--soft);
    border-left:2px solid var(--gold);
    font-size:13px!important;
    line-height:1.8!important;
    color:var(--muted);
    margin:24px 0;
}

.office-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:90px;
}

.location-panel {
    background:var(--soft);
    border:1px solid var(--line);
    padding:42px;
}

.location-icon {
    display:grid;
    place-items:center;
    width:55px;
    height:55px;
    border:1px solid #bdc9c2;
    border-radius:50%;
    margin-bottom:35px;
}

.location-icon .icon {
    width:26px;
    height:26px;
}

.location-panel h2 {
    font-size:34px;
    margin-bottom:22px;
}

.location-panel .button {
    margin-top:28px;
}

.location-panel small {
    display:block;
    margin-top:20px;
    font-size:11px;
    color:var(--muted);
}

.article-toolbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    padding:24px 0;
    margin-bottom:50px;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
}

.category-filters {
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}

.category-filters a {
    padding:10px 15px;
    font-size:13px;
    min-height:44px;
    border:1px solid var(--line);
    border-radius:2px;
}

.category-filters a[aria-current] {
    background:var(--navy);
    color:var(--ice);
    border-color:var(--navy);
}

.category-filters a:hover {
    border-color:var(--navy);
}

.search-form {
    display:flex;
    align-items:center;
    border-bottom:1px solid var(--muted);
    max-width:270px;
}

.search-form input {
    border:0;
    background:transparent;
    padding:12px 0;
    min-width:0;
    width:100%;
    font-size:14px;
    color:var(--navy);
}

.search-form button {
    background:transparent;
    color:var(--navy);
    padding:12px;
}

.search-result {
    margin-bottom:25px;
    font-size:15px;
}

.search-result a {
    text-decoration:underline;
    margin-left:14px;
}

.empty-state {
    padding-block:60px;
    text-align:center;
    max-width:640px;
    margin-inline:auto;
}

.empty-state>.icon {
    width:48px;
    height:48px;
    margin-bottom:20px;
}

.empty-state>p {
    margin-block:20px;
}

.empty-state>.text-link {
    margin:15px auto;
}

.error-page {
    padding-block:120px;
    min-height:65vh;
}

.error-page>.text-link {
    display:flex;
}

.article-page {
    max-width:1100px;
    padding-top:30px;
}

.article-heading {
    max-width:880px;
    margin:0 auto 42px;
    text-align:center;
}

.article-heading h1 {
    font-size:clamp(37px,4vw,57px);
}

.article-heading .page-intro {
    margin-inline:auto;
    font-size:19px;
}

.article-byline {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:24px;
    color:var(--muted);
    font-size:12px;
    margin-top:23px;
}

.article-byline .demo-label {
    margin:0;
}

.article-byline a {
    text-decoration:underline;
    text-underline-offset:3px;
}

.article-cover img {
    width:100%;
    height:460px;
    object-fit:cover;
    border-radius:3px;
    object-position:50% 45%;
}

.article-body {
    max-width:720px;
    margin:55px auto 0;
}

.article-body .editorial-note {
    margin-bottom:42px;
}

.article-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 18px;
}

.article-tags a {
    max-width: 100%;
    padding: 7px 12px;
    border: 1px solid var(--line);
    border-radius: 4px;
    font-size: 12px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.article-tags a:hover {
    background: var(--navy);
    color: white;
}

.article-body > .article-tags {
    margin: 0 0 32px;
}

.article-sources {
    margin-top:42px;
    padding-top:24px;
    border-top:1px solid var(--line);
}

.article-sources h2 {
    font-family:var(--sans);
    font-size:14px;
    font-weight:700;
    letter-spacing:0;
}

.article-sources a {
    display:block;
    font-size:13px;
    text-decoration:underline;
    text-underline-offset:3px;
}

.article-sources .icon {
    width:15px;
    height:15px;
}

.reading-note {
    font-size:13px!important;
    margin-block:30px!important;
}

.contact-grid {
    display:grid;
    grid-template-columns:.95fr 1.05fr;
    gap:100px;
    align-items:start;
}

.primary-contact {
    padding-bottom:35px;
    border-bottom:1px solid var(--line);
}

.primary-contact h2 {
    font-size:38px;
    margin-bottom:20px;
}

.primary-contact>p:not(.eyebrow) {
    font-size:17px;
    max-width:340px;
    margin-bottom:25px;
}

.primary-contact small {
    display:block;
    font-size:12px;
    color:var(--muted);
    margin-top:16px;
    max-width:300px;
}

.alternative-contacts {
    padding-top:30px;
}

.alternative-contacts h3 {
    font-family:var(--sans);
    font-size:14px;
    font-weight:700;
    margin-bottom:20px;
    letter-spacing:0;
}

.alternative-contacts>a {
    display:flex;
    align-items:center;
    gap:18px;
    border-bottom:1px solid var(--line);
    padding:20px 0;
    font-size:14px;
}

.alternative-contacts>a>.icon:first-child {
    color:#8c7341;
}

.alternative-contacts>a>.icon:last-child {
    margin-left:auto;
}

.alternative-contacts strong {
    font-weight:600;
}

.contact-form-panel {
    padding:38px;
    background:var(--soft);
    border:1px solid var(--line);
    scroll-margin-top:130px;
}

.contact-form-panel>h2 {
    font-size:32px;
    margin-bottom:20px;
}

.contact-form-panel>p {
    font-size:15px;
}

.contact-form-panel .editorial-note {
    background:var(--ice);
    font-size:12px!important;
    padding:12px 15px;
}

.contact-form {
    margin-top:24px;
}

.field {
    margin-bottom:20px;
}

.field label {
    display:block;
    font-size:14px;
    font-weight:600;
    margin-bottom:7px;
}

.field input,.field select {
    display:block;
    width:100%;
    min-height:50px;
    border:1px solid #b4c2c0;
    border-radius:2px;
    padding:12px;
    background:var(--ice);
    color:var(--navy);
    font-size:16px;
}

.field input[aria-invalid],.field select[aria-invalid] {
    border-color:#993e35;
}

.field-error {
    display:block;
    color:#893329;
    margin-top:5px;
    font-size:12px;
}

.consent-field {
    display:flex;
    align-items:flex-start;
    gap:12px;
    margin:24px 0;
    font-size:12px;
    line-height:1.8;
}

.consent-field input {
    accent-color:var(--navy);
    width:20px;
    height:20px;
    flex:0 0 20px;
    margin:1px 0;
}

.consent-field label a {
    text-decoration:underline;
    text-underline-offset:3px;
}

.contact-form>.button {
    width:100%;
}

.form-note {
    display:block;
    text-align:center;
    font-size:11px;
    color:var(--muted);
    margin-top:12px;
}

.honeypot {
    position:absolute;
    left:-10000px;
    opacity:0;
}

.form-notice {
    padding:18px;
    background:#dde9dd;
    color:#264b35;
    font-size:14px;
    border-left:3px solid #567b5e;
    margin-top:20px;
}

.form-error-summary {
    background:#f5e7e3;
    border-left:3px solid #993e35;
    padding:18px;
    margin-top:20px;
    font-size:14px;
    color:#742c23;
}

.form-error-summary h3 {
    font-family:var(--sans);
    font-size:16px;
    font-weight:700;
}

.form-error-summary ul {
    padding-left:20px;
    margin-bottom:0;
}

.form-error-summary a {
    text-decoration:underline;
}

@media(min-width:1600px) {
    .hero {
        padding-block:80px 70px;
    }
    .hero-image-frame img {
        height:595px;
    }
    .hero h1 {
        font-size:69px;
    }
}

@media(max-width:1200px) {
    .brand-lockup {
        --brand-symbol-size:40px;
    }
    .container {
        width:calc(100% - 72px);
    }
    .header-inner {
        gap:20px;
    }
    .main-nav {
        gap:18px;
        font-size:12px;
    }
    .wordmark>span {
        font-size:24px;
    }
    .button-small {
        padding:12px;
        font-size:11px;
        gap:10px;
    }
    .hero {
        gap:44px;
    }
    .hero h1 {
        font-size:55px;
    }
    .hero-image-frame img {
        height:510px;
    }
    .footer-main {
        gap:25px;
    }
    .service-grid,.contact-grid {
        gap:60px;
    }
    .article-toolbar {
        align-items:flex-start;
        flex-direction:column;
    }
    .search-form {
        max-width:100%;
        width:300px;
    }
}

@media(max-width:1000px) {
    .main-nav {
        gap:13px;
    }
    .wordmark>span {
        font-size:22px;
    }
    .nav-contact {
        padding:11px;
        font-size:11px;
    }
    .nav-contact .icon {
        display:none;
    }
    .hero {
        gap:35px;
    }
    .hero h1 {
        font-size:49px;
        letter-spacing:-1.7px;
    }
    .hero-description {
        font-size:17px;
    }
    .hero-image-frame img {
        height:495px;
    }
    .hero-figure figcaption {
        font-size:16px;
    }
    .hero-figure figcaption small {
        display:none;
    }
    .section-heading {
        gap:45px;
    }
    .section-heading>p {
        max-width:320px;
    }
    .care-card {
        padding-inline:24px;
    }
    .care-card h3 {
        font-size:28px;
    }
    .about-band-inner {
        gap:60px;
    }
    .article-grid {
        gap:22px;
    }
    .article-card :is(h2, h3) {
        font-size:23px;
    }
    .article-image-link>img {
        height:210px;
    }
    .footer-main {
        grid-template-columns:1.2fr 1fr;
        gap:40px;
    }
    .contact-band-inner {
        gap:40px;
    }
    .contact-band h2 {
        font-size:33px;
    }
    .service-grid {
        gap:50px;
    }
    .about-page-grid {
        gap:50px;
    }
    .office-grid {
        gap:50px;
    }
    .contact-grid {
        gap:40px;
    }
    .contact-form-panel {
        padding:26px;
    }
}

@media(max-width:800px) {
    .container {
        width:calc(100% - 48px);
    }
    .header-inner {
        min-height:90px;
    }
    .wordmark>span {
        font-size:25px;
    }
    .wordmark small {
        font-size:9px;
        letter-spacing:2.6px;
    }
    .menu-toggle {
        display:flex;
        align-items:center;
        gap:8px;
        background:transparent;
        color:var(--navy);
        font-size:12px;
        padding:13px 0 13px 13px;
        min-height:44px;
    }
    .main-nav {
        display:none;
        position:absolute;
        top:100%;
        left:0;
        right:0;
        background:var(--ice);
        padding:20px 24px 28px;
        max-height:calc(100dvh - 90px);
        overflow:auto;
        border-bottom:1px solid var(--line);
        font-size:16px;
        align-items:stretch;
        gap:0;
    }
    .main-nav.is-open {
        display:flex;
        flex-direction:column;
    }
    .main-nav>a:not(.button) {
        padding-block:12px;
        border-bottom:1px solid var(--line);
    }
    .main-nav>a[aria-current]:after {
        display:none;
    }
    .main-nav>a[aria-current] {
        font-weight:700;
    }
    .nav-dropdown {
        border-bottom:1px solid var(--line);
    }
    .nav-dropdown summary {
        justify-content:space-between;
    }
    .nav-dropdown-panel {
        position:static;
        box-shadow:none;
        border:0;
        background:var(--soft);
        padding:5px 14px;
        margin-bottom:10px;
    }
    .nav-dropdown-panel a {
        font-size:14px;
    }
    .nav-contact {
        margin-top:20px;
        font-size:14px;
        min-height:50px;
    }
    .nav-contact .icon {
        display:block;
    }
    .mobile-contact-link {
        display:block;
        text-align:center;
        font-size:13px;
        border:0!important;
    }
    .hero {
        padding-top:38px;
        gap:30px;
        grid-template-columns:1.05fr 1fr;
    }
    .hero h1 {
        font-size:42px;
        letter-spacing:-1.5px;
    }
    .hero-description {
        font-size:16px;
    }
    .hero-image-frame img {
        height:470px;
    }
    .hero .eyebrow {
        font-size:10px;
        letter-spacing:1.6px;
    }
    .hero-location {
        font-size:10px;
        margin-top:26px;
    }
    .hero .button {
        font-size:13px;
        padding-inline:16px;
    }
    .hero-secondary {
        font-size:11px;
        gap:8px;
    }
    .hero-secondary .icon {
        width:15px;
        flex-basis:15px;
    }
    .principles>div {
        gap:10px;
        font-size:11px;
    }
    .principles .icon {
        width:20px;
        height:20px;
        flex-basis:20px;
    }
    .section-heading {
        align-items:flex-start;
        flex-direction:column;
        gap:22px;
        margin-bottom:36px;
    }
    .section-heading>p {
        max-width:600px;
    }
    .care-card {
        padding-inline:18px;
    }
    .care-card h3 {
        font-size:25px;
    }
    .care-card>p {
        font-size:14px;
    }
    .card-link {
        font-size:11px;
        gap:8px;
    }
    .card-link .icon {
        width:17px;
        flex-basis:17px;
    }
    .about-band {
        padding-block:64px;
    }
    .about-band-inner {
        gap:45px;
    }
    .about-copy h2 {
        font-size:30px;
    }
    .about-copy p:not(.eyebrow) {
        font-size:16px;
    }
    .about-statement {
        font-size:42px;
    }
    .steps-grid {
        gap:30px;
    }
    .steps-grid h3 {
        font-size:22px;
    }
    .steps-grid p {
        font-size:14px;
    }
    .article-grid {
        gap:24px;
    }
    .article-image-link>img {
        height:185px;
    }
    .article-meta {
        font-size:9px;
        flex-direction:column;
        gap:3px;
        margin-top:18px;
    }
    .article-card :is(h2, h3) {
        font-size:23px;
    }
    .article-card>p {
        font-size:14px;
    }
    .contact-band-inner {
        grid-template-columns:1fr;
        gap:28px;
    }
    .contact-band-action {
        align-items:flex-start;
    }
    .contact-band-action small {
        text-align:left;
        max-width:500px;
    }
    .contact-band {
        padding-block:60px;
    }
    .footer-bottom {
        flex-wrap:wrap;
        gap:10px 20px;
    }
    .floating-contact {
        --floating-contact-gap:18px;
        right:18px;
    }
    .page-heading {
        padding-bottom:50px;
    }
    .breadcrumbs {
        margin-bottom:35px;
    }
    .page-intro {
        font-size:18px;
    }
    .service-grid {
        grid-template-columns:1.2fr .8fr;
        gap:35px;
    }
    .service-aside img {
        height:380px;
    }
    .prose h2 {
        font-size:27px;
    }
    .prose p {
        font-size:17px;
    }
    .faq-grid {
        grid-template-columns:1fr;
        gap:30px;
    }
    .faq-grid h2 br {
        display:none;
    }
    .about-page-grid {
        gap:35px;
    }
    .about-nameplate {
        padding:40px 25px;
        min-height:400px;
    }
    .about-nameplate h2 {
        font-size:42px;
    }
    .office-grid {
        gap:35px;
    }
    .location-panel {
        padding:28px;
    }
    .location-panel h2 {
        font-size:28px;
    }
    .location-panel .button {
        font-size:12px;
        padding-inline:15px;
    }
    .contact-grid {
        grid-template-columns:1fr;
        gap:45px;
    }
    .contact-options {
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:35px;
    }
    .primary-contact {
        border-bottom:0;
        padding:0;
    }
    .primary-contact h2 {
        font-size:30px;
    }
    .primary-contact .button {
        font-size:12px;
        padding-inline:16px;
    }
    .alternative-contacts {
        padding-top:3px;
    }
    .contact-form-panel {
        padding:35px;
        max-width:640px;
    }
    .article-cover img {
        height:380px;
    }
}

@media(max-width:600px) {
    .wordmark.brand-lockup {
        --brand-symbol-size:36px;
        column-gap:10px;
    }
    .site-header .header-inner {
        gap:12px;
    }
    .contact-band-copy {
        padding-left:0;
    }
    .contact-band-copy::before {
        position:static;
        --brand-symbol-size:40px;
        margin-bottom:24px;
    }
    .brand-heading {
        gap:12px;
    }
    .brand-heading::before {
        --brand-symbol-size:32px;
    }
    body {
        font-size:18px;
    }
    .container {
        width:calc(100% - 40px);
    }
    .preview-bar {
        font-size:9px;
        gap:10px;
        padding:6px 10px;
    }
    .preview-bar span+span {
        padding-left:10px;
    }
    .header-inner {
        min-height:83px;
    }
    .wordmark>span {
        font-size:23px;
    }
    .wordmark small {
        font-size:8px;
        letter-spacing:2.4px;
        margin-top:5px;
    }
    .hero {
        grid-template-columns:1fr;
        gap:34px;
        padding-top:32px;
        padding-bottom:35px;
    }
    .hero-copy {
        padding:5px 0 0;
    }
    .hero .eyebrow {
        font-size:11px;
        letter-spacing:1.8px;
        margin-bottom:22px;
    }
    .hero h1 {
        font-size:clamp(41px,10.5vw,58px);
        letter-spacing:-1.9px;
        line-height:1.23;
        margin-bottom:24px;
        max-width:490px;
    }
    .hero-description {
        font-size:17px;
        line-height:1.85;
        max-width:430px;
        margin-bottom:26px;
    }
    .hero .button {
        font-size:14px;
        min-height:56px;
        padding:16px 22px;
    }
    .hero-secondary {
        font-size:12px;
        margin-top:13px;
        gap:17px;
    }
    .hero-secondary .icon {
        width:19px;
        flex-basis:19px;
    }
    .hero-location {
        font-size:11px;
        margin-top:24px;
    }
    .hero-image-frame {
        margin-right:10px;
    }
    .hero-image-frame img {
        height:360px;
        object-position:center 48%;
        width:100%;
    }
    .hero-image-frame:after {
        inset:12px -10px -10px 12px;
    }
    .hero-figure figcaption {
        font-size:17px;
        margin-top:26px;
    }
    .hero-figure figcaption small {
        display:block;
        font-size:9px;
    }
    .principles {
        grid-template-columns:1fr;
        padding:10px 0;
    }
    .principles>div {
        justify-content:flex-start;
        padding:13px 12px;
        font-size:13px;
        gap:16px;
    }
    .principles>div+div {
        border-left:0;
        border-top:1px solid var(--line);
    }
    .principles .icon {
        width:21px;
        height:21px;
    }
    .eyebrow {
        font-size:10px;
        letter-spacing:1.7px;
        margin-bottom:18px;
    }
    h2 {
        font-size:33px;
        letter-spacing:-.8px;
    }
    .section-heading h2 {
        max-width:390px;
    }
    .section-heading {
        gap:20px;
        margin-bottom:32px;
    }
    .section-heading>p {
        font-size:16px;
    }
    .care-grid {
        grid-template-columns:1fr;
    }
    .care-card,.care-card:first-child,.care-card:last-child {
        padding:29px 8px;
    }
    .care-card+.care-card {
        border-left:0;
        border-top:1px solid var(--line);
    }
    .care-card-top {
        margin-bottom:18px;
    }
    .care-card h3 {
        font-size:29px;
        margin-bottom:14px;
    }
    .care-card h3 br {
        display:none;
    }
    .care-card>p {
        font-size:16px;
        max-width:100%;
    }
    .card-link {
        font-size:13px;
        padding-top:24px;
    }
    .care-card-top>.icon {
        width:26px;
        height:26px;
        flex-basis:26px;
    }
    .about-band-inner {
        grid-template-columns:1fr;
        gap:40px;
    }
    .about-statement {
        font-size:46px;
    }
    .about-statement .gold-line {
        margin-top:25px;
    }
    .about-copy h2 {
        font-size:33px;
    }
    .about-copy p:not(.eyebrow) {
        font-size:17px;
    }
    .steps-grid {
        grid-template-columns:1fr;
        gap:27px;
    }
    .steps-grid li {
        display:grid;
        grid-template-columns:44px 1fr;
        column-gap:20px;
        padding-top:22px;
    }
    .step-number {
        grid-row:span 2;
        font-size:30px;
        margin:0;
    }
    .steps-grid h3 {
        font-size:24px;
        margin:3px 0 13px;
    }
    .steps-grid p {
        font-size:16px;
    }
    .article-grid {
        grid-template-columns:1fr;
        gap:44px;
    }
    .article-image-link>img {
        height:260px;
    }
    .article-meta {
        flex-direction:row;
        gap:12px;
        font-size:10px;
        margin-top:21px;
    }
    .article-card :is(h2, h3) {
        font-size:29px;
        margin-bottom:16px;
    }
    .article-card>p {
        font-size:16px;
    }
    .demo-label {
        font-size:11px;
    }
    .contact-band h2 {
        font-size:34px;
    }
    .contact-band-inner {
        gap:28px;
    }
    .contact-band-action .button {
        font-size:14px;
    }
    .contact-band-action small {
        font-size:12px;
    }
    .footer-main {
        grid-template-columns:1fr 1fr;
        gap:32px 24px;
        padding-bottom:80px;
    }
    .footer-brand {
        grid-column:1/-1;
    }
    .footer-main h2 {
        font-size:11px;
        letter-spacing:1px;
    }
    .footer-main>div>a:not(.wordmark) {
        font-size:12px;
        margin:13px 0;
    }
    .footer-contact {
        grid-column:1/-1;
    }
    .footer-contact>a {
        font-size:22px!important;
    }
    .footer-contact small br {
        display:none;
    }
    .footer-bottom {
        flex-direction:column;
        font-size:10px;
        gap:8px;
    }
    .floating-contact {
        padding:12px 15px;
        --floating-contact-gap:15px;
        right:15px;
        font-size:11px;
    }
    .floating-contact .icon {
        width:22px;
        height:22px;
    }
    .breadcrumbs {
        font-size:11px;
        gap:10px;
        margin-bottom:35px;
    }
    .page-heading {
        padding-top:22px;
        padding-bottom:44px;
    }
    .page-heading h1 {
        font-size:40px;
        letter-spacing:-1.5px;
    }
    .page-heading h1 br {
        display:none;
    }
    .page-intro {
        font-size:18px;
        margin-top:23px;
    }
    .service-grid {
        grid-template-columns:1fr;
        gap:40px;
    }
    .service-aside img {
        height:auto;
    }
    .aside-contact {
        padding-top:22px;
        margin-top:22px;
    }
    .prose h2 {
        font-size:28px;
    }
    .prose p {
        font-size:18px;
        line-height:1.85;
    }
    .prose section+section {
        margin-top:33px;
    }
    .check-list li {
        font-size:17px;
    }
    .faq-list summary {
        font-size:16px;
        gap:20px;
    }
    .faq-list details>p {
        font-size:16px;
        padding-right:15px;
    }
    .about-page-grid {
        grid-template-columns:1fr;
        gap:36px;
    }
    .about-nameplate {
        min-height:0;
        padding:37px;
    }
    .about-nameplate h2 {
        font-size:46px;
    }
    .about-nameplate small br {
        display:none;
    }
    .about-nameplate small {
        margin-top:24px;
    }
    .office-grid {
        grid-template-columns:1fr;
        gap:40px;
    }
    .location-panel {
        padding:32px 25px;
    }
    .location-panel h2 {
        font-size:31px;
    }
    .location-panel .button {
        font-size:13px;
    }
    .article-toolbar {
        padding:21px 0;
        margin-bottom:35px;
        gap:20px;
    }
    .category-filters {
        gap:8px;
    }
    .category-filters a {
        font-size:12px;
        padding:9px 12px;
    }
    .search-form {
        width:100%;
    }
    .article-page {
        padding-top:22px;
    }
    .article-heading {
        text-align:left;
        margin-bottom:30px;
    }
    .article-heading h1 {
        font-size:40px;
        line-height:1.25;
        letter-spacing:-1.5px;
    }
    .article-heading .page-intro {
        font-size:18px;
    }
    .article-byline {
        justify-content:flex-start;
        font-size:12px;
        gap:20px;
        flex-wrap:wrap;
    }
    .article-cover img {
        height:300px;
    }
    .article-body {
        margin-top:35px;
    }
    .article-body .editorial-note {
        margin-bottom:32px;
    }
    .contact-options {
        grid-template-columns:1fr;
        gap:32px;
    }
    .primary-contact {
        padding-bottom:30px;
        border-bottom:1px solid var(--line);
    }
    .primary-contact h2 {
        font-size:34px;
    }
    .primary-contact .button {
        font-size:14px;
    }
    .primary-contact small {
        max-width:100%;
        font-size:12px;
    }
    .alternative-contacts {
        padding:0;
    }
    .contact-form-panel {
        padding:28px 20px;
        margin-inline:-4px;
    }
    .contact-form-panel>h2 {
        font-size:29px;
    }
    .contact-form-panel>p {
        font-size:16px;
    }
    .field label {
        font-size:15px;
    }
    .consent-field {
        font-size:13px;
    }
    .form-note {
        font-size:12px;
    }
    .error-page {
        padding-block:80px;
    }
    .error-page h1 {
        font-size:40px;
        letter-spacing:-1.5px;
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto;
    }
    *,*:before,*:after {
        transition:none!important;
        animation:none!important;
    }
    .button:hover {
        transform:none;
    }
}

@media print {
    .site-header,.preview-bar,.site-footer,.floating-contact,.contact-band,.contact-form-panel,.article-toolbar {
        display:none;
    }
    .container {
        width:100%;
        max-width:100%;
    }
    body {
        background:#fff;
        color:#000;
        font-size:12pt;
    }
    .article-cover img {
        height:240px;
    }
    .article-page,.article-body {
        max-width:100%;
    }
    .article-body section {
        break-inside:avoid;
    }
    a {
        text-decoration:underline;
    }
}


/* Allow grid items and long headings to shrink on narrow screens. */
.hero > *, .care-grid > *, .article-grid > *, .contact-grid > *, .office-grid > *, .steps-grid > *, .footer-main > * {
    min-width: 0;
}
h1, h2, h3 {
    overflow-wrap: break-word;
}

/* Professional registration and practical information share the approved palette. */
.professional-registration {
    display:block;
    font-family:var(--sans);
    font-size:14px;
    font-weight:600;
    line-height:1.6;
    letter-spacing:.4px;
    color:var(--muted);
}

.wordmark > .professional-registration,
.footer-brand .wordmark > .professional-registration {
    font-family:var(--sans);
    font-size:12px;
    line-height:1.5;
    letter-spacing:.4px;
    margin-top:4px;
}

.hero-copy > .professional-registration {
    margin:-12px 0 24px;
}

.page-heading > .professional-registration {
    margin-top:14px;
}

.about-copy > .professional-registration {
    margin:-10px 0 24px;
    color:#c9d4dc;
}

.about-nameplate > .professional-registration {
    margin-top:14px;
    color:#c9d4dc;
}

.visit-strip {
    background:var(--soft);
    border-bottom:1px solid var(--line);
}

.visit-strip-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:32px;
    padding-block:14px;
}

.visit-strip-inner > a,
.visit-strip-hours {
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
    font-size:12px;
    line-height:1.6;
}

.visit-strip-inner > a:hover {
    text-decoration:underline;
    text-underline-offset:4px;
}

.visit-strip-inner .icon {
    width:19px;
    height:19px;
    flex-basis:19px;
}

.visit-strip-district {
    color:var(--muted);
}

.visit-strip-hours {
    border-left:1px solid var(--gold);
    padding-left:28px;
}

.visit-strip-hours strong,
.visit-strip-hours span {
    display:block;
}

.visit-strip-hours strong {
    font-size:12px;
    font-weight:700;
}

.visit-strip-hours span {
    font-size:13px;
}

.location-section {
    border-bottom:1px solid var(--line);
}

.location-grid {
    display:grid;
    grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
    gap:64px;
    align-items:stretch;
}

.location-copy h2 {
    font-size:clamp(32px,3vw,42px);
    margin-bottom:26px;
}

.location-copy address {
    font-style:normal;
    font-size:17px;
    line-height:1.8;
    color:var(--muted);
}

.location-copy address strong,
.location-copy address span {
    display:block;
}

.location-copy address strong {
    font-size:19px;
    font-weight:600;
    color:var(--navy);
}

.office-hours {
    border-top:1px solid var(--gold);
    padding-top:24px;
    margin-top:26px;
}

.office-hours h3 {
    display:flex;
    align-items:center;
    gap:10px;
    font-family:var(--sans);
    font-size:15px;
    font-weight:700;
    letter-spacing:0;
    line-height:1.5;
    margin-bottom:12px;
}

.office-hours p {
    font-size:16px;
}

.office-hours strong {
    display:block;
    font-size:20px;
    font-weight:600;
    line-height:1.6;
}

.office-hours small,
.location-panel .office-hours small {
    display:block;
    margin-top:8px;
    font-size:12px;
    color:var(--muted);
}

.location-copy > .button {
    margin-top:25px;
}

.location-map {
    display:flex;
    flex-direction:column;
    min-width:0;
    background:var(--soft);
    border:1px solid var(--line);
}

.location-map-frame {
    position:relative;
    min-height:450px;
    flex:1;
}

.map-placeholder {
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:14px;
    padding:28px;
    text-align:center;
    font-size:14px;
    color:var(--muted);
}

.map-placeholder .icon {
    width:36px;
    height:36px;
    flex-basis:36px;
    color:var(--navy);
}

.location-map iframe {
    position:absolute;
    inset:0;
    display:block;
    width:100%;
    height:100%;
    border:0;
}

.map-external {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:17px 22px;
    font-size:13px;
    font-weight:600;
    border-top:1px solid var(--line);
}

.map-external:hover {
    text-decoration:underline;
    text-underline-offset:4px;
}

@media(max-width:1000px) {
    .visit-strip-inner {
        gap:20px;
    }
    .visit-strip-hours {
        padding-left:20px;
    }
    .visit-strip-district {
        display:block;
    }
    .location-grid {
        gap:35px;
        grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    }
}

@media(max-width:800px) {
    .location-grid {
        grid-template-columns:1fr;
        gap:36px;
    }
    .location-map-frame {
        min-height:380px;
    }
}

@media(max-width:600px) {
    .header-inner {
        min-height:102px;
    }
    .visit-strip-inner {
        flex-direction:column;
        align-items:stretch;
        gap:12px;
        padding-block:13px;
    }
    .visit-strip-hours {
        border-left:0;
        padding:12px 0 0;
        border-top:1px solid var(--line);
    }
    .visit-strip-district {
        display:inline;
    }
    .visit-strip-inner > a > .icon:last-child {
        margin-left:auto;
    }
    .location-copy address strong {
        font-size:18px;
    }
    .office-hours strong {
        font-size:18px;
    }
    .location-map-frame {
        min-height:340px;
    }
}

@media print {
    .visit-strip,.location-map {
        display:none;
    }
    .location-grid {
        display:block;
    }
    .location-section {
        break-inside:avoid;
    }
}


/* Professional photography and the visual home. */
.page-inicio h1, .page-inicio h2, .page-inicio h3 {
    text-wrap:balance;
}

.page-inicio .hero {
    grid-template-columns:.96fr 1.04fr;
    gap:clamp(28px,2.5vw,36px);
    padding-block:clamp(20px,3svh,32px);
}

.page-inicio .header-inner {
    min-height:88px;
}

.page-inicio .hero-copy {
    padding:0;
}

.page-inicio .hero h1 {
    font-size:clamp(36px,3.8vw,54px);
    letter-spacing:-.03em;
    max-width:14ch;
    margin-bottom:16px;
}

.hero-intro > .professional-registration {
    margin:0 0 18px;
}

.page-inicio .hero-description {
    font-size:17px;
    line-height:1.65;
    margin-bottom:22px;
}

.page-inicio .hero .button {
    min-height:52px;
    padding:14px 22px;
}

.page-inicio .hero-secondary {
    margin-top:8px;
    padding-block:5px;
    min-height:32px;
}

.page-inicio .hero-location {
    margin-top:18px;
}

.page-inicio .principles {
    padding-block:16px;
}

.page-inicio .hero-figure {
    --hero-portrait-height:clamp(340px,calc(100svh - 250px),560px);
    width:min(100%,calc(var(--hero-portrait-height) * 6 / 7));
    justify-self:start;
}

.page-inicio .hero-image-frame {
    margin:0;
}

.page-inicio .hero-image-frame:after {
    content:none;
}

.page-inicio .hero-image-frame img {
    height:auto;
    aspect-ratio:6 / 7;
    object-fit:cover;
    object-position:50% 52%;
    border-radius:2px;
}

.page-inicio .hero-figure figcaption {
    justify-content:flex-end;
    margin-top:12px;
    font-size:17px;
}

.page-inicio .care-card {
    padding:0 0 28px;
    border-left:0;
    border-top:0;
}

.about-band-inner {
    grid-template-columns:.9fr 1fr;
    gap:clamp(40px,7vw,104px);
}

.about-portrait img {
    width:100%;
    height:550px;
    object-fit:cover;
    object-position:50% 24%;
}

.about-copy .about-signature {
    font-family:var(--serif);
    font-size:24px;
    line-height:1.5;
    color:var(--ice);
    border-top:1px solid #4a5e6e;
    padding-top:30px;
    margin:36px 0 0;
}

.about-signature em {
    color:#d2bf99;
}

.approach-layout {
    display:grid;
    grid-template-columns:.9fr 1fr;
    align-items:center;
    gap:clamp(40px,7vw,104px);
}

.approach-photo img {
    width:100%;
    height:550px;
    object-fit:cover;
    object-position:50% 30%;
}

.approach-photo figcaption {
    font-family:var(--serif);
    font-style:italic;
    font-size:18px;
    margin-top:20px;
}

.approach-layout .steps-grid {
    grid-template-columns:1fr;
    gap:24px;
    margin-bottom:28px;
}

.approach-layout .steps-grid li {
    display:grid;
    grid-template-columns:40px minmax(0,1fr);
    gap:8px 22px;
    padding-top:22px;
}

.approach-layout .step-number {
    grid-row:span 2;
    font-size:28px;
    margin:0;
}

.approach-layout .steps-grid h3 {
    margin:0;
    font-size:25px;
}

.approach-layout .steps-grid p {
    font-size:16px;
}

.doctor-profile>img {
    width:100%;
    height:auto;
    aspect-ratio:4 / 5;
    object-fit:cover;
    object-position:50% 24%;
}

.doctor-profile .about-nameplate {
    min-height:0;
    padding:30px;
}

.doctor-profile .about-nameplate h2 {
    font-size:30px;
}

.doctor-profile .about-nameplate small {
    margin-top:16px;
}

.page-consulta-geriatrica .service-aside img {
    object-position:50% 30%;
}

@media(max-width:1000px) {
    .page-inicio .hero { gap:28px; }
    .page-inicio .care-grid { gap:24px; }
    .about-portrait img, .approach-photo img { height:500px; }
    .approach-layout { gap:40px; }
}

@media(max-width:800px) {
    .page-inicio .hero { grid-template-columns:1fr 1fr; }
    .page-inicio .hero h1 { font-size:36px; }
    .page-inicio .hero-figure figcaption { font-size:15px; }
    .page-inicio .care-grid { gap:20px; }
    .care-image { margin-bottom:20px; }
    .about-band-inner { gap:36px; }
    .about-copy .about-signature { font-size:21px; }
    .approach-layout { grid-template-columns:.85fr 1fr; gap:30px; align-items:start; }
    .approach-layout .steps-grid li { grid-template-columns:28px minmax(0,1fr); gap:8px 14px; }
    .approach-layout .steps-grid h3 { font-size:22px; }
    .approach-layout .text-link { font-size:13px; }
}

@media(max-width:600px) {
    .page-inicio .header-inner { min-height:80px; }
    .page-inicio .hero {
        grid-template-columns:1.1fr .9fr;
        grid-template-areas:"intro portrait" "description description" "actions actions";
        gap:16px;
        padding-block:14px;
    }
    .page-inicio .hero-copy { display:contents; }
    .page-inicio .hero-intro { grid-area:intro; }
    .page-inicio .hero-intro > .professional-registration { margin:12px 0 0; font-size:12px; }
    .page-inicio .hero h1 { font-size:clamp(28px,8.2vw,38px); max-width:none; margin:0; line-height:1.18; text-wrap:initial; }
    .page-inicio .hero-description { grid-area:description; margin:0; max-width:none; font-size:16px; line-height:1.6; }
    .page-inicio .hero-actions { grid-area:actions; }
    .page-inicio .hero-figure { grid-area:portrait; --hero-portrait-height:clamp(160px,calc(100svh - 420px),250px); width:min(100%,calc(var(--hero-portrait-height) * 2 / 3)); justify-self:center; }
    .page-inicio .hero-image-frame img { aspect-ratio:2 / 3; object-fit:contain; object-position:center; }
    .page-inicio .hero-location { display:none; }
    .page-inicio .hero-figure figcaption { font-size:12px; line-height:1.5; margin-top:8px; text-align:right; }
    .page-inicio .hero-figure figcaption .gold-line { display:none; }
    .page-inicio .principles { grid-template-columns:repeat(3,minmax(0,1fr)); padding-block:14px; }
    .page-inicio .principles>div { flex-direction:column; gap:9px; padding:0 6px; text-align:center; font-size:12px; line-height:1.5; }
    .page-inicio .principles>div+div { border-top:0; border-left:1px solid var(--line); }
    .page-inicio .care-grid { gap:32px; }
    .page-inicio .care-card h3 { font-size:29px; }
    .care-image img { aspect-ratio:3 / 2; }
    .about-band-inner, .approach-layout { grid-template-columns:1fr; gap:32px; }
    .about-portrait img { height:430px; object-position:50% 22%; }
    .about-copy .about-signature { font-size:23px; }
    .approach-photo img { height:410px; object-position:50% 28%; }
    .approach-photo figcaption { font-size:16px; }
    .approach-layout .steps-grid li { grid-template-columns:32px minmax(0,1fr); gap:10px 18px; }
    .approach-layout .steps-grid h3 { font-size:24px; }
    .doctor-profile .about-nameplate { padding:26px; }
    .doctor-profile .about-nameplate h2 { font-size:28px; }
    .floating-contact { width:52px; height:52px; padding:0; justify-content:center; }
    .floating-contact span { display:none; }
}

/* Keep the complete opening visible on shorter laptop windows without clipping content. */
@media(min-width:601px) and (max-height:680px) {
    .page-inicio .header-inner { min-height:82px; }
    .page-inicio .hero { padding-block:12px; }
    .page-inicio .hero h1 { font-size:clamp(32px,3.2vw,44px); margin-bottom:12px; }
    .page-inicio .hero-intro > .professional-registration { margin-bottom:12px; }
    .page-inicio .hero-description { font-size:16px; line-height:1.55; margin-bottom:16px; }
    .page-inicio .hero .button { min-height:48px; padding-block:12px; }
    .page-inicio .hero-location { margin-top:12px; }
    .page-inicio .hero-figure { --hero-portrait-height:clamp(240px,calc(100svh - 230px),400px); }
    .page-inicio .hero-figure figcaption { margin-top:8px; font-size:15px; }
    .page-inicio .principles { padding-block:12px; }
}

@media(prefers-reduced-motion:reduce) {
    .care-image img { transition:none; }
    .care-card:hover .care-image img { transform:none; }
}
