/* V21 additions on the preserved V20 baseline. */
/* Change the parents' actual quotations, not the section heading. */
.review-card p { font-family: "Forum", Georgia, serif; font-weight: 400; }

.v15-actions {
  width: min(100%, 470px);
  display: grid;
  gap: 14px;
}
.v15-contact {
  min-height: 68px;
  padding: 8px 20px 8px 10px;
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 14px;
  align-items: center;
  border: 1px solid rgba(73,55,71,.16);
  border-radius: 999px;
  background: rgba(255,253,249,.92);
  color: var(--ink);
  text-decoration: none;
  box-shadow: 0 12px 27px rgba(73,55,71,.1);
  transition: transform .25s, box-shadow .25s, background .25s;
}
.v15-contact:hover, .v15-contact:focus-visible {
  transform: translateY(-3px);
  background: #fff;
  box-shadow: 0 17px 32px rgba(73,55,71,.15);
}
.v15-contact-icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #3e3239;
  font-size: 1.28rem;
  transform: rotate(-8deg);
  transition: transform .3s;
}
.v15-meet .v15-contact-icon { background: #d9c4da; }
.v15-call .v15-contact-icon { background: #edc77f; }
.v15-contact-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.v15-contact:hover .v15-contact-icon, .v15-contact:focus-visible .v15-contact-icon { transform: rotate(8deg) scale(1.08); }
.v15-contact > span:last-child { min-width: 0; display: grid; line-height: 1; text-align: left; }
.v15-contact small { margin-bottom: 7px; color: var(--plum); font: 700 .72rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; }
.v15-contact strong { font: 1.22rem/1.05 var(--serif); letter-spacing: .015em; }

.v6-social-links { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.v6-social-card {
  min-height: 152px;
  padding: 24px;
  display: grid;
  grid-template-columns: 62px 1fr auto;
  gap: 16px;
  align-items: center;
  border: 1px solid rgba(57,43,55,.16);
  border-radius: 20px;
  color: var(--ink);
  text-decoration: none;
  transition: transform .35s ease, box-shadow .35s ease;
}
.v6-social-card:hover, .v6-social-card:focus-visible {
  transform: translateY(-6px) rotate(-.35deg);
}
.v6-social-instagram:hover, .v6-social-instagram:focus-visible {
  border-color: rgba(204,76,144,.3);
  background: linear-gradient(145deg,#f9dccb 0%,#f1cadb 48%,#dac9ec 100%);
  box-shadow: 0 20px 38px rgba(180,69,135,.2);
}
.v6-social-facebook:hover, .v6-social-facebook:focus-visible {
  border-color: rgba(53,127,214,.28);
  background: linear-gradient(145deg,#e3f0ff,#d6e9ff);
  box-shadow: 0 20px 38px rgba(45,112,192,.2);
}
.v6-social-instagram:active {
  border-color: rgba(190,58,128,.38);
  background: linear-gradient(145deg,#f7cfb9 0%,#ebbad1 48%,#ceb9e6 100%);
  transform: translateY(-2px) scale(.995);
}
.v6-social-facebook:active {
  border-color: rgba(36,112,202,.38);
  background: linear-gradient(145deg,#d8ebff,#c8e1ff);
  transform: translateY(-2px) scale(.995);
}
.v6-social-card span { min-width: 0; display: grid; }
.v6-social-card small { margin-bottom: 5px; font-size: .67rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.v6-social-card strong { font: 1.02rem/1.25 var(--sans); overflow-wrap: normal; word-break: normal; }
.v6-social-instagram { background: linear-gradient(145deg,#f5dfcf,#e4c8dd); }
.v6-social-facebook { background: #f7f0e7; }
.v6-social-logo {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  box-shadow: 0 12px 24px rgba(52,37,49,.16);
  transition: transform .35s cubic-bezier(.2,.8,.2,1);
}
.v6-social-logo svg { width: 34px; height: 34px; fill: none; stroke: #fff; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.v6-instagram-logo { background: radial-gradient(circle at 30% 100%,#ffd36d 0 18%,#fa7b3f 38%,#d83791 62%,#7353c7 100%); }
.v6-facebook-logo { background: #1877f2; }
.v6-facebook-logo svg { fill: #fff; }
.v6-social-card:hover .v6-social-logo, .v6-social-card:focus-visible .v6-social-logo { transform: rotate(-8deg) scale(1.1); }
.v6-social-card > b { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.55); font-size: 1.25rem; transition: transform .3s, background .3s; }
.v6-social-card > b svg { width:20px; height:20px; fill:none; stroke:#55434f; stroke-width:1.55; stroke-linecap:round; stroke-linejoin:round; }
.v6-social-card:hover > b, .v6-social-card:focus-visible > b { transform: translate(3px,-3px); background: #fff; }

/* V10's retained clip-path clips V6 hover movement and turns soft shadows square. */
.v6-social-links.reveal,
.hero-copy.reveal { clip-path: none; filter: none; }

/* A closed chat panel still sizes its fixed grid. Empty space must not catch clicks. */
.live-chat { pointer-events: none; }
.live-chat .chat-panel { pointer-events: none; }
.live-chat .chat-launcher,
.live-chat.is-open .chat-panel { pointer-events: auto; }

/* A compact trust pair: the rating shifts inward and Ofsted sits alongside it. */
.review-trust {
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  gap: 14px;
}
.review-trust .review-score { min-width: 245px; }
.review-ofsted {
  width: 112px;
  min-height: 104px;
  padding: 9px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(111,82,107,.13);
  border-radius: 20px;
  background: linear-gradient(145deg,#fff,#f8f0ea);
  box-shadow: 0 14px 30px rgba(73,55,71,.08);
}
.review-ofsted img { width: 82px; height: 73px; object-fit: contain; }

/* Remove only the four bottom captions; door artwork and behaviour stay intact. */
.day-scenes .scene-action { display: none; }

@media (max-width: 760px) {
  .v15-actions { width: 100%; }
  .v15-contact { width: 100%; }
  .v6-social-links { grid-template-columns: 1fr; }
  .v6-social-card { grid-template-columns: 54px 1fr auto; min-height: 118px; padding: 19px; }
  .v6-social-logo { width: 50px; height: 50px; }
  .v6-social-logo svg { width: 29px; height: 29px; }
  .v6-social-card strong { font-size: .88rem; }
  .review-trust { width: 100%; justify-content: flex-start; flex-wrap: wrap; }
  .review-trust .review-score { width: min(280px,100%); min-width: 0; }
  .review-ofsted { width: 104px; min-height: 96px; }
}
@media (prefers-reduced-motion: reduce) {
  .v15-contact, .v15-contact-icon, .v6-social-card, .v6-social-logo, .v6-social-card > b { transition: none; }
}

/* Keep the existing options panel attached to the selected map marker. */
.local-map { position: relative; }
.map-actions { right: auto; bottom: auto; }
.map-actions::after {
  content: "";
  position: absolute;
  left: var(--pointer-left, 50%);
  bottom: -9px;
  width: 16px;
  height: 16px;
  background: #fffdf7;
  border-right: 1px solid rgba(71,55,69,.18);
  border-bottom: 1px solid rgba(71,55,69,.18);
  transform: translateX(-50%) rotate(45deg);
}
.map-pin.is-open small { opacity: 0; visibility: hidden; }
.day-scenes .scene .scene-gate em small {
  width: fit-content;
  margin: 9px auto 0;
  padding: 4px 8px 4px 7px;
  display: flex;
  align-items: center;
  gap: 6px;
  border: 1px solid rgba(255,244,220,.22);
  border-radius: 999px;
  background: rgba(255,255,255,.055);
  color: rgba(255,244,220,.78);
  font: 600 .54rem/1 var(--sans);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.day-scenes .scene .scene-gate em small::before {
  content: "";
  width: 5px;
  height: 5px;
  flex: 0 0 auto;
  border: 1px solid currentColor;
  border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(255,244,220,.08);
}

/* V35 — keep the two trust marks together on small screens */
@media (max-width:760px) {
  .review-trust { width:100%; display:grid; grid-template-columns:minmax(0,1fr) 92px; gap:8px; align-items:stretch; }
  .review-trust .review-score { width:100%; min-width:0; padding:13px 8px 12px 72px; border-radius:17px; }
  .review-score::before { left:9px; width:54px; height:54px; }
  .review-score::after { left:13px; width:46px; height:46px; font-size:1.3rem; }
  .review-score .rating-kicker { font-size:.49rem; letter-spacing:.06em; white-space:normal; }
  .review-score .rating-stars { font-size:.78rem; letter-spacing:.06em; }
  .review-score small { font-size:.54rem; white-space:normal; }
  .review-score b { margin-top:3px; font-size:.48rem; }
  .review-ofsted { width:92px; min-height:86px; padding:7px; border-radius:17px; }
  .review-ofsted img { width:72px; height:64px; }
}
