/* =========================================================
   City Events Display v2.2
   Professional ornate signboard edition
   ========================================================= */

.ced-event-shell{font-family:inherit;box-sizing:border-box;z-index:9997}.ced-event-shell *{box-sizing:border-box}
.ced-event-shell.ced-floating{position:fixed;right:22px;left:auto;bottom:22px;width:min(430px,calc(100vw - 44px));z-index:9997}
.ced-event-card{position:relative;isolation:isolate;overflow:visible;color:#fff;padding:38px 28px 92px;border-radius:26px 26px 18px 18px;background:linear-gradient(180deg,#2f163f 0%,#1b0d27 58%,#110917 100%);border:3px solid #d97812;box-shadow:0 24px 55px rgba(0,0,0,.48),0 0 0 2px #5a2810 inset,0 0 0 5px rgba(255,180,54,.18) inset}
.ced-event-card:before{content:"";position:absolute;z-index:0;left:7%;right:7%;top:-22px;height:66px;border:3px solid #d97812;border-bottom:0;border-radius:50% 50% 0 0/90% 90% 0 0;background:linear-gradient(180deg,#3c1d4e 0%,#2d163e 100%);box-shadow:0 -2px 0 #5a2810 inset,0 0 0 3px rgba(255,181,58,.12) inset}
.ced-event-card:after{content:"";position:absolute;z-index:0;inset:10px;border:1px solid rgba(255,183,71,.38);border-radius:20px 20px 12px 12px;pointer-events:none}
.ced-event-content{position:relative;z-index:5;text-align:center}.ced-eyebrow{font-family:Georgia,serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;margin-bottom:5px;color:#f5c56a}.ced-title{font-family:Georgia,'Times New Roman',serif;font-size:clamp(31px,5.5vw,48px);font-weight:800;line-height:.98;margin:0 28px 12px;color:#ff9c2a;text-shadow:0 2px 0 #672a05,0 0 12px rgba(255,145,29,.24)}.ced-when{margin:0 auto 13px;font-family:Georgia,serif;font-size:15px;line-height:1.38;color:#fff1c9}.ced-summary{margin:0 auto 17px;font-size:14px;line-height:1.48;max-width:31em;color:#fff}.ced-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.ced-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 22px;border-radius:999px;border:2px solid transparent;font-weight:800;font-size:15px;line-height:1;text-decoration:none!important;cursor:pointer;transition:transform .18s ease,filter .18s ease,box-shadow .18s ease}.ced-btn-primary{background:linear-gradient(180deg,#ffc44d 0%,#f58b15 100%);border-color:#ffd37a;color:#241305!important;box-shadow:0 7px 18px rgba(242,126,15,.3),inset 0 1px rgba(255,255,255,.55)}.ced-btn-secondary{background:linear-gradient(180deg,#2b1736 0%,#160c1e 100%);border-color:#e4be71;color:#fff!important;box-shadow:0 7px 18px rgba(0,0,0,.22)}.ced-btn:hover{transform:translateY(-2px);filter:brightness(1.05)}
.ced-close{position:absolute;z-index:12;right:-11px;top:-13px;width:48px;height:48px;border-radius:50%;border:3px solid #d9a348;background:#24142f;color:#fff;font-size:30px;line-height:1;cursor:pointer;box-shadow:0 7px 18px rgba(0,0,0,.32)}.ced-close:hover{background:#3a1b48;transform:scale(1.03)}

/* Halloween decorations */
.ced-halloween-ornaments{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;border-radius:24px}.ced-ornament-bat{position:absolute;top:7px;left:50%;transform:translateX(-50%) rotate(45deg);font-size:16px;color:#df8a23;text-shadow:0 0 8px rgba(255,161,40,.28)}
.ced-web{position:absolute;width:72px;height:72px;opacity:.42;background:repeating-radial-gradient(circle at 100% 0,transparent 0 10px,rgba(247,166,69,.45) 11px 12px,transparent 13px 20px),repeating-conic-gradient(from 0deg at 100% 0,rgba(247,166,69,.45) 0 1deg,transparent 1deg 18deg)}.ced-web-top{right:3px;top:2px}.ced-web-side{right:4px;top:100px;transform:rotate(90deg);opacity:.25}
.ced-lantern{position:absolute;right:-5px;bottom:64px;width:24px;height:48px;border:2px solid #9c5f24;border-radius:4px;background:#2a1717;box-shadow:0 0 13px rgba(255,145,20,.25)}.ced-lantern:before{content:"";position:absolute;left:6px;top:-10px;width:8px;height:10px;border:2px solid #9c5f24;border-bottom:0;border-radius:8px 8px 0 0}.ced-lantern i{position:absolute;inset:7px 5px;background:radial-gradient(circle,#fff5a5 0%,#ffb32d 38%,#d85b0a 75%);box-shadow:0 0 12px #ff8a18;border-radius:2px}
.ced-leaves{position:absolute;bottom:6px;width:84px;height:48px;opacity:.92}.ced-leaves:before,.ced-leaves:after{content:"";position:absolute;width:28px;height:18px;background:linear-gradient(135deg,#d66b18,#8d2f18);clip-path:polygon(50% 0,62% 28%,100% 34%,72% 54%,84% 100%,52% 76%,20% 100%,31% 57%,0 39%,39% 29%)}.ced-leaves:after{left:36px;bottom:4px;transform:rotate(28deg);background:linear-gradient(135deg,#8d3151,#d56a1d)}.ced-leaves-left{left:10px}.ced-leaves-right{right:14px;transform:scaleX(-1)}

/* Ghost: intentionally mostly hidden behind board */
.ced-ghost{position:absolute;z-index:-1;left:-48px;top:84px;width:92px;height:115px;pointer-events:none;filter:drop-shadow(0 8px 10px rgba(0,0,0,.28));animation:cedGhostPeek 5s ease-in-out infinite}.ced-ghost svg{display:block;width:100%;height:100%}@keyframes cedGhostPeek{0%,100%{transform:translateX(-34px) rotate(-4deg)}18%{transform:translateX(-20px) rotate(-2deg)}42%,66%{transform:translateX(15px) rotate(2deg)}84%{transform:translateX(-18px) rotate(-2deg)}}

/* Pumpkin centerpiece */
.ced-pumpkin{position:absolute;z-index:7;left:50%;bottom:-53px;transform:translateX(-50%);width:164px;height:112px;pointer-events:none;filter:drop-shadow(0 13px 14px rgba(0,0,0,.32))}.ced-pumpkin svg{display:block;width:100%;height:100%}

/* Festival / Christmas / General */
.ced-theme-festival{background:linear-gradient(180deg,#5e3500,#2d1700);border-color:#f5c34d}.ced-chicken{position:absolute;right:18px;bottom:-24px;font-size:64px;line-height:1;z-index:5;filter:drop-shadow(0 8px 8px rgba(0,0,0,.28));animation:cedBob 2.8s ease-in-out infinite}.ced-theme-christmas{background:linear-gradient(180deg,#0d4b33,#073321);border-color:#f0d88b}.ced-season-icon{position:absolute;left:50%;bottom:-23px;transform:translateX(-50%);font-size:52px;z-index:5;animation:cedBob 3s ease-in-out infinite}@keyframes cedBob{50%{transform:translateX(-50%) translateY(-5px)}}

/* Modal */
.ced-modal[hidden]{display:none!important}.ced-modal{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:20px}.ced-modal-backdrop{position:absolute;inset:0;background:rgba(6,8,13,.76);backdrop-filter:blur(2px)}.ced-modal-panel{position:relative;z-index:2;width:min(680px,100%);max-height:min(82vh,760px);overflow:auto;border-radius:18px;background:#fff;color:#161616;padding:28px 26px;box-shadow:0 20px 70px rgba(0,0,0,.48)}.ced-modal-panel h2{margin:0 42px 8px 0;font-size:30px;line-height:1.15;color:#171717}.ced-modal-when{margin:0 0 14px}.ced-modal-copy{font-size:15px;line-height:1.65}.ced-modal-copy p{margin:0 0 13px}.ced-deadline{padding:10px 12px;border-left:4px solid #7d4caf;background:#f6f0fb}.ced-modal-x{position:absolute;right:12px;top:11px;width:40px;height:40px;border:0;border-radius:50%;background:#f1f1f1;color:#111;font-size:29px;cursor:pointer}

/* Accessibility */
.ced-event-shell a:focus-visible,.ced-event-shell button:focus-visible{outline:3px solid #ffdf4d;outline-offset:3px}.ced-modal-panel .ced-btn-primary:focus-visible{outline-color:#49206b}.ced-event-shell.ced-is-dismissed{display:none!important}body.ced-modal-open{overflow:hidden}

/* Responsive */
@media(max-width:520px){.ced-event-shell.ced-floating{right:10px;bottom:12px;width:calc(100vw - 20px)}.ced-event-card{padding:32px 16px 82px}.ced-title{font-size:34px;margin-left:24px;margin-right:24px}.ced-when{font-size:14px}.ced-summary{font-size:13px}.ced-actions{gap:8px}.ced-btn{min-height:42px;padding:9px 16px}.ced-ghost{left:-38px;top:90px;width:78px}.ced-pumpkin{width:144px;bottom:-47px}.ced-close{right:-6px;top:-9px;width:44px;height:44px}.ced-modal{padding:10px}.ced-modal-panel{padding:22px 18px}.ced-modal-panel h2{font-size:25px}}
@media(max-width:390px){.ced-summary{display:none}.ced-event-card{padding-bottom:76px}.ced-title{font-size:31px}.ced-btn{font-size:14px;padding:8px 14px}.ced-pumpkin{width:132px}}
@media(prefers-reduced-motion:reduce){.ced-ghost,.ced-chicken,.ced-season-icon{animation:none!important}.ced-btn,.ced-close{transition:none!important}}


/* Exact approved graphic mode */
.ced-exact-graphic-shell.ced-floating{position:fixed;right:18px;left:auto;bottom:18px;width:min(560px,calc(100vw - 36px));z-index:9998}
.ced-exact-card{position:relative;width:100%}
.ced-exact-image{display:block;width:100%;height:auto}
.ced-hotspot{position:absolute;display:block;background:transparent;border:0;padding:0;margin:0;cursor:pointer}
.ced-hotspot-close{right:5.8%;top:6.5%;width:8.5%;height:11%}
.ced-hotspot-register{left:29%;top:67.5%;width:26%;height:10.5%;border-radius:999px}
.ced-hotspot-details{left:58.2%;top:67.5%;width:23.2%;height:10.5%;border-radius:999px}
.ced-hotspot:focus-visible{outline:3px solid #ffdf4d;outline-offset:2px;border-radius:12px}
.ced-hotspot-register:focus-visible,.ced-hotspot-details:focus-visible{border-radius:999px}
.ced-sr-copy{position:absolute!important;left:-9999px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:640px){.ced-exact-graphic-shell.ced-floating{right:10px;bottom:10px;width:calc(100vw - 20px)}}


/* =========================================================
   v2.5 - Exact graphic click target correction
   The approved PNG contains the visible buttons, so these
   transparent controls sit precisely on top of them.
   ========================================================= */
.ced-exact-card{position:relative!important;isolation:isolate}
.ced-exact-image{position:relative;z-index:1;display:block;width:100%;height:auto;pointer-events:none!important;user-select:none;-webkit-user-drag:none}
.ced-exact-card .ced-hotspot{position:absolute!important;z-index:30!important;display:block!important;pointer-events:auto!important;background:rgba(255,255,255,0.001)!important;border:0!important;box-shadow:none!important;padding:0!important;margin:0!important;cursor:pointer!important}
/* Approved 1448x1086 artwork coordinates */
.ced-exact-card .ced-hotspot-register{left:25.4%!important;top:58.8%!important;width:25.7%!important;height:10.1%!important;border-radius:999px!important}
.ced-exact-card .ced-hotspot-details{left:53.1%!important;top:59.0%!important;width:23.5%!important;height:10.0%!important;border-radius:999px!important}
.ced-exact-card .ced-hotspot-close{left:79.2%!important;top:12.2%!important;width:9.0%!important;height:12.0%!important;border-radius:50%!important}
.ced-exact-card .ced-hotspot:hover{background:rgba(255,220,100,.06)!important}
.ced-exact-card .ced-hotspot:focus-visible{outline:4px solid #ffdf4d!important;outline-offset:2px!important}
@media(max-width:640px){
  .ced-exact-card .ced-hotspot:focus-visible{outline-width:3px!important}
}
