/* 基础重置 */
* { margin: 0; padding: 0; box-sizing: border-box; }
/* 注意：html 上的 font-size 将被上面的 JS 动态覆盖 */
html { 
    scroll-behavior: smooth; 
    /* 微信字体变大问题修复：补充方案 */
    height: 100%;
    max-height: 100%;
    min-height: 100%;
    /* 关键修复：确保 JS 设置的 font-size 优先级足够高 */
    font-size: 62.5% !important; 
}
body {
    font-family: 'Noto Sans JP', sans-serif;
    color: #333;
    line-height: 1.7;
    background-color: #fff;
    overflow-x: hidden;
    /* 微信字体变大问题修复：关键属性 (已保留) */
    -webkit-text-size-adjust: 100% !important; 
    text-size-adjust: 100% !important;
    /* 微信字体变大问题修复：补充方案 */
    min-height: 100%;
}
/* 防止菜单展开时页面滚动 */
body.menu-active {
    overflow: hidden;
}
/* 防止模态框打开时背景滚动 */
body.modal-open {
    overflow: hidden;
}
a { color: inherit; text-decoration: none; }

/* 変数 (Variables) */
:root {
    --text-color: #2c2c2c; /* 深色 */
    --primary-color: #8B7355; /* 主色：落ち着いた金色/茶色 */
    --background-light: #f7f7f7;
    --shadow-subtle: 0 4px 12px rgba(0, 0, 0, 0.05);
}

/* ---------------------------------------------------- */
/* ナビゲーション (Navigation) - PC & Mobile */
/* ---------------------------------------------------- */
.main-header {
    position: fixed;
    width: 100%;
    padding: 25px 80px; /* PC 端 padding */
    z-index: 200; 
    background-color: transparent; 
    transition: background 0.4s ease, box-shadow 0.4s ease;
}

/* Header 容器，确保 Logo 和 Nav 垂直居中 */
.header-container { 
    display: flex; 
    justify-content: space-between; /* 确保 Logo (左) 和 Nav (右) 左右对齐 */
    align-items: center; /* 确保内容垂直居中 */
    width: 100%; /* 确保它占据全部可用宽度 */
}

/* PC Header Logo样式 */
.logo {
    display: flex; /* 让 Logo 图片和文本可以 flex 对齐 */
    align-items: center; /* Logo 图片和文本垂直居中 */
}
.logo a.logo-link {
    display: flex;
    align-items: center; /* 确保 Logo 图片和文本垂直居中 */
    white-space: nowrap; 
    /* 字体单位修正：使用 px 以防止 rem 再次失效 */
    font-size: 18px; 
    font-weight: 700;
    color: #fff; /* 初始颜色：白色 */
    transition: color 0.4s ease;
    text-shadow: 0 0 5px rgba(255, 255, 255, 0.5); 
}
.header-logo {
    height: 65px;
    width: auto;
    margin-right: 10px; 
    transition: filter 0.4s ease;
    /* 初始状态：Logo 变白（假设 Logo 原图是深色） */
    filter: invert(100%) drop-shadow(0 0 5px rgba(255, 255, 255, 0.5)); 
}
.logo-text { font-family: 'Noto Sans JP', sans-serif; }

/* PC 主导航菜单 */
.main-nav ul { list-style: none; display: flex; }
.main-nav li a { 
    margin-left: 30px; 
    color: #fff; 
    /* 字体单位修正：使用 px 以防止 rem 再次失效 */
    font-size: 13px; 
    font-weight: 400;
    transition: color 0.4s ease;
}

/* 滚动时的 Header 样式 */
.main-header.scrolled {
    background-color: rgba(255, 255, 255, 0.98);
    box-shadow: var(--shadow-subtle);
}

/* 滚动时 Logo 文本和 Nav Links 颜色变化 */
.main-header.scrolled .logo a.logo-link {
    color: var(--text-color); /* Logo 文本变黑 */
    text-shadow: none;
}
/* 核心修复点 1：Header 滚动后，Logo 变黑（移除白色滤镜），使用 !important 提高优先级 */
.main-header.scrolled .header-logo { 
    filter: none !important; /* 强制移除白色滤镜，Logo 显示原始深色 */
} 

.main-header.scrolled .main-nav li a { color: var(--text-color); }

