/* Programme landing pages */
.nobr { white-space: nowrap; }
.cjk-headline { word-break: keep-all; line-break: strict; }
.hh-prog-body { background: #fbf8f2; }
.hh-prog-hero {
 padding: clamp(2.6rem, 5.5vw, 4.5rem) 0 clamp(2rem, 3.5vw, 3rem);
 background:
 linear-gradient(135deg, rgba(255,130,45,.08), transparent 42%),
 linear-gradient(180deg, #f8f1e8 0%, #f3ebe2 100%);
 border-bottom: 1px solid rgba(42,34,28,.1);
}
.hh-prog-hero__grid {
 display: grid;
 grid-template-columns: minmax(0, 1.15fr) minmax(280px, .75fr);
 gap: clamp(1.5rem, 4vw, 3rem);
 align-items: center;
}
.hh-prog-hero .hh-kicker {
 margin: 0 0 .7rem;
 color: #a84a0a;
 letter-spacing: .16em;
 font-weight: 600;
 font-size: .78rem;
}
.hh-prog-hero h1 {
 margin: 0 0 1rem;
 font-family: var(--hh-serif);
 font-weight: 500;
 font-size: clamp(1.9rem, 3.4vw, 2.7rem);
 line-height: 1.28;
 letter-spacing: .02em;
 word-break: keep-all;
 line-break: strict;
}
.hh-prog-hero__lead {
 margin: 0 0 1.5rem;
 max-width: 38rem;
 color: #4a423c;
 font-size: 1.02rem;
 line-height: 1.85;
}
.hh-prog-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.hh-prog-hero figure { margin: 0; }
.hh-prog-hero img {
 width: 100%;
 aspect-ratio: 4 / 5;
 object-fit: cover;
 border-radius: 22px;
 background: #efe8e1;
}
.hh-prog-section { padding: clamp(2.4rem, 5vw, 3.8rem) 0; }
.hh-prog-section--tint { background: rgba(255,255,255,.62); }
.hh-prog-section__head {
 max-width: 40rem;
 margin-bottom: 1.6rem;
}
.hh-prog-section__head h2 {
 margin: 0 0 .7rem;
 font-family: var(--hh-serif);
 font-weight: 500;
 font-size: clamp(1.35rem, 2.2vw, 1.8rem);
 line-height: 1.35;
 word-break: keep-all;
}
.hh-prog-section__head p {
 margin: 0;
 color: #4a423c;
 line-height: 1.8;
}
.hh-prog-steps {
 display: grid;
 grid-template-columns: repeat(4, minmax(0, 1fr));
 gap: 1rem;
 counter-reset: progstep;
}
.hh-prog-step {
 position: relative;
 padding: 1.35rem 1.15rem 1.4rem;
 background: #fff;
 border: 1px solid rgba(42,34,28,.1);
 border-radius: 16px;
}
.hh-prog-step::before {
 counter-increment: progstep;
 content: "0" counter(progstep);
 display: block;
 margin-bottom: .65rem;
 color: #ff822d;
 font-family: Syne, var(--hh-sans), sans-serif;
 font-size: .78rem;
 font-weight: 700;
 letter-spacing: .14em;
}
.hh-prog-step h3 {
 margin: 0 0 .5rem;
 font-family: var(--hh-serif);
 font-size: 1.05rem;
 font-weight: 500;
}
.hh-prog-step p {
 margin: 0;
 color: #4a423c;
 font-size: .92rem;
 line-height: 1.7;
}
.hh-prog-concerns {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: .85rem;
}
.hh-prog-concern {
 display: block;
 padding: 1.15rem 1.1rem;
 border-radius: 14px;
 border: 1px solid rgba(42,34,28,.12);
 background: #fff;
 text-decoration: none;
 color: inherit;
}
.hh-prog-concern:hover,
.hh-prog-concern:focus-visible {
 border-color: #ff822d;
 text-decoration: none;
}
.hh-prog-concern h3 {
 margin: 0 0 .4rem;
 font-family: var(--hh-serif);
 font-size: 1.02rem;
 font-weight: 500;
}
.hh-prog-concern p {
 margin: 0;
 color: #4a423c;
 font-size: .9rem;
 line-height: 1.65;
}
.hh-prog-split {
 display: grid;
 grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
 gap: 1.5rem 2.25rem;
 align-items: start;
}
.hh-prog-split ul {
 margin: 0;
 padding-left: 1.15rem;
 color: #4a423c;
 line-height: 1.8;
}
.hh-prog-split li + li { margin-top: .4rem; }
@media (max-width: 960px) {
 .hh-prog-hero__grid,
 .hh-prog-concerns,
 .hh-prog-split { grid-template-columns: 1fr 1fr; }
 .hh-prog-steps { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
 .hh-prog-hero__grid,
 .hh-prog-steps,
 .hh-prog-concerns,
 .hh-prog-split { grid-template-columns: 1fr; }
}
