/* G&J Photography — component classes extracted from the pages themselves.
 * Generated by classify.py. Each rule carries exactly the declarations of the
 * inline style it replaced, so the render is unchanged.
 *
 * WHY THE SELECTORS ARE DOUBLED (.gj-x.gj-x):
 * These declarations used to be inline styles, which beat every selector.
 * As plain classes they'd be specificity (0,1,0) and would LOSE to rules the
 * site already has -- notably `img[width]{height:auto}` (0,1,1), the CLS guard.
 * That silently un-sized 108 gallery images. Doubling the class gives (0,2,0),
 * which outranks every existing selector that matches these elements, so the
 * render matches what the inline styles produced. (The site already carries a
 * hand-written patch of the same kind: `.fav-strip .fav-panel img{height:100%}`.)
 */

.gj-tile.gj-tile { overflow:hidden; border-radius:6px; aspect-ratio:4/3; }
.gj-tile__img.gj-tile__img { width:100%; height:100%; object-fit:cover; }
.gj-nav__link.gj-nav__link { color:var(--gj-slate); text-decoration:none; font-size:14px; font-weight:600; letter-spacing:0.4px; }
.gj-footer__link.gj-footer__link { color:var(--gj-slate); text-decoration:none; font-size:15px; }
.gj-accent.gj-accent { color:var(--gj-green); }
.gj-eyebrow--bone.gj-eyebrow--bone { color:var(--gj-bone); font-size:14px; font-weight:700; letter-spacing:2px; text-transform:uppercase; margin:0 0 12px; }
.gj-checklist__item.gj-checklist__item { color:var(--gj-slate); font-size:17px; line-height:1.5; padding-left:26px; position:relative; }
.gj-checklist__mark.gj-checklist__mark { position:absolute; left:0; color:var(--gj-green); font-weight:700; }
.gj-logo__svg.gj-logo__svg { display:block; flex-shrink:0; }
.gj-footer__col.gj-footer__col { margin:0; display:flex; flex-direction:column; gap:6px; }
.gj-page.gj-page { background:var(--gj-navy); min-height:100vh; }
.gj-header.gj-header { position:sticky; top:0; z-index:50; background:rgba(14,27,44,0.92); backdrop-filter:blur(12px); border-bottom:1px solid rgba(201,151,0,0.55); }
.gj-header__inner.gj-header__inner { max-width:1240px; margin:0 auto; padding:0 24px; min-height:64px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.gj-wordmark.gj-wordmark { display:flex; align-items:center; gap:11px; font-family:Anton,sans-serif; font-size:20px; letter-spacing:1.5px; color:var(--gj-bone); text-decoration:none; white-space:nowrap; padding:12px 0; }
.gj-nav.gj-nav { display:flex; align-items:center; gap:22px; flex-wrap:wrap; justify-content:flex-end; padding:10px 0; }
.gj-btn.gj-btn { background:var(--gj-green); color:var(--gj-navy); text-decoration:none; font-size:14px; font-weight:700; letter-spacing:0.4px; padding:10px 18px; border-radius:4px; }
.gj-footer.gj-footer { background:var(--gj-surface-sunken); border-top:1px solid rgba(201,151,0,0.45); padding:56px 24px 40px; }
.gj-footer__grid.gj-footer__grid { max-width:1240px; margin:0 auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:36px; }
.gj-footer__brand.gj-footer__brand { display:flex; align-items:center; gap:11px; margin:0 0 12px; }
.gj-footer__wordmark.gj-footer__wordmark { font-family:Anton,sans-serif; font-size:20px; letter-spacing:1.5px; margin:0; }
.gj-text--tight.gj-text--tight { color:var(--gj-slate); font-size:15px; line-height:1.5; margin:0; }
.gj-text--loose.gj-text--loose { color:var(--gj-slate); font-size:15px; line-height:1.7; margin:0; }
.gj-footer__legal.gj-footer__legal { max-width:1240px; margin:40px auto 0; color:var(--gj-slate-dim); font-size:13px; border-top:1px solid rgba(147,165,187,0.15); padding-top:20px; }
.gj-footer__heading.gj-footer__heading { color:var(--gj-gold); font-size:13px; font-weight:700; letter-spacing:3px; text-transform:uppercase; margin:0 0 12px; }
.gj-masonry__item.gj-masonry__item { break-inside:avoid; margin:0 0 14px; overflow:hidden; border-radius:6px; }
.gj-img--block.gj-img--block { width:100%; display:block; }
.gj-nav__link--active.gj-nav__link--active { color:var(--gj-bone); text-decoration:none; font-size:14px; font-weight:700; letter-spacing:0.4px; border-bottom:2px solid var(--gj-green); padding-bottom:2px; }
.gj-tile--flush.gj-tile--flush { overflow:hidden; aspect-ratio:4/3; }
.gj-tile__img--zoom.gj-tile__img--zoom { width:100%; height:100%; object-fit:cover; transition:transform 0.6s ease; }
.gj-field.gj-field { display:flex; flex-direction:column; gap:8px; font-size:14px; font-weight:700; letter-spacing:0.5px; color:var(--gj-bone); }
.gj-btn--lg.gj-btn--lg { display:inline-block; background:var(--gj-green); color:var(--gj-navy); text-decoration:none; font-size:16px; font-weight:700; padding:15px 30px; border-radius:4px; }
.gj-hero.gj-hero { position:relative; min-height:72vh; display:flex; align-items:flex-end; overflow:hidden; }
.gj-mb-22.gj-mb-22 { margin:0 0 22px; }
.gj-block.gj-block { display:block; }
.gj-hero__title.gj-hero__title { font-family:Anton,sans-serif; font-weight:400; font-size:clamp(42px,7vw,92px); line-height:1.0; text-transform:uppercase; letter-spacing:0.5px; margin:0; max-width:16ch; }
.gj-hero__lead.gj-hero__lead { color:var(--gj-slate); font-size:clamp(17px,2vw,20px); line-height:1.55; max-width:58ch; margin:20px 0 30px; }
.gj-grid--gallery.gj-grid--gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; }
.gj-section.gj-section { max-width:1240px; margin:0 auto; padding:64px 24px; }
.gj-grid--split.gj-grid--split { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:40px; align-items:start; }
.gj-h2.gj-h2 { font-family:Anton,sans-serif; font-weight:400; font-size:clamp(30px,4vw,46px); text-transform:uppercase; letter-spacing:0.5px; margin:0 0 24px; }
.gj-checklist.gj-checklist { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.gj-card--gold.gj-card--gold { background:var(--gj-surface-raised); border-radius:8px; padding:36px; border-top:2px solid var(--gj-gold); }
.gj-label.gj-label { color:var(--gj-slate); font-size:14px; font-weight:700; letter-spacing:2px; text-transform:uppercase; margin:0 0 8px; }
.gj-stat.gj-stat { font-family:Anton,sans-serif; font-size:52px; margin:0 0 6px; }
.gj-text--mb28.gj-text--mb28 { color:var(--gj-slate); font-size:15px; line-height:1.55; margin:0 0 28px; }
.gj-btn--md.gj-btn--md { display:inline-block; background:var(--gj-green); color:var(--gj-navy); text-decoration:none; font-size:16px; font-weight:700; padding:14px 28px; border-radius:4px; }
.gj-card-link.gj-card-link { text-decoration:none; color:inherit; background:var(--gj-surface-raised); border-radius:8px; overflow:hidden; display:flex; flex-direction:column; }
.gj-card-link__body.gj-card-link__body { padding:24px 24px 28px; display:flex; flex-direction:column; gap:10px; flex:1; }
.gj-h3.gj-h3 { font-family:Anton,sans-serif; font-weight:400; font-size:26px; text-transform:uppercase; letter-spacing:0.5px; margin:0; }
.gj-card-link__text.gj-card-link__text { color:var(--gj-slate); font-size:16px; line-height:1.55; margin:0; flex:1; }
.gj-card-link__cta.gj-card-link__cta { color:var(--gj-green); font-weight:700; font-size:15px; }
.gj-btn--ghost.gj-btn--ghost { color:var(--gj-bone); border:1px solid rgba(147,165,187,0.35); font-family:Barlow,sans-serif; font-size:15px; font-weight:700; letter-spacing:0.4px; text-decoration:none; padding:14px 26px; border-radius:4px; display:inline-block; }
.gj-eyebrow--sm.gj-eyebrow--sm { color:var(--gj-gold); font-size:13px; font-weight:700; letter-spacing:2px; text-transform:uppercase; margin:0 0 8px; }
.gj-text--16.gj-text--16 { color:var(--gj-slate); font-size:16px; line-height:1.55; margin:0; }
.gj-input.gj-input { background:var(--gj-navy); border:1px solid rgba(147,165,187,0.3); border-radius:4px; padding:13px 14px; color:var(--gj-bone); font-family:Barlow,sans-serif; font-size:16px; font-weight:400; }
.gj-eyebrow--sm-mb14.gj-eyebrow--sm-mb14 { color:var(--gj-gold); font-size:13px; font-weight:700; letter-spacing:2px; text-transform:uppercase; margin:0 0 14px; }
.gj-link--17.gj-link--17 { color:var(--gj-slate); text-decoration:none; font-size:17px; font-weight:600; }
.gj-hero__inner.gj-hero__inner { position:relative; max-width:1240px; margin:0 auto; width:100%; padding:120px 24px 56px; }
.gj-eyebrow--green.gj-eyebrow--green { color:var(--gj-green); font-size:14px; font-weight:700; letter-spacing:3px; text-transform:uppercase; margin:0 0 14px; }
.gj-section--44.gj-section--44 { max-width:1240px; margin:0 auto; padding:44px 24px 24px; }
.gj-prose.gj-prose { color:var(--gj-slate); font-size:17px; line-height:1.6; max-width:64ch; margin:0; }
.gj-section--48.gj-section--48 { max-width:1240px; margin:0 auto; padding:48px 24px 32px; }
.gj-section--tall.gj-section--tall { max-width:1240px; margin:0 auto; padding:120px 24px 96px; min-height:60vh; display:flex; flex-direction:column; justify-content:center; }
.gj-h1--narrow.gj-h1--narrow { font-family:Anton,sans-serif; font-weight:400; font-size:clamp(42px,6.5vw,84px); line-height:1.0; text-transform:uppercase; letter-spacing:0.5px; margin:0 0 18px; max-width:16ch; }
.gj-lead--mb34.gj-lead--mb34 { color:var(--gj-slate); font-size:clamp(17px,2vw,20px); line-height:1.6; max-width:56ch; margin:0 0 34px; }
.gj-btn-row.gj-btn-row { display:flex; gap:14px; flex-wrap:wrap; }
.gj-btn--form.gj-btn--form { background:var(--gj-green); color:var(--gj-navy); font-family:Barlow,sans-serif; font-size:15px; font-weight:700; letter-spacing:0.4px; text-decoration:none; padding:14px 26px; border-radius:4px; display:inline-block; }
.gj-panel.gj-panel { background:var(--gj-surface-raised); border-radius:8px; overflow:hidden; }
.gj-panel__body.gj-panel__body { padding:28px 28px 32px; }
.gj-eyebrow--sm-mb6.gj-eyebrow--sm-mb6 { color:var(--gj-gold); font-size:13px; font-weight:700; letter-spacing:2px; text-transform:uppercase; margin:0 0 6px; }
.gj-h2--sm.gj-h2--sm { font-family:Anton,sans-serif; font-weight:400; font-size:34px; text-transform:uppercase; letter-spacing:0.5px; margin:0 0 14px; }
.gj-text--16-loose.gj-text--16-loose { color:var(--gj-slate); font-size:16px; line-height:1.6; margin:0; }
.gj-link--green.gj-link--green { color:var(--gj-green); text-decoration:none; }
.gj-grid--split-wide.gj-grid--split-wide { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:48px; align-items:center; }
.gj-h1.gj-h1 { font-family:Anton,sans-serif; font-weight:400; font-size:clamp(42px,6.5vw,84px); line-height:1.0; text-transform:uppercase; letter-spacing:0.5px; margin:0 0 18px; }
.gj-lead.gj-lead { color:var(--gj-slate); font-size:clamp(17px,2vw,20px); line-height:1.55; max-width:56ch; margin:0; }
.gj-grid--200.gj-grid--200 { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:20px; }
.gj-link--20.gj-link--20 { color:var(--gj-bone); text-decoration:none; font-size:20px; font-weight:600; }
.gj-rule-top.gj-rule-top { border-top:1px solid rgba(201,151,0,0.4); padding-top:28px; }
.gj-eyebrow--green-mb16.gj-eyebrow--green-mb16 { color:var(--gj-green); font-size:14px; font-weight:700; letter-spacing:3px; text-transform:uppercase; margin:0 0 16px; }
.gj-container.gj-container { max-width:1240px; margin:0 auto; padding:0 24px; }
.gj-hero__scrim.gj-hero__scrim { position:absolute; inset:0; background:linear-gradient(to top, var(--gj-navy) 5%, rgba(14,27,44,0.6) 55%, rgba(14,27,44,0.2) 100%); }
