/*
 Theme Name:   OpenMic Child
 Theme URI:    https://openmic.co.kr
 Description:  OpenMic 교육 플랫폼 커스텀 테마 (Astra Child)
 Author:       홍명표
 Author URI:   https://openmic.co.kr
 Template:     astra
 Version:      5.0.0
 License:      GNU General Public License v2 or later
 Text Domain:  openmic-child
*/

/* ===== OpenMic Design Tokens v4.0 — 공여사들 벤치마킹 ===== */
:root {
  /* Primary — Vivid Orange (Energetic System v6.0) */
  --om-primary: #FF6B00;
  --om-primary-light: #FF8A33;
  --om-primary-dark: #E05E00;
  --om-primary-tint: #FFF5ED;
  --om-primary-hover: #E05E00;
  --om-primary-text: #CC5500;

  /* Contrast — Deep Black */
  --om-navy: #1A1A1A;
  --om-navy-light: #333333;
  --om-ivory: #ffffff;

  /* Neutrals — 공여사들 기준 (#f2f2f2 구간) */
  --om-gray-50: #FAFAFA;
  --om-gray-100: #f2f2f2;
  --om-gray-200: #E0E0E0;
  --om-gray-300: #D5D5D5;
  --om-gray-400: #999999;
  --om-gray-500: #757575;
  --om-gray-600: #333333;
  --om-divider: #E0E0E0;

  /* Semantic */
  --om-success: #10B981;
  --om-warning: #F59E0B;
  --om-error: #EF4444;
  --om-info: #3B82F6;

  /* Font Stack */
  --om-font-stack: 'Wanted Sans Variable', 'Wanted Sans', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;

  /* Typography Scale — 10단계 (brand-tone-manner.md 기준) */
  --om-fs-hero: clamp(40px, 6vw, 72px);      /* 히어로 H1 — 공여사들 80px 벤치마킹 (2026-03-30) */
  --om-fs-page: clamp(28px, 4vw, 40px);       /* 페이지 제목 */
  --om-fs-h2: clamp(22px, 2.5vw, 30px);       /* 섹션 제목 */
  --om-fs-h3: 1.25rem;                         /* 서브 제목 (20px) */
  --om-fs-body-lg: 1.125rem;                   /* 히어로 서브 (18px) */
  --om-fs-body: 1rem;                           /* 본문 (16px) */
  --om-fs-body-sm: 0.9375rem;                  /* 보조 본문 (15px) */
  --om-fs-caption: 0.875rem;                    /* 링크, 태그 (14px) */
  --om-fs-label: 0.8125rem;                     /* 뱃지, 라벨 (13px) */
  --om-fs-small: 0.75rem;                       /* 카테고리 뱃지 (12px) */

  /* Extended */
  --om-footer-text: #aaaaaa;
  --om-footer-link: #cccccc;
  --om-banner-yellow: #FFD666;
  --om-card-border: #E0E0E0;
  --om-gray-888: #888888;

  /* Spacing */
  --om-space-xs: 8px;
  --om-space-sm: 12px;
  --om-space-md: 16px;
  --om-space-lg: 24px;
  --om-space-xl: 32px;
  --om-space-2xl: 48px;
  --om-space-3xl: 64px;
  --om-space-4xl: 96px;

  /* Radius — 공여사들 직각 스타일 */
  --om-radius-sm: 0;
  --om-radius-md: 0;
  --om-radius-lg: 0;
  --om-radius-full: 9999px;

  /* Shadows — 공여사들: 그림자 없음, border로 구분 */
  --om-shadow-sm: none;
  --om-shadow-md: none;

  /* Highlight — Primary (#FF8533) at reduced opacity (텍스트 밑줄 효과) */
  --om-highlight-25: rgba(255, 133, 51, 0.25);
  --om-highlight-45: rgba(255, 133, 51, 0.45);
  --om-highlight-50: rgba(255, 133, 51, 0.5);

  /* White alpha — 다크 배경 위 반투명 흰색 (이메일 폼 등) */
  --om-white-alpha-10: rgba(255, 255, 255, 0.1);
  --om-white-alpha-30: rgba(255, 255, 255, 0.3);
  --om-white-alpha-50: rgba(255, 255, 255, 0.5);

  /* Card/Panel tokens (v5.0 — flat, 글래스 제거) */
  --om-glass-dark-bg: rgba(255, 255, 255, 0.06);
  --om-glass-dark-border: rgba(255, 255, 255, 0.10);
  --om-glass-light-bg: #ffffff;
  --om-glass-light-border: #E0E0E0;
  --om-glass-radius-card: 0;
  --om-glass-radius-btn: 0;

  /* Motion */
  --om-dur-short: 200ms;
  --om-dur-medium: 350ms;
  --om-ease: cubic-bezier(0.25, 0.1, 0.25, 1);
}

/* ===== Global — 공여사들 벤치마킹 (미니멀) ===== */
body {
  font-family: var(--om-font-stack);
  color: var(--om-navy);
  background: var(--om-ivory);
  line-height: 1.85;
  -webkit-font-smoothing: antialiased;
}

