/* ==========================================================================
   subpage.css, shared scaffolding for interior pages (About, Preschool):
   page banner, bio split, quote bar, location map, daily-schedule list, prose.
   ========================================================================== */

/* ---------- Page banner ---------- */
.tt-pagehero{position:relative; background:var(--tt-sand); overflow:hidden; padding:clamp(44px,6vw,76px) 0;}
.tt-pagehero__inner{position:relative; z-index:2; max-width:var(--tt-maxw); margin:0 auto; padding-inline:var(--tt-gutter);}
.tt-pagehero__crumb{display:flex; align-items:center; gap:.5rem; font-weight:700; font-size:.84rem; color:var(--tt-stone); margin-bottom:1rem;}
.tt-pagehero__crumb a{color:var(--tt-blue-dk); text-decoration:none;}
.tt-pagehero__crumb a:hover{text-decoration:underline;}
.tt-pagehero__crumb span{opacity:.45;}
.tt-pagehero h1{font-size:clamp(2.1rem,4.6vw,3.1rem); color:var(--tt-navy); margin-bottom:.7rem;}
.tt-pagehero h1 em{color:var(--tt-purple); font-style:normal;}
.tt-pagehero__lede{font-size:1.12rem; color:var(--tt-stone); max-width:58ch;}
.tt-pagehero::before{content:''; position:absolute; top:-70px; right:-50px; width:230px; height:230px; border-radius:50%; background:var(--tt-yellow); opacity:.34;}
.tt-pagehero::after{content:''; position:absolute; bottom:-64px; right:150px; width:130px; height:130px; border-radius:50%; background:var(--tt-pink); opacity:.15;}

/* ---------- Bio split (About) ---------- */
.tt-bio{
  display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(28px,5vw,64px); align-items:center;
  max-width:var(--tt-maxw); margin:0 auto; padding:var(--tt-section-y) var(--tt-gutter);
}
.tt-bio__media{position:relative;}
.tt-bio__media img{
  width:100%; aspect-ratio:4/4.3; object-fit:cover; object-position:center 40%;
  border-radius:var(--tt-radius); box-shadow:0 24px 50px rgba(31,59,82,.18);
}
.tt-bio__media::before{content:''; position:absolute; top:-18px; left:-18px; width:130px; height:130px; background:var(--tt-blue); opacity:.5; border-radius:50%; z-index:-1;}
.tt-bio__badge{
  position:absolute; bottom:20px; left:-16px; display:flex; align-items:center; gap:.7rem;
  background:#fff; border-radius:16px; padding:.7rem 1.1rem; box-shadow:0 14px 30px rgba(31,59,82,.2);
}
.tt-bio__badge-star{color:var(--tt-yellow); font-size:1.1rem; letter-spacing:1px;}
.tt-bio__badge b{display:block; font-family:var(--tt-display); color:var(--tt-navy); font-size:1.05rem; line-height:1;}
.tt-bio__badge span span{font-size:.78rem; color:var(--tt-stone); font-weight:700;}
.tt-bio__body h2{font-size:clamp(1.7rem,3.4vw,2.4rem); color:var(--tt-navy); margin-bottom:1.1rem;}
.tt-bio__body h2 em{color:var(--tt-purple); font-style:normal;}
.tt-bio__body p{font-size:1.06rem; color:var(--tt-stone); margin-bottom:1rem;}
.tt-bio__sign{margin-top:1.4rem; font-family:var(--tt-display); font-weight:700; color:var(--tt-navy); font-size:1.15rem;}
.tt-bio__sign span{display:block; font-family:var(--tt-ui); font-weight:700; font-size:.82rem; letter-spacing:.04em; color:var(--tt-pink); text-transform:uppercase; margin-top:.15rem;}

