/* Common Mistakes page styles */
.common-mistakes-page {
  --cm-section-padding: var(--space-3xl);
  --cm-section-padding-tablet: var(--space-2xl);
  --cm-section-padding-mobile: var(--space-xl);
  --cm-grid-gutter: var(--space-lg);
  --cm-max-text: 65ch;
  --cm-max-centered: 650px;
  --cm-max-narrow: 600px;
}

.cm-section {
  padding-block: var(--cm-section-padding);
}

.cm-section__grid {
  display: grid;
  gap: var(--cm-grid-gutter);
  max-width: var(--container-max-width);
  margin-inline: auto;
  padding-inline: var(--container-padding-mobile);
}

.cm-section__grid--text-media {
  grid-template-columns: 7fr 5fr;
  align-items: center;
}

.cm-section__text {
  min-width: 0;
  max-width: var(--cm-max-text);
}

.cm-section__media {
  min-width: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

.cm-section__media img {
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-glass-border);
  box-shadow: var(--shadow-glass);
}

/* Hero */
.cm-hero {
  padding-block: var(--space-4xl) var(--space-3xl);
  background: linear-gradient(180deg, rgba(0, 180, 216, 0.04) 0%, rgba(249, 249, 247, 0) 100%);
}

.cm-hero__grid {
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: var(--space-2xl);
  max-width: var(--container-max-width);
  margin-inline: auto;
  padding-inline: var(--container-padding-mobile);
  align-items: center;
}

.cm-hero__media {
  min-width: 0;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  overflow: visible;
}

.cm-hero__vessel {
  width: 100%;
  max-width: 380px;
  aspect-ratio: 4 / 5;
  background: var(--color-white-glass);
  border: 1px solid var(--color-glass-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-glass), var(--shadow-glass-inset);
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: var(--space-lg);
  gap: var(--space-xs);
}

.cm-hero__liquid {
  display: block;
  width: 100%;
  height: 22%;
  border-radius: var(--radius-sm);
  opacity: 0.85;
}

.cm-hero__liquid--cyan { background: var(--color-cyan); }
.cm-hero__liquid--violet { background: var(--color-violet); }
.cm-hero__liquid--coral { background: var(--color-coral); }
.cm-hero__liquid--yellow { background: var(--color-yellow); }

.cm-hero__content {
  min-width: 0;
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.cm-hero__eyebrow {
  display: inline-block;
  align-self: center;
  font-size: var(--text-caption-size);
  font-weight: 600;
  letter-spacing: var(--text-caption-letter-spacing);
  color: var(--color-cyan);
  text-transform: uppercase;
}

.cm-hero__content h1 {
  margin-block-end: 0;
}

.cm-hero__content p {
  margin-block-end: 0;
  max-width: 60ch;
  margin-inline: auto;
}

.cm-hero__points {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  align-items: center;
}

.cm-hero__points li {
  margin-block-end: 0;
  color: var(--color-ink-muted);
  font-size: var(--text-body-small-size);
}

/* Section typography and lists */
.cm-section h2 {
  margin-block-end: var(--space-md);
}

.cm-section h3 {
  margin-block-start: var(--space-lg);
  margin-block-end: var(--space-sm);
}

.cm-section h3:first-of-type {
  margin-block-start: 0;
}

.cm-section p {
  margin-block-end: var(--space-md);
}

.cm-highlight {
  color: var(--color-cyan);
}

.cm-list,
.cm-numbered {
  margin-block-end: var(--space-md);
}

.cm-list {
  list-style: disc;
  padding-inline-start: var(--space-lg);
}

.cm-list li {
  margin-block-end: var(--space-xs);
}

.cm-list li:last-child {
  margin-block-end: 0;
}

.cm-numbered {
  list-style: decimal;
  padding-inline-start: var(--space-lg);
}

.cm-numbered li {
  margin-block-end: var(--space-xs);
}

.cm-numbered li:last-child {
  margin-block-end: 0;
}

.cm-list--centered {
  list-style: none;
  padding-inline-start: 0;
  text-align: center;
  max-width: var(--cm-max-centered);
  margin-inline: auto;
}

.cm-list--centered li {
  margin-block-end: var(--space-xs);
}

.cm-list--droplet {
  list-style: none;
  padding-inline-start: 0;
}

.cm-list--droplet li {
  position: relative;
  padding-inline-start: var(--space-lg);
  margin-block-end: var(--space-xs);
}

.cm-list--droplet li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--color-cyan);
}

