@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: アスカ・ビジネス・カレッジ専用テーマ
Author: アスカ・ビジネス・カレッジ
Template:   cocoon-master
Version:    1.0.0
*/

/************************************
** 子テーマ用のスタイルを書く
************************************/

/************************************
** ヘッダー
************************************/
.fp-header-container {
  position: relative !important;
  width: 100% !important;
  background-color: #fff !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}

.fp-header-overlay {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background-color: rgba(255, 255, 255, 0.92) !important;
}

.fp-header-in {
  position: relative !important;
  z-index: 2 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 20px !important;
  max-width: 1240px !important;
  margin: 0 auto !important;
  padding: 15px 30px !important;
}

.fp-header-logo {
  flex-shrink: 0 !important;
}

.fp-header-logo a {
  display: block !important;
}

.fp-header-logo img {
  display: block !important;
  max-height: 56px !important;
  width: auto !important;
}

.fp-header-nav {
  flex: 1 1 auto !important;
}

.fp-header-menu {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  gap: 30px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.fp-header-menu li {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.fp-header-menu a {
  color: #333 !important;
  text-decoration: none !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  transition: color 0.3s ease !important;
}

.fp-header-menu a:hover {
  color: #0066cc !important;
}

.fp-header-right {
  display: flex !important;
  align-items: center !important;
  gap: 25px !important;
  flex-shrink: 0 !important;
}

.fp-header-contact {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  line-height: 1.4 !important;
}

.fp-header-contact-label {
  font-size: 11px !important;
  color: #666 !important;
}

.fp-header-contact-tel {
  font-size: 18px !important;
  font-weight: bold !important;
  color: #333 !important;
  text-decoration: none !important;
}

.fp-header-contact-tel:hover {
  color: #0066cc !important;
}

.fp-header-cta {
  display: inline-block !important;
  background-color: #0066cc !important;
  color: #fff !important;
  padding: 12px 28px !important;
  border-radius: 5px !important;
  text-decoration: none !important;
  font-weight: bold !important;
  font-size: 14px !important;
  white-space: nowrap !important;
  transition: all 0.3s ease !important;
}

.fp-header-cta:hover {
  background-color: #0056b3 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 12px rgba(0, 123, 255, 0.3) !important;
}

/* Hamburger button (hidden on PC) */
.fp-header-hamburger {
  display: none !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 5px !important;
  width: 44px !important;
  height: 44px !important;
  background: none !important;
  border: none !important;
  cursor: pointer !important;
  flex-shrink: 0 !important;
  padding: 0 !important;
}

.fp-header-hamburger span {
  display: block !important;
  width: 26px !important;
  height: 2px !important;
  background-color: #333 !important;
  border-radius: 2px !important;
  transition: all 0.3s ease !important;
}

.fp-header-hamburger.is-active span:nth-child(1) {
  transform: translateY(7px) rotate(45deg) !important;
}

.fp-header-hamburger.is-active span:nth-child(2) {
  opacity: 0 !important;
}

.fp-header-hamburger.is-active span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg) !important;
}

/* Mobile dropdown menu (hidden on PC) */
.fp-header-mobile-menu {
  display: none !important;
}

/* ヘッダー：タブレット・スマホ表示（900px以下）ロゴ＋ハンバーガーのみ */
@media screen and (max-width: 900px){
  .fp-header-in {
    padding: 12px 20px !important;
  }

  .fp-header-logo img {
    max-height: 42px !important;
  }

  .fp-header-nav,
  .fp-header-right {
    display: none !important;
  }

  .fp-header-hamburger {
    display: flex !important;
  }

  .fp-header-mobile-menu {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    z-index: 10 !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    background-color: #fff !important;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12) !important;
    padding: 20px !important;
    max-height: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
    transition: max-height 0.3s ease, opacity 0.3s ease, padding 0.3s ease !important;
  }

  .fp-header-mobile-menu.is-open {
    max-height: 80vh !important;
    opacity: 1 !important;
    overflow-y: auto !important;
  }

  .fp-header-mobile-menu-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }

  .fp-header-mobile-menu-list li {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    border-bottom: 1px solid #eee !important;
  }

  .fp-header-mobile-menu-list a {
    display: block !important;
    padding: 14px 4px !important;
    color: #333 !important;
    text-decoration: none !important;
    font-weight: 600 !important;
    font-size: 15px !important;
  }

  .fp-header-mobile-menu-list a:hover {
    color: #0066cc !important;
  }

  .fp-header-mobile-contact {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    padding: 16px 4px !important;
    border-bottom: 1px solid #eee !important;
  }

  .fp-header-mobile-contact .fp-header-contact-tel {
    font-size: 20px !important;
  }

  .fp-header-cta-mobile {
    display: block !important;
    text-align: center !important;
    margin-top: 16px !important;
  }
}

/************************************
** フッター
************************************/
.fp-footer {
  position: relative !important;
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  background-color: #222 !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  color: #fff !important;
}

.fp-footer-overlay {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background-color: rgba(20, 20, 25, 0.85) !important;
}

.fp-footer-in {
  position: relative !important;
  z-index: 2 !important;
  max-width: 1240px !important;
  margin: 0 auto !important;
  padding: 60px 30px 30px !important;
}

.fp-footer-main {
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr !important;
  gap: 40px !important;
  padding-bottom: 30px !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
}

.fp-footer-col {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  min-width: 0 !important;
}

.fp-footer-col-logo {
  align-items: flex-start !important;
}

.fp-footer-col-nav {
  align-items: flex-end !important;
}

.fp-footer-logo img {
  display: block !important;
  max-height: 48px !important;
  width: auto !important;
  margin-bottom: 6px !important;
}

.fp-footer-main .fp-footer-company-name {
  margin: 0 !important;
  font-size: 15px !important;
  font-weight: bold !important;
  color: #fff !important;
}

.fp-footer-main .fp-footer-address {
  margin: 0 !important;
  font-size: 13px !important;
  line-height: 1.7 !important;
  color: rgba(255, 255, 255, 0.8) !important;
}

.fp-footer-main .fp-footer-contact {
  margin: 4px 0 0 0 !important;
  font-size: 15px !important;
  font-weight: bold !important;
}

.fp-footer-contact a {
  color: #fff !important;
  text-decoration: none !important;
}

.fp-footer-contact a:hover {
  text-decoration: underline !important;
}

.fp-footer-nav {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: flex-end !important;
  width: 100% !important;
}

