/* ============================================================
   FCHDK — EVENTS & CALENDAR
   File: assets/css/pages/events.css
   ============================================================ */


/* ============================================================
   FOUNDATION
   ============================================================ */

.fchdk-page-events {
    background: #f7f9f6;
    color: #183126;
    overflow-x: hidden;
}

.fchdk-page-events main {
    overflow: hidden;
}


/* ============================================================
   HERO
   ============================================================ */

.fchdk-events-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 30px 0 85px;
    background:
        radial-gradient(
            circle at 78% 18%,
            rgba(244, 197, 66, 0.18),
            transparent 27%
        ),
        linear-gradient(
            135deg,
            #063b28 0%,
            #075638 48%,
            #0a7048 100%
        );
    color: #ffffff;
}

.fchdk-events-hero-grid {
    position: absolute;
    inset: 0;
    opacity: 0.075;
    background-image:
        linear-gradient(
            rgba(255,255,255,0.25) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255,255,255,0.25) 1px,
            transparent 1px
        );
    background-size: 48px 48px;
    mask-image: linear-gradient(
        to bottom,
        #000,
        transparent 90%
    );
}

.fchdk-events-hero-glow {
    position: absolute;
    right: -190px;
    top: -250px;
    width: 570px;
    height: 570px;
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 50%;
    box-shadow:
        0 0 0 70px rgba(255,255,255,0.018),
        0 0 0 145px rgba(255,255,255,0.012);
    pointer-events: none;
}

.fchdk-events-hero-layout {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(390px, 0.8fr);
    gap: 50px;
    align-items: center;
}

.fchdk-events-hero-content {
    max-width: 730px;
}

.fchdk-events-breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 54px;
    color: rgba(255,255,255,0.65);
    font-size: 0.78rem;
}

.fchdk-events-breadcrumb a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: rgba(255,255,255,0.9);
    text-decoration: none;
    transition: color 0.2s ease;
}

.fchdk-events-breadcrumb a:hover {
    color: #f4c542;
}

.fchdk-events-breadcrumb i {
    font-size: 0.62rem;
}

.fchdk-events-kicker,
.fchdk-events-section-kicker {
    display: block;
    color: #f4c542;
    font-size: 0.69rem;
    font-weight: 900;
    letter-spacing: 0.14em;
}

.fchdk-events-kicker {
    margin-bottom: 17px;
}

.fchdk-events-hero h1 {
    max-width: 700px;
    margin: 0;
    font-size: clamp(2.5rem, 5.5vw, 5rem);
    line-height: 1.02;
    letter-spacing: -0.05em;
    font-weight: 850;
    text-wrap: balance;
}

.fchdk-events-hero h1 span {
    display: block;
    color: #f4c542;
}

.fchdk-events-hero-content > p {
    max-width: 650px;
    margin: 25px 0 0;
    color: rgba(255,255,255,0.75);
    font-size: 1.02rem;
    line-height: 1.85;
}

.fchdk-events-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 31px;
}

.fchdk-events-primary-btn,
.fchdk-events-secondary-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 47px;
    padding: 11px 18px;
    border-radius: 9px;
    font-size: 0.8rem;
    font-weight: 800;
    text-decoration: none;
    transition:
        transform 0.2s ease,
        background 0.2s ease,
        border-color 0.2s ease;
}

.fchdk-events-primary-btn {
    background: #f4c542;
    color: #173b28;
}

.fchdk-events-primary-btn:hover {
    background: #ffd75c;
    transform: translateY(-2px);
}

.fchdk-events-secondary-btn {
    border: 1px solid rgba(255,255,255,0.28);
    color: #ffffff;
    background: rgba(255,255,255,0.05);
}

.fchdk-events-secondary-btn:hover {
    border-color: rgba(255,255,255,0.58);
    background: rgba(255,255,255,0.1);
    transform: translateY(-2px);
}


/* ============================================================
   HERO CALENDAR VISUAL
   ============================================================ */

.fchdk-events-hero-visual {
    position: relative;
    width: min(100%, 520px);
    min-height: 460px;
    margin-inline: auto;
}

.fchdk-events-orbit {
    position: absolute;
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 50%;
    pointer-events: none;
}

.fchdk-events-orbit.orbit-one {
    width: 380px;
    height: 380px;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%) rotate(25deg);
}

.fchdk-events-orbit.orbit-two {
    width: 290px;
    height: 290px;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%) rotate(-25deg);
    border-style: dashed;
    animation: fchdkEventOrbitRotate 22s linear infinite;
}

.fchdk-events-calendar {
    position: absolute;
    z-index: 3;
    width: 275px;
    min-height: 315px;
    left: 50%;
    top: 50%;
    padding: 23px;
    border: 1px solid rgba(255,255,255,0.22);
    border-radius: 22px;
    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,0.15),
            rgba(255,255,255,0.05)
        );
    box-shadow:
        0 30px 70px rgba(0,0,0,0.2),
        inset 0 1px 0 rgba(255,255,255,0.15);
    backdrop-filter: blur(13px);
    transform: translate(-50%, -50%);
    animation: fchdkEventCalendarFloat 5s ease-in-out infinite;
}

