/* Not Your Collage — forms, notices, consent banner, accessibility helpers */

/* ---- Accessibility ---- */
.screen-reader-text{ position:absolute !important; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link{ position:absolute; left:12px; top:-60px; z-index:100000; background:var(--nyc-accent); color:var(--nyc-on-accent,#06110c); padding:12px 18px; border-radius:10px; font-weight:600; transition:top .15s; }
.skip-link:focus{ top:12px; }
:focus-visible{ outline:3px solid var(--nyc-accent); outline-offset:3px; border-radius:4px; }
.btn:focus-visible, .mode-toggle:focus-visible, .nav-toggle:focus-visible{ outline-offset:4px; }
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .btn:hover,.card:hover{ transform:none; }
}
.btn-primary{ color:var(--nyc-on-accent,#06110c); }
.pagination .current{ color:var(--nyc-on-accent,#06110c); }

/* ---- Forms ---- */
.nyc-form-wrap{ max-width:640px; background:var(--nyc-surface); border:1px solid var(--nyc-border); border-radius:var(--nyc-radius-lg); padding:32px; }
.nyc-form .nyc-field{ margin:0 0 18px; }
.nyc-form label{ display:block; font-weight:600; font-size:.92rem; margin-bottom:6px; color:var(--nyc-text); }
.nyc-form .nyc-req{ color:var(--nyc-accent); }
.nyc-form input[type=text], .nyc-form input[type=email], .nyc-form input[type=tel], .nyc-form input[type=url],
.nyc-form input[type=date], .nyc-form input[type=password], .nyc-form select, .nyc-form textarea,
.nyc-login input[type=text], .nyc-login input[type=password]{
  width:100%; padding:13px 16px; background:var(--nyc-bg); color:var(--nyc-text);
  border:1px solid var(--nyc-border); border-radius:var(--nyc-radius); font:inherit;
}
.nyc-form input:focus, .nyc-form select:focus, .nyc-form textarea:focus, .nyc-login input:focus{ border-color:var(--nyc-accent); outline:none; box-shadow:0 0 0 3px color-mix(in srgb, var(--nyc-accent) 30%, transparent); }
.nyc-form .nyc-consent label{ font-weight:400; font-size:.88rem; color:var(--nyc-text-muted); display:flex; gap:10px; align-items:flex-start; }
.nyc-form .nyc-consent a, .nyc-form-links a{ color:var(--nyc-accent); text-decoration:underline; }
.nyc-form-links{ font-size:.9rem; margin-top:14px; }
.nyc-muted{ color:var(--nyc-text-muted); font-size:.9rem; }
.nyc-hp{ position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }
.nyc-login label{ display:block; font-weight:600; margin-bottom:6px; }
.nyc-login p{ margin:0 0 16px; }
.nyc-login .login-remember label{ font-weight:400; }
.nyc-login input[type=submit]{ background:var(--nyc-accent); color:var(--nyc-on-accent,#06110c); border:0; border-radius:var(--nyc-btn-radius,999px); padding:14px 28px; font-weight:600; cursor:pointer; }

.nyc-notice{ max-width:640px; padding:16px 20px; border-radius:var(--nyc-radius); border:1px solid var(--nyc-border); margin:0 0 20px; background:var(--nyc-surface); color:var(--nyc-text); }
.nyc-notice-success{ border-color:#22c55e; }
.nyc-notice-error{ border-color:#ef4444; }
.nyc-notice ul{ margin:8px 0 0 18px; list-style:disc; }
.nyc-account h2{ margin-bottom:24px; }

/* ---- Footer business block ---- */
.footer-business{ margin-top:14px; font-size:.9rem; color:var(--nyc-text-muted); }
.footer-business a{ color:var(--nyc-text-muted); text-decoration:underline; }
.footer-business a:hover{ color:var(--nyc-accent); }
.footer-business .footer-contact{ line-height:1.7; }

/* ---- Cookie banner ---- */
.nyc-cookie{ position:fixed; left:16px; right:16px; bottom:16px; z-index:9999; max-width:880px; margin:0 auto;
  background:var(--nyc-surface); color:var(--nyc-text); border:1px solid var(--nyc-border); border-radius:var(--nyc-radius-lg);
  padding:18px 22px; display:flex; gap:18px; align-items:center; justify-content:space-between; box-shadow:0 12px 40px rgba(0,0,0,.35); }
.nyc-cookie[hidden]{ display:none; }
.nyc-cookie-text{ font-size:.9rem; line-height:1.5; }
.nyc-cookie-text strong{ display:block; margin-bottom:2px; }
.nyc-cookie-text a{ text-decoration:underline; color:var(--nyc-accent); }
.nyc-cookie-actions{ display:flex; gap:10px; flex-shrink:0; }
.nyc-cookie .btn{ padding:10px 18px; font-size:.88rem; }
@media (max-width:700px){ .nyc-cookie{ flex-direction:column; align-items:stretch; } .nyc-cookie-actions{ justify-content:stretch; } .nyc-cookie-actions .btn{ flex:1; } }

/* ---- WhatsApp ---- */
.nyc-whatsapp{ position:fixed; right:18px; bottom:84px; z-index:9990; background:#25d366; color:#06210f; font-weight:700; font-size:.85rem;
  padding:12px 18px; border-radius:999px; box-shadow:0 6px 20px rgba(0,0,0,.3); }
.nyc-whatsapp:hover{ transform:translateY(-2px); }

/* ---- Login / sign-up / OTP ---- */
.nyc-auth-tabs{display:flex;gap:.5rem;margin:0 0 1.25rem;border-bottom:1px solid var(--nyc-border,rgba(148,163,184,.25))}
.nyc-auth-tabs a{padding:.6rem .9rem;text-decoration:none;color:var(--nyc-text-muted,#94a3b8);border-bottom:2px solid transparent;margin-bottom:-1px}
.nyc-auth-tabs a[aria-current="page"]{color:var(--nyc-text,inherit);border-bottom-color:var(--nyc-accent,#2563eb);font-weight:600}
.nyc-otp-input{font-size:1.75rem;letter-spacing:.5em;text-align:center;font-variant-numeric:tabular-nums;max-width:14rem}
.nyc-linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--nyc-accent-text,var(--nyc-accent,#2563eb));text-decoration:underline;cursor:pointer}
.nyc-linkbtn:disabled{color:var(--nyc-text-muted,#94a3b8);text-decoration:none;cursor:not-allowed}
.nyc-divider{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0;color:var(--nyc-text-muted,#94a3b8);font-size:.875rem}
.nyc-divider:before,.nyc-divider:after{content:"";flex:1;border-top:1px solid var(--nyc-border,rgba(148,163,184,.25))}
.nyc-google{display:flex;justify-content:center}

/* ---- Learning: curriculum, progress, quiz, certificate, AI tutor ---- */
.nyc-curriculum{list-style:none;margin:0;padding:0;counter-reset:lesson}
.nyc-curriculum li{counter-increment:lesson;padding:.55rem 0;border-bottom:1px solid var(--nyc-border,rgba(148,163,184,.25))}
.nyc-curriculum li:before{content:counter(lesson) ". ";color:var(--nyc-text-muted,#94a3b8)}
.nyc-curriculum li.is-current a{font-weight:700}
.nyc-curriculum li.is-done a{opacity:.85}
.nyc-curriculum a{text-decoration:none;color:inherit}
.nyc-progress{height:8px;border-radius:999px;background:var(--nyc-border,rgba(148,163,184,.25));overflow:hidden;margin:.4rem 0}
.nyc-progress span{display:block;height:100%;background:var(--nyc-accent,#2563eb);border-radius:999px}
.nyc-mycourses{list-style:none;margin:0 0 1rem;padding:0}
.nyc-mycourses li{margin-bottom:1.1rem}
.nyc-video{position:relative;margin:0 0 1.5rem}.nyc-video iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:var(--nyc-radius,12px)}
.nyc-q{border:1px solid var(--nyc-border,rgba(148,163,184,.25));border-radius:var(--nyc-radius,12px);padding:1rem;margin:0 0 1rem}
.nyc-q legend{font-weight:600;padding:0 .4rem}.nyc-q label{display:block;padding:.35rem 0;cursor:pointer}
.nyc-cert{max-width:760px;margin:0 auto 1.5rem;padding:3rem 2rem;text-align:center;border:3px double var(--nyc-accent,#2563eb);border-radius:var(--nyc-radius-lg,16px);background:var(--nyc-surface,transparent)}
.nyc-cert h2{margin:.2rem 0 1rem}.nyc-cert-brand{letter-spacing:.2em;text-transform:uppercase;font-size:.85rem}
.nyc-cert-name{font-size:2rem;font-weight:700;margin:.2rem 0}.nyc-cert-course{font-size:1.4rem;font-weight:600}
.nyc-cert-code{font-size:.8rem;margin-top:2rem;word-break:break-all}.nyc-cert-actions{text-align:center}
@media print{header,footer,.nyc-cert-actions,.entry-hero,.nyc-whatsapp,#nyc-cookie-banner{display:none!important}.nyc-cert{border-color:#000;color:#000;background:#fff}}
.nyc-ai{margin-top:2rem;padding:1.25rem;border:1px solid var(--nyc-border,rgba(148,163,184,.25));border-radius:var(--nyc-radius-lg,16px)}
.nyc-ai-log{max-height:22rem;overflow:auto;margin:.75rem 0}
.nyc-ai-msg{margin:.4rem 0;padding:.6rem .8rem;border-radius:var(--nyc-radius,12px);white-space:pre-wrap}
.nyc-ai-user{background:var(--nyc-accent,#2563eb);color:var(--nyc-on-accent,#fff);margin-left:15%}
.nyc-ai-bot{background:var(--nyc-surface,rgba(148,163,184,.12));margin-right:15%}.nyc-ai-bot.is-error{border:1px solid #ef4444}
.nyc-ai-form{display:flex;gap:.5rem;align-items:flex-end}.nyc-ai-form textarea{flex:1}

/* ---- Includes / FAQ / case facts / floating buttons ---- */
.nyc-includes{margin:.75rem 0}
.nyc-faq-list details{border:1px solid var(--nyc-border,rgba(148,163,184,.25));border-radius:var(--nyc-radius,12px);padding:.75rem 1rem;margin:.5rem 0}
.nyc-faq-list summary{cursor:pointer;font-weight:600}.nyc-faq-list details p{margin:.6rem 0 0}
.nyc-case-facts{border:1px solid var(--nyc-border,rgba(148,163,184,.25));border-radius:var(--nyc-radius-lg,16px);padding:1.25rem;margin-bottom:1.25rem;background:var(--nyc-surface,transparent)}
.nyc-case-facts p{margin:.5rem 0;display:flex;justify-content:space-between;gap:1rem}.nyc-case-facts span{color:var(--nyc-text-muted,#94a3b8)}
.nyc-case-facts .nyc-result strong{font-size:1.5rem;color:var(--nyc-accent,#2563eb)}
.nyc-call{position:fixed;right:18px;bottom:148px;z-index:9990;background:var(--nyc-accent,#2563eb);color:var(--nyc-on-accent,#fff);font-weight:700;font-size:.85rem;padding:12px 18px;border-radius:999px;box-shadow:0 6px 20px rgba(0,0,0,.3)}
@media print{.nyc-call{display:none!important}}

/* ---- dashboards (student + client) ---- */
.nyc-tiles{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px; margin:0 0 24px; }
.nyc-tile{ background:var(--nyc-surface); border:1px solid var(--nyc-border); border-radius:var(--nyc-radius-lg); padding:18px 20px; display:flex; flex-direction:column; gap:4px; }
.nyc-tile strong{ font-family:var(--nyc-font-display); font-size:1.7rem; line-height:1.1; color:var(--nyc-text); }
.nyc-tile span{ color:var(--nyc-text-muted); font-size:.9rem; }
.nyc-client-dash h3{ margin:28px 0 12px; }
.nyc-project{ margin-bottom:16px; }
.nyc-project-head{ display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.nyc-project-head h4{ margin:0; }
.nyc-timeline{ list-style:none; padding:0; margin:12px 0 0; display:grid; gap:8px; }
.nyc-timeline li{ padding-left:14px; border-left:2px solid var(--nyc-border); }
.nyc-files{ margin:6px 0 0; padding-left:1.2em; }
.nyc-table-wrap{ overflow-x:auto; }
.nyc-table{ width:100%; border-collapse:collapse; }
.nyc-table th, .nyc-table td{ text-align:left; padding:12px 14px; border-bottom:1px solid var(--nyc-border); white-space:nowrap; }
.nyc-table th{ color:var(--nyc-text-muted); font-weight:600; font-size:.85rem; text-transform:uppercase; letter-spacing:.05em; }
