/* FLDN Community Calendar — scrolling event cards ([fldn_events]) and single event pages */

.fldn-evs{position:relative;width:100%;padding-right:36px;box-sizing:border-box;font-family:Nunito,sans-serif;}
@media (max-width:767px){.fldn-evs{padding-right:0;}}

.fldn-evs__track{display:flex;gap:20px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-left:4px;padding:8px 4px 26px;margin:0;list-style:none;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:rgba(14,51,80,.28) transparent;cursor:grab;}
.fldn-evs__track:focus-visible{outline:2px solid #316F98;outline-offset:2px;border-radius:14px;}
.fldn-evs__track::-webkit-scrollbar{height:8px;}
.fldn-evs__track::-webkit-scrollbar-thumb{background:rgba(14,51,80,.28);border-radius:99px;}
.fldn-evs__track::-webkit-scrollbar-track{background:rgba(14,51,80,.06);border-radius:99px;margin:0 4px;}
.fldn-evs.is-dragging .fldn-evs__track{scroll-snap-type:none;cursor:grabbing;user-select:none;}

.fldn-evs__item{flex:0 0 260px;scroll-snap-align:start;margin:0;padding:0;list-style:none;}
@media (max-width:767px){.fldn-evs__item{flex-basis:78%;}}

/* Multiple rows ([fldn_events rows="2"]): one scroller, cards fill each column top to bottom so dates stay in order left to right */
.fldn-evs--multi .fldn-evs__track{display:grid;grid-auto-flow:column;grid-template-rows:repeat(var(--fldn-rows,2),auto);grid-auto-columns:260px;gap:20px;}
.fldn-evs--multi .fldn-evs__item{min-width:0;}
.fldn-evs--multi .fldn-evs__nav{top:calc(50% - 9px);}

/* Fixed column count ([fldn_events cols="3"]): card width = (visible width - gaps) / cols */
.fldn-evs--cols{--fldn-c:var(--fldn-cols);}
@media (max-width:1024px){.fldn-evs--cols{--fldn-c:var(--fldn-cols-tab);}}
.fldn-evs--cols .fldn-evs__item{flex-basis:calc((100% - (var(--fldn-c) - 1) * 20px) / var(--fldn-c));}
.fldn-evs--multi.fldn-evs--cols .fldn-evs__track{grid-auto-columns:calc((100% - (var(--fldn-c) - 1) * 20px) / var(--fldn-c));}

/* Peek ([fldn_events cols="3" peek="0.3"]): the row runs to the right edge of the page (the script pulls it out to the
   window edge) and cards are sized so the next column shows a slice, a hint that there's more to scroll */
.fldn-evs--peek{padding-right:0;max-width:none;}
.fldn-evs--peek .fldn-evs__item{flex-basis:calc((100% - var(--fldn-c) * 20px) / (var(--fldn-c) + var(--fldn-peek)));}
.fldn-evs--multi.fldn-evs--peek .fldn-evs__track{grid-auto-columns:calc((100% - var(--fldn-c) * 20px) / (var(--fldn-c) + var(--fldn-peek)));}
.fldn-evs--peek .fldn-evs__nav--next{right:16px;}

@media (max-width:767px){
  .fldn-evs--cols .fldn-evs__item,.fldn-evs--peek .fldn-evs__item{flex-basis:78%;}
  .fldn-evs--multi .fldn-evs__track,.fldn-evs--multi.fldn-evs--cols .fldn-evs__track,.fldn-evs--multi.fldn-evs--peek .fldn-evs__track{grid-auto-columns:78%;}
}

.fldn-evs__card{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid rgba(14,51,80,.10);border-radius:14px;overflow:hidden;text-decoration:none !important;color:inherit;box-shadow:0 1px 2px rgba(14,51,80,.12),0 6px 14px rgba(14,51,80,.12);transition:transform .2s ease,box-shadow .2s ease;}
.fldn-evs__card:hover,.fldn-evs__card:focus-visible{transform:translateY(-4px);box-shadow:0 2px 4px rgba(14,51,80,.14),0 12px 24px rgba(14,51,80,.18);}

.fldn-evs__media{position:relative;aspect-ratio:3/2;background:#E9EEF3;overflow:hidden;}
.fldn-evs__media img{width:100% !important;height:100% !important;max-width:none;object-fit:cover;display:block;-webkit-user-drag:none;user-select:none;border-radius:0;}
.fldn-evs__ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(120% 90% at 20% 10%,rgba(135,195,235,.45),transparent 60%),linear-gradient(135deg,#316F98,#0E3350);color:#fff;}
.fldn-evs__ph b{font:800 15px/1 Nunito,sans-serif;letter-spacing:.22em;text-transform:uppercase;opacity:.85;}
.fldn-evs__ph i{font:900 58px/1 Orbitron,Nunito,sans-serif;font-style:normal;margin-top:6px;}

.fldn-evs__date{position:absolute;top:10px;left:10px;width:52px;padding:6px 0 7px;border-radius:10px;background:#316F98;color:#fff;text-align:center;line-height:1;box-shadow:0 2px 8px rgba(0,0,0,.25);}
.fldn-evs__date span{display:block;font:800 11px/1 Nunito,sans-serif;letter-spacing:.08em;text-transform:uppercase;}
.fldn-evs__date strong{display:block;font:900 22px/1.1 Nunito,sans-serif;margin:2px 0 1px;}
.fldn-evs__date em{display:block;font:600 11px/1 Nunito,sans-serif;font-style:normal;opacity:.9;}
.fldn-evs__media.is-ph .fldn-evs__date{display:none;}

.fldn-evs__body{display:flex;flex-direction:column;gap:8px;padding:14px 16px 16px;flex:1;}
.fldn-evs__title{margin:0 !important;padding:0;font:900 16px/1.3 Nunito,sans-serif !important;color:#0E3350 !important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.fldn-evs__time,.fldn-evs__venue{display:flex;gap:8px;align-items:flex-start;margin:0 !important;font:400 14px/1.35 Nunito,sans-serif;color:#555;}
.fldn-evs__venue b{display:block;font-weight:700;color:#333;}
.fldn-evs__venue small{display:block;font-size:13px;color:#777;margin-top:1px;}

.fldn-evs__ic{flex:none;display:inline-block;width:15px;height:15px;margin-top:2px;background:#316F98;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat;}
.fldn-evs__ic--clock{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2.2'/%3E%3Cpath d='M12 7v5l3 2' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");}
.fldn-evs__ic--pin{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22s7-6.2 7-12a7 7 0 1 0-14 0c0 5.8 7 12 7 12z' fill='none' stroke='black' stroke-width='2.2'/%3E%3Ccircle cx='12' cy='10' r='2.6'/%3E%3C/svg%3E");}
.fldn-evs__ic--cal{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='2.5' fill='none' stroke='black' stroke-width='2.2'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4' stroke='black' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");}

.fldn-evs__nav,.fldn-evs__nav:hover,.fldn-evs__nav:focus{position:absolute;top:95px;z-index:3;width:44px !important;height:44px !important;min-height:0;border-radius:50% !important;border:1px solid rgba(14,51,80,.12) !important;background:#fff !important;color:#0E3350 !important;padding:0 !important;margin:0;cursor:pointer;box-shadow:0 2px 4px rgba(14,51,80,.14),0 8px 18px rgba(14,51,80,.18);transform:translateY(-50%);transition:opacity .2s ease,transform .2s ease;}
.fldn-evs__nav::before{content:"";position:absolute;inset:0;margin:auto;width:18px;height:18px;background:#0E3350;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 5l7 7-7 7' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 5l7 7-7 7' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;}
.fldn-evs__nav:hover{transform:translateY(-50%) scale(1.06);}
.fldn-evs__nav:focus-visible{outline:2px solid #316F98;outline-offset:2px;}
.fldn-evs__nav--prev{left:-14px;}
.fldn-evs__nav--prev::before{transform:scaleX(-1);}
.fldn-evs__nav--next{right:22px;}
.fldn-evs__nav[disabled]{opacity:0;pointer-events:none;}
@media (hover:none),(max-width:767px){.fldn-evs__nav{display:none;}}

.fldn-evs__empty{margin:0;padding:22px 24px;border-radius:14px;background:#F3F7FA;border:1px dashed rgba(14,51,80,.2);font:600 15px/1.4 Nunito,sans-serif;color:#0E3350;}

/* ---------- Single event page ---------- */
.fldn-ev-single{font-family:Nunito,sans-serif;margin:0 0 24px;}
.fldn-ev-single__back{display:inline-block;margin:0 0 16px;font:800 13px/1 Nunito,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#316F98 !important;text-decoration:none !important;}
.fldn-ev-single__back:hover{color:#0E3350 !important;}
.fldn-ev-single__img{margin:0 0 18px;}
.fldn-ev-single__img img{display:block;max-width:100%;height:auto;border-radius:14px;box-shadow:0 1px 2px rgba(14,51,80,.12),0 10px 24px rgba(14,51,80,.14);}
.fldn-ev-single__meta{list-style:none;margin:0;padding:16px 18px;display:flex;flex-direction:column;gap:10px;background:#F3F7FA;border-radius:14px;border:1px solid rgba(14,51,80,.08);}
.fldn-ev-single__meta li{display:flex;gap:10px;align-items:flex-start;margin:0;font:400 16px/1.4 Nunito,sans-serif;color:#444;}
.fldn-ev-single__meta .fldn-evs__ic{width:18px;height:18px;margin-top:2px;}
.fldn-ev-single__meta b{display:block;font-weight:800;color:#0E3350;}
.fldn-ev-single__meta small{display:block;font-size:14px;color:#666;}
.fldn-ev-single__past{color:#b32d2e;font-weight:700;}
.fldn-ev-single__map{display:inline-block;margin-top:4px;font-weight:800;font-size:14px;color:#316F98 !important;}
.fldn-ev-single__desc{font-family:Nunito,sans-serif;}

/* ---------- Event details pop-up (modal) ---------- */
html.fldn-evm-open{overflow:hidden;}
.fldn-evm{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:24px;font-family:Nunito,sans-serif;}
.fldn-evm[hidden]{display:none;}
.fldn-evm__backdrop{position:absolute;inset:0;background:rgba(10,20,35,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity .18s ease;}
.fldn-evm__box{position:relative;width:100%;max-width:640px;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;background:#fff;border-radius:18px;overflow:hidden;outline:none;
  box-shadow:0 2px 6px rgba(14,51,80,.2),0 24px 60px rgba(14,51,80,.35);opacity:0;transform:translateY(16px) scale(.98);transition:opacity .18s ease,transform .18s ease;}
.fldn-evm.is-open .fldn-evm__backdrop{opacity:1;}
.fldn-evm.is-open .fldn-evm__box{opacity:1;transform:none;}
.fldn-evm__scroll{overflow-y:auto;overscroll-behavior:contain;}
.fldn-evm__close,.fldn-evm__close:hover,.fldn-evm__close:focus{position:absolute;top:12px;right:12px;z-index:2;width:40px !important;height:40px !important;min-height:0;padding:0 !important;margin:0;border-radius:50% !important;border:0 !important;background:rgba(255,255,255,.92) !important;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.25);}
.fldn-evm__close::before,.fldn-evm__close::after{content:"";position:absolute;left:50%;top:50%;width:18px;height:2.5px;border-radius:2px;background:#0E3350;}
.fldn-evm__close::before{transform:translate(-50%,-50%) rotate(45deg);}
.fldn-evm__close::after{transform:translate(-50%,-50%) rotate(-45deg);}
.fldn-evm__close:focus-visible{outline:2px solid #316F98;outline-offset:2px;}
.fldn-evm__img{margin:0;background:#E9EEF3;display:flex;justify-content:center;}
.fldn-evm__img img{display:block;width:auto;max-width:100%;max-height:46vh;height:auto;object-fit:contain;border-radius:0;}
.fldn-evm__ph{height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;background:radial-gradient(120% 90% at 20% 10%,rgba(135,195,235,.45),transparent 60%),linear-gradient(135deg,#316F98,#0E3350);}
.fldn-evm__ph b{font:800 15px/1 Nunito,sans-serif;letter-spacing:.22em;text-transform:uppercase;opacity:.85;}
.fldn-evm__ph i{font:900 56px/1 Orbitron,Nunito,sans-serif;font-style:normal;margin-top:6px;}
.fldn-evm__body{padding:22px 26px 26px;}
.fldn-evm__title{margin:0 0 14px !important;padding:0 36px 0 0;font:900 26px/1.2 Nunito,sans-serif !important;color:#0E3350 !important;}
.fldn-evm__ph + .fldn-evm__body .fldn-evm__title{padding-right:0;}
.fldn-evm__meta{list-style:none;margin:0 0 16px !important;padding:14px 16px !important;display:flex;flex-direction:column;gap:10px;background:#F3F7FA;border-radius:12px;border:1px solid rgba(14,51,80,.08);}
.fldn-evm__meta li{display:flex;gap:10px;align-items:flex-start;margin:0;padding:0;font:400 15px/1.4 Nunito,sans-serif;color:#444;}
.fldn-evm__meta .fldn-evs__ic{width:17px;height:17px;margin-top:2px;}
.fldn-evm__meta b{display:block;font-weight:800;color:#0E3350;}
.fldn-evm__meta small{display:block;font-size:14px;color:#666;}
.fldn-evm__actions{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px;}
.fldn-evm__btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 18px;border-radius:10px;background:#F6B93B;color:#0E3350 !important;font:900 14px/1 Nunito,sans-serif;letter-spacing:.04em;text-transform:uppercase;text-decoration:none !important;box-shadow:0 2px 0 #C98F17;transition:background .15s ease,transform .15s ease;}
.fldn-evm__btn:hover{background:#EFA92A;transform:translateY(-1px);}
.fldn-evm__btn--ghost{background:#fff;border:1.5px solid rgba(14,51,80,.25);box-shadow:none;}
.fldn-evm__btn--ghost:hover{background:#F3F7FA;}
.fldn-evm__desc{font:400 16px/1.6 Nunito,sans-serif;color:#333;}
.fldn-evm__desc > :first-child{margin-top:0;}
.fldn-evm__desc > :last-child{margin-bottom:0;}
.fldn-evm__desc p{margin:0 0 12px;}
.fldn-evm__desc a{color:#316F98;text-decoration:underline;}
.fldn-evm__desc img{max-width:100%;height:auto;border-radius:10px;}
.fldn-evm__desc.is-loading{min-height:40px;display:flex;align-items:center;justify-content:center;}
.fldn-evm__spin{width:26px;height:26px;border-radius:50%;border:3px solid rgba(49,111,152,.2);border-top-color:#316F98;animation:fldnSpin .8s linear infinite;}
@keyframes fldnSpin{to{transform:rotate(360deg)}}
@media (max-width:767px){
  .fldn-evm{padding:0;align-items:flex-end;}
  .fldn-evm__box{max-width:none;max-height:92vh;max-height:92dvh;border-radius:18px 18px 0 0;transform:translateY(40px);}
  .fldn-evm__body{padding:18px 18px 24px;}
  .fldn-evm__title{font-size:22px !important;}
  .fldn-evm__btn{flex:1 1 auto;}
}
@media (prefers-reduced-motion:reduce){.fldn-evm__box,.fldn-evm__backdrop{transition:none;}}
