/*! Arif Habib Corporation Limited — website design system. Tokens + components + site layer. */
/* ===== Tokens ===== */
:root {
  --surface: #ffffff;
  --surface-alt: #f7f5f0;
  --surface-tint: #edf1fa;
  --brand: #1e3a8a;
  --brand-deep: #0f1f52;
  --on-brand: #ffffff;
  --on-brand-muted: #c9d3f2;
  --brand-ink: #1e3a8a;
  --action: #1e3a8a;
  --on-action: #ffffff;
  --ink: #0f1b3d;
  --ink-muted: #4a5678;
  --line: #dce1ee;
  --border-strong: #6b7799;
  --accent: #c9a24b;
  --on-accent: #0f1f52;
  --accent-ink: #7a5710;
  --focus: #1e3a8a;
  --focus-on-brand: #ffd88a;
  --success: #17693f;
  --warning: #8a4b00;
  --danger: #b42318;
  --success-tint: #e6f4ec;
  --warning-tint: #fff3dc;
  --danger-tint: #fdecea;
  --scrim: #0f1f52b8;
  --shadow-sm: 0 1px 2px 0 rgba(15,31,82,0.08);
  --shadow-md: 0 8px 24px -8px rgba(15,31,82,0.18);
  --shadow-lg: 0 24px 48px -16px rgba(15,31,82,0.28);
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 128px;
  --radius-sm: 2px;
  --radius-md: 6px;
  --radius-lg: 12px;
  --radius-pill: 999px;
  --container: 1240px;
  --container-narrow: 880px;
  --gutter: 24px;
  --header-h: 88px;
  --topbar-h: 40px;
  --font-display: "Source Serif 4", Georgia, "Times New Roman", serif;
  --font-sans: "Manrope", "Segoe UI", system-ui, sans-serif;
  --font-urdu: "Noto Nastaliq Urdu", "Jameel Noori Nastaleeq", serif;
}

/* ===== Components ===== */

/* ============ Base ============ */
.ahc, .ahc *, .ahc *::before, .ahc *::after { box-sizing: border-box; }
.ahc { font-family: var(--font-sans); font-size: 16px; line-height: 26px; color: var(--ink); background: var(--surface); -webkit-font-smoothing: antialiased; }
.ahc img { max-width: 100%; display: block; }
:where(.ahc) a { color: var(--brand-ink); text-underline-offset: 3px; }
:where(.ahc) :is(h1, h2, h3, h4, p, ul, ol, figure, blockquote) { margin: 0; }
:where(.ahc) :is(ul, ol) { padding: 0; list-style: none; }
.ahc :focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.ahc-on-dark :focus-visible, .ahc-topbar :focus-visible, .ahc-hero :focus-visible, .ahc-pagehead :focus-visible, .ahc-footer :focus-visible, .ahc-band--brand :focus-visible, .ahc-band--deep :focus-visible { outline-color: var(--focus-on-brand); }
.ahc [lang="ur"] { font-family: var(--font-urdu); line-height: 2; }
.ahc .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ahc-skip { position: absolute; inset-inline-start: 8px; top: -60px; background: var(--brand-deep); color: var(--on-brand); padding: 12px 16px; z-index: 100; }
.ahc-skip:focus { top: 8px; }
.ahc-container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.ahc-container--narrow { max-width: calc(var(--container-narrow) + 2 * var(--gutter)); }
.ahc-section { padding-block: var(--space-9); overflow-x: clip; }
.ahc-logos { display: grid; grid-template-columns: repeat(7, 1fr); gap: var(--space-4); }
.ahc-band--alt { background: var(--surface-alt); }
.ahc-band--tint { background: var(--surface-tint); }
.ahc-band--brand { background: var(--brand); color: var(--on-brand); }
.ahc-band--deep { background: var(--brand-deep); color: var(--on-brand); }
.ahc-band--brand a:not(.ahc-btn), .ahc-band--deep a:not(.ahc-btn) { color: var(--accent); }
.ahc-band--brand .ahc-lead, .ahc-band--deep .ahc-lead { color: var(--on-brand-muted); }
.ahc-eyebrow { display: inline-flex; align-items: center; gap: 12px; font-size: 12px; line-height: 18px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--accent-ink); }
.ahc-eyebrow::before { content: ""; width: 32px; height: 1px; background: currentColor; }
.ahc-band--brand .ahc-eyebrow, .ahc-band--deep .ahc-eyebrow, .ahc-hero .ahc-eyebrow, .ahc-pagehead .ahc-eyebrow { color: var(--accent); }
.ahc-rule { width: 64px; height: 2px; background: var(--accent); border: 0; margin: 0; }
.ahc-lead { font-size: 20px; line-height: 32px; color: var(--ink-muted); max-width: 62ch; }
.ahc-muted { color: var(--ink-muted); }
.ahc-sechead { display: flex; flex-direction: column; gap: var(--space-3); margin-bottom: var(--space-7); max-width: 760px; }
.ahc-sechead--split { max-width: none; flex-direction: row; justify-content: space-between; align-items: flex-end; gap: var(--space-6); flex-wrap: wrap; }
.ahc-sechead--center { align-items: center; text-align: center; margin-inline: auto; }
.ahc-grid { display: grid; gap: var(--space-5); }
.ahc-grid > *, .ahc-split > *, .ahc-quote > *, .ahc-footer__top > *, .ahc-grievance > *, .ahc-form > * { min-width: 0; }
.ahc-grid--2 { grid-template-columns: repeat(2, 1fr); }
.ahc-grid--3 { grid-template-columns: repeat(3, 1fr); }
.ahc-grid--4 { grid-template-columns: repeat(4, 1fr); }
.ahc-placeholder { background: repeating-linear-gradient(135deg, var(--surface-tint) 0 12px, var(--surface-alt) 12px 24px); color: var(--ink-muted); display: grid; place-items: center; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; text-align: center; padding: var(--space-3); }
.ahc-slot-note { display: inline-block; font-size: 12px; line-height: 18px; font-weight: 700; letter-spacing: .04em; color: var(--accent-ink); background: var(--surface-alt); border: 1px dashed var(--border-strong); padding: 2px 8px; border-radius: var(--radius-sm); }

/* ============ Buttons ============ */
.ahc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 28px; border: 1.5px solid transparent; border-radius: var(--radius-sm); font: 600 14px/20px var(--font-sans); letter-spacing: .02em; text-decoration: none; cursor: pointer; transition: background .2s, color .2s, border-color .2s, transform .2s; }
.ahc-btn::after { content: "\2192"; transition: transform .2s; }
.ahc-btn--plain::after, .ahc-btn--download::after { content: none; }
.ahc-btn:hover::after { transform: translateX(4px); }
[dir="rtl"] .ahc-btn::after, [dir="rtl"] .ahc-link::after { content: "\2190"; }
.ahc-btn--primary { background: var(--action); color: var(--on-action); }
.ahc-btn--primary:hover { background: var(--brand-deep); color: var(--on-brand); }
.ahc-btn--secondary { background: transparent; color: var(--brand-ink); border-color: var(--border-strong); }
.ahc-btn--secondary:hover { border-color: var(--brand-ink); background: var(--surface-tint); }
.ahc-btn--gold { background: var(--accent); color: var(--on-accent); }
.ahc-btn--gold:hover { background: var(--on-brand); }
.ahc-btn--light { background: transparent; color: var(--on-brand); border-color: rgba(255,255,255,.55); }
.ahc-btn--light:hover { background: var(--on-brand); color: var(--brand-deep); }
.ahc-btn--sm { padding: 9px 16px; font-size: 13px; }
.ahc-btn--lg { padding: 18px 36px; font-size: 15px; }
.ahc-btn--download::before { content: "\2193"; font-weight: 800; }
.ahc-link { display: inline-flex; gap: 8px; align-items: center; font-weight: 700; font-size: 14px; color: var(--brand-ink); text-decoration: none; border-bottom: 1px solid var(--accent); padding-bottom: 2px; }
.ahc-link::after { content: "\2192"; transition: transform .2s; }
.ahc-link:hover::after { transform: translateX(4px); }
.ahc-band--deep .ahc-link, .ahc-band--brand .ahc-link { color: var(--accent); }
.ahc-tag { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; border-radius: var(--radius-sm); font-size: 12px; line-height: 18px; font-weight: 700; letter-spacing: .04em; background: var(--surface-tint); color: var(--brand-ink); }
.ahc-tag--gold { background: var(--surface-alt); color: var(--accent-ink); border: 1px solid var(--line); }
.ahc-tag--success { background: var(--success-tint); color: var(--success); }
.ahc-tag--warning { background: var(--warning-tint); color: var(--warning); }

/* ============ Topbar & Header ============ */
.ahc-topbar { background: var(--brand-deep); color: var(--on-brand-muted); font-size: 13px; }
.ahc-topbar .ahc-container { display: flex; justify-content: space-between; align-items: center; min-height: var(--topbar-h); gap: var(--space-5); flex-wrap: wrap; }
.ahc-topbar ul { display: flex; gap: var(--space-5); align-items: center; flex-wrap: wrap; }
.ahc-topbar a { color: var(--on-brand-muted); text-decoration: none; font-weight: 600; }
.ahc-topbar a:hover { color: var(--accent); }
.ahc-langswitch { display: inline-flex; border: 1px solid rgba(255,255,255,.35); border-radius: var(--radius-pill); overflow: hidden; }
.ahc-langswitch a { padding: 2px 14px; }
.ahc-langswitch a[aria-current="true"] { background: var(--on-brand); color: var(--brand-deep); }
.ahc-header { position: sticky; top: 0; z-index: 50; background: var(--surface); border-bottom: 1px solid var(--line); box-shadow: var(--shadow-sm); }
.ahc-header .ahc-container { display: flex; align-items: center; justify-content: space-between; height: var(--header-h); gap: var(--space-6); }
.ahc-brandmark { display: inline-flex; flex-direction: column; text-decoration: none; color: var(--brand-ink); line-height: 1; }
.ahc-brandmark strong { font: 600 26px/28px var(--font-display); letter-spacing: -.01em; }
.ahc-brandmark span { white-space: nowrap; font-size: 10px; line-height: 14px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-muted); }
.ahc-nav { display: flex; gap: var(--space-1); align-items: center; }
.ahc-nav > li { position: relative; }
.ahc-nav > li > a, .ahc-nav > li > button { display: inline-flex; align-items: center; gap: 6px; height: var(--header-h); padding-inline: 12px; white-space: nowrap; font: 600 15px/20px var(--font-sans); letter-spacing: .01em; color: var(--ink); background: none; border: 0; text-decoration: none; cursor: pointer; position: relative; }
.ahc-nav > li > button::after { content: ""; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); }
.ahc-nav > li > a::before, .ahc-nav > li > button::before { content: ""; position: absolute; inset-inline: 12px; bottom: 22px; height: 2px; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.ahc-nav > li:hover > a::before, .ahc-nav > li:hover > button::before, .ahc-nav > li:focus-within > button::before, .ahc-nav > li > [aria-current="page"]::before { transform: scaleX(1); }
.ahc-mega { display: none; position: absolute; top: 100%; inset-inline-start: 50%; transform: translateX(-30%); width: 760px; background: var(--surface); border: 1px solid var(--line); border-top: 2px solid var(--accent); border-radius: 0 0 var(--radius-md) var(--radius-md); box-shadow: var(--shadow-md); grid-template-columns: 240px 1fr 1fr; }
.ahc-nav > li:hover > .ahc-mega, .ahc-nav > li:focus-within > .ahc-mega, .ahc-nav > li.is-open > .ahc-mega { display: grid; }
.ahc-mega__intro { background: var(--surface-tint); padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-3); }
.ahc-mega__intro strong { font: 600 22px/28px var(--font-display); }
.ahc-mega__intro p { font-size: 14px; line-height: 22px; color: var(--ink-muted); }
.ahc-mega ul { padding: var(--space-5) var(--space-5); display: flex; flex-direction: column; gap: 2px; }
.ahc-mega ul a { display: block; padding: 8px 10px; border-radius: var(--radius-sm); font-size: 14px; line-height: 20px; font-weight: 600; color: var(--ink); text-decoration: none; }
.ahc-mega ul a:hover { background: var(--surface-tint); color: var(--brand-ink); }
.ahc-header__actions { display: flex; align-items: center; gap: var(--space-3); }
.ahc-iconbtn { width: 44px; height: 44px; display: inline-grid; place-items: center; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); color: var(--ink); cursor: pointer; font-size: 16px; }
.ahc-iconbtn:hover { border-color: var(--border-strong); background: var(--surface-tint); }
.ahc-menu-toggle { display: none; }