.cm-list--check {
  list-style: none;
  padding-inline-start: 0;
}

.cm-list--check li {
  position: relative;
  padding-inline-start: var(--space-lg);
  margin-block-end: var(--space-xs);
}

.cm-list--check li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--color-turquoise);
  font-weight: 600;
}

.cm-checklist {
  list-style: none;
  padding-inline-start: 0;
}

.cm-checklist li {
  position: relative;
  padding-inline-start: var(--space-lg);
  margin-block-end: var(--space-xs);
}

.cm-checklist li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--color-turquoise);
  font-weight: 600;
}

/* Callouts */
.cm-callout {
  border-radius: var(--radius-md);
  padding: var(--space-lg);
  margin-block-end: var(--space-md);
}

.cm-callout--yellow {
  background-color: rgba(255, 209, 102, 0.18);
  border: 1px solid rgba(255, 209, 102, 0.5);
}

.cm-callout--glass {
  background-color: var(--color-white-glass);
  border: 1px solid var(--color-glass-border);
  box-shadow: var(--shadow-glass), var(--shadow-glass-inset);
}

.cm-callout h4 {
  margin-block-end: var(--space-sm);
}

.cm-callout p {
  margin-block-end: 0;
}

/* Empty tubes */
.cm-empty-tubes {
  background: linear-gradient(180deg, rgba(0, 180, 216, 0.03) 0%, rgba(249, 249, 247, 0) 100%);
}

