/*
 * Courses: the hub at /courses, the course landing page, and the card shared by
 * both. Loaded sitewide from functions.php after hubs.css, which still carries
 * the older text-only card rules this file supersedes.
 *
 * The card is picture-first now. A 27-row catalogue rendered as text blocks read
 * as a list of links, which is what it was; an image gives each course a face
 * and makes the grid scannable at a glance.
 */

/* ------------------------------------------------------------------ card --- */

.airr-coursegrid{margin:0}
.airr-coursegrid--3{display:grid;gap:20px;
  grid-template-columns:repeat(auto-fill,minmax(288px,1fr))}
/* JetEngine's listing grid ships its own float/width layout; ours is a grid. */
.airr-coursegrid .jet-listing-grid__items{display:grid!important;gap:20px;margin:0!important;
  grid-template-columns:repeat(auto-fill,minmax(288px,1fr))}
.airr-coursegrid .jet-listing-grid__item{width:auto!important;max-width:none!important;
  padding:0!important;margin:0!important}

.airr-course{background:var(--a-card,#fff);border:1px solid var(--a-rule,#dde3ea);
  border-radius:14px;overflow:hidden;height:100%;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.airr-course:hover{border-color:var(--a-accent,#2b4acb);
  box-shadow:0 10px 28px rgba(18,22,30,.10);transform:translateY(-2px)}
.airr-course-link{display:flex;flex-direction:column;gap:9px;height:100%;
  padding:16px 16px 18px;text-decoration:none;color:inherit}

.airr-course-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.airr-course-kind{font-size:.64rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--a-muted,#657084);border:1px solid var(--a-rule,#dde3ea);
  background:var(--a-card2,#eef1f5);border-radius:5px;padding:3px 8px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70%}
.airr-course-kind--own{color:var(--a-accent,#2b4acb);border-color:var(--a-accent,#2b4acb);
  background:var(--a-accent-soft,#e8ecfb)}
.airr-course-price{font-size:.78rem;font-weight:750;color:var(--a-ink,#12161e);white-space:nowrap}
.airr-course-price--free{color:var(--a-good,#0c6b4f)}

.airr-course-media{position:relative;display:block;border-radius:9px;overflow:hidden;
  background:var(--a-card2,#eef1f5);aspect-ratio:3/2}
.airr-course-media img{display:block;width:100%;height:100%;object-fit:cover;
  transition:transform .5s ease}
.airr-course:hover .airr-course-media img{transform:scale(1.035)}
.airr-course-media--fb{position:absolute;inset:0;display:flex;align-items:center;
  justify-content:center;font-size:2rem;font-weight:800;letter-spacing:.04em;
  color:var(--a-muted,#657084);background:var(--a-card2,#eef1f5)}

.airr-course h3{margin:2px 0 0;font-size:1.02rem;font-weight:760;line-height:1.3;
  letter-spacing:-.014em;color:var(--a-ink,#12161e)}
.airr-course:hover h3{color:var(--a-accent,#2b4acb)}
.airr-course-by{margin:0;font-size:.8rem;font-weight:700;color:var(--a-ink2,#3a434f)}
.airr-course-blurb{margin:0;font-size:.855rem;line-height:1.5;color:var(--a-muted,#657084);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.airr-course-foot{display:flex;flex-wrap:wrap;align-items:center;gap:7px;
  margin-top:auto;padding-top:10px}
.airr-course-rating{display:inline-flex;align-items:center;gap:5px;font-size:.8rem}
.airr-course-rating b{font-weight:750;color:var(--a-ink,#12161e)}
.airr-course-rating-n{color:var(--a-muted,#657084);font-size:.76rem}
.airr-course-hours{font-size:.78rem;color:var(--a-muted,#657084);font-variant-numeric:tabular-nums}

.airr-course--big{border-width:2px}
.airr-course--big .airr-course-link{padding:18px 18px 20px;gap:11px}
.airr-course--big h3{font-size:1.16rem}
.airr-course--big .airr-course-blurb{-webkit-line-clamp:3;font-size:.885rem}

/* ------------------------------------------------------------- hub: hero --- */

.airr-chub-hero{padding:34px 0 8px;border-bottom:1px solid var(--a-rule,#dde3ea);margin-bottom:26px}
.airr-chub-hero-in{max-width:760px}
.airr-chub-hero h1{margin:0 0 10px;font-size:clamp(1.9rem,4.2vw,2.65rem);font-weight:800;
  line-height:1.1;letter-spacing:-.03em;color:var(--a-ink,#12161e)}
.airr-chub-sub{margin:0 0 12px;font-size:1.06rem;font-weight:650;color:var(--a-ink2,#3a434f);
  line-height:1.4}
.airr-chub-intro{margin:0;font-size:.95rem;line-height:1.62;color:var(--a-muted,#657084)}
.airr-chub-stats{display:flex;flex-wrap:wrap;gap:28px;margin:22px 0 24px;padding:0;list-style:none}
.airr-chub-stats li{display:flex;flex-direction:column;gap:2px}
.airr-chub-stats b{font-size:1.55rem;font-weight:800;line-height:1;color:var(--a-ink,#12161e);
  font-variant-numeric:tabular-nums}
.airr-chub-stats span{font-size:.76rem;font-weight:650;letter-spacing:.07em;text-transform:uppercase;
  color:var(--a-muted,#657084)}

.airr-chub-featured{margin-bottom:34px}
.airr-chub-all{margin-top:8px}
.airr-chub-count{font-size:.78rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:var(--a-muted,#657084)}

/* ---------------------------------------------------------- hub: filters --- */

.airr-chub-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:4px 0 16px}
.airr-chub-search{flex:1 1 320px;min-width:240px}
.airr-chub-search input[type="text"],.airr-chub-search input[type="search"]{
  width:100%;padding:11px 14px;font-size:.92rem;color:var(--a-ink,#12161e);
  background:var(--a-card,#fff);border:1px solid var(--a-rule,#dde3ea);border-radius:10px}
.airr-chub-search input:focus{outline:2px solid var(--a-accent,#2b4acb);outline-offset:-1px;
  border-color:var(--a-accent,#2b4acb)}
.airr-chub-clear .jet-remove-all-filters__button,
.airr-chub-clear button{font-size:.83rem;font-weight:650;color:var(--a-muted,#657084);
  background:none;border:1px solid var(--a-rule,#dde3ea);border-radius:9px;
  padding:9px 14px;cursor:pointer}
.airr-chub-clear button:hover{color:var(--a-ink,#12161e);border-color:var(--a-rule2,#c4cdd8)}

.airr-chipfilters{display:flex;flex-direction:column;gap:10px;margin:0 0 14px}
.airr-chipgroup{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.airr-chipgroup-label{font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--a-muted,#657084);min-width:52px}
/*
 * JetSmartFilters renders a vertical checkbox list. Chips are the same control
 * with the native box hidden and the label doing the work, so filtering stays
 * Crocoblock's job and only the skin is ours.
 */
.airr-chipgroup .jet-checkboxes-list{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;
  list-style:none}
.airr-chipgroup .jet-checkboxes-list__row{margin:0}
.airr-chipgroup .jet-checkboxes-list__label{display:inline-flex;align-items:center;gap:6px;
  margin:0;padding:7px 14px;font-size:.83rem;font-weight:650;line-height:1;
  color:var(--a-ink2,#3a434f);background:var(--a-card,#fff);
  border:1px solid var(--a-rule,#dde3ea);border-radius:999px;cursor:pointer;
  transition:border-color .15s ease,background .15s ease,color .15s ease}
.airr-chipgroup .jet-checkboxes-list__label:hover{border-color:var(--a-rule2,#c4cdd8);
  background:var(--a-card2,#eef1f5)}
.airr-chipgroup .jet-checkboxes-list__input{position:absolute;opacity:0;width:0;height:0}
.airr-chipgroup .jet-checkboxes-list__decorator{display:none}
.airr-chipgroup .jet-checkboxes-list__label:has(.jet-checkboxes-list__input:checked),
.airr-chipgroup .jet-checkboxes-list__row.jet-filter-active .jet-checkboxes-list__label{
  color:#fff;background:var(--a-ink,#12161e);border-color:var(--a-ink,#12161e)}
.airr-chipgroup .jet-checkboxes-list__label:focus-within{outline:2px solid var(--a-accent,#2b4acb);
  outline-offset:2px}

.airr-activebar{margin:0 0 16px}
.airr-activebar:empty{display:none}
.airr-pager{margin-top:26px;display:flex;justify-content:center}

/* -------------------------------------------------- course page: layout --- */

.airr-coursepage .airr-csec{margin-top:34px;scroll-margin-top:90px}
.airr-coursepage .airr-csec .airr-hsec-head{margin-bottom:12px}

.airr-chero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:36px;align-items:center;padding:26px 0 8px}
.airr-chero-copy{min-width:0}
.airr-chero-tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}
.airr-chero h1{margin:0 0 12px;font-size:clamp(1.75rem,3.6vw,2.5rem);font-weight:800;
  line-height:1.12;letter-spacing:-.03em;color:var(--a-ink,#12161e)}
.airr-chero-tag{margin:0 0 14px;font-size:1.05rem;font-weight:650;line-height:1.42;
  color:var(--a-ink2,#3a434f)}
.airr-chero-intro{margin:0 0 18px;font-size:.945rem;line-height:1.65;color:var(--a-muted,#657084)}
.airr-chero-by{display:flex;align-items:center;gap:11px;margin:0 0 14px}
.airr-chero-mark{width:44px;height:44px;object-fit:contain;border-radius:9px;
  background:#fff;border:1px solid var(--a-rule,#dde3ea);padding:5px;flex:0 0 auto}
.airr-chero-by span{display:flex;flex-direction:column;gap:1px;min-width:0}
.airr-chero-by b{font-size:.93rem;font-weight:750;color:var(--a-ink,#12161e)}
.airr-chero-by em{font-style:normal;font-size:.8rem;color:var(--a-muted,#657084)}
.airr-chero-rating{margin:0 0 16px}
.airr-chero-cta{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}
.airr-chero-note{margin:0;font-size:.78rem;line-height:1.5;color:var(--a-muted,#657084)}

.airr-chero-art{min-width:0}
.airr-chero-art img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;
  border-radius:14px;border:1px solid var(--a-rule,#dde3ea);
  box-shadow:0 14px 40px rgba(18,22,30,.12)}
.airr-chero-art:empty{display:none}

/* ---------------------------------------------- course page: what/who/facts --- */

.airr-clearn{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:12px 26px;margin:0;padding:0;list-style:none}
.airr-clearn li{display:flex;align-items:flex-start;gap:10px;font-size:.92rem;line-height:1.55;
  color:var(--a-ink2,#3a434f)}
.airr-clearn-tick{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  width:21px;height:21px;margin-top:1px;border-radius:50%;font-size:.72rem;font-weight:800;
  color:var(--a-good,#0c6b4f);background:var(--a-good-bg,#dff1ea)}

.airr-caud{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.airr-caud-item{display:flex;flex-direction:column;gap:5px;padding:16px 17px;
  background:var(--a-card,#fff);border:1px solid var(--a-rule,#dde3ea);border-radius:12px}
.airr-caud-item b{font-size:.93rem;font-weight:760;color:var(--a-ink,#12161e)}
.airr-caud-item span{font-size:.865rem;line-height:1.55;color:var(--a-muted,#657084)}

.airr-cfacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;
  background:var(--a-rule,#dde3ea);border:1px solid var(--a-rule,#dde3ea);border-radius:12px;
  overflow:hidden}
.airr-cfact{display:flex;flex-direction:column;gap:5px;padding:16px 18px;background:var(--a-card,#fff)}
.airr-cfact b{font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--a-muted,#657084)}
.airr-cfact span{font-size:.94rem;font-weight:650;color:var(--a-ink,#12161e);line-height:1.4}

.airr-cprov{display:flex;gap:18px;align-items:flex-start;padding:20px;
  background:var(--a-card,#fff);border:1px solid var(--a-rule,#dde3ea);border-radius:13px}
.airr-cprov-mark{width:66px;height:66px;object-fit:contain;flex:0 0 auto;
  background:#fff;border:1px solid var(--a-rule,#dde3ea);border-radius:11px;padding:8px}
.airr-cprov-body{min-width:0;display:flex;flex-direction:column;gap:12px}
.airr-cprov-body p{margin:0;font-size:.92rem;line-height:1.6;color:var(--a-ink2,#3a434f)}
.airr-cprov-links{display:flex;flex-wrap:wrap;gap:10px}

/* ------------------------------------------------- course page: ratings --- */

.airr-crate-summary{display:grid;grid-template-columns:auto minmax(220px,340px);gap:28px;
  align-items:center;padding:20px 22px;margin-bottom:18px;
  background:var(--a-card,#fff);border:1px solid var(--a-rule,#dde3ea);border-radius:13px}
.airr-crate-score{display:flex;flex-direction:column;gap:4px}
.airr-crate-score b{font-size:2.6rem;font-weight:800;line-height:1;color:var(--a-ink,#12161e);
  font-variant-numeric:tabular-nums}
.airr-crate-score span{font-size:.82rem;color:var(--a-muted,#657084)}
.airr-crate-bars{display:flex;flex-direction:column;gap:6px}
.airr-crate-bar{display:grid;grid-template-columns:14px 1fr 28px;align-items:center;gap:9px}
.airr-crate-bar em{font-style:normal;font-size:.78rem;font-weight:700;color:var(--a-muted,#657084);
  text-align:right}
.airr-crate-bar i{display:block;height:7px;border-radius:99px;background:var(--a-card2,#eef1f5);
  overflow:hidden}
.airr-crate-bar i span{display:block;height:100%;background:var(--a-accent,#2b4acb);border-radius:99px}
.airr-crate-bar u{text-decoration:none;font-size:.76rem;color:var(--a-muted,#657084);
  font-variant-numeric:tabular-nums}

.airr-crate{display:flex;flex-direction:column;gap:10px;padding:18px 20px;
  background:var(--a-card2,#eef1f5);border:1px solid var(--a-rule,#dde3ea);border-radius:13px}
.airr-crate > b{font-size:.95rem;font-weight:760;color:var(--a-ink,#12161e)}
.airr-crate--out p{margin:0;font-size:.9rem;line-height:1.6;color:var(--a-ink2,#3a434f)}
.airr-crate--out a{color:var(--a-accent,#2b4acb);font-weight:650}
.airr-crate-stars{display:flex;gap:3px}
.airr-crate-star{font-size:1.7rem;line-height:1;padding:0 2px;background:none;border:0;
  cursor:pointer;color:var(--a-rule2,#c4cdd8);transition:color .12s ease}
.airr-crate-star.is-on{color:#e8a317}
.airr-crate-star:focus-visible{outline:2px solid var(--a-accent,#2b4acb);outline-offset:2px}
.airr-crate-note{width:100%;padding:10px 12px;font:inherit;font-size:.9rem;resize:vertical;
  color:var(--a-ink,#12161e);background:var(--a-card,#fff);
  border:1px solid var(--a-rule,#dde3ea);border-radius:9px}
.airr-crate-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.airr-crate-msg{font-size:.85rem;color:var(--a-muted,#657084)}

.airr-cnotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;
  margin-top:18px}
.airr-cnote{margin:0;padding:16px 17px;background:var(--a-card,#fff);
  border:1px solid var(--a-rule,#dde3ea);border-radius:12px}
.airr-cnote-top{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:8px}
.airr-cnote-top b{font-size:.86rem;font-weight:700;color:var(--a-ink,#12161e)}
.airr-cnote-top time{font-size:.78rem;color:var(--a-muted,#657084);margin-left:auto}
.airr-cnote blockquote{margin:0;font-size:.9rem;line-height:1.58;color:var(--a-ink2,#3a434f)}

/* ---------------------------------------------------------------- mobile --- */

@media (max-width:860px){
  .airr-chero{grid-template-columns:1fr;gap:22px;padding-top:18px}
  /* Picture first on a phone: it is the fastest signal of what the course is. */
  .airr-chero-art{order:-1}
  .airr-crate-summary{grid-template-columns:1fr;gap:16px}
}
@media (max-width:640px){
  .airr-coursegrid--3,.airr-coursegrid .jet-listing-grid__items{
    grid-template-columns:1fr;gap:16px}
  .airr-chub-stats{gap:20px}
  .airr-chipgroup-label{min-width:0;width:100%}
}