.fchdk-calendar-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 15px;
    border-bottom: 1px solid rgba(255,255,255,0.13);
    color: rgba(255,255,255,0.8);
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.12em;
}

.fchdk-calendar-top i {
    color: #f4c542;
    font-size: 1rem;
}

.fchdk-calendar-month {
    margin: 20px 0 17px;
    color: #ffffff;
    font-size: 1.3rem;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.fchdk-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 7px;
}

.fchdk-calendar-grid span {
    width: 100%;
    aspect-ratio: 1;
    border-radius: 5px;
    background: rgba(255,255,255,0.08);
}

.fchdk-calendar-grid span.active {
    background: #f4c542;
    box-shadow: 0 0 0 4px rgba(244,197,66,0.11);
    animation: fchdkCalendarActive 2.6s ease-in-out infinite;
}

.fchdk-calendar-grid span.active-two {
    background: rgba(123,211,162,0.72);
}

.fchdk-calendar-lines {
    display: flex;
    flex-direction: column;
    gap: 7px;
    margin-top: 20px;
}

.fchdk-calendar-lines span {
    display: block;
    width: 100%;
    height: 5px;
    border-radius: 999px;
    background: rgba(255,255,255,0.08);
}

.fchdk-calendar-lines span:nth-child(2) {
    width: 76%;
}

.fchdk-calendar-lines span:nth-child(3) {
    width: 55%;
}

.fchdk-events-floating-card {
    position: absolute;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 10px 13px;
    border: 1px solid rgba(255,255,255,0.18);
    border-radius: 11px;
    background: rgba(255,255,255,0.1);
    color: rgba(255,255,255,0.9);
    font-size: 0.72rem;
    font-weight: 800;
    box-shadow: 0 14px 30px rgba(0,0,0,0.14);
    backdrop-filter: blur(10px);
}

.fchdk-events-floating-card i {
    color: #f4c542;
}

.fchdk-events-floating-card.card-one {
    top: 20%;
    left: 3%;
    animation: fchdkEventFloatOne 5s ease-in-out infinite;
}

.fchdk-events-floating-card.card-two {
    top: 63%;
    right: 1%;
    animation: fchdkEventFloatTwo 6s ease-in-out infinite;
}

.fchdk-events-floating-card.card-three {
    bottom: 4%;
    left: 12%;
    animation: fchdkEventFloatThree 5.5s ease-in-out infinite;
}


/* ============================================================
   FEATURED EVENT
   ============================================================ */

.fchdk-events-featured {
    position: relative;
    padding: 80px 0 70px;
    background: #ffffff;
}

.fchdk-events-featured-card {
    display: grid;
    grid-template-columns: 0.95fr 1.05fr;
    overflow: hidden;
    border: 1px solid #e0e9e2;
    border-radius: 25px;
    background: #ffffff;
    box-shadow: 0 20px 55px rgba(21,61,39,0.08);
}

.fchdk-events-featured-visual {
    position: relative;
    min-height: 470px;
    overflow: hidden;
    background:
        linear-gradient(
            180deg,
            #dceee6 0%,
            #b8d9c8 44%,
            #719d65 45%,
            #396844 100%
        );
}

.fchdk-featured-sun {
    position: absolute;
    width: 88px;
    height: 88px;
    top: 58px;
    right: 15%;
    border-radius: 50%;
    background: #f4c542;
    box-shadow:
        0 0 0 18px rgba(244,197,66,0.13),
        0 0 55px rgba(244,197,66,0.38);
    animation: fchdkFeaturedSun 5s ease-in-out infinite;
}

.fchdk-featured-hill {
    position: absolute;
    bottom: 43%;
    width: 78%;
    height: 165px;
    border-radius: 50% 50% 0 0;
}

.fchdk-featured-hill.hill-one {
    left: -15%;
    background: #4d855b;
    transform: rotate(4deg);
}

.fchdk-featured-hill.hill-two {
    right: -15%;
    height: 195px;
    background: #3d754e;
    transform: rotate(-5deg);
}

.fchdk-featured-field {
    position: absolute;
    bottom: -18%;
    width: 75%;
    height: 48%;
    border-radius: 50% 50% 0 0;
    background:
        repeating-linear-gradient(
            72deg,
            rgba(22,80,43,0.76) 0,
            rgba(22,80,43,0.76) 7px,
            transparent 7px,
            transparent 26px
        );
}

.fchdk-featured-field.field-one {
    left: -12%;
    transform: rotate(-4deg);
}

.fchdk-featured-field.field-two {
    right: -13%;
    bottom: -14%;
    opacity: 0.7;
    transform: rotate(6deg);
}

.fchdk-featured-plant {
    position: absolute;
    z-index: 3;
    bottom: 22%;
    width: 8px;
    height: 80px;
    border-radius: 999px;
    background: #285c38;
}

