/* Company history: server-rendered chronology, no carousel dependency. */
.ich { --ich-navy:#1d3d6e; --ich-ink:#183250; --ich-muted:#50647d; --ich-line:#d8e3ee; padding:80px 0; color:var(--ich-ink); background:#f4f8fc; }
.ich *, .ich *::before, .ich *::after { box-sizing:border-box; }
.ich__wrap { width:100%; max-width:1480px; padding:0 clamp(20px,4vw,64px); margin:0 auto; }
.ich__heading { max-width:800px; margin:0 0 36px; }
.ich__eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 16px; color:var(--ich-navy); font-size:12px; font-weight:700; line-height:1.5; letter-spacing:.1em; text-transform:uppercase; }
.ich__eyebrow::before { content:""; width:28px; height:3px; flex:none; background:#61be28; }
.ich__heading h2 { margin:0 0 18px; color:var(--ich-navy); font-size:clamp(28px,3.5vw,48px); line-height:1.12; font-weight:750; letter-spacing:-.025em; overflow-wrap:break-word; }
.ich__heading>p:last-child { margin:0; color:var(--ich-muted); font-size:17px; line-height:1.7; }
.ich__years { display:flex; flex-wrap:wrap; gap:8px; padding:0 0 32px; border-bottom:1px solid var(--ich-line); }
.ich__years a { display:inline-flex; align-items:center; justify-content:center; min-width:64px; min-height:44px; padding:10px 14px; border:1px solid var(--ich-line); border-radius:12px; background:#fff; color:var(--ich-navy); font-size:15px; font-weight:650; line-height:1.3; text-decoration:none; }
.ich__years a:hover { background:var(--ich-navy); border-color:var(--ich-navy); color:#fff; }
.ich a:focus-visible, .ich [tabindex="0"]:focus-visible { outline:3px solid #1d63a5; outline-offset:4px; }
.ich__year { display:grid; grid-template-columns:130px minmax(0,1fr); gap:32px; padding:44px 0; border-bottom:1px solid var(--ich-line); scroll-margin-top:155px; }
.ich__year:last-child { padding-bottom:0; border-bottom:0; }
.ich__year-heading h3 { margin:0 0 12px; font-size:clamp(36px,4vw,56px); line-height:1; color:var(--ich-navy); font-weight:750; letter-spacing:-.05em; }
.ich__year-heading p { margin:0; max-width:18ch; font-size:13px; line-height:1.65; color:var(--ich-muted); }
.ich__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; min-width:0; align-items:stretch; }
.ich__card { display:flex; flex-direction:column; min-width:0; height:100%; overflow:hidden; border:1px solid var(--ich-line); border-radius:18px; background:#fff; box-shadow:0 8px 24px -16px rgba(29,61,110,.22); }
.ich__gallery { display:flex; flex:none; width:100%; aspect-ratio:3/2; margin:0; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; overscroll-behavior-x:contain; background:#eaf1f8; }
.ich__gallery::-webkit-scrollbar { display:none; }
.ich__gallery img { flex:0 0 100%; width:100%; max-width:100%; min-width:0; height:100%; aspect-ratio:3/2; object-fit:cover; display:block; scroll-snap-align:start; }
.ich__warehouse { display:block; flex:none; aspect-ratio:3/2; background:#eaf1f8; }
.ich__warehouse img { display:block; width:100%; height:100%; aspect-ratio:3/2; object-fit:cover; }
.ich__card-body { display:flex; flex:1; flex-direction:column; min-width:0; padding:24px; }
.ich__card-body h3, .ich__card-body h4 { min-height:2.8em; margin:0 0 20px; color:var(--ich-navy); font-size:19px; line-height:1.4; font-weight:700; overflow-wrap:break-word; }
.ich__facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 12px; margin:0; }
.ich__facts>div { min-width:0; }
.ich__card--healthcare .ich__facts { grid-template-columns:minmax(0,1fr); }
.ich__details { margin-top:auto; padding-top:20px; }
.ich__details>p:first-child { margin-top:0; }
.ich__facts dt { margin:0 0 5px; color:var(--ich-muted); font-size:12px; line-height:1.5; font-weight:400; }
.ich__facts dd { margin:0; color:var(--ich-ink); font-size:15px; line-height:1.5; font-weight:650; overflow-wrap:break-word; }
.ich__address { margin:18px 0 0; color:var(--ich-muted); font-size:14px; line-height:1.65; }
.ich__gallery-note { margin:16px 0 0; color:var(--ich-muted); font-size:12px; line-height:1.5; }
.ich__card--text { background:var(--ich-navy); border-color:var(--ich-navy); }
.ich__card--text .ich__card-body { padding:32px 24px; }
.ich__card--text .ich__card-body h3, .ich__card--text .ich__card-body h4, .ich__card--text .ich__facts dd, .ich__card--text .ich__project-year, .ich__card--text .ich__card-link { color:#fff; }
.ich__card--text .ich__facts dt { color:#d2e2f2; }
.ich__card--text .ich__card-link:focus-visible { outline-color:#fff; }
.ich--healthcare { background:#fff; scroll-margin-top:155px; }
.ich__healthcare-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.ich__healthcare-grid .ich__card-body { padding:28px; }
.ich__link { display:inline-flex; align-items:center; gap:20px; min-height:48px; margin-top:32px; padding:12px 20px; border:1px solid var(--ich-line); border-radius:10px; color:var(--ich-navy); font-size:15px; line-height:1.5; font-weight:650; text-decoration:none; }
.ich__link:hover { color:#fff; background:var(--ich-navy); }
.ich__highlight-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:stretch; }
.ich__project-year { margin:0 0 12px; color:var(--ich-navy); font-size:28px; font-weight:750; line-height:1.1; }
.ich__card-link { display:inline-flex; min-height:44px; align-items:center; gap:14px; margin-top:18px; color:var(--ich-navy); font-size:14px; font-weight:650; text-decoration:underline; text-underline-offset:4px; }
@media(max-width:1199px) { .ich__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .ich__year { grid-template-columns:110px minmax(0,1fr); gap:24px; } .ich__highlight-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:767px) { .ich__years { flex-wrap:nowrap; overflow-x:auto; gap:8px; padding-bottom:20px; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:#9eb8cc #eaf1f8; } .ich__years a { flex:none; } .ich { padding:56px 0; } .ich__year { grid-template-columns:minmax(0,1fr); gap:20px; padding:32px 0; scroll-margin-top:120px; } .ich__year-heading { display:flex; align-items:center; gap:20px; } .ich__year-heading h3 { margin:0; } .ich__year-heading p { max-width:none; } .ich__healthcare-grid { grid-template-columns:minmax(0,1fr); } .ich__heading>p:last-child { font-size:16px; } }
@media(max-width:639px) { .ich__card-body h3, .ich__card-body h4 { min-height:0; } .ich__grid, .ich__highlight-grid { grid-template-columns:minmax(0,1fr); } .ich__card-body, .ich__healthcare-grid .ich__card-body { padding:22px; } .ich__years { gap:6px; } .ich__years a { min-width:58px; padding:10px; } .ich__facts { gap:14px 10px; } .ich__heading { margin-bottom:28px; } .ich__link { width:100%; justify-content:space-between; } }
@media(prefers-reduced-motion:reduce) { .ich * { scroll-behavior:auto!important; } }
/* Existing history overview: visible SSR copy, keyboard controls, readable labels. */
.ihw .ihw-text { color:#50647d; }
.ihw .ihw-pbtn button { width:44px; height:44px; }
.ihw .ihw-dots button { width:24px; height:44px; padding:0; border:0; background:transparent; cursor:pointer; }
.ihw .ihw-dots button::after { content:""; display:block; width:8px; height:8px; margin:auto; border:1px solid #173a6b; border-radius:50%; background:#fff; }
.ihw .ihw-dots button.on::after { background:#173a6b; box-shadow:0 0 0 2px #fff; }
.ihw button:focus-visible { outline:3px solid #1d63a5; outline-offset:3px; }
.company-history-link__button:focus-visible { outline:3px solid #fff; outline-offset:4px; }
.company-history-link--motion [data-company-history-reveal] { opacity:1; transform:none; }
