/* ============================================
   KALEIDO COURSES — Plugin Stylesheet
   Scoped with a kc- prefix so it never collides
   with the active theme's own CSS classes.
   Brand: Navy #101633 / Gold #fde964 / #bb7b0f
   ============================================ */

.kc-widget-wrap, .kc-hero, .kc-section {
	--kc-navy: #101633;
	--kc-navy-deep: #080838;
	--kc-gold: #fde964;
	--kc-gold-deep: #bb7b0f;
	--kc-ink: #111110;
	--kc-ink-soft: #5b5e6b;
	--kc-off-white: #efefef;
	--kc-line: #e4e4dc;
	font-family: 'Open Sans', sans-serif;
}

.kc-container{ max-width:1180px; margin:0 auto; padding:0 24px; }

.kc-eyebrow{
	font-weight:700; font-size:13px; letter-spacing:0.12em; text-transform:uppercase;
	color:var(--kc-gold-deep);
}

.kc-section-head{ max-width:640px; margin-bottom:34px; }
.kc-section-head h2{ font-size:clamp(26px,3.2vw,38px); color:var(--kc-navy); margin:8px 0 12px; line-height:1.2; }
.kc-section-head p{ color:var(--kc-ink-soft); font-size:15px; line-height:1.6; }

/* ---------- Location filter bar ---------- */
.kc-filter-bar{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:30px; }
.kc-filter-btn{
	background:none; border:1.5px solid var(--kc-line); padding:9px 20px; border-radius:20px;
	font-size:13.5px; font-weight:600; color:var(--kc-ink-soft); cursor:pointer; transition:all .2s;
	font-family:'Open Sans', sans-serif; text-decoration:none; display:inline-block;
}
.kc-filter-btn.is-active, .kc-filter-btn:hover{
	background:var(--kc-navy); border-color:var(--kc-navy); color:#fff;
}
.kc-course-card.kc-is-hidden{ display:none; }

.kc-location-badge{
	position:absolute; top:12px; left:12px; background:rgba(16,22,51,0.85); color:#fff;
	font-size:11px; font-weight:700; letter-spacing:0.03em; padding:5px 12px; border-radius:14px;
}

/* ---------- Course grid + card (shared by both widgets) ---------- */
.kc-course-grid{ display:grid; gap:24px; }
.kc-course-grid.kc-cols-2{ grid-template-columns:repeat(2,1fr); }
.kc-course-grid.kc-cols-3{ grid-template-columns:repeat(3,1fr); }
.kc-course-grid.kc-cols-4{ grid-template-columns:repeat(4,1fr); }

.kc-course-card{
	background:#fff; border:1px solid var(--kc-line);
	display:flex; flex-direction:column; transition:transform .25s, box-shadow .25s;
}
.kc-course-card:hover{ transform:translateY(-5px); box-shadow:0 18px 32px -18px rgba(16,22,51,0.28); }
.kc-course-thumb{ display:block; position:relative; aspect-ratio:16/10; overflow:hidden; }
.kc-course-thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.kc-course-card:hover .kc-course-thumb img{ transform:scale(1.06); }
.kc-course-body{ padding:20px 20px 24px; display:flex; flex-direction:column; flex:1; }
.kc-course-meta{
	font-size:11.5px; font-weight:700; letter-spacing:0.04em; text-transform:uppercase;
	color:var(--kc-gold-deep); margin-bottom:8px;
}
.kc-course-title{ font-size:19px; margin:0 0 8px; line-height:1.3; }
.kc-course-title a{ color:var(--kc-navy); text-decoration:none; }
.kc-course-excerpt{ font-size:13.5px; color:var(--kc-ink-soft); line-height:1.55; margin:0 0 16px; flex:1; }
.kc-course-link{
	font-size:13px; font-weight:700; color:var(--kc-navy); text-decoration:none;
	border-bottom:2px solid var(--kc-gold); padding-bottom:2px; align-self:flex-start;
}

