/* ==========================================================
   /industry/assets/css/calendar.css
   Shared styles for /industry/calendar/ (index.php and company.php)
   ========================================================== */

/* ---- Hero media column (both pages) ---- */
.ind-hero__media { display: flex; align-items: center; justify-content: center; }

/* ---- Calendar index: "List your event" hero card ---- */
  .ind-hero__event-card { background: #fff; border-radius: 20px; padding: 32px 28px; box-shadow: 0 20px 50px rgba(0,0,0,0.18); width: 100%; max-width: 400px; }
  .ind-hero__event-card-eyebrow { font: 700 12px var(--cr-font-heading); letter-spacing: .08em; text-transform: uppercase; color: var(--cr-gold-dark); margin: 0 0 10px; }
  .ind-hero__event-card-label { font: 500 15px/1.5 var(--cr-font-body); color: #241c2e; margin: 0 0 18px; }
  .ind-hero__event-card-btn { display: block; width: 100%; text-align: center; }

/* ---- Company page: hero profile and details card ---- */
  .ind-hero .co-profile { font-size: 16px; line-height: 1.7; max-width: 640px; }
  .ind-hero .co-profile p { margin: 0 0 14px; font: inherit; color: inherit; }
  .ind-hero .co-profile p:last-child { margin-bottom: 0; }
  .ind-hero .co-profile h3, .ind-hero .co-profile h4 { font-family: var(--cr-font-heading); font-size: 18px; margin: 18px 0 8px; color: inherit; }
  .ind-hero .co-profile ul, .ind-hero .co-profile ol { margin: 0 0 14px; padding-left: 22px; }
  .ind-hero .co-profile li { margin-bottom: 4px; }
  .ind-hero .co-profile a { color: inherit; text-decoration: underline; }
  .co-card { background: #fff; border-radius: 20px; padding: 28px; box-shadow: 0 20px 50px rgba(0,0,0,0.18); width: 100%; max-width: 400px; color: #241c2e; }
  .co-card__logo { display: block; max-width: 180px; max-height: 70px; width: auto; height: auto; object-fit: contain; margin: 0 0 18px; }
  .co-card__eyebrow { font: 700 12px var(--cr-font-heading); letter-spacing: .08em; text-transform: uppercase; color: var(--cr-gold-dark); margin: 0 0 12px; }
  .co-card__list { margin: 0 0 18px; display: flex; flex-direction: column; gap: 10px; }
  .co-card__list > div { display: flex; gap: 12px; font: 500 14px/1.45 var(--cr-font-body); }
  .co-card__list dt { flex: none; width: 68px; font: 600 11px var(--cr-font-heading); letter-spacing: .06em; text-transform: uppercase; color: #6f6577; padding-top: 3px; }
  .co-card__list dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
  .co-card__list a { color: var(--cr-gold-dark); text-decoration: underline; }
  .co-card__btn { display: block; width: 100%; text-align: center; }

/* ---- Calendar app: month / year / list views, filters, modal ---- */

  .ind-calendar {
    /* Brand purple, pulled from the sitewide tokens rather than redefined here */
    --cal-primary: var(--cr-gold);
    --cal-deep:    var(--cr-gold-dark);
    --cal-tint:    var(--cr-gold-tint);
    /* Category colours stay distinct so event types stay scannable at a glance */
    --cal-teal:#2f9fb0;
    --cal-amber:#c98a1f;
    --cal-coral:#c14a72;
    --cal-green:#4a9e6f;
    --cal-cream:#faf7fc;
    --cal-paper:#ffffff;
    --cal-ink:#241c2e;
    --cal-muted:#6f6577;
    --cal-line:#e7ddec;
    --cal-radius:14px;
    --cal-shadow: 0 6px 20px rgba(124,58,199,0.08);
  }
  .ind-calendar * {box-sizing:border-box;}
  .ind-calendar {background:var(--cal-cream);color:var(--cal-ink);font-family:var(--cr-font-body);-webkit-font-smoothing:antialiased;padding:0;}
  .ind-calendar ::selection {background:var(--cal-primary);color:#fff;}
  .ind-calendar a:where(:not(.ind-btn)) {color:inherit;}
  .ind-calendar button {font-family:inherit;}
  .ind-calendar .eyebrow {font-family:var(--cr-font-heading);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--cal-primary);font-weight:500;}

  .ind-calendar .controls-wrap {position:relative;z-index:1;background:rgba(250,247,244,0.94);border-bottom:1px solid var(--cal-line);}
  .ind-calendar .controls {max-width:1100px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:space-between;}
  .ind-calendar .view-toggle {display:inline-flex;background:#fff;border:1px solid var(--cal-line);border-radius:100px;padding:3px;gap:2px;flex:none;}
  .ind-calendar .view-toggle button {border:none;background:transparent;padding:7px 16px;border-radius:100px;font-size:13px;font-weight:600;color:var(--cal-muted);cursor:pointer;transition:all .15s ease;}
  .ind-calendar .view-toggle button.active {background:var(--cal-deep);color:#fff;}
  .ind-calendar .filters {display:flex;gap:8px;flex-wrap:wrap;}
  .ind-calendar .filter-pill {display:inline-flex;align-items:center;gap:7px;padding:7px 14px 7px 10px;border-radius:100px;border:1px solid var(--cal-line);background:#fff;font-size:12.5px;font-weight:600;cursor:pointer;color:var(--cal-muted);transition:all .18s ease;user-select:none;}
  .ind-calendar .filter-pill .swatch {width:9px;height:9px;border-radius:50%;flex:none;}
  .ind-calendar .filter-pill:hover {border-color:var(--cal-primary);color:var(--cal-ink);}
  .ind-calendar .filter-pill.active {background:var(--cal-ink);border-color:var(--cal-ink);color:#fff;}
  .ind-calendar .filter-pill[data-type="all"].active {background:var(--cal-deep);border-color:var(--cal-deep);}

  .ind-calendar .app {max-width:1100px;margin:0 auto;padding:36px 24px 40px;}

  .ind-calendar .month-nav {position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:26px;}
  .ind-calendar .nav-arrow {width:38px;height:38px;border-radius:50%;border:1px solid var(--cal-line);background:#fff;color:var(--cal-deep);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;flex:none;position:absolute;top:50%;transform:translateY(-50%);}
  .ind-calendar .nav-arrow:hover {background:var(--cal-deep);color:#fff;border-color:var(--cal-deep);}
  .ind-calendar .nav-arrow.prev {left:0;}
  .ind-calendar .nav-arrow.next {right:0;}
  .ind-calendar .month-nav-label {display:flex;align-items:baseline;gap:10px;}
  .ind-calendar .month-nav-label h2 {font-family:var(--cr-font-heading);font-weight:600;font-size:clamp(28px,4.5vw,40px);margin:0;color:var(--cal-deep);}
  .ind-calendar .month-nav-label .myear {font-family:var(--cr-font-heading);font-weight:600;font-size:clamp(28px,4.5vw,40px);color:var(--cal-deep);}
  .ind-calendar .year-nav {display:inline-flex;align-items:center;gap:6px;}
  .ind-calendar .year-arrow {width:20px;height:20px;border-radius:50%;border:1px solid var(--cal-line);background:#fff;color:var(--cal-muted);font-size:12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:1;}
  .ind-calendar .year-arrow:hover {background:var(--cal-primary);color:#fff;border-color:var(--cal-primary);}
  .ind-calendar .year-nav-bar {position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:26px;}
  .ind-calendar .year-nav-bar h2 {font-family:var(--cr-font-heading);font-weight:600;font-size:28px;margin:0;color:var(--cal-deep);}

  .ind-calendar .grid-wrap {background:#fff;border:1px solid var(--cal-line);border-radius:var(--cal-radius);overflow:hidden;box-shadow:var(--cal-shadow);}
  .ind-calendar .dow-row {display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--cal-deep);}
  .ind-calendar .dow-row span {padding:12px 6px;text-align:center;font-family:var(--cr-font-heading);font-size:11px;letter-spacing:.1em;color:#e7c9ef;font-weight:500;}
  .ind-calendar .day-grid {display:grid;grid-template-columns:repeat(7,minmax(0,1fr));}
  .ind-calendar .day-cell {min-height:96px;border-right:1px solid var(--cal-line);border-bottom:1px solid var(--cal-line);padding:8px;display:flex;flex-direction:column;gap:4px;cursor:default;position:relative;min-width:0;}
  .ind-calendar .day-cell:nth-child(7n) {border-right:none;}
  .ind-calendar .day-cell.empty {background:#fbf9fc;}
  .ind-calendar .day-num {align-self:flex-end;font-family:var(--cr-font-heading);font-size:12px;color:var(--cal-muted);font-weight:500;}
  .ind-calendar .day-cell.has-events {cursor:pointer;}
  .ind-calendar .day-cell.has-events:hover {background:#fbf6fc;}
  .ind-calendar .day-chip {font-size:10.5px;font-weight:600;padding:3px 6px;border-radius:5px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;display:block;max-width:100%;min-width:0;}
  .ind-calendar .day-chip.continue {padding:3px 6px;text-indent:-9999px;height:8px;border-radius:3px;opacity:.55;}
  .ind-calendar .day-more {font-size:10px;color:var(--cal-muted);font-family:var(--cr-font-heading);padding:1px 6px;}

  .ind-calendar .chip-training {background:var(--cal-amber);color:#fff;}
  .ind-calendar .chip-webinar {background:var(--cal-teal);color:#fff;}
  .ind-calendar .chip-launch {background:var(--cal-coral);color:#fff;}
  .ind-calendar .chip-event {background:var(--cal-green);color:#fff;}
  .ind-calendar .chip-exhibition {background:var(--cal-deep);color:#fff;}

  @media  (max-width:640px) {
    .ind-calendar .day-cell {min-height:70px;padding:5px;}
    .ind-calendar .day-chip {display:none;}
    .ind-calendar .day-cell.has-events::after {content:"";position:absolute;bottom:6px;left:50%;transform:translateX(-50%);width:6px;height:6px;border-radius:50%;background:var(--cal-primary);}
  }

  .ind-calendar .year-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;}
  .ind-calendar .mini-month {background:#fff;border:1px solid var(--cal-line);border-radius:12px;padding:16px;box-shadow:var(--cal-shadow);}
  .ind-calendar .mini-head {font-family:var(--cr-font-heading);font-weight:600;font-size:16px;color:var(--cal-deep);margin:0 0 10px;cursor:pointer;text-align:center;}
  .ind-calendar .mini-head:hover {color:var(--cal-primary);}
  .ind-calendar .mini-dow {display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px;}
  .ind-calendar .mini-dow span {font-family:var(--cr-font-heading);font-size:9px;color:var(--cal-muted);text-align:center;}
  .ind-calendar .mini-days {display:grid;grid-template-columns:repeat(7,1fr);row-gap:3px;column-gap:2px;}
  .ind-calendar .mini-day {font-size:10.5px;text-align:center;color:var(--cal-ink);position:relative;padding:3px 0;border-radius:6px;cursor:default;}
  .ind-calendar .mini-day.has-events {cursor:pointer;font-weight:700;color:#fff;background:var(--ev, var(--cal-deep));box-shadow:0 1px 3px rgba(36,28,46,0.25);transition:transform .12s ease;}
  .ind-calendar .mini-day.has-events:hover {transform:scale(1.15);}

  .ind-calendar .empty-note {font-size:13.5px;color:var(--cal-muted);font-style:italic;}

  .ind-calendar .hidden {display:none !important;}

  .ind-calendar .modal-overlay {position:fixed;inset:0;background:rgba(36,28,46,0.55);display:none;align-items:center;justify-content:center;padding:20px;z-index:100;}
  .ind-calendar .modal-overlay.open {display:flex;}
  .ind-calendar .modal-card {background:#fff;max-width:440px;width:100%;border-radius:18px;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,0.35);max-height:80vh;overflow-y:auto;}
  .ind-calendar .modal-top {padding:24px 24px 18px;color:#fff;position:relative;}
  .ind-calendar .modal-top .modal-close {position:absolute;top:12px;right:14px;background:rgba(255,255,255,0.18);border:none;color:#fff;width:28px;height:28px;border-radius:50%;font-size:14px;cursor:pointer;}
  .ind-calendar .modal-top .tlabel {font-family:var(--cr-font-heading);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,0.85);margin-bottom:6px;}
  .ind-calendar .modal-top .mdate {font-family:var(--cr-font-heading);font-size:12px;margin-bottom:6px;opacity:.9;}
  .ind-calendar .modal-top h3 {font-family:var(--cr-font-heading);font-size:21px;font-weight:600;margin:0;line-height:1.2;color:#fff;}
  .ind-calendar .modal-body {padding:20px 24px 24px;}
  .ind-calendar .modal-body p {font-size:13.5px;line-height:1.6;color:var(--cal-ink);margin:0 0 16px;}
  .ind-calendar .modal-meta {margin:0 0 18px;padding:12px 14px;background:#faf7fb;border:1px solid var(--cal-line);border-radius:10px;display:flex;flex-direction:column;gap:6px;font-size:13px;line-height:1.4;}
  .ind-calendar .modal-meta .row {display:flex;gap:8px;}
  .ind-calendar .modal-meta .lbl {flex:none;width:64px;font-family:var(--cr-font-heading);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--cal-muted);padding-top:2px;}
  .ind-calendar .modal-meta .val {min-width:0;overflow-wrap:anywhere;color:var(--cal-ink);font-weight:600;}
  .ind-calendar .modal-meta a {color:var(--cal-deep);text-decoration:underline;}
  .ind-calendar .modal-cta {display:inline-flex;align-items:center;gap:8px;background:var(--cal-primary);color:#fff;text-decoration:none;font-weight:600;font-size:13px;padding:11px 18px;border-radius:100px;}
  .ind-calendar .modal-cta:hover {background:var(--cal-primary);}
  .ind-calendar .day-list-item {display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--cal-line);border-radius:10px;margin-bottom:8px;cursor:pointer;}
  .ind-calendar .day-list-item:hover {border-color:var(--cal-primary);}
  .ind-calendar .day-list-item .dot {width:9px;height:9px;border-radius:50%;flex:none;}
  .ind-calendar .day-list-item .txt strong {display:block;font-size:13.5px;font-weight:600;}
  .ind-calendar .day-list-item .txt span {font-size:11.5px;color:var(--cal-muted);}

  .ind-calendar .preview-note {max-width:1100px;margin:0 auto;padding:0 24px 50px;font-size:12px;color:var(--cal-muted);text-align:center;}

/* ---- Event listing rows, shared by the calendar List view and company.php ---- */
  .ind-co {
    --cal-primary: var(--cr-gold);
    --cal-deep:    var(--cr-gold-dark);
    --cal-teal:#2f9fb0; --cal-amber:#c98a1f; --cal-coral:#c14a72; --cal-green:#4a9e6f;
    --cal-cream:#faf7fc; --cal-ink:#241c2e; --cal-muted:#6f6577; --cal-line:#e7ddec;
    background: var(--cal-cream); color: var(--cal-ink); font-family: var(--cr-font-body);
    padding: 56px 0 72px;
  }
  .ind-co * { box-sizing: border-box; }
  .ind-co__inner { max-width: 1100px; margin: 0 auto; padding: 0 24px; }
  :is(.ind-co, .ind-calendar) h2.co-head { font-family: var(--cr-font-heading); font-weight: 600; font-size: clamp(22px, 3vw, 30px); color: var(--cal-deep); margin: 0 0 6px; }
  :is(.ind-co, .ind-calendar) .co-sub { font-size: 14px; color: var(--cal-muted); margin: 0 0 28px; }
  :is(.ind-co, .ind-calendar) h3.co-month { font-family: var(--cr-font-heading); font-weight: 600; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--cal-muted); margin: 30px 0 12px; padding-bottom: 8px; border-bottom: 1px solid var(--cal-line); }
  :is(.ind-co, .ind-calendar) h3.co-month:first-of-type { margin-top: 0; }

  :is(.ind-co, .ind-calendar) .co-event { --tc: var(--cal-deep); display: grid; grid-template-columns: 72px minmax(0,1fr) auto; gap: 20px; align-items: start; background: #fff; border: 1px solid var(--cal-line); border-radius: 14px; padding: 18px 20px; margin-bottom: 12px; box-shadow: 0 6px 20px rgba(124,58,199,0.06); }
  :is(.ind-co, .ind-calendar) .t-training { --tc: var(--cal-amber); }
  :is(.ind-co, .ind-calendar) .t-webinar { --tc: var(--cal-teal); }
  :is(.ind-co, .ind-calendar) .t-launch { --tc: var(--cal-coral); }
  :is(.ind-co, .ind-calendar) .t-event { --tc: var(--cal-green); }
  :is(.ind-co, .ind-calendar) .t-exhibition { --tc: var(--cal-deep); }
  :is(.ind-co, .ind-calendar) .co-date { background: var(--tc); color: #fff; border-radius: 10px; text-align: center; padding: 10px 4px; display: flex; flex-direction: column; gap: 2px; }
  :is(.ind-co, .ind-calendar) .co-date .d { font-family: var(--cr-font-heading); font-weight: 600; font-size: 24px; line-height: 1; }
  :is(.ind-co, .ind-calendar) .co-date .d--sm { font-size: 16px; padding: 4px 0; }
  :is(.ind-co, .ind-calendar) .co-date .m { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; opacity: .9; }
  :is(.ind-co, .ind-calendar) .co-type { display: inline-block; font-family: var(--cr-font-heading); font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--tc); font-weight: 600; margin-bottom: 4px; }
  :is(.ind-co, .ind-calendar) .co-main h3 { font-family: var(--cr-font-heading); font-weight: 600; font-size: 18px; line-height: 1.25; margin: 0 0 4px; overflow-wrap: anywhere; }
  :is(.ind-co, .ind-calendar) .co-when { font-size: 13px; font-weight: 600; color: var(--cal-muted); margin: 0 0 8px; }
  :is(.ind-co, .ind-calendar) .co-desc { font-size: 13.5px; line-height: 1.6; margin: 0; color: var(--cal-ink); }
  :is(.ind-co, .ind-calendar) .co-company { font-size: 13px; margin: 0 0 8px; color: var(--cal-muted); }
  :is(.ind-co, .ind-calendar) .co-company__lbl { font-family: var(--cr-font-heading); font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; }
  :is(.ind-co, .ind-calendar) .co-company a { color: var(--cal-deep); font-weight: 600; text-decoration: none; }
  :is(.ind-co, .ind-calendar) .co-company a:hover { text-decoration: underline; }
  :is(.ind-co, .ind-calendar) .co-company__all { margin-left: 10px; font-weight: 500; font-size: 12.5px; }
  :is(.ind-co, .ind-calendar) .co-actions { align-self: center; }

  :is(.ind-co, .ind-calendar) .co-empty { background: #fff; border: 1px dashed var(--cal-line); border-radius: 14px; padding: 32px 24px; text-align: center; font-size: 14px; color: var(--cal-muted); }
  :is(.ind-co, .ind-calendar) .co-empty a { color: var(--cal-deep); font-weight: 600; text-decoration: underline; }
  :is(.ind-co, .ind-calendar) details.co-past { margin-top: 40px; }
  :is(.ind-co, .ind-calendar) details.co-past summary { cursor: pointer; font-family: var(--cr-font-heading); font-weight: 600; font-size: 15px; color: var(--cal-deep); padding: 12px 0; }
  :is(.ind-co, .ind-calendar) .co-back { margin-top: 36px; text-align: center; font-size: 14px; }
  :is(.ind-co, .ind-calendar) .co-back a { color: var(--cal-deep); font-weight: 600; text-decoration: underline; }

  @media (max-width: 640px) {
    :is(.ind-co, .ind-calendar) .co-event { grid-template-columns: 56px minmax(0,1fr); gap: 14px; padding: 16px; }
    :is(.ind-co, .ind-calendar) .co-actions { grid-column: 1 / -1; }
    :is(.ind-co, .ind-calendar) .co-actions .ind-btn { display: block; text-align: center; }
  }

  /* Calendar list view shows the full description, keeping any line breaks */
  .ind-calendar .co-desc { white-space: pre-line; }
