/* Bredeschool Workshops frontend */
.bsw-grid { display:grid; gap:24px; grid-template-columns:1fr; padding:12px 0; }
@media (min-width: 992px) { .bsw-grid { grid-template-columns:1fr 1fr; } }

.bsw-tile { background:#fff; border-radius:12px; overflow:hidden; box-shadow:0 4px 14px rgba(0,0,0,.07); display:flex; flex-direction:column; transition:transform .15s; }
.bsw-tile:hover { transform:translateY(-3px); }
.bsw-tile__band { height:10px; }
.bsw-tile__image { aspect-ratio:16/9; background:#ddd center/cover no-repeat; position:relative; }
.bsw-tile__image--placeholder { display:flex; align-items:center; justify-content:center; }
.bsw-tile__image-letter { font-size:96px; line-height:1; color:rgba(255,255,255,0.85); font-weight:700; letter-spacing:-2px; text-shadow:0 2px 14px rgba(0,0,0,0.18); user-select:none; }

/* Workshop detail-pagina */
.bsw-hero { display:grid; grid-template-columns:1fr; gap:28px; margin:0 0 32px; align-items:start; }
@media (min-width: 900px) { .bsw-hero { grid-template-columns:1.1fr 1fr; gap:36px; } }
.bsw-hero__col--details { min-width:0; }
.bsw-hero__col--image { min-width:0; }
.bsw-hero__image { margin:0; aspect-ratio:4/3; background:#ddd center/cover no-repeat; border-radius:12px; box-shadow:0 6px 22px rgba(0,0,0,0.08); position:relative; overflow:hidden; }
.bsw-hero__image--placeholder { display:flex; align-items:center; justify-content:center; }
.bsw-hero__image-letter { font-size:140px; line-height:1; color:rgba(255,255,255,0.9); font-weight:700; letter-spacing:-3px; text-shadow:0 3px 18px rgba(0,0,0,0.2); user-select:none; }

/* Volledige-breedte tekstcontainer met dezelfde stijl als locatie/aanbieder-blokken */
.bsw-longcontent { margin:0 0 24px; padding:24px 28px; background:#fff; border:1px solid #e3e8ef; border-radius:12px; box-shadow:0 4px 14px rgba(0,0,0,0.05); line-height:1.7; color:#222; }
.bsw-longcontent .bsw-block__title { margin:0 0 12px; }
.bsw-longcontent__body > *:first-child { margin-top:0; }
.bsw-longcontent__body > *:last-child { margin-bottom:0; }
.bsw-longcontent__lead { font-size:17px; color:#1f3a5c; font-weight:500; margin:0 0 14px; line-height:1.55; }

/* Volle-breedte intro container (titel + subtitel + labels) */
.bsw-detail__intro { margin:0 0 28px; padding:24px 28px; background:#fff; border:1px solid #e3e8ef; border-radius:12px; box-shadow:0 4px 14px rgba(0,0,0,0.05); }
.bsw-detail__title { margin:0 0 6px; font-size:32px; font-weight:800; color:#1f3a5c; line-height:1.15; }
.bsw-detail__intro .bsw-detail__subtitle { margin:0 0 14px; color:#555; font-size:17px; font-style:italic; }
.bsw-detail__labels { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.bsw-detail__label { display:inline-flex; align-items:center; padding:5px 12px; border-radius:14px; font-size:13px; font-weight:600; line-height:1; }
.bsw-detail__label--cat { background:#eef2f7; color:#1f3a5c; }
.bsw-detail__label--series { background:#fff4e5; color:#a35b00; }
.bsw-detail__label--available { background:#e6f7ed; color:#0a6b2e; }
.bsw-detail__label--nearly { background:#fff5e0; color:#7a4a00; }
.bsw-detail__label--full { background:#d63638; color:#fff; padding:6px 14px; font-weight:800; letter-spacing:0.6px; box-shadow:0 2px 8px rgba(214,54,56,0.35); }
.bsw-detail__label--closed { background:#eceff3; color:#555; }

/* Overlay-labels op hero-afbeelding én tegel-afbeelding */
.bsw-hero__image, .bsw-tile__image { position:relative; }

.bsw-overlay-series { position:absolute !important; top:12px !important; left:12px !important; background:#ffffff !important; color:#1f3a5c !important; padding:6px 12px !important; border-radius:18px !important; font-size:12px !important; font-weight:700 !important; line-height:1 !important; box-shadow:0 4px 14px rgba(0,0,0,0.22) !important; white-space:nowrap !important; z-index:3 !important; }

.bsw-overlay-status { position:absolute !important; top:12px !important; right:12px !important; padding:8px 16px !important; border-radius:20px !important; font-size:13px !important; font-weight:800 !important; letter-spacing:1px !important; line-height:1 !important; box-shadow:0 4px 14px rgba(0,0,0,0.25) !important; white-space:nowrap !important; z-index:3 !important; text-transform:uppercase !important; }
.bsw-overlay-status--full { background:#d63638 !important; color:#ffffff !important; border:2px solid #ffffff !important; }
.bsw-overlay-status--closed { background:rgba(33,33,33,0.92) !important; color:#ffffff !important; }

/* Categorieën linksonder als chips over de foto */
.bsw-overlay-cats { position:absolute !important; left:12px !important; bottom:12px !important; right:12px !important; display:flex !important; flex-wrap:wrap !important; gap:6px !important; z-index:3 !important; }
.bsw-overlay-cat { display:inline-block !important; background:rgba(255,255,255,0.95) !important; color:#1f3a5c !important; padding:5px 11px !important; border-radius:14px !important; font-size:12px !important; font-weight:700 !important; line-height:1 !important; box-shadow:0 3px 10px rgba(0,0,0,0.18) !important; white-space:nowrap !important; }

/* Compacter intro-container: alleen titel + subtitel */
.bsw-detail__intro { padding:20px 24px; }
.bsw-detail__title { margin:0; }
.bsw-detail__intro .bsw-detail__subtitle { margin:6px 0 0; }

.bsw-detail { margin:0; }
.bsw-detail__cats { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 12px; padding:0; list-style:none; }
.bsw-detail__cat { font-size:12px; padding:3px 12px; border-radius:12px; background:#eef2f7; color:#1f3a5c; }
.bsw-detail__subtitle { font-size:18px; color:#555; margin:0 0 16px; font-style:italic; }
.bsw-detail__status { display:inline-block; padding:8px 16px; border-radius:8px; font-weight:600; font-size:14px; margin:0 0 20px; }
.bsw-detail__status--available { background:#e6f7ed; color:#0a6b2e; }
.bsw-detail__status--nearly { background:#fff5e0; color:#7a4a00; }
.bsw-detail__status--full { background:#fde6e6; color:#8a1f1f; }
.bsw-detail__status--closed { background:#eceff3; color:#555; }
.bsw-detail__meta { display:grid; grid-template-columns:140px 1fr; gap:8px 18px; margin:0 0 24px; padding:18px 20px; background:#f7f9fc; border-radius:10px; font-size:15px; }
.bsw-detail__meta dt { font-weight:600; color:#1f3a5c; margin:0; }
.bsw-detail__meta dd { margin:0; color:#333; }
.bsw-detail__loc-extra { font-size:13px; color:#666; }
.bsw-detail__desc { margin:0 0 20px; line-height:1.6; color:#222; }
@media (max-width: 600px) {
    .bsw-detail__meta { grid-template-columns:1fr; gap:2px 0; }
    .bsw-detail__meta dt { margin-top:10px; }
}

/* Status + reeks-badges op detail */
.bsw-detail__badges { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 20px; }
.bsw-detail__badge { display:inline-block; padding:8px 16px; border-radius:8px; font-weight:600; font-size:14px; }
.bsw-detail__badge--available { background:#e6f7ed; color:#0a6b2e; }
.bsw-detail__badge--nearly { background:#fff5e0; color:#7a4a00; }
.bsw-detail__badge--full { background:#fde6e6; color:#8a1f1f; }
.bsw-detail__badge--closed { background:#eceff3; color:#555; }
.bsw-detail__badge--series { background:#e8f1ff; color:#1f3a5c; }
.bsw-detail__badge--series::before { content:"⟳ "; }

.bsw-detail__dates { margin:4px 0 0; padding:0 0 0 18px; }
.bsw-detail__dates li { margin:2px 0; }

/* Locatie + Organisator blokken */
.bsw-block { margin:24px 0; padding:24px; background:#fff; border:1px solid #e5eaf0; border-radius:12px; }
/* Aanbieder + school naast elkaar: op desktop elk 1/2, op mobiel onder elkaar. */
.bsw-block-row { display:flex; gap:24px; flex-wrap:wrap; align-items:stretch; }
.bsw-block-row .bsw-block-col { flex:1 1 calc(50% - 12px); min-width:280px; display:flex; }
.bsw-block-row .bsw-block-col > .bsw-block { flex:1; width:100%; }
@media (max-width:782px){ .bsw-block-row .bsw-block-col { flex-basis:100%; } }
.bsw-block__title { margin:0 0 14px; font-size:20px; color:#1f3a5c; }
.bsw-block__name { font-size:17px; font-weight:600; margin:0 0 8px; color:#1f3a5c; }
.bsw-block__intro { margin:0 0 14px; color:#444; line-height:1.55; }
.bsw-block__meta { display:grid; grid-template-columns:120px 1fr; gap:6px 16px; margin:0 0 12px; font-size:14px; }
.bsw-block__meta dt { font-weight:600; color:#555; margin:0; }
.bsw-block__meta dd { margin:0; color:#222; }
.bsw-block__sub { margin:8px 0 0; font-size:14px; color:#444; }
.bsw-block__map-link { color:#1f3a5c; font-weight:600; text-decoration:underline; }
.bsw-block--provider .bsw-block__provider-head { display:flex; align-items:center; gap:18px; margin:0 0 14px; }
.bsw-block--provider .bsw-block__provider-logo { width:100px; height:100px; border-radius:14px; background:#f0f4fa center/cover no-repeat; flex:none; border:1px solid #e5eaf0; }
.bsw-block__address { margin:0 0 10px; font-size:15px; color:#222; line-height:1.5; }

/* Locatie blok: foto naast info */
.bsw-block__loc-layout { display:flex; gap:18px; margin:0 0 14px; align-items:flex-start; }
.bsw-block__loc-layout.has-photo .bsw-block__loc-info { flex:1; }
.bsw-block__loc-photo { width:240px; height:160px; flex:none; border-radius:10px; background:#e0e4ea center/cover no-repeat; }
@media (max-width: 600px) {
    .bsw-block__meta { grid-template-columns:1fr; gap:2px; }
    .bsw-block__meta dt { margin-top:8px; }
    .bsw-block__loc-layout { flex-direction:column; }
    .bsw-block__loc-photo { width:100%; height:200px; }
}

/* Reserveer-blok onderaan single page */
.bsw-register-section { margin:32px 0 0; padding:28px; background:#fff; border:1px solid #e5eaf0; border-radius:12px; text-align:center; }
.bsw-register-section__open { background:#1f3a5c; color:#fff; border:0; border-radius:10px; padding:14px 32px; font-size:17px; font-weight:600; cursor:pointer; transition:background .15s; }
.bsw-register-section__open:hover:not(.is-disabled) { background:#16294a; }
.bsw-register-section__open.is-disabled { background:#bbb; cursor:not-allowed; }
.bsw-register-section__hint { margin:10px 0 0; font-size:13px; color:#777; }

/* Reeks-badge op tegel */
.bsw-tile__series { display:inline-flex; align-items:center; gap:6px; padding:6px 12px; margin:0 0 4px; background:#e8f1ff; color:#1f3a5c; border-radius:20px; font-size:13px; font-weight:600; align-self:flex-start; }
.bsw-tile__series-icon { font-size:14px; }

/* Modal */
.bsw-modal { position:fixed; inset:0; z-index:2147483600; display:flex; align-items:flex-start; justify-content:center; padding:120px 20px 60px; overflow-y:auto; }
@media (max-width: 640px) { .bsw-modal { padding:90px 12px 40px; } }
.bsw-modal[hidden] { display:none; }
.bsw-modal__overlay { position:absolute; inset:0; background:rgba(15,25,45,0.55); backdrop-filter:blur(2px); }
.bsw-modal__dialog { position:relative; background:#fff; border-radius:14px; max-width:640px; width:100%; padding:28px 32px 32px; box-shadow:0 24px 60px rgba(0,0,0,0.25); margin:auto 0; }
.bsw-modal__close { position:absolute; top:10px; right:12px; background:transparent; border:0; font-size:30px; line-height:1; color:#888; cursor:pointer; width:36px; height:36px; }
.bsw-modal__close:hover { color:#222; }
.bsw-modal__heading { margin:0 0 16px; font-size:22px; color:#1f3a5c; padding-right:30px; }
body.bsw-modal-open { overflow:hidden; }
.bsw-tile__body { padding:20px; display:flex; flex-direction:column; gap:10px; flex:1; }
.bsw-tile__cats { display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; list-style:none; }
.bsw-tile__cat { font-size:11px; padding:2px 10px; border-radius:10px; background:#eef2f7; color:#1f3a5c; }
.bsw-tile__title { margin:0; font-size:22px; line-height:1.25; color:#1f3a5c; }
.bsw-tile__subtitle { margin:0; color:#666; font-size:15px; }
.bsw-tile__desc { margin:0; font-size:14px; color:#444; }
.bsw-tile__meta { display:flex; justify-content:space-between; align-items:center; margin-top:auto; gap:12px; flex-wrap:wrap; }
.bsw-tile__date { font-weight:600; color:#1f3a5c; font-size:14px; }
.bsw-tile__status { font-size:12px; padding:4px 10px; border-radius:4px; font-weight:600; }
.bsw-tile__status--available { background:#e6f4ea; color:#2e7d32; }
.bsw-tile__status--nearly   { background:#fff4e5; color:#b86e00; }
.bsw-tile__status--full     { background:#fdecea; color:#c62828; }
.bsw-tile__status--closed   { background:#eee; color:#555; }
.bsw-tile__cta { display:inline-block; padding:10px 16px; background:#1f3a5c; color:#fff !important; text-decoration:none; border-radius:6px; font-weight:600; font-size:14px; }
.bsw-tile__cta--waitlist { background:#b86e00; }
.bsw-tile__cta--disabled { background:#aaa; pointer-events:none; }
.bsw-countdown { font-size:12px; color:#666; }
.bsw-tile__recurring { font-size:12px; color:#1f3a5c; background:#eef2f7; display:inline-block; padding:2px 8px; border-radius:10px; margin-top:3px; }

/* Form */
.bsw-form { max-width:620px; background:#fff; padding:18px; border-radius:10px; box-shadow:0 2px 8px rgba(0,0,0,.05); }
.bsw-form fieldset { border:1px solid #e3e8ef; border-radius:8px; padding:10px 14px; margin:0 0 12px; position:relative; }
.bsw-form legend { padding:0 8px; font-weight:600; color:#1f3a5c; }
.bsw-form label { display:block; margin:6px 0 2px; font-size:13px; font-weight:500; color:#1f3a5c; }
.bsw-form input[type=text], .bsw-form input[type=email], .bsw-form input[type=tel], .bsw-form input[type=number], .bsw-form textarea {
	width:100%; padding:6px 10px; border:1px solid #cdd4de; border-radius:6px; font-size:14px; box-sizing:border-box;
}
.bsw-form .bsw-inline { display:flex; gap:12px; align-items:center; }
.bsw-form .bsw-child { position:relative; background:#f6f8fb; padding:12px 14px; border-radius:6px; margin-bottom:10px; }
.bsw-form .bsw-remove-child { position:absolute; right:12px; top:12px; color:#c62828; background:none; border:0; cursor:pointer; font-size:13px; }
/* Geen kruisje bij het eerste kind: alleen het 2e/3e kind kan verwijderd worden. */
.bsw-form .bsw-children .bsw-child:first-child .bsw-remove-child { display:none; }
.bsw-form .bsw-add-child { background:#1f3a5c; color:#fff; padding:8px 14px; border:0; border-radius:6px; cursor:pointer; font-weight:600; }
.bsw-form button[type=submit] { background:#2e7d32 !important; color:#fff !important; padding:12px 22px !important; border:2px solid #2e7d32 !important; border-radius:6px !important; cursor:pointer; font-weight:700 !important; font-size:15px !important; margin-top:8px; transition:background 0.2s, color 0.2s, border-color 0.2s; }
.bsw-form button[type=submit]:hover, .bsw-form button[type=submit]:focus { background:#ffffff !important; color:#d63638 !important; border-color:#d63638 !important; }
.bsw-form button[type=submit]:disabled { background:#9ca3af !important; color:#fff !important; border-color:#9ca3af !important; cursor:not-allowed; }
.bsw-form .bsw-notice { padding:12px 16px; border-radius:6px; margin-bottom:16px; }
.bsw-form .bsw-notice--info    { background:#e3f2fd; color:#0d47a1; }
.bsw-form .bsw-notice--warn    { background:#fff4e5; color:#b86e00; }
.bsw-form .bsw-notice--error   { background:#fdecea; color:#c62828; }
.bsw-form .bsw-notice--success { background:#e6f4ea; color:#2e7d32; }

/* Dashboard */
.bsw-dashboard { max-width:900px; }
.bsw-dashboard__header { margin-bottom:20px; }
.bsw-dash-card { background:#fff; border:1px solid #e3e8ef; border-radius:10px; padding:20px; margin-bottom:16px; }
.bsw-dash-card h3 { margin:0 0 6px; color:#1f3a5c; }
.bsw-dash-meta { display:flex; gap:16px; font-size:13px; color:#666; }
.bsw-dash-cap { background:#eef2f7; padding:2px 10px; border-radius:12px; color:#1f3a5c; font-weight:600; }
.bsw-dash-hold { background:#fff4e5; color:#b86e00; padding:2px 10px; border-radius:12px; }
.bsw-dash-counter { margin:12px 0; padding:10px; background:#f6f8fb; border-radius:6px; font-size:14px; }
.bsw-dash-financial { margin:12px 0; padding:10px; background:#fffbe6; border-left:3px solid #dba617; font-size:13px; }
.bsw-dash-financial ul { margin:4px 0 0 18px; padding:0; }
.bsw-dash-contract { margin:8px 0; font-size:13px; }
.bsw-dash-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.bsw-dash-actions .button { display:inline-block; padding:8px 14px; background:#eef2f7; color:#1f3a5c !important; text-decoration:none; border-radius:6px; font-size:13px; border:1px solid transparent; cursor:pointer; }
.bsw-dash-actions .button-primary { background:#1f3a5c; color:#fff !important; }
.bsw-dash-actions .button:hover { border-color:#1f3a5c; }

/* Mijn account dropdown */
.bsw-account { position:relative; }
.bsw-account__icon { display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border-radius:20px; background:#eef2f7; text-decoration:none; color:#1f3a5c; font-size:14px; }
.bsw-account__panel { position:absolute; right:0; top:110%; background:#fff; border-radius:8px; box-shadow:0 6px 20px rgba(0,0,0,.15); padding:16px; min-width:260px; z-index:1000; display:none; }
.bsw-account__panel.bsw-open { display:block; }

/* BeTheme "vorige/volgende workshop"-navigatie (fixed-nav links/rechts onderaan) verbergen op single workshop. */
body.single-bs_workshop a.fixed-nav,
body.single-bs_workshop .fixed-nav-prev,
body.single-bs_workshop .fixed-nav-next { display:none !important; }
