/* r29: Awards & Recognition photograph strip.
   Scoped completely to #team; replaces only the previous awards cards. */
#team.awardsGallerySection {
  width: 100%;
  background: #fff;
  padding: 60px 0 72px;
  margin: 0;
  overflow: hidden;
  clear: both;
}
#team .awardsGalleryTitle {
  margin: 0 20px 40px;
  padding: 0;
  text-align: center;
  color: #383838;
  font-weight: 100;
  /* Match ABOUT, SERVICES and CONTACT via the shared H1 rules. */
  letter-spacing: 0;
}
#team .awardsGallery {
  --award-photo-height: 288px;
  --award-photo-gap: 14px;
  position: relative;
  width: 100%;
  max-width: 100%;
  margin: 0;
}
#team .awardsGalleryViewport {
  width: 100%;
  overflow: hidden;
  overscroll-behavior-x: contain;
  touch-action: pan-y pinch-zoom;
  cursor: default;
  margin: 0;
  padding: 0;
  outline: none;
  -webkit-tap-highlight-color: transparent;
}
#team .awardsGalleryViewport:focus-visible { outline: 2px solid #c19c59; outline-offset: -3px; }
#team .awardsGalleryTrack {
  display: flex;
  align-items: stretch;
  gap: var(--award-photo-gap);
  flex-wrap: nowrap;
  width: max-content;
  margin: 0;
  padding: 0;
  transform: translate3d(0,0,0);
  transition: transform .58s cubic-bezier(.22, .61, .36, 1);
}
#team .awardGalleryItem {
  display: block;
  flex: 0 0 auto;
  height: var(--award-photo-height);
  width: auto;
  min-width: 0;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  appearance: none;
  cursor: zoom-in;
  line-height: 0;
  outline-offset: 3px;
  -webkit-tap-highlight-color: transparent;
}
#team .awardGalleryItem img {
  display: block;
  height: 100%;
  width: auto;
  max-width: none;
  object-fit: contain;
  border: 0;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
}
#team .awardGalleryItem:hover img { filter: brightness(.96); }
#team .awardGalleryItem:focus-visible { outline: 2px solid #c19c59; }
#team .awardsGalleryViewport.is-dragging { cursor: grabbing; user-select: none; -webkit-user-select:none; }
#team .awardsGalleryViewport.is-dragging .awardsGalleryTrack { transition: none !important; }
#team .awardsGalleryViewport.is-dragging .awardGalleryItem { cursor: grabbing; }

#team .awardsGalleryIndicators {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 30px;
  margin: 22px auto 0;
  padding: 0 16px;
  width: max-content;
  max-width: 100%;
}
#team .awardGalleryIndicator {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 30px;
  min-width: 0;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  cursor: pointer;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
}
#team .awardGalleryIndicator::before {
  content: '';
  display: block;
  width: 100%;
  height: 4px;
  border-radius: 8px;
  background: #eeeeee;
  transition: background-color .2s ease;
}
#team .awardGalleryIndicator[aria-current='true']::before { background: #b9b9b9; }
#team .awardGalleryIndicator:hover::before { background: #d0d0d0; }
#team .awardGalleryIndicator:focus-visible { outline: 2px solid #c19c59; outline-offset: 2px; border-radius: 3px; }

