/* Content-specific refinements inside approved D. */
.section .card .card-title{font-size:22px;line-height:1.3;text-transform:none;margin:0;max-width:none}
@media(max-width:600px){.section .card .card-title{font-size:19px}}
.related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.inset-photo{max-width:800px;margin:0 auto;background:var(--surface)}
.inset-photo img{width:100%;height:auto}
@media(max-width:600px){.related-grid{grid-template-columns:1fr}.two{grid-template-columns:minmax(0,1fr)}.two>*{min-width:0}}
/* QA round 1: breadcrumb links share one text line with separators (padding kept for the hit area). */
.crumb{align-items:center}
/* QA round 1: sentence case for spec labels instead of capitalising every word. */
.data dt{text-transform:none}.data dt::first-letter{text-transform:uppercase}
/* Video: poster button, play mark, duration; modal player. */
.video-planned figure{background:var(--surface2)}
.video-card{display:block;position:relative;width:100%;border:0;padding:0;background:var(--surface);overflow:hidden;aspect-ratio:16/9;color:var(--ink)}
.video-planned .video-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.video-card .play{position:absolute;left:50%;top:50%;width:96px;height:96px;margin:-48px 0 0 -48px;display:grid;place-items:center;background:var(--yellow);border-radius:50%;transition:transform .4s var(--ease)}
.video-card .play svg{margin-left:4px}
.video-card .dur{position:absolute;right:16px;bottom:16px;background:var(--bg);color:var(--text);font:500 14px/1 var(--display);padding:10px 12px}
.video-card:hover img{transform:scale(1.04)}.video-card:hover .play{transform:scale(1.08)}
.video-planned figcaption{padding:24px 28px;font-size:18px}
/* Gate3 r1: shared arrow-link typography, one underline only. */
.more{gap:14px;padding:0 0 8px;font:500 15px/1.6 var(--display);letter-spacing:.06em;color:var(--text);border-bottom:2px solid var(--yellow);text-transform:uppercase;transition:gap .35s var(--ease)}
.more:hover{gap:22px;color:var(--text);text-decoration:none}
/* Gate3 r1: one fullscreen media component; no visible caption. */
dialog.media-viewer{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:24px 40px 32px;border:0;background:rgba(15,16,18,.94);color:var(--text);overflow:hidden;box-sizing:border-box}
dialog.media-viewer::backdrop{background:rgba(0,0,0,.7);backdrop-filter:blur(12px)}
.media-viewer[open]{display:grid;grid-template-rows:56px minmax(0,1fr);gap:24px;animation:viewer-in .28s var(--ease)}
.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px}
.viewer-toolbar [data-position]{font:500 15px/1 var(--display);letter-spacing:.06em;font-variant-numeric:tabular-nums;color:var(--text)}
.viewer-actions{display:flex;align-items:center;gap:12px}
.media-viewer .viewer-actions button{display:grid;place-items:center;width:56px;height:56px;padding:0;border:1px solid var(--muted);background:var(--surface);color:var(--text);border-radius:0;transition:background .2s,color .2s}
.media-viewer .viewer-actions button svg{width:24px;height:24px;transform:none}
.media-viewer .viewer-actions button:hover:not(:disabled){background:var(--yellow);color:var(--ink);border-color:var(--yellow)}
.media-viewer .viewer-actions button:disabled{opacity:.35;cursor:default}
/* Review r2: navigation at equal side offsets, clear of the media. */
.media-viewer .viewer-actions [data-prev],.media-viewer .viewer-actions [data-next]{position:absolute;top:50%;transform:translateY(-50%)}
.media-viewer .viewer-actions [data-prev]{left:40px}
.media-viewer .viewer-actions [data-next]{right:40px}
.viewer-stage{min-height:0;min-width:0;display:grid;place-items:center;margin-inline:72px}
@media(max-width:600px){.media-viewer .viewer-actions [data-prev]{left:16px}.media-viewer .viewer-actions [data-next]{right:16px}.viewer-stage{margin-inline:56px}}
.media-viewer .viewer-stage img,.media-viewer .viewer-stage video{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;margin:0;min-height:0}
.media-viewer .viewer-stage [hidden]{display:none}
@keyframes viewer-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:600px){dialog.media-viewer{padding:16px;gap:16px;grid-template-rows:48px minmax(0,1fr)}.media-viewer .viewer-actions button{width:48px;height:48px}.viewer-actions{gap:8px}}
@media(prefers-reduced-motion:reduce){dialog.media-viewer[open]{animation:none}}
/* Map placeholder: revealed on click, no external request in the design preview. */
.map-panel .btn-o{flex:none;background:transparent;color:var(--text);cursor:pointer}
.map-panel .btn-o:hover{background:var(--text);color:var(--bg)}
.map-stub{background:var(--surface2);border-top:1px solid #5d626a;color:#8a8f96;position:relative}
.map-stub svg{display:block;width:100%;height:360px}
.map-stub p{position:absolute;left:64px;bottom:40px;background:var(--bg);color:var(--text);padding:14px 22px;font-size:16px;max-width:calc(100% - 128px);margin:0}
.m .map-stub:not([hidden]){animation:arrive .7s var(--ease) both}
@media(max-width:600px){.video-card .play{width:64px;height:64px;margin:-32px 0 0 -32px}.map-panel{flex-direction:column;align-items:flex-start;gap:24px}.map-stub svg{height:220px}.map-stub p{left:16px;bottom:16px;max-width:calc(100% - 32px);font-size:13px}.video-dialog video{height:70vh}}
