/* --- Global Reset & Body Styles --- */
* { box-sizing: border-box; }
body { margin: 0; padding: 0; font-family: "MS PGothic", "ＭＳ Ｐゴシック", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", sans-serif; font-size: 12px; background-color: #E7E7E7; color: #000000; line-height: 1.6; }
body.is-nav-open { overflow: hidden; }
a { color: #330099; text-decoration: none; }
a:visited { color: #666666; }
a:active { color: #990000; }
img { vertical-align: bottom; max-width: 100%; height: auto; }
h1, h2, p, ul, dl { margin: 0; padding: 0; }
li { list-style: none; }

/* --- Layout Structure --- */
.container { width: 800px; margin: 0; background-color: #FFFFFF; margin: auto auto;}
.page-header { position: relative; display: flex; flex-direction: column; }
.header-top, .content-wrapper { display: flex; }
.logo-link { display: block; width: 136px; height: 98px; flex-shrink: 0; }
.nav-spacer, .sidebar { width: 136px; flex-shrink: 0; }
.company-name-container, .main-content { width: 664px; flex-shrink: 0; }

/* --- Header & Navigation (PC) --- */
.header-nav { display: flex; align-items: center; border-top: 1px solid #eee; border-bottom: 1px solid #eee; }
.global-nav-pc { width: 100%; }
.global-nav-pc ul { display: flex; justify-content: flex-start; align-items: stretch; }
.global-nav-pc li { flex-grow: 1; text-align: center; }
.global-nav-pc a { display: block; padding: 12px 10px; color: #333; font-weight: bold; font-size: 14px; transition: background-color 0.2s; line-height: 1.3; }
.global-nav-pc a:hover { background-color: #f7f7f7; color: #000; }
.global-nav-pc .nav-en { display: block; font-size: 0.8em; font-weight: normal; color: #777; margin-top: 2px; }
.hamburger-menu, .global-nav-sp { display: none; } /* PCでは非表示 */

/* --- Current Page Highlight (PC) --- */
.page-index .nav-item-index a,
.page-message .nav-item-message a,
.page-about .nav-item-about a {
    color: #FF6600;
    pointer-events: none;
}

/* --- Main Content Area (省略) --- */
.main-content { padding-top: 9px; padding-bottom: 20px; padding-right: 20px; }
.page-content { padding: 20px; }
.info-title { height: 88px; }
.info-body { height: 130px; padding: 0 15px; }
.news-heading { font-weight: bold; margin-bottom: 1em; }
.news-heading .icon, .profile-title .icon { color: #FF6600; }
.news-list li { margin-bottom: 1.5em; }
.news-detail { padding-left: 1em; }
.message-content { padding: 10px; }
.message-content p { margin-bottom: 1.5em; }
.signature { text-align: right; padding-right: 2em; line-height: 1.8; }
.profile-section { margin-top: 3em; }
.profile-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1em; }
.profile-title { font-weight: bold; }
.profile-date { color: #333333; }
.profile-body { display: flex; margin-bottom: 1em; }
.profile-summary { flex-grow: 1; }
.profile-summary p { margin-bottom: 1.5em; }
.profile-photo { width: 113px; height: 147px; flex-shrink: 0; margin-left: 20px; }
.profile-history p { margin-bottom: 1.5em; }
.align-right { display: block; text-align: right; padding-right: 5em; }
.hobby { margin-top: 2em; }
.profile-title .icon { color: #FF3300; }
.about-content { text-align: center; }
.about-content h1 { font-size: 1em; font-weight: normal; }
.sub-heading { color: #333333; margin-bottom: 2em; }
.about-list dt { color: #333333; font-weight: bold; margin-top: 3.5em; margin-bottom: 0.8em; }
.about-list dd { margin-left: 0; }
.banner-area { display: flex; justify-content: space-around; align-items: center; padding: 20px 0; }
.page-footer { /* スタイル省略 */ }


/* ==================================================================
Responsive Styles (for screens smaller than 800px)
================================================================== */
@media (max-width: 800px) {
    body { font-size: 14px; }
    .container { width: 100%; }

    /* --- Header for Mobile --- */
    .header-top { height: auto; flex-direction: column; }
    .logo-link { margin: 0 auto; }
    .company-name-container { width: 100%; }
    .header-nav { display: none; } /* PC用ナビを非表示 */

    /* --- Hamburger Menu Button --- */
    .hamburger-menu { display: block; position: absolute; top: 15px; right: 15px; z-index: 101; width: 40px; height: 40px; border: none; background: transparent; cursor: pointer; padding: 0; }
    .hamburger-menu span { display: block; position: absolute; left: 5px; width: 30px; height: 2px; background-color: #333; transition: all 0.3s; }
    .hamburger-menu span:nth-child(1) { top: 10px; }
    .hamburger-menu span:nth-child(2) { top: 19px; }
    .hamburger-menu span:nth-child(3) { top: 28px; }
    .hamburger-menu.is-open span:nth-child(1) { top: 19px; transform: rotate(45deg); }
    .hamburger-menu.is-open span:nth-child(2) { opacity: 0; }
    .hamburger-menu.is-open span:nth-child(3) { top: 19px; transform: rotate(-45deg); }

    /* --- Navigation for Mobile --- */
    .global-nav-sp { display: block; position: fixed; top: 0; right: 0; z-index: 100; width: 280px; height: 100%; padding-top: 80px; background: rgba(255, 255, 255, 0.98); transform: translateX(100%); transition: transform 0.3s; }
    .global-nav-sp.is-open { transform: translateX(0); }
    .global-nav-sp ul { flex-direction: column; }
    .global-nav-sp a { display: block; text-align: center; padding: 20px 10px; border-top: 1px solid #eee; }
    .global-nav-sp a:hover { background-color: transparent; }

    /* --- Current Page Highlight for Mobile --- */
    .global-nav-sp .page-index .nav-item-index a,
    .global-nav-sp .page-message .nav-item-message a,
    .global-nav-sp .page-about .nav-item-about a {
        background-color: #f5f5f5;
    }

    /* (省略: メインコンテンツのスタイルは前回のまま) */
    .content-wrapper { flex-direction: column; }
    .sidebar { display: none; }
    .main-content { width: 100%; padding-top: 0;}
    .page-content { padding: 15px; }
    .info-body { height: auto; padding-bottom: 20px; }
    .profile-header { flex-direction: column; align-items: flex-start; }
    .profile-body { flex-direction: column-reverse; align-items: center; }
    .profile-photo { margin-left: 0; margin-bottom: 20px; }
    .signature, .align-right { padding-right: 1em; text-align: right; }
    .about-content { text-align: left; padding: 20px; }
    .about-list dd { padding: 0 10px; }
    .banner-area { flex-direction: column; gap: 15px; }
}