/* Width-based banners keep their composition on laptops, large monitors
   and ultrawide displays. The previous height cap changed their crops. */
.hero.hero { height: max(680px, 56.25vw); min-height: 0; max-height: none; }
.hero.hero .hero-image { width: 100%; height: 100%; padding: 0; object-fit: cover; object-position: var(--hero-focus, center); }
.hero.hero .hero-content h1 { max-width: 540px; }
.hero.hero .hero-content > p:not(.eyebrow) { max-width: 480px; }
.hero.hero--right .hero-content > * { max-width: 480px; }
.hero.hero--right .hero-content h1 { max-width: 480px; }
.hero.hero--right .hero-content .button { margin-left: calc(100% - 480px); }
.hero-image[data-photo="control4"] { --hero-focus: 66% 48%; }
.hero-image[data-photo="lutron"] { --hero-focus: 12% 82%; }
.hero-image[data-photo="intercom"] { --hero-focus: 36% 50%; }
.hero-image[data-photo="cinema"] { --hero-focus: 58% 0%; }
.hero-image[data-photo="cctv"] { --hero-focus: 75% 16%; }
.hero-image[data-photo="alarm"] { --hero-focus: 73% 48%; }
.hero-image[data-photo="access"] { --hero-focus: 76% 42%; }
.hero-image[data-photo="shading"] { --hero-focus: 55% 32%; }
.hero-image[data-photo="media"] { --hero-focus: 57% 38%; }
.hero-image[data-photo="multiroom"] { --hero-focus: 100% 40%; }
.hero-image[data-photo="multipurpose"] { --hero-focus: 62% 15%; }
.hero-image[data-photo="lighting"] { --hero-focus: 52% 18%; }
.hero--control4::after {
  background: linear-gradient(90deg, #080808e6, #080808b8 30%, #08080820 62%, transparent 85%),
    linear-gradient(180deg, #0008, transparent 22%), linear-gradient(0deg, #101010, transparent 20%);
}
.photo-signature { position: absolute; right: max(48px, calc((100vw - 1280px) / 2)); bottom: 28px; display: flex; align-items: center; gap: 13px; padding: 10px 16px; border: 1px solid #ffffff35; border-radius: 30px; background: #101010cf; }
.photo-signature img { width: auto; height: 20px; object-fit: contain; }
.photo-signature span { border-left: 1px solid #ffffff35; padding-left: 13px; font-size: .7rem; letter-spacing: .1em; color: #fff; }
/* The camera is near the soffit: leave real headroom under the navigation. */
.hero.hero--cctv-soffit { height: calc(max(680px, 56.25vw) + var(--header-height)); }
.hero.hero--cctv-soffit .hero-image { top: var(--header-height); height: calc(100% - var(--header-height)); }
/* Fit portrait racks and paired controls in full, separate from the copy. */
.hero.hero--equipment, .hero.hero--rack {
  display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  grid-template-areas: "copy photo"; gap: clamp(40px, 5.5vw, 100px); align-items: center;
  height: auto; min-height: 760px;
  padding: calc(var(--header-height) + 55px) max(48px, calc((100vw - 1280px) / 2)) 72px; background: #111;
}
.hero.hero--equipment .hero-image, .hero.hero--rack .hero-image {
  grid-area: photo; position: relative; inset: auto; z-index: 0; width: auto;
  max-width: 100%; height: auto; max-height: 660px; object-fit: contain;
  justify-self: center; border-radius: 10px;
}
.hero.hero--equipment .hero-content, .hero.hero--rack .hero-content { grid-area: copy; width: 100%; padding: 0; }
.hero.hero--equipment .hero-content > *, .hero.hero--rack .hero-content > * { max-width: 100%; }
.hero.hero--equipment .hero-content h1, .hero.hero--rack .hero-content h1 { font-size: clamp(2.8rem, 4.3vw, 4.6rem); }
.hero.hero--equipment::after, .hero.hero--rack::after { display: none; }
/* Consistent category cards, with a focal point chosen for each subject. */
.card > img, .home-cards .card > img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: var(--card-focus, center); }
.card > img[data-photo="control4"] { --card-focus: 66% 48%; }
.card > img[data-photo="lutron"] { --card-focus: 12% 82%; }
.card > img[data-photo="cinema"] { --card-focus: 58% 0%; }
.card > img[data-photo="intercom"] { --card-focus: 36% 50%; }
.card > img[data-photo="cctv"] { --card-focus: 75% 16%; }
.card > img[data-photo="alarm"] { --card-focus: 73% 48%; }
.card > img[data-photo="access"] { --card-focus: 76% 42%; }
.card > img[data-photo="shading"] { --card-focus: 55% 32%; }
.card > img[data-photo="multipurpose"] { --card-focus: 62% 15%; }
.card > img[data-photo="multiroom"] { --card-focus: 100% 40%; }
.card > img[data-photo="climate"], .card > img[data-photo="rack"] { object-fit: contain; background: #111; }
.card > img[data-photo="rack"] { padding: 12px; }
.card:hover > img { transform: none; }
/* Keep the complete brand photographs, including the left-hand Alisse plate. */
.brand-detail-image.photographic > img, .founder-portrait img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; padding: 0; }
.brand-film-cover > img { object-fit: contain; }
/* Tablet and mobile copy sits below the image so no words obscure hardware. */
@media (max-width: 1100px) {
  .hero.hero, .hero.hero--equipment, .hero.hero--rack, .hero.hero--cctv-soffit { display: block; height: auto; min-height: 0; max-height: none; padding: var(--header-height) 0 0; background: #101010; }
  .hero.hero .hero-image { position: relative; inset: auto; z-index: 0; display: block; width: 100%; height: auto; max-height: none; aspect-ratio: auto; padding: 0; object-fit: contain; border-radius: 0; }
  .hero.hero::after { display: none; }
  .hero.hero .hero-content { width: calc(100% - 96px); padding-top: 32px; padding-bottom: 42px; }
  .hero.hero .hero-content > * { max-width: 620px; margin-left: 0; }
  .hero.hero .hero-content h1 { font-size: clamp(2.2rem, 5vw, 3.3rem); }
  .hero.hero .hero-content .button { margin-left: 0; }
  .hero.hero .hero-scroll { position: relative; inset: auto; justify-content: flex-end; margin: 0 48px 30px; }
  .photo-signature { position: relative; inset: auto; width: fit-content; margin: 16px 48px 0 auto; }
  .brand-detail-hero { grid-template-columns: 1fr; gap: 40px; }
  .brand-detail-image { width: 100%; max-width: 760px; }
}
@media (max-width: 650px) {
  .hero.hero .hero-content { width: calc(100% - 36px); padding-top: 28px; padding-bottom: 36px; }
  .hero.hero .hero-content > * { max-width: 100%; }
  .hero.hero .hero-content h1 { font-size: clamp(1.85rem, 7.2vw, 2.25rem); }
  .hero.hero .hero-scroll { margin: 0 18px 26px; }
  .photo-signature { margin-right: 18px; padding: 8px 13px; }
  .card > img, .home-cards .card > img { height: auto; aspect-ratio: auto; object-fit: contain; padding: 0; }
  .card > img[data-photo="rack"] { aspect-ratio: 4 / 3; padding: 15px; }
}
