/* Shared public typography, loaded after the legacy page styles. */
@font-face {
    font-family: "Plus Jakarta Sans";
    src: url("./fonts/PlusJakartaSans-Variable.ttf") format("truetype");
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
}
:root {
    --vesta-font: "Plus Jakarta Sans", sans-serif;
    --vesta-title-size: clamp(2rem, 3.7vw, 3.5rem);
    --vesta-heading-size: clamp(1.65rem, 2.7vw, 2.5rem);
    --vesta-subheading-size: clamp(1.2rem, 1.7vw, 1.5rem);
    --vesta-body-size: 1rem;
    --vesta-small-size: .875rem;
    --vesta-label-size: .75rem;
    --vesta-body-leading: 1.7;
}
body[data-page] {
    font-family: var(--vesta-font);
    font-size: 16px;
    line-height: 1.7;
    letter-spacing: 0;
    word-spacing: normal;
    -webkit-font-smoothing: antialiased;
}
/* Some older sections set Manrope on individual labels and headings. */
body[data-page] :where(h1,h2,h3,h4,h5,h6,p,a,span,strong,em,label,button,input,select,textarea,summary,legend,blockquote,li,dt,dd) {
    font-family: var(--vesta-font) !important;
}
body[data-page] :is(h1,h2,h3,h4,h5,h6) {
    font-weight: 500 !important;
    word-spacing: normal !important;
    text-wrap: balance;
    overflow-wrap: break-word;
}
body[data-page] h1 {
    font-size: var(--vesta-title-size) !important;
    line-height: 1.16 !important;
    letter-spacing: -.025em !important;
}
body[data-page] h2 {
    font-size: var(--vesta-heading-size) !important;
    line-height: 1.22 !important;
    letter-spacing: -.02em !important;
}
body[data-page] h3 {
    font-size: var(--vesta-subheading-size) !important;
    line-height: 1.3 !important;
    letter-spacing: -.012em !important;
}
body[data-page] :is(h4,h5,h6) {
    font-size: 1.05rem !important;
    line-height: 1.4 !important;
    letter-spacing: 0 !important;
}
body[data-page] :is(p,li,blockquote) {
    letter-spacing: 0 !important;
    word-spacing: normal !important;
    line-height: var(--vesta-body-leading);
}
body[data-page] main p {
    font-size: var(--vesta-body-size) !important;
    line-height: var(--vesta-body-leading) !important;
    font-style: normal;
}
body[data-page] :is(h1,h2,h3) em {
    font-style: normal;
    font-weight: inherit;
    letter-spacing: inherit;
}
body[data-page] main :is(.eyebrow,.vh-kicker,.story-kicker,.section-tag,.collection-kicker,.vs-kicker,.theatre-eyebrow,.warranty-overline) {
    font-size: var(--vesta-label-size) !important;
    font-weight: 600 !important;
    letter-spacing: .12em !important;
    line-height: 1.6 !important;
    word-spacing: normal;
    text-transform: uppercase;
    margin: 0 0 1rem;
}
body[data-page] main :is(.fine-print,.field-hint,.form-status,.feature-illustration-note,.control-photo-note,.collective-benefit-note,.article-byline,.room-footnote,.attached-plan),
body[data-page] main :is(.contact-meta,.feature-photo-copy details) p {
    font-size: var(--vesta-small-size) !important;
}
body[data-page] main .room-device-status {
    font-size: var(--vesta-label-size) !important;
    line-height: 1.5 !important;
}
body[data-page] main :is(.lead,.vs-lead,.vs-hero-line,.vs-hero-detail) {
    font-size: var(--vesta-body-size) !important;
    line-height: var(--vesta-body-leading) !important;
    letter-spacing: 0;
    font-style: normal;
}
body[data-page] :is(.statement,.control-word) {
    font-size: var(--vesta-heading-size) !important;
    line-height: 1.25 !important;
    letter-spacing: -.02em !important;
}
body[data-page] :is(.journal-card,.journal-grid,.article-body,.feature-photo-card,.planner,.planner-grid) h2 {
    font-size: var(--vesta-subheading-size) !important;
    line-height: 1.3 !important;
    letter-spacing: -.015em !important;
}
body[data-page] .article-body :is(p,li) {
    font-size: var(--vesta-body-size) !important;
    line-height: var(--vesta-body-leading) !important;
}
body[data-page] .room-caption h3 {
    font-size: var(--vesta-heading-size) !important;
    line-height: 1.22 !important;
    letter-spacing: -.02em !important;
}
body[data-page] :is(.button,.vh-button,.vs-button,.primary,.secondary,.nav-cta,.links a,.text-link,.vh-link,.vs-link,.lab-cta) {
    font-size: var(--vesta-small-size);
    font-weight: 500;
    letter-spacing: .01em;
    word-spacing: normal;
    line-height: 1.5;
}
body[data-page] :is(input,select,textarea) {
    font-size: 1rem;
    letter-spacing: 0;
    word-spacing: normal;
}
body[data-page] :is(header,footer) .brand {
    letter-spacing: -.025em;
    font-weight: 600;
}
@media (max-width: 600px) {
    :root {
        --vesta-title-size: clamp(1.875rem, 7.5vw, 2.5rem);
        --vesta-heading-size: clamp(1.5rem, 6vw, 1.875rem);
        --vesta-subheading-size: 1.2rem;
    }
    body[data-page] .room-heading h2 { max-width: 22ch; }
}
