
.fic-gallery-page {
  background: var(--fic-surface);
}

.fic-gallery-section {
  padding: var(--fic-section-pad-y) 0;
}

.fic-gallery-section__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: clamp(32px, 6vw, 96px);
  max-width: var(--fic-container-max);
  margin: 0 auto var(--fic-space-lg);
}

.fic-gallery-section__header h2 {
  max-width: 34rem;
  margin: 8px 0 0;
  color: var(--fic-teal-deep);
  font-family: var(--fic-font-heading);
  font-size: var(--fic-type-section-size);
  font-weight: var(--fic-type-section-weight);
  letter-spacing: var(--fic-type-section-tracking);
  line-height: var(--fic-type-section-leading);
}

.fic-gallery-section__header > p {
  max-width: 32rem;
  margin: 0;
  color: var(--fic-text-mid);
  font-size: var(--fic-type-lead-size);
  font-weight: var(--fic-type-lead-weight);
  letter-spacing: var(--fic-type-tracking);
  line-height: var(--fic-type-lead-leading);
}


.fic-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--fic-space-lg) var(--fic-space-md);
  max-width: var(--fic-container-max);
  margin: 0 auto;
  padding: 0;
  list-style: none;
}

.fic-gallery-grid--many {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fic-gallery-filter .fic-news-filter__pill {
  border: 0;
  background: transparent;
  cursor: pointer;
}

.fic-gallery-filter .fic-news-filter__pill.is-active {
  background: var(--fic-teal-deep);
  color: var(--fic-white);
}


.fic-gallery-hero__crumbs {
  color: var(--fic-text-on-dark-muted);
  font-size: var(--fic-type-small-size);
}

.fic-gallery-hero__crumbs ol {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0;
  margin: 0 0 var(--fic-space-md);
  list-style: none;
}

.fic-gallery-hero__crumbs a {
  color: inherit;
  text-decoration: none;
}

.fic-gallery-hero__crumbs a:hover {
  color: var(--fic-gold-light);
  text-decoration: underline;
}

.fic-gallery-hero__crumbs li + li::before {
  content: '/';
  margin-right: 8px;
  color: var(--fic-gold);
}

.fic-gallery-hero__crumbs [aria-current] {
  color: var(--fic-white);
}

.fic-gallery-card {
  position: relative;
  min-width: 0;
}

.fic-gallery-card[hidden] {
  display: none;
}

.fic-gallery-card__media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: var(--fic-radius-card);
  background: var(--fic-teal-mid);
  box-shadow: var(--fic-shadow-rest);
}

.fic-gallery-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fic-gallery-card__category {
  margin: 12px 0 4px;
  color: var(--fic-teal-bright);
  font-family: var(--fic-font-heading);
  font-size: var(--fic-type-label-size);
  font-weight: var(--fic-type-label-weight);
  letter-spacing: var(--fic-type-tracking);
  line-height: var(--fic-type-label-leading);
  text-transform: uppercase;
}

.fic-gallery-card__title {
  margin: 0;
  color: var(--fic-text-dark);
  font-family: var(--fic-font-heading);
  font-size: var(--fic-type-heading-small-size);
  font-weight: var(--fic-type-heading-small-weight);
  line-height: var(--fic-type-heading-small-leading);
}

/* The title button covers the whole tile (stretched-link pattern), so the photo opens the viewer too. */
.fic-gallery-open {
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: zoom-in;
}

.fic-gallery-open::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: var(--fic-radius-card);
}

.fic-gallery-open:focus-visible {
  outline: none;
}

.fic-gallery-open:focus-visible::after {
  outline: 2px solid var(--fic-focus-light);
  outline-offset: 4px;
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .fic-gallery-card__media {
    transition: transform 150ms ease-out, box-shadow 150ms ease-out;
  }

  .fic-gallery-card:hover .fic-gallery-card__media {
    transform: translateY(-3px);
    box-shadow: var(--fic-shadow-raised);
  }
}


.fic-gallery-slot {
  display: flex;
  width: 100%;
  height: 100%;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px;
  color: var(--fic-gold-light);
  background: var(--fic-teal-mid);
  text-align: center;
}

.fic-gallery-slot__icon {
  color: var(--fic-gold);
}

.fic-gallery-slot__label {
  font-family: var(--fic-font-heading);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .1em;
  line-height: 1.3;
  text-transform: uppercase;
}

.fic-gallery-cta {
  padding: clamp(48px, 6vw, 80px) 0;
  background: var(--fic-surface-alt);
}

