/* Generated from tracker demo.css by sync-publication.js. */
.plan-grid{
  display: grid;
  grid-auto-flow: column;
  grid-template-rows: repeat(19, auto);
  grid-template-columns: minmax(120px, 1.1fr);
  grid-auto-columns: minmax(0, 1fr);
  border: 1px solid rgba(13, 148, 136, 0.25);
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 15px;
  font-size: 14px;
}

.plan-col{
  display: contents;
}

.plan-cell{
  padding: 9px 10px;
  border-bottom: 1px solid rgba(13, 148, 136, 0.15);
  border-left: 1px solid rgba(13, 148, 136, 0.15);
  display: flex;
  align-items: center;
}

.plan-col-features .plan-cell{
  border-left: none;
  color: #475569;
}

.plan-cell-head{
  display: block;
  background: rgba(13, 148, 136, 0.08);
  padding-top: 12px;
  padding-bottom: 12px;
}

.plan-cell-head .plan-name{
  font-weight: 700;
  font-size: 15px;
}

.plan-cell-head .plan-price{
  color: #0d9488;
  font-weight: 600;
}

.plan-cell-tagline{
  color: #64748b;
  font-size: 13px;
  font-style: italic;
  align-items: flex-start;
}

.plan-cell-cta{
  border-bottom: none;
  padding: 10px;
}

.plan-cell-cta .checkout-button{
  border-radius: 8px;
}

.plan-cell-label{
  display: none;
}

/* Calls, keys and the data that comes back are not three peer features, they are three
   consequences of holding one key. Listed flat they read as a shopping list and a visitor has
   to work out for themselves which ones the API row governs. A banded header plus an indent
   says it instead. Every column carries its own header cell because the grid is column-major
   and a row cannot be spanned. */
/* Scoped to .plan-grid only to outrank `.plan-col-features .plan-cell`, which sets the label
   colour and would otherwise win on specificity and leave the header slate like every row. */
.plan-grid .plan-cell-group{
  background: rgba(13, 148, 136, 0.05);
  font-weight: 700;
  font-size: 13px;
  color: #0f766e;
}

.plan-col-features .plan-cell-sub{
  padding-left: 24px;
  position: relative;
}

/* One continuous rule down the nested rows rather than a mark per row: the spine is what
   makes the group read as a group, and it closes at the last child on its own. */
.plan-col-features .plan-cell-sub::before{
  content: "";
  position: absolute;
  left: 11px;
  top: 0;
  bottom: 0;
  border-left: 2px solid rgba(13, 148, 136, 0.3);
}

/* One cell, several things you get. A comma list reads as prose and a buyer skims past it, so
   the items stack and each carries its own tick. The column direction is what makes them lines
   rather than a wrapped sentence, since .plan-cell is itself a flex row. */
.plan-list{
  display: flex;
  flex-direction: column;
  gap: 3px;
  text-align: left;
}

/* The one mark for "not included", anywhere on the page. It used to be ⛔, which renders as a
   red prohibition sign: four of them stacked down the column whose button reads "Create a free
   account" made the free plan look like a warning notice. Muted grey states the same fact and
   lets the ✔️ carry the emphasis. The glyph is the whole cell, so it needs the aria-label. */
.plan-no{
  color: #94a3b8;
  font-weight: 600;
}

.plan-col-recommended .plan-cell-head{
  background: rgba(13, 148, 136, 0.18);
}

.plan-badge{
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  border-radius: 999px;
  background: #0d9488;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  vertical-align: middle;
}

/* A plan a visitor cannot buy still needs the row to line up, so the footer cell
   stays and carries a note instead of a button. */
.plan-note{
  font-size: 13px;
  color: #64748b;
  text-align: center;
  width: 100%;
}

@media screen and (max-width: 600px){
  .plan-grid{
    display: block;
    border: none;
    border-radius: 0;
  }

  .plan-col{
    display: block;
    border: 1px solid rgba(13, 148, 136, 0.25);
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 12px;
  }

  /* After .plan-col, not before: the label column carries both classes and these rules
     have equal specificity, so the later one is the one that applies. */
  .plan-col-features{
    display: none;
  }

  .plan-cell{
    border-left: none;
    justify-content: space-between;
    gap: 10px;
  }

  .plan-cell-label{
    display: inline;
    color: #475569;
    flex: 1 1 auto;
  }

  /* On a card the group header is a label rather than a cell, so it takes the row colour above
     and reads as one more feature line instead of the divider it is. */
  .plan-cell-group .plan-cell-label{
    color: #0f766e;
  }

  .plan-cell-tagline{
    display: block;
  }
}

/* ==========================================
   COMMERCIAL BAND
   The one plan whose product is licence rights rather than volume. It sits outside
   .plan-grid because the grid is column-major over a fixed row count, so a fifth column
   would have to answer all nineteen rows and most of them are not what this plan sells.
   ========================================== */

.plan-commercial{
  border: 1px solid rgba(13, 148, 136, 0.35);
  border-radius: 12px;
  background: rgba(13, 148, 136, 0.05);
  padding: 14px 16px;
  margin-bottom: 15px;
  font-size: 14px;
}

.plan-commercial-head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.plan-commercial-name{
  font-weight: 700;
  font-size: 16px;
}

.plan-commercial-tagline{
  margin: 4px 0 0 0;
  color: #64748b;
  font-size: 13px;
  font-style: italic;
}

.plan-commercial-price{
  color: #0d9488;
  font-weight: 700;
  font-size: 22px;
  white-space: nowrap;
}

.plan-commercial-price span{
  font-size: 14px;
  font-weight: 600;
}

/* Two columns of ticks rather than one long list, so the licence rights at the top stay
   on the same screen as the price. */
.plan-commercial-list{
  list-style: none;
  padding: 0;
  margin: 12px 0 0 0;
  columns: 2;
  column-gap: 24px;
}

.plan-commercial-list li{
  break-inside: avoid;
  padding: 3px 0 3px 20px;
  position: relative;
}

.plan-commercial-list li::before{
  content: "✔️";
  position: absolute;
  left: 0;
}

.plan-commercial-cta{
  margin-top: 14px;
}

.plan-commercial-cta .checkout-button{
  border-radius: 8px;
  max-width: 240px;
}

@media screen and (max-width: 600px){
  .plan-commercial-list{
    columns: 1;
  }

  .plan-commercial-cta .checkout-button{
    max-width: none;
  }
}

/* ==========================================
   PLANS ACCORDION
   ========================================== */