.fp-footer-menu {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.fp-footer-menu li {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.fp-footer-menu a {
  color: rgba(255, 255, 255, 0.85) !important;
  text-decoration: none !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  transition: color 0.3s ease !important;
}

.fp-footer-menu a:hover {
  color: #fff !important;
  text-decoration: underline !important;
}

.fp-footer-copyright {
  padding-top: 20px !important;
  text-align: center !important;
  font-size: 12px !important;
  color: rgba(255, 255, 255, 0.6) !important;
}

@media screen and (max-width: 900px){
  .fp-footer-in {
    padding: 40px 20px 20px !important;
  }

  .fp-footer-main {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }

  .fp-footer-col-logo,
  .fp-footer-col-nav {
    align-items: flex-start !important;
  }

  .fp-footer-nav {
    justify-content: flex-start !important;
  }

  .fp-footer-menu {
    align-items: flex-start !important;
    gap: 10px !important;
  }
}

/* Front Page Styles - Based on Layout PDF */
.front-page-wrapper {
  width: 100% !important;
  background-color: #fff !important;
}

/* Hero Section */
.fp-hero {
  width: 100% !important;
  aspect-ratio: 1023 / 404;
  background-color: #21252e !important;
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}

.fp-hero-bg {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  background-size: 100% 100% !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-attachment: scroll !important;
  z-index: 0 !important;
}

.fp-hero-content {
  position: relative !important;
  z-index: 2 !important;
  text-align: center !important;
  max-width: 780px !important;
  padding: 48px 44px !important;
  color: #fff !important;
  /* border: 1px solid rgba(255, 255, 255, 0.18) !important; */
  border-radius: 16px !important;
}

.fp-hero-content-inner {
  opacity: 0;
  animation: fp-hero-fade-up 2s ease-out 2.2s forwards;
}

@keyframes fp-hero-fade-up {
  0% {
    opacity: 0;
    transform: translateY(18px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.fp-hero-content-inner .fp-hero-badge {
  display: inline-block !important;
  background-color: rgba(255, 255, 255, 0.97) !important;
  color: #0056d6 !important;
  padding: 8px 22px !important;
  border-radius: 999px !important;
  font-size: 12px !important;
  font-weight: bold !important;
  margin-bottom: 26px !important;
  letter-spacing: 0.8px !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25) !important;
}

.fp-hero-content-inner .fp-hero-title {
  font-size: 46px !important;
  font-weight: 800 !important;
  margin: 0 0 18px 0 !important;
  line-height: 1.35 !important;
  color: #fff !important;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.55) !important;
  letter-spacing: 1px !important;
}

.fp-hero-content-inner .fp-hero-subtitle {
  font-size: 21px !important;
  font-weight: 700 !important;
  margin: 0 0 22px 0 !important;
  line-height: 1.6 !important;
  color: #fff !important;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.6) !important;
}

.fp-hero-content-inner .fp-hero-description {
  font-size: 15px !important;
  font-weight: 500 !important;
  line-height: 1.9 !important;
  margin: 0 !important;
  color: #fff !important;
  text-shadow: 0 1px 5px rgba(0, 0, 0, 0.6) !important;
}

/* ヒーロー文言：白文字・黒縁取り */
.fp-hero-content-inner .fp-hero-title,
.fp-hero-content-inner .fp-hero-subtitle,
.fp-hero-content-inner .fp-hero-description {
  color: #fff !important;
  text-shadow:
    -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000,
    -2px 0 0 #000, 2px 0 0 #000, 0 -2px 0 #000, 0 2px 0 #000,
    0 2px 10px #000,
    0 0 16px #000,
    0 0 24px rgba(0, 0, 0, 0.9) !important;
}

/* Main Content */
.front-page-main {
  padding: 0 !important;
}

/* Seminars Section */
.fp-seminars {
  padding: 20px 0 !important;
  background-color: #fff !important;
}

.fp-seminars-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-bottom: 50px !important;
  padding-bottom: 20px !important;
  border-bottom: 2px solid #007bff !important;
}

.fp-seminars-title {
  font-size: 28px !important;
  font-weight: bold !important;
  color: #333 !important;
  margin: 0 !important;
}

.btn-fp-list {
  display: inline-block !important;
  background-color: #fff !important;
  color: #0066cc !important;
  padding: 10px 25px !important;
  border: 2px solid #007bff !important;
  border-radius: 5px !important;
  text-decoration: none !important;
  font-weight: bold !important;
  font-size: 14px !important;
  transition: all 0.3s ease !important;
}

.btn-fp-list:hover {
  background-color: #0066cc !important;
  color: white !important;
}

.btn-fp-more {
  display: inline-block !important;
  flex-shrink: 0 !important;
  background-color: #fff !important;
  color: #0066cc !important;
  padding: 8px 20px !important;
  border: 2px solid #007bff !important;
  border-radius: 5px !important;
  text-decoration: none !important;
  font-weight: bold !important;
  font-size: 13px !important;
  transition: all 0.3s ease !important;
}

.btn-fp-more:hover {
  background-color: #0066cc !important;
  color: white !important;
}

/* Primary Seminar */
.fp-seminar-primary-box {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 60px !important;
  align-items: center !important;
  background-color: #f9f9f9 !important;
  padding: 50px !important;
  border-radius: 24px !important;
  margin-bottom: 30px !important;
}

.fp-primary-image {
  overflow: hidden !important;
  border-radius: 8px !important;
}

.fp-primary-image img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
}

.fp-primary-body {
  display: flex !important;
  flex-direction: column !important;
  gap: 15px !important;
}

.fp-primary-title {
  font-size: 28px !important;
  font-weight: bold !important;
  color: #333 !important;
  margin: 0 !important;
  line-height: 1.3 !important;
}

.fp-primary-subtitle {
  font-size: 15px !important;
  color: #0066cc !important;
  font-weight: 600 !important;
  margin: 0 !important;
}

.fp-primary-content {
  color: #666 !important;
  line-height: 1.8 !important;
  font-size: 15px !important;
  margin: 0 !important;
}

.fp-primary-meta {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  margin: 0 !important;
  padding: 15px 0 !important;
  border-top: 1px solid #e5e5e5 !important;
  border-bottom: 1px solid #e5e5e5 !important;
}

.fp-primary-meta-row {
  display: flex !important;
  align-items: baseline !important;
  gap: 10px !important;
  font-size: 13px !important;
}

.fp-primary-meta-row dt {
  flex-shrink: 0 !important;
  width: 70px !important;
  color: #666 !important;
  font-weight: bold !important;
}

.fp-primary-meta-row dd {
  margin: 0 !important;
  color: #333 !important;
}

.btn-fp-detail {
  display: inline-block !important;
  background-color: #0066cc !important;
  color: white !important;
  padding: 12px 30px !important;
  border-radius: 5px !important;
  text-decoration: none !important;
  font-weight: bold !important;
  font-size: 14px !important;
  transition: all 0.3s ease !important;
  width: fit-content !important;
}

.btn-fp-detail:hover {
  background-color: #0056b3 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 12px rgba(0, 123, 255, 0.3) !important;
}

/* Secondary Seminars Grid */
.fp-seminars-secondary {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 40px !important;
}

.fp-seminar-secondary-box {
  display: flex !important;
  flex-direction: column !important;
  background-color: #fff !important;
  border: 1px solid #ddd !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  transition: all 0.3s ease !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
}

.fp-seminar-secondary-box:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12) !important;
}

.fp-secondary-image {
  width: 100% !important;
  height: 180px !important;
  overflow: hidden !important;
  background-color: #f0f0f0 !important;
}

.fp-secondary-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.3s ease !important;
}

.fp-seminar-secondary-box:hover .fp-secondary-image img {
  transform: scale(1.08) !important;
}

.fp-secondary-body {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  padding: 20px !important;
  flex: 1 1 auto !important;
}

.fp-secondary-title {
  font-size: 16px !important;
  font-weight: bold !important;
  color: #333 !important;
  margin: 0 !important;
  line-height: 1.4 !important;
}

.fp-secondary-title a {
  color: #333 !important;
  text-decoration: none !important;
  transition: color 0.3s ease !important;
}

.fp-secondary-title a:hover {
  color: #007bff !important;
}

.fp-secondary-subtitle {
  font-size: 13px !important;
  color: #0066cc !important;
  font-weight: 600 !important;
  margin: 0 !important;
}

.fp-secondary-content {
  color: #666 !important;
  line-height: 1.7 !important;
  font-size: 13px !important;
  margin: 0 !important;
}

.fp-secondary-meta {
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  margin: 0 !important;
  padding: 12px 0 !important;
  border-top: 1px solid #e5e5e5 !important;
  border-bottom: 1px solid #e5e5e5 !important;
}

.fp-secondary-meta-row {
  display: flex !important;
  align-items: baseline !important;
  gap: 8px !important;
  font-size: 12px !important;
}

.fp-secondary-meta-row dt {
  flex-shrink: 0 !important;
  width: 60px !important;
  color: #666 !important;
  font-weight: bold !important;
}

.fp-secondary-meta-row dd {
  margin: 0 !important;
  color: #333 !important;
}

.btn-fp-detail-sm {
  display: inline-block !important;
  align-self: flex-start !important;
  background-color: #0066cc !important;
  color: white !important;
  padding: 8px 20px !important;
  border-radius: 5px !important;
  text-decoration: none !important;
  font-weight: bold !important;
  font-size: 13px !important;
  transition: all 0.3s ease !important;
  margin-top: auto !important;
}

.btn-fp-detail-sm:hover {
  background-color: #0056b3 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 12px rgba(0, 123, 255, 0.3) !important;
}

/* Content Section (News & Blog) */
.fp-content-section {
  padding: 20px 0 !important;
  background-color: #fafbfc !important;
  border-radius: 24px !important;
}

.fp-content-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 60px !important;
}

.fp-section-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 15px !important;
  margin: 0 0 30px 0 !important;
  padding-bottom: 15px !important;
  border-bottom: 2px solid #007bff !important;
}

.fp-section-title {
  font-size: 24px !important;
  font-weight: bold !important;
  color: #333 !important;
  margin: 0 !important;
}

/* News Box */
.fp-news-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
}

.fp-news-item {
  padding: 20px !important;
  border-left: 4px solid #007bff !important;
  background-color: #fff !important;
  border-radius: 6px !important;
  transition: all 0.3s ease !important;
}

.fp-news-item:hover {
  background-color: #f0f5ff !important;
  transform: translateX(5px) !important;
}

.fp-news-date {
  display: block !important;
  color: #0066cc !important;
  font-size: 12px !important;
  font-weight: bold !important;
  margin-bottom: 8px !important;
}

.fp-news-title {
  font-size: 15px !important;
  font-weight: bold !important;
  margin: 0 !important;
}

.fp-news-title a {
  color: #333 !important;
  text-decoration: none !important;
  transition: color 0.3s ease !important;
}

.fp-news-title a:hover {
  color: #007bff !important;
}

/* Blog List */
.fp-blog-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
}

.fp-blog-item {
  display: grid !important;
  grid-template-columns: 150px 1fr !important;
  gap: 15px !important;
  padding: 15px !important;
  background-color: #fff !important;
  border-radius: 6px !important;
  border: 1px solid #ddd !important;
  transition: all 0.3s ease !important;
}

.fp-blog-item:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
}

.fp-blog-image {
  width: 150px !important;
  height: 120px !important;
  overflow: hidden !important;
  border-radius: 6px !important;
  background-color: #f0f0f0 !important;
}

.fp-blog-image a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

.fp-blog-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.3s ease !important;
}

.fp-blog-item:hover .fp-blog-image img {
  transform: scale(1.08) !important;
}

.fp-blog-meta {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}

.fp-blog-date {
  color: #666 !important;
  font-size: 12px !important;
  margin-bottom: 8px !important;
}

