/* Aquiva slide-layout primitives.
 * Brand-tinted shared building blocks for all 1920×1080 slide layouts.
 * Pulls tokens from colors_and_type.css.                                    */

.aq-slide {
  position: relative;
  width: 1920px;
  height: 1080px;
  background: var(--aq-white);
  color: var(--fg-1);
  font-family: var(--font-body);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}
.aq-slide * { box-sizing: border-box; }

/* Slide chrome — header (eyebrow / running title) + footer (page nbr / brand) */
.aq-slide-header {
  position: absolute;
  top: 56px;
  left: 96px;
  right: 96px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-heading);
  font-size: 20px;
  font-weight: 500;
  color: var(--aq-gray-mid);
  letter-spacing: 0;
  z-index: 2;
}
.aq-slide-footer {
  position: absolute;
  bottom: 40px;
  left: 96px;
  right: 96px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-heading);
  font-size: 16px;
  color: var(--aq-gray-mid);
  z-index: 2;
}
.aq-slide-footer .aq-brand-tag {
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--aq-purple);
  font-weight: 600;
}
.aq-slide-footer .aq-page-num {
  font-variant-numeric: tabular-nums;
}

/* Body content area sits between header and footer */
.aq-slide-body {
  position: absolute;
  top: 140px;
  left: 96px;
  right: 96px;
  bottom: 100px;
  display: flex;
  flex-direction: column;
}

/* Bigger title for content slides */
.aq-slide-title {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 56px;
  line-height: 1.05;
  letter-spacing: -0.01em;
  color: var(--aq-purple);
  margin: 0 0 8px 0;
}
.aq-slide-subtitle {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 22px;
  line-height: 1.45;
  color: var(--aq-ink);
  margin: 0;
  max-width: 1100px;
}

.aq-eyebrow-lg {
  font-family: var(--font-heading);
  font-weight: 500;
  font-size: 18px;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--aq-pink);
}

.aq-rule {
  height: 4px;
  width: 64px;
  background: var(--aq-pink);
  border-radius: 999px;
  display: block;
}

/* Generic decorative corner gradient */
.aq-corner-grad {
  position: absolute;
  width: 540px;
  height: 540px;
  border-radius: 50%;
  filter: blur(140px);
  opacity: 0.55;
  pointer-events: none;
}

/* Pill chip used everywhere */
.aq-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: 999px;
  background: var(--aq-violet-light);
  color: var(--aq-purple);
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.aq-pill--blue   { background: var(--aq-blue-light);  color: var(--aq-purple-deep); }
.aq-pill--pink   { background: var(--aq-pink-light);  color: var(--aq-pink); }
.aq-pill--cream  { background: var(--aq-cream);       color: var(--aq-orange); }
.aq-pill--ghost  { background: transparent; border: 1.5px solid var(--aq-gray-mid); color: var(--aq-gray); }

/* Number badge — used on numbered slides + step lists */
.aq-num-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--aq-blue);
  color: var(--aq-white);
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 24px;
}
.aq-num-badge--purple { background: var(--aq-purple); }
.aq-num-badge--pink   { background: var(--aq-pink); }
.aq-num-badge--ghost  { background: transparent; color: var(--aq-blue); border: 2px solid var(--aq-blue); }
.aq-num-badge--lg     { width: 96px; height: 96px; font-size: 44px; }

/* Photo placeholder — striped bg + monospace explainer */
.aq-photo-ph {
  position: relative;
  background:
    repeating-linear-gradient(135deg,
      rgba(53,38,148,0.06) 0 18px,
      rgba(53,38,148,0.02) 18px 36px),
    var(--aq-violet-light);
  border-radius: var(--r-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mono);
  font-size: 14px;
  color: var(--aq-purple);
  letter-spacing: 0.04em;
  overflow: hidden;
}
.aq-photo-ph--circle { border-radius: 50%; }
.aq-photo-ph--blue {
  background:
    repeating-linear-gradient(135deg,
      rgba(0,50,134,0.10) 0 18px,
      rgba(0,50,134,0.04) 18px 36px),
    var(--aq-blue-light);
  color: var(--aq-purple-deep);
}
.aq-photo-ph--peach {
  background:
    repeating-linear-gradient(135deg,
      rgba(237,127,32,0.16) 0 18px,
      rgba(237,127,32,0.06) 18px 36px),
    var(--aq-cream);
  color: var(--aq-orange);
}
.aq-photo-ph--deep {
  background:
    repeating-linear-gradient(135deg,
      rgba(255,255,255,0.06) 0 18px,
      rgba(255,255,255,0.02) 18px 36px),
    var(--aq-purple-deep);
  color: var(--aq-blue-light);
}

/* Quiet card surface */
.aq-card {
  background: var(--aq-white);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-md);
  padding: 32px;
}
.aq-card--violet { background: var(--aq-violet-light); box-shadow: none; }
.aq-card--blue   { background: var(--aq-blue-light);   box-shadow: none; }
.aq-card--cream  { background: var(--aq-cream);        box-shadow: none; }
.aq-card--ghost  { background: transparent; box-shadow: none; border: 1.5px solid var(--border-subtle); }

/* Big numeral display — design system spec
 * Lexend Light 300, 72–96 pt, -0.025em letter-spacing
 * (see preview/type-numerals.html) */
.aq-bignum {
  font-family: var(--font-heading);
  font-weight: 300;
  line-height: 0.95;
  letter-spacing: -0.025em;
  color: var(--aq-purple);
}

/* Section divider rule */
.aq-divider-h {
  height: 1px;
  background: var(--border-subtle);
  width: 100%;
}
.aq-divider-v {
  width: 1px;
  background: var(--border-subtle);
  height: 100%;
}

/* Connector arrow used in process / timeline slides */
.aq-arrow {
  display: inline-block;
  width: 0;
  height: 0;
  border-top: 12px solid transparent;
  border-bottom: 12px solid transparent;
  border-left: 16px solid var(--aq-blue);
}

/* Visible debug — uncomment in development */
/* .aq-slide { outline: 1px solid red; } */
