:root{
  --ink: #17140f;
  --bg: #201a12;
  --card: #201a12;
  --card-edge: #302819;
  --paper: #ece3d0;
  --paper-dim: #a99c81;
  --gold: #cda256;
  --gold-soft: #8a7040;
  --canary: #f5e400;
}

*{ box-sizing: border-box; }

html, body{
  margin:0;
  min-height:100vh;
  background: var(--bg);
  color: var(--paper);
  font-family: "Work Sans", ui-sans-serif, system-ui, sans-serif;
}

body{
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding: 36px 16px 60px;
}

.page{
  width:100%;
  max-width: 460px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:14px;
}

.tabs{
  display:flex;
  gap:4px;
  background: var(--card);
  border: 1px solid var(--card-edge);
  border-radius: 14px;
  padding: 4px;
  overflow-x:auto;
}

.tab{
  flex: 1 1 0;
  appearance:none;
  border:none;
  background:transparent;
  color: var(--paper-dim);
  font-family:"Zen Kaku Gothic New", sans-serif;
  font-weight:700;
  font-size:.78rem;
  letter-spacing:.06em;
  padding: 9px 6px;
  border-radius: 10px;
  cursor:pointer;
  white-space:nowrap;
}

.tab:hover{ color: var(--paper); }

.tab.active{
  background: linear-gradient(180deg, #382c1a, #2a2113);
  color: var(--gold);
  border: 1px solid var(--gold-soft);
}

.tab:focus-visible{ outline: 2px solid var(--gold); outline-offset: 2px; }

.toolbar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:10px;
}

.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  appearance:none;
  cursor:pointer;
  background: linear-gradient(180deg, #382c1a, #2a2113);
  border: 1px solid var(--gold-soft);
  color: var(--gold);
  font-family:"Work Sans", sans-serif;
  font-weight:600;
  font-size:.82rem;
  letter-spacing:.02em;
  padding: 9px 18px;
  border-radius: 999px;
  text-decoration:none;
}

.btn:hover{ border-color: var(--gold); }
.btn:focus-visible{ outline: 2px solid var(--gold); outline-offset: 2px; }
.btn:disabled{ opacity:.55; cursor:default; }
.btn svg{ width:15px; height:15px; }

.btn--ghost{
  background: transparent;
  color: var(--paper-dim);
  border-color: var(--card-edge);
}