/* ============ Hero & page header ============ */
.ahc-hero { position: relative; isolation: isolate; background: var(--brand-deep); color: var(--on-brand); min-height: 680px; display: flex; align-items: center; overflow: hidden; }
.ahc-hero__media { position: absolute; inset: 0; z-index: -2; object-fit: cover; width: 100%; height: 100%; background: linear-gradient(160deg, var(--brand) 0%, var(--brand-deep) 70%); }
.ahc-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, var(--scrim) 0%, rgba(15,31,82,.18) 100%), repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 1px, transparent 1px 96px); }
.ahc-hero::after { content: ""; position: absolute; inset-inline-start: 0; bottom: 0; width: 38%; height: 4px; background: var(--accent); }
.ahc-hero .ahc-container { padding-block: var(--space-10) 160px; }
.ahc-hero__copy { max-width: 760px; display: flex; flex-direction: column; gap: var(--space-5); align-items: flex-start; }
.ahc-hero h1 { font: 600 64px/68px var(--font-display); letter-spacing: -.02em; }
.ahc-hero p { font-size: 20px; line-height: 32px; color: var(--on-brand-muted); max-width: 56ch; }
.ahc-hero__cta { display: flex; gap: var(--space-4); flex-wrap: wrap; margin-top: var(--space-3); }
.ahc-pagehead { position: relative; background: var(--brand-deep); color: var(--on-brand); padding-block: var(--space-8) var(--space-8); overflow: hidden; isolation: isolate; }
.ahc-pagehead::before { content: ""; position: absolute; inset: 0; z-index: -1; background: repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 1px, transparent 1px 96px); }
.ahc-pagehead::after { content: ""; position: absolute; inset-inline-start: 0; bottom: 0; width: 120px; height: 4px; background: var(--accent); }
.ahc-pagehead .ahc-container { display: flex; flex-direction: column; gap: var(--space-4); }
.ahc-pagehead h1 { font: 600 48px/54px var(--font-display); letter-spacing: -.015em; }
.ahc-pagehead p { color: var(--on-brand-muted); max-width: 62ch; font-size: 18px; line-height: 28px; }
.ahc-crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: 13px; color: var(--on-brand-muted); }
.ahc-crumbs a { color: var(--on-brand-muted); text-decoration: none; }
.ahc-crumbs a:hover { color: var(--accent); text-decoration: underline; }
.ahc-crumbs li + li::before { content: "/"; margin-inline-end: 8px; opacity: .6; }

/* ============ Stats ============ */
.ahc-stats { position: relative; z-index: 2; margin-top: -96px; background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--accent); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); padding: var(--space-6) var(--space-6) var(--space-5); }
.ahc-stats__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.ahc-stat { padding: var(--space-3) var(--space-5); border-inline-start: 1px solid var(--line); display: flex; flex-direction: column; gap: 6px; }
.ahc-stat:first-child { border-inline-start: 0; padding-inline-start: 0; }
.ahc-stat__value { font: 600 56px/56px var(--font-display); letter-spacing: -.02em; color: var(--brand-ink); }
.ahc-stat__value small { font-size: 22px; letter-spacing: 0; margin-inline-start: 4px; color: var(--ink-muted); font-weight: 400; }
.ahc-stat__label { font-size: 14px; line-height: 20px; font-weight: 700; color: var(--ink); }
.ahc-stats__foot { margin-top: var(--space-4); padding-top: var(--space-3); border-top: 1px solid var(--line); font-size: 12px; line-height: 18px; color: var(--ink-muted); display: flex; justify-content: space-between; gap: var(--space-4); flex-wrap: wrap; }
.ahc-band--deep .ahc-stat__value { color: var(--accent); }
.ahc-band--deep .ahc-stat { border-color: rgba(255,255,255,.2); }
.ahc-band--deep .ahc-stat__label { color: var(--on-brand); }

/* ============ Cards ============ */
.ahc-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; display: flex; flex-direction: column; transition: box-shadow .25s, transform .25s, border-color .25s; }
.ahc-card:hover { box-shadow: var(--shadow-md); transform: translateY(-4px); border-color: var(--border-strong); }
.ahc-card__media { aspect-ratio: 4 / 3; }
.ahc-card__body { padding: var(--space-5); display: flex; flex-direction: column; gap: var(--space-3); flex: 1; }
.ahc-card__body h3 { font: 600 24px/32px var(--font-display); }
.ahc-card__body p { font-size: 14px; line-height: 22px; color: var(--ink-muted); }
.ahc-card__foot { margin-top: auto; padding-top: var(--space-3); }
.ahc-sector .ahc-card__media { position: relative; }
.ahc-sector .ahc-card__media::after { content: ""; position: absolute; inset-inline: 0; bottom: 0; height: 3px; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform .3s; }
.ahc-sector:hover .ahc-card__media::after { transform: scaleX(1); }
.ahc-sector__num { font: 600 14px/20px var(--font-display); color: var(--accent-ink); letter-spacing: .1em; }
.ahc-company__logo { height: 96px; display: grid; place-items: center; background: var(--surface-alt); border-bottom: 1px solid var(--line); }
.ahc-company__meta { display: flex; gap: var(--space-2); flex-wrap: wrap; align-items: center; }
.ahc-company__stake { font-size: 12px; line-height: 18px; font-weight: 700; color: var(--ink-muted); }
.ahc-company__stake b { color: var(--brand-ink); font-size: 16px; }

/* ============ Timeline ============ */
.ahc-timeline { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: var(--space-5); position: relative; padding-top: var(--space-7); }
.ahc-timeline::before { content: ""; position: absolute; inset-inline: 0; top: 14px; height: 1px; background: var(--border-strong); }
.ahc-milestone { position: relative; display: flex; flex-direction: column; gap: var(--space-2); }
.ahc-milestone::before { content: ""; position: absolute; top: calc(-1 * var(--space-7) + 8px); inset-inline-start: 0; width: 13px; height: 13px; background: var(--accent); border: 3px solid var(--surface); box-shadow: 0 0 0 1px var(--border-strong); border-radius: 50%; }
.ahc-milestone__year { font: 600 36px/40px var(--font-display); color: var(--brand-ink); letter-spacing: -.01em; }
.ahc-milestone h3 { font: 700 16px/24px var(--font-sans); }
.ahc-milestone p { font-size: 14px; line-height: 22px; color: var(--ink-muted); }
.ahc-band--deep .ahc-timeline::before { background: rgba(255,255,255,.35); }
.ahc-band--deep .ahc-milestone::before { border-color: var(--brand-deep); box-shadow: 0 0 0 1px var(--accent); }
.ahc-band--deep .ahc-milestone__year { color: var(--accent); }
.ahc-band--deep .ahc-milestone p { color: var(--on-brand-muted); }

/* ============ Tables, documents, news ============ */
.ahc-tablewrap { position: relative; overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); }
.ahc-table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 22px; min-width: 640px; }
.ahc-table caption { text-align: start; padding: var(--space-4) var(--space-5); font: 600 20px/28px var(--font-display); }
.ahc-table th { text-align: start; padding: 12px var(--space-5); background: var(--surface-tint); color: var(--ink); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; font-weight: 700; border-bottom: 1px solid var(--line); }
.ahc-table td { padding: 14px var(--space-5); border-bottom: 1px solid var(--line); vertical-align: middle; }
.ahc-table tr:last-child td { border-bottom: 0; }
.ahc-table tbody tr:hover td { background: var(--surface-alt); }
.ahc-table td.num, .ahc-table th.num { text-align: end; font-variant-numeric: tabular-nums; }
.ahc-doctitle { font-weight: 700; color: var(--ink); }
.ahc-doctitle small { display: block; font-weight: 500; color: var(--ink-muted); font-size: 12px; line-height: 18px; }
.ahc-filterbar { display: flex; gap: var(--space-4); flex-wrap: wrap; align-items: flex-end; margin-bottom: var(--space-5); }
.ahc-news { display: flex; flex-direction: column; }
.ahc-news__item { display: grid; grid-template-columns: 96px 1fr auto; gap: var(--space-5); padding-block: var(--space-5); border-top: 1px solid var(--line); align-items: start; }
.ahc-news__item:last-child { border-bottom: 1px solid var(--line); }
.ahc-news__date { display: flex; flex-direction: column; align-items: center; padding: var(--space-2); background: var(--surface-tint); border-radius: var(--radius-sm); border-top: 2px solid var(--accent); }
.ahc-news__date b { font: 600 32px/36px var(--font-display); color: var(--brand-ink); }
.ahc-news__date span { font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-muted); }
.ahc-news__body h3 { font: 600 20px/28px var(--font-display); margin-block: 6px 4px; }
.ahc-news__body p { font-size: 14px; line-height: 22px; color: var(--ink-muted); }