/* Native modal dialog: overlay click, close button and Escape key all work. */
#team .awardsGalleryLightbox {
  position: fixed;
  inset: 0;
  box-sizing: border-box;
  width: min(98vw, 1600px);
  max-width: 98vw;
  max-height: 96dvh;
  margin: auto;
  padding: 50px 48px 32px;
  background: transparent;
  border: 0;
  color: white;
  text-align: center;
  overflow: visible;
  outline: none;
}
#team .awardsGalleryLightbox:not([open]) { display: none; }
#team .awardsGalleryLightbox::backdrop { background: rgba(0,0,0,.91); }
#team .awardsGalleryLightboxFigure { margin: 0 auto; min-width:0; width:fit-content; max-width:100%; }
#team .awardsGalleryLightboxImage {
  display: block;
  width: auto;
  height: auto;
  max-width: min(88vw, 1380px);
  max-height: 78dvh;
  object-fit: contain;
  margin: 0 auto;
  box-shadow: 0 6px 28px rgba(0,0,0,.24);
}
#team .awardsGalleryLightboxCount { color: #e5e5e5; font: 400 13px/1.4 Roboto, sans-serif; margin: 12px 0 0; }
#team .awardsGalleryLightboxClose,
#team .awardsGalleryLightboxPrev,
#team .awardsGalleryLightboxNext {
  position: absolute;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 46px;
  padding: 0;
  margin: 0;
  background: rgba(30,30,30,.86);
  color: #fff;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 50%;
  box-shadow: none;
  font: 400 25px/1 Arial, sans-serif;
  cursor: pointer;
}
#team .awardsGalleryLightboxClose { top: 0; right: 2%; font-size: 34px; }
#team .awardsGalleryLightboxPrev { left: 0; top: 50%; transform: translateY(-50%); }
#team .awardsGalleryLightboxNext { right: 0; top: 50%; transform: translateY(-50%); }
#team .awardsGalleryLightboxClose:hover,
#team .awardsGalleryLightboxPrev:hover,
#team .awardsGalleryLightboxNext:hover { background: #c09e5a; }
#team .awardsGalleryLightboxClose:focus-visible,
#team .awardsGalleryLightboxPrev:focus-visible,
#team .awardsGalleryLightboxNext:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

@media (max-width: 991px) {
  #team.awardsGallerySection { padding: 52px 0 60px; }
  #team .awardsGalleryTitle { margin-bottom: 32px; }
  #team .awardsGallery { --award-photo-height: 252px; --award-photo-gap: 12px; }
}
@media (max-width: 767px) {
  #team.awardsGallerySection { padding: 44px 0 92px; }
  #team .awardsGalleryTitle {
    margin: 0 20px 30px;
  }
  #team .awardsGallery { --award-photo-height: min(68vw, 290px); --award-photo-gap: 10px; }
  #team .awardsGalleryIndicators { gap: 5px; margin-top: 19px; }
  #team .awardGalleryIndicator { width: 15px; }
  #team .awardsGalleryLightbox { padding: 52px 0 26px; width: 100vw; max-width:100vw; }
  #team .awardsGalleryLightboxImage { max-width: 96vw; max-height: 75dvh; }
  #team .awardsGalleryLightboxClose { right: 12px; top: 0; }
  #team .awardsGalleryLightboxPrev,
  #team .awardsGalleryLightboxNext { width: 36px; height: 42px; border-radius: 4px; font-size: 18px; }
}
@media (max-width: 360px) {
  #team .awardGalleryIndicator { width: 13px; }
  #team .awardsGalleryIndicators { gap: 4px; }
}
@media (prefers-reduced-motion: reduce) {
  #team .awardsGalleryTrack,
  #team .awardGalleryIndicator::before { transition: none !important; }
}

/* r31: a single, truly centered mobile photo with both neighbors peeking in. */
@media (max-width: 767px) {
  #team .awardsGallery { --award-photo-height: min(112vw, 465px); --award-photo-gap: 12px; }
  #team .awardGalleryItem {
    flex: 0 0 76vw;
    width: 76vw;
    max-width: 360px;
    height: var(--award-photo-height);
    display: flex;
    align-items: center;
    justify-content: center;
  }
  #team .awardGalleryItem img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center center;
  }
}

/* r32: consistent vertical image dimension on every mobile card,
   while retaining the centered card with visible neighbors. */
@media (max-width: 767px) {
  #team .awardsGallery {
    --award-photo-height: clamp(310px, 108vw, 465px);
    --award-photo-gap: 12px;
  }
  #team .awardGalleryItem {
    height: var(--award-photo-height) !important;
    width: 76vw !important;
    max-width: 360px;
    min-width: 0;
    flex: 0 0 min(76vw, 360px);
    overflow: hidden;
    background: #fff;
  }
  #team .awardGalleryItem img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    object-position: center;
  }
}


