/**
 * Asera Child Theme - Base Styles
 * 
 * GeneratePress 기본 스타일 오버라이드
 * Scribe 스킨의 레이아웃 패턴 적용
 */

/* ========================================
   전역 스타일
   ======================================== */

body {
  font-family: var(--asera-font-family);
  font-size: var(--asera-font-size-base);
  line-height: var(--asera-line-height-normal);
  color: var(--asera-text-primary);
  background-color: var(--asera-surface-50);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  word-break: keep-all;
}

/* ========================================
   타이포그래피
   ======================================== */

/* Headings - Blog/Archive only, EXCLUDE Footer Element (.gb-element-f5806f67) */
.single-post h1:not(.gb-element-f5806f67 *), .single-post h2:not(.gb-element-f5806f67 *), .single-post h3:not(.gb-element-f5806f67 *), .single-post h4:not(.gb-element-f5806f67 *), .single-post h5:not(.gb-element-f5806f67 *), .single-post h6:not(.gb-element-f5806f67 *),
.blog h1:not(.gb-element-f5806f67 *), .blog h2:not(.gb-element-f5806f67 *), .blog h3:not(.gb-element-f5806f67 *), .blog h4:not(.gb-element-f5806f67 *), .blog h5:not(.gb-element-f5806f67 *), .blog h6:not(.gb-element-f5806f67 *),
.archive h1:not(.gb-element-f5806f67 *), .archive h2:not(.gb-element-f5806f67 *), .archive h3:not(.gb-element-f5806f67 *), .archive h4:not(.gb-element-f5806f67 *), .archive h5:not(.gb-element-f5806f67 *), .archive h6:not(.gb-element-f5806f67 *) {
  font-family: var(--asera-font-family);
  font-weight: var(--asera-font-weight-semibold);
  color: var(--asera-text-primary);
  letter-spacing: var(--asera-letter-spacing-tight);
  line-height: var(--asera-line-height-tight);
}

/* Individual heading sizes - Blog/Archive only, EXCLUDE Footer Element */
.single-post h1:not(.gb-element-f5806f67 *), .blog h1:not(.gb-element-f5806f67 *), .archive h1:not(.gb-element-f5806f67 *) {
  font-size: var(--asera-font-size-h1);
  line-height: var(--asera-line-height-tight);
  margin-bottom: var(--asera-spacing-lg);
}

.single-post h2:not(.gb-element-f5806f67 *), .blog h2:not(.gb-element-f5806f67 *), .archive h2:not(.gb-element-f5806f67 *) {
  font-size: var(--asera-font-size-h2);
  line-height: var(--asera-line-height-tight);
  margin-bottom: var(--asera-spacing-lg);
}

.single-post h3:not(.gb-element-f5806f67 *), .blog h3:not(.gb-element-f5806f67 *), .archive h3:not(.gb-element-f5806f67 *) {
  font-size: var(--asera-font-size-h3);
  line-height: 1.4;
  margin-bottom: 20px;
}

.single-post h4:not(.gb-element-f5806f67 *), .blog h4:not(.gb-element-f5806f67 *), .archive h4:not(.gb-element-f5806f67 *) {
  font-size: var(--asera-font-size-h4);
  line-height: var(--asera-line-height-normal);
  margin-bottom: 24px;
}

/* 모바일 반응형 - Blog/Archive only, EXCLUDE Footer Element */
@media (max-width: 768px) {
  .single-post h1:not(.gb-element-f5806f67 *), .blog h1:not(.gb-element-f5806f67 *), .archive h1:not(.gb-element-f5806f67 *) {
    font-size: var(--asera-font-size-h1-mobile);
  }
  
  .single-post h2:not(.gb-element-f5806f67 *), .blog h2:not(.gb-element-f5806f67 *), .archive h2:not(.gb-element-f5806f67 *) {
    font-size: var(--asera-font-size-h2-mobile);
    line-height: 1.3;
  }
  
  .single-post h3:not(.gb-element-f5806f67 *), .blog h3:not(.gb-element-f5806f67 *), .archive h3:not(.gb-element-f5806f67 *) {
    font-size: var(--asera-font-size-h3-mobile);
    margin-bottom: var(--asera-spacing-lg);
  }
}

/* ========================================
   컨테이너
   ======================================== */

.grid-container {
  max-width: var(--asera-container-width);
}

.wp-block-group__inner-container {
  max-width: var(--asera-container-width);
  margin-left: auto;
  margin-right: auto;
}

/* ========================================
   헤더
   ======================================== */

.site-header {
  background-color: var(--asera-surface-50);
}

.inside-header {
  padding: var(--asera-header-padding-desktop);
}

@media (max-width: 768px) {
  .inside-header {
    padding: var(--asera-header-padding-mobile);
  }
}


.main-title a,
.main-title a:hover {
  color: var(--asera-text-tertiary);
}

/* ========================================
   네비게이션
   ======================================== */

.main-navigation {
  font-family: var(--asera-font-family);
}

