.folklore-school{box-sizing:border-box;max-width:820px;margin:3rem auto;padding:clamp(1.25rem,4vw,3rem);border:1px solid #dedede;border-radius:12px;background:#fff;color:#191919;box-shadow:0 18px 50px rgba(0,0,0,.06);font-family:inherit}
.folklore-school *{box-sizing:border-box}
.folklore-school__intro{margin-bottom:1.5rem}
.folklore-school__eyebrow{margin:0 0 .45rem;color:#555;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.folklore-school h2{margin:0 0 .65rem;color:#111;font-size:clamp(1.8rem,3vw,2.35rem);line-height:1.15}
.folklore-school__intro>p:last-child{margin:0;color:#4a4a4a;line-height:1.5}
.folklore-school__program{display:flex;flex-wrap:wrap;gap:.35rem .65rem;margin:0 0 1.4rem;padding:.85rem 1rem;border-left:3px solid #171717;background:#f5f5f5;color:#525252;font-size:.94rem}
.folklore-school__program strong{color:#171717}
.folklore-school__section{padding:1.35rem 0;border-top:1px solid #e4e4e4}
.folklore-school__section h3{margin:0 0 1.1rem;color:#171717;font-size:1.12rem;line-height:1.3}
.folklore-school__section h3 span{margin-left:.45rem;color:#666;font-size:.78rem;font-weight:500}
.folklore-school__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.25rem;align-items:start}
.folklore-school label{display:block;margin:0;color:#292929;font-size:.93rem;font-weight:600;line-height:1.35}
.folklore-school input:not([type=radio]):not([type=hidden]),.folklore-school select{display:block;width:100%;min-height:46px;margin:.45rem 0 0;padding:.7rem .8rem;border:1px solid #aaa;border-radius:6px;background:#fff;color:#191919;font:inherit;font-weight:400;line-height:1.3;transition:border-color .16s,box-shadow .16s}
.folklore-school input:hover,.folklore-school select:hover{border-color:#666}
.folklore-school input:focus-visible,.folklore-school select:focus-visible,.folklore-school button:focus-visible{outline:2px solid #171717;outline-offset:2px}
.folklore-school__conditional[hidden]{display:none!important}
.folklore-school__field-note,.folklore-school__hint{margin:.45rem 0 0;color:#656565;font-size:.83rem;line-height:1.45}
.folklore-school__hint{margin:-.5rem 0 1rem}
.folklore-school__consent{min-width:0;margin:0;padding:0;border:0}
.folklore-school__consent legend{width:100%;padding:0;color:#292929;font-size:.94rem;font-weight:600;line-height:1.5}
.folklore-school__consent>p{margin:.45rem 0 .85rem;color:#5b5b5b;font-size:.85rem;line-height:1.45}
.folklore-school__choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.folklore-school__consent .folklore-school__choices label{display:flex;align-items:center;gap:.7rem;min-height:50px;padding:.75rem .9rem;border:1px solid #bcbcbc;border-radius:6px;background:#fff;cursor:pointer;font-weight:500}
.folklore-school__consent .folklore-school__choices label:has(input:checked){border-color:#171717;background:#f4f4f4;box-shadow:inset 0 0 0 1px #171717}
.folklore-school__consent input[type=radio]{flex:none;width:1.15rem;height:1.15rem;margin:0;accent-color:#171717}
.folklore-school__instagram{max-width:360px;margin-top:1rem}
.folklore-school__privacy,.folklore-school__disclaimer{margin:0 0 .75rem;color:#555;font-size:.85rem;line-height:1.5}
.folklore-school__privacy a{color:#191919;text-decoration:underline;text-underline-offset:2px}
.folklore-school__disclaimer{margin-bottom:1rem}
.folklore-school button{display:inline-flex;align-items:center;justify-content:center;gap:1.5rem;min-height:48px;padding:.8rem 1.4rem;border:1px solid #171717;border-radius:6px;background:#171717;color:#fff;font:inherit;font-weight:700;line-height:1.2;cursor:pointer;transition:background .16s,transform .16s}
.folklore-school button:hover{background:#383838;transform:translateY(-1px)}
.folklore-school__notice,.folklore-school__error{margin:0 0 1.3rem;padding:.9rem 1rem;border:1px solid #a7d3c2;border-radius:6px;background:#f0f8f5;color:#203a32;line-height:1.45}
.folklore-school__error{border-color:#e2b5ad;background:#fff5f3;color:#702d26}
.folklore-school__trap{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:620px){.folklore-school{margin:1.5rem auto;padding:1.25rem;border-radius:8px}.folklore-school__grid,.folklore-school__choices{grid-template-columns:1fr}.folklore-school__section{padding:1.2rem 0}.folklore-school button{width:100%}}
@media(prefers-reduced-motion:reduce){.folklore-school input,.folklore-school select,.folklore-school button{transition:none}.folklore-school button:hover{transform:none}}