.fic-gallery-cta__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  max-width: calc(var(--fic-container-max) + (var(--fic-container-pad) * 2));
  margin-inline: auto;
}

.fic-gallery-cta h2 {
  margin: 8px 0 12px;
  color: var(--fic-teal-deep);
  font-family: var(--fic-font-heading);
  font-size: var(--fic-type-section-size);
  font-weight: var(--fic-type-section-weight);
  letter-spacing: var(--fic-type-section-tracking);
  line-height: var(--fic-type-section-leading);
}

.fic-gallery-cta p {
  max-width: 38rem;
  margin: 0;
  color: var(--fic-text-mid);
  font-size: var(--fic-type-lead-size);
  font-weight: var(--fic-type-lead-weight);
  letter-spacing: var(--fic-type-tracking);
  line-height: var(--fic-type-lead-leading);
}


.fic-gallery-lightbox {
  width: min(1120px, calc(100% - 32px));
  height: calc(100dvh - 32px);
  max-height: 960px;
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--fic-edge-gold);
  border-radius: var(--fic-radius-card);
  color: var(--fic-white);
  background: var(--fic-teal-deep);
  box-shadow: var(--fic-shadow-deep);
}

.fic-gallery-lightbox[open] {
  display: flex;
  flex-direction: column;
}

.fic-gallery-lightbox::backdrop {
  background: rgba(0, 0, 0, .8);
}

.fic-gallery-lightbox [hidden] {
  display: none !important;
}

.fic-gallery-lightbox__head {
  display: flex;
  flex: none;
  align-items: center;
  gap: var(--fic-space-sm);
  padding: 12px 12px 12px var(--fic-space-md);
  border-bottom: 1px solid var(--fic-line-on-dark);
  background: var(--fic-teal-mid);
}

.fic-gallery-lightbox__head h2 {
  flex: 1;
  min-width: 0;
  margin: 0;
  color: var(--fic-white);
  font-family: var(--fic-font-heading);
  font-size: var(--fic-type-heading-small-size);
  font-weight: var(--fic-type-heading-small-weight);
  line-height: var(--fic-type-heading-small-leading);
  overflow-wrap: anywhere;
}

.fic-gallery-lightbox__button {
  display: inline-grid;
  width: 44px;
  height: 44px;
  flex: none;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .25);
  border-radius: var(--fic-radius-pill);
  color: var(--fic-white);
  background: var(--fic-teal-deep);
  cursor: pointer;
  transition: background-color 150ms ease-out;
}

.fic-gallery-lightbox__button:hover {
  background: var(--fic-teal-light);
}

.fic-gallery-lightbox__prev,
.fic-gallery-lightbox__next {
  width: 48px;
  height: 48px;
}

.fic-gallery-lightbox__flip {
  transform: scaleX(-1);
}

.fic-gallery-lightbox__visual {
  display: grid;
  flex: 1;
  min-height: 0;
  place-items: center;
  background: var(--fic-teal-deep);
  touch-action: pan-y;
}

.fic-gallery-lightbox__image {
  display: block;
  width: 100%;
  height: 100%;
  /* A viewer shows the whole photograph (letterboxed), never a crop. */
  object-fit: contain;
  object-position: center;
}

.fic-gallery-lightbox__copy {
  flex: none;
  max-height: 30%;
  overflow: auto;
  padding: var(--fic-space-sm) var(--fic-space-md) 0;
  border-top: 1px solid var(--fic-line-on-dark);
}

.fic-gallery-lightbox__copy p {
  max-width: 68ch;
  margin: 0;
  color: var(--fic-text-on-dark-mid);
  font-size: var(--fic-type-body-size);
  line-height: var(--fic-type-body-leading);
}

.fic-gallery-lightbox__actions {
  display: flex;
  flex: none;
  align-items: center;
  justify-content: space-between;
  gap: var(--fic-space-sm);
  padding: var(--fic-space-sm) var(--fic-space-md) max(16px, env(safe-area-inset-bottom));
}

