/* REVIEW CARDS: three desktop cards, one mobile card, horizontal carousel */
.review-section { padding-top: 50px; }
.review-track {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 15px 2px 25px;
  scrollbar-width: thin;
  scrollbar-color: #ad627b #faedf2;
}
.review-card {
  flex: 0 0 calc((100% - 40px) / 3);
  scroll-snap-align: start;
  padding: 28px;
  border: 1px solid #ead6de;
  border-radius: 20px;
  background: #fffaf7;
  text-align: center;
}
.review-card img { width: 82px; height: 82px; border-radius: 50%; object-fit: cover; }
.review-card h3 { margin: 16px 0 5px; font-size: 21px; }
.review-card small { font-size: 10px; letter-spacing: .08em; color: #9b3859; }
.review-card p { margin: 20px 0 0; font-size: 16px; line-height: 1.8; }
.review-controls { display: flex; gap: 8px; }
.review-controls button {
  border: 1px solid #d7b5c2;
  border-radius: 8px;
  background: #fff;
  color: #712640;
  padding: 10px 14px;
  cursor: pointer;
}
.why-home { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 55px; }
.why-home img { width: 100%; height: 390px; object-fit: cover; border-radius: 20px; }
.contact-strip { display: flex; gap: 25px; flex-wrap: wrap; padding-bottom: 28px; color: #f6d8e1; }
.contact-strip a { overflow-wrap: anywhere; }
.top-social a { width: 28px; height: 28px; }
.top-social svg { width: 17px; height: 17px; }
.top-social a span { display: none; }
.card a { overflow-wrap: anywhere; }
@media (max-width: 900px) {
  .review-card { flex-basis: calc((100% - 20px) / 2); }
}
@media (max-width: 700px) {
  .review-card { flex-basis: 100%; }
  .review-controls { margin-top: 18px; }
  .why-home { grid-template-columns: 1fr; gap: 25px; }
  .why-home img { height: 270px; }
  .contact-strip { gap: 8px; flex-direction: column; font-size: 14px; }
}

.review-section .section-heading p { max-width: 650px; text-align: left; }

/* PARENT REVIEW RATING: gold stars, including a half-filled fifth star */
.parent-review-rating { display:flex; align-items:center; justify-content:center; gap:10px; margin:12px 0; }
.parent-review-stars { position:relative; display:inline-block; color:#e3d7dc; font:24px/1 Arial,sans-serif; letter-spacing:2px; white-space:nowrap; }
.parent-review-stars-fill { position:absolute; left:0; top:0; overflow:hidden; color:#b47716; }
.parent-review-rating b { font-size:14px; color:#6d2740; }

/* TEACHER WELLBEING: school image on left and maroon message on right */
.teacher-wellbeing-section { position:relative; margin:30px 0 90px; min-height:510px; border-radius:22px; overflow:hidden; background:#4b172c; display:grid; grid-template-columns:1.05fr 1fr; }
.teacher-wellbeing-image { width:100%; height:100%; min-height:510px; object-fit:cover; }
.teacher-wellbeing-content { margin:18px; padding:40px 35px; color:#fff; background:linear-gradient(130deg,#7c2946,#4f1b33); border:4px double #e9c7d2; border-radius:0 0 64px 0; }
.teacher-wellbeing-content .eyebrow { color:#efc988; }
.teacher-wellbeing-content h2 { font-size:clamp(30px,3.5vw,46px); margin:12px 0 20px; }
.teacher-wellbeing-content p { color:#f1e0e6; }
.teacher-wellbeing-points { list-style:none; padding:0; margin:24px 0; }
.teacher-wellbeing-points li { position:relative; padding-left:28px; margin-bottom:15px; line-height:1.7; font-size:16px; }
.teacher-wellbeing-points li::before { content:'✓'; position:absolute; left:0; color:#f1cb89; font-weight:800; }
.teacher-wellbeing-content .button { border-radius:35px 35px 35px 5px; }
@media(max-width:800px) {
  .teacher-wellbeing-section { grid-template-columns:1fr; }
  .teacher-wellbeing-image { height:280px; min-height:0; }
  .teacher-wellbeing-content { margin:14px; padding:28px 24px; }
}

/* HOME DESK MESSAGE CARDS
   Before Meet Our Leadership. Desktop: three columns. Mobile: stacked.
   Text and image paths: src/data/home-desk-messages.js */
.home-desk-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; }
.home-desk-card { display: flex; flex-direction: column; align-items: center; background: #343434; color: #fff; text-align: center; padding: 36px 26px 30px; border-top: 4px solid #7e2945; border-radius: 4px; }
.home-desk-card .home-desk-portrait { width: 170px; height: 170px; border-radius: 50%; object-fit: cover; object-position: center 25%; margin: 0 0 26px; border: 3px solid rgba(255,255,255,.2); }
.home-desk-card h3 { color: #fff; font-size: clamp(20px, 1.7vw, 25px); line-height: 1.3; text-transform: uppercase; margin: 0 0 10px; }
.home-desk-card .home-desk-name { color: #e8c890; font-size: 15px; margin: 0 0 20px; }
.home-desk-card blockquote { margin: 0 0 26px; padding: 0; }
.home-desk-card blockquote p { color: #ededed; font-size: 17px; line-height: 1.8; margin: 0; }
.home-desk-card .home-desk-read { margin-top: auto; color: #fff; font-size: 14px; font-weight: 700; text-decoration: none; border-bottom: 1px solid #e8c890; padding-bottom: 5px; }
.home-desk-read:hover { color: #e8c890; }
.home-desk-read:focus-visible { outline: 2px solid #e8c890; outline-offset: 6px; }
@media (max-width: 850px) {
 .home-desk-grid { grid-template-columns: 1fr; gap: 24px; }
 .home-desk-card { padding: 34px 24px; }
 .home-desk-card .home-desk-portrait { width: 180px; height: 180px; }
 .home-desk-card blockquote { max-width: 560px; }
}

/* LEADERSHIP QUALIFICATIONS — below names, separate from the role label. */
.leader-qualification { font-size: 14px; line-height: 1.6; margin: 6px 0 12px; font-weight: 500; }
.home-desk-card .home-desk-name { margin-bottom: 4px; }
.home-desk-card .home-desk-qualification { color: #e3d5c7; font-size: 13px; line-height: 1.6; margin: 0 0 20px; }
