/* heading-display: matches React heading-display class */
.heading-display {
    font-family: var(--font-serif);
    font-size: clamp(2.25rem, 5vw, 3.75rem);
    font-weight: 500;
    letter-spacing: -0.02em;
    line-height: 1.1;
}

/* heading-section: matches React heading-section class */
.heading-section {
    font-family: var(--font-serif);
    font-size: clamp(1.875rem, 3vw, 2.25rem);
    font-weight: 500;
    letter-spacing: -0.02em;
    line-height: 1.2;
}

/* heading-card: matches React heading-card class */
.heading-card {
    font-family: var(--font-serif);
    font-size: clamp(1.25rem, 2vw, 1.5rem);
    font-weight: 500;
    line-height: 1.3;
}

/* text-body: matches React text-body class */
.text-body {
    font-family: var(--font-sans);
    font-size: clamp(1rem, 1.2vw, 1.125rem);
    line-height: 1.75;
    color: var(--color-muted-fg);
}

/* text-label: matches React text-label class */
.text-label {
    font-family: var(--font-sans);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    font-weight: 500;
    color: var(--color-muted-fg);
}

/* nav-link: matches React nav-link class */
.nav-link {
    font-family: var(--font-sans);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    font-weight: 500;
    transition: opacity 0.3s ease;
}

.nav-link:hover {
    opacity: 0.7;
}

/* text-balance utility */
.text-balance {
    text-wrap: balance;
}

/* Prose styles for wysiwyg output */
.room-detail__desc p,
.about-section__body p {
    font-family: var(--font-sans);
    font-size: 1.0625rem;
    line-height: 1.8;
    color: var(--color-muted-fg);
    margin-bottom: 1.25rem;
}

.room-detail__desc p:last-child,
.about-section__body p:last-child {
    margin-bottom: 0;
}

.room-detail__desc h2,
.room-detail__desc h3,
.about-section__body h2,
.about-section__body h3 {
    font-family: var(--font-serif);
    color: var(--color-fg);
    margin-top: 2rem;
    margin-bottom: 0.75rem;
}