.fp-blog-title {
  font-size: 14px !important;
  font-weight: bold !important;
  margin: 0 !important;
  line-height: 1.4 !important;
}

.fp-blog-title a {
  color: #333 !important;
  text-decoration: none !important;
  transition: color 0.3s ease !important;
}

.fp-blog-title a:hover {
  color: #007bff !important;
}

.fp-no-content {
  text-align: center !important;
  color: #999 !important;
  padding: 40px 0 !important;
  font-size: 14px !important;
}

.front-page-main {
  padding: 0 !important;
}

/* Section Header */
.section-header {
  text-align: center !important;
  margin-bottom: 50px !important;
}

.section-title {
  font-size: 36px !important;
  font-weight: bold !important;
  color: #333 !important;
  margin: 0 0 12px 0 !important;
  line-height: 1.3 !important;
  position: relative !important;
  padding-bottom: 0 !important;
}

.section-title::after {
  content: '' !important;
  position: absolute !important;
  bottom: -12px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 80px !important;
  height: 3px !important;
  background-color: #007bff !important;
}

.section-subtitle {
  color: #666 !important;
  font-size: 16px !important;
  margin: 20px 0 0 0 !important;
  line-height: 1.6 !important;
}

/* Seminars Section */
.fp-seminars-section {
  padding: 80px 0 !important;
  background-color: #fff !important;
}

/* Primary Seminar Card */
.fp-seminar-primary {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 60px !important;
  align-items: center !important;
  background: linear-gradient(135deg, #f8f9fa 0%, #f0f5ff 100%) !important;
  padding: 60px !important;
  border-radius: 12px !important;
  margin-bottom: 60px !important;
  box-shadow: 0 4px 16px rgba(0, 123, 255, 0.1) !important;
}

.fp-seminar-primary-image {
  overflow: hidden !important;
  border-radius: 12px !important;
  max-height: 400px !important;
}

.fp-seminar-primary-image img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
}

.fp-no-image {
  width: 100% !important;
  height: 300px !important;
  background-color: #e0e0e0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #999 !important;
  font-size: 18px !important;
  border-radius: 8px !important;
}

.fp-seminar-primary-body {
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
}

.fp-seminar-primary-title {
  font-size: 32px !important;
  font-weight: bold !important;
  color: #333 !important;
  margin: 0 !important;
  line-height: 1.3 !important;
}

.fp-seminar-primary-subtitle {
  font-size: 16px !important;
  color: #007bff !important;
  margin: 0 !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
}

.fp-seminar-categories {
  display: flex !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
}

.fp-category-badge {
  display: inline-block !important;
  background-color: #007bff !important;
  color: white !important;
  padding: 6px 14px !important;
  border-radius: 20px !important;
  font-size: 12px !important;
  font-weight: bold !important;
}

.fp-seminar-primary-content {
  color: #666 !important;
  line-height: 1.8 !important;
  font-size: 15px !important;
}

.fp-seminar-primary-content p {
  margin-bottom: 12px !important;
}

.fp-seminar-primary-content p:last-child {
  margin-bottom: 0 !important;
}

/* Secondary Seminars Grid */
.fp-seminars-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 30px !important;
  margin-bottom: 40px !important;
}

.fp-seminar-card {
  background-color: #fff !important;
  border: 1px solid #ddd !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  transition: all 0.3s ease !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
}

.fp-seminar-card:hover {
  transform: translateY(-8px) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12) !important;
}

.fp-seminar-card-image {
  width: 100% !important;
  height: 200px !important;
  overflow: hidden !important;
  background-color: #f0f0f0 !important;
}

.fp-seminar-card-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.3s ease !important;
}

.fp-seminar-card:hover .fp-seminar-card-image img {
  transform: scale(1.08) !important;
}

.fp-no-image-small {
  width: 100% !important;
  height: 100% !important;
  background-color: #e0e0e0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #999 !important;
}

.fp-seminar-card-body {
  padding: 25px !important;
}

.fp-seminar-card-title {
  font-size: 18px !important;
  font-weight: bold !important;
  margin: 0 0 10px 0 !important;
}

.fp-seminar-card-title a {
  color: #333 !important;
  text-decoration: none !important;
  transition: color 0.3s ease !important;
}

.fp-seminar-card-title a:hover {
  color: #007bff !important;
}

.fp-seminar-card-subtitle {
  font-size: 13px !important;
  color: #999 !important;
  margin: 5px 0 12px 0 !important;
  font-style: italic !important;
  line-height: 1.5 !important;
}

.fp-seminar-card-excerpt {
  color: #666 !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  margin: 0 0 15px 0 !important;
}

.fp-seminar-card-link {
  display: inline-block !important;
  color: #007bff !important;
  text-decoration: none !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  transition: all 0.3s ease !important;
}

.fp-seminar-card-link:hover {
  color: #0056b3 !important;
  margin-right: -4px !important;
}

/* News Section */
.fp-news-section {
  padding: 80px 0 !important;
  background-color: #fafbfc !important;
}

.fp-news-list {
  margin-bottom: 40px !important;
}

.fp-news-item {
  padding: 20px !important;
  border-left: 4px solid #007bff !important;
  background-color: #fff !important;
  margin-bottom: 15px !important;
  border-radius: 6px !important;
  transition: all 0.3s ease !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 20px !important;
}

.fp-news-item:hover {
  background-color: #f0f5ff !important;
  transform: translateX(8px) !important;
}

.fp-news-date {
  color: #0066cc !important;
  font-size: 13px !important;
  font-weight: bold !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}

.fp-news-title {
  font-size: 16px !important;
  font-weight: bold !important;
  margin: 0 !important;
  flex: 1 !important;
}

.fp-news-title a {
  color: #333 !important;
  text-decoration: none !important;
  transition: color 0.3s ease !important;
}

.fp-news-title a:hover {
  color: #007bff !important;
}

/* Blog Section */
.fp-blog-section {
  padding: 80px 0 !important;
  background-color: #fff !important;
}

.fp-blog-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 30px !important;
  margin-bottom: 40px !important;
}

.fp-blog-card {
  background-color: #fff !important;
  border: 1px solid #ddd !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  transition: all 0.3s ease !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
}

.fp-blog-card:hover {
  transform: translateY(-8px) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12) !important;
}

.fp-blog-card-image {
  width: 100% !important;
  height: 200px !important;
  overflow: hidden !important;
  background-color: #f0f0f0 !important;
}

.fp-blog-card-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.3s ease !important;
}

.fp-blog-card:hover .fp-blog-card-image img {
  transform: scale(1.08) !important;
}

.fp-blog-card-body {
  padding: 25px !important;
}

.fp-blog-date {
  color: #666 !important;
  font-size: 13px !important;
  display: block !important;
  margin-bottom: 10px !important;
}

.fp-blog-card-title {
  font-size: 18px !important;
  font-weight: bold !important;
  margin: 0 0 10px 0 !important;
}

.fp-blog-card-title a {
  color: #333 !important;
  text-decoration: none !important;
  transition: color 0.3s ease !important;
}

.fp-blog-card-title a:hover {
  color: #007bff !important;
}

.fp-blog-card-excerpt {
  color: #666 !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  margin: 0 !important;
}

/* Contact CTA Section */
.fp-contact-cta {
  padding: 100px 0 !important;
  background: linear-gradient(135deg, #007bff 0%, #0056b3 100%) !important;
}

.fp-contact-cta-body {
  text-align: center !important;
}

.fp-contact-title {
  font-size: 40px !important;
  font-weight: bold !important;
  color: white !important;
  margin: 0 0 15px 0 !important;
  line-height: 1.3 !important;
}

.fp-contact-subtitle {
  font-size: 18px !important;
  color: rgba(255, 255, 255, 0.9) !important;
  margin: 0 0 30px 0 !important;
  line-height: 1.6 !important;
}

/* Section CTA */
.section-cta {
  text-align: center !important;
  margin-top: 40px !important;
}

/* Buttons */
.btn-fp-primary {
  display: inline-block !important;
  background-color: #007bff !important;
  color: white !important;
  padding: 14px 40px !important;
  border-radius: 6px !important;
  text-decoration: none !important;
  font-weight: bold !important;
  font-size: 16px !important;
  transition: all 0.3s ease !important;
  cursor: pointer !important;
  border: none !important;
}

.btn-fp-primary:hover {
  background-color: #0056b3 !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 6px 20px rgba(0, 123, 255, 0.3) !important;
}

.btn-fp-secondary {
  display: inline-block !important;
  background-color: transparent !important;
  color: #007bff !important;
  padding: 12px 35px !important;
  border-radius: 6px !important;
  border: 2px solid #007bff !important;
  text-decoration: none !important;
  font-weight: bold !important;
  font-size: 15px !important;
  transition: all 0.3s ease !important;
  cursor: pointer !important;
}

.btn-fp-secondary:hover {
  background-color: #007bff !important;
  color: white !important;
  transform: translateY(-2px) !important;
}

.btn-fp-cta {
  display: inline-block !important;
  background-color: white !important;
  color: #0066cc !important;
  padding: 16px 50px !important;
  border-radius: 6px !important;
  text-decoration: none !important;
  font-weight: bold !important;
  font-size: 18px !important;
  transition: all 0.3s ease !important;
  cursor: pointer !important;
  border: none !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
}

.btn-fp-cta:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25) !important;
  background-color: #f0f5ff !important;
}

