/* PS Events Calendar — front end styles for [ps_events]
   Text styling mirrors the Wall of Love plugin; filters, pagination and
   buttons mirror parentsquare.com (case studies page + platform pages). */

/* Light reset so theme styles for buttons/selects/lists don't leak in */
.psec, .psec * { box-sizing: border-box; }
.psec button { text-transform: none; box-shadow: none; min-height: 0; min-width: 0; text-shadow: none; }
.psec select { height: auto; max-width: none; box-shadow: none; }
.psec ul, .psec li { list-style: none; }
.psec li::before, .psec li::marker { content: none; }
.psec h2 { padding: 0; border: 0; background: none; }
.psec [hidden] { display: none !important; }

/* No space above the calendar: the section before the shortcode already has its own.
   !important because themes and block layouts (e.g. "block gap") add top margins
   to page content and headings with selectors that would otherwise win. */
.psec { margin-top: 0 !important; padding-top: 0 !important; }
.psec > :first-child, .psec .psec-nav > *, .psec .psec-left > * { margin-top: 0 !important; }
.psec h2.psec-month { margin: 0 !important; padding: 0 !important; }

.psec { --psec-accent: #224b17; --psec-card: #e5fae0; --psec-border: #ddd; --psec-ink: #1a1a2e; --psec-green: #224b17;
        --psec-heading: var(--font-heading, 'Plus Jakarta Sans', sans-serif);
        font-family: 'Inter', inter-variable, sans-serif; color: #000; }
.psec-nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; margin-bottom: 16px; }
.psec-month { font-family: var(--psec-heading); font-size: 1.275rem; font-weight: 500; color: var(--psec-ink); margin: 0;
              line-height: 1.35; letter-spacing: -0.02em;
              font-feature-settings: 'ss02' 1, 'ss03' 1, 'ss05' 1, 'ss06' 1; font-variation-settings: 'opsz' 14; }
/* Prev/next match the Older/Newer pagination on parentsquare.com/resources/case-studies/ */
.psec-arrow { background: none; border: 0; padding: 0; margin: 0; cursor: pointer; color: #000;
              font-family: atyp-bl-variable, var(--psec-heading); font-size: 14px; font-weight: 500; line-height: 20px;
              letter-spacing: -0.14px; display: inline-flex; align-items: center; gap: 6px; }
