/* Event module: public UI. Uses only Fartak Pro design tokens. */

/* Event card -------------------------------------------------------------- */
.fp-event-card{height:100%;overflow:hidden;border:1px solid var(--fp-border);border-radius:var(--fp-radius);background:var(--fp-surface);transition:border-color .2s ease,opacity .2s ease}
.fp-event-card:hover{border-color:var(--fp-accent)}
.fp-event-card__media{position:relative;display:block;aspect-ratio:1.48;overflow:hidden;background:var(--fp-surface-alt)}
.fp-event-card__media img{width:100%;height:100%;display:block;object-fit:cover}
.fp-event-card__placeholder{display:grid;place-items:center;height:100%;color:var(--fp-accent);background:linear-gradient(135deg,var(--fp-surface-alt),var(--fp-surface))}
.fp-event-card__placeholder svg{width:42px;height:42px}
.fp-event-card__date,.fp-event-single__date{display:grid;place-items:center;min-width:50px;min-height:56px;padding:5px 8px;border:1px solid color-mix(in srgb,var(--fp-border) 72%,transparent);border-radius:12px;background:color-mix(in srgb,var(--fp-background) 80%,transparent);color:var(--fp-text);backdrop-filter:blur(12px)}
.fp-event-card__date{position:absolute;inset-block-start:9px;inset-inline-start:9px}
.fp-event-card__date strong,.fp-event-single__date strong{font-size:1.16rem;line-height:1.1}
.fp-event-card__date small,.fp-event-single__date small{font-size:.66rem;color:var(--fp-accent)}
.fp-event-badge{display:inline-flex;align-items:center;width:max-content;padding:4px 9px;border:1px solid var(--fp-border);border-radius:999px;background:color-mix(in srgb,var(--fp-surface-alt) 88%,transparent);font-size:.66rem;color:var(--fp-muted);backdrop-filter:blur(9px)}
.fp-event-card__media>.fp-event-badge{position:absolute;inset-block-start:9px;inset-inline-end:9px;background:color-mix(in srgb,var(--fp-background) 80%,transparent)}
.fp-event-badge--ongoing{border-color:var(--fp-accent);color:var(--fp-text)}
.fp-event-badge--past{border-color:color-mix(in srgb,var(--fp-border) 70%,transparent);color:var(--fp-muted)}
.fp-event-badge--cancelled{border-style:dashed;border-color:var(--fp-muted);color:var(--fp-muted)}
.fp-event-badge--postponed{border-color:var(--fp-accent);color:var(--fp-link-hover)}
.fp-event-card__body{display:flex;flex-direction:column;min-height:178px;padding:11px}
.fp-event-card__kicker{display:flex;justify-content:space-between;gap:7px;color:var(--fp-muted);font-size:.64rem}
.fp-event-card__kicker span{display:inline-flex;align-items:center;gap:4px;min-width:0}
.fp-event-card__kicker svg{width:13px;height:13px}
.fp-event-card__title{margin:7px 0 8px;font-size:.9rem;line-height:1.68}
.fp-event-card__title a{color:var(--fp-text)}
.fp-event-card__title a:hover{color:var(--fp-link-hover)}
.fp-event-card__meta{display:grid;gap:4px;color:var(--fp-muted);font-size:.68rem}
.fp-event-card__meta span{display:flex;align-items:center;gap:5px;min-width:0}
.fp-event-card__meta svg{width:13px;height:13px;color:var(--fp-accent)}
.fp-event-card__more{display:inline-flex;align-items:center;gap:4px;margin-top:auto;padding-top:11px;font-size:.71rem}
.fp-event-card__more svg{width:13px;height:13px}
.fp-event-card--status-past{opacity:.76}
.fp-event-card--status-past:hover{opacity:.94}

