/* Shared device layouts, loaded after each page's individual stylesheet. */
html { scroll-padding-top:110px; }
img, video { max-width:100%; }
.container, .nav-container, .footer-container { width:100%; }
.scraper-layout > *, .form-row > *, .uni-stats-list > *, .footer-container > * { min-width:0; }
.filters-sidebar { align-self:start; }
.results-bar { flex-wrap:wrap; gap:14px; }
.table-responsive { max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; }
.custom-table { min-width:640px; }
.dest-top8-table { min-width:780px; }
.dest-top8-table td { white-space:normal; min-width:140px; }
.dest-top8-table td:last-child { min-width:250px; }
.modal-overlay { padding:16px; }
.modal-box { max-height:calc(100dvh - 32px); overscroll-behavior:contain; }
.modal-close { min-width:44px; min-height:44px; }
.modal-box h2 { padding-right:38px; }
.chatbot-window { max-height:calc(100dvh - 100px); }
.footer-contact a, .uni-card-title { overflow-wrap:anywhere; }
.dropdown-item.active > .mega-menu, .dropdown-item.active > .dropdown-menu,
.dropdown-item:focus-within > .mega-menu, .dropdown-item:focus-within > .dropdown-menu { opacity:1; visibility:visible; transform:none; }
.mega-menu-content { grid-template-columns:1fr; }
.destinations-mega-menu { max-width:calc(100vw - 48px); }
@media (min-width:1600px) {
  .container, .nav-container, .footer-container { max-width:1440px; margin-inline:auto; }
  .home-hero { padding-block:80px; }
}
@media (max-width:1150px) {
  .nav-container { flex-wrap:wrap; gap:12px; padding:12px 20px; }
  .brand-logo { margin-right:auto; }
  .mobile-menu-toggle { display:flex; align-items:center; justify-content:center; width:44px; height:44px; order:2; }
  .nav-actions { width:auto; flex-direction:row; gap:8px; }
  .nav-actions .btn { font-size:12px; padding:10px 14px; }
  .nav-menu { display:none; position:absolute; top:100%; left:0; width:100%; padding:20px; background:#fff; border-bottom:1px solid var(--border-color); box-shadow:0 16px 28px #0000000d; flex-direction:column; align-items:stretch; gap:6px; max-height:calc(100dvh - 90px); overflow-y:auto; }
  .nav-menu.mobile-active { display:flex; }
  .nav-link, .dest-link, .dropdown-link { min-height:44px; }
  .nav-link { justify-content:space-between; font-size:15px; }
  .mega-menu, .dropdown-menu { display:none; position:static; width:100%; max-width:none; padding:12px; margin-top:6px; opacity:1; visibility:visible; transform:none; box-shadow:none; border:1px solid var(--border-color); }
  .dropdown-item:hover > .mega-menu, .dropdown-item:hover > .dropdown-menu,
  .dropdown-item:focus-within > .mega-menu, .dropdown-item:focus-within > .dropdown-menu { display:none; }
  .dropdown-item.active > .mega-menu, .dropdown-item.active > .dropdown-menu { display:block; }
  .destinations-grid-container { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
  .scraper-layout { grid-template-columns:1fr; }
  .filters-sidebar { position:static; }
}
@media (max-width:768px) {
  input, select, textarea { font-size:16px!important; max-width:100%; }
  .btn, .tab-btn, .fit-tab { min-height:44px; }
  .university-cards-grid { grid-template-columns:1fr; }
  .section-title { font-size:clamp(26px,6vw,36px); }
  .footer-container { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .motion-control { bottom:max(10px,env(safe-area-inset-bottom)); left:10px; min-height:44px; }
  .chatbot-window { right:12px; width:calc(100vw - 24px); }
}
@media (max-width:600px) {
  .nav-container { padding:10px 16px; gap:8px; }
  .nav-actions { display:none; }
  .nav-menu .nav-actions { display:flex; flex-direction:column; width:100%; padding-top:12px; }
  .nav-menu .nav-actions .btn { display:flex; width:100%; justify-content:center; font-size:14px; }
  .destinations-grid-container, .footer-container { grid-template-columns:1fr; }
  .logo-img { width:auto; height:38px; }
  .logo-text { font-size:22px; }
  .form-row { grid-template-columns:1fr; }
  .modal-box { width:100%; padding:24px 18px; }
  .results-bar { align-items:stretch; flex-direction:column; }
  .results-bar select { width:100%; }
  .admin-tabs-box { padding:12px; }
  .hero-title { overflow-wrap:break-word; }
}
@media (max-width:360px) {
  .home-headline { font-size:36px; }
  .uni-stats-list { grid-template-columns:1fr; }
  .login-shell { padding:20px; }
}