/* ===== Typography — DESIGN.md v3.0 기준 ===== */
h1, h2, h3, h4, h5, h6 {
  color: var(--om-navy);
  letter-spacing: -0.02em;
  line-height: 1.2;
}

h1 { font-size: var(--om-fs-hero); font-weight: 900; }
h2 { font-size: var(--om-fs-h2); font-weight: 700; }
h3 { font-size: var(--om-fs-h3); font-weight: 700; }
h4 { font-size: var(--om-fs-body); font-weight: 700; }

p {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--om-gray-500);
}

blockquote {
  font-size: 1.125rem;
  line-height: 1.8;
  color: var(--om-gray-500);
  padding-left: 20px;
  border-left: 3px solid var(--om-primary);
  margin: 24px 0;
}

a {
  color: var(--om-navy);
  text-decoration: none;
  transition: color var(--om-dur-short) var(--om-ease);
}
a:hover {
  color: var(--om-primary);
}

/* ===== Buttons — 공여사들 style (bold border) ===== */
.om-btn,
.wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  border-radius: var(--om-radius-md);
  font-family: inherit;
  font-size: 0.9375rem;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid var(--om-navy);
  transition: all var(--om-dur-short) var(--om-ease);
}

body .om-btn-primary,
body .wp-block-button.is-style-fill .wp-block-button__link {
  background: var(--om-primary);
  color: var(--om-navy);
  border-color: var(--om-navy);
}
body .om-btn-primary:hover,
body .wp-block-button.is-style-fill .wp-block-button__link:hover {
  background: var(--om-primary-dark);
}

.om-btn-secondary {
  background: var(--om-navy);
  color: var(--om-ivory);
  border-color: var(--om-navy);
}
.om-btn-secondary:hover {
  background: var(--om-navy-light);
}

body .om-btn-outline,
body .wp-block-button.is-style-outline .wp-block-button__link {
  background: var(--om-ivory);
  color: var(--om-navy);
  border: 1px solid var(--om-navy);
}
body .om-btn-outline:hover,
body .wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--om-primary);
  color: var(--om-navy);
}

/* ===== Cards — 공여사들 style (clean border) ===== */
.om-card {
  background: var(--om-ivory);
  border: 1px solid var(--om-gray-200);
  border-radius: var(--om-radius-lg);
  padding: var(--om-space-lg);
  transition: all var(--om-dur-short) var(--om-ease);
}
.om-card:hover {
  border-color: var(--om-primary);
}

/* ===== Astra Container/Footer 완전 제거 + 오버라이드 (P1-3 통합) ===== */
.ast-separate-container,
.ast-separate-container #primary,
.ast-separate-container #content > .ast-container,
.ast-separate-container .site-content > .ast-container,
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post,
.ast-separate-container .ast-archive-description,
.ast-plain-container #primary,
.ast-page-builder-template .site-content > .ast-container,
.ast-page-builder-template #primary,
#page > .site-content {
  padding: 0 !important;
  max-width: 100% !important;
}
.entry-content {
  margin: 0 !important;
}
/* 인라인 CSS에서 이전 — Astra 푸터/컨테이너 숨김 강화 */
.ast-footer-copyright {
  display: none !important;
  height: 0 !important;
  overflow: hidden !important;
}
/* 인라인 CSS에서 이전 — Astra 네비게이션 호버 색상 오버라이드 */
.main-header-menu a:hover,
.main-header-menu .current-menu-item > a,
.main-header-menu .current-menu-ancestor > a,
.ast-builder-menu-1 .main-header-menu a:hover,
.ast-header-break-point .main-navigation a:hover,
.main-header-menu .sub-menu a:hover {
  color: var(--om-primary) !important;
  background-color: transparent !important;
  background: transparent !important;
}

/* ===== Astra Overrides — 공여사들 layout ===== */
.ast-container {
  max-width: 100% !important;
  padding: 0 !important;
}

/* Header — 공여사들 벤치마킹 (clean border, 미니멀) */
.main-header-bar {
  background: var(--om-ivory);
  border-bottom: 1px solid var(--om-divider);
  box-shadow: none;
}
.main-header-bar .ast-container,
.main-header-bar .site-header-section {
  max-width: 1200px;
  margin: 0 auto;
  padding-left: 40px;
  padding-right: 40px;
}
@media (max-width: 768px) {
  .main-header-bar .ast-container,
  .main-header-bar .site-header-section {
    padding-left: 20px;
    padding-right: 20px;
  }
}
.main-header-bar .site-title a,
.main-header-bar .site-title a:visited {
  font-family: var(--om-font-stack) !important;
  font-weight: 900 !important;
  font-size: 1.5rem !important;
  letter-spacing: -0.03em;
  text-transform: none;
  color: var(--om-navy) !important;
}

