/*
Theme Name: HaruSimpleTheme
Theme URI: https://harusimpletheme.com/
Author: ksk_m
Author URI: https://ksk-m.com/
Description: HaruSimpleThemeは、Pico.cssをベースにした、シンプルでクリーンなデザインのWordPressテーマです。ブログや情報サイト運営に必要な機能を標準で備えつつ、SEO対策やコンテンツの視認性向上に役立つ独自の機能が多数組み込まれています。管理画面からの詳細な設定が可能で、初心者から中級者まで幅広いユーザーが利用しやすいように設計されています。
Version: 3.8 (Layout Fix)
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: harusimpletheme
Tags: one-column, two-columns, right-sidebar, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-images, flexible-header, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready, accessibility-ready, block-patterns, block-styles, wide-blocks
Requires at least: 5.8
Tested up to: 6.5
*/

/*
 * ----------------------------------------------------------------------------
 * # Variables
 * ----------------------------------------------------------------------------
 */
html {
    font-size: 15px; /* Set base font size for rem calculation */
    --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
    --line-height: 1.7;
    --font-size: 15px; /* Keep variable in sync */
    --primary: #0073aa;
    --primary-hover: #005a87;
    --container-max-width: 1200px;
    --spacing: 2rem;
}

/*
 * ----------------------------------------------------------------------------
 * # Basic Styles
 * ----------------------------------------------------------------------------
 */
body {
    background-color: transparent !important;
}

/*
 * ----------------------------------------------------------------------------
 * # Header & Footer
 * ----------------------------------------------------------------------------
 */
header nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

footer {
    border-top: 1px solid #ddd;
    text-align: center;
    font-size: 0.9em;
    padding: var(--spacing);
    margin-top: var(--spacing);
}

footer .grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: var(--spacing);
}

@media (max-width: 768px) {
    footer .grid {
        grid-template-columns: 1fr; /* On mobile, stack them */
    }
}

/*
 * ----------------------------------------------------------------------------
 * # Widgets
 * ----------------------------------------------------------------------------
 */
.widget {
    margin-top: var(--spacing);
    margin-bottom: var(--spacing);
}

.widget-title {
    font-size: 1.2em;
    border-bottom: 2px solid var(--primary);
    padding-bottom: 0.5em;
    margin-bottom: 1em;
}

/*
 * ----------------------------------------------------------------------------
 * # Content & Posts
 * ----------------------------------------------------------------------------
 */
article {
    margin-top: 0 !important;
    margin-bottom: 2em;
    padding-bottom: 2em;
    border-bottom: 1px solid #eee;
}

article:last-child {
    border-bottom: none;
    margin-bottom: 0;
    /**padding-bottom: 0;**/
}

/* Fix image overflow issues */
.entry-content img,
.entry-content .wp-caption,
.entry-content figure {
    max-width: 100%;
    height: auto;
    box-sizing: border-box; /* Include padding and border in the element's total width and height */
}

.entry-content .aligncenter {
    margin-left: auto;
    margin-right: auto;
}

/* WordPress Image Alignment Classes */
.alignright {
    float: right;
    margin: 0.5em 0 1em 1.5em;
}

.alignleft {
    float: left;
    margin: 0.5em 1.5em 1em 0;
}

.aligncenter {
    display: block;
}

/* Clear floats after the element */
.entry-content::after {
    content: "";
    display: table;
    clear: both;
}

/* WordPress Core Embeds and Blocks */
.entry-content .wp-block-embed,
.entry-content .wp-block-video,
.entry-content .wp-block-audio,
.entry-content .wp-block-gallery {
    margin-bottom: 1.5em;
}

/* Responsive Videos and Iframes */
.entry-content iframe,
.entry-content video,
.entry-content object {
    max-width: 100%;
}

.wp-block-embed.is-responsive {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 aspect ratio */
    height: 0;
    overflow: hidden;
}

