/* Home page:  fixed random photograph and square inset shade. */
body:is([data-page="home"], [data-page="about"], [data-page="portfolio"], [data-page="contact"], [data-page="model"], [data-page="terms_of_use"], [data-page="privacy_policy"], [data-page="2257_compliance"]) { background: #000; }
#home-background { position: fixed; inset: 0; width: 100vw; z-index: 0; background-size: cover; background-repeat: no-repeat; pointer-events: none; }
#home-background::after { content: ""; position: absolute; inset: var(--site-overlay-inset, 5vmin); background: rgba(0, 0, 0, .45); }
body:is([data-page="home"], [data-page="about"], [data-page="portfolio"], [data-page="contact"], [data-page="model"], [data-page="terms_of_use"], [data-page="privacy_policy"], [data-page="2257_compliance"]) #container { position: relative; z-index: 1; width: 100%; height: auto; min-height: 100vh; min-height: 100dvh; margin: 0; }
#home-intro { --home-subtitle-size: clamp(20px, 2.5vmin, 28px); display: grid; place-items: center; min-height: 100vh; min-height: 100dvh; box-sizing: border-box; padding: max(24px, 7vmin); color: #fff; text-align: center; }
#home-intro .intro-content { width: min(100%, 900px); }
#home-intro .title { font-family: inherit; margin: 0; font-size: clamp(28px, 8vmin, 88px); font-weight: 400; line-height: 1.1; letter-spacing: .08em; }
#home-intro hr { width: 85%; margin: clamp(12px, 2.5vmin, 28px) auto; border: 0; border-top: 1px solid rgba(255,255,255,.7); }
#home-intro #textblock { margin-top: clamp(18px, 4vmin, 40px); }
#home-intro .subtitle { font-family: "Source Sans 3", Arial, sans-serif; margin: 0; font-size: var(--home-subtitle-size); font-weight: 400; line-height: 1.5; }

#home-intro .sub-subtitle { margin: 0; font-size: calc((var(--home-subtitle-size) + var(--paragraph-size)) / 2); font-weight: var(--paragraph-weight); }
#home-intro .home-cities { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 1.1em; margin-top: 1vmin; }
.home-cities .city { position: relative; white-space: nowrap; }
.home-cities .city::before { content: "•"; position: absolute; left: -.7em; color: var(--action-orange); }
.home-cities .city.starts-row::before { content: none; }
#home-footer { position: absolute; left: var(--site-control-left); right: var(--site-control-right); bottom: var(--site-control-bottom); color: #fff; text-align: center; font-size: clamp(12px, 1.8vmin, 14px); line-height: 1.5; }
#home-footer nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 1vmin 2vmin; margin-bottom: max(2vmin, calc((var(--site-icon-size) - 1.5em) / 2 + var(--site-gap))); }
#home-footer a { white-space: nowrap; }
#home-footer p { margin: 0; font-size: inherit; transform: translateY(calc(.75em - var(--site-icon-size) / 2)); }

/* A padded social row above the legal links; hidden in short viewports. */
.home-social {
  --home-social-size: 1.378125em;
  display: none;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: max(8px, 1.5vmin) 0;
  margin: 0 0 max(8px, 1.5vmin);
}
.home-social .social-icon {
  display: block;
  flex: 0 0 auto;
  box-sizing: content-box;
  width: var(--home-social-size);
  height: var(--home-social-size);
  padding: max(6px, 1vmin) calc(var(--home-social-size) * .45);
  color: var(--action-orange);
  line-height: 0;
  text-decoration: none;
}
.home-social img { display: block; width: 100%; height: 100%; }
.home-social a[href]:hover img, .home-social a[href]:focus-visible img { filter: brightness(0) invert(1); }
@media (min-height: 500px) {
  .home-social { display: flex; }
}

/* Increase text contrast on desktop; retain the existing touch-device shade. */
@media (hover: hover) and (pointer: fine) {
  #home-background::after { background: rgba(0, 0, 0, .65); }
}

/* Keep touch-device supporting text quieter than the main title. */
@media (hover: none) and (pointer: coarse) {
  #home-intro { --home-subtitle-size: clamp(16px, 2.5vmin, 18px); }
  #home-intro .home-cities { font-size: clamp(13px, 2.4vmin, 15px); }
}
