.participaec-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.participaec-gallery__item { margin: 0; overflow: hidden; border-radius: 10px; background: #f4f6ff; }
.participaec-gallery__item a { display: block; aspect-ratio: 1 / 1; }
.participaec-gallery__item img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .25s ease; }
.participaec-gallery__item a:hover img, .participaec-gallery__item a:focus img { transform: scale(1.025); }
.participaec-gallery__item figcaption { padding: 9px 12px; color: #1e1e42; font-size: 14px; }
.participaec-video-playlist { display: grid; gap: 26px; }
.participaec-video-playlist__item { position: relative; width: 100%; overflow: hidden; border-radius: 12px; background: #111; aspect-ratio: 16 / 9; }
.participaec-video-playlist iframe, .participaec-video-playlist video { width: 100%; height: 100%; border: 0; display: block; }
.participaec-course-playlist { margin: 32px 0 42px; }
.participaec-course-playlist > h2 { margin: 0 0 6px; color: #1e1e42; font-size: clamp(1.65rem, 3vw, 2.35rem); line-height: 1.15; }
.participaec-course-playlist__count { margin: 0 0 20px; color: #5b6175; font-weight: 700; }
.participaec-tutorials { margin-top: 36px; }
.participaec-tutorial-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.participaec-tutorial-card { overflow: hidden; border: 1px solid #e4e7f2; border-radius: 12px; background: #fff; box-shadow: 0 10px 28px rgba(30,30,66,.08); }
.participaec-tutorial-card__video { position: relative; width: 100%; min-height: 0; padding: 0; border: 0; border-radius: 0; aspect-ratio: 16 / 9; overflow: hidden; background: #111; cursor: pointer; }
.participaec-tutorial-card__video img, .participaec-tutorial-card__video iframe { width: 100%; height: 100%; display: block; border: 0; object-fit: cover; }
.participaec-tutorial-card__video span { position: absolute; inset: 50% auto auto 50%; display: grid; width: 64px; height: 48px; transform: translate(-50%,-50%); place-items: center; border-radius: 12px; background: rgba(30,30,66,.92); color: #fff; font-size: 24px; box-shadow: 0 8px 24px rgba(0,0,0,.25); transition: transform .2s ease, background .2s ease; }
.participaec-tutorial-card__video:hover span, .participaec-tutorial-card__video:focus-visible span { transform: translate(-50%,-50%) scale(1.08); background: #5770d3; }
.participaec-tutorial-card h3 { margin: 0; padding: 18px 20px 20px; color: #1e1e42; font-size: 18px; line-height: 1.35; }
.participaec-tutorials__more { margin: 28px 0 0; text-align: center; }
.participaec-tutorials__more a { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 10px 22px; border-radius: 5px; background: #1e1e42; color: #fff; font-weight: 700; text-decoration: none; }
.participaec-tutorials__more a:hover, .participaec-tutorials__more a:focus { background: #5770d3; color: #fff; }
.participaec-toc { margin: 24px 0; padding: 20px 24px; border-left: 4px solid #5770d3; border-radius: 4px; background: #f4f6ff; }
.participaec-toc__title { margin: 0 0 10px; color: #1e1e42; font-weight: 700; }
.participaec-toc ol { margin: 0; padding-left: 22px; }
.participaec-toc li { margin: 5px 0; }
.participaec-toc a { color: #1e1e42; text-decoration: none; }
.participaec-toc a:hover, .participaec-toc a:focus { color: #5770d3; text-decoration: underline; }
.participaec-lightbox { position: fixed; inset: 0; z-index: 999999; display: grid; place-items: center; padding: 24px; background: rgba(12,12,24,.9); }
.participaec-lightbox img { max-width: min(1200px, 95vw); max-height: 90vh; object-fit: contain; }
.participaec-lightbox button { position: absolute; top: 18px; right: 18px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: #fff; color: #111; font-size: 28px; line-height: 1; cursor: pointer; }

/* Contact form: accessible spacing and ParticipaEc visual language. */
.participaec-contact-form { margin-inline: auto; max-width: 860px; width: 100%; }
.participaec-direct-form { display: grid; gap: 1.1rem; padding: clamp(1.1rem, 3vw, 2rem); border: 1px solid #e1e5f2; border-radius: 14px; background: #fff; box-shadow: 0 14px 36px rgba(30,30,66,.08); }
.participaec-contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.participaec-field { display: grid; gap: .45rem; }
.participaec-field label { color: #1e1e42; font-size: 1rem; font-weight: 700; }
.participaec-field input,
.participaec-field textarea { width: 100%; min-height: 50px; padding: .75rem .9rem; border: 1px solid #b8c0da; border-radius: 8px; background: #fff; color: #1e1e42; font: inherit; }
.participaec-field textarea { min-height: 160px; resize: vertical; }
.participaec-field input:focus,
.participaec-field textarea:focus { border-color: #5770d3; box-shadow: 0 0 0 3px rgba(87,112,211,.2); outline: 0; }
.participaec-consent { display: flex; gap: .65rem; align-items: flex-start; color: #32324f; cursor: pointer; }
.participaec-consent input { width: 20px; height: 20px; margin-top: .1rem; accent-color: #5770d3; }
.participaec-contact-note { margin: -.25rem 0 0; color: #5b6075; font-size: .92rem; }
.participaec-contact-submit { justify-self: start; min-height: 50px; padding: .75rem 1.5rem; border: 0; border-radius: 8px; background: #5770d3; color: #fff; font-size: 1rem; font-weight: 700; cursor: pointer; }
.participaec-contact-submit:hover,
.participaec-contact-submit:focus-visible { background: #1e1e42; }
.participaec-contact-submit:disabled { cursor: wait; opacity: .65; }
.participaec-contact-status { min-height: 1.5em; margin: 0; font-weight: 700; }
.participaec-contact-status.is-success { color: #176b3a; }
.participaec-contact-status.is-error { color: #a02222; }
.participaec-honey { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
@media (max-width: 760px) { .participaec-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } .participaec-tutorial-grid { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .participaec-contact-grid { grid-template-columns: 1fr; } .participaec-contact-submit { width: 100%; } }
@media (max-width: 480px) { .participaec-gallery { grid-template-columns: 1fr; } }
