/* Endpoint Chick-fil-A Supply Project Gallery — isolated to this shortcode */
.epcf-section, .epcf-section * { box-sizing: border-box; }
.epcf-section {
  --epcf-ink: #0e2030; --epcf-navy: #102338; --epcf-red: #f03434;
  --epcf-muted: #546778; --epcf-line: #d5e0e7;
  width: 100%; max-width: 1160px; min-width: 0;
  margin: 48px auto 76px; padding: 0 18px; color: var(--epcf-ink);
  font-family: "Exo 2", "Inter", system-ui, sans-serif;
}
.epcf-section .epcf-kicker, .epcf-section .epcf-scope-label,
.epcf-section .epcf-highlights-label, .epcf-section .epcf-count {
  font-size: 11px !important; letter-spacing: .15em; font-weight: 800 !important;
}
.epcf-intro { margin-bottom: 34px; }
.epcf-section .epcf-kicker { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; color: #314c61; margin: 0 0 19px; }
.epcf-kicker > span { width: 27px; height: 3px; background: var(--epcf-red); display: inline-block; }
.epcf-kicker b { color: var(--epcf-red); }
.epcf-section .epcf-heading {
  margin: 0 0 17px !important; padding: 0 !important;
  font-family: Impact, "Arial Narrow", "Anton", sans-serif !important;
  font-size: clamp(44px, 6.7vw, 85px) !important; font-weight: 900 !important;
  line-height: .98 !important; letter-spacing: -.02em !important; color: var(--epcf-ink) !important;
}
.epcf-heading em { font-style: normal; color: var(--epcf-red); }
.epcf-section .epcf-lede {
  font-size: clamp(15px, 1.5vw, 17px) !important; max-width: 760px;
  line-height: 1.65 !important; color: #42576b !important;
  margin: 0 !important; padding: 0 !important;
}
.epcf-scope { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(0,.9fr); background: #f0f4f7; border: 1px solid #e0e7ec; margin: 0 0 48px; }
.epcf-scope-copy { padding: clamp(26px,4vw,46px); }
.epcf-section .epcf-scope-label { color: var(--epcf-red); margin-bottom: 14px; }
.epcf-section .epcf-scope-copy h3 {
  margin: 0 0 24px !important; padding: 0 !important;
  font-family: Impact, "Arial Narrow", "Anton", sans-serif !important;
  font-weight: 900 !important; font-size: clamp(27px, 3vw, 41px) !important;
  line-height: 1.05 !important; color: var(--epcf-ink) !important;
}
.epcf-section .epcf-scope-copy h3 span { color: var(--epcf-red); }
.epcf-section .epcf-scope-copy p {
  color: #354d5f !important; font-size: 15px !important; line-height: 1.72 !important;
  padding: 0 !important; margin: 0 0 16px !important;
}
.epcf-section .epcf-scope-copy p:last-child { margin-bottom: 0 !important; }
.epcf-scope-highlights { background: var(--epcf-navy); padding: clamp(26px, 3.2vw, 40px); color: white; }
.epcf-section .epcf-highlights-label { color: #e9f0f6; margin-bottom: 22px; }
.epcf-section .epcf-scope-highlights ul { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.epcf-section .epcf-scope-highlights li {
  list-style: none !important; display: flex; gap: 16px; align-items: baseline;
  padding: 14px 0 !important; margin: 0 !important; font-size: 14px !important;
  line-height: 1.48 !important; color: #f2f5f8 !important;
  border-bottom: 1px solid rgba(255,255,255,.15);
}
.epcf-section .epcf-scope-highlights li:first-child { border-top: 1px solid rgba(255,255,255,.15); }
.epcf-section .epcf-scope-highlights li span { font-size: 12px; color: #ff5352; font-weight: 800; letter-spacing: .04em; }
.epcf-gallery-heading { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.epcf-section .epcf-gallery-heading h3 {
  font-family: Impact, "Arial Narrow", "Anton", sans-serif !important;
  color: var(--epcf-ink) !important; margin: 0 !important; padding: 0 !important;
  font-size: clamp(35px, 4vw, 52px) !important; line-height: 1.05 !important;
}
.epcf-section .epcf-gallery-heading h3 span { color: var(--epcf-red); }
.epcf-section .epcf-count { color: #5b6e7b; padding-bottom: 6px; }
.epcf-section .epcf-count span { color: var(--epcf-red); font-size: 20px; vertical-align: -2px; }
.epcf-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(170px, 19vw, 228px); gap: 12px; }
.epcf-section .epcf-photo {
  display: block; position: relative; grid-column: span 1; min-width: 0;
  overflow: hidden; background: #dbe5e9; text-decoration: none !important; color: white !important;
  border: 0; border-radius: 0;
}
.epcf-section .epcf-photo--hero { grid-column: span 2; grid-row: span 2; }
.epcf-section .epcf-photo img { width: 100% !important; height: 100% !important; max-height: none !important; aspect-ratio: auto !important; object-fit: cover !important; display: block !important; transition: transform .3s ease; }
.epcf-section .epcf-photo::after { content: ""; position: absolute; inset: 35% 0 0; pointer-events: none; background: linear-gradient(180deg, transparent, rgba(8,19,28,.8)); }
.epcf-section .epcf-photo-label {
  position: absolute; left: 0; bottom: 0; width: 100%; z-index: 1;
  display: flex; gap: 10px; align-items: center; padding: 14px 17px;
  font-weight: 800; font-size: clamp(11px, 1.15vw, 15px); letter-spacing: .01em;
  line-height: 1.2; color: white !important;
}
.epcf-section .epcf-photo-num { color: #ff4848; font-size: 11px; flex: 0 0 auto; }
.epcf-section .epcf-arrow { margin-left: auto; color: #f54b4b; font-size: 17px; }
.epcf-section .epcf-photo:hover img { transform: scale(1.025); }
.epcf-section .epcf-photo:focus-visible { outline: 3px solid var(--epcf-red); outline-offset: 3px; }
.epcf-section .epcf-gallery-note { font-size: 12px !important; color: #687986 !important; padding: 0 !important; margin: 12px 0 0 !important; }
/* Lightbox, created once in the page footer by gallery JS */
.epcf-lightbox { position: fixed; z-index: 999999; inset: 0; padding: 32px 70px; background: rgba(7,18,30,.96); display: none; align-items: center; justify-content: center; color: white; font-family: system-ui,sans-serif; }
.epcf-lightbox.is-open { display: flex; }
.epcf-lightbox__figure { width: min(100%, 1120px); max-height: 100%; text-align: center; margin: 0; }
.epcf-lightbox__image { display: block; max-width: 100%; max-height: calc(100vh - 135px); object-fit: contain; margin: 0 auto; }
.epcf-lightbox__figcaption { margin-top: 15px; font-size: 14px; letter-spacing: .025em; color: #dde6ec; }
.epcf-lightbox__button { position: absolute; background: transparent; border: 1px solid rgba(255,255,255,.45); border-radius: 0; color: #fff; padding: 0; height: 42px; width: 42px; cursor: pointer; font: 25px/40px sans-serif; text-align: center; }
.epcf-lightbox__button:hover, .epcf-lightbox__button:focus-visible { border-color: #ff4e4e; color: #ff4e4e; outline: none; }
.epcf-lightbox__close { top: 20px; right: 20px; }
.epcf-lightbox__prev { left: 15px; top: calc(50% - 21px); }
.epcf-lightbox__next { right: 15px; top: calc(50% - 21px); }
@media (max-width: 900px) {
 .epcf-scope { grid-template-columns: 1fr; }
 .epcf-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); grid-auto-rows: auto; }
 .epcf-section .epcf-photo { aspect-ratio: 1 / 1; }
 .epcf-section .epcf-photo--hero { grid-column: span 2; grid-row: auto; aspect-ratio: 16 / 10; }
}
@media (max-width: 600px) {
 .epcf-section { margin: 30px auto 50px; padding: 0 12px; }
 .epcf-section .epcf-heading { font-size: clamp(38px, 10vw, 58px) !important; }
 .epcf-scope-copy, .epcf-scope-highlights { padding: 24px; }
 .epcf-gallery { gap: 8px; }
 .epcf-section .epcf-photo-label { padding: 10px; font-size: 11px !important; }
 .epcf-section .epcf-photo-num { display: none; }
 .epcf-lightbox { padding: 45px 8px 65px; }
 .epcf-lightbox__button { width: 34px; height: 34px; font-size: 21px; line-height: 32px; }
 .epcf-lightbox__prev { left: 8px; bottom: 10px; top: auto; }
 .epcf-lightbox__next { right: 8px; bottom: 10px; top: auto; }
 .epcf-lightbox__close { top: 8px; right: 8px; }
}
@media (prefers-reduced-motion: reduce) { .epcf-section .epcf-photo img { transition: none; } }
