@charset "UTF-8";

@media(max-width:1100px){
  :root{--header-height:82px}
  .site-header__inner{width:min(calc(100% - 28px),1320px)}
  .site-logo img{width:240px;max-width:55vw}
  .menu-button{display:block;position:relative;z-index:1002}
  .global-nav{
    position:fixed;inset:var(--header-height) 0 0;
    padding:28px 24px 50px;background:#fff;
    display:flex;flex-direction:column;align-items:stretch;
    overflow:auto;transform:translateX(100%);transition:transform .28s ease;
  }
  .global-nav.is-open{transform:none}
  .global-nav a{min-width:0;padding:15px;border-bottom:1px solid var(--line);align-items:flex-start}
  .global-nav__contact{margin-top:10px;align-items:center!important}
  .menu-button.is-open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .menu-button.is-open span:nth-child(2){opacity:0}
  .menu-button.is-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
}

@media(max-width:760px){
  .container{width:min(calc(100% - 32px),var(--container))}
  .foundation-hero{min-height:560px;padding-inline:16px}
  .foundation-section{padding:72px 0}
  .site-footer__inner{width:min(calc(100% - 32px),var(--container));grid-template-columns:1fr;gap:20px;padding:24px 0 16px}
  .footer-links{grid-template-columns:1fr}
  .footer-company img{width:220px}
}

@media(max-width:480px){
  .site-logo img{width:205px;max-width:66vw}
  .foundation-hero h1{font-size:2rem}
  .foundation-panel{padding:28px 22px}
  .page-top{right:14px;bottom:14px;width:44px;height:44px}
}


@media(max-width:900px){
  .hero{min-height:680px}
  .two-column,.message-layout,.company-layout,.access-layout,.contact-layout{grid-template-columns:1fr}
  .company-intro{position:static}
  .section-photo{order:2}
  .recruit-banner{grid-template-columns:1fr}
  .recruit-accent{display:none}
  .access-info{padding:36px 28px}
}

@media(max-width:640px){
  .hero{min-height:610px}
  .hero__content{padding-top:calc(var(--header-height) + 30px)}
  .hero h1{font-size:2.35rem}
  .content-section{padding:75px 0}
  .section-title--inline{align-items:baseline}
  .message-layout{gap:36px}
  .message-photo{max-width:410px;margin:auto}
  .president-signature{justify-content:flex-start;gap:12px}
  .president-signature__title{font-size:.95rem}
  .president-signature img{width:260px;max-width:58%}
  .info-table th,.info-table td{display:block;width:100%;padding:11px 14px}
  .info-table th{padding-bottom:4px;border-bottom:0}
  .recruit-banner{padding:34px 24px}
  .recruit-details,.contact-form{padding:26px 20px}
  .map-frame,.map-frame iframe{min-height:340px}
  .contact-section{padding:70px 0}
  .contact-direct strong{font-size:1.1rem;word-break:break-all}
}


@media(max-width:1050px){
  .work-card{flex-basis:calc((100% - 24px)/2)}
}
@media(max-width:900px){
  .works-heading,.work-summary{grid-template-columns:1fr}
}
@media(max-width:700px){
  .work-card{flex-basis:88%;min-width:290px}
  .works-arrow{display:none}
  .work-card__body h3{min-height:auto}
  .detail-gallery{grid-template-columns:1fr 1fr}
  .lightbox{grid-template-columns:44px minmax(0,1fr) 44px}
  .lightbox__prev,.lightbox__next{font-size:3rem}
}
@media(max-width:520px){
  .work-detail{padding-left:16px;padding-right:16px}
  .work-detail-table th,.work-detail-table td{display:block;width:100%}
  .work-detail-table th{padding-bottom:4px}
  .detail-gallery{grid-template-columns:1fr}
  .detail-nav{flex-wrap:wrap}
}


@media(max-width:640px){
  .simple-page__inner{padding:30px 20px}
  .sitemap-grid{grid-template-columns:1fr}
}