.fchdk-featured-plant span {
    position: absolute;
    width: 38px;
    height: 20px;
    border-radius: 100% 0;
    background: #337548;
}

.fchdk-featured-plant span:first-child {
    right: 2px;
    top: 27px;
    transform: rotate(-28deg);
}

.fchdk-featured-plant span:last-child {
    left: 2px;
    top: 48px;
    transform: rotate(25deg) scaleX(-1);
}

.fchdk-featured-plant.plant-one {
    left: 23%;
}

.fchdk-featured-plant.plant-two {
    left: 44%;
    transform: scale(0.75);
}

.fchdk-featured-plant.plant-three {
    right: 19%;
    transform: scale(0.9);
}

.fchdk-featured-drone {
    position: absolute;
    z-index: 5;
    top: 28%;
    left: 50%;
    width: 100px;
    height: 55px;
    animation: fchdkFeaturedDrone 8s ease-in-out infinite;
}

.fchdk-featured-drone .drone-body {
    position: absolute;
    left: 34px;
    top: 18px;
    width: 35px;
    height: 18px;
    border-radius: 8px;
    background: #20382a;
}

.fchdk-featured-drone .drone-arm {
    position: absolute;
    top: 11px;
    width: 39px;
    height: 4px;
    background: #20382a;
}

.fchdk-featured-drone .arm-one {
    left: 0;
    transform: rotate(-17deg);
}

.fchdk-featured-drone .arm-two {
    right: 0;
    transform: rotate(17deg);
}

.fchdk-featured-drone .drone-prop {
    position: absolute;
    width: 24px;
    height: 4px;
    border-radius: 50%;
    background: rgba(32,56,42,0.72);
    animation: fchdkDroneProp 0.25s linear infinite;
}

.fchdk-featured-drone .prop-one {
    left: 0;
    top: 4px;
}

.fchdk-featured-drone .prop-two {
    right: 0;
    top: 4px;
}

.fchdk-featured-label {
    position: absolute;
    z-index: 6;
    left: 24px;
    bottom: 22px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 13px;
    border-radius: 9px;
    background: rgba(8,54,35,0.76);
    color: #ffffff;
    font-size: 0.7rem;
    font-weight: 800;
    backdrop-filter: blur(7px);
}

.fchdk-featured-label i {
    color: #f4c542;
}

.fchdk-events-featured-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(35px, 5vw, 70px);
}