/* ---------- Quote bar ---------- */
.tt-quotebar{position:relative; text-align:center; color:#fff; background:linear-gradient(135deg,var(--tt-navy),#2B6E9C); padding:clamp(44px,7vw,76px) var(--tt-gutter); overflow:hidden;}
.tt-quotebar__mark{font-family:var(--tt-display); font-weight:800; color:var(--tt-yellow); font-size:4rem; line-height:.4; display:block; margin-bottom:.4rem;}
.tt-quotebar p{font-family:var(--tt-display); font-weight:600; font-size:clamp(1.5rem,3.2vw,2.2rem); line-height:1.3; max-width:22ch; margin:0 auto; color:#fff;}
.tt-quotebar cite{display:block; margin-top:1.2rem; font-family:var(--tt-ui); font-style:normal; font-weight:700; font-size:.9rem; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.72);}

/* ---------- Location: map + info (About) ---------- */
.tt-locate{
  display:grid; grid-template-columns:1.35fr .65fr; gap:2rem; align-items:stretch;
  max-width:var(--tt-maxw); margin:0 auto; padding:0 var(--tt-gutter) var(--tt-section-y);
}
.tt-locate > *{min-width:0;}
.tt-map{display:flex; flex-direction:column; background:#fff; border:1px solid var(--tt-line); border-radius:var(--tt-radius); overflow:hidden; box-shadow:0 16px 40px rgba(31,59,82,.1);}
.tt-map__frame{position:relative; flex:1 1 auto; min-height:300px; background:var(--tt-sand);}
.tt-map__frame iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}
.tt-map__bar{display:flex; flex-wrap:wrap; gap:.8rem 1.4rem; align-items:center; justify-content:space-between; padding:1.1rem 1.4rem;}
.tt-map__addr{display:flex; align-items:flex-start; gap:.55rem; font-weight:700; color:var(--tt-navy); font-size:.98rem;}
.tt-map__addr small{display:block; font-weight:600; color:var(--tt-stone); font-size:.8rem; margin-top:.15rem;}

/* ---------- Prose intro (Preschool) ---------- */
.tt-prose{max-width:760px; margin:0 auto; padding-inline:var(--tt-gutter); text-align:center;}
.tt-prose p{font-size:1.12rem; color:var(--tt-stone); margin-bottom:1rem;}

/* ---------- Split intro: text + classroom photo (Preschool) ---------- */
.tt-prek-intro{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,60px); align-items:center;
  max-width:var(--tt-maxw); margin:0 auto; padding-inline:var(--tt-gutter);
}
.tt-prek-intro__body h2{font-size:clamp(1.7rem,3.4vw,2.3rem); color:var(--tt-navy); margin-bottom:1.1rem;}
.tt-prek-intro__body h2 em{color:var(--tt-purple); font-style:normal;}
.tt-prek-intro__body p{font-size:1.06rem; color:var(--tt-stone); margin-bottom:1rem;}
.tt-prek-intro__media{position:relative;}
.tt-prek-intro__media img{
  width:100%; aspect-ratio:4/3.5; object-fit:cover; object-position:center 46%;
  border-radius:var(--tt-radius); box-shadow:0 24px 50px rgba(31,59,82,.18);
}
.tt-prek-intro__media::before{content:''; position:absolute; bottom:-18px; right:-18px; width:130px; height:130px; background:var(--tt-green); opacity:.5; border-radius:50%; z-index:-1;}

/* ---------- Focus areas (Preschool) ---------- */
.tt-focus{display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; max-width:920px; margin:2.6rem auto 0; padding-inline:var(--tt-gutter);}
.tt-focus__item{background:#fff; border:1px solid var(--tt-line); border-radius:var(--tt-radius); padding:1.4rem 1.1rem; text-align:center; box-shadow:0 10px 26px rgba(31,59,82,.07);}
.tt-focus__icon{width:52px; height:52px; margin:0 auto .8rem; border-radius:50%; display:grid; place-items:center; font-size:1.5rem; background:var(--tt-sand);}
.tt-focus__item:nth-child(1) .tt-focus__icon{background:#e7f1f8;}
.tt-focus__item:nth-child(2) .tt-focus__icon{background:#fdeccb;}
.tt-focus__item:nth-child(3) .tt-focus__icon{background:#f3e8f2;}
.tt-focus__item:nth-child(4) .tt-focus__icon{background:#e6f1e5;}
.tt-focus__item h3{font-size:1.02rem; color:var(--tt-navy); margin-bottom:.3rem;}
.tt-focus__item p{font-size:.86rem; color:var(--tt-stone);}

/* ---------- Daily schedule (Preschool) ---------- */
.tt-sched{max-width:860px; margin:0 auto; padding-inline:var(--tt-gutter);}
.tt-sched__list{background:#fff; border:1px solid var(--tt-line); border-radius:var(--tt-radius); overflow:hidden; box-shadow:0 16px 40px rgba(31,59,82,.09);}
.tt-sched__row{display:grid; grid-template-columns:158px 1fr; gap:1rem; align-items:center; padding:.85rem 1.5rem; border-bottom:1px solid var(--tt-line);}
.tt-sched__row:last-child{border-bottom:0;}
.tt-sched__row:nth-child(even){background:var(--tt-cream);}
.tt-sched__time{font-family:var(--tt-display); font-weight:700; color:var(--tt-blue-dk); font-size:.98rem; white-space:nowrap;}
.tt-sched__time i{font-style:normal; font-weight:600; color:var(--tt-stone); font-size:.8em;}
.tt-sched__act{font-weight:700; color:var(--tt-navy); font-size:1rem;}
.tt-sched__note{max-width:860px; margin:1.3rem auto 0; padding-inline:var(--tt-gutter); text-align:center; font-size:.9rem; color:var(--tt-stone);}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .tt-locate{grid-template-columns:1fr;}
  .tt-focus{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:820px){
  .tt-bio{grid-template-columns:1fr; gap:2.5rem;}
  .tt-bio__media{max-width:440px;}
  .tt-bio__media::before{display:none;}
  .tt-prek-intro{grid-template-columns:1fr; gap:2.4rem; max-width:560px;}
  .tt-prek-intro__media::before{display:none;}
}
@media (max-width:560px){
  .tt-focus{grid-template-columns:1fr; max-width:360px;}
  .tt-sched__row{grid-template-columns:1fr; gap:.35rem; padding:.9rem 1.2rem;}
}
