/* ---------- index-styles.css ---------- */
:root{
    --page:#ffffff;
    --brand:#2f6f3c;
    --brand-dark:#245a30;
    --accent:#f2c24b;
    --ink:#0f172a;
    --muted:#475569;
    --hdr-green:#2f6f3c;
    --hdr-green-dark:#245a30;
    --hdr-gold:#e7d28a;
    --hdr-pill:#f6e39a;
    --hero-bg: linear-gradient(90deg, #1f5c33 0%, #2f6f3c 55%, #e9e0b5 100%);
    --ach-green:#2f6f3c;
    --ach-gold:#f6e39a;
    --ach-serif: Georgia, "Times New Roman", serif;
    --ach-sans: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    --ach-tag-bg:#2f6f3c;
    --ach-tag-border:#245a30;
    --ach-tag-day:#f6e39a;
    --ach-tag-month:#f4e6b2;
}

*{ box-sizing:border-box; }

html{
  scroll-behavior:smooth;
  width:100%;
  max-width:100%;
  height:auto;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  background:#fff;
}

body{
  margin:0;
  padding:0;
  width:100%;
  max-width:100%;
  min-height:100%;
  color:var(--ink);
  font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  line-height:1.6;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  background:#fff;
}

body.cdsl-mobile-safe{
  min-width:320px;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  overscroll-behavior-x:none;
  overflow-y:auto !important;
}

a{ color:var(--brand-dark); text-decoration:none; }

@supports (overflow: clip) {
  html{ overflow-x:clip; }
  body{ overflow-x:clip; }
}

img,
svg,
video,
canvas,
iframe{
  max-width:100%;
}

/* ---------- reveal ---------- */
.reveal{
  opacity:0;
  visibility:hidden;
  transition:
    opacity .8s cubic-bezier(.22,.61,.36,1),
    transform .8s cubic-bezier(.22,.61,.36,1),
    filter .8s cubic-bezier(.22,.61,.36,1);
  will-change:opacity, transform, filter;
  filter:blur(8px);
}
.reveal.is-visible{
  opacity:1;
  visibility:visible;
  transform:none !important;
  filter:blur(0) !important;
}
.reveal.no-anim-init{
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
  filter:none !important;
  transition:none !important;
}
.reveal-up{ transform:translateY(42px); }
.reveal-left{ transform:translateX(42px); }
.reveal-right{ transform:translateX(-42px); }
.reveal-zoom{ transform:scale(.94); }
.delay-1{ transition-delay:.08s; }
.delay-2{ transition-delay:.16s; }
.delay-3{ transition-delay:.24s; }

/* ---------- header ---------- */
.header-top{
  position:sticky;
  top:0;
  z-index:999;
  background-color:var(--hdr-green);
  box-shadow:0 6px 18px rgba(0,0,0,.18);
  width:100% !important;
  max-width:100% !important;
}
.header-top .container-fluid{
  padding-left:clamp(12px, 2vw, 22px);
  padding-right:clamp(12px, 2vw, 22px);
  max-width:100%;
}
.topbar-area{ padding:10px 0; }
.topbar-sample{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.hdr-left{ display:flex; align-items:center; gap:12px; flex:0 0 auto; }
.hdr-logo{
  width:clamp(54px, 6vw, 74px);
  height:clamp(54px, 6vw, 74px);
  border-radius:50%;
  object-fit:contain;
  flex:0 0 auto;
}
.hdr-center{ flex:1 1 520px; min-width:260px; }
.hdr-rep{
  color:#ffffff;
  font-weight:700;
  font-size:clamp(.78rem, 1.1vw, .95rem);
  letter-spacing:.3px;
  line-height:1.1;
  margin:0;
}
.hdr-line{
  width:100%;
  max-width:520px;
  height:2px;
  margin:6px 0 8px;
  background:linear-gradient(90deg, var(--hdr-gold) 0%, rgba(231,210,138,.35) 70%, rgba(231,210,138,0) 100%);
}
.hdr-title{
  margin:0;
  font-family:Georgia, "Times New Roman", serif;
  font-weight:800;
  letter-spacing:1px;
  color:#ffffff;
  font-size:clamp(1.15rem, 2.1vw, 2.05rem);
  line-height:1.05;
  text-transform:uppercase;
  text-shadow:0 2px 0 rgba(0,0,0,.25), 0 0 10px rgba(0,0,0,.20);
}
.hdr-tagline{
  margin:4px 0 0;
  color:#ffffff;
  font-weight:600;
  font-size:clamp(.72rem, 1.15vw, .95rem);
  opacity:.95;
}

.philippine-time{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:10px 14px;
  flex:0 1 360px;
  max-width:360px;
  min-width:220px;
  margin-left:auto;
}
.philippine-time .time-label{
  margin:0;
  color:var(--hdr-pill);
  font-weight:600;
  font-size:clamp(.7rem, .9vw, .85rem);
  text-align:right;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.philippine-time .time{
  margin:0;
  color:#f5f5f5;
  font-weight:normal;
  font-size:clamp(.75rem, 1vw, .9rem);
  font-family:"Segoe UI", Tahoma, sans-serif;
  text-align:right;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* ---------- nav ---------- */
.navbar-wrap{
  position:relative;
  height:0;
  overflow:visible;
  z-index:30;
}
.navbar-bar{
  position:absolute;
  left:0;
  right:0;
  top:0;
  display:flex;
  align-items:center;
  justify-content:center;
  border-top:1px solid rgba(255,255,255,.10);
  background:rgba(36, 90, 48, 0.58);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  box-shadow:0 6px 16px rgba(0,0,0,.10);
  opacity:1;
  transform:translate3d(0,0,0);
  transition:
    transform .38s cubic-bezier(.22,.61,.36,1),
    opacity .26s ease,
    background .25s ease;
  will-change:transform, opacity;
  backface-visibility:hidden;
}
.navbar-wrap.is-hidden .navbar-bar{
  opacity:0;
  transform:translate3d(0,-14px,0);
  pointer-events:none;
}
.nav-inner{
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:center;
  padding:12px;
  flex-wrap:wrap;
}
.nav-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 16px;
  border-radius:4px;
  text-decoration:none;
  font-weight:600;
  color:#ffffff;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.16);
  font-size:.9rem;
  transition:transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
}
.nav-pill:hover{
  background:rgba(242,194,75,.82);
  color:#1f2a37;
  border-color:rgba(0,0,0,.08);
  transform:translateY(-3px);
}

/* ---------- quick links ---------- */
.quicklinks-offcanvas{
  border:0;
  background:linear-gradient(180deg, var(--brand) 0%, var(--brand-dark) 100%);
  color:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.12);
  max-width:min(88vw, 360px);
}
.quicklinks-offcanvas .offcanvas-header{
  border-bottom:1px solid rgba(255,255,255,.15);
}
.quicklinks-title{
  font-weight:600;
  letter-spacing:.5px;
  margin:0;
  font-size:1.1rem;
}
.quicklinks-sub{
  margin:4px 0 0;
  font-weight:500;
  opacity:.9;
  font-size:.85rem;
}
.quicklinks-offcanvas .offcanvas-body{
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
}
.quicklinks-list{
  padding:16px;
  width:100%;
}
.quicklink{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  padding:10px 14px;
  border-radius:4px;
  text-decoration:none;
  color:#fff;
  font-weight:500;
  border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.08);
  margin-bottom:6px;
  font-size:.9rem;
  transition:transform .25s ease, background .25s ease, border-color .25s ease;
  white-space:normal;
  word-break:break-word;
  overflow-wrap:anywhere;
}
.quicklink:hover{
  background:rgba(255,255,255,.15);
  border-color:rgba(255,255,255,.25);
  transform:translateX(4px);
}
.quicklink.active{
  background:var(--accent);
  color:#1f2a37;
  border:1px solid rgba(0,0,0,.1);
}

/* ---------- bottom menu button ---------- */
.bottom-menu-btn{
  position:fixed;
  left:18px;
  bottom:18px;
  z-index:1200;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 16px;
  border-radius:4px;
  border:1px solid rgba(0,0,0,.08);
  background:rgba(255,255,255,.95);
  box-shadow:0 8px 24px rgba(0,0,0,.12);
  font-weight:600;
  color:var(--brand-dark);
  cursor:pointer;
  user-select:none;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(14px);
  transition:
    opacity .26s ease,
    transform .32s cubic-bezier(.22,.61,.36,1),
    visibility .26s ease,
    box-shadow .25s ease;
  font-size:.9rem;
  will-change:opacity, transform;
  max-width:calc(100vw - 24px);
}
.bottom-menu-btn:hover{ box-shadow:0 14px 30px rgba(0,0,0,.18); }
.bottom-menu-btn i{
  width:36px;
  height:36px;
  border-radius:4px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(47,111,60,.1);
  border:1px solid rgba(47,111,60,.15);
  font-size:1.1rem;
}
.bottom-menu-btn .txt{
  display:flex;
  flex-direction:column;
  line-height:1.2;
  min-width:0;
}
.bottom-menu-btn .txt small{
  font-weight:500;
  opacity:.75;
  font-size:.75rem;
}
.bottom-menu-btn.is-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}
.bottom-menu-btn.offcanvas-open{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  transform:translateY(10px) !important;
}

