/* Programme page styles */
.page-hero { padding-top: calc(var(--header-h) + clamp(40px, 7vw, 90px)); padding-bottom: clamp(20px, 4vw, 44px); }
.prog-head { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(34px,5vw,72px); align-items: end; }
.prog-head .display { font-size: clamp(2.6rem, 5.6vw, 4.4rem); margin:.2em 0 0; }
.prog-head .display em { color: var(--mauve-deep); }
.prog-head .ph { aspect-ratio: 5/4; }

.expect { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.expect-card { border:1px solid var(--line); border-radius: 8px; padding: 24px; background: var(--cream); }
.expect-card .ei { width: 36px; height: 36px; border-radius: 50%; background: var(--mauve-wash); display:grid; place-items:center; margin-bottom: 14px; }
.expect-card .ei svg { width: 17px; height:17px; stroke: var(--mauve-deep); }
.expect-card p { font-size: .98rem; line-height: 1.4; }

.struct { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(30px,5vw,70px); align-items: start; }
[data-acc] { border-top: 1px solid var(--line); }
.acc-item { border-bottom: 1px solid var(--line); }
.acc-head { width: 100%; display: flex; align-items: center; gap: 18px; padding: 24px 0; text-align: left; }
.acc-head .wk { font-family: var(--serif); font-style: italic; color: var(--mauve-deep); font-size: 1.05rem; flex: none; width: 76px; }
.acc-head .at { font-family: var(--serif); font-size: clamp(1.25rem,2.2vw,1.6rem); flex: 1; }
.acc-head .ai { flex: none; width: 30px; height: 30px; border:1px solid var(--line); border-radius:50%; display:grid; place-items:center; transition: background .3s, border-color .3s; }
.acc-head .ai::before, .acc-head .ai::after { content:""; position:absolute; width: 11px; height: 1.6px; background: var(--ink); transition: transform .35s var(--ease), background .3s; }
.acc-head .ai { position: relative; }
.acc-head .ai::after { transform: rotate(90deg); }
.acc-item.open .ai { background: var(--mauve-deep); border-color: var(--mauve-deep); }
.acc-item.open .ai::before, .acc-item.open .ai::after { background:#fff; }
.acc-item.open .ai::after { transform: rotate(0deg); }
.acc-body { max-height: 0; overflow: hidden; transition: max-height .45s var(--ease); }
.acc-body p { padding: 0 0 24px 94px; color: var(--ink-soft); }
@media (prefers-reduced-motion: reduce){ .acc-body { transition: none; } }

.details-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--line); border:1px solid var(--line); border-radius: 12px; overflow: hidden; }
.detail { background: var(--cream); padding: clamp(24px,3vw,36px); }
.detail .k { font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color: var(--ink-faint); }
.detail .v { font-family: var(--serif); font-size: clamp(1.3rem,2vw,1.75rem); margin-top:.35em; line-height:1.1; }
.detail .v em { color: var(--mauve-deep); font-style: normal; }

.who { display:grid; grid-template-columns: 1fr 1fr; gap: clamp(30px,5vw,72px); align-items:center; }
.checklist { list-style:none; display:flex; flex-direction:column; }
.checklist li { display:flex; gap:14px; padding:16px 0; border-bottom:1px solid var(--line-soft); font-size:1.04rem; }
.checklist li:first-child { padding-top:0; }
.checklist .ck { flex:none; width:24px; height:24px; border-radius:50%; background:var(--mauve-wash); border:1px solid var(--mauve-tint); display:grid; place-items:center; margin-top:2px; }
.checklist .ck svg { width:12px; height:12px; stroke:var(--mauve-deep); }
.who .ph { aspect-ratio: 3/4; }

.focus-list { columns: 2; column-gap: 40px; }
.focus-list li { break-inside: avoid; display:flex; gap:12px; padding:12px 0; border-bottom:1px solid var(--line-soft); list-style:none; }
.focus-list li::before { content:"—"; color: var(--mauve); }

.invest { display:grid; grid-template-columns: 1fr 1fr; gap: clamp(30px,5vw,72px); align-items:center; }
.invest-card { background: var(--ink); color: var(--paper); border-radius: 16px; padding: clamp(34px,4vw,56px); }
.invest-card .price { font-family: var(--serif); font-size: clamp(3.4rem,7vw,5.2rem); line-height:1; }
.invest-card .price small { font-size: 1rem; color: var(--mauve); font-family: var(--sans); letter-spacing:.06em; display:block; margin-bottom:.6em; }
.invest-card ul { list-style:none; margin:1.6em 0 0; display:flex; flex-direction:column; gap:.7em; }
.invest-card li { display:flex; gap:12px; color: rgba(245,245,242,.8); }
.invest-card li svg { width:18px; height:18px; stroke: var(--mauve); flex:none; margin-top:3px; }

@media (max-width: 980px){ .expect, .details-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 920px){ .prog-head, .struct, .who, .invest { grid-template-columns: 1fr; } .prog-head .ph { aspect-ratio:16/10; max-width:540px; } .who .ph { aspect-ratio:16/11; order:-1; } .focus-list { columns:1; } }
@media (max-width: 760px){ .nav, .header-cta .btn { display:none; } .burger { display:flex; } .foot-grid { grid-template-columns:1fr 1fr; } .acc-body p { padding-left: 0; } }
@media (max-width: 560px){ .expect, .details-grid { grid-template-columns:1fr; } .foot-grid { grid-template-columns:1fr; } }