.fic-gallery-lightbox__count {
  margin: 0;
  color: var(--fic-text-on-dark-muted);
  font-family: var(--fic-font-heading);
  font-size: 12px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.fic-gallery-lightbox__nav {
  display: flex;
  gap: 12px;
}

@media (prefers-reduced-motion: no-preference) {
  .fic-gallery-lightbox[open] {
    animation: fic-gallery-in 200ms cubic-bezier(.2, .7, .2, 1);
  }

  @keyframes fic-gallery-in {
    from { opacity: 0; transform: translateY(8px); }
  }
}

@media (max-width: 1024px) {
  .fic-gallery-grid--many {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .fic-gallery-section__header,
  .fic-gallery-cta__inner {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 600px) {
  .fic-gallery-grid,
  .fic-gallery-grid--many {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--fic-space-md) 12px;
  }

  .fic-gallery-card__category {
    margin-top: 8px;
  }

  .fic-gallery-card__title {
    font-size: var(--fic-type-body-size);
  }

  .fic-gallery-card .fic-gallery-slot__icon {
    width: 32px;
    height: 32px;
  }

  .fic-gallery-card .fic-gallery-slot__label {
    font-size: 11px;
  }
}

@media (max-width: 480px) {
  .fic-gallery-lightbox {
    width: calc(100% - 16px);
    height: calc(100dvh - 16px);
  }

  .fic-gallery-lightbox__head {
    padding-left: var(--fic-space-sm);
  }

  .fic-gallery-lightbox__copy,
  .fic-gallery-lightbox__actions {
    padding-inline: var(--fic-space-sm);
  }
}


.fic-gal-soon__layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: var(--fic-space-xl); align-items: center; }
.fic-gal-soon__copy { min-width: 0; }
.fic-gal-soon__copy h2 { margin: 0; color: var(--fic-text-dark); font-family: var(--fic-font-heading); font-size: 40px; font-weight: 800; line-height: 1.15; letter-spacing: -.015em; text-wrap: balance; }
.fic-gal-soon__lede { max-width: 50ch; margin: 12px 0 0; color: var(--fic-text-mid); font-family: var(--fic-font-body); font-size: 19px; line-height: 1.6; }
.fic-gal-soon__callout { margin-top: 32px; padding: 20px 24px; border: 1px solid rgba(122, 92, 0, .25); border-left: 5px solid var(--fic-gold); border-radius: var(--fic-radius-sm); background: var(--fic-gold-pale); }
.fic-gal-soon__callout h3 { margin: 0; color: var(--fic-text-dark); font-family: var(--fic-font-heading); font-size: 17px; font-weight: 700; line-height: 1.35; }
.fic-gal-soon__callout p { margin: 6px 0 0; color: var(--fic-text-mid); font-family: var(--fic-font-body); font-size: 15px; line-height: 1.6; }
.fic-gal-soon__callout .fic-gal-soon__email { display: flex; align-items: center; gap: 10px; margin-top: 14px; color: var(--fic-gold-ink); }
.fic-gal-soon__email a { color: var(--fic-teal-deep); font-family: var(--fic-font-heading); font-size: 15px; font-weight: 700; overflow-wrap: anywhere; text-decoration: underline; text-decoration-color: var(--fic-gold); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.fic-gal-soon__email a:hover { text-decoration-thickness: 3px; }
.fic-gal-soon__email a:focus-visible { outline: 2px solid var(--fic-focus-light); outline-offset: 3px; }
.fic-gal-soon__mosaic { display: grid; grid-template-columns: 1.4fr 1fr; grid-template-rows: repeat(3, minmax(0, 1fr)); gap: 12px; aspect-ratio: 5 / 4; min-width: 0; max-width: 100%; }
.fic-gal-soon__tile { position: relative; overflow: hidden; border: 1px solid var(--fic-edge-gold); border-radius: var(--fic-radius-card); background: var(--fic-teal-mid); }
.fic-gal-soon__tile--main { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; grid-row: 1 / -1; background: var(--fic-teal-deep); box-shadow: var(--fic-shadow-raised); }
.fic-gal-soon__tile--c { background: var(--fic-teal-light); }
.fic-gal-soon__cam { display: grid; place-items: center; width: 64px; height: 64px; border: 1px solid var(--fic-edge-gold); border-radius: var(--fic-radius-pill); background: var(--fic-teal-mid); color: var(--fic-gold); }
.fic-gal-soon__label { position: absolute; left: 16px; bottom: 14px; color: var(--fic-text-on-dark-mid); font-family: var(--fic-font-heading); font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

@media (max-width: 1024px) {
  .fic-gal-soon__layout { grid-template-columns: minmax(0, 1fr); }
  .fic-gal-soon__mosaic { order: -1; aspect-ratio: 16 / 9; }
}

@media (max-width: 768px) {
  .fic-gal-soon__copy h2 { font-size: 30px; }
  .fic-gal-soon__lede { font-size: 17px; }
}

@media (max-width: 480px) {
  .fic-gal-soon__mosaic { gap: 8px; aspect-ratio: 4 / 3; }
  .fic-gal-soon__label { left: 12px; bottom: 10px; font-size: 11px; }
  .fic-gal-soon__cam { width: 52px; height: 52px; }
}