/* ============ Governance ============ */
.ahc-person { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; display: flex; flex-direction: column; }
.ahc-person__photo { aspect-ratio: 4 / 5; }
.ahc-person__body { padding: var(--space-4) var(--space-5) var(--space-5); display: flex; flex-direction: column; gap: 6px; border-top: 3px solid var(--accent); }
.ahc-person__body h3 { font: 600 22px/28px var(--font-display); }
.ahc-person__role { font-size: 14px; line-height: 20px; font-weight: 600; color: var(--brand-ink); }
.ahc-person__meta { font-size: 13px; line-height: 20px; color: var(--ink-muted); }
.ahc-policy { display: grid; grid-template-columns: 48px 1fr auto; gap: var(--space-4); align-items: center; padding: var(--space-4) var(--space-5); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); }
.ahc-policy__icon { width: 48px; height: 48px; display: grid; place-items: center; background: var(--brand); color: var(--on-brand); border-radius: var(--radius-sm); font: 700 12px/1 var(--font-sans); letter-spacing: .06em; }
.ahc-policy h3 { font: 700 16px/24px var(--font-sans); }
.ahc-policy p { font-size: 13px; line-height: 20px; color: var(--ink-muted); }
.ahc-grievance { display: grid; grid-template-columns: 1.1fr 1fr; background: var(--brand-deep); color: var(--on-brand); border-radius: var(--radius-lg); overflow: hidden; }
.ahc-grievance__lead { padding: var(--space-7); display: flex; flex-direction: column; gap: var(--space-4); }
.ahc-grievance__lead h2 { font: 600 32px/40px var(--font-display); }
.ahc-grievance__lead p { color: var(--on-brand-muted); font-size: 15px; line-height: 24px; }
.ahc-grievance__lead ol { counter-reset: s; display: flex; flex-direction: column; gap: var(--space-3); }
.ahc-grievance__lead li { counter-increment: s; display: grid; grid-template-columns: 32px 1fr; gap: var(--space-3); font-size: 14px; line-height: 22px; color: var(--on-brand-muted); }
.ahc-grievance__lead li::before { content: counter(s); width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--accent); color: var(--accent); display: grid; place-items: center; font-weight: 700; font-size: 13px; }
.ahc-grievance__contact { background: var(--brand); padding: var(--space-7); display: flex; flex-direction: column; gap: var(--space-4); border-inline-start: 4px solid var(--accent); }
.ahc-grievance__contact dt { font-size: 12px; line-height: 18px; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: var(--accent); }
.ahc-grievance__contact dd { margin: 2px 0 0; font-size: 18px; line-height: 26px; color: var(--on-brand); }
.ahc-grievance__contact dd a { color: var(--on-brand); }
.ahc-grievance__contact dl { margin: 0; display: flex; flex-direction: column; gap: var(--space-4); }
.ahc-notice { display: grid; grid-template-columns: auto 1fr auto; gap: var(--space-4); align-items: center; padding: var(--space-4) var(--space-5); border-radius: var(--radius-md); border: 1px solid var(--line); background: var(--surface-tint); color: var(--ink); }
.ahc-notice__label { font-size: 12px; line-height: 18px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; padding: 4px 12px; border-radius: var(--radius-sm); background: var(--brand); color: var(--on-brand); }
.ahc-notice__text { font-size: 15px; line-height: 24px; }
.ahc-notice__text b { display: block; }
.ahc-notice__text span { font-size: 13px; line-height: 20px; color: var(--ink-muted); }
.ahc-notice--warning { background: var(--warning-tint); border-color: var(--warning); }
.ahc-notice--warning .ahc-notice__label { background: var(--warning); color: var(--warning-tint); }
.ahc-notice--success { background: var(--success-tint); border-color: var(--success); }
.ahc-notice--success .ahc-notice__label { background: var(--success); color: var(--success-tint); }
.ahc-accordion { border-top: 1px solid var(--line); }
.ahc-accordion details { border-bottom: 1px solid var(--line); }
.ahc-accordion summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); padding: var(--space-5) 0; font: 600 20px/28px var(--font-display); }
.ahc-accordion summary::-webkit-details-marker { display: none; }
.ahc-accordion summary::after { content: "+"; width: 32px; height: 32px; flex: none; display: grid; place-items: center; border: 1px solid var(--border-strong); border-radius: 50%; font: 400 20px/1 var(--font-sans); color: var(--brand-ink); }
.ahc-accordion details[open] summary::after { content: "\2212"; background: var(--brand); color: var(--on-brand); border-color: var(--brand); }
.ahc-accordion__panel { padding: 0 0 var(--space-5); color: var(--ink-muted); max-width: 72ch; }
.ahc-tabs { display: flex; gap: var(--space-1); border-bottom: 1px solid var(--line); overflow-x: auto; }
.ahc-tabs a { padding: 14px 20px; font-size: 14px; line-height: 20px; font-weight: 700; color: var(--ink-muted); text-decoration: none; border-bottom: 3px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.ahc-tabs a:hover { color: var(--brand-ink); }
.ahc-tabs a[aria-current="page"] { color: var(--brand-ink); border-bottom-color: var(--accent); }

/* ============ Editorial ============ */
.ahc-split { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-8); align-items: center; }
.ahc-split__media { aspect-ratio: 5 / 4; border-radius: var(--radius-md); position: relative; }
.ahc-split__media::after { content: ""; position: absolute; inset: 24px -24px -24px 24px; border: 1px solid var(--accent); border-radius: var(--radius-md); z-index: -1; }
.ahc-split__copy { display: flex; flex-direction: column; gap: var(--space-4); align-items: flex-start; }
.ahc-quote { display: grid; grid-template-columns: 280px 1fr; gap: var(--space-8); align-items: center; }
.ahc-quote__photo { aspect-ratio: 4 / 5; border-radius: var(--radius-md); border-bottom: 4px solid var(--accent); }
.ahc-quote blockquote { font: 400 28px/40px var(--font-display); color: var(--ink); position: relative; padding-top: var(--space-7); }
.ahc-quote blockquote::before { content: "\201C"; position: absolute; top: -16px; inset-inline-start: -4px; font: 600 96px/1 var(--font-display); color: var(--accent); }
.ahc-quote figcaption { margin-top: var(--space-5); font-size: 14px; line-height: 22px; color: var(--ink-muted); }
.ahc-quote figcaption b { display: block; color: var(--ink); font-size: 16px; }
.ahc-prose { max-width: var(--container-narrow); }
.ahc-prose > * + * { margin-top: var(--space-4); }
.ahc-prose h2 { font: 600 32px/40px var(--font-display); margin-top: var(--space-7); }
.ahc-prose h3 { font: 600 24px/32px var(--font-display); margin-top: var(--space-6); }
.ahc-prose ul { list-style: disc; padding-inline-start: 22px; }
.ahc-prose li + li { margin-top: 6px; }
.ahc-cta { display: flex; justify-content: space-between; align-items: center; gap: var(--space-6); flex-wrap: wrap; }
.ahc-cta h2 { font: 600 40px/46px var(--font-display); max-width: 20ch; }

/* ============ Forms ============ */
.ahc-form { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-5); }
.ahc-field { display: flex; flex-direction: column; gap: 6px; }
.ahc-field--full { grid-column: 1 / -1; }
.ahc-field label { font-size: 14px; line-height: 20px; font-weight: 700; }
.ahc-field label .req { color: var(--danger); }
.ahc-field input, .ahc-field select, .ahc-field textarea { font: 500 15px/22px var(--font-sans); color: var(--ink); background: var(--surface); border: 1px solid var(--border-strong); border-radius: var(--radius-sm); padding: 12px 14px; width: 100%; }
.ahc-field textarea { min-height: 140px; resize: vertical; }
.ahc-field input:focus, .ahc-field select:focus, .ahc-field textarea:focus { outline: 2px solid var(--focus); outline-offset: 1px; border-color: var(--focus); }
.ahc-field__help { font-size: 12px; line-height: 18px; color: var(--ink-muted); }
.ahc-field--error input, .ahc-field--error select, .ahc-field--error textarea { border-color: var(--danger); background: var(--danger-tint); }
.ahc-field__error { font-size: 13px; line-height: 20px; font-weight: 700; color: var(--danger); }
.ahc-field__error::before { content: "Error: "; }
.ahc-office { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-6); background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--accent); border-radius: var(--radius-md); }
.ahc-office h3 { font: 600 24px/32px var(--font-display); }
.ahc-office dl { margin: 0; display: grid; grid-template-columns: 88px 1fr; gap: var(--space-2) var(--space-4); font-size: 14px; line-height: 22px; }
.ahc-office dt { font-weight: 700; color: var(--ink-muted); }
.ahc-office dd { margin: 0; }
.ahc-map { aspect-ratio: 16 / 9; border-radius: var(--radius-md); }

/* ============ Footer ============ */
.ahc-footer { background: var(--brand-deep); color: var(--on-brand-muted); font-size: 14px; line-height: 22px; border-top: 4px solid var(--accent); }
.ahc-footer a { color: var(--on-brand-muted); text-decoration: none; }
.ahc-footer a:hover { color: var(--accent); text-decoration: underline; }
.ahc-footer__top { display: grid; grid-template-columns: 1.4fr repeat(4, 1fr); gap: var(--space-7); padding-block: var(--space-9) var(--space-8); }
.ahc-footer__about .ahc-brandmark { color: var(--on-brand); }
.ahc-footer__about .ahc-brandmark span { color: var(--on-brand-muted); }
.ahc-footer__about p { margin-top: var(--space-4); max-width: 34ch; }
.ahc-footer h4 { font: 700 13px/20px var(--font-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--on-brand); margin-bottom: var(--space-4); }
.ahc-footer ul { display: flex; flex-direction: column; gap: 10px; }
.ahc-footer address { font-style: normal; margin-top: var(--space-4); }
.ahc-regulatory { border-block: 1px solid rgba(255,255,255,.16); padding-block: var(--space-5); display: flex; gap: var(--space-6); align-items: center; flex-wrap: wrap; }
.ahc-regulatory p { flex: 1 1 320px; font-size: 13px; line-height: 20px; }
.ahc-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 128px; height: 56px; padding-inline: var(--space-4); background: var(--on-brand); color: var(--brand-deep); border-radius: var(--radius-sm); font: 800 13px/1 var(--font-sans); letter-spacing: .06em; text-transform: uppercase; text-decoration: none; }
.ahc-footer .ahc-badge { color: var(--brand-deep); }
.ahc-footer .ahc-badge:hover { color: var(--brand-deep); outline: 2px solid var(--accent); outline-offset: 2px; text-decoration: none; }
.ahc-footer__disclaimer { padding-block: var(--space-5); font-size: 12px; line-height: 20px; max-width: 110ch; }
.ahc-footer__bar { border-top: 1px solid rgba(255,255,255,.16); padding-block: var(--space-5); display: flex; justify-content: space-between; gap: var(--space-4); flex-wrap: wrap; font-size: 13px; }
.ahc-footer__bar ul { flex-direction: row; gap: var(--space-5); flex-wrap: wrap; }

/* ============ Responsive ============ */
@media (max-width: 1080px) {
  .ahc-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .ahc-grid--3 { grid-template-columns: repeat(2, 1fr); }
  .ahc-logos { grid-template-columns: repeat(4, 1fr); }
  .ahc-footer__top { grid-template-columns: repeat(2, 1fr); }
  .ahc-stats__grid { grid-template-columns: repeat(2, 1fr); }
  .ahc-stat:nth-child(3) { border-inline-start: 0; padding-inline-start: 0; }
  .ahc-nav { display: none; }
  .ahc-menu-toggle { display: inline-grid; }
  .ahc-hero h1 { font-size: 52px; line-height: 56px; }
}
@media (max-width: 760px) {
  .ahc { --gutter: 16px; }
  .ahc-section { padding-block: var(--space-8); }
  .ahc-grid--2, .ahc-grid--3, .ahc-grid--4, .ahc-form, .ahc-split, .ahc-quote, .ahc-grievance, .ahc-footer__top { grid-template-columns: 1fr; }
  .ahc-logos { grid-template-columns: repeat(2, 1fr); }
  .ahc-hero { min-height: 560px; }
  .ahc-hero h1 { font-size: 40px; line-height: 46px; }
  .ahc-pagehead h1 { font-size: 36px; line-height: 42px; }
  .ahc-timeline { grid-auto-flow: row; padding-top: 0; padding-inline-start: var(--space-6); }
  .ahc-timeline::before { inset: 0 auto 0 6px; width: 1px; height: auto; }
  .ahc-milestone::before { top: 8px; inset-inline-start: calc(-1 * var(--space-6)); }
  .ahc-news__item { grid-template-columns: 72px 1fr; }
  .ahc-news__item .ahc-btn { grid-column: 2; justify-self: start; }
  .ahc-policy { grid-template-columns: 48px 1fr; }
  .ahc-policy .ahc-btn { grid-column: 1 / -1; }
  .ahc-notice { grid-template-columns: 1fr; }
  .ahc-quote blockquote { font-size: 22px; line-height: 32px; }
  .ahc-stats { margin-top: -64px; padding: var(--space-5) var(--space-4); }
  .ahc-stat__value { font-size: 40px; line-height: 44px; }
  .ahc-topbar .ahc-container { justify-content: center; }
  .ahc-cta h2 { font-size: 30px; line-height: 36px; }
}
@media (prefers-reduced-motion: reduce) { .ahc *, .ahc *::before, .ahc *::after { transition: none !important; } }


/* =====================================================================
   SITE LAYER — layout, navigation, drawer, search, home, motion
   ===================================================================== */
html { scroll-behavior: smooth; }
body.ahc { margin: 0; min-height: 100vh; display: flex; flex-direction: column; }
body.ahc > main { flex: 1 0 auto; }
.ahc img.ahc-logo { display: block; height: 44px; width: auto; max-width: none; }
.ahc img.ahc-logo--footer { height: auto; width: min(270px, 100%); max-width: 100%; }
.ahc-h2 { font: 600 40px/46px var(--font-display); letter-spacing: -.01em; color: var(--ink); }
.ahc-h3 { font: 600 28px/36px var(--font-display); color: var(--ink); }
.ahc-band--deep .ahc-h2, .ahc-band--brand .ahc-h2, .ahc-band--deep .ahc-h3, .ahc-band--brand .ahc-h3 { color: var(--on-brand); }
.ahc-band--deep .ahc-muted, .ahc-band--brand .ahc-muted { color: var(--on-brand-muted); }
.ahc .ahc-sechead .ahc-h2 { margin: 0; }
.ahc-sechead p { color: var(--ink-muted); max-width: 62ch; }
.ahc-band--deep .ahc-sechead p, .ahc-band--brand .ahc-sechead p { color: var(--on-brand-muted); }
.ahc-section--tight { padding-block: var(--space-8); }
.ahc-section--flush-top { padding-top: 0; }
.ahc-center { text-align: center; }
.ahc-mt-6 { margin-top: var(--space-6); }
.ahc-mt-7 { margin-top: var(--space-7); }