.psec-arrow:hover .txt { text-decoration: underline; text-underline-offset: 3px; }
.psec-month { text-align: center; }
.psec-left { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; justify-self: start; }
.psec-nav .psec-arrow[data-dir="1"] { justify-self: end; }
/* Colors match the "Explore the platform" button on parentsquare.com (no arrow, compact) */
.psec-arrow.psec-today { background: #224b17; color: #9aeb83; border: 1px solid #224b17; border-radius: 11px; padding: 6px 14px; }
.psec-today:focus-visible { outline-offset: 2px; }
.psec-today[hidden] { display: none; }
.psec-arrow:focus-visible { outline: 2px solid #224b17; outline-offset: 3px; border-radius: 4px; }
.psec-arrow .ico { display: inline-block; width: 20px; height: 20px; flex: none; background: url("data:image/svg+xml,%3Csvg width='22' height='22' viewBox='0 0 22 22' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 10.66C0 6.53458 0 0 10.5769 0C21.1538 0 21.1538 6.53458 21.1538 10.66C21.1538 14.7855 21.1538 21.3201 10.5769 21.3201C0 21.3201 0 14.7855 0 10.66Z' fill='black'/%3E%3Cpath d='M10.8418 7.8125L14.359 10.9452L10.8418 14.0778' stroke='white' stroke-width='1.5' stroke-linecap='square'/%3E%3Cpath d='M14.002 11L7.00195 11' stroke='white' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat center / contain; }
.psec-arrow[data-dir="-1"] .ico { transform: scaleX(-1); }
/* Location filter: a small, low-key row (label + compact dropdown + Clear link).
   Dropdown and Clear styling follow the case studies page, just smaller. */
.psec-filters { display: flex; align-items: center; justify-content: flex-start; gap: 10px; flex-wrap: wrap; margin: 24px 0; }
.psec-filter-label { font-family: atyp-bl-variable, var(--psec-heading); font-size: 13px; font-weight: 500; letter-spacing: -0.13px; color: #555; margin: 0; }
.psec-filters select { appearance: none; -webkit-appearance: none; font-family: 'Inter', inter-variable, sans-serif; font-size: 13px; font-weight: 400;
                       line-height: 18px; color: #000; background-color: #fff; width: auto; min-width: 150px; padding: 6px 28px 6px 10px;
                       border: 1px solid rgba(0,0,0,.2); border-radius: 8px; cursor: pointer; margin: 0;
                       background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
                       background-repeat: no-repeat; background-position: calc(100% - 10px) 50%; background-size: 9px 5px; }
.psec-filters select:focus-visible { outline: 2px solid #224b17; outline-offset: 1px; }
.psec-clear { font-family: atyp-bl-variable, var(--psec-heading); font-size: 13px; font-weight: 500; line-height: 18px; letter-spacing: -0.13px;
              background: none; border: 0; padding: 0; margin: 0; color: #000; cursor: pointer; }
.psec-clear:hover { text-decoration: underline; text-underline-offset: 3px; }
.psec-clear:focus-visible { outline: 2px solid #224b17; outline-offset: 2px; }
.psec-clear[hidden] { display: none; }
.psec-today:hover .txt { text-decoration: none; }
.psec-list { display: flex; flex-direction: column; gap: 10px; list-style: none; margin: 0; padding: 0; }
.psec-card { display: flex; align-items: stretch; background: var(--psec-card); border-radius: 12px; overflow: hidden; }
.psec-date { flex: 0 0 110px; background: var(--psec-accent); color: #fff; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 12px 8px; line-height: 1.15;
             font-family: var(--psec-heading); }
.psec-date .m { font-size: .75rem; font-weight: 500; text-transform: uppercase; letter-spacing: .06em; }
.psec-date .d { font-size: 1.5rem; font-weight: 800; white-space: nowrap; letter-spacing: -0.02em; }
.psec-body { padding: 12px 16px; display: flex; flex-direction: column; justify-content: center; gap: 4px; line-height: 1.4; }
.psec-title { font-family: var(--psec-heading); font-weight: 600; margin: 0; font-size: 0.95rem; color: var(--psec-ink); }
.psec-state { font-size: .8rem; color: #000; }
.psec-link { font-family: var(--psec-heading); font-size: .8rem; font-weight: 500; letter-spacing: -0.01em; color: var(--psec-green); text-decoration: none; margin-top: 2px; }
.psec-link:hover { text-decoration: underline; }
.psec-empty { color: #999; padding: 3rem 0; text-align: center; font-size: 1rem; }
/* Phones: month name on top, Previous / Current / Next on one row below it;
   location filter sits on its own small row. */
@media (max-width: 600px) {
  .psec-nav { grid-template-columns: 1fr auto 1fr; grid-template-areas: "month month month" "prev today next"; row-gap: 12px; column-gap: 8px; }
  .psec-left { display: contents; }
  .psec-month { grid-area: month; font-size: 1.15rem; }
  .psec-nav .psec-arrow[data-dir="-1"] { grid-area: prev; justify-self: start; }
  .psec-nav .psec-today { grid-area: today; justify-self: center; }
  .psec-nav .psec-arrow[data-dir="1"] { grid-area: next; justify-self: end; }
  .psec-arrow .wide { display: none; }
  .psec-arrow .txt { font-size: 13px; }
  .psec-filters { margin: 20px 0; }
  .psec-date { flex-basis: 84px; }
  .psec-date .d { font-size: 1.25rem; }
}
