/* responsive.css - WAKON JAPAN レスポンシブ補完スタイル */

/* ===== ベース調整 ===== */
body {
  overflow-x: hidden;
  min-width: 320px;
}

img, video, iframe {
  max-width: 100%;
  height: auto;
}

/* ===== ヘッダー調整 ===== */
@media (max-width: 992px) {
  .premium-header {
    padding: 0.5rem 0;
  }
  
  .header-main {
    flex-wrap: wrap;
    gap: 0.5rem;
  }
  
  .premium-nav {
    order: 3;
    flex-basis: 100%;
    margin-top: 0.5rem;
  }
  
  .premium-nav-menu {
    flex-wrap: wrap;
    justify-content: center;
  }
}

@media (max-width: 768px) {
  .header-brand {
    min-width: auto;
  }
  
  .logo-main {
    font-size: 1.5rem;
  }
  
  .logo-tagline {
    font-size: 0.65rem;
  }
  
  .header-actions {
    min-width: auto;
  }
  
  .premium-language-btn,
  .premium-cta {
    padding: 0.5rem;
    font-size: 0.8rem;
  }
}

/* ===== ヒーローセクション調整 ===== */
@media (max-width: 1200px) {
  .hero-section {
    min-height: 80vh;
  }
}

@media (max-width: 768px) {
  .hero-section {
    min-height: 70vh;
    margin-top:0px;
  }
  
  .hero-title {
    font-size: 2.5rem !important;
    margin-bottom: 1rem !important;
  }
  
  .subtitle {
    font-size: 1.5rem !important;
  }
  
  .hero-description {
    font-size: 1.1rem !important;
  }
  
  .hero-buttons {
    flex-direction: column;
  }
  
  .hero-buttons .btn {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .hero-section {
    min-height: 100vh;
  }
  
  .hero-title {
    font-size:clamp(1.8rem, 8vw, 2.5rem) !important;
  }
  
  .subtitle {
    font-size: 1.2rem !important;
  }
  
  .hero-swiper .swiper-button-next,
  .hero-swiper .swiper-button-prev {
    display: none;
  }
}

/* ===== メインコンテンツ調整 ===== */
@media (max-width: 1200px) {
  .content-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  
  .sidebar {
    order: -1;
  }
}

@media (max-width: 768px) {
  main, .sidebar {
    padding:0;
  }
  
  .section {
    margin-bottom: 1.5rem;
  }
  
  .grid-3 {
    grid-template-columns: 1fr;
  }
  
  .enhanced-card .card-image {
    height: 220px;
  }
}

/* ===== カードコンポーネント調整 ===== */
@media (max-width: 768px) {
  .enhanced-card {
    margin-bottom: 0;
  }
  
  .enhanced-card:hover {
    transform: none;
    box-shadow: var(--shadow-medium);
  }
  
  .enhanced-card .card-overlay {
    transform: none;
    position: relative;
  }
}

/* ===== サイドバー調整 ===== */
@media (max-width: 768px) {
  .sidebar-item {
    flex-direction: column;
  }
  
  .sidebar-image {
    width: 100%;
    height: auto;
    aspect-ratio: 16/9;
  }
}

/* ===== フッター調整 ===== */
footer {
  padding: 2rem 1rem;
  text-align: center;
}

/* ===== ユーティリティクラス ===== */
.mobile-only {
  display: none;
}

@media (max-width: 768px) {
  .mobile-only {
    display: block;
  }
  
  .desktop-only {
    display: none;
  }
}

/* ===== タッチデバイス用調整 ===== */
@media (hover: none) {
  .enhanced-card:hover {
    transform: none;
  }
  
  .premium-nav-menu li a:hover {
    transform: none;
  }
}

/* ===== 横長デバイス対応 ===== */
@media (max-height: 500px) and (orientation: landscape) {
  .hero-section {
    min-height: 100vh;
  }
}

/* ===== 高解像度デバイス対応 ===== */
@media (-webkit-min-device-pixel-ratio: 2), 
       (min-resolution: 192dpi) {
  .logo-main {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
}



/* ===== ハンバーガーメニュー調整 ===== */
.premium-mobile-toggle {
  display: none; /* デフォルトでは非表示 */
  flex-direction: column;
  justify-content: space-between;
  width: 30px;
  height: 24px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  z-index: 1001;
  position: relative;
}

.premium-mobile-toggle:focus {
  outline: 2px solid var(--color-gold);
  outline-offset: 2px;
}

.hamburger-line {
  display: block;
  width: 100%;
  height: 3px;
  border-radius: 2px;
  transition: all 0.3s ease;
  transform-origin: center;
}

/* モバイル表示時のみ表示 */
@media (max-width: 992px) {
  .premium-mobile-toggle {
    display: flex;
  }
  
  .premium-nav {
    position: fixed;
    top: 80px;
    left: 0;
    width: 100%;
    backdrop-filter: blur(20px);
    padding: 1rem 0;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    transform: translateY(-150%);
    transition: transform 0.4s ease;
    z-index: 999;
  }
  
  .premium-nav.mobile-active {
    transform: translateY(0);
  }
  
  .premium-nav-menu {
    flex-direction: column;
    gap: 0.5rem;
    padding: 0 1rem;
  }
  
  .premium-nav-menu li a {
    padding: 1rem;
    border-radius: var(--radius-md);
    border: 1px solid rgba(209, 151, 66, 0.1);
  }
  
  /* ハンバーガーアニメーション */
  .premium-mobile-toggle.active .hamburger-line:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
  }
  
  .premium-mobile-toggle.active .hamburger-line:nth-child(2) {
    opacity: 0;
  }
  
  .premium-mobile-toggle.active .hamburger-line:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
  }
}

