

/* 导入本地Tailwind CSS */
@import url('./assets/css/tailwind.css');

/* 主题自定义样式 */
body {
    /* font-family: 'Helvetica Neue', Arial, sans-serif; */
    /* 添加日文字体支持 */
    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        "Helvetica Neue",
        Arial,
        "Hiragino Kaku Gothic ProN",
        "Hiragino Sans",
        "BIZ UDPGothic",
        "Meiryo",
        "Yu Gothic",
        "MS PGothic",
        sans-serif,
        "Apple Color Emoji",
        "Segoe UI Emoji",
        "Segoe UI Symbol";
}

/* ===== Home header spacing adjustments ===== */
/* 仅主页：让 Logo 更靠左，并与菜单拉开距离 */
header .container{max-width:72rem; /* 6xl，全站统一 Header 宽度 */ padding-left:8px; padding-right:16px}
/* 轻微左移 Logo（自定义logo或回退图片均覆盖） */
header .custom-logo{margin-left:-6px}
header .flex.items-center>img{margin-left:-6px}


/* WordPress 核心样式 */
.alignnone {
    margin: 5px 20px 20px 0;
}

.aligncenter, div.aligncenter {
    display: block;
    margin: 5px auto 5px auto;
}

.alignright {
    float:right;
    margin: 5px 0 20px 20px;
}

.alignleft {
    float: left;
    margin: 5px 20px 20px 0;
}

.wp-caption {
    background: #fff;
    border: 1px solid #f0f0f0;
    max-width: 96%;
    padding: 5px 3px 10px;
    text-align: center;
}

.wp-caption.alignnone {
    margin: 5px 20px 20px 0;
}

.wp-caption.alignleft {
    margin: 5px 20px 20px 0;
}

.wp-caption.alignright {
    margin: 5px 0 20px 20px;
}

.wp-caption img {
    border: 0 none;
    height: auto;
    margin: 0;
    max-width: 98.5%;
    padding: 0;
    width: auto;
}

.wp-caption p.wp-caption-text {
    font-size: 11px;
    line-height: 17px;
    margin: 0;
    padding: 0 4px 5px;
}

.sticky {
    position: sticky;
    top: 0;
    z-index: 100;
}

/* 分类页面样式 */
.pagination {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
}

.pagination .page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    margin: 0 6px;
    border-radius: 6px;
    background-color: #fff;
    border: 1px solid #e5e7eb;
    color: #6b7280;
    text-decoration: none;
    font-weight: 500;
    font-size: 14px;
    transition: all 0.2s;
}

.pagination .page-numbers:hover {
    background-color: #f3f4f6;
    color: #374151;
}

.pagination .page-numbers.current {
    background-color: #0ea5e9;
    color: #fff;
    border-color: #0ea5e9;
}

.pagination .page-numbers.prev,
.pagination .page-numbers.next {
    width: auto;
    height: 36px;
    padding: 0 14px;
    font-size: 14px;
}

.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.line-clamp-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 文章内容样式优化 */
.prose {
    color: #374151;
    line-height: 1.8;
}

.prose h1, .prose h2, .prose h3, .prose h4 {
    color: #1f2937;
    font-weight: 700;
    margin-top: 2em;
    margin-bottom: 1em;
}

.prose h1 {
    font-size: 2em;
}

.prose h2 {
    font-size: 1.5em;
    border-bottom: 2px solid #e5e7eb;
    padding-bottom: 0.5em;
}

.prose h3 {
    font-size: 1.25em;
}

.prose p {
    margin-bottom: 1.5em;
}