/* ---------------------------------------------------- */
/* 移动端菜单切换按钮样式 (固定定位) */
/* ---------------------------------------------------- */
.mobile-menu-toggle {
    display: none; /* 默认隐藏 */
    width: 30px;
    height: 30px;
    background: none;
    border: none;
    cursor: pointer;
    position: fixed; 
    /* 确保与 Header padding (25px) 对齐 */
    top: 25px; 
    right: 80px; 
    z-index: 99999; 
    padding: 0;
    pointer-events: auto; 
}
.mobile-menu-toggle .bar {
    display: block;
    width: 100%;
    height: 3px;
    background-color: white; /* 初始颜色：白色 */
    margin: 5px 0;
    transition: all 0.3s ease;
}

/* ---------------------------------------------------- */
/* 菜单线条颜色修复块：依赖 body.scrolled 类 */
/* ---------------------------------------------------- */

/* 1. 当页面滚动时 (body 获得 .scrolled 类)，强制菜单线条变黑 */
body.scrolled .mobile-menu-toggle .bar {
    background-color: var(--text-color) !important; 
    border: none !important; 
    height: 3px !important; 
}

/* 2. 菜单激活时 (确保交叉线可见)：强制深色 (在全白背景上) */
.mobile-menu-toggle.is-active .bar {
    background-color: var(--text-color) !important; 
    transition: background-color 0.1s ease, transform 0.3s ease !important; 
}

/* ---------------------------------------------------- */
/* 移动端全屏菜单样式 (使用 ID #mobile-menu 和类 .is-open) */
/* ---------------------------------------------------- */
#mobile-menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: rgba(255, 255, 255, 0.98); 
    z-index: 99998; 
    display: flex;
    justify-content: center;
    align-items: flex-start; 
    transform: translateX(100%); 
    transition: transform 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    pointer-events: none; 
}

/* 菜单激活状态 (匹配 JS 中的 .is-open) */
#mobile-menu.is-open {
    transform: translateX(0);
    pointer-events: auto; 
}

/* 移动菜单顶部 Header 样式 - 优化 Logo 可见性 */
.mobile-menu-header {
    position: absolute; 
    top: 0;
    left: 0;
    width: 100%;
    padding: 25px 80px; /* 与 PC Header 保持一致的 padding */
    z-index: 10;
    display: flex; 
    align-items: center; /* 垂直居中对齐 */
}
/* 强制 Logo 文本颜色 (在白色背景下必须显示深色) */
.mobile-menu-header a.logo-link {
    display: flex;
    align-items: center;
    color: var(--text-color) !important; 
    /* 字体单位修正：使用 px */
    font-size: 18px; 
    font-weight: 700;
    text-shadow: none !important; 
}
/* 核心修复点 2：在移动菜单白色背景下，Logo 变黑，使用 !important 确保生效 */
.mobile-menu-header .header-logo {
    height: 50px; 
    margin-right: 10px;
    filter: none !important; 
} 
/* END Logo 样式 */


#mobile-menu ul {
    list-style: none;
    text-align: center;
    padding: 0;
    padding-top: 100px; /* 留出 Header 空间 */
}
#mobile-menu li {
    margin: 30px 0;
    opacity: 0; 
    transform: translateY(20px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}
#mobile-menu li a {
    /* 字体单位修正：使用 px */
    font-size: 20px; 
    font-weight: 400; 
    color: var(--text-color);
}
/* 菜单展开时，列表项依次淡入 */
#mobile-menu.is-open li {
    opacity: 1;
    transform: translateY(0);
}
#mobile-menu.is-open li:nth-child(1) { transition-delay: 0.1s; }
#mobile-menu.is-open li:nth-child(2) { transition-delay: 0.2s; }
#mobile-menu.is-open li:nth-child(3) { transition-delay: 0.3s; }
#mobile-menu.is-open li:nth-child(4) { transition-delay: 0.4s; }
#mobile-menu.is-open li:nth-child(5) { transition-delay: 0.5s; }
#mobile-menu.is-open li:nth-child(6) { transition-delay: 0.6s; }