.wp-block-embed.is-responsive iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.list-style-post {
    display: flex;
    gap: 1.5rem;
    align-items: flex-start;
}

.list-style-thumbnail {
    flex-shrink: 0;
    width: 150px;
}

.list-style-thumbnail img {
    width: 150px; /* 固定幅 */
    height: 100px; /* 固定の高さ */
    object-fit: cover; /* 縦横比を維持してトリミング */
    border-radius: 4px;
}

.list-style-content {
    min-width: 0; /* Fix for flexbox overflow */
}

/*
 * ----------------------------------------------------------------------------
 * # Share Buttons
 * ----------------------------------------------------------------------------
 */
.haru-share-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
    margin: 2em 0;
}

.haru-share-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1rem;
    border-radius: 4px;
    text-decoration: none;
    color: #fff;
    font-weight: bold;
    transition: opacity 0.3s ease;
}

.haru-share-button:hover {
    opacity: 0.8;
}

.haru-share-twitter {
    background-color: #1DA1F2;
}

.haru-share-facebook {
    background-color: #1877F2;
}

.haru-share-line {
    background-color: #00C300;
}

/*
 * ----------------------------------------------------------------------------
 * # CTA
 * ----------------------------------------------------------------------------
 */
.haru-cta {
    border: 2px solid var(--primary);
    border-radius: 8px;
    padding: 2rem;
    margin: 2rem 0;
    text-align: center;
}

.haru-cta-title {
    font-size: 1.5rem;
    margin-top: 0;
}

.haru-cta-button-wrapper {
    margin-top: 1.5rem;
}

.haru-cta-button {
    display: inline-block;
    background-color: var(--primary);
    color: #fff;
    padding: 0.75rem 1.5rem;
    border-radius: 4px;
    text-decoration: none;
    font-weight: bold;
    transition: background-color 0.3s ease;
}

.haru-cta-button:hover {
    background-color: var(--primary-hover);
}

/*
 * ----------------------------------------------------------------------------
 * # Chat Bubbles
 * ----------------------------------------------------------------------------
 */
.haru-chat-bubble {
    display: flex;
    gap: 1rem;
    margin: 1.5rem 0;
    align-items: flex-start;
}

.haru-chat-icon {
    flex-shrink: 0;
    text-align: center;
}

.haru-chat-icon img {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: block;
    margin-bottom: 0.25rem;
}

.haru-chat-name {
    font-size: 0.8rem;
}

.haru-chat-content {
    background-color: #f1f1f1;
    border-radius: 8px;
    padding: 1rem;
    position: relative;
    width: 100%;
}

.haru-chat-content::before {
    content: '';
    position: absolute;
    top: 15px;
    border: 10px solid transparent;
}

.haru-chat-left .haru-chat-content::before {
    left: -20px;
    border-right-color: #f1f1f1;
}

.haru-chat-right {
    flex-direction: row-reverse;
}

.haru-chat-right .haru-chat-content::before {
    right: -20px;
    left: auto;
    border-left-color: #f1f1f1;
}

/*
 * ----------------------------------------------------------------------------
 * # Scroll to Top Button (Revised)
 * ----------------------------------------------------------------------------
 */
#haru-scroll-to-top {
    position: fixed;
    bottom: 25px;
    right: 25px;
    z-index: 999;
    background-color: var(--primary);
    color: #fff;
    border: none;
    width: 50px;
    height: 50px;
    border-radius: 50%; /* Make it circular */
    font-size: 1.5rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease, background-color 0.3s ease;
}

#haru-scroll-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

#haru-scroll-to-top:hover {
    background-color: var(--primary-hover);
    transform: translateY(-2px); /* Slight lift on hover */
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
}

/*
 * ----------------------------------------------------------------------------
 * # Smartphone Fixed Footer
 * ----------------------------------------------------------------------------
 */
.smartphone-fixed-footer {
    display: none; /* Hidden by default */
}