.prose img {
    border-radius: 0.5rem;
    margin: 2em auto;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

.prose a {
    color: #0ea5e9;
    text-decoration: underline;
    transition: color 0.2s;
}

.prose a:hover {
    color: #0284c7;
}

.prose ul, .prose ol {
    margin: 1.5em 0;
    padding-left: 2em;
}

.prose li {
    margin: 0.5em 0;
}

.prose blockquote {
    border-left: 4px solid #0ea5e9;
    padding-left: 1.5em;
    margin: 2em 0;
    font-style: italic;
    color: #6b7280;
}

.prose code {
    background-color: #f3f4f6;
    padding: 0.2em 0.4em;
    border-radius: 0.25rem;
    font-size: 0.9em;
    color: #dc2626;
}

.prose pre {
    background-color: #1f2937;
    color: #f9fafb;
    padding: 1.5em;
    border-radius: 0.5rem;
    overflow-x: auto;
    margin: 2em 0;
}

.prose pre code {
    background-color: transparent;
    color: inherit;
    padding: 0;
}

/* 悬停效果 */
.hover-lift {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover {
    transform: translateY(-4px);
}

/* =======================
   CF7 校友登録フォーム レイアウト
   ======================= */
.wpcf7 form{max-width:800px;margin:0 auto;background:#fff;padding:24px 20px;border:1px solid #eee;border-radius:12px;box-shadow:0 8px 20px rgba(0,0,0,.04)}
.wpcf7 form p{margin:0 0 12px}
.wpcf7 label{display:block;font-weight:600;margin-bottom:6px;color:#374151}
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 select,
.wpcf7 textarea{width:100%;border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px;font-size:14px;color:#111827;background:#fff;box-sizing:border-box;outline:none}
.wpcf7 input:focus,.wpcf7 select:focus,.wpcf7 textarea:focus{border-color:#0ea5e9;box-shadow:0 0 0 3px rgba(14,165,233,.15)}
.wpcf7 .wpcf7-submit,.wpcf7 input[type="submit"]{display:inline-block;background:#0ea5e9;color:#fff;border:none;padding:10px 18px;border-radius:8px;font-weight:600;cursor:pointer;transition:background .2s ease}
.wpcf7 .wpcf7-submit:hover{background:#0284c7}
/* エラーメッセージ */
.wpcf7 .wpcf7-not-valid-tip{color:#dc2626;font-size:12px;margin-top:6px}
.wpcf7 .wpcf7-response-output{margin-top:14px;border-radius:8px;padding:10px 12px}
.wpcf7 form .wpcf7-acceptance input[type="checkbox"]{margin-right:8px}
/* 媒体のはみ出し防止 */
.wpcf7 form img,.wpcf7 form video{max-width:100%;height:auto}


/* =======================
   Page template reading width & media fitting
   ======================= */
.page-featured{max-width:800px;margin:0 auto 12px}
.page-featured img{display:block;width:100%;height:auto;border-radius:12px;box-shadow:0 8px 20px rgba(0,0,0,.04)}
.page-content .prose{max-width:800px;margin-left:auto;margin-right:auto}
@media (max-width:860px){.page-content .prose{max-width:100%}}
.page-content .prose img,.page-content .prose video{width:100%;height:auto}
.page-content .prose iframe{width:100%;border:0}
.page-content .prose figure{max-width:100%}
.page-content .prose .alignwide,.page-content .prose .alignfull,
.page-content .prose figure.alignwide,.page-content .prose figure.alignfull{width:auto!important;max-width:100%!important;margin-left:auto;margin-right:auto}

/* Google Forms 嵌入高度修正（避免仅显示一行并出现内滚动） */
iframe[src*="docs.google.com/forms"]{
    display:block;
    width:100%;
    min-height:1600px; /* 根据表单长度可再调大 */
    border:0;
}

/* Sticky footer：确保版权声明始终在页面底部 */
#page.site{
    min-height:100vh;
    display:flex;
    flex-direction:column;
}
#page.site>footer{
    margin-top:auto;
}



/* =======================
   Constitution document styles
   ======================= */
.constitution{max-width:800px;margin:0 auto;color:#374151;line-height:1.9}
.constitution h2{font-size:1.5rem;margin:0 0 .5rem;font-weight:800;color:#111827}
.constitution h3{font-size:1.125rem;margin:1.25rem 0 .5rem;font-weight:700;color:#111827;border-left:3px solid #0ea5e9;padding-left:.6rem}
.constitution p{margin:.6rem 0}
.constitution ol{margin:.4rem 0 .8rem 1.25rem}
.constitution li{margin:.25rem 0}
.constitution strong{font-weight:700;color:#111827}


/* =======================
   Donation (寄付) document styles
   ======================= */
.donation-doc{max-width:800px;margin:0 auto;color:#374151;line-height:1.9}
.donation-doc h2{font-size:1.5rem;margin:0 0 .75rem;font-weight:800;color:#111827}
.donation-doc h3{font-size:1.125rem;margin:1rem 0 .5rem;font-weight:700;color:#111827;border-left:3px solid #0ea5e9;padding-left:.6rem}
.donation-doc p{margin:.6rem 0}
.donation-doc ol,.donation-doc ul{margin:.4rem 0 .8rem 1.25rem}
.donation-doc li{margin:.25rem 0}
.donation-doc .donation-meta{text-align:right;color:#6b7280;margin-top:.75rem}
.donation-doc .divider{height:1px;background:#e5e7eb;margin:1.25rem 0}

/* Donation page — Chinese typography */
.donation-doc .donation-cn{font-family:'Noto Sans SC','PingFang SC','Noto Sans CJK SC','Source Han Sans SC','Microsoft YaHei','Heiti SC',Arial,sans-serif;letter-spacing:.01em}


/* Lead text (positioned above the contact card) */
.contact-lead{max-width:800px;margin:10px auto 12px;color:#1d1d1f;font-size:0.9375rem;line-height:1.6;letter-spacing:.01em;text-align:left}

/* =======================
   Contact (お問い合わせ) page — refined, professional layout
   ======================= */
.contact-info-card{max-width:800px;margin:0 auto 24px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:28px 32px;color:#1d1d1f;font-family:'Noto Sans JP','Hiragino Sans',Meiryo,'Yu Gothic Medium','Yu Gothic',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;letter-spacing:.015em;font-feature-settings:normal}


/* Section blocks */
.contact-info-card .contact-section{margin-bottom:20px}
.contact-info-card .contact-section:last-child{margin-bottom:0}
.contact-info-card .section-label{font-size:.8125rem;font-weight:600;color:#6e6e73;text-transform:none;letter-spacing:.02em;margin:0 0 8px;padding-left:2px}
.contact-info-card .contact-detail{padding-left:8px}

/* Organization name */
.contact-info-card .org-name{font-size:1rem;font-weight:600;color:#1d1d1f;margin:0 0 6px;line-height:1.5}

/* Address block */
.contact-info-card .address{margin:0;color:#1d1d1f;font-size:0.9375rem;line-height:1.75;font-style:normal;letter-spacing:inherit}

/* Tel/Fax lines */
.contact-info-card .tel-line,.contact-info-card .fax-line{margin:0 0 6px;color:#1d1d1f;font-size:0.9375rem;line-height:1.6;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.contact-info-card .tel-line:last-child,.contact-info-card .fax-line:last-child{margin-bottom:0}
.contact-info-card .tel-line .label,.contact-info-card .fax-line .label{display:inline-block;width:42px;color:#6b7280;font-weight:600;font-size:0.875rem}

/* Email line (harmonized) */
.contact-info-card .mail-line{margin:0 0 6px;color:#1d1d1f;font-size:0.9375rem;line-height:1.6;letter-spacing:.01em}

/* URL line */
.contact-info-card .url-line{margin:0;color:#1d1d1f;font-size:0.9375rem;font-family:inherit}


/* =======================
   Reusable text surfaces & callouts
   ======================= */
.surface{background:#f5f5f7;border:1px solid #e5e7eb;border-radius:12px;padding:16px 18px}
.surface-soft{background:#f8fafc;border-radius:12px;padding:14px 16px}
.callout{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:14px 16px}
.callout .callout-title{margin:0 0 6px;font-weight:600;font-size:.9375rem;color:#1d1d1f}
.callout .callout-content{font-size:.9375rem;line-height:1.7;color:#1d1d1f}
.callout-info{border-left:4px solid var(--color-primary);background:rgba(0,128,0,.04)}
.callout-note{border-left:4px solid #8e8e93;background:#f5f5f7}
.callout-warn{border-left:4px solid #f59e0b;background:#fff7ed;color:#7c2d12}


/* Mobile responsive */
@media(max-width:640px){
  .contact-lead{margin:8px auto 10px;font-size:0.875rem}
  .contact-info-card{padding:20px 18px}
  .contact-info-card .contact-intro p{font-size:0.875rem}
  .contact-info-card .org-name{font-size:1rem}

  .contact-info-card .address,.contact-info-card .tel-line,.contact-info-card .fax-line,.contact-info-card .url-line{font-size:0.875rem}
}
/* Grouped surface: one large block with dividers */
.contact-info-card .surface-group{padding:0}
.contact-info-card .surface-group .contact-section{margin:0;padding:16px 2px;border-top:1px solid #e5e7eb;background:transparent}
.contact-info-card .surface-group .contact-section:first-child{border-top:0;padding-top:0}



/* =======================
   Sidebar menu (site-wide, modernized)
   ======================= */
.sidebar-menu{padding:6px;margin:0;list-style:none}
.sidebar-menu li{list-style:none}
.sidebar-menu a{display:flex;align-items:center;gap:.5rem;padding:10px 12px;border-radius:8px;color:#1d1d1f;text-decoration:none;transition:background-color .2s,color .2s}
.sidebar-menu a:hover{background:#f5f5f7;color:var(--color-primary,#008000)}
.sidebar-menu a .fa{color:var(--color-primary,#008000);opacity:.7}
.sidebar-menu a .ml-auto{margin-left:auto}
/* Active states */
.sidebar-menu a.is-active{background:rgba(0,128,0,.08);color:#1d1d1f;font-weight:600}
.sidebar-menu a.is-active .ml-auto{color:var(--color-primary,#008000)!important}
/* Fallbacks for WP core menu current classes and legacy .text-primary */
.sidebar-menu li.current-menu-item>a,
.sidebar-menu li.current_page_item>a,
.sidebar-menu li.current-menu-ancestor>a,
.sidebar-menu li.current_page_ancestor>a,
.sidebar-menu a.text-primary{background:rgba(0,128,0,.10);color:var(--color-primary,#008000);font-weight:600}
/* Right align count chip if present */
.sidebar-menu a span:last-child{margin-left:auto}