.cm-empty-tubes__container {
  max-width: var(--cm-max-centered);
  margin-inline: auto;
  padding-inline: var(--container-padding-mobile);
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.cm-empty-tubes__container h2,
.cm-empty-tubes__container h3,
.cm-empty-tubes__container p {
  margin-block-end: 0;
}

.cm-empty-tubes__container .cm-list--centered {
  margin-block-end: 0;
}

.cm-empty-tubes__container .cm-callout {
  text-align: left;
  margin-block-end: 0;
}

/* Loop */
.cm-loop {
  background: linear-gradient(180deg, rgba(123, 44, 191, 0.03) 0%, rgba(249, 249, 247, 0) 100%);
}

.cm-loop__container {
  max-width: var(--cm-max-centered);
  margin-inline: auto;
  padding-inline: var(--container-padding-mobile);
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.cm-loop__container h2,
.cm-loop__container h3,
.cm-loop__container p,
.cm-loop__container ol {
  margin-block-end: 0;
}

.cm-loop__container .cm-numbered {
  text-align: left;
  max-width: var(--cm-max-narrow);
  margin-inline: auto;
}

/* Capacity */
.cm-capacity__examples {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-md);
  margin-block-end: var(--space-md);
}

.cm-capacity__example {
  background: var(--color-white-glass);
  border: 1px solid var(--color-glass-border);
  border-radius: var(--radius-md);
  padding: var(--space-md);
  box-shadow: var(--shadow-glass), var(--shadow-glass-inset);
  min-width: 0;
}

.cm-capacity__example h4 {
  margin-block-end: var(--space-xs);
}

.cm-capacity__example p {
  margin-block-end: 0;
}

.cm-capacity__diagram {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: center;
}

.cm-tube {
  width: 100%;
  max-width: 200px;
  aspect-ratio: 1 / 2;
  border: 2px solid var(--color-glass-border);
  border-radius: var(--radius-md);
  background: var(--color-white-glass);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: var(--space-sm);
  position: relative;
  overflow: hidden;
}

.cm-tube span {
  font-size: var(--text-caption-size);
  color: var(--color-ink-muted);
  background: rgba(255, 255, 255, 0.7);
  padding: var(--space-xs) var(--space-sm);
  border-radius: var(--radius-sm);
  position: relative;
  z-index: 1;
}

.cm-tube--empty {
  background: linear-gradient(to top, transparent 0%, transparent 100%);
}

.cm-tube--partial {
  background: linear-gradient(to top, var(--color-cyan) 0%, var(--color-cyan) 50%, transparent 50%, transparent 100%);
}

.cm-tube--full {
  background: linear-gradient(to top, var(--color-violet) 0%, var(--color-violet) 100%);
}

.cm-tube--full span {
  color: #FFFFFF;
  background: rgba(30, 30, 42, 0.5);
}

/* Whole board */
.cm-whole-board {
  background: linear-gradient(180deg, rgba(6, 214, 160, 0.03) 0%, rgba(249, 249, 247, 0) 100%);
}

.cm-whole-board__container {
  max-width: var(--cm-max-centered);
  margin-inline: auto;
  padding-inline: var(--container-padding-mobile);
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.cm-whole-board__container h2,
.cm-whole-board__container h3,
.cm-whole-board__container p,
.cm-whole-board__container ul,
.cm-whole-board__container ol {
  margin-block-end: 0;
}

.cm-whole-board__container .cm-list--check,
.cm-whole-board__container .cm-numbered {
  text-align: left;
  max-width: var(--cm-max-narrow);
  margin-inline: auto;
}

/* Checklist section */
.cm-checklist-section {
  background: linear-gradient(180deg, rgba(255, 209, 102, 0.06) 0%, rgba(249, 249, 247, 0) 100%);
}

.cm-checklist-card {
  max-width: 800px;
  margin-inline: auto;
  padding-inline: var(--container-padding-mobile);
  background: var(--color-white-glass);
  border: 1px solid rgba(255, 209, 102, 0.5);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-glass), var(--shadow-glass-inset);
  padding: var(--space-xl);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}

.cm-checklist-card h2,
.cm-checklist-card p {
  margin-block-end: 0;
}

.cm-checklist-items {
  list-style: none;
  padding-inline-start: 0;
  margin-block-end: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-sm) var(--space-lg);
}

.cm-checklist-items li {
  position: relative;
  padding-inline-start: var(--space-lg);
  margin-block-end: 0;
  min-width: 0;
}

.cm-checklist-items li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.35em;
  width: 18px;
  height: 18px;
  border: 2px solid var(--color-cyan);
  border-radius: var(--radius-sm);
  background: var(--color-canvas);
  transition: background-color var(--transition-fast), border-color var(--transition-fast);
}

.cm-checklist-items li.cm-checked::before {
  content: "✓";
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FFFFFF;
  background: var(--color-turquoise);
  border-color: var(--color-turquoise);
  font-size: 12px;
  line-height: 1;
}

/* Related guides */
.cm-related {
  background: linear-gradient(180deg, rgba(0, 180, 216, 0.03) 0%, rgba(249, 249, 247, 0) 100%);
}

.cm-related__intro {
  max-width: 700px;
  margin-inline: auto;
  padding-inline: var(--container-padding-mobile);
  text-align: center;
  margin-block-end: var(--space-xl);
}

.cm-related__intro h2,
.cm-related__intro p {
  margin-block-end: 0;
}

.cm-related__cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-lg);
  max-width: var(--container-max-width);
  margin-inline: auto;
  padding-inline: var(--container-padding-mobile);
}

.cm-related__card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  background: var(--color-white-glass);
  border: 1px solid var(--color-glass-border);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
  box-shadow: var(--shadow-glass), var(--shadow-glass-inset);
  color: var(--color-ink);
  text-decoration: none;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
}

.cm-related__card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(0, 180, 216, 0.12), var(--shadow-glass-inset);
  color: var(--color-ink);
}

.cm-related__card h3 {
  margin-block-end: 0;
}

.cm-related__card p {
  margin-block-end: 0;
  color: var(--color-ink-muted);
}