.fchdk-events-featured-category {
    display: inline-flex;
    align-self: flex-start;
    margin-bottom: 15px;
    padding: 7px 11px;
    border-radius: 999px;
    background: #edf6ef;
    color: #0b7047;
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.fchdk-events-featured-content h2 {
    max-width: 620px;
    margin: 0;
    color: #173f2c;
    font-size: clamp(1.9rem, 3.7vw, 3rem);
    line-height: 1.1;
    letter-spacing: -0.04em;
}

.fchdk-events-featured-content > p {
    max-width: 620px;
    margin: 20px 0 0;
    color: #627168;
    font-size: 0.94rem;
    line-height: 1.8;
}

.fchdk-featured-event-meta {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin-top: 30px;
}

.fchdk-featured-event-meta > div {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.fchdk-featured-event-meta .meta-icon {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    background: #edf5ef;
    color: #0b7047;
}

.fchdk-featured-event-meta small {
    display: block;
    margin-bottom: 3px;
    color: #87938b;
    font-size: 0.64rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.fchdk-featured-event-meta strong {
    display: block;
    color: #35523f;
    font-size: 0.74rem;
    line-height: 1.45;
}

.fchdk-events-featured-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    gap: 9px;
    margin-top: 32px;
    padding: 12px 18px;
    border-radius: 9px;
    background: #0b7047;
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 800;
    text-decoration: none;
    transition:
        background 0.2s ease,
        transform 0.2s ease;
}

.fchdk-events-featured-btn:hover {
    background: #075537;
    transform: translateY(-2px);
}


/* ============================================================
   EVENTS DIRECTORY
   ============================================================ */

.fchdk-events-directory {
    padding: 80px 0 95px;
    background: #f7f9f6;
}

.fchdk-events-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 31px;
}

.fchdk-events-section-heading.centered {
    justify-content: center;
    text-align: center;
}

.fchdk-events-section-heading h2 {
    margin: 8px 0 0;
    color: #173f2c;
    font-size: clamp(1.8rem, 3.4vw, 2.7rem);
    line-height: 1.1;
    letter-spacing: -0.04em;
}

.fchdk-events-section-heading p {
    max-width: 650px;
    margin: 11px 0 0;
    color: #758279;
    font-size: 0.87rem;
    line-height: 1.7;
}

.fchdk-events-count {
    display: flex;
    align-items: baseline;
    gap: 6px;
    color: #7d897f;
    font-size: 0.74rem;
}

.fchdk-events-count strong {
    color: #0b7047;
    font-size: 1.45rem;
}

.fchdk-events-toolbar {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 27px;
}

.fchdk-events-search {
    position: relative;
    flex: 1 1 270px;
}

.fchdk-events-search i {
    position: absolute;
    left: 15px;
    top: 50%;
    color: #87948a;
    font-size: 0.78rem;
    transform: translateY(-50%);
    pointer-events: none;
}

.fchdk-events-search input {
    width: 100%;
    height: 46px;
    padding: 0 15px 0 40px;
    border: 1px solid #dce5de;
    border-radius: 9px;
    outline: none;
    background: #ffffff;
    color: #254635;
    font: inherit;
    font-size: 0.8rem;
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.fchdk-events-search input:focus {
    border-color: #5ca47d;
    box-shadow: 0 0 0 3px rgba(11,112,71,0.08);
}

.fchdk-events-filter-wrap {
    display: flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
}

.fchdk-events-filters {
    display: flex;
    align-items: center;
    gap: 6px;
    overflow-x: auto;
    scrollbar-width: none;
}

.fchdk-events-filters::-webkit-scrollbar {
    display: none;
}

.fchdk-event-filter {
    flex: 0 0 auto;
    min-height: 42px;
    padding: 8px 13px;
    border: 1px solid #dce5de;
    border-radius: 8px;
    background: #ffffff;
    color: #52645a;
    cursor: pointer;
    font: inherit;
    font-size: 0.72rem;
    font-weight: 800;
    white-space: nowrap;
    transition:
        background 0.2s ease,
        color 0.2s ease,
        border-color 0.2s ease;
}

.fchdk-event-filter:hover {
    border-color: #a9c9b5;
    color: #0b7047;
}

.fchdk-event-filter.active {
    border-color: #0b7047;
    background: #0b7047;
    color: #ffffff;
}

.fchdk-event-filter-arrow {
    width: 31px;
    height: 36px;
    flex: 0 0 31px;
    border: 1px solid #dce5de;
    border-radius: 7px;
    background: #ffffff;
    color: #53675a;
    cursor: pointer;
}

.fchdk-event-filter-arrow:hover {
    border-color: #a9c9b5;
    color: #0b7047;
}


/* ============================================================
   EVENT CARDS
   ============================================================ */

.fchdk-events-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.fchdk-event-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #dfe8e1;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 7px 25px rgba(20,58,37,0.035);
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        border-color 0.25s ease;
}

.fchdk-event-card:hover {
    transform: translateY(-5px);
    border-color: #c6d9cb;
    box-shadow: 0 18px 40px rgba(20,58,37,0.09);
}

.fchdk-event-card[hidden] {
    display: none;
}

.fchdk-event-card-visual {
    position: relative;
    height: 185px;
    overflow: hidden;
    background:
        linear-gradient(
            135deg,
            #dcece3,
            #72a481
        );
}

.fchdk-event-card:nth-child(2n) .fchdk-event-card-visual {
    background:
        linear-gradient(
            135deg,
            #eee7cf,
            #c9ad55
        );
}

.fchdk-event-card:nth-child(3n) .fchdk-event-card-visual {
    background:
        linear-gradient(
            135deg,
            #d9e9df,
            #609374
        );
}

.fchdk-event-card-pattern {
    position: absolute;
    inset: 0;
    opacity: 0.25;
    background-image:
        radial-gradient(
            circle,
            rgba(255,255,255,0.8) 1px,
            transparent 1px
        );
    background-size: 18px 18px;
}

.fchdk-event-date {
    position: absolute;
    z-index: 2;
    top: 18px;
    left: 18px;
    width: 62px;
    height: 67px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
    background: rgba(255,255,255,0.93);
    box-shadow: 0 9px 20px rgba(22,62,40,0.12);
}

.fchdk-event-date strong {
    color: #183f2c;
    font-size: 1.35rem;
    line-height: 1;
}

.fchdk-event-date span {
    margin-top: 5px;
    color: #0b7047;
    font-size: 0.6rem;
    font-weight: 900;
    letter-spacing: 0.1em;
}

.fchdk-event-card-icon {
    position: absolute;
    right: 24px;
    bottom: 23px;
    width: 55px;
    height: 55px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,0.32);
    border-radius: 15px;
    background: rgba(10,59,38,0.54);
    color: #ffffff;
    font-size: 1.15rem;
    backdrop-filter: blur(7px);
}

.fchdk-event-card-content {
    padding: 21px 21px 23px;
}