/* Bootstrap reboot neutralisation inside the redesigned shell (bottom margins only; components own their top spacing) */
.ahc :is(h1, h2, h3, h4, h5, h6, p, ul, ol, dl, dd, figure, blockquote, address, pre) { margin-bottom: 0; }
.ahc { --bs-link-color-rgb: 30, 58, 138; --bs-link-hover-color-rgb: 15, 31, 82; --bs-body-font-family: var(--font-sans); --bs-body-color: var(--ink); }
.ahc a { text-underline-offset: 3px; text-decoration-thickness: 1px; }
.ahc table { border-color: inherit; }
.ahc button { font-family: inherit; }
.ahc .ahc-stack { display: flex; flex-direction: column; gap: var(--space-4); align-items: flex-start; }

/* Content coming from the CMS (rich text) */
.ahc-richtext { color: var(--ink); }
.ahc-richtext > * + * { margin-top: var(--space-4); }
.ahc-richtext p { margin-bottom: 0; color: inherit; }
.ahc-richtext h1, .ahc-richtext h2, .ahc-richtext h3, .ahc-richtext h4 { font-family: var(--font-display); font-weight: 600; color: var(--ink); line-height: 1.25; margin-top: var(--space-6); }
.ahc-richtext ul, .ahc-richtext ol { padding-inline-start: 22px; }
.ahc-richtext ul { list-style: disc; }
.ahc-richtext ol { list-style: decimal; }
.ahc-richtext li + li { margin-top: 6px; }
.ahc-richtext img { max-width: 100%; height: auto; border-radius: var(--radius-md); }
.ahc-richtext table { width: 100%; border-collapse: collapse; }
.ahc-richtext td, .ahc-richtext th { border: 1px solid var(--line); padding: 10px 12px; }
.ahc-richtext a { color: var(--brand-ink); text-decoration: underline; }
.ahc-band--deep .ahc-richtext, .ahc-band--brand .ahc-richtext { color: var(--on-brand-muted); }

/* ---------- Top bar ---------- */
.ahc-topbar__left { display: flex; align-items: center; gap: var(--space-4); flex-wrap: wrap; }
.ahc-topbar__id { font-weight: 700; letter-spacing: .04em; color: var(--on-brand); display: inline-flex; gap: 8px; align-items: center; }
.ahc-topbar__id i { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); display: inline-block; }
.ahc-topbar__right { display: flex; align-items: center; gap: var(--space-5); }
.ahc-topbar__links { display: flex; gap: var(--space-5); }
.ahc-langswitch button { padding: 2px 14px; background: none; border: 0; color: var(--on-brand-muted); font: 700 13px/20px var(--font-sans); cursor: pointer; }
.ahc-langswitch button[aria-pressed="true"] { background: var(--on-brand); color: var(--brand-deep); }
.ahc-langswitch button:hover:not([aria-pressed="true"]) { color: var(--accent); }
#google_translate_element { display: none !important; }
body { top: 0 !important; }
.goog-te-banner-frame, .skiptranslate iframe.goog-te-banner-frame, #goog-gt-tt, .goog-te-balloon-frame { display: none !important; }
.goog-text-highlight { background: none !important; box-shadow: none !important; }

/* ---------- Header ---------- */
.ahc-header .ahc-container { position: relative; }
.ahc-header__brand { display: inline-flex; align-items: center; flex: none; }
.ahc-nav > li { position: static; display: flex; align-items: center; }
.ahc-nav > li > a { height: var(--header-h); padding-inline: 14px 6px; }
.ahc-nav > li > button { height: var(--header-h); padding-inline: 2px 10px; }
.ahc-nav > li > a::before { inset-inline: 14px 0; }
.ahc-nav > li > button::before { display: none; }
.ahc-nav > li > button::after { margin-inline-start: 0; }
.ahc-nav > li:hover > a::before, .ahc-nav > li:focus-within > a::before, .ahc-nav > li.is-open > a::before, .ahc-nav > li > a[aria-current="page"]::before { transform: scaleX(1); }
.ahc-nav > li:hover > a, .ahc-nav > li.is-open > a { color: var(--brand-ink); }
.ahc-mega { inset-inline-start: var(--gutter); inset-inline-end: var(--gutter); width: auto; transform: none; grid-template-columns: 300px 1fr; border-radius: 0 0 var(--radius-lg) var(--radius-lg); box-shadow: var(--shadow-lg); top: 100%; }
.ahc-mega__intro .ahc-link { align-self: flex-start; margin-top: var(--space-2); }
.ahc-mega__intro small { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--accent-ink); }
.ahc-mega__links { padding: var(--space-5) var(--space-6); columns: 3 190px; column-gap: var(--space-5); align-content: start; }
.ahc-mega__links li { break-inside: avoid; }
.ahc-mega__links a { display: block; padding: 9px 12px; border-radius: var(--radius-sm); font-size: 14px; line-height: 20px; font-weight: 600; color: var(--ink); text-decoration: none; }
.ahc-mega__links a:hover, .ahc-mega__links a:focus-visible { background: var(--surface-tint); color: var(--brand-ink); }
.ahc-mega__links .ahc-mega__label { display: block; padding: 9px 12px; font-size: 14px; color: var(--ink-muted); }
.ahc-mega__head { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; font-weight: 800; color: var(--accent-ink); padding: 4px 12px 6px; break-after: avoid; }
.ahc-mega__links li + .ahc-mega__head { margin-top: var(--space-3); }
.ahc-header__actions { flex: none; }
.ahc-iconbtn svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ahc-menu-toggle { display: none; }
.ahc-cta-link { display: inline-flex; }

/* Search panel */
.ahc-search { position: absolute; inset-inline: 0; top: 100%; background: var(--surface); border-bottom: 1px solid var(--line); box-shadow: var(--shadow-md); padding-block: var(--space-5); display: none; z-index: 60; }
.ahc-search.is-open { display: block; }
.ahc-search__box { position: relative; max-width: 720px; margin-inline: auto; }
.ahc-search__box input { width: 100%; font: 500 18px/28px var(--font-sans); padding: 14px 16px 14px 48px; border: 1.5px solid var(--border-strong); border-radius: var(--radius-sm); background: var(--surface); color: var(--ink); }
.ahc-search__box svg { position: absolute; inset-inline-start: 16px; top: 16px; width: 20px; height: 20px; stroke: var(--ink-muted); fill: none; stroke-width: 2; }
.ahc-search__results { max-width: 720px; margin: var(--space-3) auto 0; display: flex; flex-direction: column; }
.ahc-search__results a, .ahc-search__results div { display: flex; gap: var(--space-3); align-items: center; padding: 10px 12px; border-radius: var(--radius-sm); color: var(--ink); text-decoration: none; font-size: 15px; line-height: 22px; }
.ahc-search__results a:hover, .ahc-search__results a.is-active { background: var(--surface-tint); color: var(--brand-ink); }
.ahc-search__results .ahc-tag { flex: none; min-width: 92px; justify-content: center; }
.ahc-search__hint { max-width: 720px; margin: var(--space-3) auto 0; font-size: 13px; color: var(--ink-muted); }

/* Mobile drawer */
.ahc-drawer { position: fixed; inset: 0; z-index: 100; display: none; }
.ahc-drawer.is-open { display: block; }
.ahc-drawer__scrim { position: absolute; inset: 0; background: var(--scrim); }
.ahc-drawer__panel { position: absolute; inset-block: 0; inset-inline-end: 0; width: min(420px, 100%); background: var(--surface); display: flex; flex-direction: column; box-shadow: var(--shadow-lg); overflow-y: auto; }
.ahc-drawer__head { display: flex; justify-content: space-between; align-items: center; padding: var(--space-4) var(--space-5); border-bottom: 1px solid var(--line); }
.ahc-drawer__head img.ahc-logo { height: 36px; }
.ahc-drawer__body { padding: var(--space-4) var(--space-5) var(--space-7); flex: 1; }
.ahc-drawer details { border-bottom: 1px solid var(--line); }
.ahc-drawer summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; padding: var(--space-4) 0; font: 600 20px/28px var(--font-display); color: var(--ink); }
.ahc-drawer summary::-webkit-details-marker { display: none; }
.ahc-drawer summary::after { content: "+"; font: 400 22px/1 var(--font-sans); color: var(--brand-ink); }
.ahc-drawer details[open] summary::after { content: "\2212"; }
.ahc-drawer details ul { padding: 0 0 var(--space-4); display: flex; flex-direction: column; gap: 2px; }
.ahc-drawer details a { display: block; padding: 10px 12px; font-weight: 600; font-size: 15px; color: var(--ink); text-decoration: none; border-radius: var(--radius-sm); }
.ahc-drawer details a:hover { background: var(--surface-tint); }
.ahc-drawer__foot { display: flex; gap: var(--space-4); align-items: center; padding-top: var(--space-5); flex-wrap: wrap; }
.ahc-drawer__foot .ahc-langswitch { border-color: var(--border-strong); }
.ahc-drawer__foot .ahc-langswitch button { color: var(--ink); }
.ahc-drawer__foot .ahc-langswitch button[aria-pressed="true"] { background: var(--brand); color: var(--on-brand); }

/* Scroll to top */
.ahc-totop { position: fixed; inset-inline-end: 20px; bottom: 20px; width: 48px; height: 48px; border-radius: var(--radius-sm); background: var(--brand-deep); color: var(--on-brand); border: 1px solid rgba(255,255,255,.25); display: grid; place-items: center; text-decoration: none; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .25s, transform .25s, visibility .25s; z-index: 40; box-shadow: var(--shadow-md); }
.ahc-totop.is-visible { opacity: 1; visibility: visible; transform: none; }
.ahc-totop:hover { background: var(--accent); color: var(--on-accent); }
.ahc-totop svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }

/* Reveal on scroll (progressive enhancement — content is visible without JS) */
.js .ahc-reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
.js .ahc-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .js .ahc-reveal { opacity: 1; transform: none; transition: none; } html { scroll-behavior: auto; } }

/* ---------- Home hero ---------- */
.ahc-hero__poster { position: absolute; inset: 0; z-index: -3; background-size: cover; background-position: center; }
.ahc-hero video.ahc-hero__media { display: block; }
.ahc-hero__toggle { position: absolute; inset-inline-end: var(--gutter); bottom: 120px; z-index: 3; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255,255,255,.5); background: rgba(15,31,82,.55); color: var(--on-brand); cursor: pointer; display: grid; place-items: center; }
.ahc-hero__toggle:hover { background: var(--on-brand); color: var(--brand-deep); }
.ahc-hero__toggle svg { width: 16px; height: 16px; fill: currentColor; }
.ahc-hero__toggle .i-play { display: none; }
.ahc-hero__toggle[aria-pressed="true"] .i-play { display: block; }
.ahc-hero__toggle[aria-pressed="true"] .i-pause { display: none; }
.ahc-hero .ahc-hero__copy h1 span { color: var(--accent); font-style: italic; font-weight: 400; }
.ahc-hero__meta { display: flex; gap: var(--space-5); flex-wrap: wrap; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--on-brand-muted); }
.ahc-hero__meta span { display: inline-flex; align-items: center; gap: 8px; }
.ahc-hero__meta span::before { content: ""; width: 6px; height: 6px; background: var(--accent); border-radius: 50%; }

/* Stats variants */
.ahc-stat__value .u { font-size: 20px; letter-spacing: 0; margin-inline-end: 6px; color: var(--ink-muted); font-weight: 600; font-family: var(--font-sans); }

