/* Programme pages share the home palette and display/serif hierarchy. */
html { scroll-behavior: smooth; }
.program-detail { --detail-serif: "Cormorant Garamond", Georgia, serif; --detail-ease: cubic-bezier(.16, 1, .3, 1); background: hsl(var(--background)); color: hsl(var(--foreground)); }
.program-detail .container { width: 100%; max-width: 1400px; margin-inline: auto; padding-inline: clamp(20px, 4vw, 56px); }
.program-detail section[id] { scroll-margin-top: 112px; }
.program-detail a:focus-visible, .program-detail button:focus-visible { outline: 2px solid hsl(var(--primary)); outline-offset: 5px; border-radius: 4px; }
.detail-skip { position: fixed; top: 12px; left: 12px; z-index: 100; padding: 12px 20px; background: hsl(var(--foreground)); color: white; transform: translateY(-150%); }
.detail-skip:focus { transform: none; }
.detail-header { position: sticky; top: 0; z-index: 30; background: hsl(var(--background) / .94); border-bottom: 1px solid hsl(var(--border) / .7); backdrop-filter: blur(18px); }
.detail-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 88px; }
.detail-brand { flex: 0 0 auto; }
.detail-brand img { display: block; width: 112px; height: 78px; object-fit: contain; }
.detail-nav { display: flex; align-items: center; gap: clamp(18px, 2.5vw, 36px); }
.detail-nav a { display: flex; align-items: center; min-height: 44px; font-family: var(--font-display); font-size: 15px; letter-spacing: .07em; }
.detail-nav a:hover { color: hsl(var(--primary)); }
.detail-button { display: inline-flex; align-items: center; justify-content: center; gap: 24px; min-height: 52px; padding: 15px 26px; border: 1px solid transparent; border-radius: 999px; background: hsl(var(--foreground)); color: hsl(var(--background)); font-family: var(--font-display); font-size: 16px; line-height: 1.2; letter-spacing: .07em; text-decoration: none; transition: background .35s, transform .5s var(--detail-ease); }
.detail-button-small { min-height: 44px; padding: 12px 20px; font-size: 14px; gap: 18px; }
.detail-button > span, .detail-text-link > span { font-family: var(--font-sans); font-size: 20px; line-height: 1; transition: transform .4s var(--detail-ease); }
.detail-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 28px; }
.detail-text-link { display: inline-flex; align-items: center; gap: 18px; min-height: 44px; color: hsl(var(--primary)); font-family: var(--font-display); font-size: 16px; letter-spacing: .07em; }
.detail-hero { padding-top: clamp(28px, 4vw, 60px); }
.detail-hero-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .85fr); align-items: center; gap: clamp(32px, 5vw, 76px); }
.detail-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: clamp(30px, 4vw, 56px); font-size: 12px; line-height: 1.5; color: hsl(var(--muted-foreground)); }
.detail-breadcrumb a:hover { text-decoration: underline; }
.detail-kicker { display: flex; align-items: center; gap: 12px; margin: 0 0 24px; font-family: var(--font-display); font-size: 14px; line-height: 1.4; letter-spacing: .12em; color: hsl(var(--muted-foreground)); }
.detail-kicker .led-dot { flex: 0 0 auto; }
.detail-title { margin: 0; font-family: var(--font-display); font-weight: 400; font-size: clamp(44px, 5.4vw, 76px); line-height: .98; letter-spacing: -.025em; }
.detail-title > span { display: block; }
.detail-title .detail-title-fine { margin-top: .09em; font-family: var(--detail-serif); font-style: italic; font-weight: 400; font-size: .9em; letter-spacing: -.035em; color: hsl(var(--muted-foreground)); }
.detail-title-hero { font-size: clamp(64px, 7.7vw, 108px); }
.detail-lead, .detail-intro { margin-top: 28px; max-width: 690px; font-family: var(--detail-serif); font-size: clamp(21px, 1.9vw, 25px); line-height: 1.45; color: hsl(var(--muted-foreground)); }
.detail-hero-schedule { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 20px; margin-block: 28px; padding-block: 18px; border-block: 1px solid hsl(var(--border)); font-family: var(--font-display); font-size: 21px; letter-spacing: .025em; }
.detail-hero-schedule strong { font-weight: 400; color: hsl(var(--primary)); }
.detail-hero-schedule > span:last-child { margin-left: auto; font-family: var(--detail-serif); font-size: 18px; letter-spacing: 0; color: hsl(var(--muted-foreground)); }
.detail-hero-photo { position: relative; isolation: isolate; overflow: hidden; border-radius: 28px; aspect-ratio: 4 / 5; background: hsl(var(--card)); }
.detail-hero-photo picture { display: block; width: 100%; height: 100%; }
.detail-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; transition: transform 1.2s var(--detail-ease); }
.detail-hero-photo::after { content: ""; position: absolute; inset: 55% 0 0; z-index: 1; background: linear-gradient(transparent, rgb(0 0 0 / .65)); pointer-events: none; }
.detail-hero-photo figcaption { position: absolute; bottom: 24px; left: 26px; right: 26px; z-index: 2; font-family: var(--detail-serif); font-style: italic; font-size: 19px; line-height: 1.3; color: #fff; }
.detail-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 52px 0 0; padding: 26px 0 32px; border-top: 1px solid hsl(var(--border)); list-style: none; }
.detail-facts li { padding-inline: 26px; border-left: 1px solid hsl(var(--border)); }
.detail-facts li:first-child { padding-left: 0; border-left: 0; }
.detail-facts span { display: block; margin-bottom: 7px; font-family: var(--font-display); font-size: 13px; letter-spacing: .1em; color: hsl(var(--muted-foreground)); }
.detail-facts strong { font-family: var(--detail-serif); font-weight: 500; font-size: 21px; line-height: 1.25; }
.detail-section { padding-block: clamp(64px, 8vw, 116px); }
.detail-surface { background: hsl(var(--card)); }
.detail-section-heading { max-width: 900px; }
.detail-capacities { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: 44px; }
.detail-capacity { padding: clamp(22px, 2.2vw, 32px); border: 1px solid hsl(var(--border)); border-radius: 24px; background: hsl(var(--background) / .7); }
.detail-number { display: block; margin-bottom: 36px; color: hsl(var(--primary)); font-family: var(--font-display); font-size: 23px; }
.detail-capacity h3 { font-size: 27px; line-height: 1.05; margin-bottom: 14px; }
.detail-capacity p, .detail-audience p, .detail-session-steps p { font-family: var(--detail-serif); font-size: 20px; line-height: 1.4; color: hsl(var(--muted-foreground)); }
.detail-audience { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 32px; margin-top: 44px; padding-top: 32px; border-top: 1px solid hsl(var(--border)); }
.detail-audience h3 { font-size: 29px; line-height: 1.15; }
.detail-audience p + p { margin-top: 12px; }
.detail-session-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 84px); align-items: start; }
.detail-session-copy { grid-column: 2; grid-row: 1; }
.detail-session-copy .detail-title { font-size: clamp(42px, 4.8vw, 66px); }
.detail-space-photo { grid-column: 1; grid-row: 1; position: sticky; top: 120px; }
.detail-space-photo picture { display: block; overflow: hidden; border-radius: 26px; background: hsl(var(--card)); }
.detail-space-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 1.2s var(--detail-ease); }
.detail-space-photo figcaption { margin-top: 16px; font-family: var(--detail-serif); font-size: 18px; font-style: italic; line-height: 1.35; color: hsl(var(--muted-foreground)); }
.detail-session-steps { list-style: none; padding: 0; margin: 32px 0 24px; }
.detail-session-steps li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 18px; padding-block: 22px; border-bottom: 1px solid hsl(var(--border)); }
.detail-session-steps li > span { padding-top: 2px; font-family: var(--font-display); font-size: 20px; color: hsl(var(--primary)); }
.detail-session-steps h3 { margin-bottom: 7px; font-size: 27px; line-height: 1.1; }
.detail-small-note { font-family: var(--detail-serif); font-size: 17px; line-height: 1.45; color: hsl(var(--muted-foreground)); }
.detail-practical-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(32px, 7vw, 100px); }
.detail-practical-layout .detail-text-link { margin-top: 24px; }
.detail-timetable { padding: clamp(24px, 4vw, 48px); background: hsl(var(--background)); border: 1px solid hsl(var(--border)); border-radius: 28px; }
.detail-timetable-label { font-family: var(--font-display); font-size: 14px; letter-spacing: .09em; color: hsl(var(--muted-foreground)); }
.detail-timetable-time { display: flex; align-items: baseline; gap: 12px; margin: 20px 0 24px; font-family: var(--font-display); font-size: clamp(48px, 5.3vw, 74px); line-height: 1; letter-spacing: -.02em; }
.detail-timetable-time > span { font-family: var(--detail-serif); font-size: .65em; font-weight: 400; color: hsl(var(--primary)); }
.detail-timetable dl { margin-bottom: 22px; }
.detail-timetable dl > div { display: grid; grid-template-columns: minmax(80px, .65fr) minmax(0, 1.35fr); gap: 20px; padding-block: 15px; border-top: 1px solid hsl(var(--border)); }
.detail-timetable dt { font-family: var(--font-display); font-size: 16px; letter-spacing: .03em; }
.detail-timetable dd { font-family: var(--detail-serif); font-size: 20px; line-height: 1.25; }
.detail-related-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin-top: 40px; }
.detail-related-links a { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-block: 24px; border-block: 1px solid hsl(var(--border)); }
.detail-related-links small { display: block; margin-bottom: 12px; font-family: var(--detail-serif); font-size: 17px; line-height: 1.3; color: hsl(var(--muted-foreground)); }
.detail-related-links strong { display: block; font-family: var(--font-display); font-size: 26px; line-height: 1.1; font-weight: 400; }
.detail-related-links a > span:last-child { color: hsl(var(--primary)); font-size: 26px; transition: transform .4s var(--detail-ease); }
.detail-final { padding-block: clamp(80px, 10vw, 140px); text-align: center; background: hsl(var(--foreground)); color: hsl(var(--background)); }
.detail-final .detail-kicker { justify-content: center; color: hsl(var(--background) / .65); }
.detail-final .detail-title-fine { color: hsl(var(--background) / .7); }
.detail-final .container > p:not(.detail-kicker) { max-width: 560px; margin: 32px auto; font-family: var(--detail-serif); font-size: 23px; line-height: 1.45; color: hsl(var(--background) / .75); }
.detail-final .detail-actions { justify-content: center; }
.detail-button-light { background: hsl(var(--background)); color: hsl(var(--foreground)); }
.detail-button-outline { background: transparent; border-color: hsl(var(--background) / .4); }
.detail-footer { padding-top: 48px; }
.detail-footer-top { display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: center; gap: 32px; padding-bottom: 44px; }
.detail-footer-top img { width: 144px; height: 112px; object-fit: contain; }
.detail-footer-top p:not(.detail-footer-label), .detail-footer-top div > a { display: block; font-family: var(--detail-serif); font-size: 19px; line-height: 1.5; }
.detail-footer-label { margin-bottom: 12px; font-family: var(--font-display); font-size: 15px; letter-spacing: .07em; color: hsl(var(--muted-foreground)); }
.detail-footer-bottom { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; border-top: 1px solid hsl(var(--border)); padding-block: 24px 36px; font-size: 11px; line-height: 1.5; color: hsl(var(--muted-foreground)); }
.detail-footer-bottom nav { display: flex; flex-wrap: wrap; gap: 10px 20px; }
.detail-footer-bottom a, .detail-footer-bottom button { display: inline-flex; align-items: center; min-height: 32px; }
.detail-footer a:hover, .detail-footer button:hover { text-decoration: underline; }
.detail-whatsapp { position: fixed; bottom: max(24px, env(safe-area-inset-bottom)); right: 24px; z-index: 40; display: flex; align-items: center; justify-content: center; width: 54px; height: 54px; border-radius: 50%; background: hsl(var(--foreground)); color: hsl(var(--background)); border: 1px solid hsl(var(--background) / .3); box-shadow: 0 8px 28px rgb(0 0 0 / .18); }
[data-detail-reveal] { transition: opacity .85s var(--detail-ease) var(--detail-delay, 0ms), transform .85s var(--detail-ease) var(--detail-delay, 0ms), filter .85s var(--detail-ease) var(--detail-delay, 0ms); }
[data-detail-state="waiting"] { opacity: 0; transform: translateY(22px) scale(.99); filter: blur(3px); }
[data-detail-state="visible"], [data-detail-reveal]:focus-within { opacity: 1; transform: none; filter: none; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .detail-hero-photo:hover img, .detail-space-photo:hover img { transform: scale(1.035); }
  .detail-button:hover { transform: translateY(-2px); }
  .detail-text-link:hover > span, .detail-related-links a:hover > span:last-child { transform: translate(3px, -2px); }
}
@media (max-width: 1050px) {
  .detail-capacities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .detail-related-links { grid-template-columns: 1fr; gap: 0; }
  .detail-related-links a + a { border-top: 0; }
  .detail-footer-bottom { flex-direction: column; gap: 12px; }
}
@media (max-width: 850px) {
  .detail-header-inner { flex-wrap: wrap; gap: 0 16px; padding-bottom: 8px; }
  .detail-brand img { height: 68px; width: 98px; }
  .detail-nav { order: 3; width: 100%; justify-content: space-between; gap: 14px; }
  .program-detail section[id] { scroll-margin-top: 132px; }
  .detail-hero-grid, .detail-session-layout, .detail-practical-layout { grid-template-columns: minmax(0, 1fr); }
  .detail-title-hero { font-size: clamp(64px, 12vw, 104px); }
  .detail-breadcrumb { margin-bottom: 30px; }
  .detail-hero-photo { aspect-ratio: 5 / 4; max-height: 560px; }
  .detail-hero-photo img { object-position: 50% 62%; }
  .detail-facts { margin-top: 32px; }
  .detail-facts li { padding-inline: 16px; }
  .detail-facts strong { font-size: 19px; }
  .detail-audience { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .detail-session-copy, .detail-space-photo { grid-column: auto; grid-row: auto; }
  .detail-space-photo { position: static; }
  .detail-space-photo img { aspect-ratio: 3 / 2; }
  .detail-practical-layout { gap: 36px; }
  .detail-timetable-time { font-size: clamp(52px, 9vw, 74px); }
  .detail-footer-top { grid-template-columns: 1fr 1fr; }
  .detail-footer-top > a { grid-column: 1 / -1; }
  .detail-footer-bottom { padding-bottom: 96px; }
}
@media (max-width: 480px) {
  .detail-title { font-size: 43px; }
  .detail-title-hero { font-size: clamp(56px, 14.4vw, 69px); }
  .detail-session-copy .detail-title { font-size: 42px; }
  .detail-kicker { font-size: 12px; gap: 9px; }
  .detail-hero-schedule { gap: 8px 18px; }
  .detail-hero-schedule > span:last-child { flex-basis: 100%; margin-left: 0; }
  .detail-hero-photo { aspect-ratio: 4 / 5; border-radius: 22px; }
  .detail-hero-photo figcaption { left: 20px; right: 20px; bottom: 20px; }
  .detail-facts { grid-template-columns: 1fr; padding-block: 8px 16px; }
  .detail-facts li { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 15px 0; border-left: 0; border-bottom: 1px solid hsl(var(--border)); }
  .detail-facts li:last-child { border-bottom: 0; }
  .detail-facts span { margin: 0; font-size: 12px; flex-shrink: 0; }
  .detail-facts strong { text-align: right; font-size: 18px; }
  .detail-capacities { grid-template-columns: minmax(0, 1fr); gap: 14px; margin-top: 32px; }
  .detail-number { margin-bottom: 20px; }
  .detail-timetable { padding: 24px; }
  .detail-timetable-time { font-size: clamp(44px, 13vw, 62px); gap: 10px; }
  .detail-timetable dl > div { gap: 14px; }
  .detail-timetable dd { font-size: 19px; }
  .detail-footer-top { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .detail-whatsapp { right: 18px; bottom: max(18px, env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .program-detail *, .program-detail *::before, .program-detail *::after { animation: none !important; transition: none !important; }
  [data-detail-state="waiting"] { opacity: 1; transform: none; filter: none; }
}

/* The remaining editorial pages use the same design with layouts for each topic. */
.detail-hero-photo-landscape { aspect-ratio: 5 / 4; }
.detail-hero-photo-landscape img { object-position: center; }
.detail-editorial-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: center; gap: clamp(36px, 6vw, 90px); }
.detail-editorial-layout > div { max-width: 670px; }
.detail-editorial-layout .detail-intro + .detail-intro { margin-top: 18px; }
.detail-editorial-layout .detail-space-photo { grid-column: auto; grid-row: auto; position: static; }
.detail-editorial-layout .detail-space-photo img { aspect-ratio: 5 / 4; }
.detail-inline-photo { max-width: 560px; margin-top: 34px; }
.detail-inline-photo img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 24px; }
.detail-inline-photo figcaption, .detail-adult-photo figcaption { margin-top: 14px; font-family: var(--detail-serif); font-size: 18px; font-style: italic; color: hsl(var(--muted-foreground)); }
.detail-program-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(36px, 6vw, 90px); align-items: start; }
.detail-program-layout > div:first-child { position: sticky; top: 120px; }
.detail-program-list { margin: 0; padding: 0; list-style: none; }
.detail-program-list li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 18px; padding: 20px 0; border-bottom: 1px solid hsl(var(--border)); }
.detail-program-list li:first-child { padding-top: 0; }
.detail-program-list li > span { color: hsl(var(--primary)); font-family: var(--font-display); font-size: 21px; line-height: 1.3; }
.detail-program-list h3 { margin-bottom: 6px; font-size: 27px; line-height: 1.1; }
.detail-program-list p { font-family: var(--detail-serif); font-size: 19px; line-height: 1.4; color: hsl(var(--muted-foreground)); }
.detail-adult-program-inner { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr); align-items: start; gap: clamp(30px, 5vw, 70px); margin-top: 42px; }
.detail-group-cards { display: grid; gap: 18px; }
.detail-group-card { padding: clamp(26px, 3vw, 38px); border: 1px solid hsl(var(--border)); border-radius: 25px; background: hsl(var(--card)); }
.detail-group-card > p { margin-bottom: 20px; color: hsl(var(--primary)); font-family: var(--font-display); font-size: 17px; letter-spacing: .04em; }
.detail-group-card h3 { margin-bottom: 16px; font-size: clamp(34px, 3.8vw, 49px); line-height: 1; }
.detail-group-card > div { max-width: 530px; font-family: var(--detail-serif); font-size: 20px; line-height: 1.4; color: hsl(var(--muted-foreground)); }
.detail-group-card .detail-text-link { margin-top: 20px; }
.detail-adult-photo { position: sticky; top: 120px; }
.detail-adult-photo img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: 50% 62%; border-radius: 25px; }
.detail-stages { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 46px; }
.detail-stage { overflow: hidden; border: 1px solid hsl(var(--border)); border-radius: 25px; background: hsl(var(--background)); }
.detail-stage img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.detail-stage > div { padding: clamp(22px, 2.4vw, 32px); }
.detail-stage h3 { margin-bottom: 12px; font-size: 33px; line-height: 1; }
.detail-stage p { min-height: 86px; font-family: var(--detail-serif); font-size: 19px; line-height: 1.4; color: hsl(var(--muted-foreground)); }
.detail-stage .detail-text-link { margin-top: 16px; font-size: 14px; }
.detail-faq { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; margin-top: 42px; }
.detail-faq article { padding-top: 26px; border-top: 1px solid hsl(var(--border)); }
.detail-faq h3 { margin-bottom: 14px; font-size: 30px; line-height: 1.1; }
.detail-faq p { max-width: 560px; font-family: var(--detail-serif); font-size: 20px; line-height: 1.45; color: hsl(var(--muted-foreground)); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .detail-stage img, .detail-inline-photo img, .detail-adult-photo img { transition: transform 1.1s var(--detail-ease); }
  .detail-stage:hover img { transform: scale(1.035); }
}
@media (max-width: 1050px) {
  .detail-stages { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .detail-adult-program-inner { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
}
@media (max-width: 850px) {
  .detail-editorial-layout, .detail-program-layout, .detail-adult-program-inner { grid-template-columns: minmax(0, 1fr); }
  .detail-program-layout > div:first-child, .detail-adult-photo { position: static; }
  .detail-inline-photo { max-width: none; }
  .detail-adult-photo img { max-height: 480px; aspect-ratio: 4 / 3; }
  .detail-editorial-layout .detail-space-photo img { aspect-ratio: 3 / 2; }
  .detail-hero-photo-landscape { aspect-ratio: 5 / 4; }
}
@media (max-width: 620px) {
  .detail-stages, .detail-faq { grid-template-columns: minmax(0, 1fr); }
  .detail-stage p { min-height: 0; }
  .detail-hero-photo-landscape { aspect-ratio: 4 / 3; }
  .detail-program-list h3 { font-size: 25px; }
}
