/* Space Coast Co-Hosts — centralized responsive typography + icon scale */
/* All text/icon font sizing lives here. Layout/component CSS must not set font-size. */

:root {
  --type-micro: clamp(11px, calc(10.419px + 0.161vw), 13px);
  --type-caption: clamp(12px, calc(11.419px + 0.161vw), 14px);
  --type-small: clamp(13px, calc(12.129px + 0.242vw), 16px);
  --type-control: clamp(14px, calc(13.129px + 0.242vw), 17px);
  --type-base: clamp(16px, calc(15.129px + 0.242vw), 19px);
  --type-copy: clamp(16px, calc(14.548px + 0.403vw), 21px);
  --type-lead: clamp(18px, calc(16.548px + 0.403vw), 23px);
  --type-subhead: clamp(20px, calc(18.548px + 0.403vw), 25px);
  --type-card: clamp(22px, calc(20.258px + 0.484vw), 28px);
  --type-card-lg: clamp(24px, calc(22.258px + 0.484vw), 30px);
  --type-title-sm: clamp(26px, calc(23.097px + 0.806vw), 36px);
  --type-stat: clamp(30px, calc(27.677px + 0.645vw), 38px);
  --type-stat-md: clamp(34px, calc(31.097px + 0.806vw), 44px);
  --type-section: clamp(36px, calc(29.613px + 1.774vw), 58px);
  --type-hero: clamp(42px, calc(31.548px + 2.903vw), 78px);
  --icon-sm: clamp(18px, calc(16.839px + 0.323vw), 22px);
  --icon-md: clamp(20px, calc(17.968px + 0.565vw), 27px);
  --icon-lg: clamp(24px, calc(21.677px + 0.645vw), 32px);
  --icon-xl: clamp(26px, calc(23.097px + 0.806vw), 36px);
}

/* Core hierarchy */
body,
.body-copy,
.description,
.service-text,
.stays-copy { font-size: var(--type-copy); }

.heading--hero { font-size: var(--type-hero); }
.heading--section { font-size: var(--type-section); }
.heading--card { font-size: clamp(21px, calc(19.258px + 0.484vw), 27px); }
.heading--process { font-size: clamp(19px, calc(17.548px + 0.403vw), 24px); }
.heading--property { font-size: clamp(20px, calc(18.839px + 0.323vw), 24px); }
.heading--footer { font-size: clamp(18px, calc(17.129px + 0.242vw), 21px); }
.heading--calendar { font-size: clamp(15px, calc(14.419px + 0.161vw), 17px); }

/* Micro labels */
.map-service-pills span,
.eyebrow,
.search-field label,
.date-range-trigger__caption,
.calendar-weekdays span,
.article-share > span,
.page--services .service-redesign-media__eyebrow,
.page--services .service-redesign-media__mini-grid span,
.page--services .service-redesign-number,
.page--services .service-redesign-process__steps article > span,
.page--contact .contact-clean-eyebrow,
.page--contact .contact-clean-cta small,
.page--contact .contact-clean-panel__eyebrow,
.page--contact .contact-clean-item__body small,
.page--contact .contact-clean-panel__foot { font-size: var(--type-micro); }

/* Captions / secondary labels */
.footer-bottom,
.eyebrow .spark,
.contact-label,
.guest-picker-copy span,
.stepper-btn i,
.calendar-toolbar__copy span,
.calendar-selection-summary,
.review-card__author small,
.page--services .service-redesign-trust span,
.page--services .service-redesign-card__link,
.page--contact .contact-clean-note,
.page--contact .contact-clean-panel__location,
.page--contact .contact-clean-item__arrow { font-size: var(--type-caption); }

/* Small supporting copy */
.section-kicker,
.about-kicker,
.services-kicker,
.properties-kicker,
.footer-social a,
.service-number,
.potential-num,
.property-meta,
.pet-choice-btn,
.calendar-day,
.calendar-clear,
.calendar-done,
.review-modal__meta,
.page--services .service-redesign-process__intro a,
.blog-meta,
.article-meta,
.page--contact .contact-clean-cta > i,
.page--contact .contact-clean-item__body strong { font-size: var(--type-small); }

/* Controls and compact body copy */
.about-highlight span,
.purpose-card__number,
.review-card__stars,
.search-field select,
.search-field input,
.search-dropdown-trigger,
.search-option,
.search-option > i,
.guest-picker-copy strong,
#guestNumber,
.date-range-trigger__segment strong,
.page--services .service-redesign-text-link,
.page--services .service-redesign-card p,
.page--services .service-redesign-process__steps p,
.blog-filter__item,
.blog-read-link,
.navigation.pagination .page-numbers,
.article-breadcrumb a,
.page--contact .contact-clean-description,
.page--contact .contact-clean-cta > span { font-size: var(--type-control); }

/* Standard UI emphasis */
.properties-more__link,
.page--services .service-redesign-primary,
.page--services .service-redesign-trust i { font-size: var(--type-base); }