.fchdk-event-card-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.fchdk-event-category {
    display: inline-flex;
    padding: 5px 8px;
    border-radius: 5px;
    background: #edf5ef;
    color: #0b7047;
    font-size: 0.61rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.fchdk-event-category-research {
    background: #eef3f0;
}

.fchdk-event-category-agriculture {
    background: #f3f1df;
    color: #806914;
}

.fchdk-event-category-community {
    background: #eef3e9;
}

.fchdk-event-category-students {
    background: #edf2f5;
    color: #496879;
}

.fchdk-event-category-institutional {
    background: #f0f1ed;
    color: #526047;
}

.fchdk-event-status {
    color: #789080;
    font-size: 0.62rem;
    font-weight: 700;
}

.fchdk-event-card h3 {
    margin: 14px 0 9px;
    font-size: 1.08rem;
    line-height: 1.35;
}

.fchdk-event-card h3 a {
    color: #1b3e2c;
    text-decoration: none;
}

.fchdk-event-card h3 a:hover {
    color: #0b7047;
}

.fchdk-event-card-content > p {
    min-height: 67px;
    margin: 0;
    color: #728077;
    font-size: 0.78rem;
    line-height: 1.7;
}

.fchdk-event-card-details {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 19px;
    padding-top: 16px;
    border-top: 1px solid #e9eee9;
}

.fchdk-event-card-details > div {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    color: #718078;
    font-size: 0.69rem;
    line-height: 1.45;
}

.fchdk-event-card-details i {
    width: 14px;
    flex: 0 0 14px;
    margin-top: 2px;
    color: #0b7047;
    text-align: center;
}

.fchdk-event-card-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 19px;
    color: #0b7047;
    font-size: 0.73rem;
    font-weight: 900;
    text-decoration: none;
}

.fchdk-event-card-link:hover {
    color: #075537;
}

.fchdk-event-card-link i {
    font-size: 0.65rem;
    transition: transform 0.2s ease;
}

.fchdk-event-card-link:hover i {
    transform: translateX(3px);
}


/* ============================================================
   EMPTY STATE
   ============================================================ */

.fchdk-events-empty {
    padding: 70px 20px;
    border: 1px dashed #cbd9cf;
    border-radius: 18px;
    background: #ffffff;
    text-align: center;
}

.fchdk-events-empty[hidden] {
    display: none;
}

.fchdk-events-empty-icon {
    width: 58px;
    height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 17px;
    border-radius: 15px;
    background: #edf5ef;
    color: #0b7047;
    font-size: 1.25rem;
}

.fchdk-events-empty h3 {
    margin: 0;
    color: #244734;
    font-size: 1.1rem;
}

.fchdk-events-empty p {
    margin: 8px 0 19px;
    color: #7a877f;
    font-size: 0.8rem;
}

.fchdk-events-empty button {
    min-height: 40px;
    padding: 8px 14px;
    border: 0;
    border-radius: 8px;
    background: #0b7047;
    color: #ffffff;
    cursor: pointer;
    font: inherit;
    font-size: 0.74rem;
    font-weight: 800;
}


/* ============================================================
   EVENT TYPES
   ============================================================ */

.fchdk-event-types {
    padding: 90px 0;
    background: #ffffff;
}

.fchdk-event-types-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-top: 38px;
}

.fchdk-event-type-card {
    padding: 27px 22px;
    border: 1px solid #e1e9e3;
    border-radius: 17px;
    background: #ffffff;
    text-align: center;
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;
}

.fchdk-event-type-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 34px rgba(21,62,40,0.07);
}

.fchdk-event-type-icon {
    width: 55px;
    height: 55px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 17px;
    border-radius: 15px;
    background: #edf5ef;
    color: #0b7047;
    font-size: 1.15rem;
}

.fchdk-event-type-icon.research {
    background: #eef3f0;
}

.fchdk-event-type-icon.agriculture {
    background: #f5f0d8;
    color: #826c15;
}

.fchdk-event-type-icon.community {
    background: #edf2e9;
}

.fchdk-event-type-card h3 {
    margin: 0;
    color: #244734;
    font-size: 0.94rem;
}

.fchdk-event-type-card p {
    margin: 9px 0 0;
    color: #758178;
    font-size: 0.74rem;
    line-height: 1.7;
}


/* ============================================================
   CALENDAR INFORMATION
   ============================================================ */

.fchdk-events-calendar-section {
    padding: 75px 0 90px;
    background: #f7f9f6;
}

.fchdk-events-calendar-panel {
    display: grid;
    grid-template-columns: 0.7fr 1.3fr;
    align-items: center;
    gap: 60px;
    padding: 52px;
    overflow: hidden;
    border-radius: 24px;
    background:
        linear-gradient(
            135deg,
            #063d29,
            #087049
        );
    color: #ffffff;
    box-shadow: 0 22px 55px rgba(10,65,40,0.13);
}