.main-navigation .main-nav ul li a,
.main-navigation .menu-toggle,
.main-navigation .menu-bar-items {
  font-family: var(--asera-font-family);
  font-weight: var(--asera-font-weight-semibold);
  font-size: var(--asera-font-size-nav);
  text-transform: uppercase;
  letter-spacing: var(--asera-letter-spacing-wide);
  line-height: 1.5em;
  color: var(--asera-text-primary);
  padding-left: var(--asera-nav-item-padding);
  padding-right: var(--asera-nav-item-padding);
  transition: color var(--asera-transition-normal) var(--asera-transition-timing);
}

.main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a,
.main-navigation .main-nav ul li:not([class*="current-menu-"]):focus > a,
.main-navigation .main-nav ul li.sfHover:not([class*="current-menu-"]) > a,
.main-navigation .menu-bar-item:hover > a,
.main-navigation .menu-bar-item.sfHover > a {
  color: var(--asera-text-secondary);
}

.main-navigation .main-nav ul li[class*="current-menu-"] > a {
  color: var(--asera-text-primary);
}

/* 서브메뉴 */
.main-navigation ul ul {
  background-color: var(--asera-surface-50);
  width: var(--asera-nav-submenu-width);
}

.main-navigation .main-nav ul ul li a {
  font-weight: var(--asera-font-weight-semibold);
  font-size: var(--asera-font-size-nav);
  letter-spacing: var(--asera-letter-spacing-wide);
  line-height: 1.5;
  color: var(--asera-text-primary);
  padding: var(--asera-nav-submenu-padding);
}

.main-navigation .main-nav ul ul li:not([class*="current-menu-"]):hover > a,
.main-navigation .main-nav ul ul li:not([class*="current-menu-"]):focus > a,
.main-navigation .main-nav ul ul li.sfHover:not([class*="current-menu-"]) > a {
  color: var(--asera-text-primary);
  background-color: var(--asera-surface-200);
}

.main-navigation .main-nav ul ul li[class*="current-menu-"] > a {
  color: var(--asera-text-primary);
  background-color: var(--asera-surface-50);
}

/* 네비게이션 내부 컨테이너 */
.nav-below-header .main-navigation .inside-navigation.grid-container,
.nav-above-header .main-navigation .inside-navigation.grid-container {
  padding: 0 var(--asera-spacing-sm);
}

/* 모바일 네비게이션 */
@media (max-width: 768px) {
  .main-navigation .menu-toggle {
    font-size: 30px;
  }
  
  .main-navigation .menu-toggle,
  .main-navigation .mobile-bar-items a,
  .main-navigation .menu-bar-item > a {
    padding-left: 0;
    padding-right: 0;
  }
  
  .main-navigation .main-nav ul li a,
  .main-navigation .menu-toggle,
  .main-navigation .mobile-bar-items a,
  .main-navigation .menu-bar-item > a {
    line-height: 40px;
  }
  
  .main-navigation .site-logo.navigation-logo img,
  .mobile-header-navigation .site-logo.mobile-header-logo img {
    height: 40px;
  }
  
  .main-navigation .menu-bar-item:hover > a,
  .main-navigation .menu-bar-item.sfHover > a {
    background: none;
    color: var(--asera-text-primary);
  }
}

/* ========================================
   본문 영역
   ======================================== */

.separate-containers .inside-article,
.separate-containers .comments-area,
.separate-containers .page-header,
.separate-containers .paging-navigation,
.one-container .site-content,
.inside-page-header {
  color: var(--asera-text-primary);
  background-color: var(--asera-surface-50);
  padding: var(--asera-content-padding-desktop);
}

.site-main .wp-block-group__inner-container {
  padding: var(--asera-content-padding-desktop);
}

.separate-containers .paging-navigation {
  padding-top: 20px;
  padding-bottom: 20px;
}

@media (max-width: 768px) {
  .separate-containers .inside-article,
  .separate-containers .comments-area,
  .separate-containers .page-header,
  .separate-containers .paging-navigation,
  .one-container .site-content,
  .inside-page-header {
    padding: var(--asera-content-padding-mobile);
  }
  
  .site-main .wp-block-group__inner-container {
    padding: var(--asera-content-padding-mobile);
  }
}

/* Wide/Full 너비 */
.entry-content .alignwide,
body:not(.no-sidebar) .entry-content .alignfull {
  margin-left: calc(-1 * var(--asera-container-padding-desktop));
  width: calc(100% + (var(--asera-container-padding-desktop) * 2));
  max-width: calc(100% + (var(--asera-container-padding-desktop) * 2));
}

@media (max-width: 768px) {
  .entry-content .alignwide,
  body:not(.no-sidebar) .entry-content .alignfull {
    margin-left: calc(-1 * var(--asera-container-padding-mobile));
    width: calc(100% + (var(--asera-container-padding-mobile) * 2));
    max-width: calc(100% + (var(--asera-container-padding-mobile) * 2));
  }
}

/* ========================================
   사이드바
   ======================================== */

