/* Free-access half-lesson preview. This is a visual/convenience gate, not a secure login. */
[data-library-remainder][hidden], [data-library-gate][hidden] { display: none !important; }
.lib-access-notice { margin: 1rem 0; padding: .9rem 1.1rem; border-left: 3px solid #a88755; background: #f1f3eb; }
.lib-access-label { display: block; font-size: .8rem; font-weight: 650; color: #49604c; margin: .5rem 0; }
.lib-blur-gate { margin: 1.6rem 0 2.5rem; scroll-margin-top: 2rem; position: relative; }
.lib-gated-glimpse { overflow: hidden; max-height: 210px; position: relative; padding: 1.2rem 1.3rem 5rem; border-radius: 13px 13px 0 0; background: #ecede8; color: #34453c; }
.lib-gated-glimpse::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(234,237,233,.16) 0%, rgba(234,237,233,.72) 54%, rgba(234,237,233,.97) 100%); }
.lib-gated-glimpse-inner { filter: blur(4px); user-select: none; pointer-events: none; opacity: .68; }
.lib-gated-glimpse h2 { font-size: clamp(1.3rem, 3vw, 1.8rem); margin: .2rem 0 .8rem; }
.lib-gated-glimpse p { font-size: 1rem; line-height: 1.75; }
.lib-access-gate { position: relative; margin: -42px auto 0; z-index: 1; max-width: 780px; padding: clamp(1.3rem,4vw,2.5rem); border: 1px solid #c7a85f; border-radius: 14px; background: #183c32; color: #fff; box-shadow: 0 16px 34px rgba(13,43,34,.17); }
.lib-access-gate h2 { color: #fff; margin-top: .4rem; }
.lib-access-gate .lib-kicker { color: #d9bc78; }
.lib-access-gate p { color: #e5ede3; }
.lib-access-gate a:not(.lib-btn) { color: #f1d99f; }
.lib-access-gate .lib-btn { display: inline-block; white-space: normal; text-align: center; }
.lib-access-gate .lib-small { font-size: .84rem; line-height: 1.6; }
.lib-gate-form { margin-top: 1.25rem; }
.lib-gate-label { font-weight: 700; font-size: .95rem; color: #fff; display: block; margin-bottom: .5rem; }
.lib-gate-input-row { display: flex; gap: .7rem; align-items: stretch; flex-wrap: wrap; }
.lib-gate-input-row input[type=email] { flex: 1 1 230px; min-width: 0; padding: .85rem .95rem; background: #fff; color: #203f33; border: 2px solid #e1e4d9; border-radius: 7px; font: inherit; }
.lib-gate-input-row button { flex: 0 1 auto; padding: .85rem 1.2rem; background: #c9a661; color: #17372e; border: 0; border-radius: 7px; cursor: pointer; font: inherit; font-weight: 750; }
.lib-gate-input-row button:hover { background: #e4c27a; }
.lib-gate-input-row button[disabled] { opacity: .75; cursor: progress; }
.lib-gate-marketing { display: flex; align-items: flex-start; gap: .7rem; margin: 1rem 0 .45rem; color: #fff; font-size: .85rem; line-height: 1.5; cursor: pointer; }
.lib-gate-marketing input { margin: .16rem 0 0; width: 17px; height: 17px; flex-shrink: 0; accent-color: #e0ba72; }
.lib-gate-status { margin: .8rem 0 0; min-height: 1.1rem; font-size: .9rem; }
.lib-gate-status.lib-error { color: #ffcfbd; }
.lib-honeypot { position: absolute; left: -10000px; height: 1px; overflow: hidden; }
.lib-access-gate :focus-visible { outline: 3px solid #f1d99f; outline-offset: 4px; }
@media (max-width: 560px) { .lib-gate-input-row button { width: 100%; } .lib-gated-glimpse { max-height: 180px; } }
@media print { [data-library-remainder][hidden] { display: none !important; } .lib-blur-gate:not([hidden]) .lib-gated-glimpse { display: none; } }