/* Header/actions */
.nav,
.top-cta { font-size: clamp(15px, calc(14.419px + 0.161vw), 17px); }
.primary,
.revenue-cta__button,
.stays-btn { font-size: clamp(17px, calc(16.129px + 0.242vw), 20px); }

/* Footer */
.footer-tagline { font-size: clamp(22px, calc(20.548px + 0.403vw), 27px); }
.footer-social i { font-size: var(--icon-sm); }
.footer-list li,
.footer-list a,
.footer-list span { font-size: clamp(15px, calc(14.419px + 0.161vw), 17px); }

/* Homepage exceptions + icons */
.eyebrow .palm { font-size: clamp(15px, calc(14.419px + 0.161vw), 17px); }
.contact-link { font-size: var(--type-control); }
.process-point__icon,
.calendar-toolbar__copy strong { font-size: var(--type-subhead); }
.search-field > i,
.search-btn i,
.date-range-trigger__arrow,
.menu-btn i,
.primary i,
.revenue-cta__button i,
.stays-btn i { font-size: var(--icon-sm); }
.search-dropdown-trigger > i,
.date-range-trigger__chevron { font-size: var(--type-base); }
.properties-more__link i { font-size: var(--icon-sm); }
.potential-item p { font-size: clamp(17px, calc(16.129px + 0.242vw), 20px); }

@media (min-width: 641px) {
  .process-point__title { font-size: 18px; }
}

/* About exceptions */
.about-highlight__icon { font-size: var(--icon-md); }
.service-icon,
.contact-icon,
.purpose-card__icon,
.review-modal__close i,
.faq-question__icon,
.page--services .service-redesign-icon,
.page--contact .contact-clean-item__icon { font-size: var(--icon-md); }
.reviews-slider__arrow i { font-size: var(--icon-sm); }
.about-highlight strong,
.review-card__author span { font-size: clamp(16px, calc(15.129px + 0.242vw), 19px); }
.purpose-card .heading--card,
.review-modal .heading--card { font-size: var(--type-card-lg); }
.purpose-card p,
.review-card p { font-size: clamp(17px, calc(16.129px + 0.242vw), 20px); }
.review-modal__copy { font-size: clamp(18px, calc(17.129px + 0.242vw), 21px); }

/* Services exceptions */
.faq-question,
.faq-answer p { font-size: clamp(17px, calc(16.129px + 0.242vw), 20px); }
.page--services .service-redesign-title { font-size: clamp(44px, calc(35.29px + 2.419vw), 74px); }
.page--services .service-redesign-lead { font-size: var(--type-lead); }
.page--services .service-redesign-copy,
.page--services .service-redesign-services__head > p { font-size: clamp(16px, calc(14.839px + 0.323vw), 20px); }
.page--services .service-redesign-media__card strong,
.blog-card__title { font-size: var(--type-card); }
.page--services .service-redesign-card h3 { font-size: clamp(20px, calc(18.258px + 0.484vw), 26px); }
.page--services .service-redesign-process__intro h2 { font-size: var(--type-section); }
.page--services .service-redesign-process__steps h3 { font-size: clamp(24px, calc(22.258px + 0.484vw), 30px); }
.page--services .partners-title { font-size: clamp(36px, calc(32.516px + 0.968vw), 48px); }
.page--services .faq-head .heading--section { font-size: clamp(36px, calc(31.935px + 1.129vw), 50px); }

/* Blog/article exceptions */
.blog-featured__title { font-size: clamp(32px, calc(26.194px + 1.613vw), 52px); }
.blog-featured__button i,
.blog-read-link i,
.article-breadcrumb i { font-size: var(--icon-sm); }
.article-title.heading--section { font-size: clamp(36px, calc(26.71px + 2.581vw), 68px); }
.article-deck,
.article-body { font-size: clamp(18px, calc(16.548px + 0.403vw), 23px); }
.article-body > h2 { font-size: clamp(32px, calc(27.355px + 1.29vw), 48px); }
.article-body > h3 { font-size: clamp(22px, calc(19.677px + 0.645vw), 30px); }
.article-body blockquote { font-size: clamp(22px, calc(19.677px + 0.645vw), 30px); }
.article-cta p { font-size: clamp(16px, calc(15.129px + 0.242vw), 19px); }

/* Contact exceptions */
.page--contact .contact-clean-title { font-size: clamp(42px, calc(32.71px + 2.581vw), 74px); }
.page--contact .contact-clean-lead { font-size: clamp(17px, calc(15.839px + 0.323vw), 21px); }
.page--contact .contact-clean-panel__head h2 { font-size: var(--type-title-sm); }

/* Mobile off-canvas navigation */
@media (max-width: 991px) {
  .nav-mobile-close i { font-size: var(--type-card); }
  .nav > a:not(.nav-mobile-brand):not(.nav-mobile-cta),
  .nav-mobile-cta { font-size: var(--type-base); }
  .nav-link-arrow { font-size: var(--icon-sm); }
  .nav-mobile-cta i { font-size: var(--icon-sm); }
  .nav--mobile .nav-submenu__link { font-size: var(--type-control); }
}