.fp-no-content {
  text-align: center !important;
  color: #999 !important;
  padding: 40px 0 !important;
  font-size: 16px !important;
}

/* Container */
.fp-container {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0 20px !important;
}

/* Section Styles */
.news-section,
.seminars-section,
.about-section,
.blog-section,
.contact-section {
  padding: 60px 0 !important;
  border-bottom: 1px solid #eee !important;
}

.news-section:last-child,
.seminars-section:last-child,
.about-section:last-child,
.blog-section:last-child,
.contact-section:last-child {
  border-bottom: none !important;
}

/* Section Title */
.section-title {
  font-size: 32px !important;
  font-weight: bold !important;
  text-align: center !important;
  margin-bottom: 40px !important;
  color: #333 !important;
  position: relative !important;
  padding-bottom: 20px !important;
}

.section-title::after {
  content: '' !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 60px !important;
  height: 3px !important;
  background-color: #007bff !important;
}

/* News Section */
.news-list {
  margin-bottom: 40px !important;
}

.news-item {
  padding: 20px !important;
  border-left: 4px solid #007bff !important;
  background-color: #f9f9f9 !important;
  margin-bottom: 20px !important;
  transition: all 0.3s ease !important;
}

.news-item:hover {
  background-color: #f0f5ff !important;
  transform: translateX(5px) !important;
}

.news-date {
  color: #666 !important;
  font-size: 14px !important;
  display: block !important;
  margin-bottom: 8px !important;
}

.news-title {
  margin: 10px 0 !important;
  font-size: 18px !important;
}

.news-title a {
  color: #007bff !important;
  text-decoration: none !important;
  transition: color 0.3s ease !important;
}

.news-title a:hover {
  color: #0056b3 !important;
  text-decoration: underline !important;
}

.news-excerpt {
  color: #666 !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  margin: 10px 0 0 0 !important;
}

.news-link-wrapper {
  text-align: center !important;
  margin-top: 20px !important;
}

/* Seminars Section */

/* Primary Seminar */
.seminar-primary {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 40px !important;
  align-items: center !important;
  background-color: #f8f9fa !important;
  padding: 40px !important;
  border-radius: 8px !important;
  margin-bottom: 40px !important;
}

.seminar-primary-content {
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
}

.seminar-primary-title {
  font-size: 28px !important;
  font-weight: bold !important;
  color: #333 !important;
  margin: 0 0 8px 0 !important;
  line-height: 1.4 !important;
}

.seminar-primary-subtitle {
  font-size: 14px !important;
  color: #666 !important;
  margin: 0 0 15px 0 !important;
  font-style: italic !important;
  line-height: 1.6 !important;
}

.seminar-primary-excerpt {
  font-size: 16px !important;
  color: #666 !important;
  line-height: 1.8 !important;
  margin: 0 !important;
}

.seminar-primary-thumbnail {
  overflow: hidden !important;
  border-radius: 8px !important;
}

.seminar-primary-thumbnail img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
}

/* Secondary Seminars Grid */
.seminar-secondary-wrapper {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
  gap: 30px !important;
  margin-bottom: 40px !important;
}

.seminar-secondary {
  background-color: #fff !important;
  border: 1px solid #ddd !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  transition: all 0.3s ease !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
}

.seminar-secondary:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15) !important;
}

.seminar-secondary-thumbnail {
  overflow: hidden !important;
  height: 180px !important;
}

.seminar-secondary-thumbnail img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.3s ease !important;
}

.seminar-secondary:hover .seminar-secondary-thumbnail img {
  transform: scale(1.05) !important;
}

.seminar-secondary-content {
  padding: 20px !important;
}

.seminar-secondary-title {
  font-size: 16px !important;
  font-weight: bold !important;
  margin: 0 0 5px 0 !important;
}

.seminar-secondary-title a {
  color: #333 !important;
  text-decoration: none !important;
  transition: color 0.3s ease !important;
}

.seminar-secondary-title a:hover {
  color: #007bff !important;
}

.seminar-secondary-subtitle {
  font-size: 12px !important;
  color: #999 !important;
  margin: 0 0 8px 0 !important;
  font-style: italic !important;
  line-height: 1.5 !important;
}

.seminar-secondary-excerpt {
  color: #666 !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  margin: 0 0 12px 0 !important;
}

.seminar-secondary-link {
  display: inline-block !important;
  color: #007bff !important;
  text-decoration: none !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  transition: all 0.3s ease !important;
}

.seminar-secondary-link:hover {
  color: #0056b3 !important;
  margin-right: -3px !important;
}

.seminars-link-wrapper {
  text-align: center !important;
  margin-top: 20px !important;
}

/* About Section */
.about-content {
  background-color: #f9f9f9 !important;
  padding: 30px !important;
  border-radius: 8px !important;
  margin-bottom: 30px !important;
  line-height: 1.8 !important;
}

.about-link-wrapper {
  text-align: center !important;
  margin-top: 20px !important;
}

/* Blog Section */
.blog-list {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) !important;
  gap: 30px !important;
  margin-bottom: 40px !important;
}

.blog-item {
  background-color: #fff !important;
  border: 1px solid #ddd !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  transition: all 0.3s ease !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
}

.blog-item:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15) !important;
}

.blog-thumbnail {
  overflow: hidden !important;
  height: 200px !important;
}

.blog-thumbnail img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.3s ease !important;
}

.blog-item:hover .blog-thumbnail img {
  transform: scale(1.05) !important;
}

.blog-content {
  padding: 20px !important;
}

.blog-date {
  color: #999 !important;
  font-size: 12px !important;
  display: block !important;
  margin-bottom: 8px !important;
}

.blog-title {
  margin: 0 0 10px 0 !important;
  font-size: 16px !important;
  font-weight: bold !important;
}

.blog-title a {
  color: #333 !important;
  text-decoration: none !important;
  transition: color 0.3s ease !important;
}

.blog-title a:hover {
  color: #007bff !important;
}

.blog-excerpt {
  color: #666 !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  margin: 0 !important;
}

.blog-link-wrapper {
  text-align: center !important;
  margin-top: 20px !important;
}

/* Contact Section */
.contact-content {
  text-align: center !important;
  margin-bottom: 30px !important;
  color: #666 !important;
  font-size: 16px !important;
  line-height: 1.8 !important;
}

.contact-link-wrapper {
  text-align: center !important;
  margin-top: 20px !important;
}

/* Seminar Single Page Styles - 1 Column Layout */
.seminar-single-wrapper {
  width: 100% !important;
  background-color: #fff !important;
}

.seminar-single-main {
  padding: 40px 0 !important;
}

.seminar-single-article {
  width: 100% !important;
  margin: 0 auto !important;
}

.seminar-header {
  margin-bottom: 30px !important;
  padding-bottom: 30px !important;
  border-bottom: 3px solid #007bff !important;
}

.seminar-single-title {
  font-size: 36px !important;
  font-weight: bold !important;
  color: #333 !important;
  margin: 0 0 15px 0 !important;
  line-height: 1.3 !important;
}

.seminar-subtitle-featured {
  font-size: 22px !important;
  color: #007bff !important;
  margin: 0 0 20px 0 !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  padding: 12px 0 !important;
  border-top: 2px solid #007bff !important;
  border-bottom: 2px solid #007bff !important;
}

.seminar-meta-header {
  display: flex !important;
  gap: 20px !important;
  align-items: center !important;
  margin-bottom: 40px !important;
  flex-wrap: wrap !important;
}

.seminar-categories-featured {
  display: flex !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}

.category-badge {
  display: inline-block !important;
  background-color: #007bff !important;
  color: white !important;
  padding: 6px 14px !important;
  border-radius: 20px !important;
  font-size: 12px !important;
  font-weight: bold !important;
  text-decoration: none !important;
  transition: all 0.3s ease !important;
}

.category-badge:hover {
  background-color: #0056b3 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 8px rgba(0, 123, 255, 0.2) !important;
}

.seminar-date-featured {
  color: #666 !important;
  font-size: 13px !important;
}

/* Seminar Sections */
.seminar-overview,
.seminar-schedule-info,
.seminar-instructor-info,
.seminar-features-info,
.seminar-cta-section-featured,
.seminar-related-featured {
  margin-bottom: 50px !important;
}

.section-heading {
  font-size: 24px !important;
  font-weight: bold !important;
  color: #333 !important;
  margin: 0 0 25px 0 !important;
  padding-bottom: 12px !important;
  border-bottom: 2px solid #007bff !important;
}

.seminar-content {
  color: #333 !important;
  line-height: 1.9 !important;
  font-size: 16px !important;
}

.seminar-content p {
  margin-bottom: 15px !important;
}

.seminar-content h3 {
  font-size: 18px !important;
  font-weight: bold !important;
  margin: 25px 0 12px 0 !important;
  color: #333 !important;
}

.seminar-content ul,
.seminar-content ol {
  margin: 15px 0 15px 30px !important;
}