.fchdk-calendar-panel-visual {
    position: relative;
    min-height: 260px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.fchdk-calendar-panel-ring {
    position: absolute;
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 50%;
}

.fchdk-calendar-panel-ring.ring-one {
    width: 230px;
    height: 230px;
    animation: fchdkPanelRing 15s linear infinite;
}

.fchdk-calendar-panel-ring.ring-two {
    width: 175px;
    height: 175px;
    border-style: dashed;
    animation: fchdkPanelRingReverse 11s linear infinite;
}

.fchdk-calendar-panel-icon {
    position: relative;
    z-index: 2;
    width: 94px;
    height: 94px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,0.18);
    border-radius: 25px;
    background: rgba(255,255,255,0.09);
    color: #f4c542;
    font-size: 2.4rem;
    box-shadow:
        0 20px 45px rgba(0,0,0,0.15),
        inset 0 1px 0 rgba(255,255,255,0.12);
    backdrop-filter: blur(8px);
    animation: fchdkPanelIconPulse 4s ease-in-out infinite;
}

.fchdk-calendar-panel-dot {
    position: absolute;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #f4c542;
    box-shadow: 0 0 0 7px rgba(244,197,66,0.08);
}

.fchdk-calendar-panel-dot.dot-one {
    top: 28%;
    left: 25%;
    animation: fchdkPanelDot 3s ease-in-out infinite;
}

.fchdk-calendar-panel-dot.dot-two {
    top: 68%;
    right: 21%;
    animation: fchdkPanelDot 4s ease-in-out infinite 0.6s;
}

.fchdk-calendar-panel-dot.dot-three {
    top: 17%;
    right: 27%;
    animation: fchdkPanelDot 3.5s ease-in-out infinite 1s;
}

.fchdk-calendar-panel-content {
    position: relative;
    z-index: 2;
}

.fchdk-calendar-panel-content h2 {
    margin: 8px 0 0;
    font-size: clamp(1.8rem, 3.4vw, 2.7rem);
    line-height: 1.1;
    letter-spacing: -0.04em;
}

.fchdk-calendar-panel-content > p {
    max-width: 650px;
    margin: 16px 0 0;
    color: rgba(255,255,255,0.72);
    font-size: 0.87rem;
    line-height: 1.8;
}

.fchdk-calendar-panel-points {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 20px;
    margin-top: 26px;
}

.fchdk-calendar-panel-points span {
    display: flex;
    align-items: center;
    gap: 8px;
    color: rgba(255,255,255,0.85);
    font-size: 0.74rem;
}

.fchdk-calendar-panel-points i {
    width: 19px;
    height: 19px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(244,197,66,0.14);
    color: #f4c542;
    font-size: 0.55rem;
}


/* ============================================================
   CTA
   ============================================================ */

.fchdk-events-cta {
    position: relative;
    overflow: hidden;
    padding: 72px 0;
    background: #ffffff;
}

.fchdk-events-cta-pattern {
    position: absolute;
    inset: 0;
    opacity: 0.55;
    background-image:
        radial-gradient(
            circle at 15% 30%,
            rgba(11,112,71,0.05) 1px,
            transparent 1px
        ),
        radial-gradient(
            circle at 85% 70%,
            rgba(244,197,66,0.07) 1px,
            transparent 1px
        );
    background-size: 36px 36px, 51px 51px;
}

.fchdk-events-cta-inner {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    padding: 47px;
    border: 1px solid #dfe9e1;
    border-radius: 22px;
    background:
        linear-gradient(
            135deg,
            #f4f8f4,
            #ffffff
        );
}

.fchdk-events-cta-inner h2 {
    margin: 8px 0 0;
    color: #173f2c;
    font-size: clamp(1.7rem, 3.1vw, 2.55rem);
    line-height: 1.1;
    letter-spacing: -0.035em;
}

.fchdk-events-cta-inner p {
    max-width: 650px;
    margin: 11px 0 0;
    color: #738077;
    font-size: 0.85rem;
    line-height: 1.75;
}

.fchdk-events-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    flex: 0 0 auto;
}

.fchdk-events-cta-primary,
.fchdk-events-cta-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 10px 16px;
    border-radius: 8px;
    font-size: 0.76rem;
    font-weight: 800;
    text-decoration: none;
    transition:
        transform 0.2s ease,
        background 0.2s ease;
}

.fchdk-events-cta-primary {
    background: #0b7047;
    color: #ffffff;
}

.fchdk-events-cta-primary:hover {
    background: #075537;
    transform: translateY(-2px);
}

.fchdk-events-cta-secondary {
    border: 1px solid #d5e1d8;
    color: #31523f;
    background: #ffffff;
}

.fchdk-events-cta-secondary:hover {
    background: #edf5ef;
    transform: translateY(-2px);
}


/* ============================================================
   ANIMATIONS
   ============================================================ */

@keyframes fchdkEventOrbitRotate {

    from {
        transform: translate(-50%, -50%) rotate(0deg);
    }

    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

@keyframes fchdkEventCalendarFloat {

    0%,
    100% {
        transform: translate(-50%, -50%);
    }

    50% {
        transform: translate(-50%, calc(-50% - 9px));
    }
}

@keyframes fchdkCalendarActive {

    0%,
    100% {
        box-shadow: 0 0 0 4px rgba(244,197,66,0.11);
    }

    50% {
        box-shadow: 0 0 0 7px rgba(244,197,66,0.04);
    }
}

@keyframes fchdkEventFloatOne {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-9px);
    }
}