/* ---------------------------------------------------- */
/* HERO (略) */
/* ---------------------------------------------------- */
.hero-pin-wrapper { height: 100vh; position: relative; }
.slide-media-layer { position: absolute; width: 100%; height: 100%; top: 0; left: 0; z-index: 10; }
.slide-media { position: absolute; width: 100%; height: 100%; top: 0; left: 0; background-size: cover; background-position: center; background-attachment: fixed; opacity: 0; object-fit: cover; }
.slide-media-2 { background-image: url('./slide2.jpg'); } 
.slide-media-3 { background-image: url('./slide3.jpg'); } 
.slide-media-4 { background-image: url('./slide4.jpg'); } 
.hero-pinned-content { width: 100%; height: 100vh; display: flex; justify-content: center; align-items: center; text-align: center; color: white; position: relative; z-index: 20; background-color: rgba(0, 0, 0, 0.3); }
.hero-pagination { position: absolute; right: 50px; top: 50%; transform: translateY(-50%); z-index: 30; display: flex; flex-direction: column; }
.dot { width: 10px; height: 10px; background-color: rgba(255, 255, 255, 0.4); border-radius: 50%; margin: 15px 0; transition: background-color 0.3s, transform 0.3s; }
.dot.active { background-color: var(--primary-color); transform: scale(1.3); }
.masked-text { font-size: 10vw; font-weight: 900; line-height: 1; margin-bottom: 20px; letter-spacing: -0.05em; background-color: white; -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; position: relative; z-index: 30; }
.hero-slide { position: absolute; width: 80%; padding: 0 40px; font-family: 'Noto Sans JP', sans-serif; }
.slide-1, .slide-2, .slide-3, .slide-4 { opacity: 0; } 
.main-copy { font-size: 4rem; font-weight: 700; line-height: 1.2; margin-bottom: 15px; }
.tagline { font-size: 1.2rem; font-weight: 300; letter-spacing: 0.1em; }
.sub-copy { font-size: 2.5rem; font-weight: 300; line-height: 1.8; margin-top: 15px; }
.slide-content .slide-title { font-size: 2.8rem; font-weight: 600; color: white; margin-bottom: 20px; }
.slide-content .slide-text { font-size: 2.5rem; font-weight: 300; line-height: 2; max-width: 900px; margin: 0 auto; }
.slide-content .slide-text-sub { font-size: 1rem; font-weight: 100; opacity: 0.8; margin-top: 15px; }

/* ---------------------------------------------------- */
/* MAIN コンテンツ (内容主体) */
/* ---------------------------------------------------- */
.main-content { background-color: #fff; padding-top: 50px; }
.content-section { max-width: 1200px; margin: 0 auto; padding: 80px 40px; color: var(--text-color); overflow: auto; }

/* ---------------------------------------------------- */
/* PC端标题样式 (4个 Span) */
/* ---------------------------------------------------- */

/* 标题容器 (section-title) - 只保留布局和下划线 */
.section-title { 
    margin-bottom: 40px; 
    border-bottom: 2px solid var(--primary-color); 
    padding-bottom: 10px; 
    line-height: 1.2; 
    font-size: initial; 
    font-weight: initial;
    color: initial;
} 

/* 1. 主标题日文 (.title-main) - 极大、极粗、黑 */
.section-title .title-main { 
    display: block;
    font-size: 2.6rem !important; /* 大)*/
    font-weight: 600 !important; /* 粗体 */
    color: var(--text-color) !important; /* 黑色/深色 */
    line-height: 1.2; 
    margin-bottom: 5px;
}

/* 2. 主标题英文 (.title-main-english) - 小、粗、黑 */
.section-title .title-main-english { 
    display: block;
    font-size: 1.6rem !important; /* 16px (内容文字大小，比主标题小) */
    font-weight: 700 !important; /* 粗体 */
    color: var(--text-color) !important; /* 黑色/深色 */
    margin-bottom: 15px; /* 与下面的副标题拉开距离 */
}

/* 3 & 4. 副标题 (.title-sub 和 .title-sub-english) - 小、细、灰色，大小一致 */
.section-title .title-sub,
.section-title .title-sub-english { 
    display: block; 
    font-size: 1.4rem !important; /* 14px */
    font-weight: 400 !important; /* 正常字重 (细) */
    color: #999 !important; /* 灰色 */
    line-height: 1.6;
}
.section-title .title-sub-english { 
    margin-top: 5px; /* 英文副标题与日文副标题稍有间距 */
}


/* ------------------ 核心修复：增大 PC 端内容文字字号 ------------------ */

/* 导语 (Intro statement) */
.intro-statement { 
    font-size: 1.6rem !important; /* 16px (标准 PC 字号) */
    font-weight: 400; 
    margin-bottom: 50px; 
    line-height: 2; 
}

/* 段落文字 (Paragraphs) - 明确指定以避免继承问题 */
.detail-group p { 
    margin-bottom: 20px; 
    font-weight: 400; 
    font-size: 1.6rem !important; /* 16px */
} 
.text-block p { 
    margin-bottom: 20px; 
    font-weight: 400; 
    font-size: 1.4rem !important; /* 16px */
}
/*.inquiry-block p { 
    margin-bottom: 20px; 
    font-size: 1.6rem !important;
} */
.modal-content #modal-body p, .modal-content #modal-body ul { 
    margin-bottom: 15px; 
    line-height: 1.8; 
    font-size: 1.6rem !important; /* 16px */
}

