.site-header {
  position: fixed; top: 0; left: 0; width: 100%; z-index: 1100;
  height: 88px; display: flex; align-items: center; gap: 2rem;
  padding: 0 var(--gutter); transition: background .45s var(--ease), height .45s var(--ease), border .45s var(--ease);
}
.site-header.is-scrolled {
  height: 68px; background: rgba(8,9,9,.72); backdrop-filter: blur(18px); border-bottom: 1px solid var(--line);
}
.brand { display:flex; align-items:center; gap:.75rem; flex: 0 0 auto; }
.brand-mark {
  display:grid; place-items:center; width:30px; height:30px; border:1px solid var(--line-strong);
  font-family:var(--display); font-weight:700; font-size:1.1rem; transform:skew(-6deg);
}
.brand-name { font-weight:700; letter-spacing:.1em; font-size:.85rem; }
.brand-name em { color:var(--accent-soft); font-style:normal; }
.desktop-nav { display:flex; align-items:center; gap:clamp(1rem,2vw,2rem); margin-inline:auto; }
.desktop-nav a { color:#c6c5c0; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; position:relative; }
.desktop-nav a::after {
  content:""; position:absolute; left:0; bottom:-7px; width:0; height:1px; background:var(--accent);
  transition:width .35s var(--ease);
}
.desktop-nav a:hover::after, .desktop-nav a.is-active::after { width:100%; }
.desktop-nav a.is-active { color:var(--text); }
.nav-cta {
  padding: .72rem .9rem .72rem 1rem;
  font-size: .68rem;
  letter-spacing: .09em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: .8rem;

  color: #fff;
  background: linear-gradient(
    135deg,
    #833ab4,
    #e1306c 55%,
    #f77737
  );

  border-radius: 6px;
  box-shadow: 0 4px 16px rgba(225, 48, 108, .15);
  transition: .35s var(--ease);
}
.nav-cta span { font-size:1rem; transition:transform .35s var(--ease); }
.nav-cta:hover { background:var(--text); color:var(--bg); border-color:var(--text); }
.nav-cta:hover span { transform:translate(3px,-3px); }
.menu-toggle { display:none; border:0; background:none; width:44px; height:44px; margin-left:auto; position:relative; cursor:pointer; }
.menu-toggle span { position:absolute; left:11px; width:22px; height:1px; background:var(--text); transition:.35s var(--ease); }
.menu-toggle span:first-child { top:18px; }
.menu-toggle span:last-child { top:25px; }
.menu-toggle.is-open span:first-child { top:22px; transform:rotate(45deg); }
.menu-toggle.is-open span:last-child { top:22px; transform:rotate(-45deg); }

.mobile-menu {
  position:fixed; inset:0; z-index:1050; background:rgba(8,9,9,.98);
  transform:translateY(-100%); transition:transform .65s var(--ease-out); visibility:hidden;
  overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch;
}
.mobile-menu.is-open { transform:translateY(0); visibility:visible; }
.mobile-menu__inner { min-height:100%; height:auto; padding:110px var(--gutter) 32px; display:flex; flex-direction:column; }
.mobile-menu__top { display:flex; justify-content:space-between; color:var(--muted); font-size:.65rem; letter-spacing:.15em; text-transform:uppercase; border-bottom:1px solid var(--line); padding-bottom:1rem; }
.mobile-menu nav { display:flex; flex-direction:column; margin:2rem 0 1.5rem; flex:0 0 auto; }
.mobile-menu nav a {
  display:flex; align-items:baseline; gap:1rem; font-family:var(--display); font-size:clamp(3rem,13vw,6rem); line-height:1.1;
  text-transform:uppercase; border-bottom:1px solid var(--line); padding:.15rem 0; transition:color .25s var(--ease);
}
.mobile-menu nav a span { font:500 .65rem var(--body); color:var(--muted-2); }
.mobile-menu nav a:hover { color:var(--accent-soft); }
.button {
  display:inline-flex; align-items:center; justify-content:center; gap:1rem; min-height:48px; padding:.8rem 1rem 0.8rem 1.2rem;
  border:1px solid var(--line-strong); text-transform:uppercase; letter-spacing:.08em; font-size:.68rem; font-weight:600;
  transition:background .35s var(--ease), color .35s var(--ease), border .35s var(--ease), transform .35s var(--ease);
}
.button span { font-size:1rem; transition:transform .35s var(--ease); }
.button--light { background:var(--text); color:var(--bg); border-color:var(--text); }
.button--light:hover { background:var(--accent); color:var(--bg); border-color:var(--accent); }
.button:hover span { transform:translate(4px,-4px); }
.text-link { display:inline-flex; gap:.8rem; align-items:center; color:#000000; text-transform:uppercase; font-size:.67rem; letter-spacing:.1em; }
.text-link span { color:var(--accent); transition:transform .3s var(--ease); }
.text-link:hover span { transform:translateY(4px); color:var(--text); }

.hero { min-height:100svh; position:relative; display:flex; align-items:flex-end; overflow:hidden; }
.hero__media, .hero__veil { position:absolute; inset:0; }
.hero__media img { height:100%; object-fit:cover; object-position:center 52%; filter:saturate(.72) contrast(1.05); transform:scale(1.04); animation:heroZoom 1.6s var(--ease-out) both; }
.hero__veil { background:linear-gradient(90deg,rgba(5,6,6,.82) 0%,rgba(5,6,6,.35) 55%,rgba(5,6,6,.22) 100%), linear-gradient(0deg,rgba(5,6,6,.9) 0%,transparent 55%); }
.hero__content { position:relative; z-index:2; width:var(--container); padding-bottom:clamp(5rem,9vw,9rem); }
.hero__content .eyebrow { margin-bottom:1.2rem; }
.display--hero { font-size:clamp(4.5rem,11vw,12.5rem); max-width:1100px; }
.hero__bottom { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-top:2rem; max-width:1150px; }
.hero__bottom > p { max-width:520px; color:#c8c7c1; font-size:clamp(.88rem,1.1vw,1rem); }
.hero__actions { display:flex; align-items:center; gap:1.5rem; flex:0 0 auto; }
.hero__meta { position:absolute; right:var(--gutter); bottom:clamp(2rem,4vw,4rem); z-index:2; display:flex; flex-direction:column; gap:.45rem; color:rgba(255,255,255,.45); font-size:.6rem; letter-spacing:.15em; text-transform:uppercase; }
.scroll-cue { position:absolute; left:50%; bottom:2rem; z-index:3; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:.6rem; color:rgba(255,255,255,.55); font-size:.58rem; letter-spacing:.2em; }
.scroll-cue i { width:1px; height:38px; background:rgba(255,255,255,.4); animation:scrollLine 1.8s infinite; }
@keyframes heroZoom { from{transform:scale(1.1);opacity:.6} to{transform:scale(1.04);opacity:1} }
@keyframes scrollLine { 0%,100%{transform:scaleY(.4);transform-origin:top} 50%{transform:scaleY(1);transform-origin:top} }

.about { border-top:1px solid var(--line); }
.about__grid { display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(3rem,8vw,10rem); }
.about__lead .display { font-size:clamp(4rem,8vw,9rem); }
.about__copy { padding-top:1rem; max-width:580px; }
.about__copy .lead { font-size:clamp(1.1rem,1.7vw,1.45rem); line-height:1.35; color:var(--text); margin-bottom:1.5rem; }
.about__copy > p:not(.lead) { color:var(--muted); max-width:500px; }
.about__stats { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; border-top:1px solid var(--line); margin-top:3rem; padding-top:1.2rem; }
.about__stats div { display:flex; flex-direction:column; gap:.3rem; }
.about__stats strong { font:700 2.2rem var(--display); }
.about__stats span { color:var(--muted); font-size:.65rem; text-transform:uppercase; letter-spacing:.12em; }
.about__visual { margin-top:clamp(1rem,1vw,1rem); }
.image-frame { position:relative; overflow:hidden; background:#111;}
.image-frame img {  width: 100%;
  height: clamp(240px, 28vw, 400px);
  object-fit: cover;
  filter: saturate(.75);
  transition: transform 1.2s var(--ease-out);}
.image-frame:hover img { transform:scale(1.035); }
.image-frame figcaption { position:absolute; bottom:1rem; left:1rem; color:rgba(255,255,255,.55); font-size:.58rem; letter-spacing:.15em; }

.students { background:#0b0c0c; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.student-rail {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: .25rem;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -ms-overflow-style: none;
}.student-rail::-webkit-scrollbar { display:none; }
.student-card { flex:0 0 clamp(260px,19vw,380px); }
.student-card__image { position:relative; overflow:hidden; background:#151515; }
.student-card__image img { aspect-ratio:4/5; object-fit:cover; filter:grayscale(.2) saturate(.8); transition:transform .9s var(--ease-out), filter .7s var(--ease); }
.student-card:hover .student-card__image img { transform:scale(1.045); filter:grayscale(0) saturate(.9); }
.student-card__image > span { position:absolute; top:1rem; left:1rem; font-size:.65rem; color:#fff; letter-spacing:.1em; }
.student-card__info { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; padding-top:1rem; border-top:1px solid var(--line); margin-top:.5rem; }
.student-card__info h3 { font:700 2rem var(--display); }
.student-card__info p { color:var(--muted); font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; text-align:right; }
.student-controls { display:flex; align-items:center; justify-content:flex-end; gap:.75rem; margin-top:1.25rem; color:var(--muted-2); font-size:.58rem; letter-spacing:.15em; }
.student-control { width:48px; height:48px; border:1px solid var(--line-strong); border-radius:50%; background:transparent; color:var(--text); display:grid; place-items:center; cursor:pointer; font-size:1.15rem; transition:background .35s var(--ease), border-color .35s var(--ease), color .35s var(--ease), transform .35s var(--ease); }
.student-control:hover:not(:disabled), .student-control:focus-visible:not(:disabled) { background:var(--warm-2); border-color:var(--accent); color:var(--accent-soft); transform:translateY(-2px); outline:none; }
.student-control:disabled { opacity:.3; cursor:not-allowed; }

.services { border-bottom:1px solid var(--line); }
.service-list { border-top:1px solid var(--line); }
.service-row {
  display:grid; grid-template-columns:80px minmax(0,1fr) 72px; align-items:center; gap:1.5rem;
  min-height:190px; padding:2.5rem 1rem; border-bottom:1px solid var(--line);
  position:relative; overflow:hidden; outline:none; transition:background .55s var(--ease), border-color .55s var(--ease);
}
.service-row::before { content:""; position:absolute; inset:0; background:var(--warm-2); opacity:0; transition:opacity .55s var(--ease); z-index:0; }
.service-row > * { position:relative; z-index:1; }
.service-row:hover::before, .service-row:focus-visible::before { opacity:1; }
.service-row:hover, .service-row:focus-visible { border-color:rgba(216,106,32,.35); }
.service-row__number { color:var(--muted-2); font-size:.72rem; letter-spacing:.1em; align-self:start; padding-top:.25rem; transition:color .4s var(--ease); }
.service-row:hover .service-row__number, .service-row:focus-visible .service-row__number { color:var(--accent-soft); }
.service-row__body h3 { font:700 clamp(2.7rem,5.2vw,6rem) var(--display); letter-spacing:-.035em; text-transform:uppercase; transition:transform .55s var(--ease-out), color .45s var(--ease); }
.service-row__body p { max-width:650px; margin-top:.65rem; color:var(--muted); font-size:clamp(.78rem,1vw,.94rem); line-height:1.55; transition:transform .55s var(--ease-out), color .45s var(--ease); }
.service-row:hover .service-row__body h3, .service-row:focus-visible .service-row__body h3 { transform:translateX(7px); }
.service-row:hover .service-row__body p, .service-row:focus-visible .service-row__body p { transform:translateX(7px); color:#bcbab3; }
.service-row__arrow {
  width:56px; height:56px; border:1px solid var(--line-strong); border-radius:50%; background:transparent; display:grid; place-items:center;
  cursor:pointer; transition:transform .45s var(--ease), border-color .45s var(--ease), background .45s var(--ease);
}
.service-row__arrow span { font-size:1.25rem; transition:transform .45s var(--ease); }
.service-row:hover .service-row__arrow, .service-row:focus-visible .service-row__arrow { border-color:var(--accent); transform:scale(1.06); }
.service-row:hover .service-row__arrow span, .service-row:focus-visible .service-row__arrow span { transform:translate(4px,-4px); }

.approach { background:#0a0b0b; }
.approach__layout { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(350px,.95fr); gap:clamp(3rem,7vw,8rem); align-items:start; }
.approach__visual { position:sticky; top:110px; height:min(72vh,760px); min-height:500px; overflow:hidden; background:#111; }
.approach-image { position:absolute; inset:0; opacity:0; transition:opacity .8s var(--ease); }
.approach-image.is-active { opacity:1; }
.approach-image img { height:100%; object-fit:cover; filter:saturate(.65); }
.approach__caption { position:absolute; left:1.2rem; right:1.2rem; bottom:1.1rem; display:flex; justify-content:space-between; color:rgba(255,255,255,.55); font-size:.58rem; letter-spacing:.16em; }
.approach__steps { border-top:1px solid var(--line); }
.approach-step { padding:2.1rem 0 2.4rem; border-bottom:1px solid var(--line); cursor:pointer; transition:padding .5s var(--ease); }
.approach-step__top { display:flex; align-items:center; gap:1rem; color:var(--muted-2); font-size:.65rem; }
.approach-step__top i { height:1px; width:0; background:var(--accent); transition:width .55s var(--ease); }
.approach-step h3 { font:700 clamp(2.7rem,4vw,5rem) var(--display); margin-top:1rem; transition:color .4s var(--ease); }
.approach-step p { max-width:480px; color:var(--muted); margin-top:.7rem; }
.approach-step.is-active { padding-left:1rem; }
.approach-step.is-active h3 { color:var(--accent-soft); }
.approach-step.is-active .approach-step__top i { width:80px; }

.awards { border-top:1px solid var(--line); }
.award-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem;}
.award-card { min-height:420px; border:1px solid var(--line); padding:1.2rem; display:flex; flex-direction:column; position:relative; overflow:hidden; background:#0c0d0d; transition:background .45s var(--ease), border-color .45s var(--ease); }
.award-card:hover { background:var(--surface-2); border-color:var(--line-strong); }
.award-card__top { display:flex; justify-content:space-between; color:var(--muted-2); font-size:.58rem; letter-spacing:.15em; }
.award-card__mark { font:800 clamp(5rem,9vw,9rem) var(--display); letter-spacing:-.06em; margin-top:auto; color:#ddd9d1; }
.award-card h3 { font:700 2rem var(--display); margin-top:.5rem; }
.award-card p { color:var(--muted); font-size:.75rem; max-width:300px; margin-top:.4rem; }
.award-card__line { width:45px; height:1px; background:var(--accent); margin-top:1.5rem; }
.award-card--image { padding:0; }
.award-card__image { position:absolute; inset:0; }
.award-card__image img { height:100%; object-fit:cover; filter:grayscale(.7) contrast(1.05); transition:transform 1s var(--ease-out), filter .7s var(--ease); }
.award-card--image:hover img { transform:scale(1.04); filter:grayscale(.1); }
.award-card__overlay { position:absolute; inset:auto 0 0; padding:1.2rem; display:flex; flex-direction:column; gap:.4rem; background:linear-gradient(transparent,rgba(0,0,0,.88)); }
.award-card__overlay span { color:rgba(255,255,255,.55); font-size:.58rem; letter-spacing:.15em; }
.award-card__overlay strong { font:700 2.1rem var(--display); }
.credentials-strip { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1rem; padding:1.2rem 0; border-bottom:1px solid var(--line); border-top:1px solid var(--line); color:var(--muted-2); font-size:.6rem; letter-spacing:.14em; }
.credentials-strip i { width:4px; height:4px; border-radius:50%; background:var(--accent); }

.contact { background:#0b0c0c; border-top:1px solid var(--line); }
.contact .section-head { margin-bottom:clamp(3rem,6vw,5rem); }
.contact .section-title { font-size:clamp(3.8rem,6.5vw,7.5rem); }
.contact__grid { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:clamp(2rem,5vw,5rem); align-items:start; }
.contact__visual { min-width:0; }
.contact__image { position:relative; overflow:hidden; background:#111; }
.contact__image img { width:100%; aspect-ratio:4/4.8; object-fit:cover; filter:grayscale(.28) saturate(.72); transition:transform 1s var(--ease-out), filter .7s var(--ease); }
.contact__image:hover img { transform:scale(1.035); filter:grayscale(.05) saturate(.9); }
.contact__image figcaption { position:absolute; left:1rem; bottom:1rem; color:rgba(255,255,255,.58); font-size:.56rem; letter-spacing:.16em; }
.contact__quick { border-top:1px solid var(--line); margin-top:1rem; }
.contact-action { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--line); color:var(--text); transition:padding .4s var(--ease), color .4s var(--ease); }
.contact-action:hover, .contact-action:focus-visible { padding-left:.6rem; color:var(--accent-soft); outline:none; }
.contact-action span { display:flex; flex-direction:column; gap:.25rem; }
.contact-action small { color:var(--muted-2); font-size:.55rem; letter-spacing:.15em; }
.contact-action strong { font-size:.86rem; font-weight:500; }
.contact-action b { color:var(--accent); font-size:1.1rem; font-weight:400; transition:transform .3s var(--ease); }
.contact-action:hover b { transform:translate(4px,-4px); }
.contact__placeholder { color:var(--muted-2); font-size:.6rem; line-height:1.5; margin-top:.9rem; }
.contact__placeholder strong { color:var(--muted); font-weight:500; }
.contact-form { border-top:1px solid var(--line); padding-top:1rem; }
.contact-form__heading { display:flex; align-items:flex-start; justify-content:space-between; gap:2rem; margin-bottom:2rem; }
.contact-form__heading > span { color:var(--accent-soft); font-size:.6rem; letter-spacing:.15em; }
.contact-form__heading p { max-width:270px; color:var(--muted); font-size:.72rem; line-height:1.5; text-align:right; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.contact-form label { display:block; margin-bottom:1rem; }
.contact-form label > span { display:block; color:var(--muted-2); font-size:.58rem; text-transform:uppercase; letter-spacing:.13em; margin-bottom:.55rem; }
.contact-form input, .contact-form textarea, .contact-form select {
  width:100%; border:0; border-bottom:1px solid var(--line-strong); outline:none; background:transparent; color:var(--text); padding:.8rem 0; border-radius:0;
  transition:border-color .3s var(--ease); resize:vertical;
}
.contact-form select { appearance:none; background-image:linear-gradient(45deg,transparent 50%,#777 50%),linear-gradient(135deg,#777 50%,transparent 50%); background-position:calc(100% - 8px) 55%,calc(100% - 3px) 55%; background-size:5px 5px; background-repeat:no-repeat; padding-right:30px; }
.contact-form input::placeholder, .contact-form textarea::placeholder { color:#575853; }
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus { border-color:var(--accent); }
.button--submit { margin-top:1rem; cursor:pointer; }
.form-status { min-height:1.5rem; margin-top:1rem; color:var(--accent-soft); font-size:.75rem; }

.site-footer { border-top:1px solid var(--line); padding:2rem 0 1.3rem; }
.footer-top { display:grid; grid-template-columns:1fr 1fr auto; align-items:center; gap:1rem; }
.brand--footer { width:max-content; }
.footer-top > p { color:var(--muted); font-size:.72rem; text-align:center; }
.footer-back { color:var(--muted); font-size:.6rem; letter-spacing:.13em; display:flex; gap:.8rem; align-items:center; }
.footer-back span { color:var(--accent); font-size:1rem; }
.footer-bottom { display:flex; justify-content:space-between; gap:1rem; color:var(--muted-2); font-size:.55rem; letter-spacing:.12em; border-top:1px solid var(--line); margin-top:2rem; padding-top:1rem; }

.service-modal { position:fixed; inset:0; z-index:1400; display:grid; place-items:center; padding:1rem; visibility:hidden; }
.service-modal.is-open { visibility:visible; }
.modal-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.78); backdrop-filter:blur(10px); opacity:0; transition:opacity .5s var(--ease); }
.modal-panel { position:relative; z-index:1; width:min(760px,100%); background:#121312; border:1px solid var(--line-strong); padding:clamp(2rem,5vw,4.5rem); transform:translateY(30px); opacity:0; transition:transform .6s var(--ease-out), opacity .5s var(--ease); }
.service-modal.is-open .modal-backdrop { opacity:1; }
.service-modal.is-open .modal-panel { opacity:1; transform:translateY(0); }
.modal-close { position:absolute; top:1rem; right:1rem; width:44px; height:44px; border:1px solid var(--line); background:transparent; cursor:pointer; font-size:1.5rem; }
.modal-number { display:block; color:var(--accent); font-size:.7rem; letter-spacing:.12em; margin-top:2rem; }
.modal-panel .display { font-size:clamp(3.5rem,7vw,7rem); margin:1rem 0 1.2rem; }
.modal-panel > p { color:var(--muted); max-width:560px; margin-bottom:2rem; }

.toast { position:fixed; left:50%; bottom:1.5rem; transform:translate(-50%,20px); opacity:0; z-index:1500; background:var(--text); color:var(--bg); padding:.9rem 1.1rem; font-size:.72rem; transition:.4s var(--ease); pointer-events:none; }
.toast.is-visible { opacity:1; transform:translate(-50%,0); }

@keyframes fadeUp { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:none} }
