/* MBUSLC Admissions theme — visual language adapted from futurestudent.tsu.ac.th
   (navy header/footer, blue/orange accent system, Prompt + Noto Sans Thai,
   soft-shadow cards, sticky glass navbar, gradient hero). Loaded after
   Bootstrap so these rules take over its default component look. */

:root{
  --navy-900:#0a2a4e;
  --navy-800:#0e3a6b;
  --navy-700:#134a87;
  --navy-600:#1a5aa0;

  --orange:#F58220;
  --orange-dk:#D96512;

  --ink:#1f2a3a;
  --muted:#6b7888;
  --line:#e6ebf2;
  --bg:#f3f6fa;
  --card:#ffffff;

  --shadow-sm:0 4px 16px rgba(20,50,90,.07);
  --shadow:0 18px 46px rgba(18,46,86,.11);

  --radius:18px;
  --radius-sm:12px;

  --theme:#2474C6;
  --theme-dk:#0F4C81;
  --theme-soft:#EAF3FF;
  --theme-rgb:36,116,198;

  --maxw:1180px;
}

html{height:100%;}
body{
  min-height:100%;
  display:flex;
  flex-direction:column;
  font-family:"Noto Sans Thai","Prompt",sans-serif;
  background:var(--bg);
  color:var(--ink);
}
/* Sticky footer: main grows to fill any leftover viewport height so the
   footer always sits at the bottom instead of floating mid-page on short
   content (e.g. the registration wizard's step-0 gate). */
main{flex:1 0 auto;}
.site-footer{flex-shrink:0;}

h1,h2,h3,h4,h5,h6,.brand-txt{
  font-family:"Prompt","Noto Sans Thai",sans-serif;
  font-weight:600;
  letter-spacing:-.3px;
}

a{color:var(--theme);}
a:hover{color:var(--theme-dk);}

/* ---------- header ---------- */
.site-header{
  position:sticky;
  top:0;
  z-index:60;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  box-shadow:0 5px 24px rgba(18,46,86,.08);
}

.brand-txt{color:var(--navy-800);font-size:1.25rem;}
.brand-txt small{display:block;font-family:"Noto Sans Thai",sans-serif;font-weight:400;font-size:.7rem;color:var(--muted);}
.site-header .nav-link{
  font-weight:500;
  color:var(--ink);
  border-radius:10px;
  padding:.5rem .9rem !important;
  transition:background .15s,color .15s;
}
.site-header .nav-link:hover,
.site-header .nav-link.active{
  background:var(--theme-soft);
  color:var(--theme-dk);
}