@media (max-width: 768px) {
    .smartphone-fixed-footer {
        display: block;
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        background-color: #fff;
        border-top: 1px solid #ddd;
        z-index: 1000;
        padding: 0.5rem;
        box-shadow: 0 -2px 5px rgba(0,0,0,0.1);
    }
}

.breadcrumb {
  font-size: 0.85rem;
  margin: .0;
  padding: 0.5rem;
  overflow-x: auto;
  max-width: 100%;
}
.breadcrumb ol {
  display: flex;
  flex-wrap: nowrap;      /* 改行させず横並び */
  gap: 0.5rem;
  list-style: none;
  padding: 0;
  margin: 0;
  white-space: nowrap;
}
.breadcrumb li {
  display: flex;
  align-items: center;
  color: #666;
  min-width: 0;
  font-size: .6rem !important;
}
.breadcrumb li a {
  color: #0073aa;
  text-decoration: none;
  padding: 2px 4px;
  border-radius: 3px;
  transition: background 0.2s, color 0.2s;
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 500;
}
.breadcrumb li a:hover {
  background: #e0f0fc;
  color: #005a87;
}
.breadcrumb li + li::before {
  content: "›";
  margin: 0 0.5rem;
  color: #b5b5b5;
  font-size: 1em;
  font-family: system-ui, sans-serif;
}
.breadcrumb .current {
  font-weight: 500;
  color: #777;
  pointer-events: none;
  max-width: 180px;
/**  overflow: hidden;**/
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (max-width: 480px) {
  .breadcrumb {
    font-size: 0.7rem;
    padding: 0.3rem;
  }
  .breadcrumb li a, .breadcrumb .current {
    max-width: 100px;
  }
}
/* --- サイドドロワー＋オーバーレイ --- */
#drawer-overlay {
  position: fixed;
  z-index: 9998;
  top: 0; left: 0; width: 100vw; height: 100vh;
  background: rgba(0,0,0,0.4);
  opacity: 0; visibility: hidden;
  transition: opacity 0.2s;
}

#drawer-overlay.active {
  opacity: 1;
  visibility: visible;
}

#global-drawer {
  position: fixed;
  top: 0; right: 0;
  height: 100vh;
  width: 260px;
  background: #fff;
  box-shadow: -2px 0 10px rgba(0,0,0,0.10);
  transform: translateX(100%);
  transition: transform 0.24s cubic-bezier(.4,0,.2,1);
  overflow-y: auto;
  z-index: 9999;
  padding: 0;
  display: flex;
  flex-direction: column;
}

#global-drawer.active {
  transform: translateX(0);
}

.drawer-close {
  background: none;
  border: none;
  color: #1694bc;
  font-size: 1.45rem;
  margin: 1rem 1.1rem 0.5rem auto;
  display: block;
  cursor: pointer;
}

.drawer-menu {
  list-style: none;
  margin: 0;
  padding: 0.3rem 0 0 0;
}

.drawer-menu > li {
  border-bottom: 1px solid #f3f3f3;
}

.drawer-menu > li > a {
  color: #222;
  text-decoration: none;
  font-size: 1.06rem;
  padding: 0.85rem 1.2rem 0.85rem 1.1rem;
  display: flex;
  align-items: center;
  font-weight: 500;
  transition: background 0.17s, color 0.17s;
}

.drawer-menu > li > a:hover,
.drawer-menu > li.open > a {
  background: #f4f9fb;
  color: #0073aa;
}

.drawer-menu .menu-item-has-children > .drawer-sub-toggle {
  background: none;
  border: none;
  color: #1694bc;
  font-size: 1.1rem;
  margin-left: auto;
  cursor: pointer;
  padding: 0;
}

.drawer-menu .menu-item-has-children.open > .sub-menu {
  display: block;
}
.drawer-menu .sub-menu a {
  color: #444;
  font-size: 0.97rem;
  padding: 0.55rem 0.3rem 0.55rem 0;
  display: block;
  background: none;
}
.drawer-menu .sub-menu a:hover {
  background: #f2f9fb;
  color: #0073aa;
}
/* ==== Drawer: PicoCSSより強い個別スタイル ==== */

