/* ClassWaze Public Website — Common CSS
 * Base + shared components. Platform and Tenant PHP remain separate.
 */


/* ClassWaze Final Asset Baseline v11 */
/*
 * ClassWaze Frontend Foundation
 * Public website foundation only. Panel foundation lives in assets/panel/css/common.css.
 * No page-specific layout rules live here.
 */
:root {
  --cw-theme-primary: #0A2D6D;
  --cw-theme-accent: #00B4E6;
  --cw-theme-dark: #08204E;
  --cw-theme-light: #EEF8FC;
  --cw-theme-soft: #F5F9FC;
  --cw-border: #E2E8F0;
  --cw-text: #1E293B;
  --cw-muted: #64748B;
  --cw-surface: #FFFFFF;
  --cw-container: 1540px;
  --cw-gutter: 28px;
  --cw-radius-sm: 10px;
  --cw-radius-md: 18px;
  --cw-radius-lg: 24px;
  --cw-shadow: 0 12px 32px rgba(8, 32, 78, 0.07);
  --cw-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --cw-font-ui: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;

  /* Public-website interaction tokens. */
  --cw-motion-fast: 180ms;
  --cw-motion-normal: 240ms;
  --cw-hover-outline-width: 1px;
  --cw-hover-outline-color: var(--cw-theme-accent, #00B4E6);
}

*, *::before, *::after { box-sizing: border-box; }
html { margin: 0; padding: 0; min-height: 100%; }
body { margin: 0; min-height: 100%; }
img, svg { max-width: 100%; }
button, input, textarea, select { font: inherit; }
a { color: inherit; }
button { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--cw-theme-accent); outline-offset: 2px; }

/* shared theme aliases; component/section styles can consume these */
.cw-theme-scope {
  --cw-primary: var(--cw-theme-primary);
  --cw-accent: var(--cw-theme-accent);
  --cw-navy: var(--cw-theme-primary);
  --cw-navy-deep: var(--cw-theme-dark);
  --cw-cyan: var(--cw-theme-accent);
}

/* Anti-bot honeypot: kept in the DOM for automated form detection, invisible to users. */
.cw-honeypot,.tw-honeypot{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important;}

