/* LateSurveys — purple on cream, fonts hosted locally */
@font-face { font-family:'Inter'; src:url('fonts/Inter-Regular.woff2') format('woff2'); font-weight:400; font-display:swap; }
@font-face { font-family:'Inter'; src:url('fonts/Inter-SemiBold.woff2') format('woff2'); font-weight:600; font-display:swap; }
@font-face { font-family:'Inter'; src:url('fonts/Inter-Bold.woff2') format('woff2'); font-weight:700; font-display:swap; }

:root{
  --purple:#4c1d95; --purple-mid:#6d28d9; --purple-soft:#ece5f8;
  --navy-deep:#1e123d; --accent-lav:#c4b5fd;
  --cream:#faf6ec; --card:#fffdf6; --ink:#2b2338; --line:#e3dccb;
  --avail-bg:#e3f2e5; --avail-ink:#1b6e2e; --avail-line:#b7dcbd;
  --taken-bg:#fbe5e3; --taken-ink:#a12620; --taken-line:#eec3bf;
  --pos:#a12620; --neg:#1b6e2e;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--cream);line-height:1.5;
  background-image:url('truck-bg.svg');background-repeat:repeat;background-size:340px auto;background-attachment:fixed}
a{color:var(--purple-mid)}
.wrap{max-width:1060px;margin:0 auto;padding:0 20px}
.wrap-wide{max-width:1680px}
header.site{background:var(--purple);color:#fff}
.bar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px}
.logo{font-weight:700;font-size:1.3rem;color:#a78bfa;text-decoration:none;letter-spacing:-.02em}
.logo span{color:#fff}
nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
nav a{color:#fff;text-decoration:none;font-weight:600;font-size:.95rem}
.clocks{font-variant-numeric:tabular-nums;background:rgba(255,255,255,.12);border-radius:8px;
  padding:5px 10px;font-size:.85rem;color:#ede9fe}
.btn{display:inline-block;background:var(--purple-mid);color:#fff;border:0;border-radius:8px;
  padding:12px 22px;font:inherit;font-weight:600;text-decoration:none;cursor:pointer}
.btn:hover{background:var(--purple)}
.btn.small{padding:7px 14px;font-size:.9rem}
.btn.big{padding:15px 34px;font-size:1.05rem}
.btn.ghost{background:var(--card);color:var(--purple);border:1.5px solid var(--purple)}
main{padding:32px 20px 60px}
h1{font-weight:700;letter-spacing:-.02em}
.foot{padding:24px 20px;color:#867a68;font-size:.85rem;border-top:1px solid var(--line)}

/* Landing */
.home-head{text-align:center;padding:34px 0 10px}
.home-title{font-size:clamp(2.6rem,7vw,4rem);margin:0;color:var(--purple)}
.home-tag{font-size:1.25rem;margin:10px 0 4px;font-weight:600}
.home-sub{margin:0 0 26px;color:#6e6355;font-size:1.05rem}
.home-actions{text-align:center;margin:44px 0 30px;display:flex;gap:18px;justify-content:center;align-items:center;flex-wrap:wrap}
.home-contact{max-width:680px;margin:0 auto 20px;text-align:center;color:#5c5244;
  background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 22px}

/* Calendar frame — a proper panel, not a bare grid on the page */
.cal-frame{max-width:1180px;width:100%;margin:20px auto 0;border-radius:16px;overflow:hidden;
  background:var(--card);border:1px solid var(--line);box-shadow:0 24px 54px rgba(76,29,149,.14)}
.cal-frame-head{background:var(--navy-deep);padding:clamp(14px,2vw,20px) clamp(16px,3vw,28px);display:flex;align-items:center;
  justify-content:space-between;gap:12px;flex-wrap:wrap}
.cal-frame-head h2{font-family:Inter,sans-serif;font-size:1.15rem;letter-spacing:.06em;
  text-transform:uppercase;color:#fff;margin:0;font-weight:700}
.cal-frame-badge{font-size:.68rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--accent-lav);background:rgba(196,181,253,.14);border:1px solid rgba(196,181,253,.4);
  padding:5px 12px;border-radius:20px;white-space:nowrap}
.cal-frame-body{padding:clamp(16px,2.4vw,26px) clamp(16px,2.4vw,26px) clamp(20px,3vw,30px);background:linear-gradient(180deg,#fbf8f0,var(--card) 80px)}
.cal-frame .calnav{margin:0 0 18px}

/* Flash + cards */
.flash{background:var(--purple-soft);border:1px solid var(--purple-mid);border-radius:8px;padding:12px 16px;margin:0 0 20px}
.card{border:1px solid var(--line);border-radius:12px;padding:20px;margin:0 0 20px;background:var(--card)}
.note{background:var(--purple-soft);border-radius:8px;padding:12px 16px;font-size:.95rem}

/* Calendar — header cells and day cells share ONE grid so they always align */
.calnav{display:flex;align-items:center;justify-content:space-between;margin:0 0 16px;gap:10px}
.calgrid.month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(6px,0.8vw,10px)}
.calhead-cell{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:#867a68;
  font-weight:700;text-align:center;padding:2px 0}
.day{border:1px solid var(--line);border-radius:10px;min-height:clamp(96px,11vw,150px);padding:8px;background:var(--card)}
.day h3{margin:0 0 8px;font-size:.85rem;color:#867a68;font-weight:600}
.day.dim{background:#f3eede;opacity:.55}
.today{outline:2px solid var(--purple-mid)}
.slot{border-radius:7px;padding:6px 8px;font-size:.82rem;margin:0 0 6px;display:block;text-decoration:none}
.slot b{display:block}
.slot.avail{background:var(--avail-bg);color:var(--avail-ink);border:1px solid var(--avail-line)}
.slot.avail:hover{background:#d2ecd6}
.slot.taken{background:var(--taken-bg);color:var(--taken-ink);border:1px solid var(--taken-line)}
.price{font-weight:700}

/* Forms & tables */
form.std label{display:block;font-weight:600;font-size:.9rem;margin:14px 0 4px}
form.std input[type=text],form.std input[type=email],form.std input[type=password],form.std input[type=tel],
form.std input[type=date],form.std input[type=time],form.std input[type=number],form.std select,form.std textarea{
  width:100%;padding:10px 12px;border:1px solid #cdc4ab;border-radius:8px;font:inherit;background:#fff}
form.std textarea{min-height:80px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
fieldset{border:1px solid var(--line);border-radius:10px;margin:0 0 18px;padding:6px 16px 16px;background:var(--card)}
legend{font-weight:700;color:var(--purple);padding:0 6px}
table.std{width:100%;border-collapse:collapse;font-size:.95rem}
table.std th{text-align:left;color:#867a68;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
table.std th,table.std td{padding:9px 10px;border-bottom:1px solid var(--line)}
.pos{color:var(--pos)} .neg{color:var(--neg)}
.tag{display:inline-block;background:var(--purple-soft);color:var(--purple);border-radius:20px;padding:2px 10px;font-size:.78rem;font-weight:600}
.tag.cancelled{background:var(--taken-bg);color:var(--taken-ink)}

@media(max-width:800px){
  .grid2{grid-template-columns:1fr}
}
@media(max-width:620px){
  .calgrid.month{grid-template-columns:1fr 1fr}
  .calhead-cell,.day.dim{display:none}
  .day{min-height:auto}
}
@media(max-width:420px){.calgrid.month{grid-template-columns:1fr}}

/* ===== v3: generic panel (reused by About page), team/video/badges/socials ===== */
.panel{max-width:900px;margin:20px auto 0;border-radius:16px;overflow:hidden;
  background:var(--card);border:1px solid var(--line);box-shadow:0 24px 54px rgba(76,29,149,.14)}
.panel-head{background:var(--navy-deep);padding:20px 28px;display:flex;align-items:center;
  justify-content:space-between;gap:12px;flex-wrap:wrap}
.panel-head h2{font-family:Inter,sans-serif;font-size:1.15rem;letter-spacing:.06em;
  text-transform:uppercase;color:#fff;margin:0;font-weight:700}
.panel-badge{font-size:.68rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--accent-lav);background:rgba(196,181,253,.14);border:1px solid rgba(196,181,253,.4);
  padding:5px 12px;border-radius:20px;white-space:nowrap}
.panel-body{padding:28px 28px 32px}

.section-sub{margin:34px 0 16px;color:var(--purple);font-size:1rem;text-transform:uppercase;letter-spacing:.05em}
.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.team-card{border:1px solid var(--line);border-radius:12px;padding:20px;text-align:center;background:#fffefa}
.team-photo{width:96px;height:96px;border-radius:50%;object-fit:cover;margin:0 auto 12px}
.team-photo-placeholder{display:flex;align-items:center;justify-content:center;background:var(--purple-soft);font-size:2rem}
.team-card h3{margin:0 0 2px}
.team-role{color:var(--purple-mid);font-weight:600;font-size:.85rem;margin:0 0 10px}

.video-frame{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#f3eede;
  aspect-ratio:16/9;max-width:640px}
.video-frame iframe{width:100%;height:100%;border:0;display:block}
.video-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  color:#867a68;font-size:1rem;background:repeating-linear-gradient(135deg,#f3eede,#f3eede 10px,#ece5d7 10px,#ece5d7 20px)}

.badge-row{display:flex;gap:22px;flex-wrap:wrap;align-items:center}
.badge-img{height:56px;filter:grayscale(15%)}
.social-row{display:flex;gap:12px;flex-wrap:wrap}

/* ===== v4: homepage side boxes (profile / why) flanking the calendar ===== */
.home-columns{display:grid;grid-template-columns:minmax(200px,18%) minmax(0,1fr) minmax(200px,18%);
  gap:clamp(16px,2.2vw,32px);align-items:start;width:100%;margin:0 auto}
.home-cal{min-width:0;width:100%}
.side-box{background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:clamp(16px,1.6vw,22px);box-shadow:0 10px 26px rgba(76,29,149,.08);position:sticky;top:20px}
.side-photo{width:84px;height:84px;border-radius:50%;object-fit:cover;display:block;margin:0 0 12px}
.side-photo-placeholder{display:flex;align-items:center;justify-content:center;background:var(--purple-soft);font-size:1.8rem}
.side-name{font-weight:700;color:var(--purple);margin:0 0 8px;font-size:1.05rem}
.side-box p{font-size:.92rem;color:#5c5244;margin:0 0 10px}

@media(max-width:1300px){
  .home-columns{grid-template-columns:minmax(190px,24%) minmax(0,1fr) minmax(190px,24%);gap:18px}
}
@media(max-width:980px){
  .home-columns{grid-template-columns:1fr}
  .side-box{position:static;max-width:640px;margin:0 auto;width:100%}
}
