:root {
  --primary:       #850928;
  --primary-dark:  #5e061c;
  --secondary:     #CA1E50;
  --secondary-mid: #e03668;
  --maroon:        #850928;
  --maroon-dark:   #5e061c;
  --purple:        #850928;
  --gold:          #CA1E50;
  --gold-light:    #e03668;
  --white:         #ffffff;
  --cream:         #f6f6f6;
  --text:          #1a0508;
  --text-soft:     #4a2030;
  --muted:         #9a7080;
  --black:         #000000;
  --border:        #e8d0d6;
  --radius:        8px;
  --shadow-sm:     0 2px 8px rgba(133,9,40,0.10);
  --shadow-hover:  0 14px 36px rgba(133,9,40,0.20);
  --transition:    0.22s ease;
}
[id^="dm-web-profile-root"] *,
[id^="dm-web-profile-root"] *::before,
[id^="dm-web-profile-root"] *::after { box-sizing: border-box; }
.twu-listing-page { font-family: adelle, serif; background: var(--white); -webkit-font-smoothing: antialiased; }
.twu-listing-banner { position:relative; overflow:hidden; background-image:url('https://twu.edu/media/images/twu-home/flowers-background.jpg'); background-size:cover; background-position:center 40%; background-color:var(--maroon-dark); padding:48px 48px 0; }
.twu-listing-banner::before { content:''; position:absolute; inset:0; background:rgba(133,9,40,0.86); z-index:0; }
.twu-listing-banner::after  { content:''; position:absolute; bottom:0; left:0; right:0; height:4px; background:linear-gradient(90deg,transparent,var(--gold),var(--gold-light),var(--gold),transparent); z-index:2; }
.twu-listing-banner-inner { position:relative; z-index:1; max-width:1100px; margin:0 auto; }
.twu-listing-eyebrow { font-size:10px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:rgba(255,255,255,0.7); margin:0 0 10px; }
.twu-listing-title { font-family:'Montserrat',sans-serif; font-size:40px; font-weight:800; color:var(--white); line-height:1.15; margin:0 0 28px; }
.twu-listing-search { display:flex; align-items:center; gap:12px; background:rgba(255,255,255,0.10); border:1px solid rgba(255,255,255,0.2); border-radius:var(--radius) var(--radius) 0 0; padding:14px 20px; backdrop-filter:blur(6px); }
.twu-listing-search-icon { color:rgba(255,255,255,0.55); font-size:15px; flex-shrink:0; }
.twu-listing-search input { flex:1; background:transparent; border:none; outline:none; font-family:adelle,serif; font-size:15px; color:var(--white); caret-color:var(--gold); }
.twu-listing-search input::placeholder { color:rgba(255,255,255,0.42); }
.twu-listing-count { font-size:12px; font-weight:600; color:rgba(255,255,255,0.48); white-space:nowrap; }
.twu-load-progress { height:3px; background:rgba(255,255,255,0.15); border-radius:2px; overflow:hidden; margin-top:12px; transition:opacity 0.4s; }
.twu-load-progress-bar { height:100%; background:linear-gradient(90deg,var(--secondary),#e03668); border-radius:2px; transition:width 0.4s ease; width:0%; }
.twu-listing-filters { background:var(--purple); padding:0 48px; }
.twu-listing-filters-inner { max-width:1100px; margin:0 auto; display:flex; align-items:center; gap:10px; padding:10px 0; }
.twu-dept-dropdown { position:relative; }
.twu-dept-trigger { display:flex; align-items:center; gap:10px; padding:9px 16px; font-family:adelle,serif; font-size:11px; font-weight:700; letter-spacing:0.09em; text-transform:uppercase; color:var(--white); background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.28); border-radius:6px; cursor:pointer; transition:background var(--transition),border-color var(--transition); white-space:nowrap; }
.twu-dept-trigger:hover, .twu-dept-trigger[aria-expanded="true"] { background:rgba(255,255,255,0.22); border-color:rgba(255,255,255,0.5); }
.twu-dept-trigger-label { max-width:380px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.twu-dept-chevron { width:10px; height:6px; flex-shrink:0; transition:transform var(--transition); }
.twu-dept-trigger[aria-expanded="true"] .twu-dept-chevron { transform:rotate(180deg); }
.twu-dept-panel { position:absolute; top:calc(100% + 6px); left:0; min-width:280px; max-width:460px; background:var(--white); border:1px solid var(--border); border-radius:var(--radius); box-shadow:0 8px 32px rgba(133,9,40,0.18); z-index:200; max-height:360px; overflow-y:auto; }
.twu-filter-btn { display:block; width:100%; text-align:left; padding:11px 16px; font-family:adelle,serif; font-size:13px; font-weight:500; color:var(--text); background:transparent; border:none; border-bottom:1px solid var(--border); cursor:pointer; transition:background var(--transition),color var(--transition); border-radius:0; }
.twu-filter-btn:last-child { border-bottom:none; }
.twu-filter-btn:first-child { border-radius:var(--radius) var(--radius) 0 0; }
.twu-filter-btn:last-child { border-radius:0 0 var(--radius) var(--radius); }
.twu-filter-btn:hover { background:#fceef2; color:var(--primary); }
.twu-filter-btn.active { background:#fceef2; color:var(--primary); font-weight:700; }
.twu-alpha-bar { background:var(--white); border-bottom:1px solid var(--border); padding:0 48px; }
.twu-alpha-bar-inner { max-width:1100px; margin:0 auto; display:flex; align-items:center; gap:2px; padding:6px 0; flex-wrap:wrap; }
.twu-alpha-btn { flex-shrink:0; width:32px; height:32px; display:flex; align-items:center; justify-content:center; font-family:'Montserrat',sans-serif; font-size:13px; font-weight:600; color:var(--primary); background:transparent; border:1px solid transparent; border-radius:4px; cursor:pointer; transition:color var(--transition),background var(--transition),border-color var(--transition); line-height:1; }
.twu-alpha-btn:not(.twu-alpha-empty):not(.active):hover { background:#fceef2; border-color:var(--border); }
.twu-alpha-btn.active { background:var(--purple)!important; color:var(--white)!important; border-color:var(--purple)!important; }
.twu-alpha-btn.twu-alpha-empty { color:#ccc; cursor:default; pointer-events:none; }
.twu-alpha-btn.twu-alpha-all { width:auto; padding:0 10px; font-family:adelle,serif; font-size:11px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--text-soft); }
.twu-alpha-divider { width:1px; height:20px; background:var(--border); margin:0 4px; flex-shrink:0; }
.twu-toolbar { background:var(--cream); padding:12px 48px 0; }
.twu-toolbar-inner { max-width:1100px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.twu-toolbar-count { font-size:12.5px; color:var(--muted); font-weight:600; }
.twu-view-toggle { display:flex; gap:4px; background:var(--white); border:1px solid var(--border); border-radius:6px; padding:3px; }
.twu-view-btn { display:flex; align-items:center; justify-content:center; width:30px; height:30px; border:none; border-radius:4px; background:transparent; color:var(--muted); cursor:pointer; transition:background var(--transition),color var(--transition); }
.twu-view-btn svg { width:16px; height:16px; display:block; fill:currentColor; }
.twu-view-btn:hover { color:var(--purple); background:#fceef2; }
.twu-view-btn.active { background:var(--purple); color:var(--white); }
.twu-listing-grid { max-width:1100px; margin:0 auto; padding:36px 48px 80px; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:stretch; }
.twu-listing-grid.twu-view-list { grid-template-columns:1fr!important; gap:10px!important; }
.twu-view-list .twu-card { flex-direction:row!important; align-items:stretch; border-radius:6px; min-height:0; transform:none!important; }
.twu-view-list .twu-card-header { display:none!important; }
.twu-view-list .twu-card::before { content:''!important; display:block!important; width:5px!important; flex-shrink:0!important; background:linear-gradient(180deg,var(--purple),var(--gold))!important; border-radius:6px 0 0 6px!important; }
.twu-view-list .twu-card-photo-wrap { margin:0!important; padding:16px 0 16px 16px!important; flex-shrink:0!important; z-index:0; display:flex; align-items:center; }
.twu-view-list .twu-card-photo { width:60px!important; height:60px!important; border:2px solid var(--white)!important; }
.twu-view-list .twu-card-body { flex:1!important; flex-direction:row!important; align-items:center!important; padding:16px 20px!important; gap:0!important; min-width:0; }
.twu-view-list .twu-card-info { flex:1; min-width:0; padding-right:24px; }
.twu-view-list .twu-card-contacts { flex-shrink:0; width:240px; margin-top:0!important; padding-top:0!important; border-top:none!important; border-left:1px solid var(--border)!important; padding-left:20px!important; gap:4px!important; justify-content:center; }
.twu-view-list .twu-card-cta { flex-shrink:0; margin-top:0!important; padding-left:20px; border-left:1px solid var(--border); align-self:stretch; display:flex!important; align-items:center; gap:8px; font-size:11px!important; width:130px; }
.twu-listing-empty { display:none; grid-column:1/-1; text-align:center; padding:64px 0; color:var(--muted); }
.twu-listing-empty-icon { font-size:36px; margin-bottom:14px; opacity:0.4; }
.twu-listing-empty h3 { font-family:'Montserrat',sans-serif; font-size:22px; font-weight:400; color:var(--text-soft); margin:0 0 6px; }
.twu-card { background:var(--white); border-radius:var(--radius); border:1px solid var(--border); box-shadow:var(--shadow-sm); overflow:hidden; display:flex; flex-direction:column; cursor:pointer; transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition); animation:twuCardIn 0.35s ease both; }
.twu-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-hover); border-color:var(--gold); }
@keyframes twuCardIn { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
.twu-card-header { background:var(--purple); height:64px; flex-shrink:0; position:relative; }
.twu-card-header::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--gold),var(--gold-light),var(--gold)); }
.twu-card-photo-wrap { position:relative; padding:0 20px; margin-top:-32px; z-index:1; }
.twu-card-photo { width:64px; height:64px; border-radius:50%; object-fit:cover; object-position:center top; border:3px solid var(--white); box-shadow:0 2px 10px rgba(133,9,40,0.22); background:#e8c8d0; display:block; }
.twu-card-body { padding:10px 20px 20px; flex:1; display:flex; flex-direction:column; }
.twu-card-name { font-family:'Montserrat',sans-serif; font-size:17px; font-weight:700; color:var(--purple); line-height:1.25; margin:0 0 3px; transition:color var(--transition); }
.twu-card:hover .twu-card-name { color:var(--maroon); }
.twu-card-title { font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; color:var(--text-soft); margin:0 0 2px; }
.twu-card-dept { font-size:12.5px; color:var(--black); line-height:1.4; margin:0 0 14px; }
.twu-card-contacts { margin-top:auto; padding-top:12px; border-top:1px solid var(--border); display:flex; flex-direction:column; gap:5px; }
.twu-card-contact { display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--text-soft); min-width:0; }
.twu-card-contact-icon { width:15px; flex-shrink:0; color:var(--gold); font-size:11px; text-align:center; }
.twu-card-contact a { color:var(--secondary); text-decoration:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; transition:color var(--transition); }
.twu-card-contact a:hover { color:var(--gold); }
.twu-card-cta { margin-top:14px; display:flex; align-items:center; justify-content:space-between; font-size:11px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--purple); transition:color var(--transition); }
.twu-card-cta::after { content:'→'; font-size:13px; transition:transform var(--transition); }
.twu-card:hover .twu-card-cta { color:var(--maroon); }
.twu-card:hover .twu-card-cta::after { transform:translateX(4px); }
.twu-pagination { max-width:1100px; margin:8px auto 0; padding:0 48px 64px; display:flex; align-items:center; justify-content:center; gap:6px; flex-wrap:wrap; }
.twu-page-btn { display:flex; align-items:center; justify-content:center; min-width:40px; height:40px; padding:0 10px; border-radius:6px; border:1px solid var(--border); background:var(--white); font-family:'Montserrat',sans-serif; font-size:13px; font-weight:600; color:var(--primary); cursor:pointer; transition:background var(--transition),color var(--transition),border-color var(--transition),box-shadow var(--transition); }
.twu-page-btn:hover:not(:disabled) { background:#fceef2; border-color:var(--primary); }
.twu-page-btn.active { background:var(--primary); color:var(--white); border-color:var(--primary); box-shadow:0 2px 8px rgba(133,9,40,0.3); }
.twu-page-btn:disabled { opacity:0.3; cursor:not-allowed; }
.twu-page-btn.twu-page-ellipsis { border:none; background:transparent; cursor:default; color:var(--muted); }
.twu-page-info { font-family:adelle,serif; font-size:13px; color:var(--muted); padding:0 8px; white-space:nowrap; }

/* ── RESPONSIVE ── */
@media (max-width:960px) {
  .twu-listing-banner,.twu-listing-filters,.twu-alpha-bar { padding-left:32px; padding-right:32px; }
  .twu-listing-title { font-size:32px; }
  .twu-toolbar { padding:10px 32px 0; }
  .twu-listing-grid { grid-template-columns:repeat(2,1fr)!important; padding:28px 32px 60px; gap:18px; }
  .twu-view-list .twu-card-contacts { width:200px; }
  .twu-view-list .twu-card-cta { width:110px; }
  .twu-pagination { padding:0 32px 48px; }
}
@media (max-width:640px) {
  .twu-listing-banner { padding:22px 16px 0; }
  .twu-listing-filters { padding:0 12px; }
  .twu-dept-trigger-label { max-width:220px; }
  .twu-alpha-bar { padding:0 10px; }
  .twu-alpha-bar-inner { gap:1px; padding:5px 0; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; }
  .twu-alpha-bar-inner::-webkit-scrollbar { display:none; }
  .twu-alpha-btn { width:27px!important; height:30px!important; font-size:13px; }
  .twu-alpha-btn.twu-alpha-all { padding:0 8px; font-size:10px; }
  .twu-alpha-divider { margin:0 2px; }
  .twu-toolbar { padding:10px 12px 0; }
  .twu-listing-title { font-size:24px!important; margin-bottom:16px; }
  .twu-listing-search { padding:10px 14px; gap:8px; }
  .twu-listing-count { display:none; }
  .twu-dept-trigger { padding:8px 12px; font-size:10px; }
  .twu-dept-panel { max-width:calc(100vw - 24px); }
  .twu-listing-grid { grid-template-columns:1fr!important; padding:14px 12px 48px!important; gap:10px!important; }
  .twu-card { flex-direction:row!important; align-items:stretch; border-radius:6px; min-height:90px; }
  .twu-card-header { display:none!important; }
  .twu-card::before { content:''!important; display:block!important; width:5px!important; flex-shrink:0!important; background:linear-gradient(180deg,var(--purple),var(--gold))!important; border-radius:6px 0 0 6px!important; }
  .twu-card-photo-wrap { margin:0!important; padding:14px 0 14px 12px!important; flex-shrink:0!important; align-self:flex-start; z-index:0; }
  .twu-card-photo { width:56px!important; height:56px!important; border:2px solid var(--white)!important; }
  .twu-card-body { padding:12px 14px 12px 10px!important; flex:1!important; min-width:0; }
  .twu-card-name { font-size:15px!important; margin-bottom:1px; }
  .twu-card-title { font-size:10px!important; letter-spacing:0.05em; }
  .twu-card-dept { font-size:11.5px!important; margin-bottom:8px; line-height:1.3; }
  .twu-card-contacts { gap:3px!important; padding-top:8px!important; }
  .twu-card-contact { font-size:11px!important; }
  .twu-card:hover { transform:none!important; box-shadow:var(--shadow-sm)!important; }
  .twu-view-toggle { display:none; }
  .twu-view-list .twu-card-body { flex-direction:column!important; align-items:flex-start!important; padding:12px 14px!important; }
  .twu-view-list .twu-card-contacts { width:100%!important; border-left:none!important; border-top:1px solid var(--border)!important; padding-left:0!important; padding-top:8px!important; margin-top:8px!important; }
  .twu-view-list .twu-card-cta { border-left:none!important; padding-left:0!important; width:auto!important; margin-top:8px!important; }
  .twu-pagination { padding:0 12px 40px; gap:4px; }
  .twu-page-btn { min-width:36px; height:36px; font-size:12px; }
}
@media (max-width:380px) {
  .twu-listing-title { font-size:21px!important; }
  .twu-listing-grid { padding:12px 10px 40px!important; }
  .twu-card-photo { width:48px!important; height:48px!important; }
  .twu-card-name { font-size:14px!important; }
  .twu-card-body { padding:10px 12px 10px 8px!important; }
}