/* =========================================================
   UMEED Professional Responsive + Single Natural Scroll Fix
   Applied after all other CSS. Public pages, mobile first safety.
   ========================================================= */

/* One natural document scroll only. No page lock, no giant custom rail. */
html,
body{
  width:100% !important;
  min-height:100% !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  scroll-behavior:auto !important;
  -webkit-overflow-scrolling:touch !important;
  overscroll-behavior-y:auto !important;
  scrollbar-width:thin !important;
  scrollbar-color:rgba(227,194,111,.48) transparent !important;
}
html::-webkit-scrollbar,
body::-webkit-scrollbar{width:6px !important;height:6px !important;display:block !important;}
html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track{background:transparent !important;}
html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb{background:rgba(227,194,111,.42) !important;border-radius:999px !important;}

#progress,
.hero-progress,
.scroll-progress,
.scroll-rail,
.scrollRail,
.page-progress,
.progress-rail,
.progressRail,
.custom-scrollbar,
.custom-scroll,
.page-veil,

.preloader,
.loader,
.splash-screen{display:none !important;opacity:0 !important;visibility:hidden !important;pointer-events:none !important;}

body.intro-done main,
main{opacity:1 !important;transform:none !important;filter:none !important;visibility:visible !important;}
body.intro-on main{pointer-events:none;}
body.no-scroll,
body.scroll-lock,
body.modal-open:not(:has(#lightbox[aria-hidden="false"])):not(:has(#albumModal[aria-hidden="false"])),
body.menu-open:not(:has(.drawer.open)){
  overflow-y:auto !important;
  position:static !important;
  height:auto !important;
  touch-action:auto !important;
}

*,*::before,*::after{box-sizing:border-box;}
img,video,canvas,svg{max-width:100%;}
img,video{height:auto;}
section,main,.container{max-width:100%;}

/* Stable layout rhythm for all public pages */
.container{width:min(100%,1200px) !important;margin-inline:auto !important;padding-inline:clamp(14px,3.4vw,24px) !important;}
.section{padding-block:clamp(38px,6vw,78px) !important;}
.sectionTitle{gap:12px !important;align-items:flex-start !important;}
.sectionTitle h2,.sectionTitle h3{font-size:clamp(24px,4.6vw,38px) !important;line-height:1.08 !important;}
.sectionTitle p{font-size:clamp(13px,2.5vw,16px) !important;line-height:1.6 !important;max-width:62ch !important;}

/* Cards: cleaner, smaller, less heavy on touch devices */
.card,
.notice,
.notice-card,
.feature,
.programCard,
.glass,
.visualBand,
.contactCard,
.admission-card,
.faculty-card,
.event-card,
.testimonial-card,
.blog-card,
.albumCard,
.step,
.highlight,
.pageHero .heroCard{
  border-radius:clamp(16px,3vw,24px) !important;
  padding:clamp(13px,2.5vw,20px) !important;
  box-shadow:0 10px 34px rgba(0,0,0,.16) !important;
  transform:none !important;
  will-change:auto !important;
}
.card:hover,
.notice:hover,
.notice-card:hover,
.feature:hover,
.programCard:hover,
.glass:hover,
.visualBand:hover,
.contactCard:hover,
.admission-card:hover,
.faculty-card:hover,
.event-card:hover,
.testimonial-card:hover,
.blog-card:hover,
.albumCard:hover,
.step:hover,
.btn:hover,
button:hover{transform:none !important;}
.card h4,.notice h4,.notice-card h4,.step h4{font-size:clamp(14px,2.6vw,16px) !important;line-height:1.2 !important;}
.card p,.notice p,.notice-card p,.step p,.tiny{font-size:clamp(12px,2.4vw,14px) !important;line-height:1.62 !important;}
.icon{width:40px !important;height:40px !important;border-radius:14px !important;}

/* Grids order naturally and never overflow */
.grid{display:grid !important;grid-template-columns:repeat(12,minmax(0,1fr)) !important;gap:clamp(10px,2vw,16px) !important;}
.span-4{grid-column:span 4 !important;}
.span-5{grid-column:span 5 !important;}
.span-6{grid-column:span 6 !important;}
.span-7{grid-column:span 7 !important;}
.span-12{grid-column:span 12 !important;}

/* Header should not create a fixed frame */
.nav{position:relative !important;top:auto !important;z-index:1000 !important;}
.navbar{min-height:var(--navH,72px) !important;height:auto !important;padding-block:10px !important;}
.brand{min-width:0 !important;}
.brandMark{flex:0 0 auto !important;}
.brandName,.brandSub{max-width:100% !important;white-space:normal !important;overflow-wrap:anywhere !important;}
.actions{flex:0 0 auto !important;}

/* Hero: good on large screens, controlled on mobiles */
.hero.hero-full,
section.hero.hero-full{aspect-ratio:16/9 !important;min-height:0 !important;max-height:none !important;overflow:hidden !important;}
.hero.hero-full .heroImg,
.hero.hero-full img,
.hero.hero-full video{object-fit:cover !important;transform:none !important;}
.hero-nav{width:clamp(34px,7vw,44px) !important;height:clamp(34px,7vw,44px) !important;}

/* Homepage sections */
.statsStrip{padding-block:10px !important;}
.statsGrid{display:grid !important;grid-template-columns:repeat(5,minmax(0,1fr)) !important;gap:8px !important;}
.statItem{padding:12px 8px !important;border:1px solid var(--stroke) !important;border-radius:16px !important;background:color-mix(in oklab,var(--panel2) 54%, transparent) !important;}
.statNum{font-size:clamp(20px,4vw,34px) !important;}
.statLbl{font-size:clamp(10px,1.8vw,12px) !important;line-height:1.35 !important;}

.visualBand{display:grid !important;grid-template-columns:1.05fr .95fr !important;gap:clamp(14px,3vw,26px) !important;align-items:center !important;}
.visualBand .visualMedia{min-height:clamp(230px,34vw,420px) !important;border-radius:clamp(18px,3vw,28px) !important;}
.visualBand .visualCopy{padding:clamp(14px,3vw,26px) !important;border-radius:clamp(18px,3vw,28px) !important;}
.visualBand .visualCopy h3{font-size:clamp(22px,4vw,36px) !important;line-height:1.1 !important;}
.visualBadges,.activityChips,.pills,.badgeRow,.formActions{gap:8px !important;}
.visualBadges span,.activityChips span,.pill,.badge{font-size:12px !important;padding:8px 10px !important;}

.activityWidget{display:grid !important;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr) !important;gap:clamp(14px,3vw,28px) !important;padding:clamp(14px,2.8vw,24px) !important;border-radius:clamp(18px,3vw,30px) !important;}
.activityMedia{min-height:clamp(210px,32vw,390px) !important;border-radius:clamp(16px,3vw,24px) !important;}
.activityContent h3{font-size:clamp(24px,4.5vw,44px) !important;line-height:1.06 !important;}
.activityContent p{font-size:clamp(13px,2.3vw,15px) !important;line-height:1.65 !important;}

.notice-grid{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)) !important;gap:clamp(10px,2vw,16px) !important;}
#gallery .galleryFolderCard .media{height:clamp(150px,34vw,260px) !important;border-radius:clamp(16px,3vw,22px) !important;}
#galleryAlbums .media,#albumGrid .media{aspect-ratio:4/3 !important;}

