*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'DM Sans', sans-serif; background: #FAF7F2; color: #1A0F2E; line-height: 1.7; -webkit-font-smoothing: antialiased; }
:root {
  --plum-deep: #2D1B3D; --plum-mid: #4A2D6B; --plum-light: #7B4FA6;
  --gold: #C9A84C; --gold-light: #E8C97A; --gold-pale: #F5E9C8;
  --cream: #FAF7F2; --white: #FFFFFF; --text-dark: #1A0F2E; --text-mid: #4A3A5C;
}
h1,h2,h3,h4 { font-family: 'Cormorant Garamond', serif; font-weight: 500; line-height: 1.2; }
.section-label { font-size: 0.65rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gold); font-weight: 500; margin-bottom: 0.6rem; display: flex; align-items: center; gap: 0.7rem; }
.section-label::before { content: ''; display: block; width: 24px; height: 1px; background: var(--gold); }
.section-title { font-family: 'Cormorant Garamond', serif; font-size: 2.4rem; color: var(--text-dark); margin-bottom: 1rem; }
.btn-primary { display: inline-block; background: var(--gold); color: var(--plum-deep); padding: 0.85rem 2.2rem; border: none; cursor: pointer; font-size: 0.82rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; border-radius: 2px; font-family: 'DM Sans', sans-serif; text-decoration: none; transition: background 0.2s; }
.btn-primary:hover { background: var(--gold-light); }
.btn-ghost { display: inline-block; background: transparent; color: rgba(255,255,255,0.75); padding: 0.85rem 2.2rem; border: 1px solid rgba(255,255,255,0.3); cursor: pointer; font-size: 0.82rem; letter-spacing: 0.14em; text-transform: uppercase; border-radius: 2px; font-family: 'DM Sans', sans-serif; text-decoration: none; transition: border-color 0.2s,color 0.2s; }
.btn-ghost:hover { border-color: var(--gold); color: var(--gold-light); }

/* NAV */
nav { background: var(--plum-deep); padding: 1rem 2.5rem; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--gold); position: sticky; top: 0; z-index: 1000; }
.nav-logo { font-family: 'Cormorant Garamond', serif; color: var(--gold-light); font-size: 1.4rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; }
.nav-links { display: flex; gap: 2rem; list-style: none; align-items: center; }
.nav-links a { color: rgba(255,255,255,0.72); text-decoration: none; font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 400; transition: color 0.2s; }
.nav-links a:hover, .nav-links a.nav-active { color: var(--gold-light); }
.nav-links .nav-cta { background: var(--gold); color: var(--plum-deep); padding: 0.45rem 1.1rem; border-radius: 2px; font-weight: 500; }
.nav-links .nav-cta:hover { background: var(--gold-light); }
.nav-toggle { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 4px; background: none; border: none; }
.nav-toggle span { display: block; width: 24px; height: 2px; background: var(--gold-light); border-radius: 1px; }

/* FOOTER */
footer { background: var(--plum-deep); padding: 5rem 3rem 2.5rem; }
.footer-inner { max-width: 1280px; margin: 0 auto; }
.footer-grid { display: grid; grid-template-columns: 1.8fr 1fr 1fr 1fr; gap: 3.5rem; margin-bottom: 3rem; padding-bottom: 2.5rem; border-bottom: 1px solid rgba(255,255,255,0.08); }
.footer-brand-desc { font-size: 0.78rem; color: rgba(255,255,255,0.38); line-height: 1.75; margin-top: 0.85rem; }
.bar-admissions { display: flex; gap: 0.65rem; margin-top: 1.1rem; }
.bar-pill { background: rgba(201,168,76,0.14); border: 1px solid rgba(201,168,76,0.28); color: var(--gold-light); font-size: 0.63rem; padding: 0.25rem 0.65rem; border-radius: 2px; letter-spacing: 0.12em; text-transform: uppercase; }
.footer-col h4 { font-family: 'DM Sans', sans-serif; font-size: 0.62rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold); font-weight: 500; margin-bottom: 1.1rem; }
.footer-col a { display: block; font-size: 0.8rem; color: rgba(255,255,255,0.48); text-decoration: none; margin-bottom: 0.55rem; transition: color 0.2s; }
.footer-col a:hover { color: var(--gold-light); }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.5rem; }
.footer-bottom p { font-size: 0.7rem; color: rgba(255,255,255,0.28); }