.seminar-content li {
  margin-bottom: 8px !important;
}

/* Schedule Info */
.seminar-info-list {
  margin: 0 !important;
  background-color: #f9f9f9 !important;
  padding: 20px !important;
  border-radius: 8px !important;
}

.seminar-info-list dt {
  font-weight: bold !important;
  color: #333 !important;
  font-size: 15px !important;
  margin-top: 12px !important;
}

.seminar-info-list dt:first-child {
  margin-top: 0 !important;
}

.seminar-info-list dd {
  margin: 8px 0 0 0 !important;
  color: #666 !important;
  font-size: 16px !important;
  padding-left: 0 !important;
}

/* Instructor Info */
.instructor-name-box,
.instructor-profile-box {
  background-color: #f9f9f9 !important;
  padding: 20px !important;
  border-radius: 8px !important;
  margin-bottom: 20px !important;
}

.instructor-name-label,
.instructor-profile-label {
  font-size: 14px !important;
  font-weight: bold !important;
  color: #007bff !important;
  margin: 0 0 10px 0 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}

.instructor-name {
  font-size: 20px !important;
  font-weight: bold !important;
  color: #333 !important;
  margin: 0 !important;
  line-height: 1.4 !important;
}

.instructor-profile-content {
  color: #666 !important;
  line-height: 1.8 !important;
  font-size: 15px !important;
}

/* Instructor Links */
.instructor-links-box {
  background-color: #f9f9f9 !important;
  padding: 20px !important;
  border-radius: 8px !important;
  margin-bottom: 20px !important;
}

.instructor-links-label {
  font-size: 14px !important;
  font-weight: bold !important;
  color: #007bff !important;
  margin: 0 0 10px 0 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}

.instructor-links-list {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.instructor-link-item a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 8px 16px !important;
  border-radius: 20px !important;
  background-color: #fff !important;
  border: 1px solid #ddd !important;
  color: #333 !important;
  font-size: 14px !important;
  text-decoration: none !important;
}

.instructor-link-item a:hover {
  background-color: #007bff !important;
  border-color: #007bff !important;
  color: #fff !important;
}

.instructor-link-icon {
  display: inline-flex !important;
  width: 16px !important;
  height: 16px !important;
  flex-shrink: 0 !important;
}

.instructor-link-icon svg {
  width: 100% !important;
  height: 100% !important;
}

/* Features */
.features-content {
  background-color: #f9f9f9 !important;
  padding: 20px !important;
  border-radius: 8px !important;
  color: #666 !important;
  line-height: 1.8 !important;
  font-size: 15px !important;
}

.features-content p {
  margin-bottom: 12px !important;
}

.features-content ul,
.features-content ol {
  margin: 12px 0 12px 20px !important;
}

.features-content li {
  margin-bottom: 8px !important;
}

/* CTA Section */
.seminar-cta-section-featured {
  display: flex !important;
  justify-content: center !important;
  padding: 50px 30px !important;
  border-radius: 12px !important;
  margin: 60px 0 !important;
}

.btn-seminar-cta {
  display: inline-block !important;
  background-color: rgb(255, 1, 1) !important;
  color: #FFF !important;
  padding: 18px 70px !important;
  border-radius: 8px !important;
  text-decoration: none !important;
  font-weight: bold !important;
  font-size: 18px !important;
  transition: all 0.3s ease !important;
  cursor: pointer !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
}

.btn-seminar-cta:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25) !important;
  background-color: #ca0000 !important;
  color: #fff !important;
}

/* Related Seminars */
.seminar-related-featured {
  padding-top: 40px !important;
  border-top: 2px solid #eee !important;
}

.seminar-related-featured h2 {
  font-size: 24px !important;
  font-weight: bold !important;
  margin: 0 0 30px 0 !important;
  color: #333 !important;
  padding-bottom: 12px !important;
  border-bottom: 2px solid #007bff !important;
}

.seminar-related-list-featured {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)) !important;
  gap: 25px !important;
}

.seminar-related-card-featured {
  background-color: #fff !important;
  border: 1px solid #ddd !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  transition: all 0.3s ease !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

.seminar-related-card-featured:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15) !important;
}

.related-card-thumbnail {
  width: 100% !important;
  height: 180px !important;
  overflow: hidden !important;
  background-color: #f0f0f0 !important;
}

.related-card-thumbnail a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

.related-card-thumbnail img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.3s ease !important;
}

.seminar-related-card-featured:hover .related-card-thumbnail img {
  transform: scale(1.08) !important;
}

.related-card-body {
  padding: 20px !important;
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
}

.related-title {
  margin: 0 0 8px 0 !important;
  font-size: 16px !important;
  font-weight: bold !important;
}

.related-title a {
  color: #333 !important;
  text-decoration: none !important;
  transition: color 0.3s ease !important;
}

.related-title a:hover {
  color: #007bff !important;
}

.related-subtitle {
  font-size: 12px !important;
  color: #999 !important;
  margin: 5px 0 10px 0 !important;
  font-style: italic !important;
  line-height: 1.5 !important;
}

.related-excerpt {
  color: #666 !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  margin: 0 0 12px 0 !important;
  flex: 1 !important;
}

.related-link {
  display: inline-block !important;
  color: #007bff !important;
  text-decoration: none !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  transition: all 0.3s ease !important;
  margin-top: auto !important;
}

.related-link:hover {
  color: #0056b3 !important;
  margin-right: -3px !important;
}

/* Seminar Archive Page Styles */
.seminar-archive-wrapper {
  width: 100% !important;
  background-color: #fff !important;
}

.seminar-archive-main {
  padding: 40px 0 !important;
}

.seminar-archive-header {
  text-align: center !important;
  margin-bottom: 50px !important;
  padding-bottom: 30px !important;
  border-bottom: 2px solid #007bff !important;
}

.archive-title {
  font-size: 36px !important;
  font-weight: bold !important;
  color: #333 !important;
  margin: 0 0 15px 0 !important;
}

.archive-description {
  color: #666 !important;
  font-size: 16px !important;
  margin: 0 !important;
}

.seminar-archive-list {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(350px, 1fr)) !important;
  gap: 30px !important;
  margin-bottom: 40px !important;
}

.seminar-archive-card {
  background-color: #fff !important;
  border: 1px solid #ddd !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  transition: all 0.3s ease !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
}

.seminar-archive-card:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15) !important;
}

.archive-card-thumbnail {
  overflow: hidden !important;
  height: 200px !important;
}

.archive-card-thumbnail a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

.archive-card-thumbnail img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.3s ease !important;
}

.seminar-archive-card:hover .archive-card-thumbnail img {
  transform: scale(1.08) !important;
}

.archive-card-content {
  padding: 25px !important;
}

.archive-card-title {
  margin: 0 0 15px 0 !important;
  font-size: 18px !important;
  font-weight: bold !important;
}

.archive-card-title a {
  color: #333 !important;
  text-decoration: none !important;
  transition: color 0.3s ease !important;
}

.archive-card-title a:hover {
  color: #007bff !important;
}

.archive-card-subtitle {
  font-size: 13px !important;
  color: #999 !important;
  margin: 5px 0 12px 0 !important;
  font-style: italic !important;
  line-height: 1.5 !important;
}

.archive-card-categories {
  display: flex !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
  margin-bottom: 12px !important;
}

.category-tag {
  display: inline-block !important;
  background-color: #e8f1ff !important;
  color: #007bff !important;
  padding: 4px 12px !important;
  border-radius: 20px !important;
  font-size: 12px !important;
  font-weight: bold !important;
  text-decoration: none !important;
  transition: all 0.3s ease !important;
  border: 1px solid #007bff !important;
}

.category-tag:hover {
  background-color: #007bff !important;
  color: white !important;
}

.archive-card-info {
  background-color: #f9f9f9 !important;
  padding: 12px !important;
  border-radius: 5px !important;
  margin: 0 0 15px 0 !important;
  display: grid !important;
  grid-template-columns: 80px 1fr !important;
  gap: 10px !important;
}

.archive-card-info dt {
  font-weight: bold !important;
  font-size: 12px !important;
  color: #555 !important;
}

.archive-card-info dd {
  margin: 0 !important;
  font-size: 12px !important;
  color: #666 !important;
}

.archive-card-excerpt {
  color: #666 !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  margin: 0 0 15px 0 !important;
}

.archive-card-link {
  display: inline-block !important;
  color: #007bff !important;
  text-decoration: none !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  transition: all 0.3s ease !important;
}

.archive-card-link:hover {
  color: #0056b3 !important;
  margin-right: -5px !important;
}

.no-posts {
  text-align: center !important;
  color: #999 !important;
  padding: 40px 0 !important;
}

/* Button Styles */
.btn-primary {
  display: inline-block !important;
  background-color: #007bff !important;
  color: white !important;
  padding: 12px 30px !important;
  border-radius: 5px !important;
  text-decoration: none !important;
  font-weight: bold !important;
  transition: all 0.3s ease !important;
  border: none !important;
  cursor: pointer !important;
  font-size: 16px !important;
}

.btn-primary:hover {
  background-color: #0056b3 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 12px rgba(0, 123, 255, 0.3) !important;
}