/* r34: section icon + global awards heading + uncropped centered mobile slides. */
#team .awardsGalleryHeader {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 0 20px 40px;
}
#team .awardsGalleryHeaderIcon {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 16px;
  line-height: 0;
}
#team .awardsGalleryHeaderIcon img {
  display: block;
  width: 48px;
  height: auto;
}
#team .awardsGalleryHeader .awardsGalleryTitle {
  margin: 0;
}
@media (max-width: 767px) {
  #team .awardsGalleryHeader {
    margin: 0 20px 30px;
  }
  #team .awardsGalleryHeaderIcon {
    margin-bottom: 12px;
  }
  #team .awardsGalleryHeaderIcon img {
    width: 48px;
  }
  #team .awardGalleryItem img {
    object-fit: contain !important;
    object-position: center center;
    background: #fff;
  }
}


/* r36: four-level award information. Desktop captions belong to each image;
   mobile shows one synchronized caption below the position indicators. */
#team .awardsGallery {
  --award-caption-title-height: 48px;
  --award-caption-description-height: 64px;
  --award-caption-location-height: 24px;
}
#team .awardsGalleryTrack { align-items: stretch; }
#team .awardGalleryItem {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  height: auto;
  padding: 0;
  margin: 0;
  cursor: default;
  background: #fff;
}
#team .awardGalleryOpen {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 var(--award-photo-height);
  height: var(--award-photo-height);
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
  appearance: none;
  -webkit-appearance: none;
  line-height: 0;
  cursor: zoom-in;
  touch-action: pan-y pinch-zoom;
  -webkit-tap-highlight-color: transparent;
}
#team .awardGalleryOpen img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
}
#team .awardGalleryItem:hover img { filter: none; }
@media (hover: hover) {
  #team .awardGalleryOpen:hover img { filter: brightness(.96); }
}
#team .awardGalleryOpen:focus-visible {
  outline: 2px solid #c19c59;
  outline-offset: -3px;
}
#team .awardsGalleryViewport.is-dragging .awardGalleryOpen { cursor: grabbing; }
#team .awardCaption {
  display: grid;
  grid-template-rows: 20px var(--award-caption-title-height) var(--award-caption-description-height) var(--award-caption-location-height);
  gap: 8px;
  box-sizing: border-box;
  width: 100%;
  padding: 22px 10px 12px;
  margin: 0;
  text-align: center;
  font-family: Roboto, sans-serif;
  line-height: 1.45;
  color: #383838;
}
#team .awardCaptionDate,
#team .awardCaptionOrganization,
#team .awardCaptionAward,
#team .awardCaptionLocation {
  position: static;
  display: block;
  float: none;
  width: auto;
  max-width: 100%;
  padding: 0;
  margin: 0;
  background: none;
  border: 0;
  box-shadow: none;
  text-shadow: none;
  font-family: Roboto, sans-serif;
  overflow-wrap: anywhere;
  word-break: normal;
}
#team .awardCaptionDate {
  color: #383838;
  font-size: 13px;
  font-weight: 300;
  line-height: 20px;
  letter-spacing: .16em;
}
#team .awardCaptionOrganization {
  color: #c99a45;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: .015em;
  text-transform: uppercase;
  text-wrap: balance;
  align-self: start;
}
#team .awardCaptionAward {
  color: #555;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.45;
  letter-spacing: 0;
  text-transform: none;
  text-wrap: balance;
  align-self: start;
}
#team .awardCaptionLocation {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #383838;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0;
  text-transform: none;
}
#team .awardCaptionLocation span { min-width: 0; }
#team .awardCaptionLocation::before,
#team .awardCaptionLocation::after {
  content: '';
  display: block;
  flex: 0 1 22px;
  width: 22px;
  height: 1px;
  background: currentColor;
}
#team .awardsActiveCaption { display: none; }
#team .awardsGalleryIndicators { margin-top: 20px; }
@media (min-width: 768px) and (max-width: 991px) {
  #team .awardCaption { padding-left: 6px; padding-right: 6px; }
  #team .awardCaptionOrganization { font-size: 16px; }
  #team .awardCaptionAward { font-size: 13px; }
}
@media (max-width: 767px) {
  #team .awardGalleryItem { height: var(--award-photo-height) !important; }
  #team .awardGalleryItem > .awardCaption { display: none; }
  #team .awardGalleryOpen {
    flex: 0 0 100%;
    height: 100%;
  }
  #team .awardsActiveCaption {
    display: block;
    width: calc(100% - 40px);
    max-width: 480px;
    margin: 8px auto 0;
  }
  #team .awardsActiveCaption .awardCaption {
    grid-template-rows: 22px var(--award-caption-title-height) var(--award-caption-description-height) var(--award-caption-location-height);
    gap: 9px;
    padding: 0;
  }
  #team .awardCaptionDate { font-size: 14px; line-height: 22px; }
  #team .awardCaptionOrganization { font-size: 20px; line-height: 1.3; }
  #team .awardCaptionAward { font-size: 16px; line-height: 1.45; }
  #team .awardCaptionLocation { font-size: 16px; line-height: 1.4; gap: 10px; }
  #team .awardCaptionLocation::before,
  #team .awardCaptionLocation::after { flex-basis: 24px; width: 24px; }
  /* Compact position bars and caption spacing from the approved reference. */
  #team .awardsGalleryIndicators { margin-top: 8px; gap: 2px; }
  #team .awardGalleryIndicator { width: 10px; flex: 0 0 10px; }
  #team .awardGalleryIndicator::before { width: 8px; height: 3px; }
}
@media (max-width: 359px) {
  #team .awardCaptionOrganization { font-size: 18px; }
  #team .awardCaptionAward { font-size: 15px; }
}

