/* Responsive layout refinements; content and visual direction stay shared. */
:root {
  --gutter: clamp(20px, 6vw, 115px);
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
.header,
.contact,
footer {
  padding-left: max(var(--gutter), env(safe-area-inset-left));
  padding-right: max(var(--gutter), env(safe-area-inset-right));
}
.header-contact { min-height: 44px; display: inline-flex; align-items: center; }
.primary-button { min-height: 52px; }
.contact-link { min-height: 48px; }
.contact-link > span { min-width: 0; }
.contact-link strong { overflow-wrap: anywhere; line-height: 1.5; }
.hero-content { min-width: 0; }
h1 { max-width: 100%; }
.services li { min-width: 0; }
.video-control { z-index: 2; }
footer { padding-bottom: max(21px, env(safe-area-inset-bottom)); }

@media (min-width: 761px) and (max-width: 1100px) {
  .header { height: 88px; }
  .hero { min-height: 580px; }
  .hero-content { padding-top: 64px; padding-bottom: 64px; }
  h1 { font-size: clamp(43px, 5.1vw, 56px); line-height: 1.12; }
  .contact { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .contact-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 32px;
  }
  .contact-link strong { font-size: 14px; }
  .contact-link small { font-size: 10px; }
}

@media (max-width: 760px) {
  .header { height: 80px; gap: 20px; }
  .hero { min-height: 0; display: block; }
  .hero-content {
    width: 100%;
    padding: clamp(48px, 9vw, 68px) var(--gutter) 88px;
  }
  h1 {
    font-size: clamp(32px, 9vw, 44px);
    line-height: 1.13;
    letter-spacing: -1.2px;
    margin-bottom: 24px;
  }
  .intro {
    font-size: 16px;
    line-height: 1.6;
    max-width: 36ch;
    margin-bottom: 22px;
  }
  .specialty {
    max-width: 35ch;
    font-size: 13px;
    line-height: 1.7;
    margin-bottom: 28px;
  }
  .primary-button { font-size: 14px; }
  .services {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
    max-width: 480px;
    gap: 0;
    margin-top: 30px;
  }
  .services li { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
  .services li + li { margin: 0; padding-left: clamp(12px, 3vw, 20px); }
  .services svg { width: 27px; height: 29px; }
  .services span { font-size: 11px; line-height: 1.5; }
  .video-control { bottom: 22px; right: var(--gutter); }
  .film video { object-position: 55% 43%; }
  .film-shade {
    background: linear-gradient(90deg, rgba(8,23,22,.92), rgba(8,23,22,.64) 65%, rgba(8,23,22,.4)),
      linear-gradient(0deg, #081716, transparent 45%);
  }
  .contact { padding-top: 30px; padding-bottom: 30px; }
  .contact h2 { font-size: 24px; margin-bottom: 22px; }
  .contact-links { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
  .contact-link { gap: 12px; padding: 18px 0; }
  .contact-link strong { font-size: 14px; }
  .contact-link small { font-size: 10px; }
  .contact-link:last-child { padding-bottom: 18px; }
}

@media (max-width: 540px) {
  .contact-links { grid-template-columns: minmax(0, 1fr); }
  .contact-link strong { font-size: 14px; }
  .primary-button { width: 100%; }
  .brand { gap: 10px; }
}

@media (max-width: 360px) {
  .services span { font-size: 10px; }
  .brand-name { font-size: 27px; }
  h1 { letter-spacing: -1px; }
}

@media (max-height: 500px) and (orientation: landscape) and (max-width: 1100px) {
  .header { height: 72px; }
  .hero { min-height: 0; }
  .hero-content { padding-top: 38px; padding-bottom: 82px; }
}
