/* 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; }
.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 white-matted prints, at most three across. 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 { padding: 10px; background: #fff; box-shadow: 0 0 0 1px var(--color-rule); border-radius: 3px; }
.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; }
