/*====================================================================
   Custom CSS File for most of Desktop and Mobile look for Kipya Template
   Developed by Amazing LWEGATECH LTD team.
====================================================================**/
:root {
  --kpy-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  --kpy-font-2: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  --kpy-font-3: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";  
  /* Sanyuka Theme Colors */
  --kpy-primary: #2F9400;
  --kpy-primary-rgb: 47, 148, 0;
  --kpy-olive: #85c035;
  --kpy-olive-dark: #2F9400;
  --kpy-olive-dark-rgb: 47, 148, 0;
  --kpy-blue: #1ea7c9;
  --kpy-blue-rgb: 30, 167, 201;
  --kpy-orange: #EA4E13;
  --kpy-orange-rgb: 234, 78, 19;
  
  /* Neutral Colors */
  --kpy-white: #ffffff;
  --kpy-white-rgb: 255, 255, 255;
  --kpy-light-grey: #f2f2f2;
  --kpy-light-grey-rgb: 242, 242, 242;
  --kpy-light: #EEFFEE;
  --kpy-heading-text: #2b2b2b;
  --kpy-body-text: #4a4a4a;
  --kpy-nav-text: #2b2b2b;
  --kpy-base: #2b2b2b;
  --kpy-base-rgb: 43, 43, 43;
  --kpy-grey: #666666;
  --kpy-black: #000000;
  --kpy-font-size: 16px;
  
  /* Sanyuka-specific Colors */
  --kpy-top-bar: #EA4E13;
  --kpy-footer-bg: #016501;
  --kpy-header-bg: #EEFFEE;
  --kpy-dark-bg: #292929;
  --kpy-yellow: #f1e300;
  --kpy-green-dark: #1a5d1a;
}
html, body { font-family: var(--kpy-font-2) !important; color: var(--kpy-base); font-size: var(--kpy-font-size); line-height: 1.8; margin: 0; padding: 0; background-color: var(--kpy-white); -webkit-font-smoothing: antialiased; overflow-x: hidden; width: 100% }
h1, h2, h3, h4, h5, h6 { font-family: var(--kpy-font) !important; font-weight: 700; letter-spacing: 0.01em; margin-top: 0 }
p { font-family: var(--kpy-font-2); color: var(--kpy-grey); line-height: 1.7 }
.site-content { max-width: 100%; width: 100% }
.fc-inner-main>.container, .fc-inner-main>.wp-block-group.alignfull, .fc-inner-main>.wp-block-cover.alignfull { max-width: 100% !important; width: 100% !important; padding-left: 0 !important; padding-right: 0 !important }
.nape-infocard__icon, .nape-infocard__icon i { color: var(--kpy-primary) !important }

/* =============================================
   SANYUKA THEME MIGRATION STYLES
   ============================================= */

/* Top Bar - Sanyuka style.css */
.top-bar { background: var(--kpy-top-bar); position: relative; height: 30px }

/* Header - Sanyuka style.css */
.header { background: var(--kpy-header-bg) }

/* Navigation - Sanyuka style.css */
.navigation { list-style: none; display: block }

/* General - Sanyuka style.css */
* { box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box }

/* Images - Sanyuka main.css */
img { width: 100%; height: auto }
.wp-post-image { height: auto; width: 100% }