.status{
  min-height: 1em;
  margin:0;
  text-align:center;
  font-size:.78rem;
  color: var(--paper-dim);
}
.status.status--ok{ color: #8fb787; }
.status.status--err{ color: #d98a76; }

@media (prefers-reduced-motion: no-preference){
  .badge{ transition: transform .2s ease, border-color .2s ease; }
  .row:hover .badge{ transform: translateY(-2px); }
}

.card{
  position: relative;
  background: var(--card);
  border: 1px solid var(--card-edge);
  border-radius: 22px;
  padding: 24px 24px 18px;
  box-shadow: 0 40px 70px -30px rgba(0,0,0,.7), 0 1px 0 rgba(255,255,255,.03) inset;
  overflow: hidden;
}

.watermark{
  position:absolute;
  top: -70px;
  right: -70px;
  width: 240px;
  height: 240px;
  opacity: .06;
  pointer-events:none;
}

.eyebrow{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:"Zen Kaku Gothic New", sans-serif;
  font-weight:700;
  font-size:.92rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color: var(--gold);
  margin: 2px 0 4px;
}

.eyebrow::before{
  content:"";
  width:16px;
  height:1px;
  background: var(--gold-soft);
}

.schedule{
  list-style:none;
  margin:0;
  padding:0;
}

/* Dias com mais de 5 aulas: duas colunas (o JS separa em dois <ul>).
   Em telas estreitas as colunas empilham e o cartão volta à largura normal. */
.schedule-cols .schedule + .schedule .row:first-child{
  border-top: 1px solid var(--card-edge);
  padding-top: 12px;
}

@media (min-width: 720px){
  .day-panel--wide{
    width: min(860px, calc(100vw - 32px));
    left: 50%;
    transform: translateX(-50%);
  }
  .schedule-cols{
    display:grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 40px;
  }
  .schedule-cols .schedule + .schedule .row:first-child{
    border-top: none;
    padding-top: 8px;
  }
}

.schedule--empty{
  padding: 20px 0;
  color: var(--paper-dim);
  font-size:.9rem;
  text-align:center;
}

.row{
  display:grid;
  grid-template-columns: 52px 70px 1fr;
  align-items:center;
  gap: 14px;
  padding: 12px 0;
  border-top: 1px solid var(--card-edge);
}

.row:first-child{ border-top:none; padding-top: 8px; }

.badge{
  width:52px;
  height:52px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background: transparent;
  border: 3.5px solid var(--ring, var(--gold-soft));
  flex-shrink:0;
}

.badge svg{ width:36px; height:36px; color: var(--canary); }

.time{
  font-family:"Zen Kaku Gothic New", sans-serif;
  font-weight:700;
  font-size:1.55rem;
  font-variant-numeric: tabular-nums;
  color: var(--paper);
}

.info{ min-width:0; }

.activity{
  display:block;
  font-weight:600;
  font-size:1.08rem;
  color: var(--paper);
  line-height:1.3;
}

.instructor{
  display:block;
  margin-top:2px;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.05em;
  text-transform:uppercase;
  color: var(--canary);
}

/* ===== Área de edição (admin) ===== */

.gate{
  background: var(--card);
  border: 1px solid var(--card-edge);
  border-radius: 22px;
  padding: 32px 24px;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
}

.gate h1{
  font-family:"Zen Kaku Gothic New", sans-serif;
  font-size:1.15rem;
  margin:0;
  color: var(--paper);
}

.gate p{
  margin:0;
  color: var(--paper-dim);
  font-size:.88rem;
  max-width:34ch;
}

.editor-day{
  background: var(--card);
  border: 1px solid var(--card-edge);
  border-radius: 18px;
  padding: 16px;
}

.editor-day h2{
  font-family:"Zen Kaku Gothic New", sans-serif;
  font-size:.82rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color: var(--gold);
  margin: 0 0 10px;
}

.editor-row{
  display:grid;
  grid-template-columns: 90px 1.2fr 1fr auto;
  gap:8px;
  align-items:center;
  padding: 8px 0;
  border-top: 1px solid var(--card-edge);
}
.editor-row:first-of-type{ border-top:none; }

.editor-row input,
.editor-row select{
  width:100%;
  background: var(--ink);
  border: 1px solid var(--card-edge);
  color: var(--paper);
  border-radius: 8px;
  padding: 7px 8px;
  font-size:.82rem;
  font-family: inherit;
}

.editor-row .row-remove{
  appearance:none;
  background:transparent;
  border:1px solid var(--card-edge);
  color: var(--paper-dim);
  border-radius:8px;
  width:30px;
  height:30px;
  cursor:pointer;
  font-size:1rem;
  line-height:1;
}
.editor-row .row-remove:hover{ color:#d98a76; border-color:#d98a76; }

.editor-add{
  margin-top:10px;
  width:100%;
  appearance:none;
  background:transparent;
  border:1px dashed var(--card-edge);
  color: var(--paper-dim);
  border-radius:10px;
  padding:8px;
  cursor:pointer;
  font-size:.8rem;
}
.editor-add:hover{ color: var(--gold); border-color: var(--gold-soft); }

.save-bar{
  position:sticky;
  bottom:12px;
  display:flex;
  justify-content:center;
  gap:10px;
  padding-top:6px;
}

/* ===== Comum: hub e aula experimental ===== */

html{ color-scheme: dark; }
[hidden]{ display:none !important; }
.nowrap{ white-space:nowrap; }

.back-link{
  align-self:flex-start;
  color: var(--paper-dim);
  font-size:.82rem;
  text-decoration:none;
  padding:4px 0;
}
.back-link:hover{ color: var(--gold); }
.back-link:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; border-radius:4px; }

/* ===== Hub (/pakua) ===== */

.page--hub{ gap:28px; padding-top:4vh; }

.hub-head{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  text-align:center;
}

.hub-logo{
  width:min(320px, 82vw);
  height:auto;
}

.hub-title{
  margin:6px 0 0;
  font-family:"Zen Kaku Gothic New", sans-serif;
  font-weight:900;
  font-size:clamp(1.7rem, 6vw, 2.1rem);
  letter-spacing:.02em;
  color: var(--paper);
}

.hub-sub{
  margin:0;
  max-width:36ch;
  font-size:.92rem;
  line-height:1.5;
  color: var(--paper-dim);
}

.hub-cards{ display:flex; flex-direction:column; gap:12px; }

.hub-card{
  display:grid;
  grid-template-columns: 48px 1fr auto;
  align-items:center;
  gap:16px;
  padding:20px;
  background: var(--card);
  border:1px solid var(--card-edge);
  border-radius:20px;
  color: var(--paper);
  text-decoration:none;
  box-shadow: 0 30px 60px -36px rgba(0,0,0,.8);
}
.hub-card:hover{ border-color: var(--gold-soft); }
.hub-card:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

.hub-card--primary{
  background: linear-gradient(180deg, #3a2c18, #2a2013);
  border-color: var(--gold-soft);
}
.hub-card--primary:hover{ border-color: var(--gold); }

.hub-card-icon{
  width:48px;
  height:48px;
  border-radius:50%;
  display:grid;
  place-items:center;
  border:2px solid var(--gold-soft);
  color: var(--gold);
}
.hub-card--primary .hub-card-icon{ border-color: var(--gold); background: rgba(205,162,86,.12); }
.hub-card-icon svg{ width:24px; height:24px; }

.hub-card-body{ display:flex; flex-direction:column; gap:3px; min-width:0; }

.hub-card-title{
  font-family:"Zen Kaku Gothic New", sans-serif;
  font-weight:700;
  font-size:1.08rem;
  line-height:1.25;
}

.hub-card-text{ font-size:.84rem; line-height:1.4; color: var(--paper-dim); }
.hub-card-arrow{ font-size:1.2rem; color: var(--gold); }

.hub-foot{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  margin-top:8px;
  font-size:.8rem;
  text-align:center;
  color: var(--paper-dim);
}
.hub-foot p{ margin:0; }
.hub-foot a{ color: var(--paper-dim); }
.hub-foot a:hover{ color: var(--gold); }

/* ===== Aula experimental (/pakua/experimental) ===== */

.page--exp{ max-width:520px; gap:18px; }

.exp-head{ display:flex; align-items:center; gap:14px; }
.exp-logo{ width:104px; height:auto; flex-shrink:0; }
.exp-head .eyebrow{ margin:0; font-size:.78rem; }

.exp-title{
  margin:2px 0 0;
  font-family:"Zen Kaku Gothic New", sans-serif;
  font-weight:900;
  font-size:1.5rem;
  line-height:1.2;
  color: var(--paper);
}

#expForm{ display:flex; flex-direction:column; gap:14px; }

.step{
  background: var(--card);
  border:1px solid var(--card-edge);
  border-radius:20px;
  padding:18px 18px 20px;
}
.step.is-locked{ opacity:.4; }

.step-title{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 14px;
  font-family:"Zen Kaku Gothic New", sans-serif;
  font-weight:700;
  font-size:1rem;
  color: var(--paper);
}

.step-n{
  width:26px;
  height:26px;
  flex-shrink:0;
  display:grid;
  place-items:center;
  border-radius:50%;
  background: var(--gold);
  color: var(--ink);
  font-size:.82rem;
  font-weight:900;
}
.step.is-locked .step-n{ background: var(--card-edge); color: var(--paper-dim); }

/* Opções: radio escondido + corpo clicável */
.opt{ position:relative; display:block; cursor:pointer; }
.opt input{ position:absolute; opacity:0; width:1px; height:1px; pointer-events:none; }

.opt-body{
  display:flex;
  border:1px solid var(--card-edge);
  border-radius:14px;
  background: var(--ink);
  color: var(--paper);
}
.opt:hover .opt-body{ border-color: var(--gold-soft); }
.opt input:checked + .opt-body{
  border-color: var(--gold);
  background: linear-gradient(180deg, #382c1a, #2a2113);
  box-shadow: 0 0 0 1px var(--gold) inset;
}
.opt input:focus-visible + .opt-body{ outline:2px solid var(--gold); outline-offset:2px; }

.mod-grid{ display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:8px; }
.mod-opt .opt-body{ align-items:center; gap:8px; min-height:60px; padding:8px; }
.mod-opt .badge{ width:40px; height:40px; border-width:3px; }
.mod-opt .badge svg{ width:26px; height:26px; }
.mod-name{ min-width:0; font-weight:600; font-size:.85rem; line-height:1.25; }

.chips{ display:flex; gap:8px; }

.chips--days{
  overflow-x:auto;
  margin:0 -18px;
  padding:0 18px 6px;
  scroll-snap-type:x proximity;
  scrollbar-width:thin;
}
.chips--days .opt{ flex:0 0 auto; scroll-snap-align:start; }

.chip{
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-width:60px;
  padding:8px 12px;
  font-family:"Zen Kaku Gothic New", sans-serif;
  font-weight:700;
  font-variant-numeric: tabular-nums;
}
.chip--day b{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color: var(--gold); }
.chip--day span{ font-size:1rem; }

.chips--hours{ flex-wrap:wrap; margin-top:12px; }
.chips--hours .chip{ min-width:64px; padding:10px 12px; font-size:1.05rem; }
.chips--hours:empty::before{
  content:"Escolha um dia para ver os horários.";
  font-size:.84rem;
  color: var(--paper-dim);
}

.fields{ display:grid; grid-template-columns: minmax(0, 1fr) 96px; gap:12px; }

.field{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
  font-size:.8rem;
  font-weight:600;
  letter-spacing:.02em;
  color: var(--paper-dim);
}
.field--full{ grid-column: 1 / -1; }
.field em{ font-style:normal; font-weight:400; }

.field input,
.field select,
.field textarea{
  width:100%;
  padding:11px 12px;
  background: var(--ink);
  border:1px solid var(--card-edge);
  border-radius:10px;
  color: var(--paper);
  font:inherit;
  font-size:1rem; /* 16px evita o zoom automático do iOS */
  font-weight:400;
  letter-spacing:0;
}
.field textarea{ min-height:80px; resize:vertical; }
.field input:focus,
.field select:focus,
.field textarea:focus{
  outline:none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(205,162,86,.18);
}
.field.is-invalid input,
.field.is-invalid select{ border-color:#d98a76; }

.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.privacy{ margin:14px 0 12px; font-size:.78rem; color: var(--paper-dim); }

.btn--cta{
  width:100%;
  justify-content:center;
  padding:14px 18px;
  font-size:1rem;
  background: linear-gradient(180deg, #e0b765, #c39243);
  border-color: var(--gold);
  color: var(--ink);
}
.btn--cta:hover{ filter:brightness(1.06); }

.btn--whats{
  justify-content:center;
  background:#25d366;
  border-color:#25d366;
  color:#08321a;
}
.btn--whats:hover{ border-color:#25d366; filter:brightness(1.05); }

.step .status{ margin-top:10px; }
#fallbackWhats{ width:100%; margin-top:10px; }

.confirm{ display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.confirm:focus{ outline:none; }

.confirm-title{
  margin:0;
  font-family:"Zen Kaku Gothic New", sans-serif;
  font-weight:900;
  font-size:1.5rem;
  color: var(--paper);
}

.confirm-resumo{ display:grid; grid-template-columns:auto 1fr; gap:6px 16px; margin:4px 0; }
.confirm-resumo dt{ align-self:center; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color: var(--paper-dim); }
.confirm-resumo dd{ margin:0; font-weight:600; color: var(--paper); }

.confirm-email,
.confirm-local{ margin:0; font-size:.88rem; line-height:1.5; color: var(--paper-dim); }
.confirm-email strong{ color: var(--paper); }
.confirm .btn--whats{ align-self:stretch; padding:13px 18px; font-size:.95rem; }

@media (prefers-reduced-motion: no-preference){
  .hub-card{ transition: border-color .2s ease, transform .2s ease; }
  .hub-card:hover{ transform: translateY(-2px); }
  .step{ transition: opacity .25s ease; }
  .opt-body{ transition: border-color .15s ease, background .15s ease; }
}