/* Rails (horizontal scrollers) */
.ahc-rail-wrap { position: relative; }
.ahc-rail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(280px, 340px); gap: var(--space-5); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: var(--space-4); scrollbar-width: thin; scrollbar-color: var(--border-strong) transparent; -webkit-overflow-scrolling: touch; }
.ahc-rail > * { scroll-snap-align: start; min-width: 0; }
.ahc-rail-controls { display: flex; gap: var(--space-2); }
.ahc-rail-controls button { width: 44px; height: 44px; border: 1px solid var(--border-strong); background: var(--surface); color: var(--brand-ink); border-radius: var(--radius-sm); cursor: pointer; display: grid; place-items: center; }
.ahc-rail-controls button:hover { background: var(--brand); color: var(--on-brand); border-color: var(--brand); }
.ahc-rail-controls svg { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.ahc-band--deep .ahc-rail-controls button { background: transparent; color: var(--on-brand); border-color: rgba(255,255,255,.4); }
.ahc-band--deep .ahc-rail-controls button:hover { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }

/* Sector tile */
.ahc-tile { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--radius-md); background: var(--brand-deep); color: var(--on-brand); text-decoration: none; isolation: isolate; }
.ahc-tile__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.ahc-tile::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(15,31,82,0) 30%, rgba(15,31,82,.92) 100%); }
.ahc-tile::after { content: ""; position: absolute; inset-inline: 0; bottom: 0; height: 4px; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform .35s; }
.ahc-tile:hover .ahc-tile__img { transform: scale(1.06); }
.ahc-tile:hover::after, .ahc-tile:focus-visible::after { transform: scaleX(1); }
.ahc-tile__body { position: absolute; inset-inline: 0; bottom: 0; padding: var(--space-5); display: flex; flex-direction: column; gap: 6px; }
.ahc-tile__num { font: 600 13px/18px var(--font-display); letter-spacing: .12em; color: var(--accent); }
.ahc-tile h3 { font: 600 26px/32px var(--font-display); color: var(--on-brand); text-transform: capitalize; }
.ahc-tile__go { font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--on-brand-muted); display: inline-flex; gap: 8px; align-items: center; }
.ahc-tile__go::after { content: "\2192"; transition: transform .2s; }
.ahc-tile:hover .ahc-tile__go::after { transform: translateX(4px); }
.ahc-tile:hover .ahc-tile__go { color: var(--accent); }

/* Journey card */
.ahc-journey { display: flex; flex-direction: column; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.18); border-radius: var(--radius-md); overflow: hidden; }
.ahc-journey__img { aspect-ratio: 16 / 10; width: 100%; object-fit: cover; background: var(--brand); }
.ahc-journey__body { padding: var(--space-5); display: flex; flex-direction: column; gap: var(--space-2); flex: 1; }
.ahc-journey__year { font: 600 44px/48px var(--font-display); color: var(--accent); letter-spacing: -.01em; }
.ahc-journey__body h3 { font: 700 17px/24px var(--font-sans); color: var(--on-brand); }
.ahc-journey__body p { font-size: 14px; line-height: 22px; color: var(--on-brand-muted); }

/* Document / report list (cards) */
.ahc-docs { background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--accent); border-radius: var(--radius-md); box-shadow: var(--shadow-md); }
.ahc-docs__head { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); padding: var(--space-4) var(--space-5); border-bottom: 1px solid var(--line); }
.ahc-docs__head h3 { font: 600 22px/28px var(--font-display); }
.ahc-docs__item { display: grid; grid-template-columns: 40px 1fr auto; gap: var(--space-4); align-items: center; padding: var(--space-4) var(--space-5); border-bottom: 1px solid var(--line); text-decoration: none; color: var(--ink); }
.ahc-docs__item:last-child { border-bottom: 0; }
.ahc-docs__item:hover { background: var(--surface-alt); }
.ahc-docs__icon { width: 40px; height: 40px; display: grid; place-items: center; background: var(--brand); color: var(--on-brand); border-radius: var(--radius-sm); font: 800 11px/1 var(--font-sans); letter-spacing: .06em; }
.ahc-docs__item b { display: block; font-size: 15px; line-height: 22px; }
.ahc-docs__item small { display: block; font-size: 12px; line-height: 18px; color: var(--ink-muted); }
.ahc-docs__dl { font-size: 13px; font-weight: 800; color: var(--brand-ink); letter-spacing: .04em; display: inline-flex; gap: 6px; align-items: center; }
.ahc-docs__dl::before { content: "\2193"; }
.ahc-empty { padding: var(--space-6); color: var(--ink-muted); text-align: center; }

/* Tabs (buttons) */
.ahc-tabbar { display: flex; gap: var(--space-1); border-bottom: 1px solid var(--line); overflow-x: auto; margin-bottom: var(--space-5); }
.ahc-tabbar button { padding: 14px 18px; font: 700 14px/20px var(--font-sans); color: var(--ink-muted); background: none; border: 0; border-bottom: 3px solid transparent; margin-bottom: -1px; cursor: pointer; white-space: nowrap; }
.ahc-tabbar button:hover { color: var(--brand-ink); }
.ahc-tabbar button[aria-selected="true"] { color: var(--brand-ink); border-bottom-color: var(--accent); }
.ahc-tabpanel[hidden] { display: none; }
.ahc-news__body h3 a { color: var(--ink); text-decoration: none; }
.ahc-news__body h3 a:hover { color: var(--brand-ink); text-decoration: underline; }
.ahc-news--compact .ahc-news__item { grid-template-columns: 84px 1fr auto; padding-block: var(--space-4); align-items: center; }
.ahc-news--compact .ahc-news__date span { font-size: 11px; letter-spacing: .06em; white-space: nowrap; }
.ahc-news--compact .ahc-news__date b { font-size: 26px; line-height: 30px; }
.ahc-news--compact .ahc-news__body h3 { font-size: 18px; line-height: 26px; margin-block: 0; }

/* Contact card (dark) */
.ahc-contactcard { background: var(--brand-deep); color: var(--on-brand); border-radius: var(--radius-lg); padding: var(--space-7); display: flex; flex-direction: column; gap: var(--space-5); border-top: 4px solid var(--accent); height: 100%; }
.ahc-contactcard h2 { font: 600 32px/40px var(--font-display); color: var(--on-brand); }
.ahc-contactcard p { color: var(--on-brand-muted); }
.ahc-contactcard dl { margin: 0; display: flex; flex-direction: column; gap: var(--space-4); }
.ahc-contactcard dt { font-size: 12px; line-height: 18px; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: var(--accent); }
.ahc-contactcard dd { margin: 2px 0 0; font-size: 16px; line-height: 26px; color: var(--on-brand); }
.ahc-contactcard dd a { color: var(--on-brand); }

.ahc-logos--brands { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-4); }
.ahc-logos--brands .ahc-logo-tile { width: 168px; }
.ahc-logos--brands .ahc-logo-tile { height: 96px; display: grid; place-items: center; padding: var(--space-4); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); transition: border-color .2s, box-shadow .2s; }
.ahc-logos--brands .ahc-logo-tile:hover { border-color: var(--border-strong); box-shadow: var(--shadow-md); }
.ahc-logo-tile img { max-height: 56px; max-width: 100%; width: auto; object-fit: contain; filter: grayscale(1); opacity: .85; transition: filter .25s, opacity .25s; }
.ahc-logo-tile:hover img { filter: none; opacity: 1; }

/* Footer additions */
.ahc-footer__about address a { color: var(--on-brand); }
.ahc-footer__about address span { display: block; }
.ahc-footer__about address b { color: var(--on-brand); font-weight: 700; }
.ahc-footer__reg-img { height: 56px; width: auto; border-radius: var(--radius-sm); background: #fff; padding: 2px; }
.ahc-footer__reg-img--jp { background: #fff; padding: 6px 10px; height: 56px; }
.ahc-footer__disclaimer p + p { margin-top: 8px; }

@media (max-width: 1279px) {
  .ahc-mega, .ahc-nav, .ahc-header nav { display: none !important; }
  .ahc-menu-toggle { display: inline-grid !important; }
  .ahc-header__actions .ahc-cta-link { display: none; }
  .ahc-topbar .ahc-topbar__links { display: none; }
  .ahc-h2 { font-size: 34px; line-height: 40px; }
}
@media (max-width: 760px) {
  .ahc-h2 { font-size: 30px; line-height: 36px; }
  .ahc img.ahc-logo { height: 38px; }
  .ahc-topbar .ahc-container { min-height: 36px; }
  .ahc-topbar__id { font-size: 12px; }
  .ahc-hero__toggle { bottom: 80px; }
  .ahc-contactcard { padding: var(--space-5); }
  .ahc-docs__item { grid-template-columns: 40px 1fr; }
  .ahc-docs__item .ahc-docs__dl { grid-column: 2; }
  .ahc-news--compact .ahc-news__item { grid-template-columns: 60px 1fr; }
  .ahc-news--compact .ahc-news__item > :last-child { grid-column: 2; }
}

/* Home helpers */
.ahc-twocol { display: grid; grid-template-columns: 5fr 7fr; gap: var(--space-8); align-items: start; }
.ahc-twocol > * { min-width: 0; }
.ahc-factpanel { background: var(--surface-alt); border: 1px solid var(--line); border-top: 3px solid var(--accent); border-radius: var(--radius-md); padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-4); }
.ahc-factpanel__list li { display: flex; flex-direction: column; padding-block: 14px; border-bottom: 1px solid var(--line); }
.ahc-factpanel__list li:last-child { border-bottom: 0; }
.ahc-factpanel__list b { font: 600 20px/28px var(--font-display); color: var(--ink); }
.ahc-factpanel__list span { font-size: 14px; color: var(--ink-muted); }
.ahc-cta h2 { color: var(--on-brand); max-width: 22ch; }
@media (max-width: 1080px) { .ahc-twocol { grid-template-columns: 1fr; gap: var(--space-7); } }
.ahc-factpanel__list { counter-reset: f; }
.ahc-factpanel__list li { flex-direction: row; align-items: baseline; gap: var(--space-4); counter-increment: f; }
.ahc-factpanel__list li::before { content: counter(f, decimal-leading-zero); font: 600 13px/20px var(--font-display); letter-spacing: .1em; color: var(--accent-ink); }

/* Slimmer footer: fewer columns, tighter spacing */
.ahc-footer__top--slim { grid-template-columns: 1.6fr repeat(3, 1fr); gap: var(--space-6); padding-block: var(--space-7) var(--space-6); }
.ahc-footer__top--slim address { margin-top: var(--space-4); }
.ahc-footer__top--slim ul { gap: 8px; }
.ahc-footer .ahc-regulatory { padding-block: var(--space-4); }
@media (max-width: 1080px) { .ahc-footer__top--slim { grid-template-columns: repeat(3, 1fr); } .ahc-footer__top--slim .ahc-footer__about { grid-column: 1 / -1; } }
@media (max-width: 760px) { .ahc-footer__top--slim { grid-template-columns: repeat(2, 1fr); gap: var(--space-5); padding-block: var(--space-6) var(--space-5); } }

/* =====================================================================
   INNER PAGES — shared patterns used by the page templates
   ===================================================================== */
.ahc-pagehead ol.ahc-crumbs { list-style: none; padding: 0; margin: 0; }
.ahc-pagehead [aria-current="page"] { color: var(--on-brand); font-weight: 700; }
.ahc-pagehead .ahc-eyebrow { display: block; }
.ahc-pagehead__actions { display: flex; gap: var(--space-3); flex-wrap: wrap; margin-top: var(--space-2); }

/* Sub-navigation under page head */
.ahc-subnav { background: var(--surface); border-bottom: 1px solid var(--line); position: sticky; top: var(--header-h); z-index: 20; }
.ahc-subnav .ahc-tabs { border-bottom: 0; }

/* Fact cards (registration data etc.) */
.ahc-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-4); }
.ahc-facts--3 { grid-template-columns: repeat(3, 1fr); }
.ahc-fact { background: var(--surface); border: 1px solid var(--line); border-inline-start: 3px solid var(--accent); border-radius: var(--radius-md); padding: var(--space-5); display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ahc-fact dt { font-size: 12px; line-height: 18px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--ink-muted); }
.ahc-fact dd { margin: 0; font: 600 20px/28px var(--font-display); color: var(--ink); overflow-wrap: anywhere; }
.ahc-checklist { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.ahc-checklist li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; font-size: 15px; line-height: 22px; }
.ahc-checklist li::before { content: ""; width: 18px; height: 18px; margin-top: 2px; border-radius: 50%; background: var(--brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.2 8.4l2.4 2.4 5-5.2' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat; }

/* Icon panels */
.ahc-panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-4); height: 100%; }
.ahc-panel--tint { background: var(--surface-tint); border-color: transparent; }
.ahc-panel--accent { border-top: 3px solid var(--accent); }
.ahc-panel h3 { font: 600 26px/34px var(--font-display); color: var(--ink); }
.ahc-panel p { color: var(--ink-muted); }
.ahc-panel img { width: 100%; height: auto; border-radius: var(--radius-md); display: block; margin-top: auto; }
.ahc-iconchip { width: 48px; height: 48px; border-radius: var(--radius-sm); background: var(--brand); color: var(--on-brand); display: grid; place-items: center; }
.ahc-iconchip svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* Awards */
.ahc-award { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); padding: var(--space-6); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); }
.ahc-award__mark { width: 56px; height: 56px; border-radius: 50%; background: var(--accent); color: var(--on-accent); display: grid; place-items: center; }
.ahc-award__mark svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.ahc-award p { font: 500 19px/28px var(--font-display); color: var(--ink); }