/* ---------- featured ---------- */
.featured-bleed{
  width:100% !important;
  max-width:100% !important;
  margin:0 !important;
  margin-bottom:0;
}
.featured-hero{
  position:relative;
  background:var(--hero-bg);
  border:0;
  border-radius:0;
  box-shadow:none;
  overflow:hidden !important;
  margin-bottom:0;
  width:100%;
  max-width:100%;
}
.featured-slide{
  position:relative;
  width:100%;
  overflow:hidden !important;
  background:var(--hero-bg);
  aspect-ratio:21 / 9;
  min-height:300px;
  max-height:min(720px, calc(100vh - 160px));
  --slide-img:none;
}
.featured-slide::before{
  content:"";
  position:absolute;
  inset:-24px;
  background-image:var(--slide-img);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  filter:blur(18px);
  transform:scale(1.08);
  opacity:.35;
  z-index:0;
}
.featured-media{
  position:absolute;
  inset:0;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
}
.featured-image{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  object-position:center;
  filter:drop-shadow(0 10px 28px rgba(0,0,0,.22));
}
.featured-media.has-link{ cursor:pointer; }
.featured-click{
  position:absolute;
  inset:0;
  z-index:3;
  display:block;
}
.poster-fallback{
  width:100% !important;
  height:100% !important;
  border-radius:0 !important;
  border:0 !important;
  background:#f8f9fa;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:2;
}

#featuredCarousel,
#featuredCarousel .carousel-inner,
#featuredCarousel .carousel-item{
  overflow:hidden !important;
}

#featuredCarousel::-webkit-scrollbar,
#featuredCarousel .carousel-inner::-webkit-scrollbar,
#featuredCarousel .carousel-item::-webkit-scrollbar,
.featured-hero::-webkit-scrollbar,
.featured-slide::-webkit-scrollbar{
  display:none;
}