/* ===== Shared Components ===== */
/* ClassWaze Public Website UI Components — Final Common UI System v19 */
/* Public websites only. Panel-only component rules live in assets/panel/css/common.css. */
.cw-ui-container{width:calc(100% - var(--cw-gutter,28px));max-width:var(--cw-container,1540px);margin-inline:auto}
.cw-ui-eyebrow{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border:1px solid rgba(0,180,230,.20);border-radius:999px;background:var(--cw-theme-light,#EEF8FC);color:var(--cw-theme-primary,#0A2D6D);font-size:11px;font-weight:800}

/* ================================================================
   CLASSWAZE COMMON BUTTON SYSTEM — FINAL v18
   Four compact size tiers + one full-width tier.
   Visual styles are limited to Primary and Outline so every button stays
   brand-consistent while width is selected by content/context.
   ================================================================ */
.cw-ui-btn{
  --cw-btn-bg:#00B4E6;
  --cw-btn-color:#fff;
  --cw-btn-border:#00B4E6;
  --cw-btn-hover-bg:#009ECC;
  --cw-btn-hover-color:#fff;
  --cw-btn-hover-border:#009ECC;
  --cw-btn-shadow:0 5px 14px rgba(0,180,230,.12);
  --cw-btn-hover-shadow:0 8px 18px rgba(0,180,230,.18);
  --cw-btn-min-height:40px;
  --cw-btn-px:16px;
  --cw-btn-min-width:0;
  --cw-btn-radius:999px;
  box-sizing:border-box;
  position:relative;
  isolation:isolate;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:max-content;
  min-width:var(--cw-btn-min-width);
  max-width:100%;
  min-height:var(--cw-btn-min-height);
  padding:0 var(--cw-btn-px);
  border:1px solid var(--cw-btn-border);
  border-radius:var(--cw-btn-radius);
  background:var(--cw-btn-bg);
  background-clip:padding-box;
  color:var(--cw-btn-color);
  text-decoration:none!important;
  font:inherit;
  font-size:13px;
  line-height:1.15;
  font-weight:800;
  letter-spacing:-.01em;
  white-space:nowrap;
  cursor:pointer;
  box-shadow:var(--cw-btn-shadow);
  -webkit-tap-highlight-color:transparent;
  transition:transform 180ms ease,background 180ms ease,color 180ms ease,border-color 180ms ease,box-shadow 180ms ease;
}
.cw-ui-btn:link,.cw-ui-btn:visited,.cw-ui-btn:hover,.cw-ui-btn:focus,.cw-ui-btn:active{text-decoration:none!important}
.cw-ui-btn:hover{transform:translateY(-1px);background:var(--cw-btn-hover-bg);color:var(--cw-btn-hover-color);border-color:var(--cw-btn-hover-border);box-shadow:var(--cw-btn-hover-shadow)}
.cw-ui-btn:active{transform:translateY(0);box-shadow:var(--cw-btn-shadow)}
.cw-ui-btn:focus-visible{outline:2px solid #00B4E6;outline-offset:3px}
.cw-ui-btn svg,.cw-ui-btn img{display:block;width:16px;height:16px;flex:0 0 16px}
.cw-ui-btn > span{min-width:0;display:inline-block}

.cw-ui-btn-primary{--cw-btn-bg:#00B4E6;--cw-btn-color:#fff;--cw-btn-border:#00B4E6;--cw-btn-hover-bg:#009ECC;--cw-btn-hover-color:#fff;--cw-btn-hover-border:#009ECC}
.cw-ui-btn-outline{--cw-btn-bg:#fff;--cw-btn-color:#0A2D6D;--cw-btn-border:#0A2D6D;--cw-btn-shadow:0 4px 12px rgba(8,32,78,.05);--cw-btn-hover-bg:#EAF8FD;--cw-btn-hover-color:#0A2D6D;--cw-btn-hover-border:#00B4E6;--cw-btn-hover-shadow:0 7px 16px rgba(0,180,230,.10)}

/* Four deliberate footprint sizes: small, regular, large, extra-large. */
.cw-ui-btn-sm{--cw-btn-min-height:36px;--cw-btn-px:14px;--cw-btn-min-width:140px;font-size:12.5px;gap:6px}
.cw-ui-btn-md{--cw-btn-min-height:40px;--cw-btn-px:16px;--cw-btn-min-width:164px;font-size:13px;gap:7px}
.cw-ui-btn-lg{--cw-btn-min-height:44px;--cw-btn-px:18px;--cw-btn-min-width:192px;font-size:13.5px;gap:7px}
.cw-ui-btn-xl{--cw-btn-min-height:46px;--cw-btn-px:20px;--cw-btn-min-width:218px;font-size:14px;gap:8px}
.cw-ui-btn-block{width:100%;max-width:none;min-width:0}
.cw-ui-btn-sm svg,.cw-ui-btn-sm img{width:14px;height:14px;flex-basis:14px}
.cw-ui-btn-md svg,.cw-ui-btn-md img{width:15px;height:15px;flex-basis:15px}

/* Alignment utilities */
.cw-ui-stack{display:flex;flex-direction:column}.cw-ui-inline{display:inline-flex;align-items:center}.cw-ui-center{text-align:center}.cw-ui-center-items{align-items:center;justify-content:center}
@media(max-width:680px){
  .cw-ui-mobile-center{text-align:center!important}
  .cw-ui-mobile-center-items{align-items:center!important;justify-content:center!important}
  .cw-ui-mobile-full{width:100%!important}
  .cw-ui-btn-xl{--cw-btn-min-height:44px;--cw-btn-px:18px;--cw-btn-min-width:208px;font-size:13.5px}
  .cw-ui-btn-lg{--cw-btn-min-height:42px;--cw-btn-px:16px;--cw-btn-min-width:184px;font-size:13px}
  .cw-ui-btn-md{--cw-btn-min-height:38px;--cw-btn-px:14px;--cw-btn-min-width:158px;font-size:12.5px}
  .cw-ui-btn-sm{--cw-btn-min-height:35px;--cw-btn-px:12px;--cw-btn-min-width:136px;font-size:12px}
  .cw-ui-btn{max-width:100%;white-space:nowrap}
}

/* Shared cards / fields */
.cw-ui-card{background:var(--cw-surface,#fff);border:1px solid var(--cw-border,#E2E8F0);border-radius:var(--cw-radius-md,18px);box-shadow:var(--cw-shadow)}
.cw-ui-input,.cw-ui-select,.cw-ui-textarea{width:100%;border:1px solid #DCE4ED;border-radius:14px;background:#fff;color:#1B2940;padding:11px 12px;outline:none}.cw-ui-input:focus,.cw-ui-select:focus,.cw-ui-textarea:focus{border-color:#00B4E6;box-shadow:0 0 0 4px rgba(0,180,230,.09)}
.cw-ui-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#EEF8FC;color:#0A2D6D;font-size:10px;font-weight:900}.cw-ui-hidden{display:none!important}
.cw-page,.cw-ui-page{width:calc(100% - var(--cw-gutter,28px));max-width:1420px;margin:18px auto 34px}
@media(max-width:768px){.cw-ui-container,.cw-page,.cw-ui-page{width:calc(100% - 16px)}}
.cw-hover-card {
  position:relative;
  isolation:isolate;
  will-change:transform;
  transition:
    transform var(--cw-motion-normal,240ms) cubic-bezier(.22,1,.36,1),
    box-shadow var(--cw-motion-normal,240ms) ease,
    border-color var(--cw-motion-normal,240ms) ease;
}
.cw-hover-card:hover,
.cw-hover-card:focus-within {
  transform:translateY(-3px);
}
.cw-hover-card::after {
  content:"";
  position:absolute;
  inset:0;
  box-sizing:border-box;
  border:var(--cw-hover-outline-width,1px) solid var(--cw-hover-outline-color,var(--cw-theme-accent,#00B4E6));
  border-radius:inherit;
  opacity:0;
  pointer-events:none;
  z-index:20;
  transition:opacity var(--cw-motion-fast,180ms) ease;
}
.cw-hover-card:hover::after,
.cw-hover-card:focus-within::after {
  opacity:1;
}