/* Statement / callout */
.ahc-statement { background: var(--brand-deep); color: var(--on-brand); border-radius: var(--radius-lg); padding: var(--space-8) var(--space-7); position: relative; overflow: hidden; isolation: isolate; }
.ahc-statement::before { content: ""; position: absolute; inset: 0; z-index: -1; background: repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 1px, transparent 1px 96px); }
.ahc-statement::after { content: ""; position: absolute; inset-inline-start: 0; bottom: 0; width: 120px; height: 4px; background: var(--accent); }
.ahc-statement h2 { font: 600 40px/48px var(--font-display); color: var(--on-brand); max-width: 22ch; }
.ahc-statement h2 em { font-style: italic; color: var(--accent); }
.ahc-statement p { color: var(--on-brand-muted); max-width: 60ch; font-size: 18px; line-height: 28px; margin-top: var(--space-4); }
.ahc-vision { border-inline-start: 4px solid var(--accent); padding: var(--space-6) var(--space-7); background: var(--surface); border-radius: 0 var(--radius-md) var(--radius-md) 0; box-shadow: var(--shadow-md); }
.ahc-vision p { font: 400 26px/38px var(--font-display); color: var(--ink); max-width: 44ch; }
.ahc-media { width: 100%; height: 100%; min-height: 280px; object-fit: cover; border-radius: var(--radius-md); display: block; background: var(--surface-tint); }
.ahc-media--tall { aspect-ratio: 4/5; }
.ahc-media--wide { aspect-ratio: 16/10; }

/* People */
.ahc-people { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-5); }
a.ahc-person { text-decoration: none; color: inherit; transition: box-shadow .25s, transform .25s, border-color .25s; }
a.ahc-person:hover, a.ahc-person:focus-visible { box-shadow: var(--shadow-md); transform: translateY(-4px); border-color: var(--border-strong); }
.ahc-person__photo { width: 100%; height: 100%; object-fit: cover; object-position: top center; background: var(--surface-tint); display: block; aspect-ratio: 4 / 5; }
a.ahc-person:hover .ahc-person__photo { transform: scale(1.03); }
.ahc-person__frame { overflow: hidden; background: var(--surface-tint); }
.ahc-person__photo { transition: transform .6s ease; }
.ahc-person__body { flex: 1; }
.ahc-person__more { margin-top: auto; padding-top: var(--space-3); font-size: 13px; font-weight: 800; letter-spacing: .04em; color: var(--brand-ink); display: inline-flex; align-items: center; gap: 6px; }
.ahc-person__more::after { content: "\2192"; transition: transform .25s; }
a.ahc-person:hover .ahc-person__more::after { transform: translateX(4px); }

/* Detail (profile) */
.ahc-profile { display: grid; grid-template-columns: 340px 1fr; gap: var(--space-8); align-items: start; }
.ahc-profile__aside { position: sticky; top: calc(var(--header-h) + 24px); display: flex; flex-direction: column; gap: var(--space-4); }
.ahc-profile__photo { width: 100%; aspect-ratio: 4/5; object-fit: cover; object-position: top center; border-radius: var(--radius-md); border-bottom: 4px solid var(--accent); background: var(--surface-tint); display: block; }
.ahc-profile__meta { display: flex; flex-direction: column; gap: 4px; padding: var(--space-4) var(--space-5); background: var(--surface-alt); border: 1px solid var(--line); border-radius: var(--radius-md); font-size: 14px; }
.ahc-profile__meta b { font: 600 20px/28px var(--font-display); }
.ahc-profile__meta span { color: var(--ink-muted); }

/* Year filter pills */
.ahc-pills { display: flex; gap: 8px; flex-wrap: wrap; }
.ahc-pills button { padding: 8px 18px; border-radius: var(--radius-pill); border: 1px solid var(--border-strong); background: var(--surface); color: var(--ink); font: 700 13px/20px var(--font-sans); cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.ahc-pills button:hover { border-color: var(--brand); color: var(--brand-ink); }
.ahc-pills button[aria-pressed="true"], .ahc-pills button[aria-selected="true"] { background: var(--brand); color: var(--on-brand); border-color: var(--brand); }

/* Pagination (Laravel default markup, styled) */
.ahc-pagination nav { display: flex; justify-content: center; }
.ahc-pagination nav > div:first-child { display: none; }
.ahc-pagination nav p { display: none; }
.ahc-pagination ul.pagination { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; list-style: none; padding: 0; margin: 0; }
.ahc-pagination .page-link, .ahc-pagination .page-item span { display: inline-grid; place-items: center; min-width: 40px; height: 40px; padding: 0 12px; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink); background: var(--surface); text-decoration: none; font-weight: 700; font-size: 14px; }
.ahc-pagination .page-item.active .page-link, .ahc-pagination .page-item.active span { background: var(--brand); color: var(--on-brand); border-color: var(--brand); }
.ahc-pagination .page-item.disabled .page-link, .ahc-pagination .page-item.disabled span { color: var(--ink-muted); opacity: .55; }
.ahc-pagination .page-link:hover { border-color: var(--brand); color: var(--brand-ink); }
.ahc-pagination svg { width: 16px; height: 16px; }

/* Lightbox (head-office tour) */
.ahc-gallery { columns: 3; column-gap: var(--space-4); }
.ahc-gallery__item { position: relative; display: block; width: 100%; margin: 0 0 var(--space-4); break-inside: avoid; padding: 0; border: 0; border-radius: var(--radius-md); overflow: hidden; cursor: zoom-in; background: var(--surface-tint); }
.ahc-gallery__item img, .ahc-gallery__item video { display: block; width: 100%; height: auto; transition: transform .5s ease; }
.ahc-gallery__item:hover img { transform: scale(1.04); }
.ahc-gallery__item::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(15,31,82,.5)); opacity: 0; transition: opacity .3s; }
.ahc-gallery__item:hover::after, .ahc-gallery__item:focus-visible::after { opacity: 1; }
.ahc-gallery__badge { position: absolute; inset-inline-start: 12px; bottom: 12px; z-index: 1; background: var(--on-brand); color: var(--brand-deep); font: 800 11px/1 var(--font-sans); letter-spacing: .08em; text-transform: uppercase; padding: 6px 10px; border-radius: var(--radius-sm); }
.ahc-lightbox { position: fixed; inset: 0; z-index: 400; background: rgba(8, 16, 46, .94); display: grid; grid-template-columns: 64px 1fr 64px; align-items: center; padding: 56px 16px 40px; }
.ahc-lightbox[hidden] { display: none; }
.ahc-lightbox__stage { display: grid; place-items: center; max-height: 100%; min-height: 0; }
.ahc-lightbox__stage img, .ahc-lightbox__stage video { max-width: 100%; max-height: calc(100vh - 120px); border-radius: var(--radius-md); }
.ahc-lightbox button { background: rgba(255,255,255,.12); color: #fff; border: 1px solid rgba(255,255,255,.3); cursor: pointer; border-radius: 50%; }
.ahc-lightbox button:hover { background: var(--accent); color: var(--brand-deep); border-color: var(--accent); }
.ahc-lightbox__close { position: absolute; top: 12px; inset-inline-end: 16px; width: 44px; height: 44px; font-size: 28px; line-height: 1; }
.ahc-lightbox__nav { width: 48px; height: 48px; font-size: 18px; justify-self: center; }
.ahc-lightbox__count { position: absolute; bottom: 12px; inset-inline: 0; text-align: center; color: var(--on-brand-muted); font-size: 13px; }

/* Journey timeline (history page) */
.ahc-chron { position: relative; display: flex; flex-direction: column; gap: var(--space-7); padding-inline-start: 0; }
.ahc-chron::before { content: ""; position: absolute; inset-block: 8px; inset-inline-start: 119px; width: 1px; background: var(--border-strong); }
.ahc-chron__item { display: grid; grid-template-columns: 96px 48px 1fr; gap: 0; align-items: start; }
.ahc-chron__year { font: 600 40px/44px var(--font-display); color: var(--brand-ink); letter-spacing: -.01em; }
.ahc-chron__dot { justify-self: center; width: 16px; height: 16px; margin-top: 14px; border-radius: 50%; background: var(--accent); border: 3px solid var(--surface); box-shadow: 0 0 0 1px var(--border-strong); position: relative; z-index: 1; }
.ahc-chron__card { display: grid; grid-template-columns: 1fr minmax(0, 320px); gap: var(--space-6); align-items: start; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); padding: var(--space-6); }
.ahc-chron__card--noimg { grid-template-columns: 1fr; }
.ahc-chron__card h3 { font: 600 24px/32px var(--font-display); margin-bottom: var(--space-3); }
.ahc-chron__card img { width: 100%; height: auto; border-radius: var(--radius-md); display: block; }

/* Reports */
.ahc-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: var(--space-4); }
.ahc-kpi { background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--accent); border-radius: var(--radius-md); padding: var(--space-5); display: flex; flex-direction: column; gap: 6px; }
.ahc-kpi b { font: 600 34px/40px var(--font-display); color: var(--brand-ink); letter-spacing: -.01em; }
.ahc-kpi span { font-size: 13px; line-height: 18px; font-weight: 700; color: var(--ink-muted); }
.ahc-reportgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--space-5); }
.ahc-report { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; text-decoration: none; color: inherit; transition: box-shadow .25s, transform .25s; }
.ahc-report:hover, .ahc-report:focus-visible { box-shadow: var(--shadow-md); transform: translateY(-4px); }
.ahc-report__cover { aspect-ratio: 3/4; background: linear-gradient(160deg, var(--brand), var(--brand-deep)); display: grid; place-items: center; overflow: hidden; }
.ahc-report__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ahc-report__cover span { color: var(--accent); font: 600 44px/1 var(--font-display); }
.ahc-report__body { padding: var(--space-4) var(--space-5) var(--space-5); border-top: 3px solid var(--accent); display: flex; flex-direction: column; gap: 6px; }
.ahc-report__body b { font: 600 17px/24px var(--font-display); }
.ahc-report__body small { font-size: 12px; font-weight: 800; letter-spacing: .06em; color: var(--brand-ink); display: inline-flex; gap: 6px; }
.ahc-report__body small::before { content: "\2193"; }
.ahc-chartbox { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); padding: var(--space-5); }
.ahc-chartbox canvas { max-width: 100%; }

/* Contact */
.ahc-formcard { background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--accent); border-radius: var(--radius-md); padding: var(--space-7); box-shadow: var(--shadow-md); }
.ahc-formcard h2 { font: 600 32px/40px var(--font-display); }
.ahc-captcha { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; }
.ahc-captcha b { font: 700 18px/1 var(--font-sans); padding: 10px 16px; background: var(--surface-tint); border-radius: var(--radius-sm); border: 1px dashed var(--border-strong); }
.ahc-captcha input { max-width: 140px; }
.ahc-offices { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--space-5); }
.ahc-office a { color: var(--brand-ink); }
.ahc-mapframe { border: 0; width: 100%; aspect-ratio: 16/8; min-height: 320px; border-radius: var(--radius-md); background: var(--surface-tint); display: block; }

