/*
 * Consultation booking — front end.
 * Namespaced under .aptx-cons, and every colour/typography token matches the
 * site's 2026 design so the widget reads as part of the page, not a plugin.
 * Selectors are doubled where the theme styles bare tags (h3, table, button).
 */

.aptx-cons{
  --c-navy:#1b2a5e;
  --c-green:#0a5b3e;
  --c-green-d:#01533d;
  --c-line:#d7dade;
  --c-tint:#f2f2f3;
  --c-muted:#5a6478;
  font-family:'Inter','Helvetica Neue',Arial,sans-serif;
  color:var(--c-navy);
  max-width:1000px;
  margin:0 auto;
  box-sizing:border-box;
}
.aptx-cons *{box-sizing:border-box;}
.aptx-cons p{margin:0;}
/* The theme uppercases every <button> on the site; the choice cards are
   buttons and must read as normal sentences. Only .aptx-btn opts back in. */
.aptx-cons button{text-transform:none;letter-spacing:normal;}
.aptx-cons .aptx-btn{text-transform:uppercase;letter-spacing:.04em;}

/* ---- step rail ---- */
.aptx-cons__steps{
  display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0 0 24px;padding:0;
  font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
}
.aptx-cons__steps li{
  color:var(--c-muted);padding:6px 12px;border:1px solid var(--c-line);border-radius:999px;
}
.aptx-cons__steps li.is-done{color:var(--c-green);border-color:var(--c-green);}
.aptx-cons__steps li.is-current{background:var(--c-green);border-color:var(--c-green);color:#fff;}

/* ---- panels ---- */
.aptx-cons__panel{display:none;}
.aptx-cons__panel.is-active{display:block;}
.aptx-cons .aptx-cons__h{
  font-size:clamp(19px,2.2vw,23px);font-weight:800;color:var(--c-navy);
  margin:0 0 16px;line-height:1.25;
}
.aptx-cons__back{
  display:inline-flex;align-items:center;min-height:40px;   /* thumb-sized */
  background:none;border:0;padding:6px 4px 10px 0;color:var(--c-muted);
  font:inherit;font-size:13px;cursor:pointer;
}
.aptx-cons__back:hover{color:var(--c-green);}

/* ---- choice cards ---- */
.aptx-cons__cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;}
.aptx-cons .aptx-card{
  display:flex;flex-direction:column;gap:6px;text-align:left;cursor:pointer;
  background:#fff;border:1px solid var(--c-line);border-radius:12px;padding:16px 18px;
  font:inherit;color:inherit;transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.aptx-cons .aptx-card:hover{border-color:var(--c-green);box-shadow:0 6px 18px rgba(7,21,39,.08);transform:translateY(-1px);}
.aptx-cons .aptx-card.is-selected{border-color:var(--c-green);box-shadow:0 0 0 1px var(--c-green) inset;}
.aptx-card__title{font-size:15px;font-weight:700;line-height:1.3;}
.aptx-card__desc{font-size:13px;color:var(--c-muted);line-height:1.5;}
.aptx-card__meta{display:flex;align-items:center;gap:10px;margin-top:4px;font-size:12.5px;}
.aptx-card__len{color:var(--c-muted);}
.aptx-card__price{font-weight:700;color:var(--c-green);}
.aptx-card__role{font-size:12.5px;color:var(--c-muted);}

/* A topic card is no longer a button — it holds one button per bookable
   option, so length and price are chosen in the same click as the topic. */
.aptx-cons .aptx-card--topic{cursor:default;}
.aptx-cons .aptx-card--topic:hover{border-color:var(--c-line);box-shadow:none;transform:none;}
.aptx-card__options{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:10px;}
.aptx-cons .aptx-opt{
  display:flex;flex-direction:column;gap:2px;align-items:flex-start;
  padding:8px 12px;border:1px solid var(--c-line);border-radius:8px;background:#fff;
  font:inherit;color:var(--c-navy);cursor:pointer;transition:border-color .15s ease,background .15s ease;
}
.aptx-cons .aptx-opt:hover{border-color:var(--c-green);background:#f7faf8;}
.aptx-opt__label{font-size:13px;font-weight:700;}
.aptx-opt__meta{display:flex;align-items:baseline;gap:8px;font-size:12.5px;}
.aptx-opt__len{color:var(--c-muted);}
.aptx-opt__price{font-weight:700;color:var(--c-green);}

/* ---- calendar + slots ---- */
.aptx-cons__when{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:28px;align-items:start;}
.aptx-cal{border:1px solid var(--c-line);border-radius:12px;padding:14px;background:#fff;}
.aptx-cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.aptx-cal__month{font-weight:700;font-size:15px;}
.aptx-cons .aptx-cal__nav{
  width:32px;height:32px;border:1px solid var(--c-line);border-radius:8px;background:#fff;
  cursor:pointer;font-size:16px;line-height:1;color:var(--c-navy);
}
.aptx-cons .aptx-cal__nav:hover:not(:disabled){border-color:var(--c-green);color:var(--c-green);}
.aptx-cons .aptx-cal__nav:disabled{opacity:.35;cursor:default;}
.aptx-cal__dow,.aptx-cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.aptx-cal__dow{margin-bottom:4px;font-size:11px;color:var(--c-muted);text-align:center;text-transform:uppercase;letter-spacing:.04em;}
.aptx-cons .aptx-cal__day{
  aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;
  border:1px solid transparent;border-radius:8px;background:var(--c-tint);
  font:inherit;font-size:13.5px;color:var(--c-muted);cursor:default;
}
.aptx-cons .aptx-cal__day.is-open{background:#fff;border-color:var(--c-line);color:var(--c-navy);font-weight:600;cursor:pointer;}
.aptx-cons .aptx-cal__day.is-open:hover{border-color:var(--c-green);color:var(--c-green);}
.aptx-cons .aptx-cal__day.is-selected{background:var(--c-green);border-color:var(--c-green);color:#fff;}
.aptx-cal__day--empty{background:none;}

.aptx-slots__tz{font-size:12.5px;color:var(--c-muted);margin-bottom:10px !important;}
.aptx-slots__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;}
.aptx-cons .aptx-slot{
  padding:10px 8px;border:1px solid var(--c-line);border-radius:8px;background:#fff;
  font:inherit;font-size:13.5px;font-weight:600;color:var(--c-navy);cursor:pointer;
}
.aptx-cons .aptx-slot:hover{border-color:var(--c-green);color:var(--c-green);}
.aptx-slots__empty{font-size:13.5px;color:var(--c-muted);}

/* ---- form ---- */
.aptx-cons__summary{
  background:var(--c-tint);border-radius:10px;padding:12px 14px;margin-bottom:16px !important;
  font-size:13.5px;color:var(--c-navy);
}
.aptx-form__row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.aptx-form label{display:block;margin-bottom:14px;font-size:13px;}
.aptx-form label>span{display:block;margin-bottom:5px;color:var(--c-muted);font-weight:600;}
.aptx-cons .aptx-form input[type=text],
.aptx-cons .aptx-form input[type=email],
.aptx-cons .aptx-form input[type=tel],
.aptx-cons .aptx-form select,
.aptx-cons .aptx-form textarea{
  width:100%;padding:10px 12px;border:1.5px solid var(--c-line);border-radius:8px;
  font:inherit;font-size:14px;color:var(--c-navy);background:#fff;
}
.aptx-cons .aptx-form input:focus,
.aptx-cons .aptx-form select:focus,
.aptx-cons .aptx-form textarea:focus{outline:2px solid var(--c-green);outline-offset:1px;border-color:var(--c-green);}
.aptx-form__check{display:flex;gap:9px;align-items:flex-start;font-size:13px;}
.aptx-form__check input{margin-top:2px;flex:0 0 auto;}
/* Override the generic "label > span is a field caption" rule — here the span
   is the checkbox's own text and must sit beside it, not above. */
.aptx-cons .aptx-form__check>span{display:inline;margin:0;color:var(--c-muted);font-weight:400;line-height:1.45;}
/* Honeypot: hidden the accessible way rather than shoved off-canvas, so it
   cannot influence document width or be announced by screen readers. */
.aptx-form__hp{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;}
.aptx-form__error{color:#b32d2e;font-size:13.5px;margin:0 0 12px !important;}
.aptx-form__note{margin-top:12px !important;font-size:12px;color:var(--c-muted);}

.aptx-cons .aptx-btn{
  display:inline-block;padding:14px 26px;border:0;border-radius:9px;
  background:var(--c-green);color:#fff;font:inherit;font-size:14px;font-weight:800;
  letter-spacing:.04em;text-transform:uppercase;cursor:pointer;
}
.aptx-cons .aptx-btn:hover{background:var(--c-green-d);}
.aptx-cons .aptx-btn:disabled{opacity:.6;cursor:default;}
.aptx-cons .aptx-btn--ghost{background:none;border:1.5px solid var(--c-line);color:var(--c-navy);}
.aptx-cons .aptx-btn--ghost:hover{border-color:#b32d2e;color:#b32d2e;background:none;}

/* ---- done + manage ---- */
.aptx-done{text-align:center;padding:24px 0;}
.aptx-done__mark{
  width:56px;height:56px;margin:0 auto 16px;border-radius:50%;
  background:var(--c-green);color:#fff;font-size:26px;line-height:56px;
}
.aptx-done__when{font-size:15px;font-weight:700;margin-bottom:16px !important;}
.aptx-done__links{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;font-size:13.5px;}
.aptx-done__links a{color:var(--c-green);font-weight:600;}

.aptx-cons__notice{
  background:#eef6f1;border:1px solid var(--c-green);border-radius:8px;
  padding:10px 14px;margin-bottom:14px !important;font-size:13.5px;
}
.aptx-cons .aptx-manage{border-collapse:collapse;margin-bottom:18px;font-size:14px;}
.aptx-cons .aptx-manage td{padding:7px 16px 7px 0;color:var(--c-muted);}
.aptx-cons .aptx-manage td+td{color:var(--c-navy);}

/* ---- responsive ---- */
@media (max-width:860px){
  .aptx-cons__when{grid-template-columns:1fr;gap:20px;}
  .aptx-cal{max-width:360px;}
}
@media (max-width:560px){
  .aptx-cons__cards{grid-template-columns:1fr;}
  .aptx-form__row{grid-template-columns:1fr;gap:0;}
  .aptx-slots__list{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));}
  .aptx-cons .aptx-btn{width:100%;}
}

@media (prefers-reduced-motion:reduce){
  .aptx-cons .aptx-card{transition:none;}
  .aptx-cons .aptx-card:hover{transform:none;}
}
