/* V2 content-completeness pass. Preserve the approved CI and compositions.
   Text on light surfaces uses a darker gold/ink; brand gold stays on navy. */
:root {
  --muted:#53627b;
  --gold-ink:#78551e;
}
body { font-size:16px; line-height:1.85; }
h1,h2,h3 { letter-spacing:normal; }
.eyebrow { font-size:12px; letter-spacing:.16em; }
.nav-shell nav a,.nav-contact { font-size:14px; }
.hero-description,.story-copy>p,.verify-narrative>p { font-size:16px; }
.hero-caption,.hero-bottom>p,.gallery-hint,.drag-hint,.card-tools button { font-size:13px; }
.gallery-hint span { font-size:13px; }
.verify-narrative .eyebrow,.story-copy .eyebrow,.contact-copy .eyebrow { font-size:12px; }
.hero-bottom { gap:20px; }
.button { font-size:14px; min-height:48px; }
.text-link,.text-button { font-size:14px; }
.button .copy-hover { font-size:14px; }
.hover-copy { min-width:0; }
.quick-intro p,.section-note { font-size:14px; }
.services .section-note { color:var(--muted); }
.quick-intro strong { font-size:18px; }
#quick-code,.collection-search input,.input-action input,#private-code { font-size:16px; }
.filter-button { font-size:14px; min-height:44px; }
.collection-count,.card-category,.card-code { font-size:12px; }
.card-category { color:var(--gold-ink); }
.card-meta { min-height:174px; padding:16px 14px; }
.card-meta h3 { font-size:15px; line-height:1.65; min-height:74px; -webkit-line-clamp:3; }
.card-footer { font-size:13px; margin-top:auto; padding-top:12px; }
.card-cta { height:24px; }
.card-cta span { white-space:nowrap; }
.load-more-wrap { margin-top:32px; }
.step-eyebrow { font-size:12px; color:var(--gold-ink); }
.verify-controls-grid p,.verify-controls-grid label,.verify-controls-grid input,
.form-message,.demo-note { font-size:14px; line-height:1.8; }
.verify-controls-grid input { font-size:16px; }
.scan-actions { flex-wrap:wrap; }
.scan-actions .button { flex:1 1 130px; }
.verify-controls-grid .demo-note { font-size:13px; }
.scan-panel>p:not(.step-eyebrow),.scan-panel .form-message { font-size:14px; }
.story-values span { font-size:14px; }
.story-thumbnails { overflow-x:auto; padding:5px 0 12px; }
.story-thumbnails button { flex-shrink:0; }
.video-choice small,.article-card small { font-size:12px; }
.cinema .text-link,#play-video,#play-video>span:last-child { font-size:14px; }
.video-caption .eyebrow { font-size:12px; }
.video-choice strong { font-size:15px; font-weight:500; line-height:1.7; }
.article-card small,.journal .eyebrow,.read-more { color:var(--gold-ink); }
.article-card h3 { font-size:16px; line-height:1.7; }
.read-more { font-size:14px; }
.contact-copy>p { font-size:20px; }
.service-tags span { font-size:13px; }
.contact-row small,.contact-row p { font-size:13px; }
.contact-row strong { font-size:16px; line-height:1.7; overflow-wrap:anywhere; }
.contact-row { gap:15px; }
.contact-icon { flex-shrink:0; }
.contact-hours { gap:10px; }
.contact-hours span { font-size:13px; }
.contact-hours strong { font-size:14px; }
.contact-hours,.contact-row>div { min-width:0; }
.footer-links { flex-wrap:wrap; gap:12px 22px; }
.footer-links a,.footer-main p,.footer-bottom p,.footer-bottom a { font-size:13px; }
.footer-bottom>span { font-size:11px; color:#b5c1d9; }
.dialog-copy p,.dialog-copy dt,.dialog-copy dd { font-size:16px; line-height:1.85; }
.dialog-copy .text-link { font-size:14px; }
.photo-switch button { font-size:14px; min-height:44px; }
.demo-photo-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.demo-photo-pair figure { margin:0; }
#record-result .demo-photo-pair img { width:100%; max-height:200px; object-fit:contain; }
.demo-photo-pair figcaption { text-align:center; font-size:13px; }

/* Services reuse the public-site content and CI, with a compact photo collection. */
#video-watch-link { margin-top:20px; }
.services { background:#fff; color:var(--navy); }
.services .gold-text,.services .eyebrow,.services .text-link { color:var(--gold-ink); }
.services-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.service-card { border:1px solid #ded8c9; padding:28px; display:flex; flex-direction:column; gap:18px; }
.service-number { color:var(--gold-ink); font-size:26px; }
.service-card h3 { font-size:21px; line-height:1.6; font-weight:600; }
.service-card p { font-size:16px; line-height:1.9; color:var(--muted); }
.service-card .text-link { margin-top:auto; }
.service-gallery-heading { display:flex; flex-direction:column; gap:12px; margin:48px 0 24px; }
.service-gallery-heading h3 { font-size:22px; }
.service-gallery-heading p { color:var(--muted); font-size:14px; }
.service-gallery { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:18px; }
.service-photo { position:relative; display:block; padding:0; background:var(--navy); color:white; overflow:hidden; transition:border-radius .35s var(--ease),transform .35s var(--ease); }
.service-photo img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.service-photo>span { display:flex; align-items:center; justify-content:space-between; padding:9px 13px; font-size:13px; }
.service-photo:focus-visible { outline-color:var(--gold-ink); }
.service-gallery-more { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:20px; margin-top:30px; }
.service-gallery-more p { font-size:14px; color:var(--muted); }

/* Both viewers use native dialog focus/escape handling and readable DOM text. */
.reading-dialog { width:min(860px,calc(100% - 40px)); max-height:88dvh; padding:0; background:white; color:var(--navy); }
.reading-content { padding:54px clamp(24px,5vw,64px); }
.reading-content>.eyebrow { color:var(--gold-ink); }
.reading-content>h2 { font-size:clamp(24px,3vw,34px); line-height:1.6; margin:0 24px 28px 0; font-weight:600; }
.reading-content>img { width:100%; max-height:420px; object-fit:contain; background:#f4f3ef; margin-bottom:32px; }
.article-body { font-size:17px; line-height:1.95; overflow-wrap:anywhere; }
.article-body p { margin:0 0 16px; }
.article-body h3 { margin:32px 0 14px; font-size:22px; line-height:1.65; font-weight:600; }
.reading-content>.text-link { margin-top:32px; color:var(--gold-ink); }
.reading-dialog .dialog-close { position:sticky; float:right; top:12px; margin:12px 12px -56px 0; }
.photo-viewer { width:min(1000px,calc(100% - 32px)); padding:50px 24px 24px; max-height:92dvh; background:var(--deep); color:white; }
.photo-viewer .dialog-close { background:white; }
.photo-viewer figure { margin:0; }
.photo-viewer figure img { margin:auto; width:auto; max-width:100%; max-height:65dvh; object-fit:contain; }
.photo-viewer figcaption { text-align:center; font-size:15px; margin-top:16px; }
.photo-viewer-tools { display:flex; justify-content:center; align-items:center; gap:28px; margin-top:14px; }
.photo-viewer-tools button { background:var(--gold); color:var(--navy); width:48px; height:48px; font-size:24px; }
.photo-viewer-tools span { font-size:15px; font-variant-numeric:tabular-nums; }
.reading-dialog::backdrop,.photo-viewer::backdrop { background:rgba(4,16,56,.88); }

@media(hover:hover) {
  .service-photo:hover { border-radius:16px; transform:translateY(-3px); }
}
@media(max-width:1023px) {
  .services-grid { gap:16px; }
  .service-card { padding:22px; }
  .service-card h3 { font-size:19px; }
  .service-gallery { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media(max-width:767px) {
  .services-grid { grid-template-columns:1fr; }
  .service-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
  .service-card { padding:26px; }
  .service-card h3 { font-size:21px; }
  .story-copy>p { font-size:16px; }
  .video-choice strong { font-size:14px; }
}
@media(max-width:600px) {
  .hero h1 { letter-spacing:normal; }
  .hero .eyebrow { font-size:12px; letter-spacing:.14em; }
  .hero-actions .button { font-size:13px; }
  .hero-actions .copy-hover { font-size:13px; }
  .hero-caption { font-size:12px; }
  .quick-intro strong { font-size:17px; }
  .quick-intro p { font-size:14px; }
  .section-heading .eyebrow { font-size:12px; }
  .filter-button { font-size:14px; }
  .collection-search input,#quick-code { font-size:16px; }
  .collection-count { font-size:13px; }
  .card-meta { min-height:178px; padding:13px 10px; }
  .card-meta h3 { font-size:14px; line-height:1.7; min-height:72px; -webkit-line-clamp:3; }
  .card-category { font-size:12px; }
  .card-code { font-size:11px; }
  .card-footer { font-size:13px; }
  .card-cta { height:24px; }
  .card-tools button,.drag-hint { font-size:13px; }
  .verify-narrative>p { font-size:15px; }
  .verify-controls-grid h3 { font-size:21px; }
  .verify-controls-grid input { font-size:16px; }
  .story-copy>p { font-size:16px; line-height:1.9; }
  .story-copy .story-lead { font-size:21px!important; }
  .story-values span { font-size:13px; }
  .gallery-hint { font-size:13px; }
  .service-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .service-gallery-heading h3 { font-size:21px; line-height:1.65; }
  .service-gallery-heading p { font-size:14px; }
  .video-choice small { font-size:12px; }
  .video-choice strong { font-size:14px; }
  .article-card small { font-size:12px; }
  .article-card h3 { font-size:16px; }
  .read-more { font-size:14px; }
  .contact-copy>p { font-size:18px; }
  .service-tags span { font-size:12px; }
  .contact-card { padding:28px 20px; }
  .contact-row { gap:12px; }
  .contact-row strong { font-size:15px; }
  .contact-row small,.contact-row p { font-size:13px; }
  .contact-hours { flex-wrap:wrap; }
  .contact-hours strong { font-size:14px; }
  .footer-main p,.footer-links a,.footer-bottom p,.footer-bottom a { font-size:13px; }
  .mobile-bar a { font-size:14px; }
  .dialog-copy p,.dialog-copy dt,.dialog-copy dd { font-size:15px; }
  .reading-dialog { width:calc(100% - 20px); max-height:90dvh; }
  .reading-content { padding:54px 22px 32px; }
  .reading-content>h2 { font-size:25px; }
  .article-body { font-size:16px; line-height:1.95; }
  .article-body h3 { font-size:20px; }
  .photo-viewer { padding-inline:14px; }
  .photo-viewer figcaption { font-size:14px; }
}
@media(prefers-reduced-motion:reduce) {
  .service-photo { transition:none; }
  .service-photo:hover { transform:none; }
}

/* One photograph per slide. Keep full source images and controls out of the image. */
.service-showcase{max-width:960px;margin-inline:auto;min-width:0}
.service-showcase .service-gallery{display:flex;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#bc9750 #e3dfd5;border:1px solid #bdab7c;border-radius:10px;background:#071638}
.service-showcase .service-photo{flex:0 0 100%;width:100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always;border-radius:0;transform:none}
.service-showcase .service-photo img{display:block;width:100%;height:clamp(300px,48vw,600px);aspect-ratio:auto;object-fit:contain;background:radial-gradient(ellipse at center,#152a50,#04102d)}
.service-showcase .service-photo>span{gap:18px;padding:16px 20px;text-align:left;line-height:1.8}
.service-showcase .service-photo>span>span{flex-shrink:0;color:#e5c47c}
.service-showcase .service-photo:focus-visible{outline:3px solid #e5c47c;outline-offset:-5px}
.service-gallery-controls{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:18px;color:#53627b;font-size:14px}
.service-gallery-buttons{display:flex;gap:10px}
.service-gallery-buttons button{min-width:44px;min-height:44px;padding:8px 14px;border:1px solid #ad945b;border-radius:6px;color:#0b1b4e;background:#fff;font:inherit}
.service-gallery-buttons button:focus-visible{outline:3px solid #78551e;outline-offset:3px}
.service-gallery-buttons button[aria-pressed=true]{background:#0b1b4e;color:#f2ddb0}
.home-page .video-list{max-height:510px;overflow-y:auto;overscroll-behavior:contain;padding-right:12px;scrollbar-width:thin;scrollbar-color:#bc9750 #0b1b4e}
.home-page .video-choice{flex:0 0 auto}
@media(max-width:767px){.service-showcase .service-photo img{height:390px;max-height:65svh}.service-showcase .service-photo>span{display:block;padding:12px 14px;font-size:12px}.service-showcase .service-photo>span>span{display:block;margin-top:4px}.service-gallery-controls{gap:8px;font-size:12px}.service-gallery-buttons{gap:6px}.service-gallery-buttons button{padding-inline:11px}.home-page .video-list{max-height:none;overflow-y:hidden;padding-right:0;padding-bottom:14px;scrollbar-width:thin;scroll-snap-type:x mandatory}.home-page .video-choice{flex:0 0 min(76vw,300px);scroll-snap-align:start}}