/* ---------- announcements ---------- */
.ann-section{
  width:100% !important;
  max-width:100% !important;
  margin:0 !important;
  padding:0 0 20px;
  background:#ffffff;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
}
.ann-title{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-family:Georgia, "Times New Roman", serif;
  font-weight:800;
  color:var(--brand-dark);
  font-size:clamp(1.4rem, 2.2vw, 2.15rem);
  margin:0 0 18px;
  padding-top:22px;
  text-align:center;
}
.ann-title i{
  color:var(--brand);
  font-size:1.25em;
  transform:translateY(-1px);
}
.ann-shell{
  position:relative;
  max-width:1280px;
  margin:0 auto;
  padding:0 22px;
  overflow:visible;
}
.ann-carousel{
  touch-action:pan-y;
  overscroll-behavior-x:contain;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
}
.ann-row{
  display:flex;
  justify-content:center;
  align-items:stretch;
  gap:26px;
  flex-wrap:nowrap;
}
.ann-col{
  flex:0 0 360px;
  max-width:360px;
  width:100%;
}
.ann-desktop{ display:block; }
.ann-mobile{ display:none; }

.ann-card{
  position:relative;
  background:var(--hdr-green);
  border:2px solid var(--hdr-green);
  border-radius:4px;
  box-shadow:0 12px 26px rgba(2,6,23,.14);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  height:560px;
  width:100%;
  transition:transform .35s ease, box-shadow .35s ease;
}
.ann-card:hover{
  transform:translateY(-8px);
  box-shadow:0 20px 34px rgba(2,6,23,.20);
}

.ann-media{
  position:relative;
  overflow:hidden;
  background:#2f6f3c;
  padding:0;
  margin:0;
}
.ann-media img{
  width:100%;
  height:300px;
  display:block;
  object-fit:cover;
  object-position:center;
  transition:transform .7s ease;
}
.ann-card:hover .ann-media img{ transform:scale(1.05); }

.ann-media-fallback{
  width:100%;
  height:300px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:10px;
  background:#f1f5f9;
  color:#64748b;
}
.ann-media-fallback i{
  font-size:2.4rem;
  color:var(--accent);
}

.ann-date-tag{
  position:absolute;
  top:-6px;
  left:12px;
  z-index:30;
  width:92px;
  background:#f6e39a;
  overflow:hidden;
  text-align:center;
  border-radius:0 0 4px 4px;
}
.ann-date-tag .d{
  font-weight:900;
  font-size:1.45rem;
  color:#1f5c33;
  padding:10px 6px 2px;
  font-family:Georgia, "Times New Roman", serif;
}
.ann-date-tag .m{
  font-weight:800;
  font-size:.85rem;
  color:#1f5c33;
  padding:4px 8px 10px;
}

.ann-body{
  padding:18px 18px 16px;
  color:#fff;
  display:flex;
  flex-direction:column;
  flex:1;
  min-height:0;
  overflow:hidden;
}
.ann-h{
  font-family:Georgia, "Times New Roman", serif;
  font-weight:800;
  color:#f6e39a;
  font-size:1.55rem;
  line-height:1.05;
  margin:0 0 10px;
}
.ann-excerpt-wrap{
  position:relative;
  flex:1;
  min-height:0;
  overflow:hidden;
}
.ann-p{
  font-weight:600;
  color:rgba(255,255,255,.90);
  line-height:1.55;
  font-size:.98rem;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:6;
  overflow:hidden;
  margin:0;
}
.ann-excerpt-wrap::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:34px;
  background:linear-gradient(180deg, rgba(47,111,60,0) 0%, rgba(47,111,60,.35) 45%, rgba(47,111,60,.78) 80%, rgba(47,111,60,1) 100%);
  pointer-events:none;
}
.ann-footer{
  padding-top:12px;
  display:flex;
  justify-content:center;
  margin-top:auto;
}
.ann-more{
  color:rgba(255,255,255,.92);
  font-weight:800;
  letter-spacing:.2px;
  padding:8px 4px;
  border-bottom:2px solid rgba(246,227,154,0);
  transition:color .25s ease, border-color .25s ease;
}
.ann-more:hover{
  color:#f6e39a;
  border-bottom-color:rgba(246,227,154,.85);
}