@media(max-width:900px){
  .recruit-layout{grid-template-columns:1fr}
  .recruit-intro{position:static}
}
@media(max-width:640px){
  .message-heading{gap:14px;align-items:baseline;flex-wrap:wrap}
  .message-heading h2{font-size:2.35rem}
  .message-heading p{font-size:.95rem}
  .recruit-section .primary-button{margin:22px 20px 28px}
}

@media(max-width:900px){
  .recruit-layout{grid-template-columns:1fr !important}
  .recruit-intro{grid-column:1;grid-row:1}
  .recruit-details{grid-column:1;grid-row:2}
}


@media(max-width:640px){
  .message-heading h2{
    font-size:2.15rem !important;
  }
}


@media(max-width:900px){
  .contact-layout{
    grid-template-columns:1fr !important;
  }
  .contact-form{
    max-width:none;
    justify-self:stretch;
  }
}


@media(max-width:900px){
  .message-layout--reversed{
    grid-template-columns:1fr !important;
    gap:38px;
  }
  .message-layout--reversed .message-copy,
  .message-portrait-block{
    grid-column:1;
  }
  .message-portrait-block{
    align-items:flex-start;
  }
  .message-portrait-block .message-photo{
    max-width:280px;
  }
  .message-portrait-block .president-signature{
    justify-content:flex-start;
  }
}


@media(max-width:900px){
  .message-portrait-block{
    align-items:center !important;
  }
  .message-portrait-block .message-photo,
  .message-portrait-block .president-signature,
  .message-portrait-block .president-signature img{
    width:min(300px,100%) !important;
    max-width:100% !important;
  }
  .message-portrait-block .president-signature{
    align-items:center !important;
  }
}


@media(max-width:900px){
  .message-layout--reversed{
    grid-template-columns:1fr !important;
    gap:38px !important;
  }
  .message-layout--reversed .message-copy,
  .message-portrait-block{
    grid-column:1 !important;
  }
  .message-portrait-block .message-photo,
  .president-title-only,
  .president-signature-image{
    width:min(300px,100%) !important;
  }
}


@media(max-width:700px){
  #company .company-table th,
  #company .company-table td,
  #company table th,
  #company table td{
    padding-top:6px !important;
    padding-bottom:6px !important;
    line-height:1.4 !important;
  }
}

/* ===== MOBILE HEADER MENU TEXT FIX 2026-09-04 ===== */
@media(max-width:1100px){
  .global-nav.is-open a{
    overflow:visible;
    min-height:58px;
    height:auto;
    flex:0 0 auto;
    white-space:normal;
    line-height:1.45;
    padding:13px 15px;
  }
  .global-nav.is-open a small{
    display:block;
    width:100%;
    margin-top:3px;
    line-height:1.35;
    white-space:normal;
  }
  .global-nav.is-open .global-nav__contact{
    min-height:62px;
  }
}

/* ===== MOBILE HEADER MENU DESIGN REFINEMENT 2026-09-04 ===== */
@media(max-width:1100px){
  .site-header__inner{
    gap:16px;
  }

  .menu-button{
    width:46px;
    height:46px;
    flex:0 0 46px;
    border-radius:50%;
    transition:background .2s ease;
  }
  .menu-button:hover,
  .menu-button.is-open{
    background:rgba(16,42,67,.055);
  }
  .menu-button span{
    width:25px;
    margin:5px auto;
  }

  .global-nav{
    top:var(--header-height);
    right:0;
    bottom:0;
    left:auto;
    width:min(88vw,420px);
    padding:20px 22px 34px;
    background:rgba(255,255,255,.985);
    border-left:1px solid rgba(16,42,67,.08);
    box-shadow:-18px 22px 42px rgba(16,42,67,.15);
    gap:0;
  }

  .global-nav.is-open a{
    width:100%;
    min-height:58px;
    margin:0;
    padding:12px 6px;
    border-bottom:1px solid rgba(16,42,67,.10);
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    overflow:visible;
    color:var(--navy);
    font-size:.96rem;
    line-height:1.3;
    text-align:left;
    white-space:nowrap;
  }

  .global-nav.is-open a small{
    display:block;
    width:auto;
    margin:0;
    flex:0 0 auto;
    color:var(--muted);
    font-size:.60rem;
    line-height:1;
    letter-spacing:.12em;
    text-align:right;
    white-space:nowrap;
  }

  .global-nav.is-open a:not(.global-nav__contact)::before{
    content:"";
    width:3px;
    height:0;
    margin-right:-10px;
    background:var(--accent);
    border-radius:2px;
    transition:height .2s ease;
  }
  .global-nav.is-open a:not(.global-nav__contact):hover::before{
    height:24px;
  }

  .global-nav.is-open .global-nav__contact{
    min-height:72px;
    margin-top:22px;
    padding:14px 18px;
    border:0;
    border-radius:4px;
    display:flex;
    flex-direction:column;
    align-items:center!important;
    justify-content:center;
    gap:5px;
    background:var(--navy);
    color:#fff!important;
    text-align:center;
    box-shadow:0 10px 22px rgba(16,42,67,.16);
  }

  .global-nav.is-open .global-nav__contact small{
    width:100%;
    margin:0;
    color:#dbe7ef!important;
    text-align:center;
    letter-spacing:.16em;
  }
}