/* Dconnect Section - Sanyuka main.css */
.dconnect { background-image: url(https://www.greenradio.ug/wp-content/uploads/2019/09/bg2889a.jpg); background-attachment: local; background-repeat: no-repeat; padding: 5em 1em }
.dconnect h2 { color: #fff; background-color: var(--kpy-dark-bg); line-height: 1.1em; padding: 24px 26px; font-size: 2.4em; font-weight: 600; margin: 0 }
.dconnect .subtitle { color: var(--kpy-olive); background-color: #fff; padding: 12px 28px; line-height: 1.3em; font-weight: 600; text-transform: uppercase; font-style: normal; margin: 0; width: 50% }
.dconnect .videotext { white-space: normal; text-decoration: inherit; color: var(--kpy-dark-bg) !important; background-color: var(--kpy-yellow) !important; padding: 15px 40px; margin-top: 2em; position: relative }

/* Shows - Sanyuka main.css */
.shows ul, .shows li { display: block; list-style: none }

/* Copyright - Sanyuka main.css */
.copyright { background: var(--kpy-footer-bg); color: #aaa }

/* Helper Classes - Sanyuka helper.css (Compact) */
h1 { font-size: 55px }
h2 { font-size: 40px }
h3 { font-size: 35px }
h4 { font-size: 30px }
h5 { font-size: 25px }
h6 { font-size: 18px }
h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: 600; line-height: 1.4 }
.text-white { color: #FFF }
.text-black { color: #000 }
.text-extra-dark-gray { color: #232323 }
.text-dark-gray { color: #626262 }
.text-extra-medium-gray { color: #757575 }
.text-medium-gray { color: #939393 }
.text-extra-light-gray { color: #b7b7b7 }
.text-light-gray { color: #d6d5d5 }
.text-very-light-gray { color: #ededed }
.fw-100 { font-weight: 100 !important }
.fw-200 { font-weight: 200 !important }
.fw-300 { font-weight: 300 !important }
.fw-400 { font-weight: 400 !important }
.fw-500 { font-weight: 500 !important }
.fw-600 { font-weight: 600 !important }
.fw-700 { font-weight: 700 !important }
.fw-800 { font-weight: 800 !important }
.fw-900 { font-weight: 900 !important }
.text-u { text-transform: uppercase !important }
.text-l { text-transform: lowercase !important }
.text-c { text-transform: capitalize !important }
.text-i { font-style: italic }
.no-padding { padding: 0 !important }

/* Overlay Effects - Sanyuka helper.css */
[data-overlay-dark], [data-overlay-light] { position: relative }
[data-overlay-dark] .container, [data-overlay-light] .container { position: relative; z-index: 2 }
[data-overlay-dark]:before, [data-overlay-light]:before { content: ''; position: absolute; width: 100%; height: 100%; top: 0; left: 0; z-index: 1 }
[data-overlay-dark]:before { background: #010108 }
[data-overlay-light]:before { background: #fff }
[data-overlay-dark] h1, [data-overlay-dark] h2, [data-overlay-dark] h3, [data-overlay-dark] h4, [data-overlay-dark] h5, [data-overlay-dark] h6, [data-overlay-dark] span { color: #fff }
[data-overlay-dark] p { color: #bbb }

/* Preloader - Sanyuka helper.css */
.loading { position: fixed; top: 0; left: 0; height: 100%; width: 100%; background-color: #000; z-index: 9999999999999 }
.loading .middle { position: absolute; top: 50%; width: 100% }
.lds-ellipsis { display: inline-block; position: relative; width: 64px; height: 64px }
.lds-ellipsis div { position: absolute; top: 27px; width: 11px; height: 11px; border-radius: 50%; background: #fff; animation-timing-function: cubic-bezier(0, 1, 1, 0) }
.lds-ellipsis div:nth-child(1) { left: 6px; animation: lds-ellipsis1 0.6s infinite }
.lds-ellipsis div:nth-child(2) { left: 6px; animation: lds-ellipsis2 0.6s infinite }
.lds-ellipsis div:nth-child(3) { left: 26px; animation: lds-ellipsis2 0.6s infinite }
.lds-ellipsis div:nth-child(4) { left: 45px; animation: lds-ellipsis3 0.6s infinite }
@keyframes lds-ellipsis1 { 0% { transform: scale(0) } 100% { transform: scale(1) } }
@keyframes lds-ellipsis3 { 0% { transform: scale(1) } 100% { transform: scale(0) } }
@keyframes lds-ellipsis2 { 0% { transform: translate(0, 0) } 100% { transform: translate(19px, 0) } }





/* =============================================
   MENU 
   ============================================= */
.gr-header{background:var(--kpy-header-bg);width:100%;position:relative;z-index:100}
.gr-header-inner{max-width:1320px;margin:0 auto;display:flex;align-items:center;justify-content:center;padding:12px 24px;flex-wrap:wrap;position:relative}
.gr-logo{display:flex;align-items:center;text-decoration:none;position:absolute;left:24px}
.gr-logo-img{max-height:64px;width:auto;display:block}
.gr-site-name{font-family:var(--kpy-font-2);font-weight:700;font-size:22px;color:var(--kpy-heading-text)}
.gr-nav{display:flex;align-items:center;justify-content:center;padding-left:120px}
.gr-menu{display:flex;align-items:center;list-style:none;margin:0;padding:0;gap:32px}
.gr-menu li{position:relative}
.gr-menu li a{font-family:var(--kpy-font);font-size:17px;color:var(--kpy-nav-text);text-decoration:none;padding:8px 0;display:inline-block;transition:color .2s ease}
.gr-menu li a:hover,.gr-menu li a:focus{color:var(--kpy-primary)}
.gr-menu li.current-menu-item>a,.gr-menu li.current_page_item>a{color:var(--kpy-primary);font-weight:600}
.gr-menu .sub-menu{display:none;position:absolute;top:100%;left:0;background:var(--kpy-white);min-width:200px;box-shadow:0 8px 20px rgba(0,0,0,.12);padding:8px 0;z-index:200;list-style:none;margin:0}
.gr-menu li:hover>.sub-menu{display:block}
.gr-menu .sub-menu li a{padding:8px 20px;display:block;color:var(--kpy-body-text);font-size:15px}
.gr-menu .sub-menu li a:hover{background:var(--kpy-light);color:var(--kpy-primary)}
.gr-nav-toggle{display:none;flex-direction:column;gap:5px;background:transparent;border:0;cursor:pointer;padding:8px}
.gr-nav-toggle span{width:26px;height:3px;background:var(--kpy-heading-text);display:block;border-radius:2px;transition:transform .2s ease,opacity .2s ease}
.gr-nav-toggle-open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.gr-nav-toggle-open span:nth-child(2){opacity:0}
.gr-nav-toggle-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
@media (max-width:991px){.gr-nav-toggle{display:flex}.gr-nav{width:100%;max-height:0;overflow:hidden;transition:max-height .3s ease}.gr-nav.gr-nav-open{max-height:600px}.gr-menu{flex-direction:column;align-items:flex-start;gap:0;width:100%;padding:12px 0}.gr-menu li{width:100%}.gr-menu li a{padding:12px 0;width:100%}.gr-menu .sub-menu{position:static;box-shadow:none;padding-left:16px;display:none}.gr-menu li.gr-sub-open>.sub-menu{display:block}}
.gr-footer{background:var(--kpy-footer-bg);width:100%;padding:18px 24px;text-align:center}
.gr-footer-copy{margin:0;color:var(--kpy-white);font-family:var(--kpy-font-3);font-size:14px}
.gr-footer-credit{color:var(--kpy-white);text-decoration:underline;font-weight:600}
.gr-footer-credit:hover{color:var(--kpy-light-grey)}


/* =============================================
   PHOTO GALLERY GRID
   ============================================= */
.photo-gallery-section{margin:16px 0;padding:16px;background:#fff;border:1px solid #e0e0e0;border-radius:6px}
.photo-gallery-title{font-family:var(--kpy-font-2);font-size:14px;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.15em;margin:0 0 12px;padding:8px 12px;background:#222;border-radius:3px;text-align:center}
.photo-gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.photo-gallery-item{border-radius:3px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.1);transition:transform .2s ease,box-shadow .2s ease}
.photo-gallery-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}
.photo-gallery-item a{text-decoration:none;display:block}
.photo-gallery-item img{width:100%;height:100px;object-fit:cover;display:block;transition:transform .2s ease}
.photo-gallery-item:hover img{transform:scale(1.03)}
@media (max-width:768px){.photo-gallery-grid{grid-template-columns:repeat(2,1fr);gap:6px}.photo-gallery-item img{height:90px}}


/* =============================================
   HOMEPAGE NEWS SECTIONS
   ============================================= */

.gr-featured-news{padding:0 0 60px;background:var(--kpy-white)}
.gr-featured-news-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px;max-width:1320px;margin:0 auto;padding:32px 24px 0}
.gr-featured-card{overflow:hidden;border-radius:6px}
.gr-featured-card--main{grid-row:span 2}
.gr-featured-card__link{display:block;height:100%;text-decoration:none}
.gr-featured-card__img{width:100%;height:100%;min-height:280px;background-size:cover;background-position:center;position:relative;display:flex;flex-direction:column;justify-content:flex-end}
.gr-featured-card--main .gr-featured-card__img{min-height:590px}
.gr-featured-card__img::before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.85) 0%,rgba(0,0,0,.4) 45%,rgba(0,0,0,0) 75%)}
.gr-featured-card__cat{position:relative;z-index:2;align-self:flex-start;background:#FF1216;color:#fff;font-family:var(--kpy-font);font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;padding:4px 10px;border-radius:2px;margin:20px 0 auto 20px}
.gr-featured-card__overlay{position:relative;z-index:2;padding:0 20px 20px}
.gr-featured-card--main .gr-featured-card__title{font-family:var(--kpy-font-2);font-weight:700;font-size:30px;line-height:1.25;color:#fff;margin:0 0 10px}
.gr-featured-card--small .gr-featured-card__title{font-family:var(--kpy-font-2);font-weight:700;font-size:18px;line-height:1.3;color:#fff;margin:0 0 10px}
.gr-featured-card__title a{color:inherit;text-decoration:none}
.gr-featured-card__meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-family:var(--kpy-font);font-size:13px;color:#fff}
.gr-featured-card__avatar{border-radius:50%;width:24px;height:24px}
.gr-dot{opacity:.7}
@media (max-width:991px){.gr-featured-news-grid{grid-template-columns:1fr}.gr-featured-card--main{grid-row:auto}}

.gr-trending-section{padding:60px 0;background:var(--kpy-white)}
.gr-trending-header{max-width:1320px;margin:0 auto;padding:0 24px;text-align:left;margin-bottom:32px}
.gr-trending-title{font-family:var(--kpy-font-2);font-size:28px;font-weight:700;color:var(--kpy-heading-text);margin:0 0 6px}
.gr-trending-subtitle{font-family:var(--kpy-font);font-size:15px;color:var(--kpy-grey);margin:0}
.gr-trending-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px 24px;max-width:1320px;margin:0 auto;padding:0 24px}
.gr-trending-card{background:var(--kpy-white)}
.gr-trending-card__link{display:block;text-decoration:none}
.gr-trending-card__img{width:100%;aspect-ratio:16/10;background-size:cover;background-position:center;border-radius:4px}
.gr-trending-card__body{padding-top:16px}
.gr-trending-card__title{margin:0 0 10px;font-family:var(--kpy-font-2);font-size:19px;font-weight:700;line-height:1.3;color:var(--kpy-heading-text)}
.gr-trending-card__title a{color:inherit;text-decoration:none}
.gr-trending-card__title a:hover{color:var(--kpy-primary)}
.gr-trending-card__excerpt{font-family:var(--kpy-font);font-size:14px;line-height:1.6;color:var(--kpy-grey);margin:0 0 14px}
.gr-trending-card__meta{display:flex;align-items:center;gap:6px;font-family:var(--kpy-font);font-size:13px;color:var(--kpy-grey)}
.gr-trending-card__avatar{border-radius:50%;width:24px;height:24px}
@media (max-width:768px){.gr-trending-grid{grid-template-columns:1fr}}

.gr-category-banners{padding:0 0 40px;background:var(--kpy-white)}
.gr-category-banners-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:1320px;margin:0 auto;padding:0 24px}
.gr-category-banner img{width:100%;height:auto;display:block;border-radius:4px}
@media (max-width:768px){.gr-category-banners-grid{grid-template-columns:repeat(2,1fr)}}




/* Category Banners */
.gr-category-banners{padding:40px 0;background:var(--kpy-white)}
.gr-category-banners-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:1320px;margin:0 auto;padding:0 24px}
.gr-category-banner img{width:100%;height:auto;display:block;border-radius:6px}

/* About Section */
.gr-about-section{padding:60px 0;background:var(--kpy-white)}
.gr-about-grid{display:grid;grid-template-columns:70% 30%;gap:40px;max-width:1320px;margin:0 auto;padding:0 24px}
.gr-about-content{background:var(--kpy-light-grey);border-radius:8px;padding:40px}
.gr-about-inner{max-width:800px}
.gr-about-title{font-family:var(--kpy-font);font-size:32px;font-weight:700;color:var(--kpy-heading-text);margin:0 0 24px}
.gr-about-logo{margin-bottom:24px}
.gr-about-logo img{max-height:80px;width:auto}
.gr-about-text p{font-family:var(--kpy-font-2);font-size:16px;line-height:1.7;color:var(--kpy-body-text);margin:0 0 16px}
.gr-about-cta{margin-top:24px}
.gr-about-btn{display:inline-block;padding:12px 32px;background:var(--kpy-footer-bg);color:#fff;text-decoration:none;border-radius:3px;font-weight:600;transition:background .2s}
.gr-about-btn:hover{background:var(--kpy-green-dark)}
.gr-about-sidebar{display:flex;flex-direction:column;gap:20px}
.gr-nape-banner img{width:100%;height:auto;border-radius:6px}


/* Downloads Grid */
.gr-downloads-wrap{padding:60px 0;background:var(--kpy-white)}
.gr-downloads-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;max-width:1320px;margin:0 auto;padding:0 24px}
.gr-download-card{background:var(--kpy-white);border:1px solid #e0e0e0;border-radius:8px;padding:24px;display:flex;flex-direction:column;gap:16px;transition:all .3s ease;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.gr-download-card:hover{border-color:var(--kpy-primary);box-shadow:0 8px 24px rgba(47,148,0,.15);transform:translateY(-4px)}
.gr-download-icon{width:56px;height:56px;background:var(--kpy-primary);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;flex-shrink:0}
.gr-download-content{flex:1}
.gr-download-title{margin:0 0 8px;font-family:var(--kpy-font);font-size:18px;font-weight:700;line-height:1.3}
.gr-download-title a{color:var(--kpy-heading-text);text-decoration:none;transition:color .2s}
.gr-download-title a:hover{color:var(--kpy-primary)}
.gr-download-excerpt{font-family:var(--kpy-font-2);font-size:14px;line-height:1.6;color:var(--kpy-body-text);margin:0 0 12px}
.gr-download-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--kpy-grey)}
.gr-download-size{background:var(--kpy-light);padding:4px 8px;border-radius:4px;font-weight:600;color:var(--kpy-primary)}
.gr-download-count{display:flex;align-items:center;gap:4px}
.gr-download-count i{color:var(--kpy-primary)}
.gr-download-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;background:var(--kpy-primary);color:#fff;text-decoration:none;border-radius:6px;font-weight:600;font-family:var(--kpy-font-2);transition:background .2s ease,transform .2s ease}
.gr-download-btn:hover{background:var(--kpy-olive-dark);transform:translateY(-2px)}
.gr-downloads-pagination{display:flex;justify-content:center;gap:8px;margin-top:40px;padding:0 24px}
.gr-dl-pgbtn{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 12px;background:#fff;border:1px solid #e0e0e0;border-radius:4px;color:var(--kpy-heading-text);text-decoration:none;font-weight:600;font-family:var(--kpy-font-2);transition:all .2s}
.gr-dl-pgbtn:hover{border-color:var(--kpy-primary);color:var(--kpy-primary)}
.gr-dl-pgbtn--active{background:var(--kpy-primary);color:#fff;border-color:var(--kpy-primary)}

/* Responsive */
@media (max-width:991px){
.gr-featured-news-grid{grid-template-columns:1fr 1fr}
.gr-featured-card--main{grid-row:span 1}
.gr-featured-card--main .gr-featured-card__img{min-height:280px}
.gr-trending-grid{grid-template-columns:repeat(2,1fr)}
.gr-category-banners-grid{grid-template-columns:repeat(2,1fr)}
.gr-about-grid{grid-template-columns:1fr}
}
@media (max-width:600px){
.gr-featured-news-grid{grid-template-columns:1fr}
.gr-trending-grid{grid-template-columns:1fr}
.gr-category-banners-grid{grid-template-columns:1fr}
.gr-about-content{padding:24px}
.gr-about-title{font-size:24px}
}


/*==========================================================
Inner Page Hero Section
===========================================================*/
.fc-page-hero { position: relative; height: 220px; min-height: 200px; display: flex; align-items: center; overflow: hidden }
.fc-page-hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; background-color: var(--kpy-olive-dark); background-image: linear-gradient(135deg, #3a6e2f 0%, #4a9c3e 60%, #1ea7c9 100%); transform: scale(1.05); animation: kpy-ken-burns 8s ease-out forwards }
.fc-page-hero:hover .fc-page-hero-bg { transform: scale(1.10); transition: transform .6s ease-out }
@keyframes kpy-ken-burns { 0% { transform: scale(1.02) translateX(0) translateY(0) } 100% { transform: scale(1.05) translateX(2%) translateY(-1%) } }
.fc-page-hero-overlay { position: absolute; inset: 0; background: transparent; z-index: 1 }
.fc-page-hero-diagonal { position: absolute; inset: 0; background: rgba(8, 8, 6, .75); clip-path: polygon(0 0, 46% 0, 36% 100%, 0 100%); z-index: 2 }
.fc-page-hero-inner { position: relative; z-index: 3; width: 100%; max-width: 1400px; margin: 0 auto; padding: 0 5% }
.fc-page-hero-title { font-family: var(--kpy-font-2); font-size: clamp(1.6rem, 3vw, 2.3rem); font-weight: 800; color: #fff !important; text-transform: none; letter-spacing: 0; margin: 0 0 8px; text-shadow: 1px 2px 8px rgba(0, 0, 0, .4); line-height: 1.2; max-width: 75% }
.fc-page-hero-inner .nape-breadcrumb { font-size: .85rem; color: rgba(255, 255, 255, .75); margin: 0 }
.fc-page-hero-inner .nape-breadcrumb a { color: rgba(255, 255, 255, .75); text-decoration: none }
.fc-page-hero-inner .nape-breadcrumb a:hover { color: #fff; text-decoration: underline }
.fc-page-article { max-width: 1200px; margin: 0 auto; padding: 48px 40px 64px; width: 100%; box-sizing: border-box }
.fc-page-content.entry-content { font-family: var(--kpy-font-2); font-size: 1rem; line-height: 1.8; color: var(--kpy-body-text) }
.fc-page-content .wp-block-columns { display: flex !important; flex-wrap: wrap !important; gap: 1.5em !important; margin-bottom: 1em !important }
.fc-page-content .wp-block-column { word-break: break-word; overflow-wrap: break-word }
.fc-page-content.entry-content h1, .fc-page-content.entry-content h2, .fc-page-content.entry-content h3, .fc-page-content.entry-content h4, .fc-page-content.entry-content h5, .fc-page-content.entry-content h6 { font-family: var(--kpy-font); color: var(--kpy-heading-text); font-weight: 700; margin-top: 1.6em; margin-bottom: .5em; text-transform: none; letter-spacing: 0 }
.fc-page-content.entry-content p { margin-bottom: 1.1em; color: #444; line-height: 1.85 }
@media (max-width: 768px) { .fc-page-hero { height: 170px; min-height: 155px } .fc-page-hero-title { font-size: clamp(1.3rem, 5vw, 1.8rem) } .fc-page-hero-inner { padding: 0 6% } .fc-page-hero-diagonal { clip-path: polygon(0 0, 60% 0, 46% 100%, 0 100%) } .fc-page-article { padding: 32px 20px 48px } }
@media (max-width: 480px) { .fc-page-hero { height: 180px; min-height: 160px } }

/*==========================================================
  Core Accordion Block Styling
==========================================================*/
.wp-block-accordion { background: #fff; border: 1px solid #e6ebe6; border-radius: 6px; margin-bottom: 12px; background: #fff; transition: all 0.2s ease }
.wp-block-accordion:hover { border-color: #d9dfd9; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06) }
.wp-block-accordion__summary { align-items: center; padding: 16px 20px; cursor: pointer; font-family: var(--kpy-font-2, "Montserrat", sans-serif); font-size: 16px; font-weight: 700; color: var(--kpy-heading-text, #2b2b2b); list-style: none; position: relative; display: flex; justify-content: space-between; align-items: center; gap: 12px; transition: color 0.2s ease }
.wp-block-accordion__summary::-webkit-details-marker { display: none }
.wp-block-accordion__summary::after, details[open]>.wp-block-accordion__summary::after { content: '+'; font-size: 20px; font-weight: 700; color: var(--kpy-primary, #4a9c3e); transition: transform 0.3s ease, content 0.3s ease }
details[open]>.wp-block-accordion__summary::after { content: '−'; transform: rotate(180deg) }
details[open]>.wp-block-accordion__summary { color: var(--kpy-primary, #4a9c3e); border-bottom: 1px solid #e6ebe6 }
.wp-block-accordion__content { background: #f9fbf9; padding: 16px 20px; font-family: var(--kpy-font-2, "Montserrat", sans-serif); font-size: 15px; line-height: 1.7; color: var(--kpy-body-text, #4a4a4a); background: #f9fbf9 }
.wp-block-accordion__content p { margin: 0 0 12px }
.wp-block-accordion__content p:last-child { margin-bottom: 0 }
.page-id-836 .wp-block-accordion, .page-id-796 .wp-block-accordion { border-left: 4px solid var(--kpy-primary, #4a9c3e) }


/*==========================================================
  Core Image Block Enhancements
==========================================================*/
.wp-block-image img { max-width: 100%; height: auto; border-radius: 4px; transition: transform 0.3s ease }
.wp-block-image:hover img { transform: scale(1.02) }

.program-cards-container { display: grid; gap: 2rem; margin: 3rem 0; font-family: var(--kpy-font) }
.program-cards-container.layout-grid { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) }
.program-cards-container.layout-list { grid-template-columns: 1fr }
.program-cards-container.columns-2 { grid-template-columns: repeat(2, minmax(280px, 1fr)) }
.program-cards-container.columns-3 { grid-template-columns: repeat(3, minmax(280px, 1fr)) }
.program-cards-container.columns-4 { grid-template-columns: repeat(4, minmax(240px, 1fr)) }
.program-card { background: var(--kpy-white); border-radius: 12px; overflow: hidden; box-shadow: 0 6px 15px rgba(var(--kpy-base-rgb), 0.08); transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.1); position: relative; border: 1px solid rgba(var(--kpy-primary-rgb), 0.1); animation: fadeInUp 0.6s ease forwards; opacity: 0 }
.program-card:hover { transform: translateY(-8px); box-shadow: 0 12px 24px rgba(var(--kpy-base-rgb), 0.12); border-color: rgba(var(--kpy-primary-rgb), 0.3) }
.program-card__media { position: relative; padding-bottom: 62.5%; overflow: hidden }
.program-card__image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease }
.program-card:hover .program-card__image { transform: scale(1.08) }
.program-card__placeholder { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, var(--kpy-light) 0%, rgba(var(--kpy-primary-rgb), 0.1) 100%); display: flex; align-items: center; justify-content: center; color: var(--kpy-primary); font-family: var(--kpy-font-2); font-size: 1.1rem }
.program-card__content { padding: 1.75rem; position: relative }
.program-card__title { margin: 0 0 1.25rem; font-size: 1.375rem; line-height: 1.3; font-family: var(--kpy-font); color: var(--kpy-base); position: relative; padding-bottom: 0.75rem }
.program-card__title::after { content: ''; position: absolute; bottom: 0; left: 0; width: 50px; height: 3px; background: var(--kpy-primary); transition: width 0.3s ease }
.program-card:hover .program-card__title::after { width: 80px }
.program-card__title a { color: inherit; text-decoration: none; transition: color 0.3s ease }
.program-card__title a:hover { color: var(--kpy-primary) }
.program-card__excerpt { margin-bottom: 1.75rem; color: rgba(var(--kpy-base-rgb), 0.7); font-size: 0.95rem; line-height: 1.6 }
.program-card__button { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.75rem 1.5rem; background-color: var(--kpy-primary); color: var(--kpy-white); text-decoration: none; border-radius: 50px; font-size: 0.95rem; font-weight: 500; transition: all 0.3s ease; border: 2px solid transparent }
.program-card__button:hover { background-color: transparent; color: var(--kpy-primary); border-color: var(--kpy-primary); transform: translateX(5px) }
.program-card__button::after { content: '→'; transition: transform 0.3s ease }
.program-card__button:hover::after { transform: translateX(3px) }
.program-cards__not-found { text-align: center; padding: 3rem; color: var(--kpy-primary); background: rgba(var(--kpy-primary-rgb), 0.05); border-radius: 12px; font-family: var(--kpy-font-2); font-size: 1.2rem }
@media (max-width: 1200px) { .program-cards-container.columns-4 { grid-template-columns: repeat(3, minmax(280px, 1fr)) } }
@media (max-width: 992px) { .program-cards-container.columns-3, .program-cards-container.columns-4 { grid-template-columns: repeat(2, minmax(280px, 1fr)) } }
@media (max-width: 768px) { .program-cards-container { gap: 1.5rem } .program-cards-container.layout-grid, .program-cards-container.columns-2, .program-cards-container.columns-3, .program-cards-container.columns-4 { grid-template-columns: 1fr } .program-card__content { padding: 1.5rem } }
@keyframes fadeInUp { from { opacity: 0; transform: translateY(20px) } to { opacity: 1; transform: translateY(0) } }
.program-card:nth-child(1) { animation-delay: 0.1s }
.program-card:nth-child(2) { animation-delay: 0.2s }
.program-card:nth-child(3) { animation-delay: 0.3s }
.program-card:nth-child(4) { animation-delay: 0.4s }
.program-card:nth-child(5) { animation-delay: 0.5s }
.program-card:nth-child(6) { animation-delay: 0.6s }

/*==========================================================
Contact Us
==========================================================**/

.gr-contact-main{max-width:1320px;margin:0 auto;padding:48px 24px 80px}
.gr-contact-title-wrap{margin-bottom:32px}
.gr-contact-title-wrap h1{font-family:var(--kpy-font-2);font-weight:700;font-size:34px;color:var(--kpy-heading-text);margin:0 0 12px;padding-bottom:16px;border-bottom:1px solid var(--kpy-light-grey)}
.gr-contact-wrap{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.gr-field-group{margin-bottom:22px}
.gr-field-group label{display:block;font-family:var(--kpy-font);font-size:15px;color:var(--kpy-heading-text);margin-bottom:8px}
.gr-field-group input,.gr-field-group textarea{width:100%;border:1px solid #d8d8d8;border-radius:4px;padding:12px 14px;font-family:var(--kpy-font);font-size:15px;color:var(--kpy-body-text);background:var(--kpy-white)}
.gr-field-group input::placeholder,.gr-field-group textarea::placeholder{color:#a8a8a8}
.gr-field-group input:focus,.gr-field-group textarea:focus{outline:none;border-color:var(--kpy-primary)}
.gr-field-group textarea{resize:vertical}
.gr-submit-btn{background:var(--kpy-primary);color:var(--kpy-white);border:0;border-radius:4px;padding:13px 32px;font-family:var(--kpy-font);font-size:15px;font-weight:600;cursor:pointer;transition:background .2s ease}
.gr-submit-btn:hover{background:var(--kpy-green-dark)}
.gr-submit-btn:disabled{opacity:.6;cursor:not-allowed}
.gr-form-feedback{padding:12px 16px;border-radius:4px;margin-bottom:20px;font-family:var(--kpy-font);font-size:14px}
.gr-form-feedback--success{background:#e6f5e2;color:var(--kpy-green-dark)}
.gr-form-feedback--error{background:#fdecea;color:#c0392b}
.gr-contact-info p{font-family:var(--kpy-font);font-size:16px;color:var(--kpy-heading-text);line-height:1.7;margin:0 0 20px}
.gr-contact-info a{color:var(--kpy-blue);text-decoration:none}
.gr-contact-info a:hover{text-decoration:underline}
@media (max-width:768px){.gr-contact-wrap{grid-template-columns:1fr;gap:40px}}


/** ==========================================================
Upcoming Events Page
===========================================================**/
.kpy-ev-page-wrap { max-width: 1200px; margin: 0 auto; padding: 36px 24px 56px }
.kpy-ev-nb-line { font-size: 22px; font-weight: 700; color: #333; margin: 0 0 20px }
.kpy-ev-filterbar { display: flex; align-items: center; gap: 12px; margin-bottom: 28px; flex-wrap: wrap }
.kpy-ev-filterbar__search { flex: 1 1 240px; min-width: 200px; padding: 11px 16px; border: 1px solid #d9dfd9; border-radius: 4px; font-size: 14px }
.kpy-ev-filterbar__date-wrap { position: relative; display: flex; align-items: center; border: 1px solid #d9dfd9; border-radius: 4px; padding: 0 12px; background: #fff }
.kpy-ev-filterbar__date-wrap i { color: #666; font-size: 14px; margin-right: 6px }
.kpy-ev-filterbar__date { border: none; padding: 11px 4px; font-size: 14px; background: transparent; min-width: 40px }
.kpy-ev-filterbar__select { padding: 11px 16px; border: 1px solid #d9dfd9; border-radius: 4px; font-size: 14px; background: #fff; min-width: 150px }
.kpy-ev-filterbar__btn { background: #2ca0e0; color: #fff; border: none; border-radius: 4px; width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 16px }
.kpy-ev-filterbar__btn:hover { background: #248dc7 }
.kpy-ev-rows { display: flex; flex-direction: column; gap: 14px }
.kpy-ev-row { display: flex; align-items: center; gap: 20px; background: #f7f9f7; border: 1px solid #e6ebe6; border-radius: 6px; padding: 18px 24px }
.kpy-ev-row__badge { flex: 0 0 90px; width: 90px; height: 90px; background: #2ca0e0; border-radius: 6px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #fff; text-align: center }
.kpy-ev-row__weekday { font-size: 10px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; opacity: .85 }
.kpy-ev-row__day { font-size: 26px; font-weight: 800; line-height: 1.1 }
.kpy-ev-row__month { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .5px }
.kpy-ev-row__body { flex: 1 1 auto; min-width: 0 }
.kpy-ev-row__title { margin: 0 0 8px; font-size: 17px; font-weight: 700; display: flex; align-items: center; gap: 8px }
.kpy-ev-row__title i { color: #f0ad4e; font-size: 14px }
.kpy-ev-row__title a { color: #222; text-decoration: none }
.kpy-ev-row__title a:hover { color: #3a8a3a }
.kpy-ev-row__meta { font-size: 13px; color: #777; display: flex; align-items: center; gap: 6px }
.kpy-ev-row__cta { flex: 0 0 auto; color: #3a8a3a; font-weight: 700; text-transform: uppercase; font-size: 13px; letter-spacing: .5px; text-decoration: none; white-space: nowrap }
.kpy-ev-row__cta:hover { text-decoration: underline }
@media (max-width:640px) { .kpy-ev-row { flex-wrap: wrap } .kpy-ev-row__cta { margin-left: 110px } }
.kpy-ev-pagination { display: flex; justify-content: center; gap: 8px; margin-top: 32px }
.kpy-ev-page-btn { width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; border-radius: 4px; background: #fff; border: 1px solid #d9dfd9; color: #444; text-decoration: none; font-size: 14px }
.kpy-ev-page-btn:hover { background: #f0f4f0 }
.kpy-ev-page-btn--active { background: #2ca0e0; border-color: #2ca0e0; color: #fff }
.kpy-ev-empty { text-align: center; color: rgba(255, 255, 255, 0.8); padding: 60px 0; font-size: 15px }
.kpy-sev-status { display: inline-block; margin-left: 8px; padding: 4px 12px; border-radius: 20px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; vertical-align: middle }
.kpy-sev-status--upcoming { background: #2ca0e0; color: #fff }
.kpy-sev-status--live { background: #3a8a3a; color: #fff }
.kpy-sev-status--ended { background: #999; color: #fff }
.kpy-sev-status--recurring { background: #f0ad4e; color: #fff }
.kpy-sev-map-link { color: inherit; text-decoration: none; display: inline-flex; align-items: center; gap: 6px }
.kpy-sev-map-link:hover { color: #2ca0e0 }
.kpy-sev-map-link i { font-size: 11px; opacity: .6 }
.kpy-sev-ics-btn { display: inline-flex; align-items: center; gap: 8px; background: #2ca0e0; color: #fff; text-decoration: none; font-size: 13px; font-weight: 600; padding: 8px 16px; border-radius: 4px; margin-top: 4px }
.kpy-sev-ics-btn:hover { background: #248dc7 }
.kpy-sev-register-btn { display: inline-flex; align-items: center; gap: 8px; background: #3a8a3a; color: #fff; text-decoration: none; font-size: 13px; font-weight: 600; padding: 10px 18px; border-radius: 4px }
.kpy-sev-register-btn:hover { background: #31752f }

/** =========================================================
NEWS section
===============================================================**/

.gr-page-title-wrap{max-width:1320px;margin:0 auto;padding:48px 24px 0}
.gr-page-title-wrap h1{font-family:var(--kpy-font-2);font-weight:700;font-size:34px;color:var(--kpy-heading-text);margin:0 0 12px;padding-bottom:16px;border-bottom:1px solid var(--kpy-light-grey)}
.gr-page-content{max-width:1320px;margin:0 auto;padding:32px 24px 80px}
.gr-news-grid3{max-width:1320px;margin:0 auto;padding:0 24px 40px;display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.gr-news-card{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;border-right:2px solid var(--kpy-white)}
.gr-news-card__img{width:100%;height:100%;background-size:cover;background-position:center;position:relative;display:flex;flex-direction:column;justify-content:flex-end}
.gr-news-card__img::before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.85) 0%,rgba(0,0,0,.35) 45%,rgba(0,0,0,0) 75%)}
.gr-news-badge{position:relative;z-index:2;align-self:flex-start;background:#E5097F;color:var(--kpy-white);font-family:var(--kpy-font);font-size:12px;font-weight:700;letter-spacing:.5px;padding:5px 12px;margin:16px 0 auto 16px}
.gr-news-card__overlay{position:relative;z-index:2;padding:0 20px 20px}
.gr-news-card__title{font-family:var(--kpy-font-2);font-weight:800;font-size:20px;line-height:1.25;color:#fff!important;text-transform:uppercase;margin:0 0 10px}
.gr-news-card__meta{font-family:var(--kpy-font);font-size:12px;font-weight:600;letter-spacing:.5px;color:#fff!important;text-transform:uppercase}
@media (max-width:991px){.gr-news-grid3{grid-template-columns:1fr}}
.gr-news-lower{max-width:1320px;margin:0 auto;padding:40px 24px 80px;display:grid;grid-template-columns:2fr 1fr;gap:60px;align-items:start}
.gr-news-col-heading{font-family:var(--kpy-font-2);font-weight:800;font-size:24px;color:var(--kpy-heading-text);text-transform:uppercase;margin:0 0 10px;padding-bottom:14px;border-bottom:3px solid #E5097F;display:inline-block}
.gr-news-list-item{padding:28px 0;border-bottom:1px solid var(--kpy-light-grey)}
.gr-news-list-item:first-of-type{padding-top:0}
.gr-news-list-img{display:block;width:100%;aspect-ratio:16/9;background-size:cover;background-position:center;margin-bottom:16px}
.gr-news-taglabel{display:inline-block;color:#E5097F;font-family:var(--kpy-font);font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin-bottom:8px}
.gr-news-list-title{font-family:var(--kpy-font-2);font-weight:800;font-size:26px;line-height:1.3;margin:0 0 10px}
.gr-news-list-title a{color:var(--kpy-heading-text);text-decoration:none}
.gr-news-list-title a:hover{color:var(--kpy-primary)}
.gr-news-list-meta{font-family:var(--kpy-font);font-size:13px;font-weight:600;color:var(--kpy-grey);text-transform:uppercase;letter-spacing:.5px;margin-bottom:14px}
.gr-news-list-excerpt{font-family:var(--kpy-font);font-size:16px;line-height:1.7;color:var(--kpy-body-text);margin:0 0 12px}
.gr-news-readmore{font-family:var(--kpy-font);font-size:15px;font-weight:600;color:var(--kpy-blue);text-decoration:none}
.gr-news-readmore:hover{text-decoration:underline}
.gr-news-side-item{display:flex;justify-content:space-between;gap:16px;padding:22px 0;border-bottom:1px solid var(--kpy-light-grey)}
.gr-news-side-item:first-of-type{padding-top:0}
.gr-news-side-text{flex:1}
.gr-news-side-title{font-family:var(--kpy-font-2);font-weight:700;font-size:16px;line-height:1.35;margin:0 0 8px}
.gr-news-side-title a{color:var(--kpy-heading-text);text-decoration:none}
.gr-news-side-title a:hover{color:var(--kpy-primary)}
.gr-news-side-date{font-family:var(--kpy-font);font-size:13px;color:var(--kpy-grey)}
.gr-news-side-img{flex-shrink:0;width:80px;height:80px;background-size:cover;background-position:center;display:block}
@media (max-width:991px){.gr-news-lower{grid-template-columns:1fr}}
.gr-news-pagination{display:flex;align-items:center;gap:8px;margin-top:20px}
.gr-news-pgbtn{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;background:var(--kpy-dark-bg);color:var(--kpy-white);font-family:var(--kpy-font);font-size:14px;font-weight:600;text-decoration:none;padding:0 12px}
.gr-news-pgbtn:hover{background:var(--kpy-primary)}
.gr-news-pgbtn--active{background:var(--kpy-primary)}
.gr-news-pgdots{color:var(--kpy-grey);padding:0 4px}
.gr-single-main{max-width:840px;margin:0 auto;padding:48px 24px 80px}
.gr-single-title-wrap{text-align:left;margin-bottom:28px}
.gr-single-title{font-family:var(--kpy-font-2);font-weight:800;font-size:32px;color:var(--kpy-heading-text);margin:0 0 12px;line-height:1.3}
.gr-single-meta{font-family:var(--kpy-font);font-size:14px;font-weight:600;color:var(--kpy-grey);text-transform:uppercase;letter-spacing:.5px}
.gr-single-img{width:100%;max-width:600px;aspect-ratio:1/1;margin:0 0 32px;overflow:hidden}
.gr-single-img img{width:100%;height:100%;object-fit:cover;display:block}
.gr-single-content{text-align:left;font-family:var(--kpy-font);font-size:17px;line-height:1.8;color:var(--kpy-body-text)}
.gr-single-content p{margin:0 0 20px}
.gr-single-content img{max-width:100%;height:auto}




/*==========================================================
  Responsive (News section)
==========================================================*/
@media (max-width: 1024px) { .kpy-news-grid { grid-template-columns: repeat(2, 1fr) } .kpy-news-slide { flex: 0 0 300px; min-width: 300px } }
@media (max-width: 900px) { .kpy-sn-wrap { grid-template-columns: 1fr } .kpy-sn-sidebar { position: static } }
@media (max-width: 768px) { .kpy-news-slider-container { padding: 40px 15px } .kpy-news-slider-title { font-size: 2rem } .kpy-news-slider-wrapper { padding: 0 20px } .kpy-news-slide { flex: 0 0 280px; min-width: 280px } .kpy-news-slider-prev { left: 0 } .kpy-news-slider-next { right: 0 } .kpy-sn-hero { min-height: 320px; padding-top: 70px } .kpy-sn-hero-inner { padding: 0 20px 36px } .kpy-sn-hero-inner h1 { font-size: 22px } .kpy-sn-featured-img img { height: 220px } .kpy-sn-share { flex-direction: column; align-items: flex-start } }
@media (max-width: 640px) { .kpy-news-grid { grid-template-columns: 1fr } .kpy-news-card { height: 380px } .kpy-news-slider-title { font-size: 1.7rem } .kpy-news-slide { flex: 0 0 260px; min-width: 260px } }

/*==========================================================
  Gallery page
===============================================================**/
.gallery-cards-container { margin: 0 auto; padding: 20px }
.gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; margin-bottom: 30px }
.gallery-card { position: relative; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); transition: all 0.3s ease; aspect-ratio: 1/1 }
.gallery-card:hover { transform: translateY(-5px); box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2) }
.gallery-thumbnail-wrapper { position: relative; width: 100%; height: 100% }
.gallery-thumbnail { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease }
.gallery-card:hover .gallery-thumbnail { transform: scale(1.05) }
.gallery-title-overlay { position: absolute; bottom: 0; left: 0; right: 0; padding: 20px; background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 100%); color: #fff }
.gallery-title { margin: 0; font-size: 2.2rem; line-height: 1.2; text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5); transform: translateY(10px); transition: transform 0.3s ease; opacity: 0.9 }
.gallery-card:hover .gallery-title { transform: translateY(0); opacity: 1 }
.gallery-card-link { display: block; height: 100%; text-decoration: none; color: inherit }
.gallery-pagination { display: flex; justify-content: center; margin-top: 40px }
.gallery-pagination .page-numbers { display: flex; list-style: none; padding: 0; margin: 0; gap: 8px }
.gallery-pagination .page-numbers li a, .gallery-pagination .page-numbers li span { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 10px; border-radius: 6px; background: #f8f9fa; color: #495057; text-decoration: none; font-weight: 500; transition: all 0.3s ease }
.gallery-pagination .page-numbers li a:hover { background: #228b22; color: #fff }
.gallery-pagination .page-numbers li span.current { background: #228b22; color: #fff }
.gallery-pagination .page-numbers li .pagination-arrow { margin: 0 5px }
@media (max-width: 768px) { .gallery-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 15px } .gallery-title-overlay { padding: 15px } .gallery-title { font-size: 1rem } }
@media (max-width: 480px) { .gallery-grid { grid-template-columns: 1fr 1fr; gap: 10px } .gallery-title-overlay { padding: 10px } }

/*==========================================================
  Video Gallery
==========================================================*/
.kpy-vg-container { max-width: 1200px; margin: 60px auto; padding: 0 20px }
.kpy-vg-grid { display: grid; gap: 28px; margin-bottom: 50px }
.kpy-vg-cols-3 { grid-template-columns: repeat(3, 1fr) }
.kpy-vg-cols-2 { grid-template-columns: repeat(2, 1fr) }
.kpy-vg-cols-4 { grid-template-columns: repeat(4, 1fr) }
.kpy-vg-empty { text-align: center; color: var(--kpy-grey); font-family: var(--kpy-font-2); padding: 60px 0 }
.kpy-vg-card { position: relative; border-radius: 0 0 50px 0; overflow: hidden; height: 420px; cursor: pointer; box-shadow: 0 8px 32px rgba(var(--kpy-base-rgb), 0.14); transition: transform 0.35s cubic-bezier(.25, .8, .25, 1), box-shadow 0.35s }
.kpy-vg-card:hover { transform: translateY(-6px); box-shadow: 0 18px 48px rgba(var(--kpy-base-rgb), 0.24) }
.kpy-vg-thumb { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform 0.55s ease; z-index: 1 }
.kpy-vg-card:hover .kpy-vg-thumb { transform: scale(1.06) }
.kpy-vg-overlay { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(var(--kpy-base-rgb), 0.72) 0%, rgba(var(--kpy-base-rgb), 0.15) 45%, rgba(var(--kpy-base-rgb), 0.55) 100%); z-index: 2; transition: background 0.35s }
.kpy-vg-card:hover .kpy-vg-overlay { background: linear-gradient(to bottom, rgba(var(--kpy-base-rgb), 0.80) 0%, rgba(var(--kpy-base-rgb), 0.30) 45%, rgba(var(--kpy-base-rgb), 0.65) 100%) }
.kpy-vg-card-top { position: relative; z-index: 3; padding: 22px 22px 0; display: flex; flex-direction: column; align-items: flex-start; gap: 7px }
.kpy-vg-badge { background: var(--kpy-orange); color: var(--kpy-white); font-family: var(--kpy-font-2); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; padding: 4px 12px; border-radius: 0 0 8px 0 }
.kpy-vg-title { font-family: var(--kpy-font); font-size: 16px; font-weight: 700; color: var(--kpy-white); margin: 0; text-shadow: 1px 1px 4px rgba(var(--kpy-base-rgb), 0.7); letter-spacing: 0.5px; line-height: 1.4; text-transform: uppercase }
.kpy-vg-date { font-family: var(--kpy-font-2); font-size: 12px; color: rgba(255, 255, 255, 0.8); display: flex; align-items: center; gap: 5px }
.kpy-vg-date i { color: var(--kpy-orange) }
.kpy-vg-duration { position: absolute; top: 18px; right: 18px; z-index: 3; background: rgba(var(--kpy-base-rgb), 0.75); color: var(--kpy-white); font-family: var(--kpy-font-2); font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 4px; display: flex; align-items: center; gap: 5px }
.kpy-vg-duration i { color: var(--kpy-orange); font-size: 11px }
.kpy-vg-play-btn { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(1); z-index: 4; width: 64px; height: 64px; background: rgba(var(--kpy-orange-rgb), 0.9); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--kpy-white); font-size: 22px; box-shadow: 0 6px 24px rgba(var(--kpy-orange-rgb), 0.55); transition: transform 0.3s, background 0.3s }
.kpy-vg-card:hover .kpy-vg-play-btn { transform: translate(-50%, -50%) scale(1.15); background: var(--kpy-orange) }
.kpy-vg-play-btn i { margin-left: 4px }
.kpy-vg-source-icon { position: absolute; bottom: 18px; right: 18px; z-index: 4; width: 38px; height: 38px; background: rgba(var(--kpy-base-rgb), 0.65); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--kpy-white); font-size: 15px; transition: background 0.3s }
.kpy-vg-card:hover .kpy-vg-source-icon { background: var(--kpy-primary) }
.kpy-vg-source-icon .fa-youtube { color: #ff4444 }
.kpy-vg-pagination { display: flex; justify-content: center; gap: 10px; margin-top: 20px; flex-wrap: wrap }
.kpy-vg-page-btn { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 0 0 12px 0; background: var(--kpy-light); color: var(--kpy-primary); font-family: var(--kpy-font-2); font-weight: 700; font-size: 14px; text-decoration: none; transition: background 0.25s, color 0.25s, transform 0.25s }
.kpy-vg-page-btn:hover { background: var(--kpy-primary); color: var(--kpy-white); transform: translateY(-2px) }
.kpy-vg-page-btn.active { background: var(--kpy-orange); color: var(--kpy-white); cursor: default; pointer-events: none }

/*==========================================================
  Video Modal
==========================================================*/
.kpy-vg-modal { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; visibility: hidden; opacity: 0; transition: opacity 0.3s ease, visibility 0.3s ease }
.kpy-vg-modal.is-open { visibility: visible; opacity: 1 }
.kpy-vg-modal-backdrop { position: absolute; inset: 0; background: rgba(var(--kpy-base-rgb), 0.88); backdrop-filter: blur(4px); cursor: pointer }
.kpy-vg-modal-inner { position: relative; z-index: 2; width: 92%; max-width: 920px; background: var(--kpy-base); border-radius: 0 0 40px 0; box-shadow: 0 30px 80px rgba(0, 0, 0, 0.6); display: flex; flex-direction: column; max-height: 90vh; overflow: hidden; animation: kpy-modal-in 0.35s cubic-bezier(.25, .8, .25, 1) both }
.kpy-vg-modal.is-open .kpy-vg-modal-inner { animation: kpy-modal-in 0.35s cubic-bezier(.25, .8, .25, 1) both }
@keyframes kpy-modal-in { from { opacity: 0; transform: translateY(30px) scale(0.96) } to { opacity: 1; transform: translateY(0) scale(1) } }
.kpy-vg-modal-header { display: flex; align-items: center; justify-content: space-between; padding: 16px 24px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); flex-shrink: 0 }
.kpy-vg-modal-title { font-family: var(--kpy-font); font-size: 14px; color: var(--kpy-white); letter-spacing: 2px; text-transform: uppercase; opacity: 0.9; flex: 1; margin-right: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis }
.kpy-vg-modal-close { width: 38px; height: 38px; border-radius: 50%; background: rgba(var(--kpy-orange-rgb), 0.85); border: none; color: var(--kpy-white); font-size: 16px; cursor: pointer; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background 0.25s, transform 0.25s }
.kpy-vg-modal-close:hover { background: var(--kpy-orange); transform: rotate(90deg) scale(1.1) }
.kpy-vg-modal-body { padding: 0; flex: 1; overflow: hidden }
.kpy-vg-video-wrap { position: relative; width: 100%; padding-bottom: 56.25%; background: #000 }
.kpy-vg-video-wrap iframe, .kpy-vg-video-wrap video { position: absolute; inset: 0; width: 100%; height: 100%; border: none; display: block }
@media (max-width: 1024px) { .kpy-vg-cols-3 { grid-template-columns: repeat(2, 1fr) } .kpy-vg-cols-4 { grid-template-columns: repeat(2, 1fr) } }
@media (max-width: 768px) { .kpy-vg-cols-2, .kpy-vg-cols-3, .kpy-vg-cols-4 { grid-template-columns: 1fr } .kpy-vg-card { height: 360px } .kpy-vg-modal-inner { width: 98%; border-radius: 0 0 24px 0 } .kpy-vg-modal-title { font-size: 12px } }
@media (max-width: 480px) { .kpy-vg-container { padding: 0 12px; margin: 40px auto } .kpy-vg-play-btn { width: 52px; height: 52px; font-size: 18px } }

/** ============================================================
Error 404 Page Not Found CSS
=============================================================**/
.Error_404 { overflow: hidden; padding: 80px 0 120px }
.Error_404 .error_pic { width: 35%; float: left; text-align: center }
.Error_404 .error_pic i { color: #F72331; font-size: 250px; line-height: 250px; margin-right: .2em; text-align: center; font-variant: normal; text-transform: none; margin-left: .2em }
.Error_404 .error_desk { width: 65%; float: left; padding-top: 40px }
.Error_404 .error_desk h2 { font-size: 55px; line-height: 60px; color: #F72331; font-weight: 500 }
.Error_404 .error_desk h4 { font-size: 28px; line-height: 30px }
.Error_404 .error_desk p .check { line-height: 45px; font-size: 16px }
.Error_404 .error_desk p .button { padding: 13px 20px; margin: 0; border-radius: 5px; display: inline; margin-left: 10px; box-shadow: inset 0 0 0 0 }
.Error_404 .error_desk p .button:hover { color: #f9f9f9; text-decoration: none; background: #F72331 }
a.button, a.tp-button { transition: .2s all; background: transparent; color: #F72331; border: solid 2px }
.wp-block-ub-tabbed-content-tab-title strong { font-weight: 500 !important }

/*------------------------------------*\
    RESPONSIVE
\*------------------------------------*/
@media only screen and (max-width: 600px) { .menu-section .logo { object-fit: contain !important; height: 70px } .menu-section .navbar-nav { height: 100%; display: flex; align-items: flex-start; gap: 5px } .menu-section .navbar-nav .nav-link { color: var(--kpy-black) !important; font-family: var(--kpy-font); font-weight: 400; text-transform: uppercase; letter-spacing: 1px; font-size: 16px; height: 40px; display: flex; align-items: center; position: relative; transition: all 0.3s ease; padding: 0 0.5rem !important } .menu-section { height: 80px; position: relative; top: 0; z-index: 1000; background: #f7f7f7; height: 80px; display: flex; align-items: center; transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); box-shadow: 0 2px 10px rgba(0, 0, 0, 0) } .intro-image-col { display: flex; flex-direction: column; align-items: center; padding-bottom: 20px; padding-top: 0 } .message-heading { font-size: 25px; font-weight: 400; color: var(--kpy-primary) } .president-img img { margin-bottom: 0; height: 250px; width: 100%; max-width: 100%; object-position: top } .president-message-text p { margin-top: 0; margin-bottom: 16px; font-size: 1rem; font-weight: 400; line-height: 1.5; color: #212529 } .president-message-text { display: -webkit-box; -webkit-line-clamp: 10; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; max-height: calc(1.6em * 10) } .message-button { display: block; padding-top: 10px } .rotary-content { padding: 15px } .rotary-header h1, .president-header h1 { font-size: 25px } .president-profile { flex-direction: column; justify-content: center } .president-photo { width: 200px; height: 200px } #downloads-table { border-spacing: 0 } #downloads-table tr { display: flex; flex-direction: column; margin-bottom: 20px } #downloads-table td { width: 100% !important; display: block; padding: 15px } .member-thumbnail { margin-bottom: 15px } .project-image { height: 180px } .contact-page { margin: 20px 0; padding: 40px 0 } .contact-form, .contact-info { padding: 25px } .contact-form { margin-bottom: 30px } .contact-info ul li strong { width: 70px } .map-container iframe { height: 250px } .footer-menus { gap: 5px; font-size: 12px } .footer-menus a { font-size: 12px } .footer-menus .social-links a { font-size: 18px } .donation-form-area { padding-left: 5%; padding-right: 5% } }

/* =============================================
   OFFCANVAS MOBILE NAVIGATION DRAWER
   ============================================= */
.nape-offcanvas { width: 320px !important; background: #1a1a1a; border-left: 3px solid var(--kpy-primary) }
.nape-offcanvas-header { background: #111; padding: 18px 20px; border-bottom: 1px solid rgba(255, 255, 255, .08); display: flex; align-items: center; justify-content: space-between }
.nape-offcanvas-logo { max-height: 52px; width: auto }
.nape-offcanvas-body { padding: 24px 20px 32px }
.nape-offcanvas-menu { list-style: none; margin: 0; padding: 0 }
.nape-offcanvas-menu li { border-bottom: 1px solid rgba(255, 255, 255, .07) }
.nape-offcanvas-menu li:last-child { border-bottom: none }
.nape-offcanvas-menu li a { display: block; font-family: var(--kpy-font-2); font-size: .95rem; font-weight: 600; color: rgba(255, 255, 255, .88); text-decoration: none; padding: 13px 4px; letter-spacing: .02em; transition: color .2s ease, padding-left .2s ease }
.nape-offcanvas-menu li a:hover, .nape-offcanvas-menu li a:focus { color: var(--kpy-primary); padding-left: 8px }
.nape-offcanvas-menu .sub-menu { list-style: none; margin: 0; padding: 0 0 6px 16px }
.nape-offcanvas-menu .sub-menu li { border-bottom: none }
.nape-offcanvas-menu .sub-menu li a { font-size: .88rem; font-weight: 500; color: rgba(255, 255, 255, .6); padding: 8px 4px }
.nape-offcanvas-menu .sub-menu li a:hover { color: var(--kpy-primary) }
.nape-offcanvas-cta .btn-nape-primary { background: var(--kpy-blue); color: #fff !important; border: none; border-radius: 6px; font-family: var(--kpy-font-2); font-weight: 700; font-size: .9rem; letter-spacing: .04em; text-transform: uppercase; padding: 12px 20px; transition: background .2s ease }
.nape-offcanvas-cta .btn-nape-primary:hover { background: #178aa8 }
.nape-offcanvas-socials a { color: rgba(255, 255, 255, .6); font-size: 1.1rem; text-decoration: none; transition: color .2s ease }
.nape-offcanvas-socials a:hover { color: var(--kpy-primary) }
.offcanvas-backdrop { background-color: rgba(0, 0, 0, .65) !important }

/* =============================================
   STICKY HEADER - body padding so content
   doesn't hide behind the fixed header
   ============================================= */
body { padding-top: 0 !important }
:target { scroll-margin-top: 120px }
#napeHeader { z-index: 1030 }


/* =============================================
   FRONT PAGE CONTENT
   ============================================= */
.fc-front-content { margin: 0; padding: 0 }


/* =============================================
   FOOTER - font override to DM Sans
   ============================================= */
.fc-footer-v2-col-title, .fc-footer-v2-about-text, .fc-footer-v2-links a, .fc-footer-v2-contact-item span, .fc-footer-v2-copy, .fc-footer-v2-credit-wrap { font-family: var(--kpy-font-2) !important }

/* =============================================
   RESPONSIVE TWEAKS - mobile header
   ============================================= */
@media (max-width: 991px) { .nape-main-nav .container-xxl { padding-left: 16px; padding-right: 16px } .nape-logo-box { padding: 8px 16px } .nape-nav-logo { max-height: 58px } }
@media (max-width: 480px) { .nape-offcanvas { width: 290px !important } }




/* =============================================================
   PUBLICATIONS — [nape_publications] shortcode
   ============================================================= */
.npub-wrap { max-width: 1160px; margin: 0 auto; padding: 32px 24px 56px; font-family: var(--kpy-font-2) }
.npub-filterbar { display: flex; align-items: center; gap: 10px; background: #fff; border: 1px solid #dde5dd; border-radius: 6px; padding: 16px 18px; margin-bottom: 24px; flex-wrap: wrap; box-shadow: 0 1px 4px rgba(0, 0, 0, .05) }
.npub-filterbar__search { flex: 1 1 220px; min-width: 160px; padding: 9px 14px; border: 1px solid #d0d8d0; border-radius: 4px; font-family: var(--kpy-font-2); font-size: .9rem; color: #444; background: #fff; outline: none; transition: border-color .2s }
.npub-filterbar__search:focus { border-color: var(--kpy-primary) }
.npub-filterbar__search::placeholder { color: #aaa }
.npub-filterbar__selects { display: flex; gap: 8px; flex-wrap: wrap }
.npub-filterbar__select { padding: 9px 32px 9px 12px; border: 1px solid #d0d8d0; border-radius: 4px; font-family: var(--kpy-font-2); font-size: .88rem; color: #444; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23666'/%3E%3C/svg%3E") no-repeat right 10px center; appearance: none; -webkit-appearance: none; cursor: pointer; outline: none; transition: border-color .2s }
.npub-filterbar__select:focus { border-color: var(--kpy-primary) }
.npub-filterbar__btn { background: var(--kpy-blue); color: #fff; border: none; border-radius: 4px; padding: 9px 22px; font-family: var(--kpy-font-2); font-size: .9rem; font-weight: 700; cursor: pointer; white-space: nowrap; transition: background .2s ease }
.npub-filterbar__btn:hover { background: #178aa8 }
.npub-filterbar__clear { color: rgba(255, 255, 255, 0.8); font-size: 1.1rem; text-decoration: none; padding: 4px 6px; line-height: 1; transition: color .15s }
.npub-filterbar__clear:hover { color: #c00 }
.npub-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; border: 1px solid #e0e8e0; border-radius: 6px; overflow: hidden }
.npub-card { display: flex; align-items: flex-start; gap: 14px; padding: 18px 16px; background: #fff; border-bottom: 1px solid #e8f0e8; border-right: 1px solid #e8f0e8; position: relative; transition: background .15s ease }
.npub-card:nth-child(2n) { border-right: none }
.npub-card:nth-last-child(-n+2):nth-child(odd), .npub-card:last-child { border-bottom: none }
.npub-card:hover { background: #f7fbf7 }
.npub-card__icon-col { flex-shrink: 0; width: 36px; margin-top: 2px }
.npub-card__icon { width: 36px; height: 44px; display: block }
.npub-card__icon svg { width: 100%; height: 100%; display: block }
.npub-card__icon--pdf svg path:first-child { fill: #e04040 }
.npub-card__icon--doc svg path:first-child, .npub-card__icon--docx svg path:first-child { fill: #2b579a }
.npub-card__icon--xls svg path:first-child, .npub-card__icon--xlsx svg path:first-child { fill: #217346 }
.npub-card__icon--ppt svg path:first-child, .npub-card__icon--pptx svg path:first-child { fill: #d24726 }
.npub-card__body { flex: 1; min-width: 0 }
.npub-card__title { font-family: var(--kpy-font-2); font-size: .88rem; font-weight: 700; margin: 0 0 4px; line-height: 1.35; text-transform: uppercase; letter-spacing: .01em }
.npub-card__title a { color: var(--kpy-primary); text-decoration: none }
.npub-card__title a:hover { text-decoration: underline }
.npub-card__meta { font-family: var(--kpy-font-2); font-size: .76rem; color: rgba(255, 255, 255, 0.8); margin: 0 0 6px; line-height: 1.4 }
.npub-card__excerpt { font-family: var(--kpy-font-2); font-size: .82rem; color: #555; line-height: 1.6; margin: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden }
.npub-card__action { flex-shrink: 0; display: flex; align-items: center; align-self: center }
.npub-card__dl-btn { display: inline-block; background: var(--kpy-blue); color: #fff !important; font-family: var(--kpy-font-2); font-size: .82rem; font-weight: 700; text-decoration: none; padding: 8px 18px; border-radius: 4px; white-space: nowrap; transition: background .2s ease; cursor: pointer }
.npub-card__dl-btn:hover { background: #178aa8; color: #fff !important }
.npub-card__dl-btn--view { background: var(--kpy-primary) }
.npub-card__dl-btn--view:hover { background: var(--kpy-olive-dark) }
.npub-pagination { display: flex; align-items: center; justify-content: center; gap: 4px; margin-top: 28px; flex-wrap: wrap }
.npub-page-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; height: 34px; padding: 0 6px; border-radius: 4px; border: 1px solid #d0d8d0; background: #fff; color: #444; font-family: var(--kpy-font-2); font-size: .88rem; font-weight: 600; text-decoration: none; transition: background .15s ease, border-color .15s ease, color .15s ease }
.npub-page-btn:hover { background: #f0f8f0; border-color: var(--kpy-primary); color: var(--kpy-primary) }
.npub-page-btn--active { background: var(--kpy-blue); border-color: var(--kpy-blue); color: #fff !important }
.npub-page-btn--active:hover { background: var(--kpy-blue); color: #fff !important }
.npub-page-ellipsis { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; height: 34px; color: #aaa; font-size: .88rem }
.npub-empty { text-align: center; color: rgba(255, 255, 255, 0.8); padding: 48px 0; font-size: .95rem }
@media (max-width: 860px) { .npub-grid { grid-template-columns: 1fr } .npub-card:nth-child(2n) { border-right: 1px solid #e8f0e8 } .npub-card:last-child { border-bottom: none } }
@media (max-width: 600px) { .npub-wrap { padding: 20px 12px 40px } .npub-filterbar { padding: 12px 14px } .npub-filterbar__selects { width: 100% } .npub-filterbar__select { flex: 1 } .npub-filterbar__btn { width: 100% } .npub-card { padding: 14px 12px } .npub-card__title { font-size: .82rem } }

/* =============================================================
   REPORTS / PUBLICATIONS ARCHIVE
   ============================================================= */
.nape-pub-wrap { max-width: 1200px; margin: 0 auto; padding: 32px 20px 56px; box-sizing: border-box }
.nape-pub-filterbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 28px; padding: 14px; background: #f8fbf8; border: 1px solid #dde8dd; border-radius: 6px }
.nape-pub-filterbar__search, .nape-pub-filterbar__select { font-family: var(--kpy-font-2); font-size: .88rem; color: #4a4f4a; border: 1px solid #d1dbd1; border-radius: 4px; background: #fff }
.nape-pub-filterbar__search { flex: 1 1 240px; min-width: 200px; padding: 9px 12px }
.nape-pub-filterbar__select { padding: 9px 34px 9px 12px; appearance: none; -webkit-appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23666'/%3E%3C/svg%3E") no-repeat right 10px center }
.nape-pub-filterbar__btn { background: var(--kpy-blue); color: #fff; border: none; border-radius: 4px; padding: 9px 18px; font-family: var(--kpy-font-2); font-size: .88rem; font-weight: 700; cursor: pointer }
.nape-pub-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px }
.nape-pub-card { display: flex; gap: 16px; align-items: flex-start; padding: 18px; background: #f4f9f2; border: 1px solid #d9e6d8; border-radius: 6px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03); min-height: 190px }
.nape-pub-card__badge { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; padding: 5px 8px; border-radius: 4px; font-family: var(--kpy-font-2); font-size: .74rem; font-weight: 800; text-decoration: none; color: #fff; background: var(--kpy-blue) }
.nape-pub-card__badge--pdf { background: #c13030 }
.nape-pub-card__badge--doc, .nape-pub-card__badge--docx { background: #2f64a7 }
.nape-pub-card__badge--ppt, .nape-pub-card__badge--pptx { background: #c56e2c }
.nape-pub-card__badge--xls, .nape-pub-card__badge--xlsx { background: #2c8d59 }
.nape-pub-card__body { flex: 1 1 auto; min-width: 0 }
.nape-pub-card__meta { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 8px; font-family: var(--kpy-font-2); font-size: .78rem; color: #607160 }
.nape-pub-card__meta-item { display: inline-flex; align-items: center; gap: 4px }
.nape-pub-card__title { margin: 0 0 10px; font-family: var(--kpy-font-2); font-size: 1rem; font-weight: 800; line-height: 1.4 }
.nape-pub-card__title a { color: #0e5570; text-decoration: none }
.nape-pub-card__title a:hover { color: var(--kpy-primary); text-decoration: underline }
.nape-pub-card__excerpt { margin: 0; font-family: var(--kpy-font-2); font-size: .87rem; line-height: 1.6; color: #4f5a4f }
.nape-pub-card__dl-btn { display: inline-block; margin-top: 12px; padding: 10px 16px; background: var(--kpy-blue); color: #fff !important; text-decoration: none; font-family: var(--kpy-font-2); font-size: .84rem; font-weight: 800; border-radius: 4px; text-transform: uppercase; letter-spacing: .04em }
.nape-pub-card__dl-btn:hover { background: #178aa8; color: #fff !important }
.nape-pub-empty, .nape-pub-pagination { font-family: var(--kpy-font-2) }
.nape-pub-pagination { display: flex; gap: 8px; justify-content: center; margin-top: 24px }
.nape-pub-page-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; padding: 6px 10px; background: #fff; border: 1px solid #d1dbd1; border-radius: 4px; color: #325465; text-decoration: none }
.nape-pub-page-btn--active { background: var(--kpy-blue); border-color: var(--kpy-blue); color: #fff }
@media (max-width: 780px) { .nape-pub-grid { grid-template-columns: 1fr } }

/* =============================================================
   SINGLE PUBLICATION / DOWNLOAD PAGE
   ============================================================= */
.sdl-page-wrap { max-width: 1200px; margin: 0 auto; padding: 36px 40px 56px; box-sizing: border-box }
.sdl-page-grid { display: grid; grid-template-columns: 1fr 300px; gap: 40px; align-items: start }
.sdl-main { min-width: 0 }
.sdl-title { font-family: var(--kpy-font-2) !important; font-size: 1.1rem !important; font-weight: 800 !important; text-transform: uppercase !important; color: var(--kpy-heading-text) !important; letter-spacing: .02em !important; line-height: 1.35; margin: 0 0 14px !important }
.sdl-meta-row { display: flex; align-items: center; gap: 18px; font-family: var(--kpy-font-2); font-size: .85rem; color: #666; margin-bottom: 16px; flex-wrap: wrap }
.sdl-meta-row__item { display: flex; align-items: center; gap: 5px }
.sdl-meta-row__item i { color: var(--kpy-primary) }
.sdl-meta-row__cat { display: flex; align-items: center; gap: 5px; color: #666; text-decoration: none }
.sdl-meta-row__cat:hover { color: var(--kpy-primary) }
.sdl-meta-row__cat i { color: rgba(255, 255, 255, 0.8) }
.sdl-divider { border: none; border-top: 1px solid #dde5dd; margin: 16px 0 20px }
.sdl-divider--light { border-color: #eee; margin: 20px 0 }
.sdl-body-grid { display: grid; grid-template-columns: 200px 1fr; gap: 28px; align-items: start }
.sdl-stats { min-width: 0 }
.sdl-dl-btn { display: block; width: 100%; text-align: center; background: var(--kpy-blue); color: #fff !important; font-family: var(--kpy-font-2); font-size: .88rem; font-weight: 700; text-decoration: none; padding: 10px 12px; border-radius: 4px; margin-bottom: 16px; transition: background .2s ease; text-transform: uppercase; letter-spacing: .04em }
.sdl-dl-btn:hover { background: #178aa8; color: #fff !important }
.sdl-stats-table { width: 100%; border-collapse: collapse; font-family: var(--kpy-font-2); font-size: .82rem }
.sdl-stats-table tr { border-bottom: 1px solid #eee }
.sdl-stats-table tr:last-child { border-bottom: none }
.sdl-stats-table th { font-weight: 600; color: #444; text-align: left; padding: 9px 8px 9px 0; white-space: nowrap; width: 55% }
.sdl-stats-table td { padding: 9px 0; text-align: right }
.sdl-stats-badge { display: inline-block; border-radius: 3px; padding: 2px 8px; font-size: .78rem; font-weight: 700; white-space: nowrap }
.sdl-stats-badge--blue { background: var(--kpy-blue); color: #fff }
.sdl-content { min-width: 0 }
.sdl-content__title { font-family: var(--kpy-font-2) !important; font-size: 1.05rem !important; font-weight: 800 !important; text-transform: uppercase !important; color: var(--kpy-heading-text) !important; letter-spacing: .02em !important; line-height: 1.35; margin: 0 0 14px !important }
.sdl-content__body { font-family: var(--kpy-font-2); font-size: .93rem; line-height: 1.8; color: #444 }
.sdl-content__body p { margin-bottom: 14px; color: #444 }
.sdl-content__body a { color: var(--kpy-primary); text-decoration: underline }
.sdl-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 }
.sdl-tag-pill { display: inline-flex; align-items: center; gap: 4px; background: #e8eee8; color: #444; font-family: var(--kpy-font-2); font-size: .78rem; font-weight: 600; padding: 4px 10px; border-radius: 20px; text-decoration: none; transition: background .15s ease }
.sdl-tag-pill:hover { background: var(--kpy-primary); color: #fff }
.sdl-tag-pill i { font-size: .72rem }
.sdl-share { display: flex; flex-wrap: wrap; gap: 8px }
.sdl-share-btn { display: inline-flex; align-items: center; gap: 6px; font-family: var(--kpy-font-2); font-size: .82rem; font-weight: 700; text-decoration: none; padding: 8px 16px; border-radius: 4px; color: #fff !important; transition: opacity .2s ease }
.sdl-share-btn:hover { opacity: .88 }
.sdl-share-btn--fb { background: #1877f2 }
.sdl-share-btn--tw { background: #000 }
.sdl-share-btn--email { background: #888 }
.sdl-share-btn--wa { background: #25d366 }
.sdl-share-btn--li { background: #0a66c2 }
.sdl-sidebar { position: sticky; top: 120px; min-width: 0 }
.sdl-sidebar__heading { font-family: var(--kpy-font-2) !important; font-size: 1.25rem !important; font-weight: 800 !important; color: var(--kpy-heading-text) !important; text-transform: none !important; letter-spacing: 0 !important; margin: 0 0 18px !important; padding-bottom: 10px; border-bottom: 2px solid var(--kpy-primary) }
.sdl-sidebar__list { list-style: none; margin: 0; padding: 0 }
.sdl-sidebar__item { display: flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid #eee; align-items: flex-start }
.sdl-sidebar__item:last-child { border-bottom: none }
.sdl-sidebar__thumb { flex-shrink: 0; display: block; width: 80px; height: 80px; overflow: hidden; border-radius: 3px; background: #e8eee8 }
.sdl-sidebar__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease }
.sdl-sidebar__item:hover .sdl-sidebar__thumb img { transform: scale(1.05) }
.sdl-sidebar__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 5px }
.sdl-sidebar__post-title { font-family: var(--kpy-font-2); font-size: .82rem; font-weight: 700; color: var(--kpy-blue); text-decoration: none; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden }
.sdl-sidebar__post-title:hover { color: var(--kpy-primary); text-decoration: underline }
.sdl-sidebar__post-meta { display: flex; flex-direction: column; gap: 2px }
.sdl-sidebar__author { font-family: var(--kpy-font-2); font-size: .74rem; color: #666; font-weight: 500 }
.sdl-sidebar__date { font-family: var(--kpy-font-2); font-size: .74rem; color: #666 }
@media (max-width: 900px) { .sdl-page-grid { grid-template-columns: 1fr } .sdl-sidebar { position: static } }
@media (max-width: 640px) { .sdl-page-wrap { padding: 24px 16px 44px } .sdl-body-grid { grid-template-columns: 1fr } .sdl-title { font-size: .95rem !important } }

/* =============================================================
   NEWS PAGE — 4-column card grid
   ============================================================= */
.nape-news-wrap { max-width: 1200px; margin: 0 auto; padding: 40px 40px 56px; box-sizing: border-box }
.nape-news-grid4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-bottom: 36px }
.nape-news-card4 { background: #fff; border: 1px solid #e8eee8; border-radius: 4px; overflow: hidden; display: flex; flex-direction: column; transition: box-shadow .2s ease }
.nape-news-card4:hover { box-shadow: 0 4px 18px rgba(0, 0, 0, .10) }
.nape-news-card4__img-link { display: block; width: 100%; aspect-ratio: 4 / 3; overflow: hidden; background: #e8eee8 }
.nape-news-card4__img { width: 100%; height: 100%; background-size: cover; background-position: center; transition: transform .4s ease }
.nape-news-card4:hover .nape-news-card4__img { transform: scale(1.04) }
.nape-news-card4__body { padding: 14px 14px 16px; flex: 1; display: flex; flex-direction: column; gap: 10px }
.nape-news-card4__title { font-family: var(--kpy-font-2); font-size: .9rem; font-weight: 700; line-height: 1.4; margin: 0; flex: 1 }
.nape-news-card4__title a { color: var(--kpy-primary); text-decoration: none }
.nape-news-card4__title a:hover { text-decoration: underline }
.nape-news-card4__date { display: flex; align-items: center; gap: 6px; font-family: var(--kpy-font-2); font-size: .80rem; color: #666 }
.nape-news-card4__date i { color: var(--kpy-primary); font-size: .85rem }
.nape-news-pagination { display: flex; align-items: center; gap: 4px; flex-wrap: wrap }
.nape-news-pgbtn { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 32px; padding: 0 6px; border: 1px solid #d0d8d0; border-radius: 3px; background: #fff; color: #444; font-family: var(--kpy-font-2); font-size: .85rem; font-weight: 600; text-decoration: none; transition: background .15s, color .15s, border-color .15s }
.nape-news-pgbtn:hover { background: #f0f8f0; border-color: var(--kpy-primary); color: var(--kpy-primary) }
.nape-news-pgbtn--active { background: var(--kpy-blue); border-color: var(--kpy-blue); color: #fff !important }
.nape-news-pgbtn--next { padding: 0 12px; font-weight: 600 }
.nape-news-pgellipsis { display: inline-flex; align-items: center; padding: 0 6px; color: #aaa; font-size: .85rem; pointer-events: none }
.nape-news-empty { text-align: center; color: rgba(255, 255, 255, 0.8); padding: 48px 0 }
@media (max-width: 1024px) { .nape-news-grid4 { grid-template-columns: repeat(3, 1fr) } }
@media (max-width: 768px) { .nape-news-wrap { padding: 28px 20px 44px } .nape-news-grid4 { grid-template-columns: repeat(2, 1fr); gap: 16px } }
@media (max-width: 480px) { .nape-news-grid4 { grid-template-columns: 1fr } }


/* =============================================================
   UPCOMING EVENTS PAGE (full rewrite)
   ============================================================= */
.kpy-ev-page-wrap { max-width: 1160px; margin: 0 auto; padding: 32px 40px 56px; box-sizing: border-box }
.kpy-ev-nb-line { font-family: var(--kpy-font-2); font-size: .95rem; color: #444; margin: 0 0 20px; line-height: 1.5 }
.kpy-ev-nb-line strong { font-weight: 700; color: var(--kpy-heading-text) }
.kpy-ev-filterbar { display: flex; align-items: center; gap: 10px; background: #fff; border: 1px solid #dde5dd; border-radius: 4px; padding: 14px 18px; margin-bottom: 24px; flex-wrap: wrap; box-shadow: 0 1px 4px rgba(0, 0, 0, .04) }
.kpy-ev-filterbar__search { flex: 1 1 180px; min-width: 140px; padding: 8px 12px; border: 1px solid #d0d8d0; border-radius: 4px; font-family: var(--kpy-font-2); font-size: .88rem; color: #444; outline: none; transition: border-color .2s }
.kpy-ev-filterbar__search:focus { border-color: var(--kpy-primary) }
.kpy-ev-filterbar__search::placeholder { color: #aaa }
.kpy-ev-filterbar__date-wrap { display: flex; align-items: center; border: 1px solid #d0d8d0; border-radius: 4px; padding: 0 10px; gap: 6px; background: #fff; flex-shrink: 0 }
.kpy-ev-filterbar__date-wrap i { color: rgba(255, 255, 255, 0.8); font-size: .9rem; flex-shrink: 0 }
.kpy-ev-filterbar__date { border: none; padding: 8px 4px; font-family: var(--kpy-font-2); font-size: .88rem; color: #444; background: transparent; outline: none; min-width: 130px }
.kpy-ev-filterbar__select-wrap { position: relative; display: flex; align-items: center }
.kpy-ev-filterbar__select { appearance: none; -webkit-appearance: none; padding: 8px 32px 8px 12px; border: 1px solid #d0d8d0; border-radius: 4px; font-family: var(--kpy-font-2); font-size: .88rem; color: #444; background: #fff; cursor: pointer; outline: none; transition: border-color .2s; min-width: 130px }
.kpy-ev-filterbar__select:focus { border-color: var(--kpy-primary) }
.kpy-ev-filterbar__chevron { position: absolute; right: 10px; pointer-events: none; font-size: .7rem; color: #666 }
.kpy-ev-rows { display: flex; flex-direction: column; border: 1px solid #e0e8e0; border-radius: 4px; overflow: hidden }
.kpy-ev-row { display: grid; grid-template-columns: 72px 1fr auto; align-items: center; gap: 20px; padding: 16px 20px; background: #fff; border-bottom: 1px solid #e8eee8; transition: background .12s ease }
.kpy-ev-row:last-child { border-bottom: none }
.kpy-ev-row:nth-child(even) { background: #f9fbf9 }
.kpy-ev-row:hover { background: #f0f8f0 }
.kpy-ev-row__badge { display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--kpy-blue); color: #fff; border-radius: 4px; width: 64px; min-height: 64px; padding: 6px 4px; flex-shrink: 0; text-align: center; line-height: 1.1 }
.kpy-ev-row__weekday { font-family: var(--kpy-font-2); font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; display: block; margin-bottom: 2px }
.kpy-ev-row__day { font-family: var(--kpy-font-2); font-size: 1.5rem; font-weight: 800; display: block; line-height: 1 }
.kpy-ev-row__month { font-family: var(--kpy-font-2); font-size: .65rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; display: block; margin-top: 2px }
.kpy-ev-row__body { display: flex; flex-direction: column; gap: 5px; min-width: 0 }
.kpy-ev-row__title { font-family: var(--kpy-font-2); font-size: .92rem; font-weight: 600; margin: 0; display: flex; align-items: flex-start; gap: 7px; line-height: 1.4 }
.kpy-ev-row__title i { color: var(--kpy-primary); font-size: .85rem; flex-shrink: 0; margin-top: 2px }
.kpy-ev-row__title a { color: var(--kpy-primary); text-decoration: none; font-weight: 600 }
.kpy-ev-row__title a:hover { text-decoration: underline }
.kpy-ev-row__meta { display: flex; align-items: center; gap: 6px; font-family: var(--kpy-font-2); font-size: .80rem; color: #777 }
.kpy-ev-row__meta i { color: rgba(255, 255, 255, 0.8); font-size: .8rem; flex-shrink: 0 }
.kpy-ev-row__cta { font-family: var(--kpy-font-2); font-size: .75rem; font-weight: 700; color: #555; text-decoration: none; text-transform: uppercase; letter-spacing: .08em; white-space: nowrap; padding: 6px 12px; border: 1px solid #d0d8d0; border-radius: 3px; transition: background .15s, color .15s, border-color .15s; flex-shrink: 0 }
.kpy-ev-row__cta:hover { background: var(--kpy-blue); color: #fff; border-color: var(--kpy-blue) }
.kpy-ev-pagination { display: flex; align-items: center; gap: 4px; margin-top: 24px; flex-wrap: wrap }
.kpy-ev-page-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 32px; padding: 0 6px; border: 1px solid #d0d8d0; border-radius: 3px; background: #fff; color: #444; font-family: var(--kpy-font-2); font-size: .85rem; font-weight: 600; text-decoration: none; transition: background .15s, color .15s, border-color .15s }
.kpy-ev-page-btn:hover { background: #f0f8f0; border-color: var(--kpy-blue); color: var(--kpy-blue) }
.kpy-ev-page-btn--active { background: var(--kpy-blue); border-color: var(--kpy-blue); color: #fff !important }
.kpy-ev-empty { text-align: center; color: rgba(255, 255, 255, 0.8); padding: 48px 0; font-size: .95rem; font-family: var(--kpy-font-2) }
@media (max-width: 768px) { .kpy-ev-page-wrap { padding: 24px 16px 44px } .kpy-ev-row { grid-template-columns: 60px 1fr; grid-template-rows: auto auto } .kpy-ev-row__cta { grid-column: 2; grid-row: 2; align-self: start; font-size: .7rem } .kpy-ev-row__badge { width: 56px; min-height: 56px } .kpy-ev-row__day { font-size: 1.25rem } }
@media (max-width: 480px) { .kpy-ev-filterbar { flex-direction: column; align-items: stretch } .kpy-ev-filterbar__search, .kpy-ev-filterbar__date-wrap, .kpy-ev-filterbar__select-wrap { width: 100% } .kpy-ev-filterbar__select { width: 100% } }