/* Continuous desktop motion must not be interpolated a second time by CSS. */
@media (min-width: 768px) {
  #team .awardsGalleryTrack { transition: none; }
}
@media (max-width: 767px) {
  #team .awardsActiveCaption { min-height: var(--award-active-caption-height, 166px); }
  #team .awardsActiveCaption .awardCaption {
    grid-template-rows: 22px auto auto auto;
    align-content: start;
  }
}

/* r40: section introduction */
#team .awardsGalleryHeader { max-width: 1100px; margin-left: auto; margin-right: auto; padding: 0 24px; }
#team .awardsGallerySubtitle { margin: 17px 0 0; color: #383838; font-size: 18px; font-weight: 700; line-height: 1.5; text-align: center; }
#team .awardsGalleryIntroduction { margin: 12px auto 0; max-width: 830px; color: #777; font-size: 15px; font-weight: 400; line-height: 1.75; text-align: center; }
@media(max-width:767px) { #team .awardsGalleryHeader { padding: 0 22px; margin-bottom: 32px; } #team .awardsGallerySubtitle { font-size: 15px; line-height: 1.45; margin-top: 15px; } #team .awardsGalleryIntroduction { font-size: 13px; line-height: 1.65; margin-top: 10px; } }

/* r41: All award photographs use identical gold-framed, white-matted
   presentation. Images are fully contained, never cropped. */
#team .awardsGallery { --award-photo-height: 390px; --award-photo-gap: 18px; }
#team .awardGalleryItem {
  width: 320px !important;
  min-width: 320px;
  flex: 0 0 320px;
  height: auto;
  background: #fff;
  overflow: visible;
}
#team .awardGalleryOpen {
  position: relative;
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: var(--award-photo-height);
  padding: 32px;
  background: #fff;
  border: 0;
  overflow: hidden;
  cursor: zoom-in;
}
#team .awardGalleryOpen::before {
  content: '';
  position: absolute;
  inset: 12px;
  border: 3px solid #c99a45;
  pointer-events: none;
}
#team .awardGalleryItem .awardGalleryOpen > img {
  display: block;
  position: relative;
  width: 100% !important;
  height: 100% !important;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain !important;
  object-position: center center !important;
  background: #fff;
  border: 0;
}
@media (min-width:768px) and (max-width:991px) {
  #team .awardsGallery { --award-photo-height: 350px; --award-photo-gap: 14px; }
  #team .awardGalleryItem { width: 290px !important; min-width:290px; flex-basis:290px; }
}
@media (max-width:767px) {
  #team .awardsGallery {
    --award-photo-height: clamp(330px, 105vw, 465px);
    --award-photo-gap: 12px;
  }
  #team .awardGalleryItem {
    width: min(76vw, 360px) !important;
    min-width: 0;
    max-width: 360px;
    height: auto !important;
    flex: 0 0 min(76vw, 360px);
    overflow: visible;
  }
  #team .awardGalleryOpen {
    height: var(--award-photo-height);
    padding: 26px;
  }
  #team .awardGalleryOpen::before { inset: 10px; border-width: 2px; }
  #team .awardGalleryItem .awardGalleryOpen > img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
  }
}

