/* ========================================
   Puppycursus Styles
   ======================================== */

.puppycursus {
  padding-bottom: 20px;
}

.pc-hero {
  background: linear-gradient(135deg, var(--accent, #E8985E), #D4845A);
  color: white;
  border-radius: 16px;
  padding: 20px;
  margin-bottom: 16px;
}
.pc-hero h3 {
  font-size: 1.1rem;
  margin-bottom: 8px;
}
.pc-hero p {
  font-size: 0.95rem;
  opacity: 0.95;
  line-height: 1.6;
}

.pc-card {
  background: var(--surface, #fff);
  border-radius: 14px;
  padding: 16px 18px;
  margin-bottom: 14px;
  box-shadow: 0 2px 12px rgba(61,43,31,0.08);
}
.pc-card h3 {
  font-size: 1.05rem;
  margin-bottom: 10px;
  color: var(--accent, #E8985E);
}

.pc-step {
  background: var(--surface-alt, #F5E6D3);
  border-radius: 10px;
  padding: 12px 14px;
  margin: 8px 0;
  border-left: 4px solid var(--accent, #E8985E);
  line-height: 1.6;
}
.pc-step strong {
  color: var(--accent-dark, #C47A3F);
}
.pc-step ul {
  margin-top: 8px;
  padding-left: 18px;
}
.pc-step li {
  margin: 4px 0;
  line-height: 1.5;
}

.pc-tag {
  display: inline-block;
  background: var(--surface-alt, #F5E6D3);
  color: var(--accent-dark, #C47A3F);
  border-radius: 20px;
  padding: 3px 12px;
  font-size: 0.8rem;
  font-weight: 600;
  margin: 2px 4px 2px 0;
}
.pc-tag.green {
  background: #E8F5E9;
  color: #2E7D32;
}
.pc-tag.red {
  background: #FFEBEE;
  color: #C62828;
}

/* Accordion */
.pc-accordion {
  margin-bottom: 10px;
}
.pc-accordion-btn {
  width: 100%;
  background: var(--surface, #fff);
  border: none;
  border-radius: 14px;
  padding: 14px 18px;
  text-align: left;
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary, #3D2B1F);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-shadow: 0 2px 12px rgba(61,43,31,0.08);
  transition: background 0.2s;
  font-family: inherit;
  line-height: 1.4;
}
.pc-accordion-btn:hover {
  opacity: 0.9;
}
.pc-accordion-btn::after {
  content: '▾';
  font-size: 1.2rem;
  color: var(--accent, #E8985E);
  transition: transform 0.3s;
  flex-shrink: 0;
  margin-left: 12px;
}
.pc-accordion-btn.open::after {
  transform: rotate(180deg);
}
.pc-accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
  background: var(--surface, #fff);
  border-radius: 0 0 14px 14px;
  margin-top: -8px;
  padding: 0 18px;
}
.pc-accordion-content.open {
  max-height: 3000px;
  padding: 8px 18px 18px;
}

.pc-accordion-content ul {
  padding-left: 20px;
}
.pc-accordion-content li {
  margin: 6px 0;
  line-height: 1.55;
}
.pc-accordion-content h4 {
  font-size: 0.95rem;
}

.pc-rule-box {
  background: #FFF3E0;
  border-left: 4px solid #FF9800;
  border-radius: 0 10px 10px 0;
  padding: 12px 14px;
  margin: 10px 0;
  font-size: 0.93rem;
  line-height: 1.55;
}

.pc-golden {
  background: linear-gradient(135deg, #FFF8E1, #FFECB3);
  border-radius: 12px;
  padding: 14px;
  margin: 8px 0;
  font-weight: 600;
  font-size: 0.93rem;
  line-height: 1.55;
}

.pc-tip {
  background: #E3F2FD;
  border-radius: 10px;
  padding: 12px 14px;
  margin: 10px 0;
  font-size: 0.93rem;
  line-height: 1.55;
}

.pc-footer {
  text-align: center;
  padding: 24px 0 8px;
  color: var(--text-muted, #7A6455);
  font-size: 0.82rem;
}

.pc-footer-sub {
  margin-top: 4px;
}

/* ========================================
   Lesson Overview Grid & Back Button
   ======================================== */

.pc-lesson-grid {
  display: grid;
  gap: 14px;
}

.pc-lesson-card {
  background: var(--surface, #fff);
  border: none;
  border-radius: 14px;
  padding: 18px 20px;
  text-align: left;
  cursor: pointer;
  box-shadow: 0 2px 12px rgba(61,43,31,0.08);
  transition: transform 0.15s, box-shadow 0.15s;
  font-family: inherit;
  display: block;
  width: 100%;
}
.pc-lesson-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(61,43,31,0.14);
}
.pc-lesson-card:active {
  transform: translateY(0);
}

.pc-lesson-number {
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--accent, #E8985E);
  margin-bottom: 4px;
}
.pc-lesson-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text-primary, #3D2B1F);
  margin-bottom: 6px;
}
.pc-lesson-desc {
  font-size: 0.9rem;
  color: var(--text-secondary, #7A6455);
  line-height: 1.5;
  margin-bottom: 10px;
}
.pc-lesson-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.pc-back-btn {
  background: none;
  border: none;
  color: var(--accent, #E8985E);
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  padding: 8px 0;
  margin-bottom: 8px;
  font-family: inherit;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.pc-back-btn:hover {
  opacity: 0.8;
}

/* Dark mode adjustments */
@media (prefers-color-scheme: dark) {
  :root:not(.light-mode) .pc-step {
    background: rgba(255, 255, 255, 0.06);
    color: #e6edf3;
  }
  :root:not(.light-mode) .pc-step strong {
    color: #d4956a;
  }
  :root:not(.light-mode) .pc-card {
    background: #1c2128;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
  }
  :root:not(.light-mode) .pc-accordion-btn {
    background: #1c2128;
    color: #e6edf3;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
  }
  :root:not(.light-mode) .pc-accordion-content {
    background: #1c2128;
    color: #e6edf3;
  }
  :root:not(.light-mode) .pc-lesson-card {
    background: #1c2128;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
  }
  :root:not(.light-mode) .pc-lesson-card:hover {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
  }
  :root:not(.light-mode) .pc-lesson-title {
    color: #e6edf3;
  }
  :root:not(.light-mode) .pc-lesson-desc {
    color: #8b949e;
  }
  :root:not(.light-mode) .pc-tag {
    background: rgba(196, 149, 106, 0.15);
    color: #d4956a;
  }
  :root:not(.light-mode) .pc-tag.green {
    background: rgba(76, 175, 80, 0.15);
    color: #81C784;
  }
  :root:not(.light-mode) .pc-tag.red {
    background: rgba(229, 115, 115, 0.15);
    color: #EF9A9A;
  }
  :root:not(.light-mode) .pc-rule-box {
    background: rgba(255, 152, 0, 0.12);
    color: #FFB74D;
  }
  :root:not(.light-mode) .pc-golden {
    background: rgba(255, 235, 59, 0.08);
    color: #FFD54F;
  }
  :root:not(.light-mode) .pc-tip {
    background: rgba(33, 150, 243, 0.1);
    color: #90CAF9;
  }
}

/* Class-based dark mode */
.dark-mode .pc-step {
  background: rgba(255, 255, 255, 0.06);
  color: #e6edf3;
}
.dark-mode .pc-step strong {
  color: #d4956a;
}
.dark-mode .pc-card {
  background: #1c2128;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}
.dark-mode .pc-accordion-btn {
  background: #1c2128;
  color: #e6edf3;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}
.dark-mode .pc-accordion-content {
  background: #1c2128;
  color: #e6edf3;
}
.dark-mode .pc-lesson-card {
  background: #1c2128;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}
.dark-mode .pc-lesson-card:hover {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}
.dark-mode .pc-lesson-title {
  color: #e6edf3;
}
.dark-mode .pc-lesson-desc {
  color: #8b949e;
}
.dark-mode .pc-tag {
  background: rgba(196, 149, 106, 0.15);
  color: #d4956a;
}
.dark-mode .pc-tag.green {
  background: rgba(76, 175, 80, 0.15);
  color: #81C784;
}
.dark-mode .pc-tag.red {
  background: rgba(229, 115, 115, 0.15);
  color: #EF9A9A;
}
.dark-mode .pc-rule-box {
  background: rgba(255, 152, 0, 0.12);
  color: #FFB74D;
}
.dark-mode .pc-golden {
  background: rgba(255, 235, 59, 0.08);
  color: #FFD54F;
}
.dark-mode .pc-tip {
  background: rgba(33, 150, 243, 0.1);
  color: #90CAF9;
}

/* ========================================
   Utility classes (refactored from inline styles)
   ======================================== */

.pc-intro {
  margin-bottom: 12px;
}

.pc-section-heading {
  margin: 14px 0 8px;
  font-size: 0.95rem;
}

.pc-section-heading:first-child {
  margin-top: 8px;
}

.pc-tag-inline {
  margin-bottom: 10px;
}

.pc-content-text {
  margin: 10px 0;
}

/* Video grid for multiple videos side by side */
.pc-video-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 12px;
}

.pc-video-item p {
  font-size: 0.85em;
  margin: 0 0 6px;
}

/* 16:9 aspect ratio video wrapper */
.pc-video-wrapper {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  border-radius: 8px;
}

.pc-video-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

/* Single video card */
.pc-video-card {
  margin: 14px 0;
  border-left: 3px solid var(--accent-blue, #3b82f6);
  background: var(--surface, #fff);
  border-radius: 14px;
  padding: 16px 18px;
  box-shadow: 0 2px 12px rgba(61,43,31,0.08);
}

.pc-video-card h4 {
  margin: 0 0 8px;
}

.pc-video-card .pc-video-wrapper {
  margin-bottom: 8px;
}

/* List with top margin */
.pc-list-spaced {
  margin-top: 14px;
}

/* Step with nested list */
.pc-step-with-list ul {
  margin-top: 8px;
  padding-left: 18px;
}

.pc-step-with-list li {
  margin: 4px 0;
  line-height: 1.5;
}

/* Dark mode for new components */
@media (prefers-color-scheme: dark) {
  :root:not(.light-mode) .pc-video-card {
    background: #1c2128;
    border-left-color: #60a5fa;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
  }
}

.dark-mode .pc-video-card {
  background: #1c2128;
  border-left-color: #60a5fa;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}
