/* One-page photographic proposal. No automatic motion or shared-shell changes. */
body:has(.company-photo-cover) .detail-hero { background: radial-gradient(ellipse at 90% 40%, #0f453c12, transparent 65%); }
body:has(.company-photo-cover) .detail-hero-grid { grid-template-columns: 1.08fr 1fr; gap: 68px; }
body:has(.company-photo-cover) .detail-title { font-size: clamp(42px, 4.8vw, 69px); }
.company-photo-cover { margin: 0; position: relative; }
.company-photo-media { position: relative; overflow: hidden; aspect-ratio: 1 / 1.09; background: #14292b; border: 1px solid #375453; border-radius: 5px; isolation: isolate; }
.company-photo-media > img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; filter: saturate(.88) contrast(1.035); }
.company-photo-media::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1; background: linear-gradient(180deg, #03131750, transparent 25%, transparent 57%, #031019d9); }
.company-photo-index { position: absolute; z-index: 2; top: 25px; left: 25px; padding: 7px 10px; border: 1px solid #84aeab66; border-radius: 3px; background: #071b24d9; color: #d3ebe9; font: 11px/1.6 Consolas, monospace; letter-spacing: .06em; }
.company-photo-caption { position: absolute; z-index: 2; left: 28px; right: 28px; bottom: 28px; display: flex; align-items: flex-start; gap: 15px; }
.company-photo-caption > p { color: #cbddd9; font-size: 14px; line-height: 1.8; }
.company-photo-caption strong { color: #f1f6ef; font-size: 22px; font-weight: 450; letter-spacing: -.025em; }
.company-photo-cross { color: #8aebc7; font: 30px/1.1 Consolas, monospace; margin-top: 5px; }
.company-photo-corner { position: absolute; z-index: 2; width: 21px; height: 21px; pointer-events: none; border: solid #b8e2d799; }
.company-photo-corner-top { right: 19px; top: 19px; border-width: 1px 1px 0 0; }
.company-photo-corner-bottom { left: 19px; bottom: 19px; border-width: 0 0 1px 1px; }
.company-photo-credit { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 7px 18px; padding-top: 13px; color: #9ab2c2; font-size: 12px; line-height: 1.8; }
.company-photo-credit > a { color: #a9c9d3; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.company-photo-credit > a:hover { color: var(--cyan-bright); }
.company-photo-credit a > span { text-decoration: none; display: inline-block; margin-left: 5px; }
.company-photo-story { padding-block: 65px 13px; }
.company-story-heading { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-bottom: 23px; }
.company-story-heading .section-label { margin: 0; }
.company-story-heading > .mono { color: #829fb3; font-size: 10px; flex-shrink: 0; }
.company-context-figure { margin: 0; }
.company-context-media { position: relative; min-height: 475px; isolation: isolate; background: #14232c; border: 1px solid #354a56; border-radius: 5px; overflow: hidden; display: flex; align-items: flex-end; }
.company-context-media > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 55% 45%; filter: saturate(.6) contrast(1.035); z-index: -2; }
.company-context-media::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg, #07101aec 0%, #07101adb 25%, #07101a85 50%, #07101a24 78%), linear-gradient(0deg, #07101a88, transparent 65%); }
.company-context-copy { padding: 50px; max-width: 700px; }
.company-context-kicker { color: #9adccb; font: 11px/1.7 Consolas, monospace; letter-spacing: .055em; margin-bottom: 23px; }
.company-context-copy > h2 { color: #f0f5f8; font-size: clamp(34px, 3.7vw, 53px); line-height: 1.12; font-weight: 450; letter-spacing: -.048em; margin-bottom: 25px; }
.company-context-copy > p:not(.company-context-kicker) { max-width: 470px; color: #ccdce7; font-size: 15px; line-height: 1.85; }
.company-context-link { display: inline-flex; align-items: center; gap: 29px; min-height: 44px; margin-top: 22px; color: #b0f0dc; font-size: 13px; text-decoration: underline; text-underline-offset: 5px; }
.company-context-link > span { font-size: 20px; text-decoration: none; }
.company-context-link:hover { color: #effff8; }
@media (max-width: 1100px) {
    body:has(.company-photo-cover) .detail-hero-grid { gap: 38px; }
    body:has(.company-photo-cover) .detail-title { font-size: clamp(38px, 5.1vw, 56px); }
    .company-photo-caption { left: 23px; right: 23px; bottom: 24px; }
    .company-photo-caption strong { font-size: 20px; }
    .company-context-copy { padding: 38px; }
    .company-context-media { min-height: 435px; }
}
@media (max-width: 800px) {
    body:has(.company-photo-cover) .detail-hero-grid { grid-template-columns: 1fr; gap: 32px; }
    body:has(.company-photo-cover) .detail-visual { max-width: none; }
    body:has(.company-photo-cover) .detail-title { font-size: clamp(39px, 7.3vw, 61px); }
    .company-photo-media { aspect-ratio: 1.35; }
    .company-photo-media > img { object-position: 50% 48%; }
    .company-context-copy { padding: 32px; max-width: 590px; }
    .company-context-media { min-height: 440px; }
    .company-context-media::after { background: linear-gradient(90deg, #07101aed, #07101ac7 55%, #07101a55), linear-gradient(0deg, #07101a77, transparent); }
}
@media (max-width: 640px) {
    body:has(.company-photo-cover) .detail-title { font-size: clamp(35px, 9.6vw, 52px); }
    .company-photo-media { aspect-ratio: .95; }
    .company-photo-media > img { object-position: 50% 43%; }
    .company-photo-index { top: 18px; left: 18px; }
    .company-photo-caption { left: 22px; right: 20px; bottom: 22px; gap: 11px; }
    .company-photo-caption > p { font-size: 12px; }
    .company-photo-caption strong { font-size: 19px; }
    .company-photo-cross { font-size: 26px; }
    .company-photo-credit { gap: 6px; }
    .company-photo-story { padding-block: 44px 5px; }
    .company-story-heading { align-items: flex-start; flex-direction: column; gap: 8px; margin-bottom: 17px; }
    .company-context-media { min-height: 475px; }
    .company-context-media > img { object-position: 58% 45%; }
    .company-context-media::after { background: linear-gradient(180deg, #07101a55, #07101ae8 68%, #07101af0); }
    .company-context-copy { padding: 26px 23px; }
    .company-context-kicker { font-size: 10px; margin-bottom: 18px; }
    .company-context-copy > h2 { font-size: 34px; margin-bottom: 20px; }
    .company-context-copy > p:not(.company-context-kicker) { font-size: 14px; }
    .company-context-link { font-size: 13px; gap: 20px; }
}