.btn-secondary {
  display: inline-block !important;
  background-color: transparent !important;
  color: #007bff !important;
  padding: 10px 25px !important;
  border-radius: 5px !important;
  border: 2px solid #007bff !important;
  text-decoration: none !important;
  font-weight: bold !important;
  transition: all 0.3s ease !important;
  cursor: pointer !important;
  font-size: 14px !important;
}

.btn-secondary:hover {
  background-color: #007bff !important;
  color: white !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 12px rgba(0, 123, 255, 0.3) !important;
}

.btn-large {
  padding: 16px 50px !important;
  font-size: 18px !important;
}

/* Page Header Styles */
.page-header {
  margin-bottom: 40px !important;
  padding-bottom: 20px !important;
  border-bottom: 2px solid #007bff !important;
}

.page-title {
  font-size: 36px !important;
  font-weight: bold !important;
  color: #333 !important;
  margin: 0 0 15px 0 !important;
}

.page-description {
  color: #666 !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
  margin: 0 !important;
}

/* Company Page Styles */
.page-company-wrapper,
.page-contact-wrapper {
  width: 100% !important;
  background-color: #fff !important;
}

.page-company-main,
.page-contact-main {
  padding: 40px 0 !important;
}

.page-company-content {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 40px !important;
  margin-bottom: 40px !important;
}

.page-company-content .page-body {
  grid-column: 1 !important;
  width: 100% !important;
  max-width: none !important;
  color: #333 !important;
  line-height: 1.8 !important;
}

.page-company-content .page-body h2 {
  font-size: 24px !important;
  font-weight: bold !important;
  margin: 30px 0 20px 0 !important;
  color: #333 !important;
}

.page-company-content .page-body p {
  color: #666 !important;
  margin-bottom: 15px !important;
}

.company-info-sidebar {
  grid-column: 2 !important;
  grid-row: 1 !important;
  height: fit-content !important;
}

.company-contact-info {
  background-color: #f9f9f9 !important;
  padding: 25px !important;
  border-radius: 8px !important;
  border-left: 4px solid #007bff !important;
}

.company-contact-info h2 {
  font-size: 18px !important;
  font-weight: bold !important;
  margin: 0 0 20px 0 !important;
  color: #333 !important;
}

.info-list {
  margin: 0 !important;
}

.info-list dt {
  font-weight: bold !important;
  color: #333 !important;
  font-size: 14px !important;
  margin-top: 15px !important;
}

.info-list dt:first-child {
  margin-top: 0 !important;
}

.info-list dd {
  margin: 5px 0 0 0 !important;
  color: #666 !important;
  font-size: 14px !important;
  padding-left: 0 !important;
}

.info-list a {
  color: #007bff !important;
  text-decoration: none !important;
}

.info-list a:hover {
  text-decoration: underline !important;
}

.btn-company-contact {
  display: block !important;
  text-align: center !important;
  background-color: #007bff !important;
  color: white !important;
  padding: 12px !important;
  border-radius: 5px !important;
  text-decoration: none !important;
  font-weight: bold !important;
  margin-top: 20px !important;
  transition: all 0.3s ease !important;
}

.btn-company-contact:hover {
  background-color: #0056b3 !important;
}

/* Contact Page Styles */
.page-contact-content {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 40px !important;
  margin-bottom: 40px !important;
}

.contact-form-wrapper {
  grid-column: 1 !important;
  color: #333 !important;
}

.contact-form-wrapper h2 {
  font-size: 20px !important;
  font-weight: bold !important;
  margin: 30px 0 20px 0 !important;
  color: #333 !important;
}

.contact-info-section {
  grid-column: 2 !important;
  height: fit-content !important;
}

.contact-info-section h2 {
  font-size: 18px !important;
  font-weight: bold !important;
  margin: 0 0 20px 0 !important;
  color: #333 !important;
}

.contact-info-box {
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
}

.contact-method {
  background-color: #f9f9f9 !important;
  padding: 20px !important;
  border-radius: 8px !important;
  border-left: 4px solid #007bff !important;
}

.contact-method h3 {
  font-size: 16px !important;
  font-weight: bold !important;
  margin: 0 0 10px 0 !important;
  color: #333 !important;
}

.contact-detail {
  margin: 0 !important;
  font-size: 16px !important;
}

.contact-detail a {
  color: #007bff !important;
  text-decoration: none !important;
  font-weight: bold !important;
  word-break: break-all !important;
}

.contact-detail a:hover {
  text-decoration: underline !important;
}

.contact-time {
  margin: 10px 0 0 0 !important;
  color: #666 !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
}

/* Category Page Styles */
.category-news-wrapper,
.category-blog-wrapper {
  width: 100% !important;
  background-color: #fff !important;
}

.category-news-main,
.category-blog-main {
  padding: 40px 0 !important;
}

.category-header {
  text-align: center !important;
  margin-bottom: 50px !important;
  padding-bottom: 30px !important;
  border-bottom: 2px solid #007bff !important;
}

.category-title {
  font-size: 36px !important;
  font-weight: bold !important;
  color: #333 !important;
  margin: 0 0 15px 0 !important;
}

.category-description {
  color: #666 !important;
  font-size: 16px !important;
  margin: 0 !important;
}

/* News Category List */
.news-category-list {
  margin-bottom: 40px !important;
}

.news-category-item {
  margin-bottom: 20px !important;
  border-bottom: 1px solid #eee !important;
  padding-bottom: 20px !important;
}

.news-category-item:last-child {
  border-bottom: none !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

.news-item-inner {
  display: grid !important;
  grid-template-columns: 100px 1fr !important;
  gap: 20px !important;
  align-items: flex-start !important;
}

.news-item-date {
  background-color: #007bff !important;
  color: white !important;
  padding: 15px !important;
  border-radius: 5px !important;
  text-align: center !important;
  height: fit-content !important;
}

.date-day {
  display: block !important;
  font-size: 28px !important;
  font-weight: bold !important;
}

.date-month-year {
  display: block !important;
  font-size: 12px !important;
  margin-top: 5px !important;
}

.news-item-content {
  padding-top: 0 !important;
}

.news-item-title {
  font-size: 20px !important;
  font-weight: bold !important;
  margin: 0 0 10px 0 !important;
}

.news-item-title a {
  color: #333 !important;
  text-decoration: none !important;
  transition: color 0.3s ease !important;
}

.news-item-title a:hover {
  color: #007bff !important;
}

.news-item-excerpt {
  color: #666 !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  margin: 0 0 10px 0 !important;
}

.news-item-link {
  color: #007bff !important;
  text-decoration: none !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  transition: all 0.3s ease !important;
}

.news-item-link:hover {
  color: #0056b3 !important;
  margin-right: -3px !important;
}

/* Blog Category List */
.blog-category-list {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) !important;
  gap: 30px !important;
  margin-bottom: 40px !important;
}

.blog-category-card {
  background-color: #fff !important;
  border: 1px solid #ddd !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  transition: all 0.3s ease !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
}

.blog-category-card:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15) !important;
}

.blog-card-thumbnail {
  overflow: hidden !important;
  height: 200px !important;
}

.blog-card-thumbnail a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

.blog-card-thumbnail img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.3s ease !important;
}

.blog-category-card:hover .blog-card-thumbnail img {
  transform: scale(1.08) !important;
}

.blog-card-content {
  padding: 20px !important;
}

.blog-card-meta {
  margin-bottom: 10px !important;
}

.blog-card-date {
  color: #999 !important;
  font-size: 12px !important;
}

.blog-card-title {
  font-size: 18px !important;
  font-weight: bold !important;
  margin: 0 0 10px 0 !important;
}

.blog-card-title a {
  color: #333 !important;
  text-decoration: none !important;
  transition: color 0.3s ease !important;
}

.blog-card-title a:hover {
  color: #007bff !important;
}

.blog-card-excerpt {
  color: #666 !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  margin: 0 0 12px 0 !important;
}

.blog-card-link {
  display: inline-block !important;
  color: #007bff !important;
  text-decoration: none !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  transition: all 0.3s ease !important;
}

.blog-card-link:hover {
  color: #0056b3 !important;
  margin-right: -3px !important;
}

/* Back Link & Pagination */
.category-back-link {
  text-align: center !important;
  margin-top: 40px !important;
}

.btn-back {
  display: inline-block !important;
  background-color: #666 !important;
  color: white !important;
  padding: 12px 30px !important;
  border-radius: 5px !important;
  text-decoration: none !important;
  font-weight: bold !important;
  transition: all 0.3s ease !important;
}

.btn-back:hover {
  background-color: #333 !important;
  transform: translateY(-2px) !important;
}

.no-posts {
  text-align: center !important;
  color: #999 !important;
  padding: 40px 0 !important;
  font-size: 16px !important;
}

/* Seminar Taxonomy Page Styles */
.seminar-taxonomy-wrapper {
  width: 100% !important;
  background-color: #fff !important;
}

.seminar-taxonomy-main {
  padding: 40px 0 !important;
}

.taxonomy-header {
  text-align: center !important;
  margin-bottom: 50px !important;
  padding-bottom: 30px !important;
  border-bottom: 2px solid #007bff !important;
}