/* ヘッダーのハンバーガー */
.menu-toggle,
#drawer-open-btn {
  position: fixed !important;
  top: 5rem;       /* 上からの距離 */
  right: 1.6rem;     /* 右からの距離 */
  z-index: 9998;    /* ドロワー/オーバーレイより手前にしたい時は大きめの値 */
  background: none !important;
  border: none !important;
  color: #fff !important;
  font-size: 1.5rem !important;
  cursor: pointer;
  padding: .8rem !important;
  border-radius: 3px !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  line-height: 1 !important;
  background: #555 !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.menu-toggle:focus, .menu-toggle:active { outline: none !important; background: #e8f6fa !important; }
.menu-toggle:hover { background: #e8f6fa !important; }

.haru-header .header-inner {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  padding: 1.1rem 1.5rem 0.7rem 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
}

header .brand {
  font-size: 1rem !important;
  font-weight: bold !important;
  color: #555 !important;
  text-decoration: none !important;
  line-height: 1.1 !important;
}

/* Drawer本体 */
#global-drawer {
  position: fixed !important;
  top: 0; right: 0;
  height: 100vh;
  width: 270px;
  background: #fff !important;
  box-shadow: -2px 0 10px rgba(0,0,0,0.10) !important;
  transform: translateX(100%);
  transition: transform 0.24s cubic-bezier(.4,0,.2,1);
  overflow-y: auto !important;
  z-index: 9999 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
}

#global-drawer.active {
  transform: translateX(0) !important;
}

.drawer-close {
  background: none !important;
  border: none !important;
  color: #1694bc !important;
  font-size: 1.35rem !important;
  margin: 1.0rem 1.1rem 0.5rem auto !important;
  display: block !important;
  cursor: pointer;
  line-height: 1 !important;
  padding: 0 !important;
}
.drawer-close:focus, .drawer-close:active { outline: none !important; }
.drawer-close:hover { color: #0073aa !important; }

.drawer-menu {
  list-style: none !important;
  margin: 0 !important;
  padding: 0.6rem 0 0 0 !important;
  box-shadow: none !important;
  background: none !important;
  display: block !important;
}

.drawer-menu > li {
  border-bottom: 1px solid #f3f3f3 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  display: block !important;
}

.drawer-menu > li > a {
  color: #222 !important;
  background: none !important;
  text-decoration: none !important;
  font-size: 1.05rem !important;
  padding: 0.85rem 1.1rem 0.85rem 1.1rem !important;
  display: flex !important;
  align-items: center !important;
  font-weight: 500 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin: 0 !important;
  transition: background 0.15s, color 0.15s !important;
}

.drawer-menu > li > a:hover,
.drawer-menu > li.open > a {
  background: #f4f9fb !important;
  color: #0073aa !important;
}

.drawer-menu .menu-item-has-children > .drawer-sub-toggle {
  background: none !important;
  border: none !important;
  color: #1694bc !important;
  font-size: 1.05rem !important;
  margin-left: auto !important;
  cursor: pointer !important;
  padding: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  display: flex !important;
  align-items: center !important;
}
.drawer-menu .menu-item-has-children > .drawer-sub-toggle:hover { color: #0073aa !important; }

.drawer-menu .sub-menu {
  display: block !important;
  margin: 0 !important;
  padding: 0.05rem 0 0.3rem 1.4rem !important;
  border-left: 2px solid #e5e5e5 !important;
  background: none !important;
}
.drawer-menu .menu-item-has-children.open > .sub-menu {
  display: block !important;
}
.drawer-menu .sub-menu a {
  color: #444 !important;
  font-size: 0.97rem !important;
  padding: 0.5rem 0.2rem 0.5rem 0 !important;
  display: block !important;
  background: none !important;
  margin: 0 !important;
  border-radius: 0 !important;
}
.drawer-menu .sub-menu a:hover {
  background: #f2f9fb !important;
  color: #0073aa !important;
}

/* Overlayも競合に負けないよう */
#drawer-overlay {
  position: fixed !important;
  z-index: 9998 !important;
  top: 0; left: 0; width: 100vw; height: 100vh;
  background: rgba(0,0,0,0.4) !important;
  opacity: 0; visibility: hidden;
  transition: opacity 0.2s;
}
#drawer-overlay.active {
  opacity: 1; visibility: visible;
}

