/* Campus product layout, scoped to the optional family detail view. */
/* Expand only the section containing this view, including the shared /seminar/ page. */
.elementor-section-boxed:has(.skfa-detail)>.elementor-container { max-width:none; }
main:has(>.skfa-detail) { max-width:none; margin-left:0; margin-right:0; }
.skfa-detail { display:block; width:100%; color:#252535; background:white; font:200 16px/24px StepkeNexa,Arial,sans-serif; -webkit-font-smoothing:auto; -moz-osx-font-smoothing:auto; container:stepke-fa-detail / inline-size; }
.skfa-detail * { box-sizing:border-box; }
.skfa-detail :is(h1,h2,p,ul) { margin:0; }
.skfa-detail :is(h1,h2,p,a,select,label,li,span) { font-family:StepkeNexa,Arial,sans-serif; letter-spacing:normal; text-transform:none; }
.skfa-detail a:focus-visible,.skfa-detail select:focus-visible { outline:2px solid #e63888; outline-offset:4px; }
.skfa-detail .skfa-detail-container { width:calc(100% - 32px); max-width:1184px; margin:0 auto; }
.skfa-detail .skfa-detail-hero { background:#c0e5ca; }
/* Grid areas let narrow layouts put the image before title and subline without duplicate markup. */
.skfa-detail .skfa-detail-hero-inner { display:grid; grid-template-columns:minmax(0,840px) 320px; grid-template-areas:"back cover" "heading cover"; grid-template-rows:auto 1fr; justify-content:space-between; align-items:start; column-gap:24px; padding:36px 0; }
.skfa-detail .skfa-detail-back { grid-area:back; justify-self:start; }
.skfa-detail .skfa-detail-heading { grid-area:heading; min-width:0; }
.skfa-detail .skfa-detail-back { display:inline-flex; align-items:center; gap:8px; color:#000; font-size:14px; font-weight:700; line-height:21px; text-decoration:none; }
.skfa-detail .skfa-detail-back:hover { text-decoration:underline; }
.skfa-detail .skfa-detail-badges { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.skfa-detail .skfa-detail-badges span { max-width:100%; overflow-wrap:anywhere; border-radius:9999px; padding:4px 12px; background:#66caf2; color:#000; font-size:14px; font-weight:200; line-height:14px; }
.skfa-detail .skfa-detail-heading h1 { margin-top:16px; color:#006f62; font-size:36px; font-weight:900; line-height:45px; overflow-wrap:anywhere; hyphens:auto; }
.skfa-detail .skfa-detail-subtitle { margin-top:16px; color:#000; font-size:18px; font-weight:800; line-height:27px; }
.skfa-detail .skfa-detail-cover { grid-area:cover; display:block; flex-shrink:0; width:320px; height:320px; max-width:100%; margin:0; border-radius:16px; object-fit:cover; }
.skfa-detail .skfa-detail-columns { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:64px; padding:40px 0 32px; }
.skfa-detail .skfa-detail-content { min-width:0; display:flex; flex-direction:column; gap:64px; }
.skfa-detail .skfa-detail-description { overflow-wrap:anywhere; color:#000; font-size:16px; font-weight:200; line-height:24px; }
.skfa-detail .skfa-detail-description :is(h2,h3) { margin:20px 0 12px; color:#000; font-size:20px; font-weight:700; line-height:25px; }
.skfa-detail .skfa-detail-description p+p { margin-top:20px; }
.skfa-detail .skfa-detail-description :is(ul,ol) { margin-top:20px; padding-left:20px; }
.skfa-detail .skfa-detail-description ul { list-style:disc; }
.skfa-detail .skfa-detail-description li+li { margin-top:8px; }
.skfa-detail .skfa-detail-description a { color:#e63888; text-decoration:underline; }
.skfa-detail .skfa-detail-description img { max-width:100%; height:auto; }
.skfa-detail .skfa-detail-sidebar { display:flex; flex-direction:column; gap:24px; min-width:0; }
.skfa-detail .skfa-detail-booking { padding:16px; border-radius:24px; background:#fff; box-shadow:0 5px 15px -3px #00000026,0 4px 8px #0000001a; }
.skfa-detail .skfa-detail-register { display:flex; justify-content:center; align-items:center; min-height:45px; padding:11px 14px; border-radius:9999px; color:#fff; background:#e63888; font-size:14px; font-weight:700; line-height:21px; text-align:center; text-decoration:none; }
.skfa-detail .skfa-detail-register:hover { background:#c92573; color:#fff; }
.skfa-detail .skfa-detail-unavailable { font-size:14px; font-weight:700; line-height:21px; }
.skfa-detail .skfa-detail-availability { display:flex; gap:8px; align-items:center; margin-top:8px; font-size:14px; font-weight:200; line-height:21px; }
.skfa-detail .skfa-detail-availability>span { width:15px; height:15px; flex-shrink:0; border-radius:50%; background:#e63888; }
.skfa-detail .skfa-detail-booking hr { margin:24px 0 20px; border:0; border-top:1px solid #ccc; }
.skfa-detail .skfa-detail-label { display:block; margin:0 0 8px; color:#252535; font-size:14px; font-weight:200; line-height:21px; }
.skfa-detail select { display:block; width:100%; max-width:100%; height:45px; margin:0 0 16px; padding:11px; border:1px solid #aaa; border-radius:6px; color:#252535; background:#fff; font:200 14px/21px StepkeNexa,Arial,sans-serif; }
.skfa-detail .skfa-detail-number { margin:16px 0 4px; font-size:14px; font-weight:700; line-height:21px; }
.skfa-detail .skfa-detail-meta { display:flex; align-items:flex-start; gap:8px; margin-top:4px; font-size:14px; font-weight:200; line-height:21px; }
.skfa-detail .skfa-detail-meta>svg { width:20px; height:20px; flex-shrink:0; }
.skfa-detail .skfa-detail-dates { display:flex; flex-direction:column; gap:4px; padding:0; list-style:none; }
.skfa-detail .skfa-detail-experts { padding:24px; border:1px solid #dde1ea; border-radius:24px; background:#fff; box-shadow:0 4px 6px -1px #00000014,0 2px 4px -2px #0000000d; }
.skfa-detail .skfa-detail-experts h2 { color:#000; font-size:20px; font-weight:700; line-height:25px; }
.skfa-detail .skfa-detail-experts p { display:flex; align-items:center; gap:8px; margin-top:16px; font-size:14px; font-weight:200; line-height:21px; }
.skfa-detail .skfa-detail-avatar { display:flex; align-items:center; justify-content:center; width:48px; height:48px; flex-shrink:0; border-radius:50%; color:#858799; background:#f4f5f7; }
@media(min-width:1536px) { .skfa-detail .skfa-detail-container { max-width:1376px; } }
@container stepke-fa-detail (max-width:1023px) {
    .skfa-detail .skfa-detail-hero-inner { grid-template-columns:minmax(0,1fr); grid-template-areas:"back" "cover" "heading"; grid-template-rows:none; padding:32px 0; }
    .skfa-detail .skfa-detail-cover { margin-top:16px; }
    .skfa-detail .skfa-detail-heading h1 { font-size:28px; line-height:35px; }
    .skfa-detail .skfa-detail-cover { width:100%; height:auto; aspect-ratio:1; }
    .skfa-detail .skfa-detail-columns { display:flex; flex-direction:column; gap:40px; }
    /* Customer order on narrow layouts: content first, then the booking box with experts and the CTA last. */
    .skfa-detail .skfa-detail-sidebar { gap:0; padding:16px; border-radius:24px; background:#fff; box-shadow:0 5px 15px -3px #00000026,0 4px 8px #0000001a; }
    .skfa-detail .skfa-detail-booking { display:contents; }
    .skfa-detail .skfa-detail-sidebar .skfa-detail-availability { margin-top:0; }
    .skfa-detail .skfa-detail-number { margin-top:0; }
    .skfa-detail .skfa-detail-experts { margin-top:20px; padding:20px 0 0; border:0; border-top:1px solid #ccc; border-radius:0; box-shadow:none; }
    .skfa-detail .skfa-detail-experts h2 { font-size:16px; line-height:24px; }
    .skfa-detail .skfa-detail-sidebar .skfa-detail-register { order:1; margin-top:24px; }
    .skfa-detail .skfa-detail-schedule,.skfa-detail .skfa-detail-contacts,.skfa-detail .skfa-detail-nav a.skfa-detail-nav-schedule { display:none; }
}
@container stepke-fa-detail (min-width:1024px) { .skfa-detail .skfa-detail-nav a.skfa-detail-nav-booking { display:none; } }
/* Full Campus detail view. The compact legacy view keeps its own presentation. */
.skfa-detail .skfa-detail-nav { position:sticky; top:var(--skfa-detail-sticky-top,var(--wp-admin--admin-bar--height,0px)); z-index:10; border-top:1px solid #dde1ea; background:#fff; box-shadow:0 2px 4px #00000012; }
.skfa-detail .skfa-detail-nav>.skfa-detail-container { display:flex; gap:28px; overflow-x:auto; }
.skfa-detail .skfa-detail-nav a { display:block; flex-shrink:0; padding:12px 0 10px; border-bottom:2px solid transparent; color:#000; font-size:14px; font-weight:700; line-height:19px; text-decoration:none; }
.skfa-detail .skfa-detail-nav a.is-active { border-color:#e63888; }
.skfa-detail .skfa-detail-section,.skfa-detail #skfa-run,.skfa-detail .skfa-detail-booking-dates { scroll-margin-top:calc(var(--skfa-detail-sticky-top,0px) + var(--skfa-detail-nav-height,43px) + 24px); }
.skfa-detail .skfa-detail-content-body { display:flex; flex-direction:column; gap:64px; }
.skfa-detail .skfa-detail-availability { margin-top:12px; }
.skfa-detail .skfa-detail-availability:first-child { margin-top:0; }
.skfa-detail .skfa-detail-available>span { background:#006f62; }
.skfa-detail .skfa-detail-register { min-height:44px; margin-top:0; padding:8px 20px; border:2px solid transparent; font-size:16px; font-weight:900; line-height:24px; }
.skfa-detail .skfa-detail-dates time { white-space:normal; }
.skfa-detail .skfa-detail-schedule { padding:32px 24px; border-radius:24px; background:#c0e5ca; }
.skfa-detail .skfa-detail-schedule h2 { color:#000; font-size:24px; font-weight:700; line-height:30px; }
.skfa-detail .skfa-detail-schedule ul { display:flex; flex-direction:column; gap:8px; margin-top:24px; padding:0; list-style:none; font-size:16px; font-weight:200; line-height:25.6px; }
.skfa-detail .skfa-detail-schedule time>span { white-space:nowrap; }
.skfa-detail .skfa-detail-alternative { display:inline-flex; margin-top:24px; padding:8px 20px; border:2px solid #e63888; border-radius:9999px; color:#e63888; background:#fff; font-size:14px; font-weight:700; line-height:21px; text-decoration:none; }
.skfa-detail .skfa-detail-contacts { padding:32px 0; }
.skfa-detail .skfa-detail-contacts h2 { overflow-wrap:anywhere; hyphens:auto; color:#006f62; font-size:36px; font-weight:900; line-height:45px; }
.skfa-detail .skfa-detail-contacts>p { margin-top:6px; font-size:18px; font-weight:200; line-height:27px; }
.skfa-detail .skfa-detail-contacts ul { display:flex; flex-wrap:wrap; gap:32px; margin-top:32px; padding:0; list-style:none; }
.skfa-detail .skfa-detail-contacts li { display:flex; align-items:center; gap:16px; }
.skfa-detail .skfa-detail-dates time>span { display:block; white-space:nowrap; }

.skfa-related .skfa-related-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:16px; }
.skfa-related .skfa-related-heading h2 { color:#006f62; font-size:36px; font-weight:900; line-height:45px; }
.skfa-related .skfa-related-heading>div { display:flex; gap:8px; }
.skfa-related .skfa-related-heading button { width:40px; height:40px; padding:0; border:1px solid #dde1ea; border-radius:50%; background:#fff; color:#252535; font-size:24px; }
.skfa-related .skfa-related-heading button:disabled { opacity:.4; cursor:default; }
.skfa-related .skfa-grid { display:flex; gap:32px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-inline:2px; padding:4px 2px 16px; }
.skfa-related .skfa-card { flex:0 0 320px; scroll-snap-align:start; }
@media(max-width:639px) { .skfa-related .skfa-card { flex-basis:85%; } .skfa-related .skfa-related-heading h2 { font-size:28px; line-height:35px; } }