/* Navigation — 공여사들 스타일: 600 weight, 밑줄 active */
.main-header-bar .main-navigation a,
.main-header-bar .ast-builder-menu .main-navigation a,
.ast-builder-menu-1 .main-header-menu a,
.main-header-menu > .menu-item > a,
.main-header-menu .sub-menu a,
body .ast-builder-menu-1 .main-header-menu > .menu-item > a,
body .main-header-bar .ast-builder-menu a {
  font-family: var(--om-font-stack) !important;
  font-size: var(--om-fs-body) !important;
  font-weight: 600 !important;
  color: var(--om-navy) !important;
  background-color: transparent !important;
  background: transparent !important;
  transition: all var(--om-dur-short) var(--om-ease) !important;
  letter-spacing: 0 !important;
  border-bottom: 2px solid transparent !important;
}
/* 호버: 밑줄 표시 */
.main-header-bar .main-navigation a:hover,
.main-header-bar .main-navigation a:focus,
.ast-builder-menu-1 .main-header-menu a:hover,
.main-header-menu > .menu-item > a:hover,
.main-header-menu .sub-menu a:hover {
  color: var(--om-navy) !important;
  border-bottom-color: var(--om-navy) !important;
  background-color: transparent !important;
  background: transparent !important;
}
/* 액티브: 밑줄 + 오렌지 */
.main-header-menu > .menu-item.current-menu-item > a,
body .ast-builder-menu-1 .main-header-menu > .menu-item.current-menu-item > a,
body .main-header-bar .ast-builder-menu .current-menu-item > a {
  color: var(--om-primary) !important;
  border-bottom-color: var(--om-primary) !important;
  background-color: transparent !important;
  background: transparent !important;
}

/* Footer — hide Astra default, minimal custom */
.site-footer,
.ast-small-footer,
.ast-footer-overlay,
footer.site-footer .ast-small-footer-section,
.ast-small-footer .ast-footer-site-title,
.site-below-footer-wrap {
  display: none !important;
}

/* ===== Global Footer (.om-gf-*) — functions.php wp_footer 출력 ===== */
/* !important 필수: Astra inline CSS + deploy 인라인 스타일 오버라이드 방지 */
.om-gf-banner{background:var(--om-primary-light) !important;padding:var(--om-space-xl) 0 !important;width:100% !important;display:block !important}
.om-gf-banner-inner{max-width:1200px !important;margin:0 auto !important;padding:0 80px !important;text-align:center !important}
.om-gf-banner-text{font-family:var(--om-font-stack) !important;font-size:clamp(16px,2vw,22px) !important;font-weight:700 !important;color:var(--om-navy) !important}
.om-gf{background:var(--om-navy) !important;color:var(--om-gray-888) !important;padding:60px 0 40px !important;width:100% !important;display:block !important}
.om-gf-inner{max-width:1200px !important;margin:0 auto !important;padding:0 80px !important}
.om-gf-grid{display:grid !important;grid-template-columns:1fr 1fr 1fr 1fr auto !important;gap:40px !important;margin-bottom:var(--om-space-2xl) !important}
.om-gf-col h4{color:var(--om-ivory) !important;font-size:13px !important;font-weight:700 !important;text-transform:uppercase !important;letter-spacing:1px !important;margin:0 0 var(--om-space-md) !important}
.om-gf-col a{display:block !important;color:var(--om-footer-link) !important;font-size:14px !important;line-height:2 !important;text-decoration:none !important}
.om-gf-col a:hover{color:var(--om-primary) !important}
.om-gf-logo{font-family:var(--om-font-stack) !important;font-size:28px !important;font-weight:900 !important;color:var(--om-ivory) !important;letter-spacing:-0.02em !important}
.om-gf-btm{border-top:1px solid var(--om-navy-light) !important;padding-top:var(--om-space-lg) !important;font-size:12px !important;line-height:1.8 !important;color:var(--om-footer-text) !important}
.om-gf-btm a{color:var(--om-footer-link) !important;text-decoration:underline !important;text-underline-offset:3px !important}
.om-gf-social{display:flex !important;gap:20px !important;align-items:center !important;margin-top:var(--om-space-md) !important}
.om-gf-social a{display:inline-flex !important;align-items:center !important;gap:6px !important;color:var(--om-footer-link) !important;text-decoration:none !important;font-size:13px !important}
.om-gf-social a:hover{color:var(--om-primary) !important}
@media(max-width:768px){.om-gf-grid{grid-template-columns:repeat(2,1fr) !important}.om-gf-inner,.om-gf-banner-inner{padding:0 var(--om-space-lg) !important}}
@media(max-width:480px){.om-gf-grid{grid-template-columns:1fr !important}}

/* ===== Submenu Dropdown — 공여사들 style ===== */
.main-header-menu .sub-menu,
.ast-builder-menu-1 .sub-menu {
  background: var(--om-ivory) !important;
  border: 1px solid var(--om-gray-300) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 8px 0 !important;
  min-width: 160px !important;
}
.main-header-menu .sub-menu a,
.ast-builder-menu-1 .sub-menu a {
  padding: 10px 24px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--om-navy) !important;
  border-bottom: none !important;
}
.main-header-menu .sub-menu a:hover {
  color: var(--om-primary) !important;
  background: transparent !important;
}
.main-header-menu .sub-menu .menu-item {
  border-bottom: none !important;
}

/* ===== Blog / Archive — 공여사들 3칸 그리드 ===== */
.ast-separate-container .ast-article-post {
  background: var(--om-gray-100) !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 32px !important;
  margin-bottom: 0 !important;
  box-shadow: none !important;
  border-bottom: 1px solid var(--om-gray-200) !important;
}

