/* ==========================================================================
   Program pages — the design of the 100 Hour YTT page, shared by every
   program page (inc/program-extras.php): hero overlay, price-box accent,
   card lift, and the sections in template-parts/programs/ (who it's for,
   teachers, student reviews, gallery, FAQ accordion, "next program" card).
   Every rule is scoped to .sty-program-page (the program pages' body
   class), so it wins over each page's own stylesheet and never touches
   any other page. Values are the same as the 100 Hour YTT page's.
   ========================================================================== */

/* Hero photo with a gradient overlay, so hero text stays legible. */
.sty-program-page .hero--page {
	background-image: linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,.15)), var(--hero-bg);
}
.sty-program-page .price-box { border-top: 4px solid var(--color-secondary); }

/* Subtle lift on the benefit / why-choose-us icon cards. */
.sty-program-page .icon-card { transition: transform .25s ease, box-shadow .25s ease; }
.sty-program-page .icon-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }

/* ---- Who This Program Is For ---- */
.sty-program-page .audience-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 20px; }
.sty-program-page .audience-item {
	display: flex; align-items: flex-start; gap: 12px;
	background: var(--color-surface); border: 1px solid var(--color-border);
	border-radius: var(--radius-md); padding: 16px 20px;
}
.sty-program-page .audience-item svg { width: 22px; height: 22px; flex-shrink: 0; color: var(--color-secondary); margin-top: 2px; }
.sty-program-page .audience-item strong { display: block; font-family: var(--font-heading); font-size: 0.98rem; color: var(--color-primary-dark); margin-bottom: 2px; }
.sty-program-page .audience-item span { font-size: 0.85rem; color: var(--color-text-light); }

/* ---- Your Teachers ---- */
.sty-program-page .instructor-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.sty-program-page .instructor-card { text-align: center; }
.sty-program-page .instructor-card img {
	width: 140px; height: 140px; border-radius: 50%; object-fit: cover;
	margin: 0 auto 16px; box-shadow: var(--shadow-md); border: 3px solid var(--color-surface);
}
.sty-program-page .instructor-card h3 { font-family: var(--font-heading); font-size: 1.1rem; color: var(--color-primary-dark); margin-bottom: 2px; }
.sty-program-page .instructor-card .instructor-role { font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--color-secondary-dark); margin-bottom: 10px; }
.sty-program-page .instructor-card p { font-size: 0.9rem; color: var(--color-text-light); line-height: 1.55; }

/* ---- What Our Students Say ---- */
.sty-program-page .testimonial-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.sty-program-page .testimonial-card {
	background: var(--color-surface); border: 1px solid var(--color-border);
	border-radius: var(--radius-lg); padding: 26px; box-shadow: var(--shadow-sm);
	display: flex; flex-direction: column; gap: 14px;
}
.sty-program-page .testimonial-stars { color: var(--color-secondary); font-size: 0.95rem; letter-spacing: 2px; }
.sty-program-page .testimonial-quote { font-size: 0.92rem; line-height: 1.6; color: var(--color-text); flex-grow: 1; }
.sty-program-page .testimonial-author { display: flex; align-items: center; gap: 10px; }
.sty-program-page .testimonial-author img { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; }
.sty-program-page .testimonial-author strong { display: block; font-size: 0.88rem; color: var(--color-primary-dark); }
.sty-program-page .testimonial-author span { font-size: 0.78rem; color: var(--color-text-light); }
/* Real reviews run long: six lines, then "Read more" (program-extras.js). */
.sty-program-page [data-review-quote] {
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 6; overflow: hidden;
}
.sty-program-page [data-review-quote].is-expanded { display: block; overflow: visible; }
.sty-program-page .testimonial-more {
	align-self: flex-start; margin-top: -6px; padding: 0; border: 0; background: none; cursor: pointer;
	font: inherit; font-size: 0.82rem; font-weight: 600; color: var(--color-primary);
	text-decoration: underline; text-decoration-color: var(--color-secondary); text-underline-offset: 3px;
}
.sty-program-page .testimonial-more[hidden] { display: none; }
.sty-program-page .testimonial-more:hover { color: var(--color-secondary-dark); }
.sty-program-page .testimonial-initial {
	width: 42px; height: 42px; flex-shrink: 0; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	font-family: var(--font-heading); font-weight: 700; color: #f4d9a8;
	background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
}