/* スクロールバー非表示 */
#global-drawer::-webkit-scrollbar { width: 0; background: transparent; }
#drawer-open-btn,
#drawer-close-btn,
#global-drawer .drawer-sub-toggle {
  width: auto !important;
  min-width: unset !important;
  max-width: unset !important;
  display: inline-flex !important;
}

/*
 * ----------------------------------------------------------------------------
 * # Table of Contents
 * ----------------------------------------------------------------------------
 */
.haru-toc-container {
    background: #f9f9f9;
    border: 1px solid #eee;
    padding: 1.5em;
    margin: 2em 0;
    border-radius: 8px;
}
.haru-toc-title {
    font-size: 1.2rem;
    font-weight: bold;
    margin: 0 0 1em 0;
    text-align: center;
}
.toc-list, .toc-list ul {
    list-style: none;
    padding-left: 0;
    counter-reset: h2-counter;
}
.toc-list ul {
    padding-left: 1.5em;
    counter-reset: h3-counter;
}
.toc-list li {
    margin-bottom: 0.5em;
}
.toc-list a {
    text-decoration: none;
    color: #333;
    font-size: 0.95rem;
    line-height: 1.6;
}
.toc-list a:hover {
    text-decoration: underline;
    color: var(--primary);
}
.toc-list > li.toc-h2::before {
    counter-increment: h2-counter;
    content: counter(h2-counter) ". ";
    font-weight: bold;
}
.toc-list ul > li.toc-h3::before {
    counter-increment: h3-counter;
    content: "";
}

/*
 * ----------------------------------------------------------------------------
 * # Post Categories & Tags (Modern Design)
 * ----------------------------------------------------------------------------
 */
.post-categories a,
.post-tags a {
    display: inline-flex; /* Use flexbox for alignment */
    align-items: center;
    gap: 0.4em;
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 0.4em 0.8em;
    margin: 0.2em;
    text-decoration: none;
    font-size: 0.85em;
    font-weight: 500;
    transition: all 0.2s ease-in-out;
}

/* Category Specific Styles */
.post-categories a {
    background-color: #f5f5f5;
    color: #555;
}

.post-categories a:hover {
    background-color: #e0e0e0;
    border-color: #ccc;
    color: #333;
}

.post-categories a::before {
    font-family: "Font Awesome 5 Free";
    content: '\f07b'; /* Folder icon */
    font-weight: 900;
}

/* Tag Specific Styles */
.post-tags a {
    background-color: var(--primary);
    border-color: var(--primary);
    color: #fff;
}

