/*
Theme Name: 머니상주소모음
Theme URI: https://example.com
Author: Your Name
Author URI: https://example.com
Description: 피망머니상 주소 및 링크 모음 사이트 테마
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: poker-money-exchange
*/

/* Reset & Base Styles */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  background-color: #ffffff;
  color: #1a202c;
  line-height: 1.6;
}

/* Container */
.container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 1rem;
}

@media (min-width: 640px) {
  .container {
    padding: 2rem;
  }
}

/* Header */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background-color: #ffffff;
  padding: 1rem;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  z-index: 50;
}

.site-header .header-content {
  display: flex;
  align-items: center;
  justify-content: center;
}

.site-title {
  text-align: center;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  margin: 0;
}

.site-title .char-1 { color: #ef4444; }
.site-title .char-2 { color: #f97316; }
.site-title .char-3 { color: #eab308; }
.site-title .char-4 { color: #22c55e; }
.site-title .char-5 { color: #3b82f6; }
.site-title .char-6 { color: #6366f1; }
.site-title .char-7 { color: #a855f7; }

.site-description {
  font-size: 0.75rem;
  color: #4b5563;
  letter-spacing: 0.1em;
  font-weight: 300;
  margin-top: 0.25rem;
}

/* Main Content */
.main-content {
  padding-top: 6rem;
  padding-bottom: 2rem;
}

@media (min-width: 640px) {
  .main-content {
    padding-top: 7rem;
  }
}

/* Top Banners Container */
.top-banners-container {
  margin-bottom: 2rem;
}

/* Top Banner */
.top-banner {
  margin-bottom: 1.5rem;
  border-radius: 0.75rem;
  overflow: hidden;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  opacity: 0;
}

@media (min-width: 640px) {
  .top-banner {
    border-radius: 1rem;
  }
}

.top-banner:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 15px rgba(0, 0, 0, 0.15);
}

.banner-link {
  display: block;
  cursor: pointer;
}

.banner-image {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.banner-link:hover .banner-image {
  transform: scale(1.02);
}

/* 배너 높이가 지정된 경우 */
.banner-image[style*="height"] {
  object-fit: cover;
}

/* 배너 애니메이션 효과 */

/* Fade Up (아래에서 위로) */
@keyframes banner-fade-up {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.banner-animate-fade-up {
  animation: banner-fade-up forwards;
}

/* Fade In (서서히 나타남) */
@keyframes banner-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.banner-animate-fade-in {
  animation: banner-fade-in forwards;
}

/* Slide Left (오른쪽에서 왼쪽으로) */
@keyframes banner-slide-left {
  from {
    opacity: 0;
    transform: translateX(50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.banner-animate-slide-left {
  animation: banner-slide-left forwards;
}

/* Slide Right (왼쪽에서 오른쪽으로) */
@keyframes banner-slide-right {
  from {
    opacity: 0;
    transform: translateX(-50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.banner-animate-slide-right {
  animation: banner-slide-right forwards;
}

/* Zoom In (작게에서 크게) */
@keyframes banner-zoom-in {
  from {
    opacity: 0;
    transform: scale(0.8);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.banner-animate-zoom-in {
  animation: banner-zoom-in forwards;
}

/* Bounce (튕김) */
@keyframes banner-bounce {
  0% {
    opacity: 0;
    transform: translateY(-30px);
  }
  50% {
    transform: translateY(10px);
  }
  70% {
    transform: translateY(-5px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.banner-animate-bounce {
  animation: banner-bounce forwards;
}

/* None (애니메이션 없음) */
.banner-animate-none {
  opacity: 1;
  animation: none;
}

/* 애니메이션 속도 */
.banner-speed-fast {
  animation-duration: 0.5s;
}

.banner-speed-normal {
  animation-duration: 1s;
}

.banner-speed-slow {
  animation-duration: 1.5s;
}

.cards-grid {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

@media (min-width: 640px) {
  .cards-grid {
    gap: 1.5rem;
  }
}

/* Card Styles */
.card {
  padding: 0.75rem 1.5rem;
  border-radius: 0.75rem;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
  transition: all 0.5s ease;
  text-decoration: none;
  display: block;
  border: 1px solid;
  animation: slow-pulse 4s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@media (min-width: 640px) {
  .card {
    padding: 1.5rem;
    border-radius: 1rem;
  }
}

.card:hover {
  transform: translateY(-4px) scale(1.05);
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.15);
  animation: none;
}

.card-title {
  font-weight: 700;
  color: #ffffff;
  text-align: center;
  font-size: 1rem;
  margin-bottom: 0.25rem;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  animation: slow-bounce 2s infinite;
}

@media (min-width: 640px) {
  .card-title {
    font-size: 1.125rem;
    margin-bottom: 0.5rem;
  }
}

.card-description {
  color: rgba(255, 255, 255, 0.9);
  text-align: center;
  font-size: 0.75rem;
  animation: fade-in 1s ease-in;
}

@media (min-width: 640px) {
  .card-description {
    font-size: 0.875rem;
  }
}

/* Card Color Variations */
.card-1 { background: linear-gradient(to right, #fb923c, #f472b6); border-color: #fed7aa; }
.card-2 { background: linear-gradient(to right, #a78bfa, #a855f7); border-color: #ddd6fe; }
.card-3 { background: linear-gradient(to right, #34d399, #06b6d4); border-color: #a7f3d0; }
.card-4 { background: linear-gradient(to right, #fb7185, #fb923c); border-color: #fecdd3; }
.card-5 { background: linear-gradient(to right, #a3e635, #34d399); border-color: #d9f99d; }
.card-6 { background: linear-gradient(to right, #38bdf8, #6366f1); border-color: #bae6fd; }
.card-7 { background: linear-gradient(to right, #fbbf24, #ef4444); border-color: #fde68a; }
.card-8 { background: linear-gradient(to right, #e879f9, #f472b6); border-color: #f5d0fe; }
.card-9 { background: linear-gradient(to right, #94a3b8, #9ca3af); border-color: #cbd5e1; }
.card-10 { background: linear-gradient(to right, #a8a29e, #a3a3a3); border-color: #d6d3d1; }
.card-11 { background: linear-gradient(to right, #a1a1aa, #94a3b8); border-color: #e4e4e7; }

/* Footer */
.site-footer {
  background-color: #1f2937;
  color: #ffffff;
  padding: 1.5rem 1rem;
  margin-top: 3rem;
}

.footer-content {
  max-width: 1280px;
  margin: 0 auto;
  text-align: center;
}

.footer-text {
  font-size: 0.875rem;
  opacity: 0.8;
}

/* Scroll to Top Button */
.scroll-top {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  width: 3rem;
  height: 3rem;
  background: linear-gradient(to right, #3b82f6, #a855f7);
  color: #ffffff;
  border-radius: 50%;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.5s ease;
  z-index: 50;
  border: none;
  animation: slow-bounce 2s infinite;
}

.scroll-top:hover {
  transform: scale(1.1);
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.15);
  animation: none;
}

.scroll-top svg {
  width: 1.5rem;
  height: 1.5rem;
}

/* Animations */
@keyframes slow-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.6;
  }
}

@keyframes slow-bounce {
  0%, 100% {
    transform: translateY(0);
    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
  }
  50% {
    transform: translateY(-15%);
    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
  }
}

@keyframes fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* Content Wrapper with Sidebar */
.content-wrapper {
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
}

.page-content,
.single-content {
  flex: 1;
  min-width: 300px;
}

.widget-area {
  flex: 0 0 300px;
  min-width: 300px;
}

@media (max-width: 768px) {
  .content-wrapper {
    flex-direction: column;
  }

  .widget-area {
    flex: 1;
  }
}

/* Page & Single Post Styles */
.page-article,
.single-article {
  background: #ffffff;
  padding: 2rem;
  border-radius: 1rem;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  margin-bottom: 2rem;
}

.page-header,
.single-header {
  margin-bottom: 2rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid #e5e7eb;
}

.page-title,
.single-title {
  font-size: 2rem;
  font-weight: 700;
  color: #1a202c;
  margin-bottom: 0.5rem;
}

.single-meta {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  font-size: 0.875rem;
  color: #6b7280;
}

.single-meta span {
  display: inline-block;
}

.post-thumbnail {
  margin-bottom: 2rem;
  border-radius: 0.5rem;
  overflow: hidden;
}

.post-thumbnail img {
  width: 100%;
  height: auto;
  display: block;
}

.page-content-body,
.single-content-body {
  line-height: 1.8;
  color: #374151;
}

.page-content-body p,
.single-content-body p {
  margin-bottom: 1rem;
}

.page-content-body h2,
.single-content-body h2 {
  font-size: 1.5rem;
  font-weight: 600;
  margin-top: 2rem;
  margin-bottom: 1rem;
  color: #1a202c;
}

.page-content-body h3,
.single-content-body h3 {
  font-size: 1.25rem;
  font-weight: 600;
  margin-top: 1.5rem;
  margin-bottom: 0.75rem;
  color: #1a202c;
}

.page-content-body ul,
.single-content-body ul,
.page-content-body ol,
.single-content-body ol {
  margin-bottom: 1rem;
  padding-left: 2rem;
}

.page-content-body li,
.single-content-body li {
  margin-bottom: 0.5rem;
}

.post-tags {
  margin-top: 2rem;
  padding-top: 1rem;
  border-top: 1px solid #e5e7eb;
}

.tags-label {
  font-weight: 600;
  margin-right: 0.5rem;
}

.post-tags a {
  display: inline-block;
  background: #f3f4f6;
  color: #374151;
  padding: 0.25rem 0.75rem;
  border-radius: 0.25rem;
  text-decoration: none;
  margin-right: 0.5rem;
  margin-bottom: 0.5rem;
  font-size: 0.875rem;
  transition: all 0.3s ease;
}

.post-tags a:hover {
  background: #3b82f6;
  color: #ffffff;
}

/* Post Navigation */
.post-navigation {
  display: flex;
  justify-content: space-between;
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 2px solid #e5e7eb;
  gap: 1rem;
}

.nav-previous,
.nav-next {
  flex: 1;
}

.nav-next {
  text-align: right;
}

.post-navigation a {
  color: #3b82f6;
  text-decoration: none;
  font-weight: 500;
  transition: color 0.3s ease;
}

.post-navigation a:hover {
  color: #2563eb;
}

/* Page Links */
.page-links {
  margin-top: 2rem;
  padding-top: 1rem;
  border-top: 1px solid #e5e7eb;
}

/* Comments */
.comments-wrapper {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 2px solid #e5e7eb;
}

/* Widget Styles */
.widget {
  background: #ffffff;
  padding: 1.5rem;
  border-radius: 0.75rem;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  margin-bottom: 1.5rem;
}

.widget-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #1a202c;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid #e5e7eb;
}

.widget ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.widget ul li {
  padding: 0.5rem 0;
  border-bottom: 1px solid #f3f4f6;
}

.widget ul li:last-child {
  border-bottom: none;
}

.widget a {
  color: #374151;
  text-decoration: none;
  transition: color 0.3s ease;
}

.widget a:hover {
  color: #3b82f6;
}

/* Footer Widgets */
.footer-widgets {
  background: #1f2937;
  padding: 3rem 0 2rem;
  margin-top: 3rem;
}

.footer-widgets-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 2rem;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1rem;
}

.footer-widgets .widget {
  background: transparent;
  box-shadow: none;
  padding: 0;
}

.footer-widgets .widget-title {
  color: #ffffff;
  border-bottom-color: rgba(255, 255, 255, 0.2);
}

.footer-widgets .widget a {
  color: rgba(255, 255, 255, 0.8);
}

.footer-widgets .widget a:hover {
  color: #ffffff;
}

.footer-widgets .widget ul li {
  border-bottom-color: rgba(255, 255, 255, 0.1);
}

/* Archive & Search Styles */
.archive-header,
.search-header {
  margin-bottom: 2rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid #e5e7eb;
}

.archive-title,
.search-title {
  font-size: 2rem;
  font-weight: 700;
  color: #1a202c;
  margin-bottom: 0.5rem;
}

.search-title span {
  color: #3b82f6;
}

.archive-description {
  color: #6b7280;
  margin-top: 0.5rem;
}

.posts-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 2rem;
  margin-bottom: 2rem;
}

.archive-post,
.search-result {
  background: #ffffff;
  border-radius: 0.75rem;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.archive-post:hover,
.search-result:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 15px rgba(0, 0, 0, 0.15);
}

.archive-post .post-thumbnail,
.search-result .post-thumbnail {
  overflow: hidden;
  height: 200px;
}

.archive-post .post-thumbnail img,
.search-result .post-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.archive-post:hover .post-thumbnail img,
.search-result:hover .post-thumbnail img {
  transform: scale(1.05);
}

.archive-post .post-header,
.search-result .post-header {
  padding: 1.5rem 1.5rem 0;
}

.archive-post .post-title,
.search-result .post-title {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.archive-post .post-title a,
.search-result .post-title a {
  color: #1a202c;
  text-decoration: none;
  transition: color 0.3s ease;
}

.archive-post .post-title a:hover,
.search-result .post-title a:hover {
  color: #3b82f6;
}

.archive-post .post-meta,
.search-result .post-meta {
  display: flex;
  gap: 1rem;
  font-size: 0.875rem;
  color: #6b7280;
}

.archive-post .post-excerpt,
.search-result .post-excerpt {
  padding: 1rem 1.5rem;
  color: #374151;
}

.archive-post .post-footer,
.search-result .post-footer {
  padding: 0 1.5rem 1.5rem;
}

.read-more {
  color: #3b82f6;
  text-decoration: none;
  font-weight: 500;
  transition: color 0.3s ease;
}

.read-more:hover {
  color: #2563eb;
}

/* Pagination */
.pagination {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 3rem;
}

.pagination .page-numbers {
  display: inline-block;
  padding: 0.5rem 1rem;
  background: #f3f4f6;
  color: #374151;
  text-decoration: none;
  border-radius: 0.375rem;
  transition: all 0.3s ease;
}

.pagination .page-numbers:hover,
.pagination .page-numbers.current {
  background: #3b82f6;
  color: #ffffff;
}

.pagination .prev,
.pagination .next {
  font-weight: 600;
}

/* No Results */
.no-posts,
.no-results {
  background: #ffffff;
  padding: 3rem;
  border-radius: 0.75rem;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  text-align: center;
}

.no-results h2 {
  font-size: 1.5rem;
  font-weight: 600;
  color: #1a202c;
  margin-bottom: 1rem;
}

.no-results p {
  color: #6b7280;
  margin-bottom: 2rem;
}

.search-form-wrapper {
  max-width: 500px;
  margin: 0 auto;
}

/* Search Form */
.search-form {
  display: flex;
  gap: 0.5rem;
}

.search-form input[type="search"] {
  flex: 1;
  padding: 0.75rem 1rem;
  border: 2px solid #e5e7eb;
  border-radius: 0.5rem;
  font-size: 1rem;
  transition: border-color 0.3s ease;
}

.search-form input[type="search"]:focus {
  outline: none;
  border-color: #3b82f6;
}

.search-form button,
.search-form input[type="submit"] {
  padding: 0.75rem 1.5rem;
  background: #3b82f6;
  color: #ffffff;
  border: none;
  border-radius: 0.5rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.3s ease;
}

.search-form button:hover,
.search-form input[type="submit"]:hover {
  background: #2563eb;
}

/* 404 Error Page */
.error-404 {
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.error-content {
  text-align: center;
  max-width: 600px;
  padding: 3rem;
  background: #ffffff;
  border-radius: 1rem;
  box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);
}

.error-title {
  font-size: 6rem;
  font-weight: 700;
  background: linear-gradient(to right, #3b82f6, #a855f7);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 1rem;
}

.error-subtitle {
  font-size: 2rem;
  font-weight: 600;
  color: #1a202c;
  margin-bottom: 1rem;
}

.error-text {
  color: #6b7280;
  margin-bottom: 2rem;
  line-height: 1.6;
}

.error-actions {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.btn-home {
  display: inline-block;
  padding: 0.75rem 2rem;
  background: linear-gradient(to right, #3b82f6, #a855f7);
  color: #ffffff;
  text-decoration: none;
  border-radius: 0.5rem;
  font-weight: 600;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.btn-home:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 15px rgba(59, 130, 246, 0.3);
}

.error-widgets {
  margin-top: 2rem;
  text-align: left;
}

.error-widgets h3 {
  font-size: 1.25rem;
  font-weight: 600;
  color: #1a202c;
  margin-bottom: 1rem;
}