/* ヘッダーの高さ調整 */
@media (max-width: 768px) {
  .premium-nav {
    top: 70px;
  }
}

@media (max-width: 480px) {
  .premium-nav {
    top: 60px;
  }
}

/* ===== 左右レイアウト調整 ===== */
.header-brand {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}

.hidari {
  flex: 1;
  text-align: left;
  min-width: 180px; /* ロゴの最小幅を確保 */
}

.migi {
  flex: 0 0 auto;
  text-align: right;
}

/* ロゴとハンバーガーボタンの調整 */
.premium-logo {
  display: inline-block;
}

.premium-mobile-toggle {
  float: none; /* style属性のfloatを上書き */
  margin-left: auto; /* 右寄せ */
}

/* レスポンシブ調整 */
@media (max-width: 1200px) {
  .header-brand {
    flex-wrap: nowrap;
  }
  
  .hidari {
    min-width: 150px;
  }
}

@media (max-width: 768px) {
  .hidari {
    min-width: 120px;
  }
  
  .logo-main {
    font-size: 1.5rem;
  }
}

@media (max-width: 480px) {
  .hidari {
    min-width: 100px;
  }
  
  .logo-main {
    font-size: 1.3rem;
  }
  
  .premium-mobile-toggle {
    width: 26px;
    height: 20px;
  }
  
  .hamburger-line {
    height: 2px;
  }
}




/* ===== CINZEL フォント強制適用 ===== */

/* 全ての要素にCinzelを強制適用 */
* {
    font-family: 'Cinzel', serif !important;
}

/* 特定の要素に個別指定 */
html {
    font-family: 'Cinzel', serif !important;
}

body {
    font-family: 'Cinzel', serif !important;
}

/* ヘッダー関連 */
.premium-header,
.premium-header * {
    font-family: 'Cinzel', serif !important;
}

.header-contact,
.header-contact * {
    font-family: 'Cinzel', serif !important;
}

.header-social,
.header-social * {
    font-family: 'Cinzel', serif !important;
}

.logo-main,
.logo-tagline {
    font-family: 'Cinzel', serif !important;
}

.premium-nav-menu,
.premium-nav-menu * {
    font-family: 'Cinzel', serif !important;
}

.premium-language,
.premium-language *,
.premium-language-btn,
.premium-language-dropdown,
.premium-language-option {
    font-family: 'Cinzel', serif !important;
}

.premium-cta {
    font-family: 'Cinzel', serif !important;
}

/* ローディング画面 */
.loading-content,
.loading-content *,
.loading-logo,
.loading-text,
.loading-subtitle {
    font-family: 'Cinzel', serif !important;
}

/* ヒーローセクション */
.hero-section,
.hero-section *,
.hero-content,
.hero-content *,
.hero-title,
.subtitle,
.hero-description,
.hero-buttons,
.hero-buttons * {
    font-family: 'Cinzel', serif !important;
}

/* メインコンテンツ */
main,
main *,
.section,
.section *,
.section-title,
.section-header,
.section-header * {
    font-family: 'Cinzel', serif !important;
}

/* カード関連 */
.enhanced-card,
.enhanced-card *,
.card-content,
.card-content *,
.category-tag,
.card-title,
.card-text {
    font-family: 'Cinzel', serif !important;
}

/* サイドバー */
.sidebar,
.sidebar *,
.sidebar-section,
.sidebar-section *,
.sidebar-content,
.sidebar-content *,
.sidebar-meta {
    font-family: 'Cinzel', serif !important;
}

/* フッター */
.footer,
.footer *,
.footer-content,
.footer-content *,
.footer-nav,
.footer-nav * {
    font-family: 'Cinzel', serif !important;
}

/* 追加セクション */
.intro-text,
.intro-text * {
    font-family: 'Cinzel', serif !important;
}

.company-profile,
.company-profile *,
.company-profile h2,
.company-profile h3,
.company-profile ul,
.company-profile ul *,
.company-profile li {
    font-family: 'Cinzel', serif !important;
}

.philosophy,
.philosophy *,
.philosophy h2,
.philosophy h3,
.philosophy blockquote,
.philosophy p {
    font-family: 'Cinzel', serif !important;
}

/* ボタン類 */
.btn,
.btn *,
.btn-primary,
.btn-secondary,
button,
button * {
    font-family: 'Cinzel', serif !important;
}

/* フォーム要素 */
input,
textarea,
select,
option {
    font-family: 'Cinzel', serif !important;
}

/* テキスト要素 */
h1, h2, h3, h4, h5, h6,
p, span, div, a,
li, ul, ol,
blockquote,
strong, em, i, b {
    font-family: 'Cinzel', serif !important;
}

/* Swiper関連 */
.swiper,
.swiper *,
.swiper-slide,
.swiper-slide *,
.swiper-pagination,
.swiper-pagination *,
.swiper-button-next,
.swiper-button-prev {
    font-family: 'Cinzel', serif !important;
}

/* モバイルメニュー */
.premium-mobile-toggle,
.premium-nav.mobile-active,
.premium-nav.mobile-active * {
    font-family: 'Cinzel', serif !important;
}

/* 疑似要素も含める */
*::before,
*::after {
    font-family: 'Cinzel', serif !important;
}

/* CSS変数も上書き */
:root {
    --font-display: 'Cinzel', serif !important;
    --font-serif: 'Cinzel', serif !important;
    --font-sans: 'Cinzel', serif !important;
}

/* 特殊なケース用 */
[class*="font"],
[style*="font-family"] {
    font-family: 'Cinzel', serif !important;
}

/* ブラウザのデフォルトスタイルを上書き */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    font-family: 'Cinzel', serif !important;
}

/* 最終的な全体適用 */
body * {
    font-family: 'Cinzel', serif !important;
}