.cm-related__icon {
  display: block;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  flex: none;
}

.cm-related__card--cyan .cm-related__icon { background: var(--color-cyan); }
.cm-related__card--violet .cm-related__icon { background: var(--color-violet); }
.cm-related__card--coral .cm-related__icon { background: var(--color-coral); }

/* CTA */
.cm-cta {
  background: linear-gradient(180deg, rgba(0, 180, 216, 0.05) 0%, rgba(249, 249, 247, 0) 100%);
}

.cm-cta__container {
  max-width: 800px;
  margin-inline: auto;
  padding-inline: var(--container-padding-mobile);
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  align-items: center;
}

.cm-cta__container h2,
.cm-cta__container p {
  margin-block-end: 0;
}

.cm-cta__container p {
  max-width: var(--cm-max-narrow);
}

.cm-cta__button {
  margin-block-start: var(--space-sm);
}

/* Hover effects */
.cm-shake-target:hover img {
  animation: cm-shake 0.4s ease-in-out;
}

.cm-zoom-target:hover img {
  transform: scale(1.02);
  transition: transform var(--transition-fast);
}

.cm-glow-target:hover img {
  box-shadow: 0 0 24px rgba(0, 180, 216, 0.25), var(--shadow-glass);
}

@keyframes cm-shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-4px); }
  50% { transform: translateX(4px); }
  75% { transform: translateX(-2px); }
}

/* Responsive */
@media (min-width: 768px) {
  .cm-section__grid,
  .cm-hero__grid,
  .cm-related__cards {
    padding-inline: var(--container-padding-desktop);
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .cm-section {
    padding-block: var(--cm-section-padding-tablet);
  }

  .cm-section__grid--text-media {
    grid-template-columns: 1fr;
  }

  .cm-section__media {
    order: 2;
  }

  .cm-section__text {
    order: 1;
    max-width: none;
  }

  .cm-hero__grid {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }

  .cm-hero__media {
    order: 1;
  }

  .cm-hero__content {
    order: 2;
  }

  .cm-related__cards {
    grid-template-columns: 1fr;
  }

  .cm-capacity__examples {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .cm-section {
    padding-block: var(--cm-section-padding-mobile);
  }

  .cm-section__grid--text-media {
    grid-template-columns: 1fr;
  }

  .cm-section__media {
    order: 2;
  }

  .cm-section__text {
    order: 1;
    max-width: none;
  }

  .cm-hero {
    padding-block: var(--space-2xl) var(--space-xl);
  }

  .cm-hero__grid {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
  }

  .cm-hero__media {
    order: 1;
  }

  .cm-hero__vessel {
    max-width: 280px;
  }

  .cm-hero__content {
    order: 2;
    text-align: left;
    align-items: flex-start;
  }

  .cm-hero__eyebrow {
    align-self: flex-start;
  }

  .cm-hero__content p {
    margin-inline: 0;
  }

  .cm-hero__points {
    align-items: flex-start;
  }

  .cm-empty-tubes__container,
  .cm-loop__container,
  .cm-whole-board__container {
    text-align: left;
  }

  .cm-empty-tubes__container .cm-list--centered {
    text-align: left;
    margin-inline: 0;
  }

  .cm-loop__container .cm-numbered,
  .cm-whole-board__container .cm-list--check,
  .cm-whole-board__container .cm-numbered {
    margin-inline: 0;
  }

  .cm-capacity__examples {
    grid-template-columns: 1fr;
  }

  .cm-capacity__diagram {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
  }

  .cm-tube {
    max-width: 120px;
  }

  .cm-checklist-card {
    padding: var(--space-lg);
  }

  .cm-checklist-items {
    grid-template-columns: 1fr;
  }

  .cm-related__cards {
    grid-template-columns: 1fr;
  }

  .cm-cta__button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cm-shake-target:hover img,
  .cm-zoom-target:hover img,
  .cm-glow-target:hover img {
    animation: none;
    transform: none;
    box-shadow: var(--shadow-glass);
  }
}