/* Archive ---------------------------------------------------------------- */
.fp-events-archive__hero{max-width:820px;margin:2px 0 26px}
.fp-events-archive__hero h1{margin:3px 0 8px}
.fp-events-archive__hero p{margin:0;color:var(--fp-muted);max-width:64ch}
.fp-events-toolbar{display:grid;gap:10px;margin-bottom:20px}
.fp-events-periods{display:flex;gap:7px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.fp-events-periods::-webkit-scrollbar{display:none}
.fp-events-category select{width:100%;min-height:42px;padding:7px 12px;border:1px solid var(--fp-border);border-radius:11px;background:var(--fp-surface);color:var(--fp-text)}
.fp-event-grid{display:grid;grid-template-columns:1fr;gap:14px}
.fp-events-pagination .nav-links{display:flex;justify-content:center;gap:7px;margin-top:28px}
.fp-events-pagination .page-numbers{display:grid;place-items:center;min-width:40px;min-height:40px;padding:5px;border:1px solid var(--fp-border);border-radius:10px;background:var(--fp-surface)}
.fp-events-pagination .current{border-color:var(--fp-accent);color:var(--fp-text)}
.fp-events-pagination svg{width:16px;height:16px}
.fp-events-empty{display:grid;justify-items:center;text-align:center;padding:42px 20px;border:1px dashed var(--fp-border);border-radius:var(--fp-radius);background:var(--fp-surface)}
.fp-events-empty>svg{width:44px;height:44px;color:var(--fp-accent)}
.fp-events-empty h2{margin:12px 0 4px}
.fp-events-empty p{margin:0;color:var(--fp-muted)}

/* Single Event: full-bleed shared visual Hero ----------------------------- */
.fp-event-single{--fp-event-hero-radius:0}
.fp-event-single .fp-carousel--event-hero{width:100%;margin:0;border:0!important;border-radius:0!important;overflow:hidden;background:var(--fp-background)}
.fp-carousel--event-hero .fp-carousel__slide{min-height:clamp(540px,72svh,620px)}
.fp-carousel--event-hero .fp-carousel__shade{background:linear-gradient(180deg,color-mix(in srgb,var(--fp-background) 42%,transparent) 0%,transparent 23%,color-mix(in srgb,var(--fp-background) 18%,transparent) 45%,color-mix(in srgb,var(--fp-background) 72%,transparent) 75%,var(--fp-background) 100%)}
.fp-carousel--event-hero .fp-carousel__shared-content{position:absolute;z-index:3;inset-inline:16px;bottom:48px;max-width:min(760px,calc(100% - 32px));pointer-events:none}
.fp-event-hero__content{display:grid;justify-items:start;gap:7px}
.fp-event-hero__title{margin:0;font-size:clamp(1.18rem,5.2vw,1.8rem);line-height:1.55;text-wrap:balance;text-shadow:0 2px 18px color-mix(in srgb,var(--fp-background) 78%,transparent)}
.fp-event-hero__status{margin:0;max-width:58ch;padding:0;border:0;background:transparent;color:color-mix(in srgb,var(--fp-text) 88%,var(--fp-muted));font-size:.78rem;line-height:1.9;text-shadow:0 1px 14px color-mix(in srgb,var(--fp-background) 82%,transparent);backdrop-filter:none}
.fp-event-hero__status--past,.fp-event-hero__status--cancelled,.fp-event-hero__status--postponed{color:color-mix(in srgb,var(--fp-text) 78%,var(--fp-muted))}
.fp-event-single__placeholder{display:grid;place-items:center;position:absolute;inset:0;width:100%;height:100%;color:var(--fp-accent);background:radial-gradient(circle at 70% 25%,color-mix(in srgb,var(--fp-accent) 18%,transparent),transparent 35%),linear-gradient(135deg,var(--fp-surface-alt),var(--fp-background))}
.fp-event-single__placeholder svg{width:82px;height:82px;opacity:.72}
.fp-event-single__body{position:relative;z-index:2;padding-top:20px}
.fp-event-single__breadcrumbs{margin-top:46px;padding-top:20px}
.fp-event-single__breadcrumbs .fp-breadcrumbs{margin-bottom:0}

/* Single Event content + sticky ticket ---------------------------------- */
.fp-event-single__layout{display:grid;gap:18px;align-items:start}
.fp-event-single__content-card{min-width:0;padding:18px;border:1px solid var(--fp-border);border-radius:var(--fp-radius);background:var(--fp-surface)}
.fp-event-single__section-head{margin-bottom:14px}
.fp-event-single__section-head h2{margin:2px 0 0;font-size:1.16rem}
.fp-event-single__content{min-width:0}
.fp-event-info{align-self:start;padding:17px;border:1px solid var(--fp-border);border-radius:var(--fp-radius);background:linear-gradient(180deg,color-mix(in srgb,var(--fp-surface-alt) 55%,var(--fp-surface)),var(--fp-surface));box-shadow:0 18px 50px color-mix(in srgb,var(--fp-background) 35%,transparent)}
.fp-event-info__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:13px;border-bottom:1px solid color-mix(in srgb,var(--fp-border) 58%,transparent)}
.fp-event-info__header h2{margin:2px 0 0;font-size:1.02rem}
.fp-event-info__status-dot{width:10px;height:10px;border-radius:50%;background:var(--fp-muted);box-shadow:0 0 0 5px color-mix(in srgb,var(--fp-muted) 14%,transparent)}
.fp-event-info__status-dot--upcoming,.fp-event-info__status-dot--ongoing{background:var(--fp-accent);box-shadow:0 0 0 5px color-mix(in srgb,var(--fp-accent) 15%,transparent)}
.fp-event-info__status-dot--cancelled{background:var(--fp-muted)}
.fp-event-info__facts{display:grid;gap:0;margin:0}
.fp-event-info__facts>div{display:grid;grid-template-columns:minmax(86px,.72fr) minmax(0,1.28fr);gap:10px;padding:11px 0;border-bottom:1px solid color-mix(in srgb,var(--fp-border) 48%,transparent)}
.fp-event-info__facts dt{display:flex;align-items:center;gap:6px;color:var(--fp-muted);font-size:.72rem}
.fp-event-info__facts dt svg{width:15px;height:15px;color:var(--fp-accent)}
.fp-event-info__facts dd{margin:0;color:var(--fp-text);font-size:.76rem;line-height:1.75;overflow-wrap:anywhere}
.fp-event-info__cta{width:100%;justify-content:center;margin-top:15px}
.fp-event-info__group{margin-top:16px;padding-top:14px;border-top:1px solid color-mix(in srgb,var(--fp-border) 58%,transparent)}
.fp-event-info__group h3{margin:0 0 10px;font-size:.82rem}
.fp-event-info__organizer{display:flex;align-items:center;gap:7px;margin:0 0 8px;color:var(--fp-text);font-size:.78rem}
.fp-event-info__organizer svg{width:16px;height:16px;color:var(--fp-accent)}
.fp-event-info__contact{display:flex;flex-wrap:wrap;gap:7px}
.fp-event-info__contact a{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid var(--fp-border);border-radius:9px;background:var(--fp-surface-alt);font-size:.7rem}
.fp-event-info__contact svg{width:13px;height:13px}
.fp-event-info__people-group h3{margin-bottom:12px}
.fp-event-people{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:12px 8px}
.fp-event-person{min-width:0;margin:0;text-align:center}
.fp-event-person__avatar{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 7px;border:1px solid var(--fp-border);border-radius:50%;overflow:hidden;background:var(--fp-surface-alt);color:var(--fp-accent)}
.fp-event-person__avatar img{display:block;width:100%;height:100%;object-fit:cover}
.fp-event-person__avatar svg{width:22px;height:22px}
.fp-event-person figcaption{font-size:.68rem;line-height:1.6;color:var(--fp-text);overflow-wrap:anywhere}
.fp-event-info__tools{display:grid;gap:7px;margin-top:16px;padding-top:14px;border-top:1px solid color-mix(in srgb,var(--fp-border) 58%,transparent)}
.fp-event-info__tools a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;min-height:40px;padding:8px 10px;border:1px solid var(--fp-border);border-radius:10px;background:var(--fp-surface-alt);font-size:.72rem}
.fp-event-info__tools a:hover{border-color:var(--fp-accent)}
.fp-event-info__tools svg{width:14px;height:14px}
.fp-event-info__terms{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.fp-event-related{margin-top:38px}

@media(min-width:700px){
  .fp-event-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  .fp-events-toolbar{grid-template-columns:1fr auto;align-items:center}
  .fp-events-category select{width:auto;min-width:190px}
  .fp-event-card__body{min-height:188px;padding:14px}
  .fp-event-card__title{font-size:.96rem}
  .fp-event-single .fp-carousel--event-hero{margin:0;border:0!important;border-radius:0!important}
  .fp-carousel--event-hero .fp-carousel__slide{min-height:650px}
  .fp-carousel--event-hero .fp-carousel__shared-content{inset-inline:max(28px,calc((100% - var(--fp-container))/2 + 24px));bottom:62px;max-width:820px}
  .fp-event-hero__title{font-size:clamp(1.48rem,3vw,2.05rem)}
  .fp-event-hero__status{font-size:.84rem}
  .fp-event-single__body{padding-top:26px}
  .fp-event-single__layout{grid-template-columns:minmax(0,1fr) 320px;gap:22px}
  .fp-event-single__layout--compact{grid-template-columns:minmax(0,560px);justify-content:end}
  .fp-event-info{position:sticky;top:94px;padding:19px}
  .fp-event-single__content-card{padding:24px}
}

@media(min-width:1020px){
  .fp-event-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fp-carousel--event-hero .fp-carousel__slide{min-height:clamp(680px,64vw,740px)}
  .fp-carousel--event-hero .fp-carousel__shared-content{inset-inline:max(42px,calc((100% - var(--fp-container))/2 + 24px));bottom:72px;max-width:900px}
  .fp-event-hero__title{font-size:clamp(1.65rem,2.45vw,2.28rem)}
  .fp-event-hero__status{font-size:.88rem}
  .fp-event-single__layout{grid-template-columns:minmax(0,1fr) 350px;gap:26px}
  .fp-event-single__content-card{padding:30px}
}

@media(prefers-reduced-motion:reduce){
  .fp-event-card{transition:none}
}
