/* Classic Agent — modelled on the Cribflyer campaigns (11cuttlers.com): Cinzel + Montserrat,
   white fixed bar, centred headings, a framed hero photograph and a masonry gallery with white mats. */
.theme-classic {
  --font-display: "Cinzel", "Trajan Pro", Georgia, serif;
  --font-body: "Montserrat", system-ui, -apple-system, sans-serif;
  --font-ui: "Montserrat", system-ui, sans-serif;
  --color-bg: #ffffff;
  --color-bg-alt: #fafafa;
  --color-surface: #ffffff;
  --color-text: #212529;
  --color-muted: #5f6870;
  --color-rule: #dee2e6;
  --color-accent: #0a70b8;
  --color-accent-hover: #085a94;
  --color-accent-contrast: #ffffff;
  --color-dark: #212529;
  --radius-sm: 3px;
  --radius-md: 4px;
  --radius-lg: 6px;
  --radius-btn: 2px;
  --photo-radius: 3px;
  --heading-weight: 500;
  --heading-tracking: 0.03em;
  --title-size: clamp(1.8rem, 1.3rem + 1.8vw, 2.6rem);
  --btn-font: "Cinzel", Georgia, serif;
  --btn-tracking: 0.06em;
  --btn-weight: 600;
  --label-tracking: 0.2em;
  --nav-font: "Cinzel", Georgia, serif;
  --nav-case: none;
  --nav-tracking: 0.03em;
  --nav-font-size: 0.86rem;
  --nav-rule: rgba(0, 0, 0, 0.15);
  --nav-height: 80px;
  --gallery-gap: 1.25rem;
  --footer-bg: #f4f4f4;
  --footer-text: #212529;
  --footer-rule: #dee2e6;
}

.theme-classic body { font-weight: 400; }
.theme-classic .section-head { margin-inline: auto; text-align: center; }
.theme-classic .section-head--split { text-align: left; }
.theme-classic .section-head__lede { margin-inline: auto; }
.theme-classic .section-head:not(.section-head--split) .section-head__title::after { content: ""; display: block; width: 64px; height: 1px; background: var(--color-rule); margin: 1.1rem auto 0; }
.theme-classic .contact .section-head, .theme-classic .contact .section-head__lede { margin-inline: 0; text-align: left; }
.theme-classic .contact .section-head__title::after { margin-inline: 0; }

/* hero: framed 3:2 photograph, headline and address between rules underneath */
.hero--classic { padding: calc(var(--nav-height) + clamp(1rem, 3vw, 2rem)) 0 clamp(2rem, 5vw, 3.5rem); }
.hero--classic .hero__frame { position: relative; margin: 0; aspect-ratio: 3 / 2; max-height: 76vh; width: 100%; border-radius: 6px; overflow: hidden; background: var(--color-bg-alt); }
.hero--classic .hero__image, .hero--classic .hero__placeholder { width: 100%; height: 100%; object-fit: cover; }
.hero--classic .status-banner { position: absolute; top: 1.25rem; left: 1.25rem; }
/* a film sets the frame's shape instead of being cropped to 3:2 */
/* a film's frame takes the film's shape (--film-ratio, set on the frame), no taller than 76vh: a film too tall for
   that narrows the frame rather than sitting in black bars */
.hero--classic .hero__frame:has(> .hero__video) { aspect-ratio: var(--film-ratio); max-height: none; width: min(100%, 76vh * var(--film-ratio)); margin-inline: auto; }
.hero--classic .hero__video { --film-max-height: 76vh; --film-max-crop: 0; }
.hero--classic.hero--playing .status-banner { display: none; }
.hero--classic .hero__body { text-align: center; max-width: 900px; margin: clamp(1.75rem, 4vw, 2.75rem) auto 0; }
.hero--classic .hero__title { font-size: clamp(1.9rem, 1.3rem + 2.4vw, 3.1rem); margin: 0 0 1rem; }
.hero--classic .hero__address { display: flex; align-items: center; gap: 1.25rem; margin: 0 0 0.5rem; font-size: 0.95rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-muted); }
.hero--classic .hero__address::before, .hero--classic .hero__address::after { content: ""; flex: 1; border-top: 1px solid var(--color-rule); }
.hero--classic .hero__actions { justify-content: center; }

/* fixed white bar */
.theme-classic .site-nav { box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04); }

/* contact on a photograph inside a white 95% box */
.theme-classic .section--photo-panel {
  background: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)), var(--hero-photo, var(--color-bg-alt)) center / cover no-repeat;
}
.theme-classic .section--photo-panel > .container { background: rgba(255, 255, 255, 0.96); padding: clamp(1.5rem, 4vw, 3rem); border-radius: 4px; }
.theme-classic .section--photo-panel .form-card { border-color: var(--color-rule); }

/* /gallery: rows of photographs, at most three across, edge to edge in their tiles (no mat). Each item spans two rows of the grid (photo, caption) through subgrid,
   so the photos in a row line up and captions of different lengths start on the same line instead of pushing
   the tiles below them out of step. */
.gallery__grid--classic, .gallery--full .gallery__grid--classic { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, max(280px, (100% - 2 * var(--gallery-gap)) / 3)), 1fr)); column-gap: var(--gallery-gap); row-gap: 0; }
.gallery__grid--classic .gallery__item, .gallery--full .gallery__grid--classic .gallery__item:nth-child(3n + 1) { grid-column: auto; grid-row: span 2; display: grid; grid-template-rows: subgrid; padding-bottom: var(--gallery-gap); }
.gallery__grid--classic .gallery__button img, .gallery--full .gallery__grid--classic .gallery__item:nth-child(3n + 1) img { aspect-ratio: 3 / 2; }
.gallery__grid--classic .gallery__caption { margin-top: 0.6rem; }
.theme-classic .gallery__filters { justify-content: center; }

.theme-classic .stat__value { font-family: var(--font-body); font-weight: 400; }
.theme-classic .story-block__title { font-size: clamp(1.4rem, 1.15rem + 0.9vw, 1.8rem); }
.theme-classic .intro__title { font-size: clamp(1.6rem, 1.2rem + 1.5vw, 2.3rem); }
.theme-classic .site-footer__address { font-size: 1.2rem; }