.taxonomy-title {
  font-size: 36px !important;
  font-weight: bold !important;
  color: #333 !important;
  margin: 0 0 15px 0 !important;
}

.taxonomy-description {
  color: #666 !important;
  font-size: 16px !important;
  margin: 0 !important;
  line-height: 1.6 !important;
}

.taxonomy-seminar-list {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(350px, 1fr)) !important;
  gap: 30px !important;
  margin-bottom: 40px !important;
}

.taxonomy-seminar-card {
  background-color: #fff !important;
  border: 1px solid #ddd !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  transition: all 0.3s ease !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
}

.taxonomy-seminar-card:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15) !important;
}

.taxonomy-card-thumbnail {
  overflow: hidden !important;
  height: 200px !important;
}

.taxonomy-card-thumbnail a {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

.taxonomy-card-thumbnail img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.3s ease !important;
}

.taxonomy-seminar-card:hover .taxonomy-card-thumbnail img {
  transform: scale(1.08) !important;
}

.taxonomy-card-content {
  padding: 25px !important;
}

.taxonomy-card-title {
  margin: 0 0 15px 0 !important;
  font-size: 18px !important;
  font-weight: bold !important;
}

.taxonomy-card-title a {
  color: #333 !important;
  text-decoration: none !important;
  transition: color 0.3s ease !important;
}

.taxonomy-card-title a:hover {
  color: #007bff !important;
}

.taxonomy-card-subtitle {
  font-size: 13px !important;
  color: #999 !important;
  margin: 5px 0 12px 0 !important;
  font-style: italic !important;
  line-height: 1.5 !important;
}

.taxonomy-card-info {
  background-color: #f9f9f9 !important;
  padding: 12px !important;
  border-radius: 5px !important;
  margin: 0 0 15px 0 !important;
  display: grid !important;
  grid-template-columns: 80px 1fr !important;
  gap: 10px !important;
}

.taxonomy-card-info dt {
  font-weight: bold !important;
  font-size: 12px !important;
  color: #555 !important;
}

.taxonomy-card-info dd {
  margin: 0 !important;
  font-size: 12px !important;
  color: #666 !important;
}

.taxonomy-card-excerpt {
  color: #666 !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  margin: 0 0 15px 0 !important;
}

.taxonomy-card-link {
  display: inline-block !important;
  color: #007bff !important;
  text-decoration: none !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  transition: all 0.3s ease !important;
}

.taxonomy-card-link:hover {
  color: #0056b3 !important;
  margin-right: -3px !important;
}

.taxonomy-back-links {
  display: flex !important;
  gap: 15px !important;
  justify-content: center !important;
  margin-top: 40px !important;
  flex-wrap: wrap !important;
}

/*必要ならばここにコードを書く*/

/************************************
** レスポンシブデザイン用のメディアクエリ
************************************/
/*1023px以下*/
@media screen and (max-width: 1023px){
  .section-title {
    font-size: 28px !important;
  }

  .seminar-primary {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
    padding: 30px !important;
  }

  .seminar-primary-title {
    font-size: 24px !important;
  }

  .seminar-secondary-wrapper {
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)) !important;
    gap: 20px !important;
  }

  .blog-list {
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)) !important;
    gap: 20px !important;
  }

  .news-section,
  .seminars-section,
  .about-section,
  .blog-section,
  .contact-section {
    padding: 40px 0 !important;
  }

  .header-image {
    max-height: 400px !important;
  }

  /* Seminar Single Page */
  .seminar-single-title {
    font-size: 28px !important;
  }

  .seminar-content-wrapper {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }

  .seminar-details-box {
    grid-column: 1 !important;
    grid-row: auto !important;
  }

  .seminar-archive-list {
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) !important;
  }

  .seminar-related-list {
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)) !important;
  }

  /* Pages & Categories */
  .page-company-content,
  .page-contact-content {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }

  .company-info-sidebar,
  .contact-info-section {
    grid-column: 1 !important;
  }

  .contact-info-box {
    grid-template-columns: 1fr 1fr !important;
  }

  .blog-category-list {
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)) !important;
  }
}

/* Front Page Responsive 834px以下 */
/*834px以下*/
@media screen and (max-width: 834px){
  .fp-hero-bg {
    background-attachment: scroll !important;
  }

  .fp-hero-content-inner .fp-hero-title {
    font-size: 28px !important;
  }

  .fp-hero-content-inner .fp-hero-subtitle {
    font-size: 16px !important;
  }

  .fp-hero-content-inner .fp-hero-description {
    font-size: 13px !important;
  }

  .fp-hero-content-inner .fp-hero-badge {
    font-size: 12px !important;
    margin-bottom: 20px !important;
  }

  .fp-hero-content {
    padding: 40px 25px !important;
  }

  .fp-seminar-primary-box {
    padding: 30px !important;
  }

  .fp-seminars-title {
    font-size: 26px !important;
  }

  .section-title {
    font-size: 24px !important;
    margin-bottom: 30px !important;
  }

  .seminar-primary {
    padding: 25px !important;
  }

  .seminar-primary-title {
    font-size: 20px !important;
  }

  .seminar-primary-excerpt {
    font-size: 14px !important;
  }

  .seminar-secondary-wrapper {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
    gap: 15px !important;
  }

  .seminar-secondary-content {
    padding: 15px !important;
  }

  .blog-list {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
    gap: 20px !important;
  }

  .blog-thumbnail {
    height: 150px !important;
  }

  .btn-primary {
    padding: 10px 25px !important;
    font-size: 14px !important;
  }

  .btn-secondary {
    padding: 8px 20px !important;
    font-size: 13px !important;
  }

  .btn-large {
    padding: 14px 40px !important;
    font-size: 16px !important;
  }

  .header-image {
    max-height: 300px !important;
  }

  /* Seminar Single Page */
  .seminar-single-title {
    font-size: 22px !important;
  }

  .seminar-subtitle {
    font-size: 14px !important;
  }

  .seminar-single-content h2,
  .seminar-instructor-section h2,
  .seminar-features-section h2,
  .seminar-related h2 {
    font-size: 20px !important;
  }

  .seminar-details-box {
    padding: 20px !important;
  }

  .btn-cta {
    padding: 14px 40px !important;
    font-size: 16px !important;
  }

  .seminar-archive-list {
    grid-template-columns: 1fr !important;
  }

  .seminar-related-list {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
  }

  /* Pages & Categories */
  .page-title,
  .category-title,
  .archive-title {
    font-size: 28px !important;
  }

  .blog-category-list {
    grid-template-columns: 1fr !important;
  }

  .news-item-inner {
    grid-template-columns: 80px 1fr !important;
    gap: 15px !important;
  }

  .contact-info-box {
    grid-template-columns: 1fr !important;
  }

  .taxonomy-seminar-list {
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) !important;
  }
}

