/* Eventos Patrimonio – frontend v2.0
   Maquetación responsive y encapsulada para WordPress. */

/* ── Root wrap ──────────────────────────────────────────────────────────────*/
.s22-events-wrap{
  --s22-sun:#f4b400;--s22-sun-dark:#e89c00;--s22-sun-soft:#fff4d2;--s22-sun-deep:#b27600;
  --s22-earth:#7a4a1c;--s22-terracota:#c0563c;--s22-cream:#fffbf2;--s22-dark:#2c2416;
  --s22-gray:#6b6453;--s22-gray-light:#e7e1d2;--s22-white:#fff;
  --s22-shadow-sm:0 1px 3px rgba(122,74,28,.10);--s22-shadow-md:0 8px 22px rgba(122,74,28,.13);--s22-shadow-lg:0 18px 44px rgba(122,74,28,.20);
  --s22-radius:16px;
  --s22-max-width:100%;
  position:relative!important;isolation:isolate!important;
  width:100%!important;
  margin:24px auto!important;padding:clamp(16px,2.2vw,28px)!important;
  background:transparent!important;color:var(--s22-dark)!important;
  border-radius:20px!important;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif!important;
  line-height:1.5!important;overflow:visible!important;box-shadow:none!important;border:0!important;
}
.s22-events-wrap,.s22-events-wrap *,.s22-events-wrap *::before,.s22-events-wrap *::after{box-sizing:border-box!important}
.s22-events-wrap :where(h1,h2,h3,h4,p,ul,li,figure){margin-top:0!important}
.s22-events-wrap a{color:inherit!important;text-decoration:none!important;box-shadow:none!important}
.s22-events-wrap button,.s22-events-wrap input,.s22-events-wrap select{font:inherit!important;letter-spacing:normal!important;text-transform:none!important}
.s22-events-wrap button{appearance:none!important;-webkit-appearance:none!important;border:0!important;background:none!important;box-shadow:none!important;cursor:pointer!important}
.s22-events-wrap img{max-width:100%!important;height:auto!important;display:block!important}

/* ── Head ───────────────────────────────────────────────────────────────────*/
.s22-events-head{display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:18px!important;margin:0 0 22px!important}
.s22-events-head h2{margin:0!important;color:var(--s22-earth)!important;font-size:clamp(1.65rem,3.5vw,2.45rem)!important;line-height:1.12!important;font-weight:900!important;letter-spacing:-.03em!important}
.s22-events-head p{margin:.45rem 0 0!important;color:var(--s22-gray)!important;font-size:clamp(.95rem,1.5vw,1.05rem)!important;line-height:1.45!important}
.s22-events-count{display:inline-flex!important;align-items:center!important;justify-content:center!important;white-space:nowrap!important;color:var(--s22-earth)!important;background:var(--s22-white)!important;border:1px solid var(--s22-gray-light)!important;border-radius:999px!important;padding:7px 13px!important;font-size:.9rem!important;font-weight:800!important;box-shadow:var(--s22-shadow-sm)!important}

