/* North England FRCS Course Manager — front-end component styles.
   Uses theme CSS variables where available, with navy/grey fallbacks so the
   plugin looks correct with any theme. */
:root{
	--frcs-navy:#0f2647;--frcs-navy-700:#16335c;--frcs-navy-50:#eef2f8;
	--frcs-ink:#1a2435;--frcs-muted:#5a6783;--frcs-line:#e2e7ee;
	--frcs-bg-soft:#f5f7fa;--frcs-gold:#b8924a;--frcs-radius:8px;
}
.frcs-form-wrap{max-width:760px}
.frcs-form .frcs-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}
.frcs-form p{margin:0 0 14px}
.frcs-form label{display:block;font-weight:600;color:var(--frcs-navy,#0f2647);margin-bottom:5px;font-size:.92rem}
.frcs-form input[type=text],.frcs-form input[type=email],.frcs-form input[type=tel],.frcs-form input[type=url],.frcs-form select,.frcs-form textarea{
	width:100%;padding:11px 13px;border:1px solid var(--frcs-line,#e2e7ee);border-radius:6px;font-size:1rem;background:#fff;color:var(--frcs-ink,#1a2435)}
.frcs-form input:focus,.frcs-form select:focus,.frcs-form textarea:focus{outline:2px solid var(--frcs-navy,#0f2647);outline-offset:1px;border-color:var(--frcs-navy,#0f2647)}
.frcs-form .req{color:#a8261f}
.frcs-hp{position:absolute!important;left:-9999px!important;height:1px;overflow:hidden}
.frcs-pay{border:1px solid var(--frcs-line,#e2e7ee);border-radius:6px;padding:14px 16px;margin:6px 0 16px}
.frcs-pay legend{font-weight:700;color:var(--frcs-navy,#0f2647);padding:0 6px}
.frcs-pay label{display:block;font-weight:500;margin:6px 0}
.frcs-form-cohort{background:var(--frcs-bg-soft,#f5f7fa);border-left:3px solid var(--frcs-navy,#0f2647);padding:10px 14px;margin-bottom:18px;border-radius:4px}
.frcs-fineprint{font-size:.82rem;color:var(--frcs-muted,#5a6783)}
.frcs-consent label{font-weight:500}

/* Buttons */
.frcs-btn{display:inline-block;padding:13px 26px;border-radius:6px;font-weight:600;text-decoration:none;border:2px solid transparent;cursor:pointer;font-size:1rem;transition:all .18s ease;line-height:1.2}
.frcs-btn--primary{background:var(--frcs-navy,#0f2647);color:#fff;border-color:var(--frcs-navy,#0f2647)}
.frcs-btn--primary:hover{background:var(--frcs-navy-700,#16335c);color:#fff}
.frcs-btn--ghost{background:transparent;color:var(--frcs-navy,#0f2647);border-color:var(--frcs-navy,#0f2647)}
.frcs-btn--ghost:hover{background:var(--frcs-navy,#0f2647);color:#fff}

/* Alerts */
.frcs-alert{padding:14px 18px;border-radius:6px;border-left:4px solid var(--frcs-navy,#0f2647);background:var(--frcs-bg-soft,#f5f7fa);margin-bottom:18px}
.frcs-alert--success{border-color:#1f7a3d;background:#eef8f1}
.frcs-alert--error{border-color:#a8261f;background:#fcefee}
.frcs-alert--full{border-color:#9a6a08;background:#fdf6e6}

/* Cohort card */
.frcs-cohort-card{background:#fff;border:1px solid var(--frcs-line,#e2e7ee);border-top:4px solid var(--frcs-navy,#0f2647);border-radius:var(--frcs-radius,8px);padding:26px 28px;box-shadow:0 14px 40px -22px rgba(15,38,71,.4)}
.frcs-eyebrow{display:inline-block;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--frcs-gold,#b8924a);font-weight:700;margin-bottom:8px}
.frcs-cohort-title{font-size:1.7rem;margin:0 0 14px;color:var(--frcs-navy,#0f2647)}
.frcs-cohort-meta{list-style:none;margin:0 0 16px;padding:0}
.frcs-cohort-meta li{display:flex;gap:10px;align-items:center;padding:5px 0;color:var(--frcs-ink,#1a2435)}
.frcs-ic{display:inline-flex;width:22px;justify-content:center;color:var(--frcs-navy,#0f2647)}
.frcs-capacity{font-weight:700;margin:0 0 16px}
.frcs-capacity.is-open{color:#1f7a3d}
.frcs-capacity.is-full{color:#a8261f}
.frcs-capacity-badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:.8rem;font-weight:700}
.frcs-capacity-badge.is-open{background:#eef8f1;color:#1f7a3d}
.frcs-capacity-badge.is-full{background:#fcefee;color:#a8261f}

/* Stats */
.frcs-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:24px;text-align:center}
.frcs-stat{padding:8px 4px}
.frcs-stat-value{display:block;font-size:2.6rem;font-weight:700;color:var(--frcs-navy,#0f2647);line-height:1;font-family:var(--frcs-serif,Georgia,serif)}
.frcs-stat-label{display:block;margin-top:8px;font-size:.86rem;color:var(--frcs-muted,#5a6783);letter-spacing:.02em}

/* Faculty grid */
.frcs-faculty-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:26px}
.frcs-faculty-card{text-align:center}
.frcs-faculty-photo{width:140px;height:140px;margin:0 auto 14px;border-radius:50%;overflow:hidden;background:var(--frcs-navy,#0f2647);display:flex;align-items:center;justify-content:center}
.frcs-faculty-photo img{width:100%;height:100%;object-fit:cover}
.frcs-faculty-initials{color:#fff;font-size:2.4rem;font-weight:700;font-family:var(--frcs-serif,Georgia,serif)}
.frcs-faculty-name{font-size:1.12rem;margin:0 0 3px;color:var(--frcs-navy,#0f2647)}
.frcs-faculty-title{margin:0 0 2px;font-size:.9rem;color:var(--frcs-ink,#1a2435)}
.frcs-faculty-sub{margin:0;font-size:.82rem;color:var(--frcs-gold,#b8924a);text-transform:uppercase;letter-spacing:.05em}
.frcs-faculty-bio{font-size:.9rem;color:var(--frcs-muted,#5a6783);margin-top:10px}
.frcs-faculty-linkedin{font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}

/* Testimonials */
.frcs-testimonials{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:26px}
.frcs-quote{margin:0;background:#fff;border:1px solid var(--frcs-line,#e2e7ee);border-radius:var(--frcs-radius,8px);padding:26px 28px;position:relative}
.frcs-quote blockquote{margin:0 0 14px;font-size:1.04rem;line-height:1.6;color:var(--frcs-ink,#1a2435);font-style:italic;border:0;padding:0}
.frcs-quote blockquote p{margin:0 0 8px}
.frcs-stars{color:var(--frcs-gold,#b8924a);font-size:1.05rem;margin-bottom:10px;letter-spacing:2px}
.frcs-quote figcaption{font-weight:700;color:var(--frcs-navy,#0f2647)}
.frcs-quote-meta{font-weight:400;color:var(--frcs-muted,#5a6783)}

/* Archive */
.frcs-archive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:28px}
.frcs-archive-card{background:#fff;border:1px solid var(--frcs-line,#e2e7ee);border-radius:var(--frcs-radius,8px);overflow:hidden;display:flex;flex-direction:column}
.frcs-archive-thumb img{width:100%;height:200px;object-fit:cover;display:block}
.frcs-archive-body{padding:22px 24px;display:flex;flex-direction:column;gap:8px}
.frcs-archive-body h3{margin:0;font-size:1.25rem}
.frcs-archive-body h3 a{color:var(--frcs-navy,#0f2647);text-decoration:none}
.frcs-archive-stats{list-style:none;display:flex;gap:18px;margin:6px 0;padding:0}
.frcs-archive-stats strong{color:var(--frcs-navy,#0f2647);font-size:1.15rem}
.frcs-textlink{font-weight:600;color:var(--frcs-navy,#0f2647);text-decoration:none;margin-top:auto}
.frcs-textlink:hover{color:var(--frcs-gold,#b8924a)}

/* Gallery */
.frcs-album-grid{display:grid;gap:40px}
.frcs-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:14px}
.frcs-photo img{width:100%;height:140px;object-fit:cover;border-radius:6px;display:block}
.frcs-album-cover img{width:100%;max-height:340px;object-fit:cover;border-radius:var(--frcs-radius,8px)}

@media(max-width:640px){
	.frcs-form .frcs-grid-2{grid-template-columns:1fr}
	.frcs-stat-value{font-size:2.1rem}
}

/* ---------- Gallery lightbox ---------- */
.frcs-lightbox{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:rgba(8,18,32,.95);backdrop-filter:blur(4px)}
.frcs-lightbox[hidden]{display:none}
.frcs-lb__stage{margin:0;max-width:92vw;max-height:88vh;display:flex;flex-direction:column;align-items:center;gap:14px}
.frcs-lb__img{max-width:92vw;max-height:80vh;width:auto;height:auto;border-radius:6px;box-shadow:0 40px 90px -30px rgba(0,0,0,.8);background:#0f2647}
.frcs-lb__count{color:#aebfd6;font-size:.85rem;letter-spacing:.08em;font-family:var(--frcs-sans,Arial,sans-serif)}
.frcs-lb__close{position:absolute;top:18px;right:22px;width:46px;height:46px;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:28px;line-height:1;cursor:pointer;transition:background .2s}
.frcs-lb__close:hover{background:var(--frcs-gold,#b8924a)}
.frcs-lb__nav{position:absolute;top:50%;transform:translateY(-50%);width:54px;height:54px;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:30px;line-height:1;cursor:pointer;transition:background .2s}
.frcs-lb__nav:hover{background:var(--frcs-gold,#b8924a);color:#0b1c36}
.frcs-lb__prev{left:18px}
.frcs-lb__next{right:18px}
.frcs-lb--single .frcs-lb__nav,.frcs-lb--single .frcs-lb__count{display:none}
.frcs-lightbox :focus-visible{outline:2px solid var(--frcs-gold,#b8924a);outline-offset:3px}
@media(max-width:600px){
	.frcs-lb__nav{width:44px;height:44px;font-size:24px;background:rgba(255,255,255,.12)}
	.frcs-lb__prev{left:8px}.frcs-lb__next{right:8px}
	.frcs-lb__close{top:10px;right:10px}
	.frcs-lb__img{max-height:74vh}
}
