/* ─── Per-shoot gallery pages — shared styles ───────────────────────────────
   One stylesheet for all 14 our-work/<slug>.html pages. Relies on ../style.css
   for: .navbar, .final-cta__*, .site-footer__* shared tokens.
   Everything here is prefixed .sh- to avoid collisions.
──────────────────────────────────────────────────────────────────────────── */

:root {
  --sh-gold: #c8a34c;
}

.sh-header, .sh-filters, .sh-grid-section, .final-cta {
  font-family: 'Inter', sans-serif;
}

/* ─── Header ─────────────────────────────────────────────────────────────── */

.sh-header {
  position: relative;
  padding: 140px 24px 0;
  max-width: 1100px;
  margin: 0 auto;
}

.sh-back {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: #2e2c2c;
  opacity: 0.55;
  text-decoration: none;
  margin-bottom: 1.5rem;
  transition: opacity 0.2s ease;
}

.sh-back:hover { opacity: 0.9; }

/* Opt-in full-page texture — add "sh-page--textured" to a page's <body> to
   enable. Thin geometric lines + circles (blueprint/mathematical-diagram
   feel), tiled across the whole page rather than confined to one section.
   New motif, not reused from elsewhere on the site. Trial run: only
   27650-ford-rd.html has this class for now; roll out to the rest by adding
   the class to each page's <body> once approved. */
.sh-page--textured {
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 900 900'%3E%3Cg stroke='%232e2c2c' fill='none'%3E%3Cline x1='0' y1='150' x2='900' y2='150' stroke-width='1' stroke-opacity='0.144'/%3E%3Cline x1='0' y1='700' x2='900' y2='700' stroke-width='1' stroke-opacity='0.128'/%3E%3Cline x1='450' y1='0' x2='450' y2='900' stroke-width='1' stroke-opacity='0.112'/%3E%3Cline x1='0' y1='900' x2='900' y2='0' stroke-width='1' stroke-opacity='0.128'/%3E%3Ccircle cx='680' cy='230' r='170' stroke-width='1.1' stroke-opacity='0.096'/%3E%3Ccircle cx='140' cy='620' r='85' stroke-width='1' stroke-opacity='0.088'/%3E%3Ccircle cx='520' cy='800' r='45' stroke-width='1' stroke-opacity='0.104'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size: 720px 720px;
}

.sh-header__eyebrow {
  display: block;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.17em;
  text-transform: uppercase;
  color: #2e2c2c;
  opacity: 0.4;
  margin-bottom: 0.75rem;
}

.sh-header__address {
  font-family: 'Inter', sans-serif;
  font-weight: 800;
  font-size: clamp(2rem, 4.2vw, 3.4rem);
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: #2e2c2c;
  margin: 0 0 0.6rem;
}

.sh-header__count {
  font-size: 0.85rem;
  color: #2e2c2c;
  opacity: 0.5;
}

/* ─── Filter pills ───────────────────────────────────────────────────────── */

.sh-filters {
  max-width: 1100px;
  margin: 1.75rem auto 0;
  padding: 0 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.sh-filter {
  border: 1px solid rgba(46, 44, 44, 0.18);
  background: #fff;
  color: #2e2c2c;
  border-radius: 100px;
  padding: 0.55rem 1.2rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.sh-filter:hover {
  border-color: rgba(46, 44, 44, 0.4);
}

.sh-filter.active {
  background: #1a1816;
  border-color: #1a1816;
  color: #fff;
}

/* ─── Grid ───────────────────────────────────────────────────────────────── */

.sh-grid-section {
  max-width: 1300px;
  margin: 0 auto;
  padding: 2.25rem 24px 5rem;
}

.sh-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1rem;
}

.sh-thumb {
  position: relative;
  aspect-ratio: 4 / 3;
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
  border: none;
  padding: 0;
  background: #eee;
}

.sh-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s cubic-bezier(0.32, 0.72, 0, 1);
}

.sh-thumb:hover img {
  transform: scale(1.06);
}

.sh-thumb--hidden {
  display: none;
}

/* ─── Lightbox ───────────────────────────────────────────────────────────── */

.sh-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(10, 9, 8, 0.94);
  display: none;
  align-items: center;
  justify-content: center;
}

.sh-lightbox.open {
  display: flex;
}

.sh-lightbox__img {
  max-width: 88vw;
  max-height: 82vh;
  object-fit: contain;
  border-radius: 4px;
}

.sh-lightbox__caption {
  position: absolute;
  bottom: 28px;
  left: 0;
  right: 0;
  text-align: center;
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.8rem;
  letter-spacing: 0.02em;
}

.sh-lightbox__close,
.sh-lightbox__prev,
.sh-lightbox__next {
  position: absolute;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #fff;
  border-radius: 50%;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s ease;
}

.sh-lightbox__close:hover,
.sh-lightbox__prev:hover,
.sh-lightbox__next:hover {
  background: rgba(255, 255, 255, 0.18);
}

.sh-lightbox__close { top: 24px; right: 24px; }
.sh-lightbox__prev { left: 24px; top: 50%; transform: translateY(-50%); }
.sh-lightbox__next { right: 24px; top: 50%; transform: translateY(-50%); }

/* ─── Final CTA ──────────────────────────────────────────────────────────── */

.final-cta__heading {
  white-space: normal;
}

/* Let the page pattern continue behind the CTA copy instead of stopping at
   an opaque white section — then dissolve it into solid white right where
   final-cta__image-wrap's photo overlaps (it bleeds up via a negative
   margin-top in style.css), so the pattern reads as fading out under the
   photo rather than getting hard-clipped by it. */
.sh-page--textured .final-cta {
  background: transparent;
  position: relative;
}

.sh-page--textured .final-cta::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 260px;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 85%);
}

.sh-page--textured .final-cta__content {
  z-index: 2;
}

/* ─── Responsive ─────────────────────────────────────────────────────────── */

@media (max-width: 640px) {
  .sh-header { padding-top: 110px; }
  .sh-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 0.6rem; }
  .sh-lightbox__prev, .sh-lightbox__next { width: 36px; height: 36px; }
}

/* ─────────────────────────────────────────────────────────────────────────────
   RTL OVERRIDES — Arabic
   ───────────────────────────────────────────────────────────────────────────── */

[dir="rtl"] .sh-header__address {
  direction: ltr;
  unicode-bidi: isolate;
  text-align: right;
}