/* ---- Gallery ---- */
.sty-program-page .gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.sty-program-page .gallery-grid img {
	width: 100%; height: 180px; object-fit: cover; border-radius: var(--radius-md);
	box-shadow: var(--shadow-sm); transition: transform .3s ease;
}
.sty-program-page .gallery-grid img:hover { transform: scale(1.03); }

/* ---- FAQ Accordion ---- */
.sty-program-page .faq-list { max-width: 780px; margin: 0 auto; }
.sty-program-page .faq-item { border-bottom: 1px solid var(--color-border); }
.sty-program-page .faq-question {
	width: 100%; text-align: left; background: none; border: none; cursor: pointer;
	padding: 18px 4px; display: flex; justify-content: space-between; align-items: center;
	font-family: var(--font-heading); font-size: 1rem; color: var(--color-primary-dark);
}
.sty-program-page .faq-question .faq-icon { transition: transform .25s ease; flex-shrink: 0; margin-left: 16px; }
/* The "+" (turns into "×" when open) — drawn here because the theme has no
   plus icon, which left the 100 Hour YTT page's FAQ without one. */
.sty-program-page .faq-question .faq-icon:empty { position: relative; width: 22px; height: 22px; }
.sty-program-page .faq-question .faq-icon:empty::before,
.sty-program-page .faq-question .faq-icon:empty::after {
	content: ''; position: absolute; top: 50%; left: 50%;
	width: 14px; height: 2px; margin: -1px 0 0 -7px; border-radius: 2px;
	background: var(--color-secondary);
}
.sty-program-page .faq-question .faq-icon:empty::after { transform: rotate(90deg); }
.sty-program-page .faq-item.is-open .faq-question .faq-icon { transform: rotate(45deg); }
.sty-program-page .faq-answer {
	max-height: 0; overflow: hidden; transition: max-height .3s ease;
	font-size: 0.92rem; color: var(--color-text-light); line-height: 1.6;
}
.sty-program-page .faq-item.is-open .faq-answer { max-height: 600px; padding-bottom: 18px; }
.sty-program-page .faq-answer p { margin: 0 0 8px; }
.sty-program-page .faq-answer ul { margin: 0 0 8px; padding-left: 20px; list-style: disc; }
.sty-program-page .faq-answer li { margin-bottom: 2px; }
.sty-program-page .faq-answer a {
	color: var(--color-primary); font-weight: 600;
	text-decoration: underline; text-decoration-color: var(--color-secondary); text-underline-offset: 3px;
}
.sty-program-page .faq-answer a:hover { color: var(--color-secondary-dark); }

/* ---- "Ready for more?" card ---- */
.sty-program-page .crosssell-card {
	display: flex; align-items: center; gap: 24px; background: var(--color-surface);
	border: 1px solid var(--color-border); border-radius: var(--radius-lg);
	padding: 24px 28px; box-shadow: var(--shadow-sm); max-width: 640px; margin: 0 auto;
}
.sty-program-page .crosssell-card img { width: 90px; height: 90px; border-radius: var(--radius-md); object-fit: cover; flex-shrink: 0; }
.sty-program-page .crosssell-card h3 { font-family: var(--font-heading); font-size: 1.05rem; margin-bottom: 4px; }
.sty-program-page .crosssell-card p { font-size: 0.85rem; color: var(--color-text-light); margin-bottom: 10px; }

/* ---- Responsive ---- */
@media (max-width: 900px) {
	.sty-program-page .audience-grid,
	.sty-program-page .instructor-grid,
	.sty-program-page .testimonial-grid { grid-template-columns: 1fr; }
	.sty-program-page .gallery-grid { grid-template-columns: repeat(2, 1fr); }
	.sty-program-page .crosssell-card { flex-direction: column; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
	.sty-program-page .icon-card,
	.sty-program-page .gallery-grid img,
	.sty-program-page .faq-question .faq-icon,
	.sty-program-page .faq-answer { transition: none; }
	.sty-program-page .icon-card:hover,
	.sty-program-page .gallery-grid img:hover { transform: none; }
}