/* Front Page Responsive スマホ(600px以下) */
/*スマホ表示：全セクション1カラム*/
@media screen and (max-width: 600px){
  .fp-hero-content-inner .fp-hero-title {
    font-size: 16px !important;
    margin-bottom: 12px !important;
  }

  .fp-hero-content-inner .fp-hero-subtitle {
    font-size: 11px !important;
    margin-bottom: 20px !important;
  }

  .fp-hero-content-inner .fp-hero-description {
    font-size: 9px !important;
    line-height: 1.6 !important;
  }

  .fp-hero-content-inner .fp-hero-badge {
    font-size: 8px !important;
    margin-bottom: 8px !important;
    padding: 4px 10px !important;
  }

  .fp-hero-content {
    padding: 12px 14px !important;
  }

  .fp-seminars {
    padding: 40px 0 !important;
  }

  .fp-seminars-header {
    flex-direction: column !important;
    gap: 15px !important;
    align-items: flex-start !important;
  }

  .fp-section-header {
    flex-direction: column !important;
    gap: 12px !important;
    align-items: flex-start !important;
  }

  .fp-seminars-title {
    font-size: 20px !important;
  }

  .fp-seminar-primary-box {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
    padding: 20px !important;
  }

  .fp-primary-title {
    font-size: 20px !important;
  }

  .fp-seminars-secondary {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  .fp-content-section {
    padding: 20px 0 !important;
    margin-bottom: 20px !important;
  }

  .fp-content-grid {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }

  .fp-blog-item {
    grid-template-columns: 1fr !important;
  }

  .fp-blog-image {
    width: 100% !important;
    height: 180px !important;
  }

  .fp-seminars-grid {
    grid-template-columns: 1fr !important;
    gap: 15px !important;
  }

  .fp-blog-grid {
    grid-template-columns: 1fr !important;
  }

  .fp-seminar-primary {
    gap: 30px !important;
    padding: 25px !important;
  }

  .fp-seminar-primary-title {
    font-size: 22px !important;
  }

  .fp-seminar-card-image,
  .fp-blog-card-image {
    height: 160px !important;
  }

  .fp-contact-cta {
    padding: 60px 0 !important;
  }

  .fp-contact-title {
    font-size: 24px !important;
  }

  .fp-contact-subtitle {
    font-size: 14px !important;
  }

  .btn-fp-cta {
    padding: 12px 40px !important;
    font-size: 16px !important;

  }

  .section-title {
    font-size: 24px !important;
  }

  .section-subtitle {
    font-size: 14px !important;
  }

  .fp-seminars-section,
  .fp-news-section,
  .fp-blog-section {
    padding: 40px 0 !important;
  }

  .section-title {
    font-size: 20px !important;
    margin-bottom: 20px !important;
  }

  .seminar-primary {
    padding: 20px !important;
  }

  .seminar-primary-title {
    font-size: 18px !important;
  }

  .seminar-primary-excerpt {
    font-size: 13px !important;
  }

  .seminar-secondary-wrapper,
  .blog-list {
    grid-template-columns: 1fr !important;
    gap: 15px !important;
  }

  .seminar-secondary-content {
    padding: 12px !important;
  }

  .blog-thumbnail {
    height: 200px !important;
  }

  .blog-content {
    padding: 15px !important;
  }

  .news-item {
    padding: 15px !important;
  }

  .contact-content {
    padding: 0 !important;
  }

  .btn-primary {
    padding: 10px 20px !important;
    font-size: 14px !important;
    width: 100% !important;
  }

  .btn-secondary {
    padding: 10px 20px !important;
    font-size: 13px !important;
    width: 100% !important;
  }

  .btn-large {
    padding: 12px 20px !important;
    font-size: 14px !important;
    width: 100% !important;
  }

  .fp-container {
    padding: 0 15px !important;
  }

  .news-section,
  .seminars-section,
  .about-section,
  .blog-section,
  .contact-section {
    padding: 30px 0 !important;
  }

  .header-image {
    max-height: 250px !important;
  }

  /* Seminar Single Page */
  .seminar-single-main {
    padding: 20px 0 !important;
  }

  .seminar-single-article {
    max-width: 100% !important;
    padding: 0 10px !important;
  }

  .seminar-single-title {
    font-size: 24px !important;
  }

  .seminar-subtitle-featured {
    font-size: 16px !important;
  }

  .section-heading {
    font-size: 18px !important;
  }

  .seminar-content {
    font-size: 14px !important;
  }

  .seminar-info-list {
    padding: 15px !important;
  }

  .instructor-name-box,
  .instructor-profile-box {
    padding: 15px !important;
  }

  .instructor-name {
    font-size: 16px !important;
  }

  .features-content {
    padding: 15px !important;
  }

  .btn-seminar-cta {
    padding: 14px 40px !important;
    font-size: 14px !important;
  }

  .seminar-cta-section-featured {
    padding: 30px 20px !important;
  }

  .seminar-related-list-featured {
    grid-template-columns: 1fr !important;
    gap: 15px !important;
  }

  .seminar-archive-header {
    margin-bottom: 30px !important;
  }

  .archive-title {
    font-size: 24px !important;
  }

  .archive-card-title {
    font-size: 16px !important;
  }

  /* Pages & Categories */
  .page-single-main,
  .category-news-main,
  .category-blog-main {
    padding: 20px 0 !important;
  }

  .page-title,
  .category-title {
    font-size: 22px !important;
  }

  .page-header,
  .category-header {
    margin-bottom: 30px !important;
  }

  .page-company-content,
  .page-contact-content {
    grid-template-columns: 1fr !important;
  }

  .company-info-sidebar,
  .contact-info-section {
    grid-column: 1 !important;
  }

  .news-item-inner {
    grid-template-columns: 70px 1fr !important;
    gap: 10px !important;
  }

  .news-item-date {
    padding: 10px !important;
  }

  .date-day {
    font-size: 20px !important;
  }

  .contact-detail {
    font-size: 14px !important;
  }

  .blog-category-list {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  .blog-card-title {
    font-size: 16px !important;
  }

  .taxonomy-seminar-list {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  .taxonomy-title {
    font-size: 22px !important;
  }

  .taxonomy-card-title {
    font-size: 16px !important;
  }

  .taxonomy-back-links {
    flex-direction: column !important;
  }

  .btn-back {
    width: 100% !important;
    text-align: center !important;
  }

  /* Related Seminars 1023px以下 */
  .related-card-thumbnail {
    height: 180px !important;
  }

  .seminar-related-list-featured {
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)) !important;
  }

  /* Seminar Single Page 480px以下 */
  .seminar-single-article {
    max-width: 100% !important;
    padding: 0 10px !important;
  }

  .seminar-single-title {
    font-size: 22px !important;
  }

  .seminar-subtitle-featured {
    font-size: 16px !important;
    padding: 10px 0 !important;
  }

  .seminar-meta-header {
    gap: 10px !important;
    flex-direction: column !important;
    align-items: flex-start !important;
  }

  .section-heading {
    font-size: 18px !important;
    margin-bottom: 20px !important;
  }

  .seminar-content {
    font-size: 14px !important;
    line-height: 1.8 !important;
  }

  .seminar-info-list,
  .instructor-name-box,
  .instructor-profile-box,
  .features-content {
    padding: 15px !important;
    margin-bottom: 15px !important;
  }

  .instructor-name {
    font-size: 16px !important;
  }

  .btn-seminar-cta {
    padding: 12px 30px !important;
    font-size: 14px !important;
  }

  .seminar-cta-section-featured {
    padding: 25px 15px !important;
    margin: 40px 0 !important;
  }

  .seminar-related-list-featured {
    grid-template-columns: 1fr !important;
    gap: 15px !important;
  }

  .related-card-thumbnail {
    height: 150px !important;
  }

  .related-card-body {
    padding: 15px !important;
  }

  .related-title {
    font-size: 15px !important;
  }

  .related-subtitle {
    font-size: 11px !important;
  }

  .related-excerpt {
    font-size: 12px !important;
  }
}

/* Front Page: Features & CTA */
.fp-features {
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate !important;
  width: calc(100% - 40px) !important;
  max-width: 1200px !important;
  margin: 0 auto 20px !important;
  border-radius: 24px !important;
  padding: 80px 0 !important;
  background-color: #f0f5ff !important;
  text-align: center !important;
}

.fp-features-bg {
  position: absolute !important;
  inset: -10px !important;
  z-index: -2 !important;
  background-size: cover !important;
  background-position: center !important;
  filter: blur(4px) !important;
}

.fp-features::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: -1 !important;
}

.fp-features-title {
  font-size: 28px !important;
  font-weight: bold !important;
  color: #fff !important;
  text-shadow: #000 1px 0 10px !important;
  margin: 0 0 12px 0 !important;
}

.fp-features-lead {
  color: #fff !important;
  text-shadow: #000 1px 0 10px !important;
  margin: 0 0 40px 0 !important;
}

.fp-features-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 30px !important;
}

.fp-feature-card {
  background-color: #fff !important;
  border-radius: 10px !important;
  border-top: 4px solid #e65507 !important;
  padding: 32px 24px !important;
  box-shadow: 0 4px 16px rgba(0, 86, 214, 0.08) !important;
}

.fp-feature-num {
  display: block !important;
  font-size: 32px !important;
  font-weight: 800 !important;
  color: #e65507 !important;
  margin-bottom: 8px !important;
}

.fp-feature-heading {
  font-size: 18px !important;
  font-weight: bold !important;
  color: #333 !important;
  margin: 0 0 12px 0 !important;
}

.fp-feature-text {
  font-size: 14px !important;
  line-height: 1.8 !important;
  color: #666 !important;
  margin: 0 !important;
  text-align: left !important;
}

.fp-cta {
  padding: 70px 0 !important;
  background: linear-gradient(135deg, #0056d6, #007bff) !important;
  text-align: center !important;
  color: #fff !important;
  border-radius: 24px !important;
}

.fp-cta-title {
  font-size: 28px !important;
  font-weight: bold !important;
  color: #fff !important;
  margin: 0 0 14px 0 !important;
}

.fp-cta-text {
  color: #fff !important;
  margin: 0 0 30px 0 !important;
}

@media screen and (max-width: 834px) {
  .fp-features-grid {
    grid-template-columns: 1fr !important;
  }

  .fp-features,
  .fp-cta {
    padding: 50px 0 !important;
  }

  .fp-features-title,
  .fp-cta-title {
    font-size: 22px !important;
  }
}

/* Contact Page: 1 column */
.page-contact-content {
  max-width: 800px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.contact-notice {
  background-color: #f0f5ff !important;
  border-radius: 8px !important;
  padding: 20px 24px !important;
  margin-bottom: 30px !important;
}

.contact-notice h2 {
  margin: 0 0 10px 0 !important;
  font-size: 16px !important;
}

.contact-notice ul {
  margin: 0 !important;
  padding-left: 1.2em !important;
  font-size: 14px !important;
  line-height: 1.8 !important;
}

/* Front Page: section gap 20px */
.front-page-wrapper .fp-hero {
  margin-bottom: 20px !important;
}

.front-page-main .fp-seminars {
  padding: 0 0 20px !important;
}

.front-page-main .fp-features {
  margin: 0 auto 20px !important;
}

.front-page-main .fp-content-section {
  margin-bottom: 20px !important;
  padding-top: 40px !important;
  padding-bottom: 40px !important;
}

.front-page-main .fp-cta {
  margin: 0 !important;
}