/* CSR themes */
.ahc-theme { display: grid; grid-template-columns: 1fr 1fr; gap: 0; align-items: stretch; border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; background: var(--surface); }
.ahc-theme:nth-child(even) .ahc-theme__media { order: 2; }
.ahc-theme__media img { width: 100%; height: 100%; min-height: 260px; object-fit: cover; display: block; }
.ahc-theme__copy { padding: var(--space-7); display: flex; flex-direction: column; gap: var(--space-3); justify-content: center; align-items: flex-start; }
.ahc-theme__copy h3 { font: 600 28px/36px var(--font-display); }
.ahc-theme__copy p { color: var(--ink-muted); }

/* Company / sector rows */
.ahc-companyrow { display: grid; grid-template-columns: 240px 1fr; gap: var(--space-6); padding: var(--space-6); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); align-items: center; }
.ahc-companyrow__logo { height: 140px; display: grid; place-items: center; background: var(--surface-alt); border-radius: var(--radius-md); padding: var(--space-4); }
.ahc-companyrow__logo img { max-width: 100%; max-height: 100%; object-fit: contain; }

/* Responsive */
@media (max-width: 1080px) {
  .ahc-facts, .ahc-facts--3 { grid-template-columns: repeat(2, 1fr); }
  .ahc-people { grid-template-columns: repeat(3, 1fr); }
  .ahc-gallery { columns: 2; }
  .ahc-profile { grid-template-columns: 1fr; gap: var(--space-6); }
  .ahc-profile__aside { position: static; max-width: 360px; }
  .ahc-statement h2 { font-size: 34px; line-height: 42px; }
}
@media (max-width: 760px) {
  .ahc-facts, .ahc-facts--3 { grid-template-columns: 1fr; }
  .ahc-people { grid-template-columns: repeat(2, 1fr); gap: var(--space-3); }
  .ahc-person__body { padding: var(--space-3) var(--space-3) var(--space-4); }
  .ahc-person__body h3 { font-size: 18px; line-height: 24px; }
  .ahc-gallery { columns: 1; }
  .ahc-statement { padding: var(--space-7) var(--space-5); }
  .ahc-statement h2 { font-size: 28px; line-height: 36px; }
  .ahc-vision { padding: var(--space-5); }
  .ahc-vision p { font-size: 20px; line-height: 30px; }
  .ahc-chron::before { inset-inline-start: 7px; }
  .ahc-chron__item { grid-template-columns: 16px 1fr; gap: var(--space-4); }
  .ahc-chron__year { grid-column: 2; grid-row: 1; font-size: 32px; line-height: 36px; }
  .ahc-chron__dot { grid-column: 1; grid-row: 1; margin: 12px 0 0; }
  .ahc-chron__card { grid-column: 2; grid-row: 2; margin-inline-start: 0; grid-template-columns: 1fr; padding: var(--space-5); }
  .ahc-formcard { padding: var(--space-5); }
  .ahc-theme { grid-template-columns: 1fr; }
  .ahc-theme:nth-child(even) .ahc-theme__media { order: 0; }
  .ahc-theme__copy { padding: var(--space-5); }
  .ahc-companyrow { grid-template-columns: 1fr; padding: var(--space-5); }
  .ahc-lightbox { grid-template-columns: 1fr; padding: 56px 8px 72px; }
  .ahc-lightbox__nav { position: absolute; bottom: 12px; }
  .ahc-lightbox__prev { inset-inline-start: 24px; }
  .ahc-lightbox__next { inset-inline-end: 24px; }
  .ahc-subnav { position: static; }
}

/* Card media images + news */
.ahc-card__media { background: var(--surface-tint); overflow: hidden; display: block; }
.ahc-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.ahc-card:hover .ahc-card__media img { transform: scale(1.04); }
.ahc-card__date { font-size: 12px; line-height: 18px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--accent-ink); }
.ahc-card__body h3 a { color: inherit; text-decoration: none; }
.ahc-card__body h3 a::after { content: ""; position: absolute; inset: 0; }
.ahc-card { position: relative; }
.ahc-card__body h3 { font-size: 20px; line-height: 28px; }

/* Announcements */
.ahc-annlist { display: flex; flex-direction: column; gap: var(--space-4); }
.ahc-ann { position: relative; display: grid; grid-template-columns: 96px 1fr; gap: var(--space-5); padding: var(--space-5) var(--space-5) var(--space-5) var(--space-5); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); transition: box-shadow .25s, border-color .25s; }
.ahc-ann:hover { box-shadow: var(--shadow-md); border-color: var(--border-strong); }
.ahc-ann__date { display: flex; flex-direction: column; align-items: center; align-self: start; padding: var(--space-2); background: var(--surface-tint); border-radius: var(--radius-sm); border-top: 2px solid var(--accent); }
.ahc-ann__date b { font: 600 30px/34px var(--font-display); color: var(--brand-ink); }
.ahc-ann__date span { font-size: 11px; line-height: 16px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-muted); white-space: nowrap; }
.ahc-ann__body { display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; }
.ahc-ann__body h3 { font: 600 22px/30px var(--font-display); color: var(--ink); }
.ahc-ann__pin { font-weight: 700; color: var(--ink); }
.ahc-ann__body .ahc-richtext { color: var(--ink-muted); font-size: 15px; line-height: 24px; overflow-wrap: anywhere; }
.ahc-ann__new { align-self: flex-start; }
.ahc-yearbar { display: flex; flex-direction: column; gap: var(--space-4); margin-bottom: var(--space-6); }
.ahc-yearbar .ahc-pills { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; }
.ahc-yearbar .ahc-pills button { flex: none; }

/* Article */
.ahc-article { max-width: 780px; margin-inline: auto; }
.ahc-article__meta { display: flex; gap: var(--space-4); flex-wrap: wrap; color: var(--ink-muted); font-size: 14px; }
.ahc-article__figure { margin: 0 0 var(--space-6); }
.ahc-article__figure img { width: 100%; height: auto; border-radius: var(--radius-md); display: block; border-bottom: 4px solid var(--accent); }
.ahc-article__body { font-size: 18px; line-height: 30px; color: var(--ink); overflow-wrap: anywhere; }
@media (max-width: 760px) {
  .ahc-ann { grid-template-columns: 1fr; padding: var(--space-5) var(--space-4); }
  .ahc-ann__date { flex-direction: row; gap: 8px; justify-self: start; padding: 6px 12px; }
  .ahc-ann__date b { font-size: 20px; line-height: 24px; }
  .ahc-article__body { font-size: 17px; line-height: 28px; }
}

/* Journey (history) */
.ahc-jn__rail { display: flex; gap: 0; overflow-x: auto; border-bottom: 1px solid var(--line); margin-bottom: var(--space-7); scrollbar-width: thin; }
.ahc-jn__rail button { flex: none; position: relative; padding: 18px 22px 22px; background: none; border: 0; cursor: pointer; font: 600 22px/28px var(--font-display); color: var(--ink-muted); }
.ahc-jn__rail button::before { content: ""; position: absolute; inset-inline: 22px; bottom: -1px; height: 3px; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform .3s; }
.ahc-jn__rail button::after { content: ""; position: absolute; left: 50%; bottom: 8px; width: 7px; height: 7px; margin-left: -3px; border-radius: 50%; background: var(--border-strong); opacity: .5; }
.ahc-jn__rail button:hover { color: var(--brand-ink); }
.ahc-jn__rail button[aria-selected="true"] { color: var(--brand-ink); }
.ahc-jn__rail button[aria-selected="true"]::before { transform: scaleX(1); }
.ahc-jn__rail button[aria-selected="true"]::after { background: var(--accent); opacity: 1; }
.ahc-jn__slide { display: grid; grid-template-columns: 5fr 7fr; gap: var(--space-8); align-items: center; }
.ahc-jn__slide--noimg { grid-template-columns: 1fr; max-width: 760px; }
.ahc-jn__year { font: 600 88px/88px var(--font-display); letter-spacing: -.03em; color: var(--brand-ink); }
.ahc-jn__year::after { content: ""; display: block; width: 72px; height: 4px; background: var(--accent); margin-top: var(--space-4); }
.ahc-jn__slide h2 { font: 600 32px/40px var(--font-display); margin-top: var(--space-5); }
.ahc-jn__slide .ahc-richtext { margin-top: var(--space-4); color: var(--ink-muted); }
.ahc-jn__slide img { width: 100%; height: auto; border-radius: var(--radius-md); display: block; border-bottom: 4px solid var(--accent); box-shadow: var(--shadow-md); }
.ahc-jn__nav { display: flex; justify-content: space-between; gap: var(--space-4); margin-top: var(--space-7); padding-top: var(--space-5); border-top: 1px solid var(--line); }
.ahc-jn__nav button[disabled] { opacity: .4; cursor: not-allowed; }
@media (max-width: 1080px) { .ahc-jn__slide { grid-template-columns: 1fr; gap: var(--space-6); } .ahc-jn__year { font-size: 64px; line-height: 64px; } }
@media (max-width: 760px) { .ahc-jn__year { font-size: 52px; line-height: 52px; } .ahc-jn__slide h2 { font-size: 26px; line-height: 34px; } .ahc-jn__nav .ahc-btn { padding-inline: 14px; } }

/* Partners */
.ahc-partnercard { background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--accent); border-radius: var(--radius-md); padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-5); height: 100%; }
.ahc-partnercard h3 { font: 800 12px/18px var(--font-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-muted); }
.ahc-partnercard__logos { flex: 1; display: flex; flex-direction: column; gap: var(--space-5); align-items: center; justify-content: center; min-height: 120px; }
.ahc-partnercard__logos img { max-width: 100%; max-height: 90px; width: auto; height: auto; object-fit: contain; }
.ahc-affil { display: flex; flex-direction: column; counter-reset: a; }
.ahc-affil li { counter-increment: a; display: grid; grid-template-columns: 56px 1fr; gap: var(--space-4); padding-block: var(--space-5); border-top: 1px solid var(--line); }
.ahc-affil li:last-child { border-bottom: 1px solid var(--line); }
.ahc-affil li::before { content: counter(a, decimal-leading-zero); font: 600 20px/28px var(--font-display); color: var(--accent-ink); }
.ahc-affil h3 { font: 600 22px/30px var(--font-display); }
.ahc-affil p { color: var(--ink-muted); margin-top: 4px; }
.ahc-bigquote { font: 400 32px/46px var(--font-display); max-width: 30ch; color: var(--on-brand); position: relative; padding-top: var(--space-7); }
.ahc-bigquote::before { content: "\201C"; position: absolute; top: -20px; inset-inline-start: -6px; font: 600 110px/1 var(--font-display); color: var(--accent); }
@media (max-width: 760px) { .ahc-bigquote { font-size: 22px; line-height: 34px; } }

/* Themes + policies */
.ahc-tiles5 { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--space-4); }
.ahc-tiles5 .ahc-tile h3 { font-size: 22px; line-height: 28px; }
.ahc-tiles5 .ahc-tile__body { padding: var(--space-4); }
.ahc-policies { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-4); }
.ahc-policies .ahc-policy { text-decoration: none; color: inherit; transition: box-shadow .25s, border-color .25s, transform .25s; }
.ahc-policies a.ahc-policy:hover { box-shadow: var(--shadow-md); border-color: var(--border-strong); transform: translateY(-2px); }
.ahc-policies .ahc-policy h3 { overflow-wrap: anywhere; }
.ahc-policy__dl { font-size: 13px; font-weight: 800; color: var(--brand-ink); letter-spacing: .04em; display: inline-flex; gap: 6px; align-items: center; white-space: nowrap; }
.ahc-policy__dl::before { content: "\2193"; }
.ahc-twoprose { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-8); }
.ahc-twoprose > * + * { border-inline-start: 1px solid var(--line); padding-inline-start: var(--space-8); }
@media (max-width: 1080px) { .ahc-tiles5 { grid-template-columns: repeat(3, 1fr); } .ahc-policies { grid-template-columns: 1fr; } .ahc-twoprose { grid-template-columns: 1fr; gap: var(--space-5); } .ahc-twoprose > * + * { border-inline-start: 0; padding-inline-start: 0; } }
@media (max-width: 760px) { .ahc-tiles5 { grid-template-columns: repeat(2, 1fr); } .ahc-tiles5 .ahc-tile { aspect-ratio: 1 / 1.1; } }