/* r42: one descriptive line per award, understated frame and soft shadow. */
#team .awardCaptionDate,
#team .awardCaptionOrganization,
#team .awardCaptionLocation { display: none !important; }
#team .awardCaption,
#team .awardsActiveCaption .awardCaption {
  display: block;
  height: auto;
  min-height: 0;
  padding: 12px 10px 0;
  text-align: center;
}
#team .awardCaptionAward,
#team .awardsActiveCaption .awardCaptionAward {
  display: block;
  margin: 0;
  color: #171717;
  font-weight: 400;
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: 0;
}
#team .awardGalleryOpen {
  box-shadow: 0 12px 30px rgba(0,0,0,.095);
}
#team .awardGalleryOpen::before {
  border-width: 1px;
}
#team .awardsGallerySubtitle { margin-top: 13px; }
#team .awardsGalleryIntroduction { margin-top: 4px; line-height: 1.55; }
@media (max-width:767px) {
  #team .awardsActiveCaption { min-height: 0 !important; margin-top: 8px; }
  #team .awardsActiveCaption .awardCaption { padding: 0 12px; }
  #team .awardsActiveCaption .awardCaptionAward { font-size: 16px; line-height: 1.45; }
  #team .awardGalleryOpen::before { border-width: 1px; }
  #team .awardsGallerySubtitle { margin-top: 10px; }
  #team .awardsGalleryIntroduction { margin-top: 4px; line-height: 1.5; }
}

/* r43: bring awards subtitle and introduction closer to main title. */
#team .awardsGallerySubtitle { margin-top: 6px; }
#team .awardsGalleryIntroduction { margin-top: 3px; }
@media (max-width: 767px) {
  #team .awardsGallerySubtitle { margin-top: 5px; }
  #team .awardsGalleryIntroduction { margin-top: 3px; }
}

/* r44: Hide awards position indicators on mobile only. */
@media (max-width: 767px) {
  #team .awardsGalleryIndicators { display: none !important; }
}

/* r45: reserve room inside clipped carousel viewport for the card shadows.
   The track still clips horizontally for infinite scrolling. */
#team .awardsGalleryViewport {
  box-sizing: border-box;
  padding-bottom: 34px;
  margin-bottom: -28px;
}
@media (max-width: 767px) {
  #team .awardsGalleryViewport { padding-bottom: 30px; margin-bottom: -24px; }
}

/* r46: Mobile subtitle in exactly two centered lines. */
@media (max-width: 767px) {
  #team .awardsSubtitleFirst,
  #team .awardsSubtitleSecond { display: block; white-space: nowrap; }
  #team .awardsGallerySubtitle { font-size: clamp(10px, 3.05vw, 15px); }
}

/* r48: square lightbox navigation and close controls */
#team .awardsGalleryLightboxClose,
#team .awardsGalleryLightboxPrev,
#team .awardsGalleryLightboxNext { width: 46px; height: 46px; border-radius: 0 !important; }
@media(max-width:767px) {
 #team .awardsGalleryLightboxClose,
 #team .awardsGalleryLightboxPrev,
 #team .awardsGalleryLightboxNext { width: 42px; height: 42px; border-radius: 0 !important; }
}