/* ── Hero ───────────────────────────────────────────────────────────────────*/
.s22-events-hero{position:relative!important;overflow:hidden!important;min-height:clamp(220px,32vw,360px)!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center!important;border-radius:20px!important;padding:clamp(34px,5vw,64px) clamp(18px,4vw,40px)!important;margin:0 0 24px!important;background:linear-gradient(180deg,rgba(255,247,210,.9),rgba(244,180,0,.34)),linear-gradient(135deg,#fff8df,#fff)!important;box-shadow:var(--s22-shadow-md)!important;border:1px solid rgba(231,225,210,.9)!important}
.s22-events-hero::before,.s22-events-hero::after{content:""!important;position:absolute!important;border-radius:50%!important;background:radial-gradient(circle at 50% 50%,#5a3a14 0 22%,var(--s22-sun) 22% 64%,var(--s22-sun-dark) 64% 100%)!important;opacity:.35!important;pointer-events:none!important}
.s22-events-hero::before{width:150px!important;height:150px!important;left:-48px!important;top:-48px!important}
.s22-events-hero::after{width:210px!important;height:210px!important;right:-72px!important;bottom:-76px!important}
.s22-events-tag{position:relative!important;z-index:1!important;display:inline-block!important;background:var(--s22-white)!important;color:var(--s22-earth)!important;border-radius:999px!important;padding:7px 16px!important;font-size:.78rem!important;font-weight:900!important;text-transform:uppercase!important;letter-spacing:1.3px!important;box-shadow:var(--s22-shadow-sm)!important}
.s22-events-hero h2{position:relative!important;z-index:1!important;margin:14px 0 10px!important;color:var(--s22-earth)!important;font-size:clamp(2rem,5vw,3.4rem)!important;line-height:1.08!important;font-weight:900!important;letter-spacing:-.04em!important;text-shadow:0 2px 14px rgba(255,255,255,.7)!important}
.s22-events-hero p{position:relative!important;z-index:1!important;max-width:780px!important;margin:0 auto!important;color:#3b3322!important;font-size:clamp(1rem,1.55vw,1.18rem)!important;line-height:1.55!important}

/* ── Filterbar ──────────────────────────────────────────────────────────────*/
.s22-events-filterbar{background:transparent!important;border:0!important;border-radius:0!important;padding:0!important;margin:0 0 28px!important;box-shadow:none!important;overflow:visible!important}
.s22-events-search{display:flex!important;align-items:center!important;gap:6px!important;background:#fff!important;border-radius:50px!important;padding:6px 16px 6px 20px!important;margin:0 0 16px!important;border:1px solid #e5e7eb!important;box-shadow:0 2px 12px rgba(0,0,0,.07)!important;width:100%!important;max-width:520px!important;box-sizing:border-box!important}
.s22-events-search span{font-size:1rem!important;line-height:1!important;color:#9ca3af!important;flex-shrink:0!important}
.s22-events-search input{flex:1!important;display:block!important;min-width:0!important;min-height:40px!important;height:auto!important;border:0!important;border-radius:0!important;background:transparent!important;margin:0!important;padding:10px 6px!important;color:#1f2937!important;outline:0!important;box-shadow:none!important;font-size:1rem!important;line-height:1.3!important}
.s22-events-search input::placeholder{color:#9ca3af!important;opacity:1!important}
.s22-events-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:44px!important;border-radius:999px!important;background:var(--s22-earth)!important;color:var(--s22-white)!important;padding:10px 22px!important;font-size:.95rem!important;font-weight:900!important;line-height:1.15!important;text-align:center!important;white-space:nowrap!important;border:0!important;text-decoration:none!important;box-shadow:none!important;transition:transform .15s ease,box-shadow .15s ease,background .15s ease!important}
.s22-events-btn:hover{background:#5f3915!important;color:var(--s22-white)!important;transform:translateY(-1px)!important;box-shadow:var(--s22-shadow-md)!important}
.s22-events-tabs{display:flex!important;flex-wrap:nowrap!important;align-items:center!important;gap:8px!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none!important;scroll-behavior:smooth!important;min-width:0!important;width:100%!important;max-width:100%!important;padding:4px 2px 6px!important;margin:0!important;box-sizing:border-box!important;overscroll-behavior-inline:contain!important;-webkit-overflow-scrolling:touch!important;scroll-snap-type:x proximity!important;white-space:nowrap!important;list-style:none!important}
.s22-events-tabs::-webkit-scrollbar{display:none!important}
.s22-events-tab{flex:0 0 auto!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:36px!important;background:#fff!important;color:#374151!important;border:1.5px solid #e7e1d2!important;border-radius:999px!important;padding:7px 18px!important;margin:0!important;font-size:.88rem!important;font-weight:600!important;line-height:1.1!important;white-space:nowrap!important;box-shadow:none!important;transition:background .15s,border-color .15s,color .15s!important;cursor:pointer!important}
.s22-events-tab:hover{background:#fef9e7!important;border-color:#f4b400!important;color:#1f2937!important}
.s22-events-tab.is-active{background:#f4b400!important;border-color:#f4b400!important;color:#1f2937!important;font-weight:700!important}

/* ── Grid ───────────────────────────────────────────────────────────────────*/
.s22-events-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:24px!important;align-items:stretch!important;margin:0!important;padding:0!important;max-width:none!important}
.s22-events-card{display:flex!important;flex-direction:column!important;min-width:0!important;min-height:100%!important;background:var(--s22-white)!important;border:1px solid rgba(231,225,210,.95)!important;border-radius:var(--s22-radius)!important;overflow:hidden!important;box-shadow:var(--s22-shadow-sm)!important;color:var(--s22-dark)!important;cursor:pointer!important;transition:transform .18s ease,box-shadow .18s ease!important}
.s22-events-card:hover{transform:translateY(-4px)!important;box-shadow:var(--s22-shadow-lg)!important}
.s22-events-card:focus-within{outline:3px solid rgba(244,180,0,.35)!important}
.s22-events-card-img{position:relative!important;width:100%!important;aspect-ratio:16/10!important;min-height:180px!important;background-color:var(--s22-gray-light)!important;background-position:center!important;background-size:cover!important;flex:0 0 auto!important;overflow:hidden!important}
.s22-events-card-img::after{content:""!important;position:absolute!important;inset:0!important;background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(44,36,22,.66) 100%)!important;z-index:1!important;pointer-events:none!important}
.s22-events-card-date{position:absolute!important;top:14px!important;left:14px!important;z-index:2!important;display:block!important;min-width:62px!important;background:var(--s22-white)!important;border-radius:11px!important;padding:8px 10px!important;text-align:center!important;box-shadow:var(--s22-shadow-sm)!important}
.s22-events-card-date strong{display:block!important;margin:0!important;color:var(--s22-earth)!important;font-size:1.42rem!important;font-weight:900!important;line-height:1!important}
.s22-events-card-date span{display:block!important;margin:3px 0 0!important;color:var(--s22-sun-deep)!important;font-size:.68rem!important;font-weight:900!important;line-height:1!important;text-transform:uppercase!important;letter-spacing:1.15px!important}
.s22-events-card-date--range strong{font-size:1.08rem!important}
.s22-events-card-repeat{position:absolute!important;top:14px!important;right:54px!important;z-index:2!important;font-size:1rem!important;background:rgba(255,255,255,.88)!important;border-radius:50%!important;width:32px!important;height:32px!important;display:flex!important;align-items:center!important;justify-content:center!important;box-shadow:var(--s22-shadow-sm)!important}
.s22-events-card-cat{position:absolute!important;z-index:2!important;left:14px!important;right:14px!important;bottom:14px!important;width:max-content!important;max-width:calc(100% - 28px)!important;display:block!important;padding:6px 12px!important;border-radius:999px!important;background:rgba(0,0,0,.62)!important;color:var(--s22-white)!important;font-size:.72rem!important;font-weight:900!important;line-height:1.15!important;text-transform:uppercase!important;letter-spacing:.55px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;backdrop-filter:blur(6px)!important}
.s22-events-card-body{display:flex!important;flex-direction:column!important;flex:1 1 auto!important;min-height:0!important;background:var(--s22-white)!important;padding:18px!important}
.s22-events-card-title{margin:0 0 8px!important;color:var(--s22-earth)!important;font-size:1.12rem!important;font-weight:900!important;line-height:1.25!important;letter-spacing:-.01em!important}
.s22-events-card-meta{display:flex!important;flex-wrap:wrap!important;gap:6px 12px!important;margin:0 0 11px!important;color:var(--s22-gray)!important;font-size:.85rem!important;line-height:1.35!important}
.s22-events-card-meta span{display:inline-flex!important;align-items:flex-start!important;gap:4px!important;min-width:0!important;max-width:100%!important}
.s22-events-card-desc{margin:0 0 15px!important;color:#4a4030!important;font-size:.93rem!important;line-height:1.5!important;flex:1 1 auto!important}
.s22-events-card-foot{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:14px!important;margin-top:auto!important;padding-top:12px!important;border-top:1px solid var(--s22-gray-light)!important;color:var(--s22-sun-deep)!important;font-size:.82rem!important;font-weight:850!important}
.s22-events-card-foot > span:first-child{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.s22-events-card-more{flex:0 0 auto!important;color:var(--s22-earth)!important;font-weight:900!important;white-space:nowrap!important}
.s22-events-card-more::after{content:" →"!important}
.s22-events-wrap .s22-events-row-fav{flex:0 0 auto!important;width:36px!important;height:36px!important;border-radius:50%!important;background:rgba(255,255,255,.88)!important;border:0!important;color:#9ca3af!important;font-size:1.2rem!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;box-shadow:var(--s22-shadow-sm)!important;padding:0!important;line-height:1!important;transition:color .2s,transform .2s!important;flex-shrink:0!important}
.s22-events-wrap .s22-events-row-fav:hover{color:#ef4444!important;transform:scale(1.15)!important}
.s22-events-wrap .s22-events-row-fav.is-fav{color:#ef4444!important}
.s22-events-wrap .s22-events-card-fav{position:absolute!important;top:14px!important;right:14px!important;z-index:3!important;width:32px!important;height:32px!important;border-radius:50%!important;background:rgba(255,255,255,.88)!important;color:#9ca3af!important;font-size:1rem!important;display:flex!important;align-items:center!important;justify-content:center!important;box-shadow:var(--s22-shadow-sm)!important;border:0!important;cursor:pointer!important;padding:0!important;line-height:1!important;transition:color .2s ease,transform .2s ease!important}
.s22-events-wrap .s22-events-card-fav:hover{color:#ef4444!important;transform:scale(1.15)!important}
.s22-events-wrap .s22-events-card-fav.is-fav{color:#ef4444!important}
.s22-events-empty{grid-column:1/-1!important;text-align:center!important;background:var(--s22-white)!important;border:1px solid var(--s22-gray-light)!important;border-radius:var(--s22-radius)!important;padding:52px 18px!important;box-shadow:var(--s22-shadow-sm)!important;color:var(--s22-gray)!important}
.s22-events-empty h3{margin:0 0 6px!important;color:var(--s22-earth)!important;font-size:1.25rem!important;font-weight:900!important}
.s22-events-empty p{margin:0!important;color:var(--s22-gray)!important}

/* ── Calendar section header ────────────────────────────────────────────────*/
.s22-events-calendar-section{margin:48px 0 0!important}
.s22-events-cal-header{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;flex-wrap:wrap!important;gap:14px!important;margin:0 0 18px!important}
.s22-events-cal-header h3{margin:0!important;color:var(--s22-earth)!important;font-size:clamp(1.45rem,3vw,1.8rem)!important;font-weight:900!important;line-height:1.2!important;letter-spacing:-.02em!important}
.s22-events-cal-header h3::before{content:"📅 "!important}
.s22-events-cal-controls{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:10px!important}

/* Year nav */
.s22-events-year-nav{display:flex!important;align-items:center!important;gap:4px!important;background:var(--s22-white)!important;border:1px solid var(--s22-gray-light)!important;border-radius:999px!important;padding:4px 8px!important;box-shadow:var(--s22-shadow-sm)!important}
.s22-year-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:32px!important;height:32px!important;border-radius:50%!important;background:transparent!important;color:var(--s22-earth)!important;font-size:1.25rem!important;font-weight:700!important;line-height:1!important;border:0!important;transition:background .15s!important}
.s22-year-btn:hover{background:var(--s22-sun-soft)!important}
.s22-year-label{min-width:48px!important;text-align:center!important;font-size:.95rem!important;font-weight:900!important;color:var(--s22-earth)!important;letter-spacing:-.02em!important}

/* Calendar category tabs */
.s22-events-cal-tabs{display:flex!important;gap:7px!important;overflow-x:auto!important;scrollbar-width:none!important}
.s22-events-cal-tabs::-webkit-scrollbar{display:none!important}
.s22-cal-tab{font-size:.82rem!important;min-height:34px!important;padding:6px 13px!important}

/* ── Month grid ─────────────────────────────────────────────────────────────*/
.s22-events-month-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:20px!important;margin:0!important;padding:0!important;max-width:none!important}
.s22-events-month-grid.s22-cal-month-mode{display:block!important}
.s22-events-month{min-width:0!important;background:var(--s22-white)!important;border:1px solid rgba(231,225,210,.95)!important;border-radius:var(--s22-radius)!important;overflow:hidden!important;box-shadow:var(--s22-shadow-sm)!important}
.s22-events-month-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;background:linear-gradient(135deg,var(--s22-sun),var(--s22-sun-dark))!important;color:#3b2a08!important;padding:14px 16px!important;font-size:.92rem!important;font-weight:900!important;line-height:1.15!important;text-transform:uppercase!important;letter-spacing:1.2px!important}
.s22-events-month.is-empty .s22-events-month-head{background:linear-gradient(135deg,#e7e1d2,#d4ccb9)!important;color:#6b6453!important}
.s22-events-pill{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 auto!important;border-radius:999px!important;background:rgba(255,255,255,.48)!important;color:inherit!important;padding:4px 9px!important;font-size:.72rem!important;font-weight:900!important;text-transform:none!important;letter-spacing:0!important;white-space:nowrap!important}
.s22-events-month-body{padding:8px 10px!important;background:var(--s22-white)!important}
.s22-events-row{display:flex!important;align-items:center!important;gap:11px!important;min-width:0!important;padding:10px!important;border-radius:10px!important;cursor:pointer!important;color:var(--s22-dark)!important;transition:background .15s ease!important}
.s22-events-row:hover{background:var(--s22-sun-soft)!important}
.s22-events-row + .s22-events-row{border-top:1px dashed var(--s22-gray-light)!important}
.s22-events-date-pill{display:block!important;flex:0 0 62px!important;min-width:62px!important;background:var(--s22-cream)!important;color:var(--s22-earth)!important;border:1.5px solid var(--s22-gray-light)!important;border-radius:9px!important;text-align:center!important;padding:7px 6px!important;font-size:.84rem!important;font-weight:900!important;line-height:1.1!important;overflow:hidden!important}
.s22-events-date-pill small{display:block!important;margin:3px 0 0!important;color:var(--s22-sun-deep)!important;font-size:.64rem!important;font-weight:900!important;line-height:1!important;text-transform:uppercase!important;letter-spacing:.9px!important}
.s22-events-row-info{flex:1 1 auto!important;min-width:0!important}
.s22-events-row-name{font-size:.92rem!important;font-weight:900!important;line-height:1.25!important;color:var(--s22-dark)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.s22-events-row-meta{margin-top:2px!important;color:var(--s22-gray)!important;font-size:.78rem!important;line-height:1.3!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.s22-events-month-empty{padding:30px 12px!important;text-align:center!important;color:var(--s22-gray)!important;font-size:.88rem!important;font-style:italic!important}

/* ── Modal ──────────────────────────────────────────────────────────────────*/
.s22-events-modal-bg{position:fixed!important;inset:0!important;z-index:2147483000!important;display:none!important;align-items:center!important;justify-content:center!important;background:rgba(44,36,22,.66)!important;padding:clamp(12px,3vw,22px)!important;backdrop-filter:blur(3px)!important}
.s22-events-modal-bg.is-open{display:flex!important}
.s22-events-modal{position:relative!important;width:min(820px,100%)!important;max-width:820px!important;max-height:min(90vh,940px)!important;overflow:auto!important;background:#fff!important;border-radius:var(--s22-radius,16px)!important;color:#2c2416!important;box-shadow:0 18px 44px rgba(0,0,0,.22)!important;-webkit-overflow-scrolling:touch!important}
.s22-events-modal-hero{position:relative!important;height:clamp(190px,28vw,280px)!important;background-color:#e7e1d2!important;background-position:center!important;background-size:cover!important;border-radius:16px 16px 0 0!important}
.s22-events-modal-hero::after{content:""!important;position:absolute!important;inset:0!important;background:linear-gradient(180deg,transparent 50%,rgba(44,36,22,.42))!important;pointer-events:none!important;border-radius:inherit!important}
.s22-events-modal-close{position:absolute!important;top:12px!important;right:12px!important;z-index:3!important;display:flex!important;align-items:center!important;justify-content:center!important;width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;padding:0!important;border-radius:50%!important;background:var(--s22-white)!important;color:var(--s22-earth)!important;font-size:1.55rem!important;font-weight:900!important;line-height:1!important;box-shadow:var(--s22-shadow-md)!important}
.s22-events-modal-body{padding:clamp(20px,4vw,32px)!important;background:#fff!important}
.s22-events-modal-body h2{margin:0 0 6px!important;color:var(--s22-earth)!important;font-size:clamp(1.45rem,3.5vw,1.9rem)!important;font-weight:900!important;line-height:1.15!important;letter-spacing:-.02em!important}
.s22-events-modal-sub{margin:0 0 16px!important;color:var(--s22-gray)!important;font-size:1rem!important;font-style:italic!important;display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:8px!important}
.s22-repeat-badge{display:inline-flex!important;align-items:center!important;gap:4px!important;background:var(--s22-sun-soft)!important;color:var(--s22-sun-deep)!important;border-radius:999px!important;padding:3px 10px!important;font-size:.78rem!important;font-weight:900!important;font-style:normal!important;letter-spacing:.02em!important}
.s22-events-modal-meta{display:flex!important;flex-wrap:wrap!important;gap:10px 14px!important;margin:0 0 18px!important;padding:14px 16px!important;border-radius:12px!important;background:#fff4d2!important;color:#2c2416!important;font-size:.92rem!important;line-height:1.35!important}
.s22-events-modal-meta strong{color:#7a4a1c!important;font-weight:900!important}
.s22-events-modal-content{color:#4a4030!important;font-size:1rem!important;line-height:1.65!important}
.s22-events-modal-content :where(p,ul,ol){margin:0 0 12px!important}
.s22-events-modal-body h3{margin:18px 0 8px!important;color:var(--s22-earth)!important;font-size:1.08rem!important;font-weight:900!important;line-height:1.25!important}
.s22-events-modal-body ul{padding-left:20px!important;margin:0 0 14px!important;color:#4a4030!important}
.s22-events-modal-body li{margin:0 0 6px!important;color:#4a4030!important}
.s22-events-tip{margin-top:14px!important;padding:12px 15px!important;background:var(--s22-sun-soft)!important;border-left:4px solid var(--s22-sun)!important;border-radius:0 10px 10px 0!important;color:#4a4030!important;font-size:.92rem!important;line-height:1.45!important}
.s22-events-modal-actions{display:flex!important;flex-wrap:wrap!important;gap:10px!important;margin-top:22px!important}
.s22-events-outline{background:transparent!important;color:var(--s22-earth)!important;border:1.5px solid var(--s22-earth)!important}
.s22-events-outline:hover{background:var(--s22-earth)!important;color:var(--s22-white)!important}

/* ── External calendar links ─────────────────────────────────────────────────*/
.s22-cal-links{display:flex!important;flex-wrap:wrap!important;gap:8px!important;margin-top:16px!important;padding-top:16px!important;border-top:1px solid var(--s22-gray-light)!important}
.s22-cal-link{display:inline-flex!important;align-items:center!important;gap:6px!important;padding:9px 16px!important;border-radius:999px!important;font-size:.84rem!important;font-weight:800!important;line-height:1!important;white-space:nowrap!important;transition:transform .15s ease,box-shadow .15s ease!important;text-decoration:none!important}
.s22-cal-link:hover{transform:translateY(-1px)!important;box-shadow:var(--s22-shadow-md)!important}
.s22-cal-google{background:#fff!important;color:#1a73e8!important;border:1.5px solid #dadce0!important}
.s22-cal-google:hover{background:#e8f0fe!important;color:#1a73e8!important}
.s22-cal-outlook{background:#fff!important;color:#0078d4!important;border:1.5px solid #c8d6e5!important}
.s22-cal-outlook:hover{background:#e3f2fd!important;color:#0078d4!important}
.s22-cal-ics{background:var(--s22-cream)!important;color:var(--s22-earth)!important;border:1.5px solid var(--s22-gray-light)!important}
.s22-cal-ics:hover{background:var(--s22-sun-soft)!important;color:var(--s22-earth)!important}

/* ── Video embed ─────────────────────────────────────────────────────────────*/
.s22-video-wrap{position:relative!important;width:100%!important;margin:18px 0!important;border-radius:12px!important;overflow:hidden!important;background:#000!important;aspect-ratio:16/9!important}
.s22-video-wrap iframe,.s22-video-wrap video{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;border:0!important;display:block!important}

/* ── Gallery ─────────────────────────────────────────────────────────────────*/
.s22-gallery{margin:18px 0!important}
.s22-gal-main-wrap{width:100%!important;border-radius:12px!important;overflow:hidden!important;background:var(--s22-gray-light)!important;aspect-ratio:16/9!important;margin:0 0 10px!important}
.s22-gal-main{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;transition:opacity .2s ease!important}
.s22-gal-thumbs{display:flex!important;gap:8px!important;overflow-x:auto!important;scrollbar-width:none!important;padding-bottom:2px!important}
.s22-gal-thumbs::-webkit-scrollbar{display:none!important}
.s22-gal-thumb{flex:0 0 72px!important;width:72px!important;height:54px!important;border-radius:8px!important;overflow:hidden!important;border:2.5px solid transparent!important;padding:0!important;transition:border-color .15s ease,transform .15s ease!important;background:var(--s22-gray-light)!important}
.s22-gal-thumb img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important}
.s22-gal-thumb:hover{border-color:var(--s22-sun)!important;transform:scale(1.04)!important}
.s22-gal-thumb.is-active{border-color:var(--s22-earth)!important}

/* ── Countdown timer ─────────────────────────────────────────────────────────*/
.s22-countdown-wrap{padding:clamp(20px,3vw,36px) clamp(16px,3vw,40px)!important;text-align:center!important}
.s22-countdown-head{margin:0 0 24px!important}
.s22-countdown-label{margin:0 0 4px!important;color:var(--s22-gray)!important;font-size:.76rem!important;font-weight:900!important;text-transform:uppercase!important;letter-spacing:1.6px!important;line-height:1!important}
.s22-countdown-event-info{margin:0!important}
.s22-countdown-event-title{font-size:clamp(1.5rem,4vw,2.2rem)!important;font-weight:900!important;color:var(--s22-earth)!important;letter-spacing:-.03em!important;line-height:1.1!important;margin:0 0 6px!important}
.s22-countdown-event-meta{color:var(--s22-gray)!important;font-size:.95rem!important;line-height:1.4!important}
.s22-countdown-body{margin:0!important}
.s22-countdown-timer{display:flex!important;align-items:center!important;justify-content:center!important;gap:clamp(8px,2vw,18px)!important;margin:0 0 24px!important;padding:clamp(18px,3vw,32px) clamp(12px,3vw,40px)!important;background:linear-gradient(135deg,#F3B228,#d99a10)!important;border-radius:20px!important;box-shadow:var(--s22-shadow-lg)!important}
.s22-cd-unit{display:flex!important;flex-direction:column!important;align-items:center!important;min-width:clamp(56px,10vw,90px)!important}
.s22-cd-unit span{display:block!important;font-size:clamp(2.2rem,7vw,4rem)!important;font-weight:900!important;color:#fff!important;line-height:1!important;letter-spacing:-.04em!important;font-variant-numeric:tabular-nums!important}
.s22-cd-unit small{display:block!important;margin-top:6px!important;color:rgba(255,255,255,.75)!important;font-size:.72rem!important;font-weight:800!important;text-transform:uppercase!important;letter-spacing:1.2px!important}
.s22-cd-sep{font-size:clamp(1.8rem,5vw,3rem)!important;font-weight:900!important;color:rgba(255,255,255,.5)!important;line-height:1!important;margin-bottom:24px!important;user-select:none!important}
.s22-countdown-select-wrap{display:flex!important;align-items:center!important;justify-content:center!important;flex-wrap:wrap!important;gap:10px!important;margin-top:4px!important}
.s22-countdown-select-label{color:var(--s22-gray)!important;font-size:.88rem!important;font-weight:700!important}
.s22-countdown-select{background:var(--s22-white)!important;border:1.5px solid var(--s22-gray-light)!important;border-radius:999px!important;padding:10px 20px!important;color:var(--s22-dark)!important;font-size:.92rem!important;font-weight:700!important;max-width:340px!important;width:100%!important;outline:0!important;box-shadow:var(--s22-shadow-sm)!important;cursor:pointer!important}
.s22-countdown-select:focus{border-color:var(--s22-earth)!important}

/* ── Calendar view toggle ───────────────────────────────────────────────────*/
.s22-events-cal-view-btns{display:flex!important;gap:3px!important;background:var(--s22-white)!important;border:1px solid var(--s22-gray-light)!important;border-radius:999px!important;padding:4px!important;box-shadow:var(--s22-shadow-sm)!important}
.s22-view-btn{display:inline-flex!important;align-items:center!important;gap:5px!important;padding:7px 14px!important;border-radius:999px!important;font-size:.82rem!important;font-weight:800!important;color:var(--s22-gray)!important;background:transparent!important;border:0!important;transition:background .15s,color .15s!important;white-space:nowrap!important}
.s22-view-btn:hover{background:var(--s22-sun-soft)!important;color:var(--s22-earth)!important}
.s22-view-btn.is-active{background:var(--s22-earth)!important;color:var(--s22-white)!important}
.s22-events-year-nav.is-hidden{display:none!important}

/* ── Month grid calendar ─────────────────────────────────────────────────────*/
.s22-mes-nav{display:flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;margin:0 0 14px!important}
.s22-mes-titulo{min-width:180px!important;text-align:center!important;font-size:1.05rem!important;font-weight:900!important;color:var(--s22-earth)!important;letter-spacing:-.01em!important}
.s22-mes-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:36px!important;height:36px!important;border-radius:50%!important;background:var(--s22-white)!important;border:1px solid var(--s22-gray-light)!important;color:var(--s22-earth)!important;font-size:1.4rem!important;font-weight:700!important;line-height:1!important;cursor:pointer!important;transition:background .15s!important;flex-shrink:0!important}
.s22-mes-btn:hover{background:var(--s22-sun-soft)!important}
.s22-dias-sem{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:2px!important;margin-bottom:4px!important}
.s22-dia-sem{text-align:center!important;font-size:.72rem!important;font-weight:900!important;color:var(--s22-gray)!important;text-transform:uppercase!important;letter-spacing:.8px!important;padding:6px 2px!important}
.s22-dias-grid{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:3px!important}
.s22-dia{position:relative!important;min-height:72px!important;background:var(--s22-white)!important;border:1px solid var(--s22-gray-light)!important;border-radius:8px!important;padding:6px 5px 4px!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:2px!important;overflow:hidden!important;transition:background .12s!important}
.s22-dia--vacio{background:transparent!important;border-color:transparent!important;pointer-events:none!important}
.s22-dia--hoy{background:var(--s22-sun-soft)!important;border-color:var(--s22-sun)!important}
.s22-dia--tiene-ev{cursor:default!important}
.s22-dia--tiene-ev:hover{background:var(--s22-cream)!important}
.s22-dia-num{font-size:.82rem!important;font-weight:800!important;color:var(--s22-dark)!important;line-height:1!important;flex-shrink:0!important}
.s22-dia--hoy .s22-dia-num{color:var(--s22-earth)!important;font-size:.9rem!important}
.s22-dia-punto{display:block!important;width:6px!important;height:6px!important;border-radius:50%!important;background:var(--s22-earth)!important;flex-shrink:0!important}
.s22-dia-evs{display:flex!important;flex-direction:column!important;gap:2px!important;width:100%!important;overflow:hidden!important;margin-top:1px!important}
.s22-dia-ev{display:block!important;font-size:.64rem!important;font-weight:700!important;color:var(--s22-earth)!important;background:var(--s22-sun-soft)!important;border-radius:3px!important;padding:2px 4px!important;line-height:1.3!important;cursor:pointer!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;width:100%!important;transition:background .1s!important}
.s22-dia-ev:hover{background:var(--s22-sun)!important;color:#3b2a08!important}

/* ── Responsive ─────────────────────────────────────────────────────────────*/
@media (max-width:1024px){
  .s22-events-grid,.s22-events-month-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .s22-events-wrap{margin:18px auto!important}
  .s22-events-card-img{min-height:170px!important}
  .s22-events-cal-header{flex-direction:column!important;align-items:flex-start!important}
}
@media (max-width:767px){
  .s22-events-wrap{margin:12px auto!important;padding:14px!important;border-radius:14px!important}
  .s22-events-head{display:block!important;margin-bottom:18px!important}
  .s22-events-count{margin-top:10px!important}
  .s22-events-hero{border-radius:16px!important;margin-bottom:18px!important}
  .s22-events-hero::before,.s22-events-hero::after{display:none!important}
  .s22-events-filterbar{margin-bottom:20px!important}
  .s22-events-search{border-radius:18px!important;padding:8px 12px 8px 16px!important;gap:6px!important}
  .s22-events-tabs{padding-left:0!important;padding-right:0!important}
  .s22-events-grid,.s22-events-month-grid{grid-template-columns:1fr!important;gap:16px!important}
  .s22-events-card-img{aspect-ratio:16/9!important;min-height:170px!important}
  .s22-events-card-body{padding:16px!important}
  .s22-events-card-meta{display:block!important}
  .s22-events-card-meta span{display:flex!important;margin-bottom:5px!important}
  .s22-events-calendar-section{margin-top:34px!important}
  .s22-events-cal-header{gap:10px!important}
  .s22-events-cal-controls{gap:8px!important}
  .s22-events-month-head{padding:13px 14px!important}
  .s22-events-modal-bg{align-items:flex-end!important;padding:0!important}
  .s22-events-modal{width:100%!important;max-width:100%!important;max-height:92dvh!important;border-radius:18px 18px 0 0!important}
  .s22-events-modal-hero{height:180px!important;border-radius:18px 18px 0 0!important}
  .s22-events-modal-body{padding:20px!important}
  .s22-events-modal-actions{display:grid!important;grid-template-columns:1fr!important}
  .s22-events-btn{width:100%!important}
  .s22-events-row{align-items:flex-start!important}
  .s22-events-row-name,.s22-events-row-meta{white-space:normal!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important}
  .s22-events-row-meta{-webkit-line-clamp:1!important}
  .s22-cal-links{flex-direction:column!important}
  .s22-cal-link{justify-content:center!important}
  .s22-dia{min-height:48px!important;padding:4px 3px!important}
  .s22-dia-evs{display:none!important}
  .s22-mes-titulo{min-width:140px!important;font-size:.9rem!important}
  .s22-events-cal-controls{gap:6px!important}
  .s22-countdown-timer{gap:8px!important;padding:18px 12px!important}
  .s22-cd-sep{margin-bottom:20px!important}
  .s22-gal-thumb{flex-basis:60px!important;width:60px!important;height:46px!important}
}
/* ── [eventos_mes] – calendario mensual ─────────────────────────────────────*/
.s22-cal-mes-wrap{
  box-sizing:border-box;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  max-width:100%;
  margin:24px auto;
  background:#fff;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(0,0,0,.08);
  border:1px solid #e7e1d2;
}
/* Cabecera navegación */
.s22-cal-mes-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px 20px;
  background:linear-gradient(135deg,#7a4a1c,#a0641e);
}
.s22-cal-mes-titulo{
  font-size:1.25rem;
  font-weight:900;
  color:#fff;
  letter-spacing:-.02em;
  text-transform:capitalize;
}
.s22-cal-mes-btn{
  display:flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:50%;
  border:2px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.15);
  color:#fff;font-size:1.4rem;font-weight:900;
  cursor:pointer;transition:background .15s;padding:0;line-height:1;
}
.s22-cal-mes-btn:hover{background:rgba(255,255,255,.3);}
/* Cabecera días de semana */
.s22-cal-mes-semana{
  display:grid;grid-template-columns:repeat(7,1fr);
  background:#f9f5ee;
  border-bottom:1px solid #e7e1d2;
}
.s22-cal-mes-semana span{
  padding:10px 4px;
  text-align:center;
  font-size:.72rem;font-weight:800;
  color:#6b6453;text-transform:uppercase;letter-spacing:.7px;
}
/* Grid de días */
.s22-cal-mes-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:0;
}
.s22-cal-mes-grid .s22-dia{
  box-sizing:border-box;
  min-height:80px;
  padding:8px 6px 6px;
  border-right:1px solid #f0ece4;
  border-bottom:1px solid #f0ece4;
  background:#fff;
  font-size:.9rem;font-weight:700;color:#2c2416;
  display:flex;flex-direction:column;gap:3px;
  position:relative;overflow:hidden;
  transition:background .12s;
}
.s22-cal-mes-grid .s22-dia:hover:not(.vacio){background:#fffdf7;}
.s22-cal-mes-grid .s22-dia.vacio{background:#fafaf8;pointer-events:none;}
.s22-cal-mes-grid .s22-dia.hoy{
  background:#fff8e1;
}
.s22-cal-mes-grid .s22-dia.hoy::before{
  content:'';position:absolute;top:0;left:0;right:0;
  height:3px;background:#f4b400;
}
.s22-cal-mes-grid .s22-dia.hoy .s22-dia-num{
  display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:50%;
  background:#7a4a1c;color:#fff;font-weight:900;
}
.s22-cal-mes-grid .s22-dia.con-eventos{cursor:default;}
/* Número del día */
.s22-dia-num{
  font-size:.88rem;font-weight:700;color:#2c2416;line-height:1;
}
.s22-dia.vacio .s22-dia-num{color:#ccc;}
/* Puntos de evento */
.s22-dia-punto{
  display:inline-block;width:7px;height:7px;border-radius:50%;
  background:#7a4a1c;margin-top:2px;flex-shrink:0;
}
/* Nombre del evento (badge pequeño) */
.s22-dia-lista{
  display:flex;flex-direction:column;gap:2px;width:100%;overflow:hidden;
}
.s22-dia-ev-nombre{
  display:block;font-size:.62rem;font-weight:700;
  color:#fff;background:#7a4a1c;border-radius:4px;
  padding:2px 5px;cursor:pointer;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  width:100%;transition:background .1s;
}
.s22-dia-ev-nombre:hover{background:#a0641e;}
/* Responsive */
@media(max-width:640px){
  .s22-cal-mes-nav{padding:14px 16px;}
  .s22-cal-mes-titulo{font-size:1rem;}
  .s22-cal-mes-grid .s22-dia{min-height:50px;padding:5px 3px;}
  .s22-dia-lista{display:none;}
  .s22-dia-num{font-size:.8rem;}
}
@media(max-width:400px){
  .s22-cal-mes-semana span{font-size:.65rem;padding:8px 2px;}
  .s22-cal-mes-grid .s22-dia{min-height:40px;padding:4px 2px;}
}

@media (max-width:390px){
  .s22-events-wrap{padding:10px!important}
  .s22-events-card-date{top:10px!important;left:10px!important}
  .s22-events-card-cat{left:10px!important;right:10px!important;bottom:10px!important;max-width:calc(100% - 20px)!important}
  .s22-events-card-foot{align-items:flex-start!important;flex-direction:column!important;gap:6px!important}
  .s22-events-date-pill{flex-basis:56px!important;min-width:56px!important}
  .s22-events-month-head{font-size:.84rem!important;letter-spacing:.8px!important}
  .s22-events-pill{font-size:.68rem!important;padding:4px 8px!important}
}