@media(max-width:480px){
  .global-nav{
    width:100%;
    padding:16px 20px 28px;
    border-left:0;
  }
  .global-nav.is-open a{
    min-height:55px;
    padding:11px 4px;
    gap:12px;
    font-size:.94rem;
  }
  .global-nav.is-open a small{
    font-size:.57rem;
    letter-spacing:.10em;
  }
  .global-nav.is-open .global-nav__contact{
    min-height:68px;
    margin-top:18px;
  }
}

/* ===== SLIM VERTICAL MOBILE NAV 2026-09-04 ===== */
@media(max-width:1100px){
  .global-nav{
    top:var(--header-height);
    right:0;
    bottom:auto;
    left:auto;
    width:220px;
    max-width:68vw;
    height:auto;
    max-height:calc(100dvh - var(--header-height));
    padding:8px 12px 12px;
    overflow-y:auto;
    background:rgba(255,255,255,.985);
    border-left:1px solid rgba(16,42,67,.08);
    border-bottom:1px solid rgba(16,42,67,.08);
    border-radius:0 0 0 10px;
    box-shadow:-12px 16px 30px rgba(16,42,67,.14);
    gap:0;
  }

  .global-nav.is-open a{
    width:100%;
    min-height:50px;
    margin:0;
    padding:0 10px;
    border-bottom:1px solid rgba(16,42,67,.10);
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    gap:0;
    overflow:visible;
    color:var(--navy);
    font-size:.94rem;
    font-weight:600;
    line-height:1.25;
    text-align:left;
    white-space:nowrap;
  }

  .global-nav.is-open a small{
    display:none !important;
  }

  .global-nav.is-open a:not(.global-nav__contact)::before{
    content:"";
    width:3px;
    height:16px;
    margin:0 10px 0 0;
    flex:0 0 3px;
    background:rgba(16,42,67,.18);
    border-radius:999px;
    transition:height .2s ease,background .2s ease;
  }

  .global-nav.is-open a:not(.global-nav__contact):hover::before{
    height:24px;
    background:var(--accent);
  }

  .global-nav.is-open .global-nav__contact{
    min-height:52px;
    margin-top:8px;
    padding:0 12px;
    border:0;
    border-radius:5px;
    display:flex;
    flex-direction:row;
    align-items:center!important;
    justify-content:center;
    background:var(--navy);
    color:#fff!important;
    font-size:.94rem;
    font-weight:700;
    text-align:center;
    box-shadow:none;
  }
}

@media(max-width:480px){
  .global-nav{
    width:210px;
    max-width:72vw;
    padding:7px 10px 10px;
  }
  .global-nav.is-open a{
    min-height:48px;
    padding:0 8px;
    font-size:.92rem;
  }
  .global-nav.is-open .global-nav__contact{
    min-height:50px;
    margin-top:7px;
  }
}