/* ---------- achievements ---------- */
.achm-bleed{
  width:100% !important;
  max-width:100% !important;
  margin:0 !important;
  background:var(--ach-green);
  padding:12px 0 28px;
  overflow:visible;
  -webkit-overflow-scrolling:touch;
}
.achm-heading-edge{
  width:100%;
  margin:0 0 18px 0;
  display:flex;
  justify-content:flex-start;
}
.achm-badge{
  display:inline-flex;
  align-items:center;
  min-width:360px;
  max-width:100%;
  min-height:84px;
  background:var(--ach-gold);
  color:#1f5c33;
  font-weight:900;
  font-family:var(--ach-serif);
  padding:16px 24px 16px 12px;
  border-radius:0 18px 18px 0;
  box-shadow:0 12px 20px rgba(0,0,0,.18);
  border:2px solid rgba(0,0,0,.06);
  border-left:0;
  font-size:1.5rem;
}
.achm-badge span{
  display:block;
  line-height:1.1;
  font-family:var(--ach-serif);
  font-size:inherit;
  font-weight:900;
  white-space:nowrap;
}
.achm-shell{
  max-width:1140px;
  margin:0 auto;
  padding:0 16px;
  overflow:visible;
}
.achm-list{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.achm-card{
  width:100%;
  border-radius:0;
  overflow:hidden;
  border:3px solid rgba(0,0,0,.15);
  box-shadow:0 12px 18px rgba(0,0,0,.18);
  display:flex;
  min-height:205px;
  background:linear-gradient(90deg, rgba(246,227,154,.95) 0%, rgba(255,246,210,.96) 55%, rgba(246,227,154,.92) 100%);
  transition:transform .35s ease, box-shadow .35s ease;
}
.achm-card:hover{
  transform:translateY(-8px);
  box-shadow:0 20px 30px rgba(0,0,0,.24);
}
.achm-card.is-reverse{ flex-direction:row-reverse; }

.achm-img{
  flex:0 0 310px;
  width:310px;
  background:linear-gradient(180deg, #9ccc65 0%, #edf7d7 55%, #ffffff 100%);
  border-right:3px solid rgba(0,0,0,.12);
  position:relative;
  min-height:205px;
  overflow:visible;
}
.achm-card.is-reverse .achm-img{
  border-right:0;
  border-left:3px solid rgba(0,0,0,.12);
}

.achm-date-tag{
  position:absolute;
  top:-14px;
  left:14px;
  z-index:25;
  width:108px;
  height:86px;
  background:var(--ach-tag-bg);
  box-shadow:0 10px 18px rgba(0,0,0,.22);
  border-radius:0 0 18px 18px;
  text-align:center;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:6px 8px 8px;
  border:2px solid var(--ach-tag-border);
  border-top:0;
}
.achm-card.is-reverse .achm-date-tag{
  left:auto;
  right:14px;
}
.achm-date-tag .d{
  display:block;
  font-weight:900;
  font-size:2.15rem;
  line-height:.95;
  color:var(--ach-tag-day);
  font-family:var(--ach-serif);
  margin:0;
}
.achm-date-tag .m{
  display:block;
  font-weight:800;
  font-size:.72rem;
  line-height:1.05;
  color:var(--ach-tag-month);
  margin:3px 0 0;
  font-family:var(--ach-sans);
}

.achm-img .carousel,
.achm-img .carousel-inner,
.achm-img .carousel-item{
  height:100%;
}

.achm-img img{
  width:100%;
  height:205px;
  object-fit:cover;
  display:block;
  background:rgba(255,255,255,.55);
  transition:transform .7s ease;
}
.achm-card:hover .achm-img img{ transform:scale(1.04); }

.achm-img .img-fb{
  height:205px;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:8px;
  font-weight:800;
  color:#64748b;
  background:rgba(255,255,255,.70);
  font-family:var(--ach-sans);
}
.achm-img .img-fb i{
  font-size:2rem;
  color:var(--accent);
}
.achm-img .carousel-control-prev,
.achm-img .carousel-control-next{
  width:18%;
  opacity:1;
}
.achm-img .carousel-control-prev-icon,
.achm-img .carousel-control-next-icon{
  filter:drop-shadow(0 3px 8px rgba(0,0,0,.35));
}
.achm-img .carousel-indicators{ margin-bottom:6px; }
.achm-img .carousel-indicators [data-bs-target]{
  width:8px;
  height:8px;
  border-radius:999px;
}

.achm-body{
  flex:1;
  padding:16px 18px;
  display:flex;
  flex-direction:column;
  min-width:0;
}
.achm-title{
  font-family:var(--ach-serif);
  font-size:.98rem;
  line-height:1.2;
  margin:0 0 8px;
  word-break:break-word;
  text-transform:uppercase;
  color:#1f5c33;
  font-weight:900;
}
.achm-cap{
  margin:0;
  font-weight:400;
  color:rgba(15,23,42,.78);
  line-height:1.5;
  font-size:.92rem;
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
  font-family:var(--ach-sans);
}

.achm-moreline{
  margin-top:auto;
  padding-top:12px;
  display:flex;
  justify-content:center;
}
.achm-moreline a{
  color:rgba(15,23,42,.70);
  font-weight:900;
  letter-spacing:.2px;
  border-bottom:2px solid rgba(15,23,42,.10);
  padding:2px 4px;
  text-transform:lowercase;
  font-family:var(--ach-sans);
  font-size:.92rem;
  transition:color .25s ease, border-color .25s ease;
}
.achm-moreline a:hover{
  color:rgba(15,23,42,.92);
  border-bottom-color:rgba(15,23,42,.35);
}

.achm-viewwrap{
  margin-top:12px;
  display:flex;
  justify-content:center;
}
.achm-viewmore{
  display:inline-block;
  color:rgba(255,255,255,.92);
  font-weight:900;
  letter-spacing:.3px;
  padding:6px 10px;
  border-bottom:2px solid rgba(246,227,154,0);
  font-family:var(--ach-sans);
  transition:color .25s ease, border-color .25s ease;
}
.achm-viewmore:hover{
  color:#f6e39a;
  border-bottom-color:rgba(246,227,154,.90);
}
.achm-hidden{ display:none; }
.achm-hidden.show{ display:block; }

/* ---------- about ---------- */
.about-static-section{
  width:100% !important;
  max-width:100% !important;
  margin:0 !important;
  background:#ffffff;
  padding:20px 22px 34px;
  -webkit-overflow-scrolling:touch;
}
.about-static-wrap{
  width:100%;
  max-width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.about-static-grid{
  width:100%;
  max-width:100%;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:28px;
  align-items:start;
}
.about-static-item img{
  width:100%;
  height:auto;
  display:block;
  object-fit:contain;
  transition:transform .45s ease, filter .45s ease;
}
.about-static-item:hover img{
  transform:translateY(-6px) scale(1.01);
  filter:drop-shadow(0 12px 18px rgba(0,0,0,.10));
}

/* ---------- footer ---------- */
.footer-wrap{
  width:100% !important;
  max-width:100% !important;
  margin:0 !important;
  background:#2f6f3c;
  padding:0;
  overflow:hidden;
  -webkit-overflow-scrolling:touch;
}
.footer-outer{
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
}
footer{
  width:100%;
  background:#2f6f3c;
  border-radius:0;
  padding:14px 0 18px;
  box-shadow:none;
  margin:0;
}
.footer-bar{
  width:100%;
  max-width:1280px;
  margin:0 auto;
  padding:0 14px;
}
.footer-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.footer-left{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  flex:1 1 420px;
}
.footer-logo{
  width:46px;
  height:46px;
  object-fit:contain;
  transition:transform .35s ease;
  flex:0 0 auto;
}
.footer-left:hover .footer-logo{ transform:rotate(-4deg) scale(1.04); }
.footer-brand-text{
  min-width:0;
  flex:1 1 auto;
}
.footer-title{
  margin:0;
  color:#ffffff;
  font-family:Georgia, "Times New Roman", serif;
  font-weight:800;
  font-size:1rem;
  line-height:1.08;
  text-transform:uppercase;
  white-space:normal;
  word-break:break-word;
}
.footer-right{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:8px;
  flex:1 1 420px;
  min-width:0;
}
.footer-contact{
  display:flex;
  align-items:flex-start;
  gap:9px;
  color:#ffffff;
  font-size:.84rem;
  line-height:1.28;
  word-break:break-word;
  transition:transform .25s ease, opacity .25s ease;
  width:100%;
}
.footer-contact:hover{
  transform:translateX(4px);
  opacity:1;
}
.footer-contact i{
  font-size:1rem;
  color:#ffffff;
  width:20px;
  text-align:center;
  flex:0 0 20px;
  margin-top:2px;
}
.footer-contact a,
.footer-contact span{
  color:#ffffff;
  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.footer-contact a:hover{ color:#f6e39a; }

.container,
.container-fluid{
  max-width:100%;
}

/* ---------- desktop/tablet adjustments ---------- */
@media (max-width: 1200px){
  .ann-col{ flex-basis:340px; max-width:340px; }
}

@media (max-width: 992px){
  .ann-row{
    flex-wrap:wrap;
    gap:18px;
  }
  .ann-col{
    flex:0 0 340px;
    max-width:340px;
  }

  .achm-badge{
    min-width:320px;
    min-height:76px;
    font-size:1.5rem;
    padding:14px 20px 14px 10px;
  }
  .achm-img{
    flex-basis:280px;
    width:280px;
  }
  .achm-img img,
  .achm-img .img-fb{
    height:195px;
  }
  .achm-card{ min-height:195px; }

  .about-static-section{ padding:20px 18px 30px; }
  .about-static-grid{ gap:18px; }
}

@media (min-width: 769px){
  footer{ padding:18px 0; }
  .footer-bar{ padding:0 22px; }
  .footer-row{ gap:28px; }
  .footer-left{ gap:16px; min-width:280px; }
  .footer-logo{ width:70px; height:70px; }
  .footer-title{
    font-size:clamp(1.15rem, 1.8vw, 2rem);
    line-height:1.1;
    white-space:normal;
  }
  .footer-right{ gap:10px; min-width:280px; }
  .footer-contact{
    font-size:clamp(.85rem, 1vw, 1rem);
    line-height:1.35;
    gap:14px;
  }
  .footer-contact i{
    font-size:1.35rem;
    width:28px;
    flex:0 0 28px;
    margin-top:1px;
  }
}

/* ---------- mobile ---------- */
@media (max-width: 768px){
  html{
    width:100%;
    max-width:100%;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
  }

  body,
  body.cdsl-mobile-safe{
    width:100%;
    max-width:100%;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch;
  }

  .topbar-area{ padding:10px 8px !important; }
  .topbar-sample{
    width:100%;
    min-width:0;
    flex-wrap:nowrap !important;
    gap:8px !important;
    align-items:flex-start !important;
  }
  .hdr-left{
    flex:0 0 auto;
    min-width:0;
  }
  .hdr-logo{
    width:48px !important;
    height:48px !important;
  }
  .hdr-center{
    flex:1 1 auto !important;
    min-width:0 !important;
    overflow:hidden;
  }
  .hdr-rep{
    font-size:.68rem !important;
    line-height:1.15 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }
  .hdr-line{
    margin:4px 0 6px !important;
    max-width:100% !important;
  }
  .hdr-title{
    font-size:.98rem !important;
    line-height:1.05 !important;
    letter-spacing:.2px !important;
    display:-webkit-box !important;
    -webkit-line-clamp:2 !important;
    -webkit-box-orient:vertical !important;
    overflow:hidden !important;
    word-break:break-word !important;
  }
  .hdr-tagline{
    font-size:.64rem !important;
    line-height:1.18 !important;
    display:-webkit-box !important;
    -webkit-line-clamp:2 !important;
    -webkit-box-orient:vertical !important;
    overflow:hidden !important;
    word-break:break-word !important;
  }
  .philippine-time{ display:none !important; }

  .navbar-wrap{ display:none !important; }

  .bottom-menu-btn{
    left:12px !important;
    right:auto !important;
    bottom:max(12px, env(safe-area-inset-bottom)) !important;
    padding:10px 12px !important;
    font-size:.82rem !important;
    z-index:1300 !important;
    gap:8px !important;
    max-width:calc(100vw - 24px) !important;
  }
  .bottom-menu-btn i{
    width:30px !important;
    height:30px !important;
    font-size:.95rem !important;
  }
  .bottom-menu-btn .txt{
    line-height:1.1 !important;
    overflow:hidden;
  }
  .bottom-menu-btn .txt small{
    font-size:.66rem !important;
  }

  .featured-slide{
    width:100%;
    aspect-ratio:16 / 10;
    min-height:220px;
    max-height:none;
  }
  .featured-slide::before{
    inset:-10px;
    filter:blur(12px);
  }
  .featured-media,
  .featured-image{
    width:100%;
    height:100%;
  }
  .featured-image{
    object-fit:contain;
    object-position:center;
  }
  #featuredCarousel .carousel-control-prev,
  #featuredCarousel .carousel-control-next{
    width:12%;
  }
  #featuredCarousel .carousel-indicators{
    margin-bottom:10px;
  }

  .ann-section{
    padding-bottom:14px;
  }
  .ann-title{
    font-size:1.1rem;
    gap:8px;
    padding:16px 12px 0;
    margin-bottom:12px;
  }
  .ann-shell{
    width:100%;
    max-width:100%;
    padding:0 10px !important;
  }
  .ann-desktop{ display:none; }
  .ann-mobile{
    display:block;
    width:100%;
  }
  .ann-row{
    width:100%;
    margin:0;
    flex-wrap:nowrap;
    gap:0;
  }
  .ann-col{
    flex:0 0 100%;
    width:100%;
    max-width:100%;
  }
  .ann-card{
    width:100%;
    max-width:100%;
    height:auto !important;
    min-height:0;
    margin:0 auto;
  }
  .ann-card:hover{ transform:none; }
  .ann-media img,
  .ann-media-fallback{
    height:210px !important;
  }
  .ann-body{
    padding:14px 14px 16px;
  }
  .ann-h{
    font-size:1.2rem;
    line-height:1.08;
    word-break:break-word;
  }
  .ann-p{
    font-size:.92rem;
    -webkit-line-clamp:5;
  }
  .ann-excerpt-wrap::after{
    height:26px;
  }
  .ann-date-tag{
    width:74px;
    left:10px;
  }
  .ann-date-tag .d{
    font-size:1.15rem;
    padding-top:8px;
  }
  .ann-date-tag .m{
    font-size:.72rem;
    padding-bottom:8px;
  }

  .achm-bleed{
    padding:8px 0 22px;
    overflow:hidden;
  }
  .achm-heading-edge{ margin-bottom:12px; }
  .achm-shell{
    width:100%;
    max-width:100%;
    padding:0 10px !important;
  }
  .achm-badge{
    width:210px;
    max-width:calc(100vw - 20px);
    min-width:0;
    min-height:46px;
    padding:8px 10px 8px 8px;
    border-radius:0 12px 12px 0;
    font-size:.85rem;
  }
  .achm-badge span{
    white-space:normal;
    line-height:1.05;
    max-width:100%;
    overflow:hidden;
  }

  .achm-card,
  .achm-card.is-reverse{
    width:100%;
    max-width:100%;
    flex-direction:column !important;
  }
  .achm-img{
    width:100%;
    flex:0 0 auto;
    min-height:190px;
    overflow:hidden;
    border-right:0 !important;
    border-left:0 !important;
    border-bottom:3px solid rgba(0,0,0,.12);
  }
  .achm-img img,
  .achm-img .img-fb{
    width:100%;
    height:190px !important;
    object-fit:cover;
  }
  .achm-card{ min-height:unset; }
  .achm-card:hover{ transform:none; }
  .achm-card.is-reverse .achm-date-tag{
    right:auto;
    left:12px;
  }
  .achm-date-tag{
    top:-10px;
    left:12px;
    width:84px;
    height:68px;
    padding:5px 6px 6px;
    border-radius:0 0 16px 16px;
  }
  .achm-date-tag .d{ font-size:1.6rem; }
  .achm-date-tag .m{ font-size:.62rem; }

  .achm-body{
    width:100%;
    min-width:0;
    padding:12px;
  }
  .achm-title{
    font-size:.86rem;
    line-height:1.15;
    margin-bottom:8px;
    word-break:break-word;
  }
  .achm-cap{
    font-size:.84rem;
    line-height:1.45;
    -webkit-line-clamp:4;
  }
  .achm-moreline{
    padding-top:10px;
  }
  .achm-moreline a{
    font-size:.88rem;
  }

  .about-static-section{
    padding:16px 10px 20px !important;
  }
  .about-static-grid{
    grid-template-columns:1fr !important;
    gap:14px !important;
  }
  .about-static-item:hover img{
    transform:none;
    filter:none;
  }

  .footer-bar{
    width:100%;
    max-width:100%;
    padding:0 12px !important;
  }
  .footer-row{
    flex-direction:column;
    align-items:flex-start;
    gap:14px;
  }
  .footer-left,
  .footer-right{
    width:100%;
    min-width:0;
    flex:1 1 100%;
  }
  .footer-logo{
    width:52px;
    height:52px;
  }
  .footer-title{
    font-size:.98rem;
    line-height:1.15;
  }
  .footer-contact{
    font-size:.82rem;
    line-height:1.3;
  }
  .footer-contact a,
  .footer-contact span{
    overflow-wrap:anywhere;
    word-break:break-word;
  }

  .quicklinks-offcanvas{
    width:min(88vw, 340px) !important;
    max-width:88vw !important;
  }
  .quicklinks-offcanvas .offcanvas-header{
    padding:14px 14px 12px;
  }
  .quicklinks-title{ font-size:1rem; }
  .quicklinks-sub{ font-size:.78rem; }
  .quicklinks-list{ padding:12px; }
  .quicklink{
    padding:11px 12px;
    font-size:.88rem;
    line-height:1.3;
  }

  body{
    overscroll-behavior-y:auto;
    text-rendering:optimizeLegibility;
  }

  .header-top,
  .featured-hero,
  .ann-card,
  .achm-card,
  .about-static-item,
  .footer-wrap,
  .bottom-menu-btn,
  .quicklinks-offcanvas,
  .quicklink,
  .nav-pill{
    -webkit-transform:translateZ(0);
    transform:translateZ(0);
    backface-visibility:hidden;
  }

  .featured-slide::before,
  .featured-image,
  .ann-media img,
  .achm-img img{
    will-change:transform;
    -webkit-transform:translateZ(0);
    transform:translateZ(0);
  }

  .reveal{
    transition:
      opacity .55s cubic-bezier(.22,.61,.36,1),
      transform .55s cubic-bezier(.22,.61,.36,1),
      filter .55s cubic-bezier(.22,.61,.36,1);
    filter:blur(4px);
  }
  .reveal-up{ transform:translateY(22px); }
  .reveal-left{ transform:translateX(18px); }
  .reveal-right{ transform:translateX(-18px); }
  .reveal-zoom{ transform:scale(.985); }

  .ann-card:hover,
  .achm-card:hover,
  .about-static-item:hover img,
  .nav-pill:hover,
  .quicklink:hover,
  .bottom-menu-btn:hover{
    transform:none !important;
  }

  .featured-slide::before{
    filter:blur(10px);
  }

  .quicklinks-offcanvas,
  .quicklinks-offcanvas *{
    -webkit-overflow-scrolling:touch;
  }

  /* mobile carousel scroll lock fix */
  #featuredCarousel,
  #featuredCarousel .carousel-inner,
  #featuredCarousel .carousel-item,
  #annCarouselDesktop,
  #annCarouselDesktop .carousel-inner,
  #annCarouselDesktop .carousel-item,
  #annCarouselMobile,
  #annCarouselMobile .carousel-inner,
  #annCarouselMobile .carousel-item,
  .ach-img-carousel,
  .ach-img-carousel .carousel-inner,
  .ach-img-carousel .carousel-item,
  .ann-media,
  .achm-img,
  .featured-media,
  .featured-image,
  .ann-media img,
  .achm-img img{
    touch-action:pan-y pinch-zoom !important;
    -ms-touch-action:pan-y pinch-zoom !important;
  }

  #featuredCarousel .carousel-inner,
  #annCarouselDesktop .carousel-inner,
  #annCarouselMobile .carousel-inner,
  .ach-img-carousel .carousel-inner{
    overflow:hidden;
  }

  #featuredCarousel .carousel-control-prev,
  #featuredCarousel .carousel-control-next,
  #annCarouselDesktop .carousel-control-prev,
  #annCarouselDesktop .carousel-control-next,
  #annCarouselMobile .carousel-control-prev,
  #annCarouselMobile .carousel-control-next,
  .ach-img-carousel .carousel-control-prev,
  .ach-img-carousel .carousel-control-next{
    touch-action:manipulation !important;
  }
}

/* ---------- small phones ---------- */
@media (max-width: 480px){
  .topbar-area{ padding:8px 6px !important; }
  .hdr-logo{
    width:42px !important;
    height:42px !important;
  }
  .hdr-rep{ font-size:.62rem !important; }
  .hdr-title{ font-size:.88rem !important; }
  .hdr-tagline{ font-size:.60rem !important; }

  .featured-slide{
    aspect-ratio:4 / 3;
    min-height:200px;
  }

  .ann-title{ font-size:1rem; }
  .ann-media img,
  .ann-media-fallback{
    height:190px !important;
  }
  .ann-h{ font-size:1.05rem; }
  .ann-p{ font-size:.88rem; }

  .achm-img img,
  .achm-img .img-fb{
    height:170px !important;
  }

  .quicklinks-offcanvas{
    width:92vw !important;
    max-width:92vw !important;
  }

  .bottom-menu-btn{
    padding:9px 10px !important;
  }
  .bottom-menu-btn .txt small{
    display:none;
  }

  .reveal{
    transition:
      opacity .45s ease,
      transform .45s ease,
      filter .45s ease;
    filter:blur(2px);
  }
  .reveal-up{ transform:translateY(16px); }
  .reveal-left{ transform:translateX(12px); }
  .reveal-right{ transform:translateX(-12px); }
}

/* ---------- Prevent bootstrap/body double scrollbar issues ---------- */
body.offcanvas-open,
body.modal-open{
  overflow-x:hidden !important;
}

/* ---------- Generic chatbot responsiveness ---------- */
#chatbotWidget,
#chatbot-widget,
#chat-widget,
#chatBox,
#chat-box,
.chatbot-widget,
.chat-widget,
.chat-widget-container,
.chatbot-container,
.chatbot-window,
.chat-window,
.chat-box,
.bot-widget{
  max-width:calc(100vw - 16px) !important;
  box-sizing:border-box !important;
}

#chatbotWidget *,
#chatbot-widget *,
#chat-widget *,
#chatBox *,
#chat-box *,
.chatbot-widget *,
.chat-widget *,
.chat-widget-container *,
.chatbot-container *,
.chatbot-window *,
.chat-window *,
.chat-box *,
.bot-widget *{
  box-sizing:border-box !important;
}

#chatbotToggle,
#chatbot-toggle,
#chat-toggle,
.chatbot-toggle,
.chat-launcher,
.bot-launcher,
.chat-fab,
.chatbot-fab,
.chat-widget-launcher{
  max-width:calc(100vw - 24px) !important;
}

.chatbot-widget .quick-links,
.chatbot-widget .quick-links-menu,
.chatbot-widget .quick-links-grid,
.chatbot-widget .quick-actions,
.chat-window .quick-links,
.chat-window .quick-links-menu,
.chat-window .quick-links-grid,
.chat-window .quick-actions,
.chat-box .quick-links,
.chat-box .quick-links-menu,
.chat-box .quick-links-grid,
.chat-box .quick-actions{
  width:100% !important;
  max-width:100% !important;
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:8px !important;
  overflow-x:hidden !important;
}

.chatbot-widget .quick-links > *,
.chatbot-widget .quick-links-menu > *,
.chatbot-widget .quick-links-grid > *,
.chatbot-widget .quick-actions > *,
.chat-window .quick-links > *,
.chat-window .quick-links-menu > *,
.chat-window .quick-links-grid > *,
.chat-window .quick-actions > *,
.chat-box .quick-links > *,
.chat-box .quick-links-menu > *,
.chat-box .quick-links-grid > *,
.chat-box .quick-actions > *{
  width:100% !important;
  min-width:0 !important;
}

/* ---------- Tablet adjustments ---------- */
@media (max-width: 991.98px){
  .featured-slide{
    aspect-ratio:16 / 9;
    min-height:240px;
    max-height:none;
  }

  .featured-image{
    object-fit:contain;
  }

  .nav-inner{
    gap:6px;
    padding:10px;
  }

  .nav-pill{
    padding:7px 12px;
    font-size:.84rem;
  }

  .ann-shell{
    padding-left:16px;
    padding-right:16px;
  }

  .achm-shell{
    padding-left:14px;
    padding-right:14px;
  }
}

/* ---------- mobile chatbot window ---------- */
@media (max-width: 768px){
  #chatbotWidget,
  #chatbot-widget,
  #chat-widget,
  #chatBox,
  #chat-box,
  .chatbot-widget,
  .chat-widget,
  .chat-widget-container,
  .chatbot-container,
  .chatbot-window,
  .chat-window,
  .chat-box,
  .bot-widget{
    left:8px !important;
    right:8px !important;
    width:auto !important;
    min-width:0 !important;
    max-width:calc(100vw - 16px) !important;
    bottom:max(72px, calc(env(safe-area-inset-bottom) + 72px)) !important;
    margin:0 !important;
    border-radius:14px !important;
  }

  #chatbotWidget .messages,
  #chatbot-widget .messages,
  #chat-widget .messages,
  #chatBox .messages,
  #chat-box .messages,
  .chatbot-widget .messages,
  .chat-widget .messages,
  .chatbot-container .messages,
  .chatbot-window .messages,
  .chat-window .messages,
  .chat-box .messages,
  .bot-widget .messages,
  #chatbotWidget .chat-body,
  #chatbot-widget .chat-body,
  #chat-widget .chat-body,
  #chatBox .chat-body,
  #chat-box .chat-body,
  .chatbot-widget .chat-body,
  .chat-widget .chat-body,
  .chatbot-container .chat-body,
  .chatbot-window .chat-body,
  .chat-window .chat-body,
  .chat-box .chat-body,
  .bot-widget .chat-body{
    max-height:min(52vh, 460px) !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
  }

  #chatbotToggle,
  #chatbot-toggle,
  #chat-toggle,
  .chatbot-toggle,
  .chat-launcher,
  .bot-launcher,
  .chat-fab,
  .chatbot-fab,
  .chat-widget-launcher{
    right:12px !important;
    left:auto !important;
    bottom:max(12px, env(safe-area-inset-bottom)) !important;
    transform:none !important;
    max-width:calc(100vw - 24px) !important;
  }
}

/* ---------- Final single vertical scrollbar enforcement ---------- */
html{
  overflow-x:hidden !important;
  overflow-y:auto !important;
}

body,
body.cdsl-mobile-safe{
  overflow-x:hidden !important;
  overflow-y:auto !important;
}

.featured-hero,
#featuredCarousel,
#featuredCarousel .carousel-inner,
#featuredCarousel .carousel-item,
.featured-slide{
  overflow:hidden !important;
}

@media (max-width: 768px){
  html{
    overflow-x:hidden !important;
    overflow-y:auto !important;
  }

  body,
  body.cdsl-mobile-safe{
    overflow-x:hidden !important;
    overflow-y:auto !important;
  }

  .featured-hero,
  #featuredCarousel,
  #featuredCarousel .carousel-inner,
  #featuredCarousel .carousel-item,
  .featured-slide{
    overflow:hidden !important;
  }
}
/* ===== FIX: remove temporary extra right-side scrollbar ===== */

/* huwag i-transform ang malalaking outer sections */
.ann-section.reveal.reveal-up,
.achm-bleed.reveal.reveal-up,
.about-static-section.reveal.reveal-up,
.footer-wrap.reveal.reveal-up {
  transform: none !important;
}

/* clip overflow ng major wrappers para walang temporary extra scroll height */
.ann-section,
.achm-bleed,
.about-static-section,
.footer-wrap {
  overflow: hidden !important;
}
