/* Version 30 typography and SarDev scale adjustments.
   Percentages are measured from the Version 29 computed sizes. */

/* Shared header: preserve the existing header and SarDev pill heights. */
.site-nav-shell {
  min-height: 68px;
}

.brand-copy strong {
  font-size: 22.75px;
  line-height: 1.1;
}

.brand-copy small {
  font-size: 12.25px;
  line-height: 1;
}

.site-nav a {
  font-size: .935rem;
}

.sardev-link {
  box-sizing: border-box;
  height: 39px;
  min-height: 39px;
  max-height: 39px;
  overflow: visible;
  font-size: 12.25px;
  line-height: 1;
}

.sardev-logo-wrap {
  width: 47.25px;
  height: 47.25px;
  margin-block: -5.125px;
}

/* Hero eyebrow and identity labels. */
.home-hero .eyebrow,
.about-heading .eyebrow,
.profile-hero .profile-index {
  font-size: 17.5px;
}

.hero-identity-label,
.portfolio-hero .portfolio-eyebrow {
  font-size: 15.75px;
}

.intent-hero .intent-kicker,
.photo-case-hero .photo-case-kicker {
  font-size: 17.5px;
}

.spatial-intro .spatial-kicker {
  font-size: 1.365rem;
}

/* Every public page hero heading is 10 percent smaller than Version 29. */
#home-title {
  font-size: clamp(45px, 5.94vw, 84.6px);
}

.profile-hero h1,
.design-evaluation-page .profile-hero h2 {
  font-size: clamp(43.2px, 5.58vw, 75.6px);
}

.portfolio-hero h1,
.portfolio-hero h2 {
  font-size: clamp(39.6px, 5.22vw, 68.4px);
}

.portfolio-work-heading h1,
.portfolio-work-heading h2 {
  font-size: clamp(27.9px, 3.33vw, 41.4px);
}

.about-heading h1 {
  font-size: clamp(2.43rem, 5.4vw, 5.04rem);
}

.intent-hero h1 {
  font-size: clamp(43.2px, 6.84vw, 104.4px);
}

.photo-case-hero h1 {
  font-size: clamp(45px, 5.76vw, 82.8px);
}

.spatial-intro h1 {
  font-size: clamp(1.8rem, 3.6vw, 3.105rem);
}

/* Button text is 25 percent larger; every existing control height is fixed. */
.button,
.portfolio-button,
.about-button,
.intent-button,
.photo-case-button,
.spatial-button,
.spatial-toolbar button,
.spatial-history-button {
  box-sizing: border-box;
  white-space: normal;
  overflow-wrap: anywhere;
  text-align: center;
}

.button,
.portfolio-button,
.about-button,
.photo-case-button {
  height: 48px;
  min-height: 48px;
  max-height: 48px;
  padding-block: 4px;
  line-height: 1.1;
}

.button,
.portfolio-button,
.photo-case-button {
  font-size: 12.5px;
}

.about-button {
  font-size: 1.05rem;
}

.about-button-primary {
  font-size: .9rem;
}

.intent-button {
  height: 50px;
  min-height: 50px;
  max-height: 50px;
  padding-block: 4px;
  font-size: 12.5px;
  line-height: 1.1;
}

.intent-controls button {
  height: 37px;
  min-height: 37px;
  max-height: 37px;
  padding-block: 3px;
  font-size: 11.25px;
  line-height: 1.05;
  white-space: normal;
}

.photo-lab-summary-error button {
  font-size: 125%;
}

.spatial-toolbar button,
.spatial-button {
  height: 44px;
  min-height: 44px;
  max-height: 44px;
  font-size: 20px;
  line-height: 1.05;
}

.spatial-history-button {
  height: 46px;
  min-height: 46px;
  max-height: 46px;
  font-size: 20px;
  line-height: 1.05;
}

.spatial-modal-close {
  font-size: 40px;
}

/* Footer text is doubled; spacing remains responsive. */
.site-footer {
  font-size: 18px;
  line-height: 1.25;
}

/* Standalone geospatial case-study page equivalents. */
.portfolio-utility {
  min-height: 61px;
  font-size: 11px;
}

.portfolio-utility-brand span {
  font-size: 19.25px;
}

.portfolio-utility-links > a:not(.portfolio-utility-sardev) {
  font-size: 9.35px;
}

.portfolio-utility-sardev {
  box-sizing: border-box;
  height: 44px;
  min-height: 44px;
  max-height: 44px;
  overflow: visible;
  font-size: 19.25px;
  line-height: 1;
}

.portfolio-utility-sardev video {
  width: 56px;
  height: 56px;
  margin-block: -6px;
}

@media (min-width: 641px) {
  .portfolio-utility {
    box-sizing: border-box;
    height: 65px;
    min-height: 65px;
    max-height: 65px;
    gap: 10px;
    padding-inline: 16px;
  }

  .portfolio-utility-brand,
  .portfolio-utility-links > a {
    flex: none;
  }

  .portfolio-utility-links {
    min-width: 0;
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 8px;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .portfolio-utility-links::-webkit-scrollbar {
    display: none;
  }
}

#dashboard-title {
  font-size: 1.125rem;
}

#modeToggle {
  height: 28px;
  min-height: 28px;
  max-height: 28px;
}

#legacyModeLabel,
#enterpriseModeLabel {
  height: 66px;
  min-height: 66px;
  max-height: 66px;
  overflow: hidden;
}

#spikeButton,
#boundsButton,
#exportButton {
  height: 44px;
  min-height: 44px;
  max-height: 44px;
  overflow: hidden;
}

#legacyModeLabel .text-sm,
#enterpriseModeLabel .text-sm,
#spikeButton .text-sm,
#boundsButton .text-sm,
#exportButton .text-sm {
  font-size: 1.09375rem;
}

#legacyModeLabel .text-xs,
#enterpriseModeLabel .text-xs,
#spikeButton .text-xs,
#boundsButton .text-xs,
#exportButton .text-xs {
  font-size: .9375rem;
}

@media (min-width: 640px) {
  #dashboard-title {
    font-size: 1.35rem;
  }
}

@media (min-width: 1280px) {
  #dashboard-title {
    font-size: 1.6875rem;
  }
}

@media (max-width: 780px) {
  #home-title {
    font-size: clamp(50.4px, 14.4vw, 68.4px);
  }

  .profile-hero h1,
  .design-evaluation-page .profile-hero h2 {
    font-size: clamp(39.6px, 10.8vw, 55.8px);
  }
}

@media (max-width: 1100px) {
  .site-nav-shell {
    min-height: 101.6px;
  }
}

@media (max-width: 620px) {
  .about-heading h1 {
    font-size: clamp(2.16rem, 11.7vw, 3.42rem);
  }

  .portfolio-hero h1,
  .portfolio-hero h2 {
    font-size: 41.4px;
  }

  .intent-hero h1 {
    font-size: clamp(43.2px, 13.5vw, 63px);
  }

  .photo-case-hero h1 {
    font-size: clamp(38.7px, 12.6vw, 57.6px);
  }
}

@media (max-width: 640px) {
  .portfolio-utility {
    box-sizing: border-box;
    height: 176.6px;
    min-height: 176.6px;
    max-height: 176.6px;
  }

  .portfolio-utility-links > a:not(.portfolio-utility-sardev) {
    font-size: 7.65px;
  }
}