/* 블로그 리스트를 3칸 그리드로 */
.ast-separate-container #primary .ast-row,
#main > .ast-row {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 0 !important;
}

/* 카테고리 배지 */
.cat-links a {
  background: var(--om-navy) !important;
  color: var(--om-ivory) !important;
  font-size: var(--om-fs-small) !important;
  font-weight: 700 !important;
  padding: 4px 12px !important;
  border-radius: 0 !important;
  text-transform: none !important;
}

/* 제목 — 큰 볼드, 하이라이트 효과 */
.entry-title {
  font-family: var(--om-font-stack) !important;
  font-size: clamp(18px, 2vw, 24px) !important;
  font-weight: 900 !important;
  line-height: 1.3 !important;
  letter-spacing: -0.02em !important;
}
.entry-title a {
  color: var(--om-navy);
  font-weight: 900;
  background-image: linear-gradient(transparent 60%, var(--om-highlight-25) 60%);
  background-size: 100% 100%;
  background-repeat: no-repeat;
  text-decoration: none;
}
.entry-title a:hover {
  background-image: linear-gradient(transparent 60%, var(--om-highlight-50) 60%);
  color: var(--om-navy);
}

.entry-meta {
  font-size: 0.8125rem;
  color: var(--om-gray-400);
}

/* ===== Single Post — 공여사들 미니멀 본문 ===== */
.single .entry-content h2,
.single .entry-content h3 {
  font-family: var(--om-font-stack) !important;
  font-weight: 700 !important;
  color: var(--om-navy) !important;
  margin-top: 48px !important;
}
.single .entry-content h2 {
  font-size: var(--om-fs-h2) !important;
}

.single .entry-content p {
  font-size: 16px;
  line-height: 1.85;
  color: var(--om-gray-500);
}

.single .entry-content strong {
  font-weight: 700;
  color: var(--om-navy);
}

.single .entry-content blockquote {
  background: var(--om-gray-100);
  border-left: 4px solid var(--om-primary);
  padding: 20px 24px;
  margin: 32px 0;
  border-radius: 0;
  font-style: normal;
}

/* 이전/다음 글 네비게이션 */
.ast-single-post-navigation a {
  font-weight: 600 !important;
  color: var(--om-navy) !important;
}
.ast-single-post-navigation a:hover {
  color: var(--om-primary) !important;
}

/* 반응형 블로그 그리드 */
@media(max-width:768px) {
  .ast-separate-container #primary .ast-row,
  #main > .ast-row {
    grid-template-columns: 1fr !important;
  }
}

/* ===== Gutenberg Blocks ===== */
.wp-block-group {
  border-radius: var(--om-radius-lg);
}
.wp-block-columns {
  gap: 20px;
}

/* CTA Section — 직각 */
.om-cta {
  background: var(--om-navy);
  color: var(--om-ivory);
  border-radius: 0;
  padding: 64px 48px;
  text-align: center;
}
.om-cta h2 { color: var(--om-ivory); }
.om-cta p { color: var(--om-gray-400); }

/* Badges */
.om-badge {
  display: inline-block;
  background: var(--om-primary);
  color: var(--om-navy);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 6px 16px;
  border-radius: var(--om-radius-full);
  border: 1px solid var(--om-navy);
}

.om-tool-badge {
  display: inline-block;
  background: var(--om-success);
  color: var(--om-ivory);
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: var(--om-radius-full);
}

.om-char-tag {
  display: inline-block;
  background: var(--om-primary-tint);
  color: var(--om-primary-dark);
  font-size: 12px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: var(--om-radius-full);
}

/* ===== Forms ===== */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="url"],
input[type="tel"],
input[type="number"],
textarea,
select {
  border: 1px solid var(--om-gray-300);
  border-radius: var(--om-radius-md);
  padding: 12px 16px;
  font-family: inherit;
  font-size: 0.9375rem;
  background: var(--om-ivory);
  color: var(--om-navy);
  transition: border var(--om-dur-short) var(--om-ease);
}
input:focus,
textarea:focus,
select:focus {
  outline: 2px solid var(--om-primary);
  outline-offset: 2px;
  border-color: var(--om-primary);
}

/* ===== Email Form ===== */
.om-email-form {
  max-width: 400px;
  margin: 24px auto 0;
  display: flex;
  gap: 8px;
}
.om-email-form input[type="email"] {
  flex: 1;
  background: var(--om-white-alpha-10);
  border: 1px solid var(--om-white-alpha-30);
  color: var(--om-ivory);
}
.om-email-form input[type="email"]::placeholder {
  color: var(--om-white-alpha-50);
}

/* ===== Blog / Archive — 공여사들 스타일 풀폭 레이아웃 ===== */
/* !important: Astra inline CSS specificity 오버라이드 필수 */