/* Sector rows */
.ahc-sectorrows { display: flex; flex-direction: column; gap: var(--space-7); }
.ahc-sectorrow { display: grid; grid-template-columns: 5fr 7fr; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; }
.ahc-sectorrow:nth-child(even) { grid-template-columns: 7fr 5fr; }
.ahc-sectorrow:nth-child(even) .ahc-sectorrow__media { order: 2; }
.ahc-sectorrow__media { position: relative; min-height: 320px; background: var(--surface-tint); overflow: hidden; }
.ahc-sectorrow__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ahc-sectorrow__media::after { content: ""; position: absolute; inset-inline: 0; bottom: 0; height: 4px; background: var(--accent); }
.ahc-sectorrow__body { padding: var(--space-7); display: flex; flex-direction: column; gap: var(--space-4); align-items: flex-start; justify-content: center; }
.ahc-sectorrow__body h3 { font: 600 34px/42px var(--font-display); text-transform: capitalize; }
@media (max-width: 1080px) { .ahc-sectorrow, .ahc-sectorrow:nth-child(even) { grid-template-columns: 1fr; } .ahc-sectorrow:nth-child(even) .ahc-sectorrow__media { order: 0; } .ahc-sectorrow__media { min-height: 240px; } .ahc-sectorrow__body { padding: var(--space-5); } .ahc-sectorrow__body h3 { font-size: 28px; line-height: 36px; } }

/* Company detail blocks */
.ahc-detailgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-3); width: 100%; margin-top: var(--space-2); }
.ahc-detailgrid .ahc-fact { padding: var(--space-4); }
.ahc-detailgrid .ahc-fact dd { font: 500 15px/23px var(--font-sans); color: var(--ink-muted); }
.ahc-detailgrid .ahc-fact dt { color: var(--brand-ink); }
@media (max-width: 760px) { .ahc-detailgrid { grid-template-columns: 1fr; } }
.ahc [hidden] { display: none !important; }
.ahc-gallery__item video { pointer-events: none; }
.ahc-gallery__item:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.ahc-galleryhead { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--space-5); flex-wrap: wrap; margin-bottom: var(--space-6); }

/* Financial reports */
.ahc-yearcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: var(--space-5); }
.ahc-yearcard { background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--accent); border-radius: var(--radius-md); overflow: hidden; display: flex; flex-direction: column; }
.ahc-yearcard__head { padding: var(--space-4) var(--space-5); background: var(--surface-tint); display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-3); }
.ahc-yearcard__head h3 { font: 600 24px/30px var(--font-display); color: var(--brand-ink); }
.ahc-yearcard__head span { font-size: 12px; font-weight: 800; letter-spacing: .08em; color: var(--ink-muted); text-transform: uppercase; }
.ahc-yearcard ul { margin: 0; padding: 0; list-style: none; }
.ahc-yearcard li + li { border-top: 1px solid var(--line); }
.ahc-yearcard a { display: grid; grid-template-columns: 36px 1fr auto; gap: var(--space-3); align-items: center; padding: 14px var(--space-5); text-decoration: none; color: var(--ink); }
.ahc-yearcard a:hover, .ahc-yearcard a:focus-visible { background: var(--surface-alt); }
.ahc-yearcard a::before { content: "PDF"; width: 36px; height: 36px; display: grid; place-items: center; background: var(--brand); color: var(--on-brand); border-radius: var(--radius-sm); font: 800 10px/1 var(--font-sans); letter-spacing: .06em; }
.ahc-yearcard a b { display: block; font-size: 15px; line-height: 22px; font-weight: 700; }
.ahc-yearcard a small { display: block; font-size: 12px; line-height: 18px; color: var(--ink-muted); }
.ahc-yearcard a::after { content: "\2193"; font-weight: 800; color: var(--brand-ink); }
.ahc-chartbar { display: flex; gap: var(--space-4); flex-wrap: wrap; align-items: flex-end; margin-bottom: var(--space-5); }
.ahc-chartbar .ahc-field { min-width: 200px; }
.ahc-chartbox__canvas { position: relative; height: 420px; }
.ahc-docbtn { display: flex; align-items: center; gap: var(--space-4); padding: var(--space-4) var(--space-5); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); text-decoration: none; color: var(--ink); font-weight: 700; }
.ahc-docbtn::before { content: "PDF"; width: 40px; height: 40px; display: grid; place-items: center; background: var(--brand); color: var(--on-brand); border-radius: var(--radius-sm); font: 800 11px/1 var(--font-sans); letter-spacing: .06em; flex: none; }
a.ahc-docbtn:hover { border-color: var(--border-strong); box-shadow: var(--shadow-md); }
.ahc-docbtn[aria-disabled="true"] { color: var(--ink-muted); background: var(--surface-alt); cursor: not-allowed; }
.ahc-docbtn[aria-disabled="true"]::before { background: var(--border-strong); }
.ahc-docbtn small { display: block; font-weight: 500; font-size: 12px; }
.ahc-kpipills { margin-bottom: var(--space-5); }
@media (max-width: 760px) { .ahc-yearcards { grid-template-columns: 1fr; } .ahc-chartbox__canvas { height: 320px; } .ahc-chartbar .ahc-field { flex: 1 1 100%; } }

/* Careers */
.ahc-deptgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--space-4); }
.ahc-dept { border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; background: var(--surface); transition: box-shadow .25s, transform .25s; }
.ahc-dept:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }
.ahc-dept img { display: block; width: 100%; height: auto; }
.ahc-mailcta { display: inline-flex; align-items: center; gap: var(--space-3); font: 600 clamp(22px, 3.4vw, 36px)/1.2 var(--font-display); color: var(--on-brand); text-decoration: none; border-bottom: 2px solid var(--accent); padding-bottom: 6px; overflow-wrap: anywhere; }
.ahc-mailcta:hover { color: var(--accent); }

/* Sitemap */
.ahc-sitemap { display: flex; flex-direction: column; gap: var(--space-8); }
.ahc-sitemap section > h2 { font: 600 30px/38px var(--font-display); padding-bottom: var(--space-3); border-bottom: 1px solid var(--line); margin-bottom: var(--space-5); position: relative; }
.ahc-sitemap section > h2::after { content: ""; position: absolute; left: 0; bottom: -1px; width: 72px; height: 3px; background: var(--accent); }
.ahc-sitemap ul { columns: 3; column-gap: var(--space-7); list-style: none; padding: 0; margin: 0; }
.ahc-sitemap li { break-inside: avoid; padding-block: 6px; }
.ahc-sitemap li a { color: var(--ink); text-decoration: none; display: inline-block; padding-inline-start: 16px; position: relative; }
.ahc-sitemap li a::before { content: ""; position: absolute; left: 0; top: .6em; width: 6px; height: 6px; background: var(--accent); border-radius: 50%; }
.ahc-sitemap li a:hover { color: var(--brand-ink); text-decoration: underline; }
.ahc-sitemap li.ahc-sitemap__head { font-weight: 800; color: var(--brand-ink); padding-top: 12px; break-after: avoid; }
@media (max-width: 1080px) { .ahc-sitemap ul { columns: 2; } }
@media (max-width: 760px) { .ahc-sitemap ul { columns: 1; } }
.ahc-jn__nav [data-jn-prev]::after { content: none; }
.ahc-jn__nav [data-jn-prev]::before { content: "\2190"; margin-inline-end: 8px; }
.ahc-prose .ahc-lead, .ahc-container--narrow .ahc-lead { max-width: none; }
.ahc-docbtn--link::before { content: "\2192"; font: 400 20px/1 var(--font-sans); background: var(--surface-tint); color: var(--brand-ink); }
.ahc-twocol--flip { grid-template-columns: 7fr 5fr; }
.ahc-twocol--even { grid-template-columns: 1fr 1fr; align-items: stretch; }
.ahc-kpis--2 { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 1080px) { .ahc-twocol--flip, .ahc-twocol--even { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .ahc-kpis--2 { grid-template-columns: 1fr; } }

/* Optimised images are wrapped in <picture>; keep it layout-neutral */
.ahc picture{display:contents}

/* CEO message: portrait sits in a fixed frame so the source image size never affects the layout */
.ahc-quote { grid-template-columns: minmax(200px, 260px) 1fr; }
.ahc-quote__media { width: 100%; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--radius-md); border-bottom: 4px solid var(--accent); background: var(--surface-tint); }
.ahc-quote__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 44% 20%; }
/* Images wrapped in <picture> must never grow their grid/flex track */
.ahc picture > img { min-width: 0; max-width: 100%; }
@media (max-width: 1080px) { .ahc-quote { grid-template-columns: 1fr; } .ahc-quote__media { max-width: 260px; } }

/* ============ Site search: dropdown results and the full results page ============ */

/* Dropdown results carry a title and a short excerpt with the matched words highlighted */
.ahc-search__results { max-height: min(62vh, 560px); overflow-y: auto; }
.ahc-result { align-items: flex-start !important; }
.ahc-result .ahc-tag { margin-top: 2px; }
.ahc-result__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ahc-result__body strong { font-weight: 700; color: var(--ink); }
.ahc-result__snippet { color: var(--ink-muted); font-size: 14px; line-height: 21px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ahc-result__path { color: var(--brand); font-size: 12.5px; line-height: 18px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ahc-result mark, .ahc-searchpage mark { background: var(--accent-tint, #f4e7c1); color: inherit; border-radius: 2px; padding: 0 1px; }
.ahc-result--all { justify-content: space-between; align-items: center !important; font-weight: 700; color: var(--brand) !important; border-top: 1px solid var(--line); border-radius: 0 !important; margin-top: var(--space-2); }
.ahc-search__empty { color: var(--ink-muted); font-size: 14px; }

/* Full results page */
.ahc-searchpage { max-width: 860px; }
.ahc-searchpage__form { display: flex; gap: var(--space-3); align-items: stretch; flex-wrap: wrap; }
.ahc-searchpage__box { position: relative; flex: 1 1 320px; }
.ahc-searchpage__box input { width: 100%; font: 500 18px/28px var(--font-sans); padding: 14px 16px 14px 48px; border: 1.5px solid var(--border-strong); border-radius: var(--radius-sm); background: var(--surface); color: var(--ink); }
.ahc-searchpage__box svg { position: absolute; inset-inline-start: 16px; top: 16px; width: 20px; height: 20px; stroke: var(--ink-muted); fill: none; stroke-width: 2; }
.ahc-searchpage__status { margin: var(--space-5) 0 var(--space-4); color: var(--ink-muted); font-size: 15px; min-height: 24px; }
.ahc-searchpage__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.ahc-searchpage__list li { border-top: 1px solid var(--line); }
.ahc-searchpage__list li:last-child { border-bottom: 1px solid var(--line); }
.ahc-searchpage__list .ahc-result { display: flex; gap: var(--space-4); padding: var(--space-5) var(--space-3); color: var(--ink); text-decoration: none; border-radius: 0; }
.ahc-searchpage__list .ahc-result:hover { background: var(--surface-tint); }
.ahc-searchpage__list .ahc-result .ahc-tag { flex: none; min-width: 96px; justify-content: center; }
.ahc-searchpage__list .ahc-result__body strong { font: 600 20px/28px var(--font-display); color: var(--brand-ink); }
.ahc-searchpage__list .ahc-result__snippet { -webkit-line-clamp: 3; font-size: 15px; line-height: 23px; }
@media (max-width: 760px) {
  .ahc-searchpage__list .ahc-result { flex-direction: column; gap: var(--space-2); }
  .ahc-searchpage__list .ahc-result .ahc-tag { min-width: 0; }
}
.ahc-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
