/* Shared programme cards and workshop detail pages. */
.ws-page { padding-bottom:32px; overflow-wrap:break-word; }
.ws-page p,.ws-page li { line-height:1.75; }
.ws-page section p+p { margin-top:14px; }
.ws-page section h2 { margin-bottom:18px; font-size:25px; line-height:1.3; font-weight:500; letter-spacing:-.025em; }
.ws-kicker { margin:0 0 13px; color:var(--muted); font-size:11px; line-height:1.6; letter-spacing:.065em; text-transform:uppercase; }
.ws-meta { color:var(--muted); font-size:13px; line-height:1.65; }
.ws-button { display:inline-flex; align-items:center; justify-content:center; gap:18px; padding:13px 20px; color:#fff; background:var(--accent); border:1px solid var(--accent); border-radius:4px; font:inherit; font-size:14px; line-height:1.5; text-decoration:none; cursor:pointer; }
.ws-button:hover { color:#fff; background:#40573f; border-color:#40573f; }
.ws-page :is(a,input,select,button,textarea,summary):focus-visible { outline:2px solid var(--accent); outline-offset:5px; }

/* Catalogue cards: image, date and price, then the title. */
.ws-catalog-heading { margin:0 0 36px; }
.ws-catalog { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.ws-card { min-width:0; }
.ws-card-link { display:block; text-decoration:none; }
.ws-card-image { aspect-ratio:8/5; overflow:hidden; background:#e8e6df; border-radius:var(--radius); }
.ws-card-image img { display:block; width:100%; height:100%; object-fit:cover; }
.ws-card-meta { display:flex; align-items:baseline; flex-wrap:wrap; gap:5px 10px; margin:20px 0 9px; }
.ws-card-date { margin:0; color:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; }
.ws-card-price { margin:0; font-size:12px; font-weight:500; font-variant-numeric:tabular-nums; }
.ws-card-meta-divider { color:var(--muted); font-size:12px; }
.ws-card :is(h2,h3) { max-width:320px; font-size:21px; line-height:1.4; font-weight:500; letter-spacing:-.025em; }
.ws-card-link:hover :is(h2,h3) { text-decoration:underline; text-underline-offset:5px; }
.home-workshops .ws-card h3 { font-size:16px; line-height:1.45; }
.home-workshops .ws-card-meta { gap:4px 7px; margin-top:15px; }
.home-workshops .ws-card-meta p,.home-workshops .ws-card-meta-divider { font-size:11px; }

/* A spacious introduction with a single strong image and clear decision details. */
.ws-detail { --ws-tint:var(--accent-soft); --ws-deep:var(--accent); --ws-section-gap:72px; font-size:15px; }
.ws-detail-hero { display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center; }
.ws-hero-copy { min-width:0; padding:12px 0; }
.ws-hero-copy h1 { font-size:clamp(30px,3.2vw,40px); line-height:1.15; font-weight:500; letter-spacing:-.045em; }
.ws-hero-lead { margin:23px 0 12px; font-size:20px; line-height:1.5!important; letter-spacing:-.02em; }
.ws-hero-description { max-width:490px; margin-bottom:27px; color:var(--muted); font-size:14px; }
.ws-hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:18px 24px; }
.ws-test-note { margin-top:13px; max-width:350px; font-size:11px; }
.ws-hero-image { height:100%; min-height:430px; max-height:560px; overflow:hidden; border-radius:var(--radius); background:var(--ws-tint); }
.ws-hero-image img { display:block; width:100%; height:100%; min-height:430px; max-height:560px; object-fit:cover; }
.ws-detail-facts { display:grid; grid-template-columns:1.1fr 1fr .7fr 1fr; gap:28px; margin:38px 0 0; padding:26px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.ws-detail-facts>div+div { border-left:1px solid var(--line); padding-left:28px; }
.ws-detail-facts dt { margin-bottom:7px; color:var(--muted); font-size:11px; letter-spacing:.045em; text-transform:uppercase; }
.ws-detail-facts dd { margin:0; font-size:18px; line-height:1.45; letter-spacing:-.02em; }
.ws-detail-facts .ws-fact-note { max-width:320px; margin-top:7px; color:var(--muted); font-size:12px; line-height:1.65; letter-spacing:0; }
.ws-detail>section,.ws-detail>.ws-info-columns,.ws-detail>.ws-host-row,.ws-detail>.ws-final-cta { margin:var(--ws-section-gap) 0 0; }
.ws-section-heading { margin-bottom:27px; }
.ws-section-heading .ws-kicker { margin-bottom:9px; }
.ws-situations ul { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:34px; padding:0; list-style:none; }
.ws-situations li { padding:20px 0 0; border-top:2px solid var(--ws-deep); font-size:15px; }
.ws-outcome { display:grid; grid-template-columns:1.65fr 1fr; gap:60px; padding:40px; border-radius:var(--radius); background:var(--ws-tint); }
.ws-outcome p:not(.ws-kicker) { max-width:600px; }
.ws-takeaways { display:grid; gap:23px; align-content:center; margin:0; padding-left:34px; border-left:1px solid #bac4b7; }
.ws-takeaways dt { color:var(--ws-deep); font-size:30px; line-height:1.2; letter-spacing:-.04em; }
.ws-takeaways dd { margin:5px 0 0; color:var(--muted); font-size:12px; }
.ws-info-columns { display:grid; grid-template-columns:1fr 1fr; gap:64px; }
.ws-info-columns section { min-width:0; }
.ws-info-columns p { color:var(--muted); font-size:14px; }
.ws-blocks { display:grid; grid-template-columns:1fr 1fr; gap:0 46px; border-top:1px solid var(--line); }
.ws-blocks article { display:flex; gap:22px; padding:26px 0; border-bottom:1px solid var(--line); }
.ws-number { flex:0 0 24px; padding-top:2px; color:var(--ws-deep); font-size:12px; font-variant-numeric:tabular-nums; }
.ws-blocks h3 { margin:0 0 8px; font-size:17px; line-height:1.4; font-weight:500; letter-spacing:-.015em; }
.ws-blocks p { color:var(--muted); font-size:14px; }
.ws-process ol { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:24px; margin:26px 0 20px; padding:0; list-style:none; counter-reset:steps; }
.ws-process li { padding-top:15px; border-top:1px solid var(--line); font-size:13px; }
.ws-process li::before { counter-increment:steps; content:'0' counter(steps); display:block; margin-bottom:12px; color:var(--ws-deep); font-size:12px; }
.ws-included { padding:38px 40px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }
.ws-included-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:48px; row-gap:0; margin:0; padding:0; list-style:none; }
.ws-included-list li { display:flex; align-items:flex-start; gap:17px; padding:24px 0; border-top:1px solid var(--line); }
.ws-included-check { display:grid; place-items:center; flex:0 0 32px; height:32px; color:var(--ws-deep); background:var(--ws-tint); border-radius:50%; }
.ws-included-check svg { stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.ws-included-list h3 { margin:2px 0 7px; font-size:17px; font-weight:500; line-height:1.4; letter-spacing:-.015em; }
.ws-included-list p { max-width:370px; color:var(--muted); font-size:14px; }
.ws-included-note { margin-top:10px; }
.ws-host-row { max-width:680px; }
.ws-host-profile { display:flex; gap:19px; align-items:center; margin:0 0 20px; }
.ws-host-profile img { display:block; width:72px; height:90px; border-radius:5px; object-fit:cover; }
.ws-host-profile h3 { font-size:19px; font-weight:500; letter-spacing:-.02em; }
.ws-host-profile p { margin:5px 0 0; }
.ws-faq { display:grid; grid-template-columns:.8fr 1.5fr; gap:60px; padding-top:35px; border-top:1px solid var(--line); }
.ws-faq details { border-bottom:1px solid var(--line); }
.ws-faq summary { display:flex; align-items:center; justify-content:space-between; gap:28px; min-height:64px; padding:17px 0; cursor:pointer; list-style:none; font-size:15px; line-height:1.5; }
.ws-faq summary::-webkit-details-marker { display:none; }
.ws-faq summary::marker { content:''; }
.ws-faq summary span { min-width:0; }
.ws-faq summary svg { display:block; flex:0 0 20px; margin-right:2px; stroke:var(--ws-deep); stroke-width:1.4; }
.ws-faq details[open] .ws-faq-vertical { display:none; }
.ws-faq details>p { margin:0; padding:0 50px 22px 0; color:var(--muted); font-size:14px; }
.ws-final-cta { display:flex; justify-content:space-between; gap:32px; align-items:center; padding:32px 36px; background:var(--ws-tint); border-radius:var(--radius); }
.ws-final-cta>div { max-width:570px; }
.ws-final-cta .ws-kicker { margin-bottom:9px; }
.ws-final-title { font-size:23px; line-height:1.4!important; letter-spacing:-.025em; }
.ws-final-cta .ws-button { flex-shrink:0; }

/* Existing server-rendered forms and private status pages. */
.ws-page:not(.ws-detail):not(.ws-catalog-page)>h1 { margin:0 0 18px; }
.ws-notice,.ws-error { margin:18px 0; padding:12px 15px; background:#f0f2ea; border-left:2px solid var(--accent); font-size:13px; }
.ws-error { background:#faeeeb; border-color:#8b3f35; color:#7c3126; }
.ws-form :is(input,textarea,select) { display:block; width:100%; padding:10px 12px; border:1px solid #b9c0b6; border-radius:3px; background:#fff; color:inherit; font:inherit; font-size:15px; }
.ws-form textarea { resize:vertical; }
.ws-field { display:block; font-size:13px; margin:22px 0 7px; }
.ws-check { display:block; position:relative; padding-left:26px; font-size:13px; line-height:1.6; margin:20px 0; }
.ws-check input { position:absolute; left:0; top:0; width:16px; height:16px; margin:3px 0 0; accent-color:var(--accent); }
.ws-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.ws-summary dt { margin-top:18px; color:var(--muted); font-size:12px; }
.ws-summary dd { margin:4px 0 0; overflow-wrap:anywhere; }
.ws-text-button { border:0; padding:12px 0; background:none; color:inherit; text-decoration:underline; font:inherit; cursor:pointer; }
.ws-edit-form { margin-top:10px; }

@media (max-width:900px) {
  .ws-catalog { grid-template-columns:repeat(2,minmax(0,1fr)); gap:34px 24px; }
  .ws-detail-hero { gap:30px; }
  .ws-hero-copy h1 { font-size:32px; }
  .ws-hero-image,.ws-hero-image img { min-height:420px; }
  .ws-detail-facts { gap:20px; }
  .ws-detail-facts>div+div { padding-left:20px; }
  .ws-detail-facts dd { font-size:16px; }
  .ws-info-columns { gap:36px; }
  .ws-outcome { gap:32px; padding:30px; }
  .ws-faq { gap:36px; }
  .ws-final-cta { padding:28px; }
  .ws-final-title { font-size:20px; }
}
@media (max-width:760px) {
  .ws-detail-hero { grid-template-columns:1fr; gap:28px; }
  .ws-hero-copy { padding:0; max-width:600px; }
  .ws-hero-copy h1 { font-size:36px; }
  .ws-hero-description { max-width:550px; }
  .ws-hero-image { aspect-ratio:3/2; min-height:0; max-height:none; }
  .ws-hero-image img { min-height:0; max-height:none; }
  .ws-detail-facts { grid-template-columns:1fr; gap:20px; padding:24px 0; }
  .ws-detail-facts>div+div { border-left:0; border-top:1px solid var(--line); padding:20px 0 0; }
  .ws-detail-facts dd { font-size:18px; }
  .ws-detail-facts .ws-fact-note { max-width:none; }
  .ws-detail { --ws-section-gap:48px; }
  .ws-situations ul { grid-template-columns:1fr; gap:20px; }
  .ws-situations li { padding-top:15px; }
  .ws-outcome { grid-template-columns:1fr; gap:28px; }
  .ws-takeaways { grid-template-columns:1fr 1fr; border-left:0; border-top:1px solid #bac4b7; padding:24px 0 0; gap:22px; }
  .ws-info-columns { grid-template-columns:1fr; gap:36px; }
  .ws-process ol { grid-template-columns:1fr; gap:0; }
  .ws-process li { display:flex; gap:20px; padding:14px 0; }
  .ws-process li::before { margin:0; }
  .ws-faq { grid-template-columns:1fr; gap:0; }
  .ws-faq .ws-section-heading { margin-bottom:8px; }
  .ws-final-cta { align-items:flex-start; flex-direction:column; gap:23px; }
}
@media (max-width:620px) {
  .ws-catalog { grid-template-columns:1fr; gap:34px; }
  .ws-catalog-heading { margin-bottom:27px; }
  .ws-card-meta { margin-top:16px; }
  .ws-card :is(h2,h3) { max-width:none; font-size:21px; }
  .ws-hero-copy h1 { font-size:32px; }
  .ws-hero-lead { font-size:20px; }
  .ws-page section h2 { font-size:23px; }
  .ws-blocks { grid-template-columns:1fr; }
  .ws-included { padding:26px; }
  .ws-included-list { grid-template-columns:1fr; }
  .ws-included-list li { gap:14px; padding:21px 0; }
  .ws-blocks article { gap:16px; padding:23px 0; }
  .ws-outcome,.ws-final-cta { padding:26px; }
  .ws-takeaways dt { font-size:26px; }
  .ws-faq summary { gap:24px; font-size:14px; }
  .ws-faq details>p { padding-right:35px; }
}
@media (max-width:600px) {
  .home-workshops .ws-card-link { display:grid; grid-template-columns:112px minmax(0,1fr); gap:16px; align-items:start; }
  .home-workshops .ws-card-meta { margin:0 0 9px; }
}
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .ws-card-image img { transition:transform 280ms ease-out; }
  .ws-card-link:hover .ws-card-image img { transform:scale(1.025); }
}

.ws-form,.ws-summary { max-width:680px; }
.ws-page:not(.ws-detail):not(.ws-catalog-page)>p { max-width:720px; }

/* A single application, with manual follow-up by email. */
.ws-application-page>h1 { margin-top:0; }
.ws-application-layout { display:grid; grid-template-columns:minmax(0,1fr) 350px; gap:72px; align-items:start; margin-top:38px; }
.ws-course-summary { grid-column:2; grid-row:1; position:sticky; top:24px; padding:28px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }
.ws-course-summary h2 { font-size:22px; line-height:1.35; }
.ws-course-summary dl { margin:24px 0; }
.ws-course-summary dl>div+div { margin-top:20px; }
.ws-course-summary dt { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.04em; }
.ws-course-summary dd { margin:6px 0 0; font-size:14px; }
.ws-manual-note { margin-top:24px; padding-top:24px; border-top:1px solid var(--line); }
.ws-application-form { grid-column:1; grid-row:1; width:100%; max-width:none; min-width:0; }
.ws-application-form .ws-form-section { margin:0 0 36px; padding-bottom:32px; border-bottom:1px solid var(--line); }
.ws-application-form .ws-form-section h2 { margin:0 0 12px; font-size:22px; }
.ws-application-form input:not([type='checkbox']):not([type='radio']),.ws-application-form textarea { padding:13px 14px; border-color:var(--line); border-radius:5px; }
.ws-application-form :is(input,textarea):focus,.ws-application-form :is(input,textarea):focus-visible { outline:none; border-color:var(--line); box-shadow:none; background:var(--accent-soft); }
.ws-application-form .sr-only { width:1px; height:1px; padding:0; border:0; }
.ws-participant { min-width:0; margin:26px 0 0; padding:20px; border:1px solid var(--line); border-radius:var(--radius); }
.ws-participant>legend { padding:0 7px; font-size:13px; color:var(--muted); }
.ws-participant .ws-field { margin-top:0; }
.ws-experience { min-width:0; margin:24px 0 0; padding:0; border:0; }
.ws-experience>legend { margin-bottom:8px; font-size:13px; }
.ws-rating { display:flex; align-items:center; gap:6px; }
.ws-rating label { display:grid; place-items:center; width:44px; height:44px; color:#9a9d97; font-size:33px; line-height:1; cursor:pointer; border-radius:4px; }
.ws-rating label.is-selected { color:var(--accent); }
.ws-rating input:focus-visible+label { outline:2px solid var(--accent); outline-offset:2px; }
.ws-rating+ .ws-meta { margin-top:7px; font-size:12px; }
.ws-add-participant,.ws-remove-participant { font:inherit; cursor:pointer; color:var(--accent); background:none; border:0; }
.ws-add-participant { display:inline-flex; margin-top:20px; padding:10px 0; font-size:14px; }
.ws-add-participant:hover,.ws-remove-participant:hover { text-decoration:underline; }
.ws-add-participant:disabled { color:var(--muted); cursor:default; }
.ws-remove-participant { margin-top:18px; padding:4px 0; font-size:12px; }
.ws-billing { min-width:0; margin:0; padding:0; border:0; }
.ws-payer-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.ws-payer-options label { display:flex; align-items:center; justify-content:center; gap:10px; min-height:52px; padding:12px 16px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); font-size:14px; cursor:pointer; }
.ws-payer-options label::before { content:''; display:block; width:15px; height:15px; border:1px solid var(--muted); border-radius:50%; }
.ws-payer-options input:checked+label { border-color:var(--accent); color:var(--accent); background:var(--accent-soft); }
.ws-payer-options input:checked+label::before { border:4px solid var(--accent); }
.ws-payer-options input:focus-visible+label { outline:2px solid var(--accent); outline-offset:3px; }
.ws-billing-fields { margin-top:24px; }
.ws-billing:not(:has(#payer_company:checked)) .ws-billing-fields { display:none; }
.ws-application-form .ws-privacy-check { margin-bottom:36px; }
.ws-application-page [hidden] { display:none!important; }
.ws-application-success { max-width:620px; margin-top:28px; }
.ws-application-success p+p { margin-top:18px; }
.ws-policy .article-body { margin:36px 0 0; }
@media (max-width:900px) {
 .ws-application-layout { grid-template-columns:minmax(0,1fr) 300px; gap:32px; }
 .ws-course-summary { padding:24px; }
}
@media (max-width:760px) {
 .ws-application-layout { grid-template-columns:1fr; gap:36px; margin-top:28px; }
 .ws-course-summary,.ws-application-form { grid-column:1; grid-row:auto; position:static; }
 .ws-course-summary { order:0; }
 .ws-application-form { order:1; }
}
@media (max-width:400px) {
 .ws-payer-options label { padding:12px 10px; gap:8px; font-size:13px; }
 .ws-participant { padding:16px; }
 .ws-rating { gap:3px; }
 .ws-rating label { width:40px; height:44px; }
}

@media (hover:hover) {
 .ws-rating:has(label:hover) label { color:#9a9d97; }
 .ws-rating:has(label:hover) label:hover,.ws-rating:has(label:hover) label:has(~label:hover) { color:var(--accent); }
}

@media (min-width:761px) and (max-width:1000px) {
 .ws-detail-facts { grid-template-columns:1fr 1fr; }
 .ws-detail-facts>div:nth-child(3) { border-left:0; padding-left:0; }
}

.ws-button.is-disabled{opacity:.55;cursor:not-allowed;pointer-events:none}

.ws-schedule-row{display:grid;gap:2px}.ws-schedule-row+.ws-schedule-row{margin-top:10px}.ws-card-date .ws-schedule-row{font-size:inherit}.ws-card-date .ws-fact-note{font-size:inherit}.ws-card-meta{align-items:flex-start}.ws-detail-facts .ws-schedule-row .ws-fact-note{margin:0}