/* 전체 래퍼: 풀폭 — 배경이 화면 끝까지 */
.om-blog-wrap{max-width:100% !important;margin:0 !important;padding:0 !important;background:var(--om-ivory, #ffffff) !important}

/* 타이틀: 중앙 정렬, 상단 여백 */
.om-blog-title{max-width:1200px !important;margin:0 auto !important;padding:80px 40px 20px !important;font-size:var(--om-fs-page) !important;font-weight:900 !important;text-align:center !important;color:var(--om-navy, #1E2A3A) !important;letter-spacing:-0.04em !important;line-height:1.1 !important}

/* 카테고리 탭: 중앙 정렬 */
.om-blog-tabs{max-width:1200px !important;margin:0 auto !important;padding:0 40px 48px !important;display:flex !important;justify-content:center !important;gap:8px !important;flex-wrap:wrap !important}
.om-blog-tab{padding:10px 24px !important;font-size:var(--om-fs-caption) !important;font-weight:700 !important;border:1px solid var(--om-navy, #1E2A3A) !important;cursor:pointer !important;background:var(--om-ivory, #ffffff) !important;color:var(--om-navy, #1E2A3A) !important;text-decoration:none !important;transition:all 0.2s !important}
.om-blog-tab:hover{background:var(--om-gray-100, #f2f2f2) !important}
.om-blog-tab.active{background:var(--om-primary-tint, #FFF3EB) !important;border-color:var(--om-navy, #1E2A3A) !important}

/* 카드 그리드: 풀폭 배경, 3칸 그리드 */
.om-blog-grid{display:grid !important;grid-template-columns:repeat(3,1fr) !important;gap:0 !important;background:var(--om-gray-100, #f2f2f2) !important}

/* 카드 스타일 */
.om-blog-card{background:var(--om-gray-100, #f2f2f2) !important;border:1px solid var(--om-gray-200, #E0E0E0) !important;padding:0 !important;overflow:hidden !important}
.om-blog-card-inner{padding:32px 28px !important;min-height:240px !important;display:flex !important;flex-direction:column !important;justify-content:flex-start !important;gap:16px !important}
.om-blog-cat-badge{display:inline-block !important;background:var(--om-navy, #1E2A3A) !important;color:var(--om-ivory, #ffffff) !important;font-size:12px !important;font-weight:700 !important;padding:5px 14px !important;border-radius:0 !important;width:fit-content !important}
.om-blog-card-title{margin:0 !important}
.om-blog-card-title a{font-size:var(--om-fs-body) !important;font-weight:700 !important;line-height:1.35 !important;color:var(--om-navy) !important;text-decoration:none !important;background-image:linear-gradient(transparent 55%,var(--om-highlight-25) 55%) !important;background-size:100% 100% !important;background-repeat:no-repeat !important;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.om-blog-card-title a:hover{background-image:linear-gradient(transparent 55%,var(--om-highlight-45) 55%) !important}
.om-blog-card-meta{padding:12px 28px !important;border-top:1px solid var(--om-gray-300, #E0E0E0) !important;font-size:13px !important;color:var(--om-gray-888, #888888) !important;display:flex !important;gap:12px !important;align-items:center !important}
.om-blog-card-cat{color:var(--om-primary, #FF8533) !important;font-weight:600 !important}
.om-blog-card-title-sub{color:var(--om-gray-500, #757575) !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important}

/* 페이지네이션 */
.om-blog-pagination{text-align:center !important;padding:48px 0 !important;background:var(--om-gray-100, #f2f2f2) !important}
.om-blog-pagination .nav-links{display:flex !important;justify-content:center !important;gap:8px !important}
.om-blog-pagination .nav-links a,.om-blog-pagination .nav-links span{padding:10px 16px !important;font-weight:700 !important;color:var(--om-navy, #1E2A3A) !important;text-decoration:none !important;border:1px solid var(--om-gray-300, #E0E0E0) !important}
.om-blog-pagination .nav-links .current{background:var(--om-navy, #1E2A3A) !important;color:var(--om-ivory, #ffffff) !important;border-color:var(--om-navy, #1E2A3A) !important}

/* Astra separate-container 배경 오버라이드: 모든 페이지 풀폭 */
body.blog .ast-separate-container,
body.blog .ast-separate-container #primary,
body.archive .ast-separate-container,
body.archive .ast-separate-container #primary,
body.page .ast-separate-container,
body.page .ast-separate-container #primary{background:transparent !important;padding:0 !important;max-width:100% !important}
body.blog #content.site-content,
body.archive #content.site-content,
body.page #content.site-content{padding:0 !important}
/* Astra 기본 페이지 타이틀 완전 숨김 (커스텀 타이틀 사용) */
body.page .ast-archive-description,
body.page .entry-header,
body.page h1.entry-title,
body.page .page-header{display:none !important}
body.page .ast-article-single{padding:0 !important;margin:0 !important;background:transparent !important;max-width:100% !important}
body.page .entry-content{max-width:100% !important;padding:0 !important}
body.page .ast-container{max-width:100% !important;padding:0 !important}

@media(max-width:768px){
  .om-blog-title{padding:48px 20px 16px !important}
  .om-blog-tabs{padding:0 20px 32px !important;gap:8px !important}
  .om-blog-tab{padding:10px 20px !important;font-size:13px !important}
  .om-blog-grid{grid-template-columns:1fr !important}
}

/* ===== 전체 페이지 공통 오버라이드 — 공여사들 벤치마킹 ===== */
/* 인라인 CSS 하드코딩 강제 오버라이드 (!important 필수) */

/* --- 전체 페이지: 직각, 그림자 제거 --- */
.tc, .ob-card, .ab-tcard, .ab-vcard, .ab-story-box,
.mic-card, .mic-step, .acc,
.wp-block-group, .wp-block-cover,
article.ast-article-single {
  border-radius: 0 !important;
  box-shadow: none !important;
}
.tc:hover, .ob-card:hover, .ab-tcard:hover, .mic-card:hover {
  transform: none !important;
  box-shadow: none !important;
  border-color: var(--om-primary, #FF8533) !important;
}

/* --- Tools 페이지 (.tp-*) --- */
.tp-hd{padding:80px 24px 48px !important}
.tp-st{background:var(--om-gray-100, #f2f2f2) !important;border-color:var(--om-divider, #E0E0E0) !important}
.tp-fl .fb{border-radius:0 !important;border-color:var(--om-divider, #E0E0E0) !important}
.tp-fl .fb.on{background:var(--om-navy, #1E2A3A) !important;border-color:var(--om-navy, #1E2A3A) !important}
.tc{border-radius:0 !important;border-color:var(--om-divider, #E0E0E0) !important}
.tc .i{border-radius:0 !important}
.tc:hover{border-color:var(--om-primary, #FF8533) !important;transform:none !important;box-shadow:none !important}
.tc:hover .a{color:var(--om-primary, #FF8533) !important}

/* --- Ebook 페이지 (.ob-*) --- */
.ob-wrap{max-width:100% !important;padding:0 !important}
.ob-title,.ob-subtitle{max-width:1200px !important;margin-left:auto !important;margin-right:auto !important;padding-left:40px !important;padding-right:40px !important}
.ob-grid{max-width:100% !important}
.ob-card{border-radius:0 !important;box-shadow:none !important}
.ob-card:hover{transform:none !important;box-shadow:none !important}
.ob-badge{border-radius:0 !important}
.ob-tab{border-radius:0 !important}
.ob-tab.active{border-bottom:2px solid var(--om-navy, #1E2A3A) !important}

/* --- About 페이지 (.ab-*) --- */
.ab{overflow-x:hidden !important}
.ab-hero{min-height:70vh !important}
.ab-full{padding:80px 40px !important}
.ab-vcard,.ab-tcard{border-radius:0 !important;box-shadow:none !important}
.ab-vcard:hover,.ab-tcard:hover{transform:none !important}
.ab-band{border-radius:0 !important}
.ab-cta{border-radius:0 !important}

/* --- 마이크 잡기 페이지 (.mic-*) --- */
.mic-page .mic-hero{padding:80px 24px 64px !important}
.mic-card,.mic-step{border-radius:0 !important;box-shadow:none !important}
.mic-card:hover{transform:none !important}
.mic-btn{border-radius:0 !important}

/* --- 인증 페이지 (로그인/회원가입/비번찾기) --- */
.om-auth-wrap,.nsl-container{max-width:480px !important;margin:0 auto !important;padding:80px 24px !important}
.om-auth-title{font-size:clamp(32px,5vw,48px) !important;font-weight:900 !important;text-align:center !important;color:var(--om-navy, #1E2A3A) !important;margin-bottom:40px !important;letter-spacing:-0.03em !important}
.om-auth-form input[type="text"],
.om-auth-form input[type="email"],
.om-auth-form input[type="password"]{
  width:100% !important;
  padding:16px 20px !important;
  border:1px solid var(--om-divider, #E0E0E0) !important;
  border-radius:0 !important;
  font-size:15px !important;
  font-family:var(--om-font-stack) !important;
  margin-bottom:12px !important;
  background:var(--om-ivory, #ffffff) !important;
  color:var(--om-navy, #1E2A3A) !important;
  transition:border-color 0.2s !important;
}
.om-auth-form input:focus{
  border-color:var(--om-navy) !important;
  outline:2px solid var(--om-primary) !important;
  outline-offset:2px !important;
}
.om-auth-form .om-auth-btn{
  width:100% !important;
  padding:16px !important;
  background:var(--om-navy, #1E2A3A) !important;
  color:var(--om-ivory, #ffffff) !important;
  border:none !important;
  border-radius:0 !important;
  font-size:16px !important;
  font-weight:700 !important;
  font-family:var(--om-font-stack) !important;
  cursor:pointer !important;
  transition:background 0.2s !important;
  margin-top:8px !important;
}
.om-auth-form .om-auth-btn:hover{
  background:var(--om-primary, #FF8533) !important;
}
.om-auth-links{text-align:center !important;margin-top:24px !important;font-size:14px !important;color:var(--om-gray-500, #757575) !important}
.om-auth-links a{color:var(--om-navy, #1E2A3A) !important;border-bottom:1px solid var(--om-divider, #E0E0E0) !important;padding-bottom:1px !important}
.om-auth-links a:hover{border-bottom-color:var(--om-primary, #FF8533) !important;color:var(--om-primary, #FF8533) !important}

/* --- WordPress 기본 로그인/가입 폼 오버라이드 --- */
.entry-content input[type="text"],
.entry-content input[type="email"],
.entry-content input[type="password"],
.entry-content input[type="url"],
.entry-content input[type="tel"],
.entry-content textarea {
  border-radius: 0 !important;
  border: 1px solid var(--om-divider, #E0E0E0) !important;
  padding: 14px 16px !important;
  font-family: var(--om-font-stack) !important;
}
.entry-content input:focus,
.entry-content textarea:focus {
  border-color: var(--om-navy) !important;
  outline: 2px solid var(--om-primary) !important;
  outline-offset: 2px !important;
}
.entry-content input[type="submit"],
.entry-content button[type="submit"] {
  border-radius: 0 !important;
  background: var(--om-navy, #1E2A3A) !important;
  color: var(--om-ivory, #ffffff) !important;
  border: none !important;
  padding: 14px 32px !important;
  font-weight: 700 !important;
  font-family: var(--om-font-stack) !important;
  cursor: pointer !important;
  transition: background 0.2s !important;
}
.entry-content input[type="submit"]:hover,
.entry-content button[type="submit"]:hover {
  background: var(--om-primary, #FF8533) !important;
}

/* --- 공통 페이지 섹션 스타일 --- */
.ast-separate-container .ast-article-single {
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  box-shadow: none !important;
}
#content.site-content {
  padding: 0 !important;
}

/* --- 수강생 후기 페이지 --- */
.rv-wrap{max-width:100%;margin:0 auto;padding:0}
.rv-header{text-align:center;padding:80px 24px 48px;background:var(--om-ivory, #ffffff)}
.rv-title{font-size:clamp(36px,5vw,56px);font-weight:900;color:var(--om-navy, #1E2A3A);letter-spacing:-0.03em;margin:0 0 16px}
.rv-subtitle{font-size:clamp(16px,2vw,20px);color:var(--om-gray-500, #757575);font-weight:400;margin:0}
.rv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;width:100%}
.rv-card{padding:40px 32px;background:var(--om-ivory, #ffffff);border:1px solid var(--om-divider, #E0E0E0);border-radius:0;box-shadow:none;transition:background 0.2s}
.rv-card:nth-child(even){background:var(--om-gray-100, #f2f2f2)}
.rv-card:hover{background:var(--om-gray-100, #f2f2f2)}
.rv-card:nth-child(even):hover{background:var(--om-gray-200)}
.rv-stars{font-size:16px;color:var(--om-primary, #FF8533);margin-bottom:16px;letter-spacing:2px}
.rv-text{font-size:15px;line-height:1.8;color:var(--om-navy, #1E2A3A);margin-bottom:20px;font-weight:400}
.rv-name{font-size:16px;font-weight:700;color:var(--om-navy, #1E2A3A);margin-bottom:4px}
.rv-info{font-size:13px;color:var(--om-gray-500, #757575);margin-bottom:4px}
.rv-mic{font-size:13px;color:var(--om-primary, #FF8533);font-weight:600}
.rv-cta-section{text-align:center;padding:64px 24px;background:var(--om-gray-100, #f2f2f2)}
.rv-cta{display:inline-block;padding:18px 48px;background:var(--om-navy, #1E2A3A);color:var(--om-ivory, #ffffff);font-size:16px;font-weight:700;border:none;border-radius:0;text-decoration:none;font-family:var(--om-font-stack);transition:background 0.2s;cursor:pointer}
.rv-cta:hover{background:var(--om-primary, #FF8533);color:var(--om-ivory, #ffffff)}

/* --- Astra 404 스타일 --- */
.error-404 .page-title{font-size:3rem !important;font-weight:900 !important;color:var(--om-navy, #1E2A3A) !important}

/* ===== Responsive ===== */

/* Tablet (768~1024px) — 공여사들 벤치마킹 */
@media (max-width: 1024px) {
  .ast-container { padding: 0 !important; }
  .main-header-bar .ast-container,
  .main-header-bar .site-header-section {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
  .om-gf-inner, .om-gf-banner-inner { padding: 0 32px !important; }
  .om-gf-grid { gap: 24px !important; }
}

/* Mobile (≤768px) */
@media (max-width: 768px) {
  h1 { font-size: 2rem; }
  h2 { font-size: 1.5rem; }
  h3 { font-size: 1.125rem; }

  .om-cta { padding: 48px 24px; }
  .om-email-form { flex-direction: column; }
  .ab-full{padding:48px 20px !important}
  .om-auth-wrap{padding:48px 20px !important}
  .rv-grid{grid-template-columns:repeat(2,1fr)}
  .rv-card{padding:32px 24px}
}

/* ===== Mobile Navigation — 공여사들 스타일 커스텀 ===== */
/* Astra 햄버거 메뉴 오버라이드 */
@media (max-width: 921px) {
  /* 모바일 메뉴 토글 버튼 */
  .ast-mobile-menu-trigger-minimal,
  .ast-button-wrap .ast-mobile-menu-buttons-minimal,
  .menu-toggle {
    color: var(--om-navy) !important;
    border: none !important;
    background: transparent !important;
  }
  /* 모바일 드롭다운 메뉴 패널 */
  .ast-mobile-popup-drawer .ast-mobile-popup-inner,
  .ast-mobile-header-wrap .ast-mobile-header-content,
  .main-header-menu {
    background: var(--om-ivory) !important;
    border-top: 1px solid var(--om-divider) !important;
  }
  /* 모바일 메뉴 링크 */
  .ast-mobile-popup-drawer .menu-item > a,
  .ast-mobile-header-content .menu-item > a,
  .ast-header-break-point .main-navigation .menu-item > a {
    font-family: var(--om-font-stack) !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    color: var(--om-navy) !important;
    padding: 14px 20px !important;
    border-bottom: 1px solid var(--om-divider) !important;
  }
  .ast-mobile-popup-drawer .menu-item > a:hover,
  .ast-mobile-header-content .menu-item > a:hover,
  .ast-header-break-point .main-navigation .menu-item > a:hover {
    color: var(--om-primary) !important;
    background: var(--om-gray-50) !important;
  }
  /* 현재 페이지 강조 */
  .ast-mobile-popup-drawer .current-menu-item > a,
  .ast-mobile-header-content .current-menu-item > a {
    color: var(--om-primary) !important;
    font-weight: 700 !important;
  }
  /* 닫기 버튼 */
  .ast-mobile-popup-drawer .menu-toggle-close,
  .menu-toggle-close {
    color: var(--om-navy) !important;
  }
}

@media (max-width: 480px) {
  h1 { font-size: 1.75rem; }
  .om-badge { font-size: 0.625rem; padding: 4px 12px; }
  .rv-grid{grid-template-columns:1fr}
  .rv-header{padding:48px 20px 32px}
}

/* ===== Accessibility (WCAG 2.1 AA) ===== */

/* Skip Navigation Link */
.skip-link {
  position: absolute;
  top: -100%;
  left: 0;
  background: var(--om-navy);
  color: var(--om-ivory);
  padding: 12px 24px;
  font-weight: 700;
  z-index: 10000;
  transition: top var(--om-dur-short) var(--om-ease);
}
.skip-link:focus {
  top: 0;
  outline: 2px solid var(--om-primary);
  outline-offset: 2px;
}

/* Global Focus Ring — 모든 인터랙티브 요소 */
.om-btn:focus,
.om-btn:focus-visible,
.om-btn-primary:focus,
.om-btn-secondary:focus,
.om-btn-outline:focus,
.om-blog-tab:focus,
.om-blog-tab:focus-visible,
.om-blog-card-title a:focus,
.om-blog-card a:focus,
.rv-cta:focus,
.om-auth-btn:focus,
.wp-block-button__link:focus,
.ast-single-post-navigation a:focus,
.om-blog-pagination .nav-links a:focus {
  outline: 2px solid var(--om-primary) !important;
  outline-offset: 2px !important;
}

/* ===== Alert / Feedback UI Components ===== */
/* 에러/성공/경고/정보 메시지 표시용 — SSOT: --om-success, --om-error, --om-warning, --om-info */
.om-alert {
  display: flex;
  align-items: flex-start;
  gap: var(--om-space-sm);
  padding: var(--om-space-md) var(--om-space-lg);
  border: 1px solid var(--om-divider);
  border-radius: var(--om-radius-md);
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--om-navy);
  margin-bottom: var(--om-space-md);
}

.om-alert-icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-top: 1px;
}

.om-alert-content {
  flex: 1;
}

.om-alert-title {
  font-weight: 700;
  margin-bottom: 4px;
}

/* Success */
.om-alert-success {
  border-color: var(--om-success);
  background: #ECFDF5;
}
.om-alert-success .om-alert-icon { color: var(--om-success); }
.om-alert-success .om-alert-title { color: var(--om-success); }

/* Error */
.om-alert-error {
  border-color: var(--om-error);
  background: #FEF2F2;
}
.om-alert-error .om-alert-icon { color: var(--om-error); }
.om-alert-error .om-alert-title { color: var(--om-error); }

/* Warning */
.om-alert-warning {
  border-color: var(--om-warning);
  background: #FFFBEB;
}
.om-alert-warning .om-alert-icon { color: var(--om-warning); }
.om-alert-warning .om-alert-title { color: var(--om-warning); }

/* Info */
.om-alert-info {
  border-color: var(--om-info);
  background: #EFF6FF;
}
.om-alert-info .om-alert-icon { color: var(--om-info); }
.om-alert-info .om-alert-title { color: var(--om-info); }

/* Dismissible */
.om-alert-dismiss {
  flex-shrink: 0;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: var(--om-gray-400);
  font-size: 1.25rem;
  line-height: 1;
  transition: color var(--om-dur-short) var(--om-ease);
}
.om-alert-dismiss:hover {
  color: var(--om-navy);
}

/* Reduced Motion — 접근성 필수 (WCAG 2.3.3) */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ===== Card Utility Classes (v5.0 — flat) ===== */

/* Dark card (네이비/다크 배경 위) */
.om-glass-dark {
  background: var(--om-glass-dark-bg);
  border: 1px solid var(--om-glass-dark-border);
}

/* Light card (흰색/밝은 배경 위) */
.om-glass-light {
  background: var(--om-glass-light-bg);
  border: 1px solid var(--om-glass-light-border);
}