/* CHAT WIDGET */
.chat-fab { position: fixed; bottom: 2rem; right: 2rem; width: 56px; height: 56px; background: var(--gold); border-radius: 50%; border: none; cursor: pointer; box-shadow: 0 4px 20px rgba(0,0,0,0.25); display: flex; align-items: center; justify-content: center; z-index: 9000; transition: background 0.2s, transform 0.2s; }
.chat-fab:hover { background: var(--gold-light); transform: scale(1.05); }
.chat-fab svg { width: 24px; height: 24px; fill: var(--plum-deep); }
.chat-fab .chat-badge { position: absolute; top: -2px; right: -2px; width: 18px; height: 18px; background: #C0392B; border-radius: 50%; font-size: 10px; color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; font-family: 'DM Sans', sans-serif; }
.chat-panel { position: fixed; bottom: 5.5rem; right: 2rem; width: 380px; max-height: 600px; background: #FAF7F2; border-radius: 12px; box-shadow: 0 8px 40px rgba(0,0,0,0.22); z-index: 8999; display: none; flex-direction: column; overflow: hidden; border: 1px solid rgba(45,27,61,0.12); }
.chat-panel.open { display: flex; }
.chat-header { background: var(--plum-deep); padding: 1rem 1.25rem; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--gold); }
.chat-header-info { display: flex; align-items: center; gap: 10px; }
.chat-av { width: 36px; height: 36px; border-radius: 50%; background: var(--gold); display: flex; align-items: center; justify-content: center; font-family: 'Cormorant Garamond',serif; font-size: 14px; color: var(--plum-deep); font-weight: 600; }
.chat-header-name { font-size: 0.82rem; font-weight: 500; color: #fff; letter-spacing: 0.04em; }
.chat-header-sub { font-size: 0.68rem; color: rgba(255,255,255,0.5); }
.chat-close { background: none; border: none; color: rgba(255,255,255,0.5); cursor: pointer; font-size: 18px; line-height: 1; padding: 4px; }
.chat-close:hover { color: var(--gold-light); }
.chat-tabs { display: flex; border-bottom: 1px solid rgba(45,27,61,0.1); background: #fff; }
.chat-tab { flex: 1; padding: 10px; font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; background: none; border: none; cursor: pointer; font-family: 'DM Sans',sans-serif; color: var(--text-mid); border-bottom: 2px solid transparent; transition: all 0.15s; }
.chat-tab.on { color: var(--plum-deep); border-bottom-color: var(--gold); font-weight: 500; }
.chat-body { flex: 1; overflow: hidden; display: flex; flex-direction: column; }
.chat-panel-inner { display: none; flex-direction: column; height: 100%; }
.chat-panel-inner.on { display: flex; }

/* AI tab */
.chat-msgs { flex: 1; overflow-y: auto; padding: 14px; display: flex; flex-direction: column; gap: 10px; background: #f7f4f0; max-height: 280px; }
.cmsg { display: flex; gap: 8px; align-items: flex-start; }
.cmsg-av { width: 26px; height: 26px; border-radius: 50%; background: var(--plum-deep); color: var(--gold-light); display: flex; align-items: center; justify-content: center; font-size: 9px; font-weight: 700; flex-shrink: 0; font-family:'DM Sans',sans-serif; }
.cmsg-av.u { background: #e0d8e8; color: var(--plum-mid); }
.cbub { padding: 9px 12px; border-radius: 10px; font-size: 12.5px; line-height: 1.55; max-width: 88%; font-family: 'DM Sans',sans-serif; }
.cbub-cl { background: #fff; border: 1px solid rgba(45,27,61,0.08); color: var(--text-dark); border-radius: 3px 10px 10px 10px; }
.cbub-u { background: var(--plum-mid); color: #fff; border-radius: 10px 3px 10px 10px; margin-left: auto; }
.cmsg.right { flex-direction: row-reverse; }
.qdots { display: flex; gap: 4px; padding: 6px 2px; align-items: center; }
.dot { width: 5px; height: 5px; border-radius: 50%; background: var(--plum-mid); opacity: 0.35; animation: bop 1.2s infinite; }
.dot:nth-child(2){animation-delay:.2s}.dot:nth-child(3){animation-delay:.4s}
@keyframes bop{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-4px);opacity:1}}
.chat-qbtns { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 14px; background: #f7f4f0; border-top: 1px solid rgba(45,27,61,0.06); }
.chat-qbtn { padding: 5px 11px; font-size: 11px; border: 1px solid var(--plum-mid); border-radius: 20px; background: none; color: var(--plum-mid); cursor: pointer; font-family:'DM Sans',sans-serif; transition: all 0.15s; }
.chat-qbtn:hover { background: var(--plum-mid); color: #fff; }
.chat-inp-row { display: flex; gap: 6px; padding: 10px 14px; border-top: 1px solid rgba(45,27,61,0.08); background: #fff; }
.chat-inp { flex: 1; padding: 8px 10px; font-size: 12.5px; border: 1px solid rgba(45,27,61,0.15); border-radius: 6px; background: #FAF7F2; color: var(--text-dark); font-family:'DM Sans',sans-serif; outline: none; }
.chat-inp:focus { border-color: var(--plum-mid); }
.chat-send { padding: 8px 14px; background: var(--plum-deep); color: var(--gold-light); border: none; border-radius: 6px; cursor: pointer; font-size: 12px; font-family:'DM Sans',sans-serif; }
.chat-send:hover { background: var(--plum-mid); }
.ccform { background: #fff; border: 1px solid rgba(45,27,61,0.1); border-radius: 8px; padding: 12px; margin: 4px 0; }
.ccform-title { font-size: 12px; font-weight: 500; color: var(--text-dark); margin-bottom: 8px; font-family:'DM Sans',sans-serif; }
.cci { width: 100%; padding: 7px 10px; font-size: 12px; border: 1px solid rgba(45,27,61,0.12); border-radius: 5px; margin-bottom: 7px; font-family:'DM Sans',sans-serif; color: var(--text-dark); background: #FAF7F2; }
.ccb { width: 100%; padding: 8px; font-size: 12px; background: var(--plum-deep); color: var(--gold-light); border: none; border-radius: 5px; cursor: pointer; font-family:'DM Sans',sans-serif; }

/* FAQ tab */
.faq-scroll { flex: 1; overflow-y: auto; padding: 0; }
.faq-filter-row { display: flex; flex-wrap: wrap; gap: 5px; padding: 10px 12px; border-bottom: 1px solid rgba(45,27,61,0.08); background: #fff; }
.ffbtn { padding: 4px 10px; font-size: 10.5px; border-radius: 20px; border: 1px solid rgba(45,27,61,0.15); background: none; cursor: pointer; color: var(--text-mid); font-family:'DM Sans',sans-serif; transition: all 0.15s; }
.ffbtn.on { background: var(--plum-deep); color: var(--gold-light); border-color: var(--plum-deep); }
.faq-item { border-bottom: 1px solid rgba(45,27,61,0.07); }
.faq-q { width: 100%; display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; padding: 11px 14px; background: none; border: none; cursor: pointer; text-align: left; font-size: 12.5px; font-weight: 500; color: var(--text-dark); line-height: 1.45; font-family:'DM Sans',sans-serif; }
.faq-icon { font-size: 16px; color: var(--gold); flex-shrink: 0; }
.faq-a { display: none; padding: 0 14px 11px; font-size: 12px; color: var(--text-mid); line-height: 1.65; font-family:'DM Sans',sans-serif; }
.faq-a.open { display: block; }
.fpill { display: inline-block; font-size: 10px; padding: 1px 7px; border-radius: 20px; font-weight: 500; margin-bottom: 4px; }
.fp-emp { background: #ede9f8; color: var(--plum-mid); }
.fp-er { background: #e1f5ee; color: #0f6e56; }
.fp-imm { background: #e6f1fb; color: #185fa5; }
.fp-ai { background: #faeeda; color: #854f0b; }
.fp-gen { background: #f1efe8; color: #5f5e5a; }

/* RESPONSIVE */
@media(max-width:900px){
  .nav-links{display:none;flex-direction:column;gap:0;position:absolute;top:100%;left:0;right:0;background:var(--plum-deep);border-top:1px solid rgba(201,168,76,0.3);padding:1rem 0;}
  .nav-links.open{display:flex;}
  .nav-links li{width:100%;}
  .nav-links a{display:block;padding:0.75rem 2rem;border-bottom:1px solid rgba(255,255,255,0.05);}
  .nav-toggle{display:flex;}
  nav{position:relative;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .chat-panel{width:calc(100vw - 2rem);right:1rem;bottom:5rem;}
}
@media(max-width:600px){
  nav{padding:1rem 1.25rem;}
  .footer-grid{grid-template-columns:1fr;}
  .chat-fab{bottom:1.25rem;right:1.25rem;}
}