/* Internal pages */
.pageHero{padding-block:clamp(42px,7vw,78px) clamp(18px,4vw,30px) !important;}
.pageHero .container{display:grid !important;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr) !important;gap:clamp(14px,3vw,22px) !important;}
.pageHero h1{font-size:clamp(30px,5vw,44px) !important;line-height:1.05 !important;}
.pageHero p{font-size:clamp(13px,2.4vw,16px) !important;line-height:1.65 !important;}
.stepGrid{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)) !important;gap:12px !important;}
.split{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:14px !important;}
.stack-in-campus{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr)) !important;gap:12px !important;}

/* Forms and tables */
input,select,textarea{font-size:16px !important;padding:11px 12px !important;border-radius:18px !important;}
textarea{min-height:110px !important;}
.tableWrap{overflow-x:auto !important;-webkit-overflow-scrolling:touch !important;}

/* Footer */
.footer{padding-block:32px !important;}
.footSimple{display:flex !important;gap:18px !important;align-items:flex-start !important;justify-content:space-between !important;}
.footBrand{min-width:0 !important;}

@media (max-width:980px){
  .menu{display:none !important;}
  .hamb{display:inline-grid !important;}
  .pageHero .container,
  .visualBand,
  .activityWidget,
  .split{grid-template-columns:1fr !important;}
  .span-4,.span-5,.span-6,.span-7{grid-column:span 6 !important;}
  .statsGrid{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
}

@media (max-width:680px){
  :root{--navH:64px;}
  .container{padding-inline:14px !important;}
  .section{padding-block:34px !important;}
  .sectionTitle{flex-direction:column !important;margin-bottom:14px !important;}
  .grid{gap:10px !important;}
  .span-4,.span-5,.span-6,.span-7,.span-12{grid-column:1/-1 !important;}
  .card,
  .notice,
  .notice-card,
  .feature,
  .programCard,
  .glass,
  .visualBand,
  .contactCard,
  .admission-card,
  .faculty-card,
  .event-card,
  .testimonial-card,
  .blog-card,
  .albumCard,
  .step,
  .highlight,
  .pageHero .heroCard{padding:12px !important;border-radius:16px !important;}

  .navbar{gap:8px !important;padding-block:8px !important;}
  .brandMark{width:36px !important;height:36px !important;}
  .brandName{font-size:13px !important;line-height:1.05 !important;letter-spacing:.03em !important;max-width:180px !important;}
  .brandSub{font-size:10px !important;line-height:1.25 !important;max-width:180px !important;}
  .actions{gap:6px !important;}
  .actions .btn,.notice-bell{width:36px !important;height:36px !important;min-width:36px !important;padding:0 !important;border-radius:999px !important;display:grid !important;place-items:center !important;}
  .actions .btn-primary{display:none !important;}
  .drawer{width:min(330px,88vw) !important;padding:16px !important;}
  .drawer a{padding:11px 10px !important;border-radius:14px !important;}

  .hero.hero-full,section.hero.hero-full{aspect-ratio:16/9 !important;}
  .hero-nav{display:none !important;}

  .statsGrid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:8px !important;}
  .statItem{padding:10px 6px !important;border-radius:14px !important;}
  .statItem:last-child{grid-column:1/-1 !important;}

  .visualBand .visualMedia{min-height:190px !important;}
  .visualBand .visualCopy h3{font-size:23px !important;}
  .activityMedia{min-height:185px !important;}
  .activityContent{padding:2px !important;}
  .activityContent h3{font-size:24px !important;}
  .activityChips span,.visualBadges span,.pill,.badge{font-size:11px !important;padding:7px 9px !important;}
  #gallery .galleryFolderCard .media{height:160px !important;}
  .media .cap,.albumCard .cap{left:10px !important;right:10px !important;bottom:10px !important;padding:8px 10px !important;border-radius:12px !important;font-size:12px !important;}

  .pageHero{padding-top:36px !important;}
  .pageHero h1{font-size:28px !important;}
  .stepGrid{grid-template-columns:1fr !important;}
  .col-6,.col-12,.field{grid-column:1/-1 !important;}
  .formActions .btn{width:100% !important;justify-content:center !important;}
  .waFloat{right:12px !important;bottom:12px !important;padding:10px !important;border-radius:999px !important;}
  .waFloat .waLabel{display:none !important;}
  .footSimple{display:grid !important;grid-template-columns:1fr !important;}
}

@media (max-width:390px){
  .container{padding-inline:12px !important;}
  .brandName,.brandSub{max-width:150px !important;}
  .section{padding-block:30px !important;}
  .card,.notice,.notice-card,.activityWidget,.visualBand{padding:11px !important;}
  .statsGrid{grid-template-columns:1fr 1fr !important;}
  .statNum{font-size:20px !important;}
  .btn{padding:10px 12px !important;font-size:12px !important;}
}

/* Respect low-end devices and mobile touch: remove non-essential motion. */
@media (hover:none), (pointer:coarse), (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
  .reveal{opacity:1 !important;transform:none !important;filter:none !important;}
  .media:hover img,.albumCard:hover img,.visualBand:hover .visualMedia img{transform:none !important;filter:none !important;}
}


/* Final homepage album gate: mobile .grid display rule must not reveal albums before button press. */
#galleryAlbums.albumsCollapsed{display:none !important;}
#galleryAlbums.albumsOpen{display:grid !important;}