.kc-view-all{ text-align:center; margin-top:36px; }
.kc-btn-outline, .kc-btn-primary{
	display:inline-block; padding:14px 26px; border-radius:3px; font-weight:700; font-size:14px;
	text-decoration:none; letter-spacing:0.02em; cursor:pointer;
}
.kc-btn-outline{ border:1.5px solid var(--kc-navy); color:var(--kc-navy); }
.kc-btn-outline:hover{ background:var(--kc-navy); color:#fff; }
.kc-btn-primary{ background:var(--kc-gold); color:var(--kc-navy); border:none; }
.kc-btn-primary:hover{ transform:translateY(-2px); box-shadow:0 10px 22px -10px rgba(253,233,100,0.55); }

/* ---------- Fallback hero / page sections ---------- */
.kc-hero{
	background:linear-gradient(180deg, rgba(8,8,56,0.9), rgba(16,22,51,0.95));
	color:#fff; padding:80px 0 60px;
}
.kc-hero h1{ font-size:clamp(32px,4.4vw,48px); margin:12px 0 16px; color:#fff; }
.kc-hero p{ font-size:16px; color:#C7CBDB; max-width:600px; }
.kc-breadcrumb{ font-size:13px; color:#AEB3C7; margin-bottom:14px; }
.kc-breadcrumb a{ color:#AEB3C7; }
.kc-meta-list{ display:flex; flex-wrap:wrap; gap:26px; margin-top:24px; }
.kc-meta-list div{ font-size:12.5px; color:#C7CBDB; }
.kc-meta-list strong{ display:block; color:#fff; font-size:15px; margin-top:4px; }

.kc-section{ padding:70px 0; }
.kc-section.kc-tint{ background:var(--kc-off-white); }
.kc-two-col{ display:grid; grid-template-columns:1fr 360px; gap:56px; align-items:start; }
.kc-block{ margin-bottom:52px; }
.kc-block h2{ font-size:26px; color:var(--kc-navy); margin:8px 0 18px; }
.kc-overview p{ color:var(--kc-ink-soft); font-size:15px; line-height:1.75; margin-bottom:14px; }

.kc-curriculum-list{ display:flex; flex-direction:column; gap:16px; }
.kc-curriculum-item{ border:1px solid var(--kc-line); padding:18px 22px; display:flex; gap:16px; }
.kc-mod-num{ font-weight:700; color:var(--kc-gold-deep); font-size:13px; flex-shrink:0; width:64px; }
.kc-curriculum-item h4{ font-size:15px; margin:0 0 6px; color:var(--kc-navy); }
.kc-curriculum-item p{ font-size:13.5px; color:var(--kc-ink-soft); line-height:1.5; margin:0; }

.kc-tools-row{ display:flex; flex-wrap:wrap; gap:10px; }
.kc-tool-pill{ background:var(--kc-off-white); border:1px solid var(--kc-line); padding:8px 16px; border-radius:18px; font-size:13px; font-weight:600; color:var(--kc-navy); }

.kc-outcomes-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.kc-outcomes-list li{ display:flex; gap:10px; font-size:14.5px; color:var(--kc-ink-soft); line-height:1.5; }
.kc-outcomes-list li::before{ content:'✓'; color:var(--kc-gold-deep); font-weight:700; flex-shrink:0; }

.kc-faq-list{ display:flex; flex-direction:column; }
.kc-faq-item{ border-bottom:1px solid var(--kc-line); }
.kc-faq-q{
	width:100%; text-align:left; background:none; border:none; cursor:pointer;
	padding:18px 0; display:flex; justify-content:space-between; align-items:center;
	font-size:15px; font-weight:600; color:var(--kc-navy); font-family:'Open Sans', sans-serif;
}
.kc-faq-icon{ font-size:19px; color:var(--kc-gold-deep); transition:transform .3s ease; margin-left:14px; }
.kc-faq-item.is-open .kc-faq-icon{ transform:rotate(45deg); }
.kc-faq-a{ max-height:0; overflow:hidden; transition:max-height .35s ease; font-size:14px; color:var(--kc-ink-soft); line-height:1.6; }
.kc-faq-a-inner{ padding-bottom:18px; }
.kc-faq-item.is-open .kc-faq-a{ max-height:300px; }

.kc-sticky-cta{ position:sticky; top:100px; }
.kc-cta-card{ background:#fff; border:1px solid var(--kc-line); padding:28px; }
.kc-cta-card h3{ font-size:18px; color:var(--kc-navy); margin:0 0 8px; }
.kc-cta-card p{ font-size:13.5px; color:var(--kc-ink-soft); margin:0 0 18px; line-height:1.5; }

@media (max-width:900px){
	.kc-course-grid.kc-cols-2, .kc-course-grid.kc-cols-3, .kc-course-grid.kc-cols-4{ grid-template-columns:1fr; }
	.kc-two-col{ grid-template-columns:1fr; }
	.kc-sticky-cta{ position:static; }
}

/* ---------- Tools & Equipment (name + description) ---------- */
.kc-tool-list{ display:flex; flex-direction:column; gap:16px; }
.kc-tool-item{ border-left:3px solid var(--kc-gold); padding:4px 0 4px 18px; }
.kc-tool-item h4{ font-size:15px; color:var(--kc-navy); margin:0 0 4px; }
.kc-tool-item p{ font-size:13.5px; color:var(--kc-ink-soft); line-height:1.55; margin:0; }

/* ---------- Career outcomes (prose) ---------- */
.kc-outcomes-copy p{ font-size:15px; color:var(--kc-ink-soft); line-height:1.75; margin:0 0 14px; }

/* ---------- Available at these campuses ---------- */
.kc-locations-row{ display:flex; flex-wrap:wrap; gap:10px; }
.kc-location-pill{
	background:var(--kc-off-white); border:1px solid var(--kc-line); padding:9px 18px;
	border-radius:20px; font-size:13.5px; font-weight:600; color:var(--kc-navy);
}

/* ---------- Reviews ---------- */
.kc-reviews-section{ margin-top:8px; }
.kc-review-summary{ display:flex; align-items:center; gap:20px; margin:18px 0 30px; }
.kc-review-avg{ font-size:44px; font-weight:700; color:var(--kc-navy); line-height:1; }
.kc-review-stars{ color:var(--kc-gold-deep); letter-spacing:2px; font-size:14px; }
.kc-review-stars-lg{ font-size:18px; }
.kc-review-count{ font-size:13px; color:var(--kc-ink-soft); margin-top:4px; }

.kc-review-list{ list-style:none; margin:0 0 40px; padding:0; display:flex; flex-direction:column; gap:22px; }
.kc-review-item{ border-bottom:1px solid var(--kc-line); padding-bottom:22px; }
.kc-review-head{ display:flex; align-items:center; gap:12px; margin-bottom:6px; }
.kc-review-head strong{ color:var(--kc-navy); font-size:14.5px; }
.kc-review-date{ font-size:12px; color:var(--kc-ink-soft); }
.kc-review-item p{ font-size:14px; color:var(--kc-ink); line-height:1.6; margin:6px 0 0; }

.kc-review-form{ background:var(--kc-off-white); border:1px solid var(--kc-line); padding:26px; }
.kc-review-form h3{ font-size:17px; color:var(--kc-navy); margin:0 0 16px; }
.kc-review-form .comment-form p{ margin:0 0 14px; }
.kc-review-form label{ display:block; font-size:12.5px; font-weight:600; color:var(--kc-ink-soft); margin-bottom:6px; }
.kc-review-form input[type="text"],
.kc-review-form input[type="email"],
.kc-review-form input[type="url"],
.kc-review-form textarea{
	width:100%; padding:12px 14px; border:1px solid var(--kc-line); font-family:'Open Sans', sans-serif; font-size:14px;
}
.kc-review-form textarea{ resize:vertical; }
.kc-review-form .form-submit input[type="submit"]{
	background:var(--kc-gold); color:var(--kc-navy); font-weight:700; border:none;
	padding:13px 26px; border-radius:3px; font-size:14px; cursor:pointer; font-family:'Open Sans', sans-serif;
}

/* Star rating input — pure CSS, right-to-left radios so hover/checked fills correctly left-to-right */
.kc-star-input{ display:inline-flex; flex-direction:row-reverse; gap:4px; font-size:26px; }
.kc-star-input input{ display:none; }
.kc-star-input label{
	color:#d8d9cd; cursor:pointer; transition:color .15s ease; margin:0 !important; font-weight:400 !important;
}
.kc-star-input input:checked ~ label,
.kc-star-input label:hover,
.kc-star-input label:hover ~ label{ color:var(--kc-gold-deep); }
.comment-form-rating{ margin-bottom:18px; }
.comment-form-rating > label{ display:block; margin-bottom:8px; }

/* ---------- Mentor grid + card ---------- */
.kc-mentor-grid{ display:grid; gap:24px; }
.kc-mentor-grid.kc-cols-2{ grid-template-columns:repeat(2,1fr); }
.kc-mentor-grid.kc-cols-3{ grid-template-columns:repeat(3,1fr); }
.kc-mentor-grid.kc-cols-4{ grid-template-columns:repeat(4,1fr); }

.kc-mentor-card{ background:#fff; border:1px solid var(--kc-line); transition:transform .25s, box-shadow .25s; }
.kc-mentor-card:hover{ transform:translateY(-5px); box-shadow:0 18px 32px -18px rgba(16,22,51,0.28); }
.kc-mentor-photo{ aspect-ratio:1/1; overflow:hidden; }
.kc-mentor-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.kc-mentor-body{ padding:20px 20px 24px; }
.kc-mentor-name{ font-size:18px; color:var(--kc-navy); margin:0 0 4px; }
.kc-mentor-field{ font-size:12.5px; font-weight:700; color:var(--kc-gold-deep); text-transform:uppercase; letter-spacing:0.03em; margin-bottom:10px; }
.kc-mentor-bio{ font-size:13.5px; color:var(--kc-ink-soft); line-height:1.55; margin:0 0 14px; }
.kc-mentor-contact{ display:flex; gap:12px; }
.kc-mentor-contact a{
	width:34px; height:34px; border-radius:50%; background:var(--kc-off-white); display:flex;
	align-items:center; justify-content:center; text-decoration:none; font-size:15px; transition:background .2s;
}
.kc-mentor-contact a:hover{ background:var(--kc-gold); }

/* ---------- Location grid + card ("Browse by Campus") ---------- */
.kc-location-grid{ display:grid; gap:20px; }
.kc-location-grid.kc-cols-2{ grid-template-columns:repeat(2,1fr); }
.kc-location-grid.kc-cols-3{ grid-template-columns:repeat(3,1fr); }
.kc-location-grid.kc-cols-4{ grid-template-columns:repeat(4,1fr); }

.kc-location-card{
	position:relative; display:block; aspect-ratio:4/3; overflow:hidden; border-radius:4px;
	text-decoration:none;
}
.kc-location-photo{ position:absolute; inset:0; }
.kc-location-photo img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.kc-location-card:hover .kc-location-photo img{ transform:scale(1.08); }
.kc-location-card::before{
	content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 40%, rgba(8,8,56,0.85) 100%); z-index:1;
}
.kc-location-overlay{ position:absolute; left:0; right:0; bottom:0; padding:20px; z-index:2; }
.kc-location-title{ font-size:20px; font-weight:700; color:#fff; margin-bottom:4px; }
.kc-location-count{ font-size:12.5px; color:#e8cf8e; font-weight:600; }

@media (max-width:900px){
	.kc-mentor-grid.kc-cols-2, .kc-mentor-grid.kc-cols-3, .kc-mentor-grid.kc-cols-4,
	.kc-location-grid.kc-cols-2, .kc-location-grid.kc-cols-3, .kc-location-grid.kc-cols-4{ grid-template-columns:1fr; }
}