/* 小型列表/详情文字 (Small lists/details) - 从 9-9.5px 增大到 12px */
.company-details p { font-size: 1.3rem !important }
.business-item p { font-weight: 600; font-size: 1.4rem !important; margin-bottom: 15px; } /* 12px */
.business-item li { font-size: 1.3rem !important; margin-bottom: 10px; border-left: 2px solid #ddd; padding-left: 8px; } /* 12px */

/* ------------------ END 核心修复 ------------------ */

.content-image { max-width: 100%; height: auto; border-radius: 8px; box-shadow: var(--shadow-subtle); object-fit: cover; }
.float-right { float: right; max-width: 40%; margin-left: 40px; margin-bottom: 20px; }
.full-width-image { width: 100%; height: 350px; margin-bottom: 40px; }
.sustainability-image-container { height: 100%; min-height: 300px; }
.sustainability-image-container img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px; }
.centered-image-container { text-align: center; margin-bottom: 40px; }
.centered-image-container img { max-width: 70%; }
.grid-layout { display: grid; grid-template-columns: 1fr 2fr; gap: 20px; }
.ceo-block { text-align: center; }
.ceo-photo { width: 100%; height: auto; object-fit: cover; border-radius: 8px; box-shadow: var(--shadow-subtle); }
.ceo-name { font-size: 1.5rem; font-weight: 600; margin: 20px 0 10px; }
.mission-text { font-size: 1.5rem; font-weight: 400; color: var(--primary-color); }
.detail-group h3 { font-size: 1.6rem; font-weight: 700; margin-bottom: 10px; border-left: 4px solid var(--primary-color); padding-left: 15px; }
.company-details { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; border-top: 1px dashed #ddd; padding-top: 10px; }
.company-details .item { border-bottom: 1px dashed #eee; }
.company-details .item.wide { grid-column: span 2; }
.company-details strong { display: block; font-weight: 500; color: var(--primary-color); margin-bottom: 2px; font-size: 1.4rem !important;}
.business-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px; clear: right; }
.business-item { background-color: var(--background-light); padding: 15px; border-radius: 8px; box-shadow: var(--shadow-subtle); }
.business-item h3 { color: var(--primary-color); font-size: 1.6rem; margin-bottom: 5px; font-weight:500;} 
.business-item ul { list-style: none; margin: 15px 0; padding-left: 0; }
.project-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px; }
.project-card { border: 1px solid #eee; padding: 30px; border-radius: 8px; transition: transform 0.3s ease, box-shadow 0.3s ease; }
.project-card:hover { box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1); transform: translateY(-5px); }
.project-card .status { display: inline-block; font-size: 1.3rem; color: white; background-color: var(--primary-color); padding: 4px 10px; border-radius: 4px; margin-bottom: 10px; }
.project-card p.text{ font-size: 1.2rem; font-weight:400; }
.project-card h3 { font-size: 1.4rem; font-weight:400; margin-bottom: 10px; } 
.project-card p.theme { color: var(--primary-color); font-weight: 500; margin-top: 15px; }
.sustainability-content { display: grid; grid-template-columns: 2fr 1fr; gap: 50px; background-color: var(--background-light); padding: 10px; border-radius: 8px; }
.sustainability-content .text-block h4{ color: var(--primary-color); font-size: 1.6rem; margin-bottom: 5px; font-weight: 500;}
.volunteer-title { font-size: 1.6rem; font-weight:500; color: var(--primary-color); margin-bottom: 15px; } 
.text-block .emphasis { font-size: 1.1rem; font-weight: 700; color: #555; }
.activities-block h4 { font-size: 1.3rem; margin-bottom: 10px; }
.activities-block ul { list-style: disc; margin-left: 20px; margin-bottom: 30px; }
.partner-title { font-size: 1.8rem; font-weight:500; margin-bottom: 20px; text-align: center; } 
.content-section .partner-text { font-size: 1.6rem; font-weight:400; text-align: center; } 
.partner-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px; }
.partner-card { background-color: #fff; padding: 30px; border: 1px solid var(--primary-color); border-radius: 8px; }
.partner-card h4 { color: var(--primary-color); font-size: 1.5rem; font-weight:400; margin-bottom: 10px; } 
.partner-card p{ font-size: 1.3rem; font-weight:400;} 
.partner-card.wide { grid-column: span 2; } 
.final-call { font-size: 1.8rem; font-weight: 500; color: var(--primary-color);}
.contact-section { background-color: var(--background-light); clear: both; }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; }
.news-block h3, .inquiry-block h3{ color: var(--primary-color); font-size: 1.6rem; font-weight:500; }
.news-block h2, .inquiry-block h2 { color: var(--primary-color); font-size: 1.8rem; border-bottom: none; }
.news-block p, .inquiry-block p { font-size: 1.5rem; font-weight:400; border-bottom: none; }
.news-item { padding: 15px 0; border-bottom: 1px solid #ddd; cursor: pointer; transition: background-color 0.2s; position: relative; padding-right: 30px; font-size:1.3rem;}
.news-item:hover { background-color: #e9e9e9; }
.news-item::after { content: '→'; position: absolute; right: 0; top: 50%; transform: translateY(-50%); color: var(--primary-color); font-size: 1.2rem; font-weight: 700; opacity: 0.8; transition: transform 0.2s ease, opacity 0.2s ease; }
.news-item:hover::after { transform: translateY(-50%) translateX(5px); opacity: 1; }
.news-date { font-size: 0.85rem; color: #999; margin-right: 15px; }
.news-title { display: inline; font-weight: 400; font-size: 1.4rem;}
.news-detail-content { display: none; } 
.inquiry-block p a { color: var(--primary-color); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.btn-primary { display: inline-block; background-color: var(--primary-color); color: white !important; padding: 12px 25px; border-radius: 50px; font-weight: 700; transition: background-color 0.3s ease; }
.btn-primary:hover { background-color: #a3896b; }
.btn-secondary { display: inline-block; border: 1px solid var(--primary-color); color: var(--primary-color) !important; padding: 8px 20px; border-radius: 50px; font-size: 0.9rem; margin-top: 15px; }

/* ---------------------------------------------------- */
/* FOOTER (最终强制修正：黑色背景和居中) */
/* ---------------------------------------------------- */
/* 使用两个选择器以确保覆盖性 */
.main-footer, footer { 
    /* FIX: 强制纯黑色背景 */
    background-color: #000000 !important; 
    
    /* FIX: 强制居中 */
    text-align: center !important; 
    
    padding: 40px 20px !important; /* 增加 padding */
    color: #ccc !important; /* 强制文本颜色为浅灰色 */
    font-size: 1.2rem !important; /* 确保文字大小可读 */
}

/* 强制页脚内部所有文本元素和容器居中 */
.main-footer p, .main-footer span, .main-footer div, .main-footer nav,
footer p, footer span, footer div, footer nav {
    text-align: center !important;
    /* 块级元素辅助居中 */
    margin-left: auto !important; 
    margin-right: auto !important; 
}

/* 确保页脚链接文本的颜色/字号 */
.main-footer a, footer a { 
    color: #fff !important; /* 强制链接颜色为白色 */
    font-size: 1.1rem !important; /* 强制字号 */
    margin: 0 10px !important; /* 增加链接间的水平间距 */
    display: inline-block !important; /* 确保 a 标签能接受 margin */
}
/* ---------------------------------------------------- */
/* END FOOTER */
/* ---------------------------------------------------- */


/* Modal Styles */
.modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.7); display: none; justify-content: center; align-items: center; z-index: 1000; backdrop-filter: blur(5px); opacity: 0; transition: opacity 0.3s ease; }
.modal-overlay[style*="display: flex"] { opacity: 1; }
/* FIX: 针对 JS 修复，添加 is-open 状态 */
.modal-overlay.is-open { 
    display: flex !important; 
    opacity: 1; 
} 

.modal-content { background-color: #fff; padding: 40px; border-radius: 10px; max-width: 600px; width: 90%; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); position: relative; max-height: 80vh; overflow-y: auto; transform: translateY(-50px); transition: transform 0.3s ease; }
.modal-overlay[style*="display: flex"] .modal-content { transform: translateY(0); }
.modal-overlay.is-open .modal-content { transform: translateY(0); } /* FIX: 针对 JS 修复 */
.modal-content h3 { color: var(--primary-color); font-size: 1.5rem; margin-bottom: 20px; border-bottom: 2px solid #eee; padding-bottom: 10px; }
.modal-content #modal-body h3 { color: var(--text-color); font-size: 1.3rem; border-bottom: none; padding-bottom: 0; }
.modal-content #modal-body ul { list-style: disc; margin-left: 20px; }
.modal-close-btn { position: absolute; top: 15px; right: 15px; background: none; border: none; font-size: 2rem; color: #999; cursor: pointer; line-height: 1; padding: 0; }
.modal-close-btn:hover { color: var(--primary-color); }


/* ---------------------------------------------------- */
/* レスポンシブ対応 (Responsive Design) */
/* ---------------------------------------------------- */

/* 默认（PC/Tablet）：隐藏手机专用的内容和强制换行符 */
.mobile-copy { display: none; }
.pc-copy .mobile-break { display: none; }


@media (max-width: 1024px) {
    .main-header { padding: 20px 40px; }
    .main-nav { display: none; } 
    /* 调整移动菜单按钮的 fixed top 值，使其在平板上居中 */
    .mobile-menu-toggle { display: block; right: 40px; top: 20px; }

    /* Menu Header 平板设备调整 */
    .mobile-menu-header { padding: 20px 40px; }
    .mobile-menu-header a.logo-link { 
        /* 字体单位修正：改为 px */
        font-size: 18px; 
        text-shadow: none; color: var(--text-color) !important; 
    }
    /* 核心修复点 3: 在移动菜单白色背景下，Logo 变黑 */
    .mobile-menu-header .header-logo { height: 50px; filter: none !important; }

    /* 其他 Tablet 样式 (略) */
    .main-copy { font-size: 3rem; }
    .masked-text { font-size: 15vw; } 
    .hero-pagination { right: 20px; }
    
    /* ---------------------------------------------------- */
    /* Tablet 端标题样式 */
    /* ---------------------------------------------------- */
    .section-title { margin-bottom: 30px; } 
    .section-title .title-main { font-size: 2.8rem !important; } 
    .section-title .title-main-english { font-size: 1.4rem !important; margin-bottom: 10px; }
    .section-title .title-sub,
    .section-title .title-sub-english { font-size: 1.2rem !important; } 
    
    /* Tablet 内容文字字号：比 PC 略小 */
    .intro-statement { font-size: 1.4rem !important; } 
    .detail-group p, .text-block p, .inquiry-block p { font-size: 1.4rem !important; }
    .modal-content #modal-body p, .modal-content #modal-body ul { font-size: 1.4rem !important; }

    .business-grid, .project-list, .partner-grid, .contact-grid { grid-template-columns: repeat(2, 1fr); }
    .grid-layout { grid-template-columns: 1fr; }
    .partner-card.wide { grid-column: span 2; } 
    .sustainability-content { grid-template-columns: 1fr; }
    .content-section { padding: 60px 30px; }
    .float-right { float: none; max-width: 100%; margin: 0 0 30px 0; }
    .centered-image-container img { max-width: 90%; }
    .modal-content { padding: 30px; }
}

@media (max-width: 600px) {
    .main-header { padding: 15px 20px; }
    
    /* 调整移动菜单按钮的 fixed top 值，使其在手机上居中 */
    .mobile-menu-toggle { right: 20px; top: 15px; }
    
    /* ---------------------------------------------------- */
    /* Mobile Logo and Menu Button Visibility Optimization */
    /* ---------------------------------------------------- */
    
    /* Menu Header 手机设备调整 */
    .mobile-menu-header { padding: 15px 20px; }
    .mobile-menu-header a.logo-link { 
        /* 字体单位修正：使用 px */
        font-size: 16px; 
        text-shadow: none !important; color: var(--text-color) !important; 
    }
    /* 核心修复点 4: 在移动菜单白色背景下，Logo 变黑 */
    .mobile-menu-header .header-logo { height: 40px; filter: none !important; }
    
    /* 响应式调整 PC Header Logo 文本 */
    .logo a.logo-link { 
        /* 字体单位修正：使用 px */
        font-size: 16px; 
    }
    .header-logo { height: 50px; margin-right: 5px; }
    
    /* Hero Text Line Break：极简左右边距 */
    .hero-slide { width: 90%; padding: 0 5px; }
    /* 移动菜单列表与 Header 的间距调整 */
    #mobile-menu ul { padding-top: 80px; }
    
    /* Hero 文字内容分离：隐藏 PC 内容，显示 Mobile 内容 */
    .pc-copy { display: none !important; }
    .mobile-copy { display: block !important; }
    
    /* Mobile Hero Font Size Reduction - 切换到 px */
    .slide-title { font-size: 16px; }
    .tagline { font-size: 9px; }
    .sub-copy { font-size: 18px; line-height: 1.6; }
    .slide-content .slide-text { font-size: 18px; line-height: 1.6; }
    
    /* Mobile 强制换行控制 */
    .mobile-copy br:not(.mobile-break) { display: none; }
    .mobile-copy .mobile-break { display: inline; }
    
    /* 其他 mobile 样式保持不变 */
    .main-copy { font-size: 25px; }
    .masked-text { font-size: 16vw; } 
    
    /* ---------------------------------------------------- */
    /* Mobile 端标题样式 (强制使用 PX) */
    /* ---------------------------------------------------- */
    .section-title { margin-bottom: 25px; }
    
    /* 主标题日文：大、极粗、黑 */
    .section-title .title-main { 
        font-size: 22px !important; /* 2.2rem -> 22px */
        font-weight: 600 !important;
    }
    
    .detail-group h3 { font-size: 1.8rem; font-weight: 500; margin-bottom: 10px; border-left: 4px solid var(--primary-color); padding-left: 15px; }
    
    /* 主标题英文：小、粗、黑 */
    .section-title .title-main-english { 
        font-size: 12px !important; /* 1.2rem -> 12px */
        font-weight: 700 !important; /* 确保粗体 */
        margin-bottom: 10px;
    }

    /* 副标题：小、细、灰 */
    .section-title .title-sub,
    .section-title .title-sub-english { 
        font-size: 15px !important; /* 1.0rem -> 10px */
        line-height: 1.2;
    }
    
    /* Mobile 内容文字字号：确保可读 (强制使用 PX) */
    .intro-statement, .detail-group p, .text-block p, .inquiry-block p { font-size: 18px !important; }
    .modal-content #modal-body p, .modal-content #modal-body ul { font-size: 18px !important; }
    .company-details strong { display: block; font-weight: 500; color: var(--primary-color); margin-bottom: 2px; font-size: 1.6rem !important;}
    .business-item h3,.project-card h3,.partner-card h4{ color: var(--primary-color); font-size: 1.8rem; margin-bottom: 5px; font-weight: 500;}
    .business-item p,.project-card p,.partner-card p{ font-weight: 600; font-size: 1.6rem !important; margin-bottom: 15px;}
    .business-item li,.project-card li,.activities-block li,.partner-card li{ font-size: 1.5rem !important; margin-bottom: 10px; border-left: 2px solid #ddd; padding-left: 8px;}


    .business-grid, .project-list, .partner-grid, .contact-grid { grid-template-columns: 1fr; }
    .partner-card.wide { grid-column: span 1; }
    .company-details { grid-template-columns: 1fr; }
    .company-details .item.wide { grid-column: span 1; }
    .content-section { padding: 40px 15px; }
    .hero-pagination { right: 10px; margin: 10px 0; }
    .dot { width: 8px; height: 8px; margin: 10px 0; }
    .full-width-image { height: 200px; }
    .sustainability-image-container { min-height: 200px; }
    .modal-content { padding: 20px; margin: 20px; max-height: 90vh; }
}


/* ---------------------------------------------------- */
/* 回到顶部按钮 */
/* ---------------------------------------------------- */
.back-to-top {
    position: fixed;
    right: 20px; 
    bottom: 20px; 
    z-index: 1000; 
    opacity: 0; 
    visibility: hidden; 
    transform: translateY(10px); 
    transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
    width: 50px;
    height: 50px;
    border: none;
    border-radius: 50%;
    background-color: var(--primary-color, #007bff); 
    color: white;
    cursor: pointer;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
}
.back-to-top.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.back-to-top svg {
    width: 20px;
    height: 20px;
}