/*
 * FWDI Theme — main.css
 * ใช้งานร่วมกับ Bootstrap 5 (grid/utility) — ไฟล์นี้คือ Design Layer เฉพาะของสถาบัน
 * สไตล์: Modern University / Clean / Premium / Blue+White / Gradient / Glassmorphism
 */

/* ===================== Utility Bar & Header ===================== */
.fwdi-utility-bar{
  background:var(--fwdi-primary-dark);
  color:#fff;
}
.fwdi-utility-bar a{ color:rgba(255,255,255,0.85); text-decoration:none; }
.fwdi-utility-bar a:hover{ color:#fff; }

.fwdi-header{
  background:var(--fwdi-glass-bg);
  backdrop-filter:blur(14px) saturate(160%);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  border-bottom:1px solid var(--fwdi-glass-border);
  transition:box-shadow .25s ease, padding .25s ease;
  z-index:1030;
}
.fwdi-header.fwdi-scrolled{ box-shadow:var(--fwdi-shadow-md); }
.fwdi-logo-fallback{ font-size:1.4rem; font-weight:700; color:var(--fwdi-primary); }

.navbar-nav .nav-link{
  color:var(--fwdi-text) !important;
  font-weight:500;
  padding:0.6rem 0.9rem !important;
  border-radius:var(--fwdi-radius-sm);
  transition:color .2s, background .2s;
}
.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus{
  color:var(--fwdi-primary) !important;
  background:rgba(0,91,172,0.06);
}
.dropdown-menu{
  border:none;
  border-radius:var(--fwdi-radius-md);
  box-shadow:var(--fwdi-shadow-lg);
  padding:.5rem;
}
.dropdown-item{ border-radius:var(--fwdi-radius-sm); padding:.55rem .9rem; }
.dropdown-item:hover{ background:rgba(0,91,172,0.08); color:var(--fwdi-primary); }

.fwdi-search-toggle{
  background:transparent; border:none; font-size:1.2rem; color:var(--fwdi-primary);
}
.fwdi-search-panel{
  background:#fff; border-bottom:1px solid var(--fwdi-border); box-shadow:var(--fwdi-shadow-md);
}
.fwdi-live-search-results{ max-height:360px; overflow-y:auto; }
.fwdi-live-search-results a{
  display:flex; gap:.75rem; align-items:center; padding:.5rem; border-radius:var(--fwdi-radius-sm); text-decoration:none; color:var(--fwdi-text);
}
.fwdi-live-search-results a:hover{ background:rgba(0,91,172,0.06); }

.fwdi-breadcrumb{ background:transparent; }
.fwdi-breadcrumb .breadcrumb-item a{ color:var(--fwdi-primary); text-decoration:none; }
.fwdi-breadcrumb .breadcrumb-item.active{ color:var(--fwdi-text-muted); }

/* ===================== Buttons ===================== */
.fwdi-btn-primary{
  background:var(--fwdi-gradient); color:#fff; border:none;
  border-radius:999px; padding:.65rem 1.6rem; font-weight:600;
  box-shadow:var(--fwdi-shadow-sm); transition:transform .2s, box-shadow .2s;
}
.fwdi-btn-primary:hover{ color:#fff; transform:translateY(-2px); box-shadow:var(--fwdi-shadow-md); }
.fwdi-btn-accent{
  background:var(--fwdi-accent); color:#1F2937; border:none; border-radius:999px; padding:.7rem 1.8rem; font-weight:700;
  transition:transform .2s;
}
.fwdi-btn-accent:hover{ transform:translateY(-2px); color:#1F2937; }
.fwdi-btn-outline-light{
  border:2px solid rgba(255,255,255,0.8); color:#fff; border-radius:999px; padding:.65rem 1.8rem; font-weight:600; background:transparent;
}
.fwdi-btn-outline-light:hover{ background:rgba(255,255,255,0.15); color:#fff; }

.fwdi-badge{
  background:rgba(0,91,172,0.1); color:var(--fwdi-primary);
  font-weight:500; border-radius:999px; padding:.35em .8em;
}
.fwdi-badge-open{ background:rgba(34,197,94,0.12); color:#15803D; border-radius:999px; padding:.4em .9em; font-weight:600; }
.fwdi-badge-closed{ background:rgba(148,163,184,0.2); color:#475569; border-radius:999px; padding:.4em .9em; font-weight:600; }
.fwdi-text-primary{ color:var(--fwdi-primary); }

/* ===================== Hero ===================== */
.fwdi-hero{
  position:relative; min-height:92vh; display:flex; align-items:center; justify-content:center;
  overflow:hidden; background:var(--fwdi-gradient);
}
.fwdi-hero-video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;
}
.fwdi-hero-overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,40,80,0.55) 0%, rgba(0,20,40,0.75) 100%);
  z-index:1;
}
.fwdi-hero-content{ position:relative; z-index:2; max-width:820px; }
.fwdi-hero-content h1{ color:#fff; }
.fwdi-hero-scroll-cue{
  position:absolute; bottom:28px; left:50%; transform:translateX(-50%);
  color:#fff; font-size:1.6rem; z-index:2; animation:fwdi-bounce 2s infinite;
}
@keyframes fwdi-bounce{ 0%,100%{ transform:translate(-50%,0); } 50%{ transform:translate(-50%,10px); } }

/* ===================== Quick Menu ===================== */
.fwdi-quick-item{
  display:flex; flex-direction:column; align-items:center; gap:.5rem;
  padding:1.25rem .5rem; border-radius:var(--fwdi-radius-md);
  background:#fff; box-shadow:var(--fwdi-shadow-sm); text-decoration:none; color:var(--fwdi-text);
  transition:transform .25s, box-shadow .25s;
  height:100%;
}
.fwdi-quick-item:hover{ transform:translateY(-6px); box-shadow:var(--fwdi-shadow-md); color:var(--fwdi-primary); }
.fwdi-quick-icon{
  width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--fwdi-gradient); color:#fff; font-size:1.4rem;
}
.fwdi-quick-label{ font-size:.9rem; font-weight:600; text-align:center; }

/* ===================== Stats Counter ===================== */
.fwdi-stats{ background:var(--fwdi-gradient); }
.fwdi-counter{ font-size:2.6rem; font-weight:800; color:#fff; }
.fwdi-counter-label{ color:rgba(255,255,255,0.85); font-weight:500; }

/* ===================== Sections ===================== */
.fwdi-section-title{
  position:relative; padding-left:1rem; font-weight:700;
  border-left:5px solid var(--fwdi-secondary);
}
.fwdi-bg-tint{ background:linear-gradient(180deg, #F0F6FC 0%, #F8FAFC 100%); }
.fwdi-link-more{ font-weight:600; font-size:.9rem; text-decoration:none; color:var(--fwdi-primary); }
.fwdi-link-more:hover{ color:var(--fwdi-secondary); }

/* ===================== Cards ===================== */
.fwdi-card{
  background:#fff; border-radius:var(--fwdi-radius-md); overflow:hidden;
  box-shadow:var(--fwdi-shadow-sm); transition:transform .25s, box-shadow .25s;
}
.fwdi-card:hover{ transform:translateY(-6px); box-shadow:var(--fwdi-shadow-md); }
.fwdi-card-thumb{ display:block; position:relative; aspect-ratio:4/3; overflow:hidden; }
.fwdi-card-thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.fwdi-card:hover .fwdi-card-thumb img{ transform:scale(1.06); }
.fwdi-card-thumb .fwdi-badge{ position:absolute; top:12px; left:12px; font-size:.75rem; background:rgba(255,255,255,0.9); }
.fwdi-card-body{ padding:1.1rem 1.25rem 1.4rem; }
.fwdi-card-body h3 a{ color:var(--fwdi-primary-dark); text-decoration:none; }
.fwdi-card-body h3 a:hover{ color:var(--fwdi-secondary); }

.fwdi-card-personnel .fwdi-personnel-photo img{
  width:120px; height:120px; border-radius:50%; object-fit:cover; margin:1.5rem auto 0; border:4px solid #fff; box-shadow:var(--fwdi-shadow-sm);
}

.fwdi-news-list-item{ border-bottom:1px solid var(--fwdi-border); }
.fwdi-news-list-item:last-child{ border-bottom:none; }
.fwdi-news-thumb img{ width:120px; height:88px; object-fit:cover; border-radius:var(--fwdi-radius-sm); }
.fwdi-news-title a{ color:var(--fwdi-primary-dark); text-decoration:none; }
.fwdi-news-title a:hover{ color:var(--fwdi-secondary); }

/* ===================== Widgets / Sidebar ===================== */
.fwdi-widget{ border-radius:var(--fwdi-radius-md); border:1px solid var(--fwdi-border); }
.fwdi-widget-title{ font-weight:700; color:var(--fwdi-primary-dark); border-bottom:2px solid var(--fwdi-accent); padding-bottom:.5rem; margin-bottom:.75rem; display:inline-block; }
.fwdi-sidebar-list li a, .fwdi-cat-list li a{ color:var(--fwdi-text); text-decoration:none; }
.fwdi-sidebar-list li a:hover, .fwdi-cat-list li a:hover{ color:var(--fwdi-primary); }
.fwdi-cat-list{ margin-bottom:0; }
.fwdi-cat-list li{ padding:.35rem 0; border-bottom:1px dashed var(--fwdi-border); }

/* ===================== Personnel Directory / Filter ===================== */
.fwdi-personnel-filter .form-control,
.fwdi-personnel-filter .form-select{ border-radius:var(--fwdi-radius-sm); }

/* ===================== Org Chart ===================== */
.fwdi-org-chart-container{
  overflow:auto; background:#fff; border-radius:var(--fwdi-radius-md); border:1px solid var(--fwdi-border); padding:2rem; min-height:320px;
}
.fwdi-org-node{
  display:inline-block; background:var(--fwdi-gradient); color:#fff; border-radius:var(--fwdi-radius-sm);
  padding:.6rem 1.2rem; font-weight:600; box-shadow:var(--fwdi-shadow-sm); cursor:pointer;
}
.fwdi-org-branch{ text-align:center; padding:1rem; }
.fwdi-org-children{ display:flex; gap:1.5rem; justify-content:center; margin-top:1.5rem; position:relative; }
.fwdi-org-people-list{ list-style:none; padding:0; margin:.75rem 0 0; font-size:.85rem; color:var(--fwdi-text-muted); }

/* ===================== Downloads ===================== */
.fwdi-download-row{ background:#fff; border:1px solid var(--fwdi-border); border-radius:var(--fwdi-radius-md); }
.fwdi-download-row:hover{ box-shadow:var(--fwdi-shadow-sm); }

/* ===================== Gallery ===================== */
.fwdi-gallery-masonry{
  columns:3 240px; column-gap:1rem;
}
.fwdi-gallery-item{ display:block; break-inside:avoid; margin-bottom:1rem; position:relative; border-radius:var(--fwdi-radius-sm); overflow:hidden; }
.fwdi-gallery-item img{ width:100%; display:block; transition:transform .3s; }
.fwdi-gallery-item:hover img{ transform:scale(1.05); }
.fwdi-gallery-caption{
  position:absolute; left:0; right:0; bottom:0; padding:.5rem .75rem; font-size:.8rem; color:#fff;
  background:linear-gradient(180deg, transparent, rgba(0,0,0,0.65));
}

/* ===================== Partners ===================== */
.fwdi-partner-row{ display:flex; flex-wrap:wrap; gap:2rem; align-items:center; justify-content:center; }
.fwdi-partner-logo img{ max-height:60px; width:auto; filter:grayscale(100%); opacity:.7; transition:filter .25s, opacity .25s; }
.fwdi-partner-logo:hover img{ filter:none; opacity:1; }

/* ===================== FAQ ===================== */
.fwdi-faq-accordion .accordion-button{ font-weight:600; color:var(--fwdi-primary-dark); }
.fwdi-faq-accordion .accordion-button:not(.collapsed){ background:rgba(0,91,172,0.06); color:var(--fwdi-primary); box-shadow:none; }
.fwdi-faq-accordion .accordion-item{ border:1px solid var(--fwdi-border); border-radius:var(--fwdi-radius-sm) !important; margin-bottom:.6rem; overflow:hidden; }

/* ===================== Footer ===================== */
.fwdi-footer{ background:var(--fwdi-primary-dark); color:rgba(255,255,255,0.85); }
.footer-widget-title{ color:#fff; font-weight:700; margin-bottom:1rem; }
.footer-menu{ list-style:none; padding:0; margin:0; }
.footer-menu li{ margin-bottom:.5rem; }
.footer-menu a{ color:rgba(255,255,255,0.75); text-decoration:none; }
.footer-menu a:hover{ color:#fff; }
.fwdi-footer-bottom{ background:rgba(0,0,0,0.2); }

.fwdi-back-to-top{
  position:fixed; right:20px; bottom:20px; width:46px; height:46px; border-radius:50%;
  background:var(--fwdi-gradient); color:#fff; border:none; box-shadow:var(--fwdi-shadow-md);
  opacity:0; visibility:hidden; transform:translateY(10px); transition:all .25s; z-index:1000;
}
.fwdi-back-to-top.show{ opacity:1; visibility:visible; transform:translateY(0); }

/* ===================== PDPA Banner ===================== */
.fwdi-pdpa-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:2000;
  background:rgba(255,255,255,0.92); backdrop-filter:blur(10px);
  border-top:1px solid var(--fwdi-border); box-shadow:0 -8px 24px rgba(0,0,0,0.08);
}
.fwdi-pdpa-inner{
  max-width:1140px; margin:0 auto; padding:1rem 1.25rem;
  display:flex; flex-wrap:wrap; gap:1rem; align-items:center; justify-content:space-between;
}
.fwdi-pdpa-actions{ display:flex; gap:.5rem; flex-wrap:wrap; }
.fwdi-pdpa-modal{
  position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:2100;
  display:flex; align-items:center; justify-content:center;
}
.fwdi-pdpa-modal-content{ background:#fff; border-radius:var(--fwdi-radius-md); padding:1.5rem; max-width:420px; width:90%; }

/* ===================== Training Form ===================== */
.fwdi-training-form .form-control{ border-radius:var(--fwdi-radius-sm); }
.fwdi-form-message.text-success{ color:#15803D !important; }
.fwdi-form-message.text-danger{ color:#DC2626 !important; }
.fwdi-sticky-registration-box{ position:sticky; top:calc(var(--fwdi-header-h) + 16px); border-radius:var(--fwdi-radius-md); border:1px solid var(--fwdi-border); }

/* ===================== Pagination ===================== */
.fwdi-pagination .page-link{ border-radius:999px; margin:0 3px; color:var(--fwdi-primary); border:none; }
.fwdi-pagination .page-item.active .page-link{ background:var(--fwdi-gradient); color:#fff; }

/* ===================== Responsive ===================== */
@media (max-width: 991.98px){
  .fwdi-hero{ min-height:70vh; }
  .fwdi-gallery-masonry{ columns:2 180px; }
  .fwdi-sticky-registration-box{ position:static; }
}
@media (max-width: 575.98px){
  .fwdi-gallery-masonry{ columns:1; }
  .fwdi-counter{ font-size:2rem; }
}

/* Print (สำหรับ Export PDF ของ Org Chart) */
@media print{
  .fwdi-header, .fwdi-utility-bar, .fwdi-footer, .fwdi-pdpa-banner, .fwdi-back-to-top, .fwdi-orgchart-toolbar{ display:none !important; }
}