.one-container.right-sidebar .site-main,
.one-container.both-right .site-main {
  margin-right: var(--asera-sidebar-margin);
}

.one-container.left-sidebar .site-main,
.one-container.both-left .site-main {
  margin-left: var(--asera-sidebar-margin);
}

.one-container.both-sidebars .site-main {
  margin: 0 var(--asera-sidebar-margin);
}

.sidebar .widget {
  background-color: var(--asera-surface-50);
  margin-bottom: 0;
}

.separate-containers .inside-right-sidebar,
.separate-containers .inside-left-sidebar {
  margin-top: 0;
  margin-bottom: 0;
}

.both-right .inside-left-sidebar,
.both-left .inside-left-sidebar {
  margin-right: 0;
}

.both-right .inside-right-sidebar,
.both-left .inside-right-sidebar {
  margin-left: 0;
}

/* 위젯 패딩 */
.widget-area .widget {
  padding: var(--asera-spacing-lg);
}

/* ========================================
   링크
   ======================================== */

/* Links - 블로그 포스트에만 적용 (페이지 제외, 푸터 Element 제외) */
.single-post a:not(.gb-element-f5806f67 *),
.blog a:not(.gb-element-f5806f67 *),
.archive a:not(.gb-element-f5806f67 *) {
  color: var(--asera-text-primary);
  text-decoration: none;
  transition: color var(--asera-transition-normal) var(--asera-transition-timing);
}

/* Links hover - 블로그 포스트에만 적용 (페이지 제외, 푸터 Element 제외) */
.single-post a:not(.gb-element-f5806f67 *):hover,
.single-post a:not(.gb-element-f5806f67 *):focus,
.single-post a:not(.gb-element-f5806f67 *):active,
.blog a:not(.gb-element-f5806f67 *):hover,
.blog a:not(.gb-element-f5806f67 *):focus,
.blog a:not(.gb-element-f5806f67 *):active,
.archive a:not(.gb-element-f5806f67 *):hover,
.archive a:not(.gb-element-f5806f67 *):focus,
.archive a:not(.gb-element-f5806f67 *):active {
  color: var(--asera-text-secondary);
}

.entry-title a {
  color: var(--asera-text-primary);
}

.entry-title a:hover {
  color: var(--asera-text-secondary);
}

/* ========================================
   버튼
   ======================================== */

button:not(.menu-toggle),
html input[type="button"],
input[type="reset"],
input[type="submit"],
a.button,
.wp-block-button .wp-block-button__link {
  font-family: var(--asera-font-family);
  font-weight: var(--asera-font-weight-semibold);
  font-size: var(--asera-font-size-button);
  text-transform: uppercase;
  letter-spacing: var(--asera-letter-spacing-wide);
  line-height: 2em;
  color: var(--asera-surface-50);
  background-color: var(--asera-secondary);
  border: none;
  border-radius: var(--asera-radius-sm);
  padding: 0.5em 1.5em;
  transition: background-color var(--asera-transition-normal) var(--asera-transition-timing);
}

button:hover,
html input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover,
a.button:hover,
button:focus,
html input[type="button"]:focus,
input[type="reset"]:focus,
input[type="submit"]:focus,
a.button:focus,
.wp-block-button .wp-block-button__link:not(.has-background):active,
.wp-block-button .wp-block-button__link:not(.has-background):focus,
.wp-block-button .wp-block-button__link:not(.has-background):hover {
  color: var(--asera-surface-50);
  background-color: var(--asera-secondary-600);
}

/* ========================================
   폼 요소
   ======================================== */

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="number"],
textarea,
select {
  font-family: var(--asera-font-family);
  color: var(--asera-text-primary);
  background-color: var(--asera-surface-200);
  border: 1px solid var(--asera-border);
  border-radius: var(--asera-radius-sm);
  padding: 0.5em 0.75em;
  transition: border-color var(--asera-transition-normal) var(--asera-transition-timing);
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
textarea:focus,
select:focus {
  color: var(--asera-text-primary);
  background-color: var(--asera-surface-200);
  border-color: var(--asera-text-tertiary);
  outline: none;
}

/* ========================================
   푸터
   ======================================== */

.footer-widgets {
  background-color: var(--asera-surface-50);
}

.footer-widgets-container {
  padding: var(--asera-spacing-lg);
}

.site-info {
  background-color: var(--asera-surface-50);
}

.inside-site-info {
  padding-right: var(--asera-spacing-lg);
  padding-left: var(--asera-spacing-lg);
}

/* ========================================
   Top Bar
   ======================================== */

.inside-top-bar {
  padding-right: var(--asera-spacing-lg);
  padding-left: var(--asera-spacing-lg);
}

/* ========================================
   유틸리티
   ======================================== */

.separate-containers .site-main {
  margin: 0;
}

.sidebar .widget,
.page-header,
.widget-area .main-navigation,
.site-main > * {
  margin-bottom: 0;
}

.separate-containers .featured-image {
  margin-top: 0;
}