@keyframes fchdkEventFloatTwo {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(8px);
    }
}

@keyframes fchdkEventFloatThree {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-7px);
    }
}

@keyframes fchdkFeaturedSun {

    0%,
    100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.08);
    }
}

@keyframes fchdkFeaturedDrone {

    0% {
        transform: translate3d(-15px, 8px, 0);
    }

    30% {
        transform: translate3d(25px, -12px, 0);
    }

    65% {
        transform: translate3d(65px, 5px, 0);
    }

    100% {
        transform: translate3d(-15px, 8px, 0);
    }
}

@keyframes fchdkDroneProp {

    from {
        transform: scaleX(1);
    }

    to {
        transform: scaleX(0.45);
    }
}

@keyframes fchdkPanelRing {

    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@keyframes fchdkPanelRingReverse {

    from {
        transform: rotate(360deg);
    }

    to {
        transform: rotate(0deg);
    }
}

@keyframes fchdkPanelIconPulse {

    0%,
    100% {
        transform: translateY(0);
        box-shadow:
            0 20px 45px rgba(0,0,0,0.15),
            inset 0 1px 0 rgba(255,255,255,0.12);
    }

    50% {
        transform: translateY(-6px);
        box-shadow:
            0 28px 55px rgba(0,0,0,0.18),
            inset 0 1px 0 rgba(255,255,255,0.12);
    }
}

@keyframes fchdkPanelDot {

    0%,
    100% {
        transform: scale(1);
        opacity: 0.7;
    }

    50% {
        transform: scale(1.5);
        opacity: 1;
    }
}


/* ============================================================
   LARGE TABLET
   ============================================================ */

@media (max-width: 1199px) {

    .fchdk-events-hero-layout {
        grid-template-columns: minmax(0, 1fr) minmax(350px, 0.75fr);
        gap: 25px;
    }

    .fchdk-events-hero-visual {
        transform: scale(0.9);
    }

    .fchdk-events-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fchdk-event-types-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


/* ============================================================
   TABLET
   ============================================================ */

@media (max-width: 991px) {

    .fchdk-events-hero {
        padding-bottom: 65px;
    }

    .fchdk-events-hero-layout {
        grid-template-columns: 1fr;
    }

    .fchdk-events-hero-content {
        max-width: 760px;
    }

    .fchdk-events-hero-visual {
        min-height: 390px;
        margin-top: -5px;
        transform: scale(0.86);
    }

    .fchdk-events-featured-card {
        grid-template-columns: 1fr;
    }

    .fchdk-events-featured-visual {
        min-height: 390px;
    }

    .fchdk-featured-event-meta {
        grid-template-columns: 1fr 1fr;
    }

    .fchdk-featured-event-meta > div:last-child {
        grid-column: 1 / -1;
    }

    .fchdk-events-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .fchdk-events-search {
        flex-basis: auto;
    }

    .fchdk-event-filter-wrap {
        width: 100%;
    }

    .fchdk-events-filters {
        flex: 1;
    }

    .fchdk-events-calendar-panel {
        grid-template-columns: 0.55fr 1.45fr;
        gap: 35px;
        padding: 40px;
    }

    .fchdk-events-cta-inner {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 767px) {

    .fchdk-events-hero {
        padding: 22px 0 45px;
    }

    .fchdk-events-breadcrumb {
        margin-bottom: 35px;
        font-size: 0.72rem;
    }

    .fchdk-events-hero h1 {
        font-size: clamp(2.15rem, 9vw, 3.3rem);
    }

    .fchdk-events-hero-content > p {
        font-size: 0.91rem;
        line-height: 1.75;
    }

    .fchdk-events-hero-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .fchdk-events-primary-btn,
    .fchdk-events-secondary-btn {
        width: 100%;
    }

    .fchdk-events-hero-visual {
        width: min(100%, 440px);
        min-height: 345px;
        transform: scale(0.82);
        margin-top: -25px;
        margin-bottom: -20px;
    }

    .fchdk-events-orbit.orbit-one {
        width: 310px;
        height: 310px;
    }

    .fchdk-events-orbit.orbit-two {
        width: 235px;
        height: 235px;
    }

    .fchdk-events-calendar {
        width: 240px;
        min-height: 280px;
        padding: 19px;
    }

    .fchdk-events-floating-card {
        font-size: 0.66rem;
    }

    .fchdk-events-floating-card.card-one {
        left: 0;
    }

    .fchdk-events-floating-card.card-two {
        right: 0;
    }

    .fchdk-events-floating-card.card-three {
        left: 6%;
    }

    .fchdk-events-featured {
        padding: 58px 0 55px;
    }

    .fchdk-events-featured-visual {
        min-height: 320px;
    }

    .fchdk-events-featured-content {
        padding: 32px 24px 37px;
    }

    .fchdk-events-featured-content h2 {
        font-size: 1.85rem;
    }

    .fchdk-featured-event-meta {
        grid-template-columns: 1fr;
    }

    .fchdk-featured-event-meta > div:last-child {
        grid-column: auto;
    }

    .fchdk-events-directory {
        padding: 60px 0 70px;
    }

    .fchdk-events-section-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
    }

    .fchdk-events-count {
        align-self: flex-start;
    }

    .fchdk-events-grid {
        grid-template-columns: 1fr;
    }

    .fchdk-event-card-content > p {
        min-height: auto;
    }

    .fchdk-event-types {
        padding: 65px 0;
    }

    .fchdk-event-types-grid {
        grid-template-columns: 1fr 1fr;
    }

    .fchdk-events-calendar-section {
        padding: 60px 0 70px;
    }

    .fchdk-events-calendar-panel {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 32px 23px;
    }

    .fchdk-calendar-panel-visual {
        min-height: 210px;
    }

    .fchdk-calendar-panel-points {
        grid-template-columns: 1fr;
    }

    .fchdk-events-cta {
        padding: 58px 0;
    }

    .fchdk-events-cta-inner {
        padding: 32px 24px;
    }

    .fchdk-events-cta-actions {
        width: 100%;
        flex-direction: column;
    }

    .fchdk-events-cta-primary,
    .fchdk-events-cta-secondary {
        width: 100%;
    }
}


/* ============================================================
   SMALL MOBILE
   ============================================================ */

@media (max-width: 480px) {

    .fchdk-events-hero-visual {
        width: min(100%, 350px);
        min-height: 295px;
        transform: scale(0.76);
        margin-top: -35px;
        margin-bottom: -40px;
    }

    .fchdk-events-calendar {
        width: 225px;
        min-height: 260px;
    }

    .fchdk-events-orbit.orbit-one {
        width: 285px;
        height: 285px;
    }

    .fchdk-events-orbit.orbit-two {
        width: 215px;
        height: 215px;
    }

    .fchdk-events-floating-card.card-one {
        top: 17%;
    }

    .fchdk-events-floating-card.card-two {
        top: 63%;
    }

    .fchdk-events-floating-card.card-three {
        bottom: 0;
    }

    .fchdk-events-featured-visual {
        min-height: 270px;
    }

    .fchdk-featured-sun {
        width: 65px;
        height: 65px;
        top: 40px;
    }

    .fchdk-featured-label {
        left: 14px;
        bottom: 14px;
        font-size: 0.62rem;
    }

    .fchdk-event-types-grid {
        grid-template-columns: 1fr;
    }

    .fchdk-event-type-card {
        padding: 23px 20px;
    }

    .fchdk-events-calendar-panel {
        padding: 28px 19px;
        border-radius: 18px;
    }

    .fchdk-calendar-panel-visual {
        min-height: 180px;
    }

    .fchdk-calendar-panel-ring.ring-one {
        width: 175px;
        height: 175px;
    }

    .fchdk-calendar-panel-ring.ring-two {
        width: 135px;
        height: 135px;
    }

    .fchdk-calendar-panel-icon {
        width: 72px;
        height: 72px;
        border-radius: 19px;
        font-size: 1.8rem;
    }

    .fchdk-events-cta-inner {
        padding: 27px 19px;
        border-radius: 17px;
    }
}


/* ============================================================
   REDUCED MOTION
   ============================================================ */

@media (prefers-reduced-motion: reduce) {

    .fchdk-events-orbit.orbit-two,
    .fchdk-events-calendar,
    .fchdk-calendar-grid span.active,
    .fchdk-events-floating-card,
    .fchdk-featured-sun,
    .fchdk-featured-drone,
    .fchdk-featured-drone .drone-prop,
    .fchdk-calendar-panel-ring,
    .fchdk-calendar-panel-icon,
    .fchdk-calendar-panel-dot {
        animation: none !important;
    }

    .fchdk-events-primary-btn,
    .fchdk-events-secondary-btn,
    .fchdk-events-featured-btn,
    .fchdk-event-card,
    .fchdk-event-type-card,
    .fchdk-events-cta-primary,
    .fchdk-events-cta-secondary {
        transition: none !important;
    }
}


/* ============================================================
   PRINT
   ============================================================ */

@media print {

    .fchdk-events-hero {
        padding: 25px 0;
        background: #ffffff;
        color: #000000;
    }

    .fchdk-events-hero-grid,
    .fchdk-events-hero-glow,
    .fchdk-events-hero-visual,
    .fchdk-events-hero-actions,
    .fchdk-events-toolbar,
    .fchdk-events-cta {
        display: none !important;
    }

    .fchdk-events-hero h1,
    .fchdk-events-section-heading h2,
    .fchdk-events-featured-content h2 {
        color: #000000;
    }

    .fchdk-events-featured-card,
    .fchdk-event-card,
    .fchdk-event-type-card,
    .fchdk-events-calendar-panel {
        box-shadow: none;
        break-inside: avoid;
    }

    .fchdk-events-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}