/* Hamburger toggle (mobile) */
.site-header .navbar-toggler{
  border:1.6px solid var(--line);
  border-radius:10px;
  padding:.35rem .55rem;
}
.site-header .navbar-toggler:focus{
  outline:0;
  box-shadow:0 0 0 3px rgba(var(--theme-rgb),.18);
}
.site-header .navbar-toggler-icon{
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%230a2a4e' stroke-width='2.4' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

@media (max-width:767.98px){
  .site-header .navbar-collapse{
    margin-top:.75rem;
    padding-top:.75rem;
    border-top:1px solid var(--line);
  }
  .site-header .navbar-nav{width:100%;}
  .site-header .nav-item{width:100%;}
  .site-header .nav-link{
    padding:.7rem .9rem !important;
    border-bottom:1px solid var(--line);
  }
  .site-header .nav-item:last-child .nav-link{border-bottom:0;}
}

/* ---------- buttons ---------- */
.btn{border-radius:12px;font-weight:600;padding:.6rem 1.3rem;transition:transform .18s,box-shadow .18s;}
.btn:hover{transform:translateY(-2px);}
.btn-primary{
  background:linear-gradient(135deg,var(--theme),var(--theme-dk));
  border:0;
  box-shadow:0 11px 24px rgba(var(--theme-rgb),.28);
}
.btn-primary:hover,.btn-primary:focus{
  background:linear-gradient(135deg,var(--theme-dk),var(--navy-900));
  box-shadow:0 16px 32px rgba(var(--theme-rgb),.38);
}
.btn-outline-primary{color:var(--theme);border:1.6px solid var(--theme);background:#fff;}
.btn-outline-primary:hover{background:var(--theme-soft);border-color:var(--theme-dk);color:var(--theme-dk);}
.btn-warning,.btn-orange{
  background:var(--orange) !important;
  border:0 !important;
  color:#fff !important;
  box-shadow:0 10px 24px rgba(245,130,32,.34);
}
.btn-warning:hover,.btn-orange:hover{background:var(--orange-dk) !important;}
.btn-outline-secondary{border-radius:12px;}

/* ---------- cards ---------- */
.card{
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow);}
.card-header{
  background:var(--navy-800);
  color:#fff;
  border-radius:var(--radius) var(--radius) 0 0 !important;
  border-bottom:0;
  font-weight:600;
}
.card-header.bg-primary{background:var(--navy-800) !important;}
.list-group-item-action:hover{background:var(--theme-soft);}

/* ---------- hero ---------- */
.hero{
  position:relative;
  overflow:hidden;
  background:linear-gradient(120deg,var(--navy-900) 0%,var(--navy-700) 55%,var(--theme) 130%);
  color:#fff;
  padding:64px 0 84px;
}
.hero::after{
  content:"";
  position:absolute;
  z-index:0;
  width:min(38vw,480px);
  height:min(38vw,480px);
  right:-140px;
  bottom:-220px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.14),rgba(255,255,255,0) 68%);
}
.hero .container{position:relative;z-index:1;}
.hero h1{font-size:clamp(1.9rem,4.2vw,2.9rem);font-weight:700;color:#fff;}
.hero .hero-en{font-family:"Prompt",sans-serif;font-style:italic;font-weight:500;color:rgba(255,255,255,.65);font-size:clamp(1rem,2vw,1.25rem);}
.hero p.lead{max-width:640px;color:rgba(255,255,255,.86);margin:14px 0 26px;font-size:1.02rem;}
.hero .btn-ghost{background:rgba(255,255,255,.1);border:1.6px solid rgba(255,255,255,.55);color:#fff;}
.hero .btn-ghost:hover{background:rgba(255,255,255,.2);border-color:#fff;}

@media (max-width:575.98px){
  .hero{padding:44px 0 60px;}
  .hero .btn{display:block;width:100%;text-align:center;}
  .hero .btn.mr-2{margin-right:0 !important;margin-bottom:.6rem;}
}

/* ---------- category tiles (home page) ---------- */
.tile{
  display:block;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
  padding:22px 18px;
  text-align:center;
  text-decoration:none;
  color:var(--ink);
  height:100%;
  transition:transform .2s ease,box-shadow .2s ease;
}
.tile:hover{transform:translateY(-4px);box-shadow:var(--shadow);color:var(--theme-dk);text-decoration:none;}
.tile .tile-ic{
  width:56px;height:56px;margin:0 auto 12px;
  border-radius:16px;
  display:flex;align-items:center;justify-content:center;
  background:var(--theme-soft);
  color:var(--theme-dk);
  font-size:1.4rem;
}
.tile strong{display:block;font-size:.98rem;}

@media (max-width:575.98px){
  .tile{padding:16px 10px;}
  .tile .tile-ic{width:46px;height:46px;margin-bottom:8px;font-size:1.15rem;}
  .tile strong{font-size:.86rem;}
}

/* ---------- footer ---------- */
.site-footer{
  background:linear-gradient(180deg,var(--navy-800),var(--navy-900));
  color:#cdd9ea;
  padding:36px 0;
  margin-top:56px;
}
.site-footer a{color:#fff;}
.site-footer a:hover{color:var(--orange);}

/* ---------- misc ---------- */
.section-title{font-weight:700;color:var(--navy-800);margin-bottom:1rem;}
.badge{border-radius:8px;}
