/* Readability and touch refinements. The homepage and shared menu keep their layout. */

/* Contact and enquiry forms retain the existing test-only behaviour. */
.request-form label{font-size:14px;line-height:1.45}
.request-form small,.request-required{font-size:13px;line-height:1.6}
.contact-direct{gap:6px;font-size:14px}
.contact-direct a{display:inline-flex;align-items:center;min-height:44px;max-width:100%;line-height:1.5;overflow-wrap:anywhere}
.contact-direct a:focus-visible,.published-documents a:focus-visible{outline:3px solid #08476c;outline-offset:4px}
.project-story .text-link,.listing-detail .text-link{min-height:44px;line-height:1.5}

/* Project information must remain readable alongside the photographs. */
.project-hero-bottom{font-size:13px;line-height:1.5}
.project-scene-caption{font-size:13px;line-height:1.45;letter-spacing:.025em}
.project-gallery-heading small,.project-film figcaption,.listing-detail>figure figcaption{font-size:13px;line-height:1.5}
.project-scene-selector button{min-height:44px}
.project-scene-selector span{font-size:12px}
.project-scene-selector strong,.project-scene-aras .project-scene-selector strong{font-size:13px;line-height:1.4;overflow-wrap:anywhere}
.project-scene-arrows button{width:44px;height:44px;flex:none}
.gallery-dialog{max-height:94dvh;overflow:auto;overscroll-behavior:contain}
.gallery-dialog-top button,.gallery-dialog-bottom button{min-width:44px;height:44px;flex:none}
.gallery-dialog-bottom{gap:12px;align-items:center}
.gallery-dialog-bottom p{font-size:13px;line-height:1.5;letter-spacing:0;text-transform:none;overflow-wrap:anywhere}

/* Lots keep their native headers even when the visual layout becomes cards. */
.commercial-table a,.commercial-unit a,.commercial-document{min-height:44px;display:inline-flex;align-items:center;line-height:1.4}
.commercial-table a:focus-visible,.commercial-unit a:focus-visible,.commercial-document:focus-visible{outline:3px solid #08476c;outline-offset:4px}
.commercial-status{font-size:13px;line-height:1.4}
.commercial-note,.commercial-source{font-size:13px;line-height:1.6}

/* Footer links are actual touch targets, including the legal and contact links. */
.imcf .imcf-column{gap:4px}
.imcf .imcf-column h2{font-size:13px;line-height:1.5;letter-spacing:.075em}
.imcf .imcf-column>a,.imcf .imcf-contact>a[href^="mailto"]{display:inline-flex;align-items:center;min-height:44px;font-size:14px;line-height:1.5}
.imcf .imcf-column address,.imcf .imcf-identity>p{font-size:14px;line-height:1.65}
.imcf .imcf-legal>p{font-size:13px;line-height:1.7}
.imcf .imcf-legal>p a{display:inline-flex;align-items:center;min-height:44px}
.imcf .imcf-legal nav a,.imcf .imcf-legal nav button{min-height:44px;font-size:14px;line-height:1.5}
.imcf .imcf-social a{min-height:44px;font-size:13px}
.imcf .imcf-bottom small{font-size:12px;line-height:1.6}

/* The promotion film is requested explicitly; no film-distance is imposed at entry. */
.icp:not([data-icp-media="ready"]) [data-icp-film-distance]{display:none}
.icp:not([data-icp-media="ready"]) .icp-cinema{position:relative;top:auto;margin-bottom:0;will-change:auto;opacity:1;clip-path:none}
.icp:not([data-icp-media="ready"]) .icp-workshop{--icp-workshop-copy:1}
.icp:not([data-icp-media="ready"]) .icp-workshop-sticky{position:relative;top:auto;height:auto}
.icp:not([data-icp-media="ready"]) .icp-track{height:auto}
.icp:not([data-icp-media="ready"]) .icp-mobile-camera-distance{display:none}
.icp .icp-cinema:not(.icp-film-started) :is(.icp-cinema-theme,.icp-film-chapters,.icp-cinema-bottom){display:none}
.icp:not([data-icp-media="ready"]) .icp-cinema-video{opacity:1}
.icp .icp-film-start-panel{position:absolute;left:var(--icp-gutter);right:var(--icp-gutter);bottom:104px;max-width:660px;padding:18px 20px;background:#063853e8;border-left:3px solid var(--icp-yellow);color:#fff}
.icp .icp-film-start-panel p{margin:0 0 12px;font-size:14px;line-height:1.55;color:#e6eff4}
.icp .icp-film-start-panel button+p{margin:12px 0 0}
.icp .icp-film-start-panel button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;max-width:100%;padding:12px 18px;border:1px solid var(--icp-yellow);background:var(--icp-yellow);color:var(--icp-deep);font-size:15px;line-height:1.4;font-weight:700;white-space:normal;text-align:center}
.icp .icp-film-start-panel button:disabled{opacity:.75;cursor:progress}
.icp .icp-film-shortcuts{position:static;display:flex;flex-wrap:wrap;gap:10px 28px;max-width:100%;margin:16px 0 0}
.icp .icp-film-shortcuts button,.icp .icp-film-shortcuts a{display:inline-flex;align-items:center;min-height:44px;max-width:100%;padding:9px 0;border:0;border-bottom:1px solid #fbc100;background:none;color:#fff;font-size:14px;line-height:1.4;text-decoration:none;text-align:left}
.icp .icp-film-chapters{max-width:100%;padding:6px 12px;gap:12px;bottom:150px}
.icp .icp-film-chapters button{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;min-width:0;min-height:52px;padding:8px 2px;font-size:12px;line-height:1.35}
.icp .icp-film-chapter-label{display:block;font-size:13px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}
.icp .icp-cinema-theme{bottom:238px}
.icp .icp-cinema-controls button,.icp .icp-cinema-explore{min-height:44px;font-size:14px;line-height:1.4;white-space:normal}
.icp .icp-film-scrub,.icp .icp-film-scrub input{height:44px}
.icp .icp-film-time{font-size:13px;line-height:1.4}
.icp .icp-cinema-caption{font-size:13px;line-height:1.45}
.icp .icp-stage-choices button{font-size:13px;line-height:1.4;min-height:60px}
.icp .icp-stage-choices button>span:first-child{font-size:12px;color:#506c7b}
.icp .icp-model-status,.icp .icp-model-disclaimer,.icp .icp-project-image figcaption{font-size:13px;line-height:1.5}
.icp .icp-progress-control{font-size:13px;line-height:1.4}
.icp .icp-progress-control input{height:44px}
.icp .icp-stage-actors>span,.icp .icp-stage-deliverable>span{font-size:13px;line-height:1.4}
.icp .icp-stage-actors>strong,.icp .icp-stage-deliverable>strong{font-size:14px;line-height:1.5}
.icp .icp-workshop :is(button,a,input,summary,[tabindex]):focus-visible,.icp .icp-transcript>summary:focus-visible{outline-color:var(--icp-blue)}

@media(max-width:850px){
 .commercial-table thead{display:table-header-group;position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .commercial-table td:before{font-size:13px;line-height:1.45}
 .commercial-table a{min-height:44px}
}

@media(max-width:700px){
 .project-hero-bottom{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;font-size:13px;line-height:1.5}
 .project-hero-bottom span:last-child{max-width:none;text-align:left}
 .project-scene-caption{font-size:13px;line-height:1.45;text-transform:none}
 .project-scene-zoom{width:44px;height:44px}
 .gallery-dialog{padding:12px}
 .gallery-dialog img{height:min(62svh,570px);max-height:calc(100dvh - 180px)}
 .gallery-dialog-bottom p{font-size:13px;line-height:1.5}
 .icb .icb-intents button{min-height:96px;padding:12px 7px}
 .icb .icb-intents small{font-size:13px;line-height:1.35}
 .icb .icb-explorer,.icb .icb-panel,.icb .icb-brief{scroll-margin-top:calc(var(--icb-header-height) + 132px)}
 .icb .icb-hero-caption,.icb .icb-map-note{font-size:12px;line-height:1.45}
 .icb .icb-map-toolbar button,.icb .icb-map-status{font-size:13px;line-height:1.4}
 .imcf .imcf-legal nav{gap:4px 18px}
 .imcf .imcf-legal nav button{min-height:44px}
}

/* Tablet, narrow phones and low landscape viewports use the film's direct controls.
   Every block occupies its own row; text and controls never compete for an overlay. */
@media(max-width:1100px),(max-height:700px){
 .icp [data-icp-film-distance]{display:none}
 .icp .icp-cinema{position:relative;top:auto;display:grid;grid-template-columns:minmax(0,1fr);height:auto;min-height:0;margin-bottom:0;padding:0 0 24px;overflow:visible;background:#f3f0e9;color:var(--icp-blue);will-change:auto;opacity:1;clip-path:none}
 .icp .icp-cinema-video{position:relative;inset:auto;grid-column:1;grid-row:1;display:block;width:100%;height:auto;min-height:0;aspect-ratio:16/10;max-height:65svh;object-fit:cover;background:#063853}
 .icp .icp-cinema>:is(.icp-cinema-heading,.icp-cinema-theme,.icp-film-start-panel,.icp-film-shortcuts,.icp-film-chapters,.icp-cinema-bottom,.icp-cinema-caption,.icp-film-error){position:relative;inset:auto;grid-column:1;width:auto;max-width:none;margin-left:var(--icp-gutter);margin-right:var(--icp-gutter);opacity:1}
 .icp .icp-cinema-heading{grid-row:2;margin-top:24px;text-shadow:none}
 .icp .icp-cinema-heading>span{font-size:13px;line-height:1.4}
 .icp .icp-cinema-heading h1{max-width:22ch;margin:10px 0 12px;font-size:clamp(28px,5.5vw,42px);line-height:1.12}
 .icp .icp-cinema-heading p{font-size:14px;line-height:1.5}
 .icp .icp-cinema-heading h1,.icp .icp-cinema-heading>span,.icp .icp-cinema-theme h2,.icp .icp-cinema-theme>span{color:var(--icp-blue)}
 .icp .icp-cinema-heading p,.icp .icp-cinema-theme p,.icp .icp-film-start-panel p{color:#496475}
 .icp .icp-cinema-theme{grid-row:3;margin-top:22px;padding:0 0 0 14px;border-radius:0;background:none}
 .icp .icp-cinema-theme>span{font-size:13px;line-height:1.4}
 .icp .icp-cinema-theme h2{font-size:clamp(24px,4vw,32px);line-height:1.15;margin-bottom:12px}
 .icp .icp-cinema-theme p{max-width:65ch;font-size:15px;line-height:1.55}
 .icp .icp-film-start-panel{grid-row:4;margin-top:22px;padding:0;border:0;background:none}
 .icp .icp-film-start-panel button{width:100%}
 .icp .icp-film-shortcuts{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:14px}
 .icp .icp-film-shortcuts button,.icp .icp-film-shortcuts a{color:var(--icp-blue)}
 .icp .icp-film-chapters{grid-row:6;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 14px;margin-top:22px;padding:8px 0;background:none;border-radius:0}
 .icp .icp-film-chapters button{min-height:56px;padding:8px 0;gap:4px;color:var(--icp-blue);border-top-color:#a9bec7}
 .icp .icp-film-chapters button[aria-current="step"]{color:var(--icp-blue);border-top-color:var(--icp-blue);background:#e5ecef}
 .icp .icp-film-chapter-label{font-size:13px;line-height:1.4}
 .icp .icp-cinema-bottom{grid-row:7;display:flex;flex-direction:column;align-items:stretch;gap:12px;margin-top:16px;padding:16px 0 0;border-top:1px solid #bdccd3;border-radius:0;background:none}
 .icp .icp-cinema-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;width:100%;max-width:none}
 .icp .icp-film-hint{display:block;grid-column:1/-1;max-width:none;font-size:14px;line-height:1.5;white-space:normal;color:var(--icp-blue)}
 .icp .icp-cinema-controls [data-icp-sound]{grid-column:1;grid-row:auto;justify-self:start;min-width:0;width:auto;max-width:100%;padding:10px 12px;font-size:14px;color:var(--icp-blue);background:#fff;border-color:#8da8b6}
 .icp .icp-cinema-controls [data-icp-sound][aria-pressed="true"]{background:var(--icp-blue);color:#fff}
 .icp .icp-film-time{grid-column:2;grid-row:auto;align-self:center;min-width:0;font-size:13px;line-height:1.4;text-align:right;color:var(--icp-blue)}
 .icp .icp-film-scrub{grid-column:1/-1;grid-row:3;display:block;width:100%;min-width:0;max-width:none;height:44px}
 .icp .icp-film-scrub input{width:100%;height:44px;accent-color:var(--icp-blue)}
 .icp .icp-cinema-explore{display:flex;justify-content:space-between;min-height:44px;padding:12px 0;font-size:14px;line-height:1.5;text-align:left;color:var(--icp-blue)}
 .icp .icp-cinema-explore span{color:var(--icp-blue)}
 .icp .icp-cinema-caption{grid-row:8;display:block;margin-top:16px;padding:0;border-radius:0;background:none;font-size:13px;line-height:1.5;color:#496475}
 .icp .icp-film-error{grid-row:9;margin-top:16px;padding:12px;font-size:14px;line-height:1.5;background:#fff1e8;color:#623e28}
 .icp .icp-cinema :is(button,a,input):focus-visible{outline-color:var(--icp-blue)}
 .icp .icp-workshop{--icp-workshop-copy:1}
 .icp .icp-workshop-sticky{position:relative;top:auto;height:auto}
 .icp .icp-track{height:auto}
}

@media(prefers-reduced-motion:reduce){
 .gallery-dialog,.icp .icp-cinema{scroll-behavior:auto}
}
