/* Shared corporate layouts. Content and captions always sit outside photographs. */
body { overflow-wrap:break-word; }
.header-inner nav > a[aria-current=page] { color:var(--accent); border-bottom-color:var(--accent); }
.photo-button { display:block; border:0; padding:0; width:100%; background:var(--paper); cursor:zoom-in; overflow:hidden; }
.photo-button img { transition:transform .45s; }
.photo-button:hover img { transform:scale(1.015); }
.paper-section { background:var(--paper); }
.partnership-grid { display:grid; grid-template-columns:1fr 1fr; gap:65px; }
.partnership-grid article { border-top:1px solid var(--line); padding-top:28px; }
.partnership-grid h3 { font-size:22px; margin-bottom:16px; }
.partnership-grid article > p:not(.eyebrow) { font-size:13px; line-height:1.85; color:var(--muted); }
.partnership-grid .text-link { margin-top:20px; }
.anchor-target { scroll-margin-top:105px; }
.hero-photograph { position:relative; aspect-ratio:2.6; }
.hero-photograph video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; background:var(--ink); }
.hero-play { border:1px solid var(--line); background:#fff; min-height:36px; padding:8px 13px; font-size:10px; white-space:nowrap; }
.hero-play:hover { border-color:var(--accent); }
.hero-media-options { display:flex; gap:25px; align-items:center; border-bottom:1px solid var(--line); padding-block:15px; }
.hero-media-options button { font-size:11px; padding:7px 0; background:none; border:0; border-bottom:1px solid transparent; color:var(--muted); }
.hero-media-options button span { color:var(--accent); font-size:9px; margin-right:8px; }
.hero-media-options button[aria-pressed=true] { border-bottom-color:var(--accent); color:var(--ink); }
.hero-progress { margin-left:auto; display:flex; align-items:center; gap:15px; font-size:9px; color:var(--muted); }
.hero-progress input { width:150px; accent-color:var(--accent); cursor:pointer; }
.hero-video-status { font-size:11px; color:var(--muted); padding-block:12px; }
.property-showcase { padding-bottom:12px; }
.property-showcase-track { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
.property-showcase-track::-webkit-scrollbar { display:none; }
.property-showcase-slide { flex:0 0 100%; min-width:0; scroll-snap-align:start; }
.property-showcase-slide img { aspect-ratio:2.5; object-fit:cover; object-position:center 45%; }
.property-showcase-slide figcaption { padding-top:20px; }
.property-showcase-slide figcaption a { display:flex; align-items:center; gap:25px; }
.property-showcase-slide strong { font-size:18px; font-weight:400; color:var(--ink); }
.property-showcase-slide figcaption span { font-size:11px; }
.property-showcase-slide figcaption i { margin-left:auto; font-size:20px; font-style:normal; color:var(--accent); }
.property-showcase-footer { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:20px; padding-top:20px; border-top:1px solid var(--line); }
.property-showcase-footer > p { font-size:10px; color:var(--muted); }
.property-showcase-controls { display:flex; align-items:center; gap:12px; }
.property-showcase-controls > span { font-size:10px; color:var(--muted); margin-right:12px; }
.story-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:75px; align-items:center; }
.story-photograph img { aspect-ratio:1.35; object-fit:cover; }
.story-copy .lead { font-size:18px; line-height:1.7; color:var(--ink); margin-top:25px; }
.story-copy > p:not(.eyebrow) { font-size:14px; line-height:1.85; color:var(--muted); margin-top:20px; }
.story-copy > .lead { color:var(--ink); font-size:18px; }
.story-copy > .text-link { margin-top:22px; }
.story-copy > .film-link { display:flex; width:fit-content; margin-top:22px; }
.story-reverse .story-grid { grid-template-columns:1fr 1.15fr; }
.story-reverse .story-photograph { grid-column:2; grid-row:1; }
.story-reverse .story-copy { grid-column:1; grid-row:1; }
.image-pair { display:grid; grid-template-columns:1fr 1fr; gap:30px; padding-bottom:70px; }
.image-pair img { aspect-ratio:1.8; object-fit:cover; }
.company-number { padding-bottom:14px; }
.company-picture { margin-bottom:22px; }
.company-picture img { height:140px; object-fit:cover; }
.company-picture span { display:block; margin-top:8px; font-size:8px; color:var(--muted); line-height:1.5; }
.group-company:nth-child(3) .company-picture img { object-fit:contain; padding:15px; background:var(--paper); }
.editorial-grid { display:grid; gap:28px; }
.editorial-grid-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.editorial-grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.editorial-grid > * { min-width:0; }
.editorial-grid img { aspect-ratio:1.5; object-fit:cover; }
.editorial-card { display:flex; flex-direction:column; }
.editorial-card-copy { padding-top:20px; flex:1; display:flex; flex-direction:column; align-items:start; }
.editorial-card-copy h3 { font-size:21px; margin-bottom:12px; }
.editorial-card-copy > p { font-size:13px; line-height:1.85; color:var(--muted); margin-bottom:20px; }
.editorial-card-copy .text-link { margin-top:auto; font-size:12px; }
.capability-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:36px; }
.capability-grid article { border-top:1px solid var(--line); padding-top:22px; }
.capability-grid article > span { display:block; font-size:10px; color:var(--accent); margin-bottom:20px; }
.capability-grid h3 { font-size:18px; margin-bottom:15px; }
.capability-grid p { font-size:12px; line-height:1.85; color:var(--muted); }
.technology-feature { border-top:1px solid var(--line); display:grid; grid-template-columns:1.1fr 1fr; gap:80px; align-items:center; }
.technology-panel > p:not(.eyebrow) { font-size:14px; color:var(--muted); margin-top:22px; line-height:1.85; }
.technology-panel > .lead { font-size:18px; color:var(--ink); }
.technology-panel > .text-link { margin-top:24px; }
.technology-panel > .film-link { display:flex; width:fit-content; margin-top:20px; }
.technology-screen { background:var(--paper); border:1px solid var(--line); padding:48px; }
.technology-screen > img { width:180px; height:auto; object-fit:contain; margin-bottom:40px; }
.technology-steps { display:grid; gap:22px; margin-bottom:40px; }
.technology-steps span { display:flex; gap:20px; border-bottom:1px solid var(--line); padding-bottom:22px; font-size:10px; color:var(--accent); align-items:center; }
.technology-steps strong { font-size:16px; font-weight:400; color:var(--ink); }
.technology-screen .button { width:100%; }
.division-introduction { display:grid; grid-template-columns:1.3fr 1fr; gap:100px; align-items:end; padding-block:52px 38px; }
.division-introduction > div > p:not(.eyebrow) { max-width:440px; color:var(--muted); font-size:14px; line-height:1.85; }
.division-introduction .film-link { margin-top:20px; }
.division-cover img { aspect-ratio:2.65; object-fit:cover; }
.division-cover figcaption { padding-top:15px; }
.division-numbers { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; padding-block:42px; border-bottom:1px solid var(--line); }
.division-numbers > div { padding-left:28px; border-left:1px solid var(--line); }
.division-numbers > div:first-child { padding-left:0; border:0; }
.division-numbers strong { font-size:34px; font-weight:400; line-height:1.3; letter-spacing:-.025em; }
.division-numbers p { font-size:11px; color:var(--muted); margin-top:10px; }
.fact-list { display:grid; grid-template-columns:1fr 1fr; gap:20px; padding-block:20px; border-block:1px solid var(--line); margin:24px 0 0; }
.fact-list dt { font-size:10px; color:var(--muted); }
.fact-list dd { font-size:22px; margin:8px 0 0; }
.photo-dialog { width:min(1200px,calc(100% - 48px)); max-width:calc(100% - 48px); }
.photo-dialog figure { padding:20px; }
.photo-dialog img { max-height:75dvh; object-fit:contain; width:100%; background:var(--paper); }
.photo-dialog figcaption { font-size:12px; padding-top:18px; }
.contact-layout { display:grid; grid-template-columns:1fr 1.25fr; gap:100px; }
.contact-information > p:not(.eyebrow) { color:var(--muted); font-size:14px; margin-top:20px; max-width:400px; }
.contact-details { margin-block:35px; }
.contact-details > div { padding-block:20px; border-top:1px solid var(--line); }
.contact-details dt { font-size:10px; color:var(--accent); margin-bottom:8px; text-transform:uppercase; letter-spacing:.08em; }
.contact-details dd { margin:0; font-size:14px; }
.contact-details a:hover { color:var(--accent); }
.contact-information > .text-link { display:flex; width:fit-content; margin-top:20px; }
.contact-information > .contact-note { font-size:12px; }
.corporate-contact-form { background:var(--paper); padding:40px; }
.corporate-contact-form h2 { font-size:26px; }
.corporate-contact-form > p { color:var(--muted); font-size:11px; margin-top:14px; }
.honeypot { display:none; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-block:30px; }
.form-grid label { display:flex; flex-direction:column; gap:9px; font-size:11px; }
.form-grid input,.form-grid textarea,.form-grid select { width:100%; border:1px solid #c7cac3; border-radius:0; background:#fff; padding:12px; font:400 14px/1.5 var(--font); }
.form-grid textarea { resize:vertical; min-height:140px; }
.form-wide { grid-column:1/-1; }
.corporate-contact-form .button { margin-top:25px; }
.corporate-contact-form button:disabled { cursor:wait; opacity:.65; }
.corporate-contact-form .contact-status { font-size:13px; padding:16px; border-left:2px solid var(--accent); background:#fff; }
.contact-status[data-state=error] { color:#8b3328; }
.error-section { padding-block:100px; min-height:60vh; }
.error-section > p:not(.eyebrow) { color:var(--muted); margin-top:25px; max-width:520px; }
.error-actions { display:flex; gap:30px; flex-wrap:wrap; align-items:center; margin-top:30px; }
@media (max-width:1100px) {
  .story-grid,.story-reverse .story-grid { gap:40px; }
  .division-introduction { gap:50px; }
  .capability-grid { gap:24px; }
  .technology-feature,.contact-layout { gap:45px; }
  .corporate-contact-form { padding:30px; }
  .company-picture span { font-size:7px; }
  .company-picture img { height:110px; }
}
@media (max-width:860px) {
  .hero-media-options { gap:20px; flex-wrap:wrap; }
  .hero-progress { width:100%; margin:0; justify-content:space-between; }
  .hero-progress input { flex:1; max-width:400px; }
  .hero-caption { gap:15px; }
  .hero-play { padding-inline:9px; }
  .story-copy > .lead { font-size:16px; }
  .story-copy > p:not(.eyebrow) { font-size:13px; }
  .story-photograph img { aspect-ratio:1.05; }
  .company-picture { display:none; }
  .company-number { padding:0; }
  .editorial-grid { gap:20px; }
  .editorial-card-copy h3 { font-size:18px; }
  .editorial-card-copy > p { font-size:12px; }
  .capability-grid { grid-template-columns:1fr 1fr; gap:30px; }
  .division-introduction { gap:40px; }
  .division-introduction > div > p:not(.eyebrow) { font-size:13px; }
  .division-cover img { aspect-ratio:2; }
  .division-numbers { gap:24px; }
  .division-numbers strong { font-size:26px; }
  .technology-feature { gap:35px; }
  .technology-screen { padding:30px; }
  .contact-layout { gap:35px; grid-template-columns:1fr 1.2fr; }
  .corporate-contact-form { padding:25px; }
  .form-grid { grid-template-columns:1fr; }
}
@media (max-width:600px) {
  .property-showcase-slide img { aspect-ratio:1.4; }
  .property-showcase-slide figcaption a { flex-wrap:wrap; gap:8px 18px; }
  .property-showcase-slide figcaption strong { font-size:18px; }
  .property-showcase-slide figcaption span { flex-basis:100%; font-size:10px; }
  .property-showcase-slide figcaption i { display:none; }
  .property-showcase-footer > p { max-width:140px; }
  .partnership-grid { grid-template-columns:1fr; gap:30px; }
  .hero-photograph { aspect-ratio:1.35; }
  .hero-gallery-footer { align-items:start; gap:12px; }
  .hero-gallery-controls { flex-wrap:wrap; justify-content:flex-end; max-width:125px; flex-shrink:0; }
  .hero-play { flex-basis:100%; min-height:32px; }
  .hero-media-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px 12px; padding-block:12px; }
  .hero-media-options button { font-size:9px; text-align:left; min-height:36px; }
  .hero-media-options button span { display:block; margin-bottom:4px; }
  .hero-progress { grid-column:1/-1; }
  .hero-progress input { max-width:none; }
  .story-grid,.story-reverse .story-grid { grid-template-columns:1fr; gap:28px; }
  .story-reverse .story-photograph,.story-reverse .story-copy { grid-column:auto; grid-row:auto; }
  .story-photograph img { aspect-ratio:1.35; }
  .story-copy > .lead { font-size:17px; }
  .story-copy > p:not(.eyebrow) { margin-top:18px; }
  .story-copy .text-link { font-size:12px; }
  .image-pair { grid-template-columns:1fr; gap:25px; padding-bottom:48px; }
  .editorial-grid-3,.editorial-grid-2 { grid-template-columns:1fr; gap:34px; }
  .editorial-grid img { aspect-ratio:1.6; }
  .editorial-card-copy h3 { font-size:21px; }
  .editorial-card-copy > p { font-size:13px; }
  .capability-grid { gap:26px 22px; }
  .capability-grid h3 { font-size:16px; }
  .capability-grid p { font-size:11px; }
  .technology-feature { grid-template-columns:1fr; gap:30px; }
  .technology-panel > p:not(.eyebrow) { font-size:13px; }
  .technology-panel > .lead { font-size:17px; }
  .technology-screen { padding:30px; }
  .technology-screen > img { width:155px; }
  .division-introduction { grid-template-columns:1fr; gap:22px; padding-block:34px 28px; }
  .division-introduction h1 { font-size:30px; }
  .division-cover img { aspect-ratio:1.4; }
  .division-numbers { gap:20px 0; grid-template-columns:1fr; padding-block:28px; }
  .division-numbers > div,.division-numbers > div:first-child { border:0; border-bottom:1px solid var(--line); padding:0 0 18px; }
  .division-numbers > div:last-child { padding-bottom:0; border:0; }
  .division-numbers strong { font-size:30px; }
  .division-numbers p { margin-top:5px; }
  .contact-layout { grid-template-columns:1fr; gap:40px; }
  .corporate-contact-form { padding:25px 20px; }
  .contact-information > p:not(.eyebrow) { font-size:13px; }
  .photo-dialog { width:calc(100% - 24px); max-width:calc(100% - 24px); }
  .photo-dialog figure { padding:12px; }
  .photo-dialog figcaption { font-size:11px; }
  .error-section { padding-block:65px; }
}
@media (prefers-reduced-motion:reduce) { .photo-button img { transition:none; } }