.post-tags a:hover {
    background-color: var(--primary-hover);
    border-color: var(--primary-hover);
    transform: translateY(-2px);
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.post-tags a::before {
    font-family: "Font Awesome 5 Free";
    content: '\f02b'; /* Tag icon */
    font-weight: 900;
}

.post-tags span {
    margin-right: 0.5em;
}

/* Widget Area Margins */
.after-entry-header-area,
.widget-after-header,
.cta-below-post-area,
.top-page-widget-area,
.bottom-page-widget-area {
    margin-top: var(--spacing) !important;
    margin-bottom: var(--spacing) !important;
}

/* 1. Title Word Wrap */
.entry-title, .entry-title a {
    overflow-wrap: break-word;
    word-wrap: break-word;
}

/* 2. WordPress Standard Media Support (Classic Editor) */
.entry-content .gallery {
    display: flex;
    flex-wrap: wrap;
    gap: 1em;
    margin-bottom: 1.5em;
}
.gallery-item {
    flex: 1 1 auto;
    text-align: center;
}
.gallery-icon img {
    border: 1px solid #ddd;
    padding: 4px;
    background: #fff;
}
.gallery-caption {
    font-size: 0.9em;
    color: #666;
    margin-top: 0.5em;
}

.entry-content .wp-video,
.entry-content .wp-audio-shortcode {
    max-width: 100%;
    margin-bottom: 1.5em;
}

.entry-content iframe,
.entry-content video,
.entry-content object {
    max-width: 100%;
    height: auto;
    display: block;
}

/* 4. Footer Widget Grid Fix */
footer.container {
    margin-top: 2rem;
}

footer .widget-footer {
    min-width: 0; /* Prevent wide content from breaking the grid */
    word-wrap: break-word; /* Wrap long text */
}

footer .widget-footer ul,
footer .widget-footer ol {
    list-style-position: inside;
    padding-left: 1em; /* Add some padding to align the text */
}



/*
 * ----------------------------------------------------------------------------
 * # Comments Section
 * ----------------------------------------------------------------------------
 */

.comments-area {
    margin-top: var(--spacing);
    padding-top: var(--spacing);
    border-top: 1px solid #eee;
}

.comments-title {
    font-size: 1.5em;
    margin-bottom: 1.5em;
}

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

.comment-list .comment {
    background-color: #f9f9f9;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 1.5em;
    margin-bottom: 1.5em;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.comment-list .children {
    list-style: none;
    padding-left: 2em;
    margin-top: 1.5em;
}

.comment-author {
    display: flex;
    align-items: center;
    margin-bottom: 1em;
}

.comment-author .avatar {
    border-radius: 50%;
    margin-right: 1em;
}

.comment-author .fn {
    font-weight: bold;
    font-style: normal;
}

.comment-meta {
    font-size: 0.9em;
    color: #666;
}

.comment-content {
    line-height: 1.7;
}

.reply {
    text-align: right;
}

.comment-reply-link {
    display: inline-block;
    background-color: var(--primary);
    color: #fff;
    padding: 0.5em 1em;
    border-radius: 4px;
    text-decoration: none;
    font-size: 0.9em;
    transition: background-color 0.3s ease;
}

.comment-reply-link:hover {
    background-color: var(--primary-hover);
}

/* Comment Form */
.comment-form {
    background-color: #f9f9f9;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 1.5em;
    margin-top: 2em;
}

.comment-form label {
    display: block;
    margin-bottom: 0.5em;
    font-weight: bold;
}

.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
    width: 100%;
    padding: 0.75em;
    border: 1px solid #ddd;
    border-radius: 4px;
    background-color: #fff;
}

.comment-form .form-submit .submit {
    display: inline-block;
    background-color: var(--primary);
    color: #fff;
    padding: 0.75em 1.5em;
    border-radius: 4px;
    text-decoration: none;
    font-weight: bold;
    border: none;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.comment-form .form-submit .submit:hover {
    background-color: var(--primary-hover);
}

/*
 * ----------------------------------------------------------------------------
 * # Hero Section
 * ----------------------------------------------------------------------------
 */
.hero-static {
    position: relative;
    height: 500px; /* スライダーと高さを統一 */
    padding: 2em; /* 上下の余白を調整 */
    background-size: cover;
    background-position: center;
    color: #fff;
    text-align: center;
    display: flex; /* Flexboxを有効化 */
    flex-direction: column; /* 子要素を縦に並べる */
    justify-content: center; /* 垂直方向の中央揃え */
    align-items: center; /* 水平方向の中央揃え */
}

.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1;
}

.hero-content {
    position: relative;
    z-index: 2;
}

.hero-headline {
    font-size: 3em;
    font-weight: bold;
    margin-bottom: 0.5em;
}

.hero-subheadline {
    font-size: 1.2em;
    margin-bottom: 1.5em;
}

.hero-button {
    background-color: var(--primary);
    color: #fff;
    padding: 0.8em 1.6em;
    text-decoration: none;
    border-radius: 4px;
    font-weight: bold;
    transition: background-color 0.3s ease;
}

.hero-button:hover {
    background-color: var(--primary-hover);
}

/* Hero Slider Styles */
.hero-slider .swiper-container {
    width: 100%;
    height: 500px; /* Adjust height as needed */
    position: relative; /* Needed for absolute positioning of nav/pagination */
}

.hero-slider .swiper-slide {
    text-align: center;
    font-size: 18px;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    background-size: cover;
    background-position: center;
    position: relative;
    color: #fff;
}

/* Navigation Buttons (Arrows) */
.hero-slider .swiper-button-next, 
.hero-slider .swiper-button-prev {
    color: #fff; /* Arrow color */
    --swiper-navigation-size: 28px; /* Arrow size */
}
.hero-slider .swiper-button-next:after, 
.hero-slider .swiper-button-prev:after {
    font-family: swiper-icons;
    font-size: var(--swiper-navigation-size);
    font-weight: bold;
}

/* Pagination (Dots) */
.hero-slider .swiper-pagination {
    bottom: 20px !important; /* Position from bottom */
}
.hero-slider .swiper-pagination-bullet {
    background: rgba(255, 255, 255, 0.7);
    width: 10px;
    height: 10px;
    opacity: 1;
}
.hero-slider .swiper-pagination-bullet-active {
    background: #fff;
}

/* Hero Video Styles */
.hero-video {
    position: relative;
    height: 60vh; /* Adjust height as needed */
    min-height: 400px;
    overflow: hidden;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.hero-video-bg {
    position: absolute;
    top: 50%;
    left: 50%;
    width: auto;
    height: auto;
    min-width: 100%;
    min-height: 100%;
    transform: translate(-50%, -50%);
    z-index: 0;
}

.youtube-bg {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.youtube-bg iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    transform: translate(-50%, -50%);
    pointer-events: none; /* Allows clicking on content over the video */
}

@media (min-aspect-ratio: 16/9) {
  .youtube-bg iframe {
    height: 56.25vw; /* 16:9 height */
  }
}

@media (max-aspect-ratio: 16/9) {
  .youtube-bg iframe {
    width: 177.78vh; /* 16:9 width */
  }
}
.main-content-full {
    grid-template-columns: 1fr;
}

/*
 * ----------------------------------------------------------------------------
 * # Author Box & Supervisor Box (Override)
 * ----------------------------------------------------------------------------
 */
.author-box .grid,
.supervisor-box .grid {
    grid-template-columns: 100px 1fr !important; /* Override grid columns */
    align-items: flex-start !important; /* Override alignment */
}

/* Ensure it doesn't stack on mobile */
@media (max-width: 768px) {
    .author-box .grid,
    .supervisor-box .grid {
        grid-template-columns: 100px 1fr !important;
    }
}


/*
 * ----------------------------------------------------------------------------
 * # Related Posts
 * ----------------------------------------------------------------------------
 */
.related-posts {
    margin-top: 2em;
    padding-top: 2em;
    border-top: 1px solid #eee;
}

.related-posts h4 {
    font-size: 1.5em;
    margin-bottom: 1.5em;
    text-align: center;
}

/*
 * ----------------------------------------------------------------------------
 * # Supervisor CPT
 * ----------------------------------------------------------------------------
 */
.supervisor-social-links {
    margin-top: 1.5em;
    padding-top: 1.5em;
    border-top: 1px solid #eee;
}

.supervised-articles {
    margin-top: 2em;
    padding-top: 2em;
    border-top: 1px solid #eee;
}

.supervised-articles h2 {
    font-size: 1.5em;
    margin-bottom: 1em;
}

.supervised-articles ul {
    list-style: disc;
    padding-left: 1.5em;
}