/* === Base Font: Rounded Gothic (全ページ統一) === */
body {
font-family:verdana,"ヒラギノ丸ゴ ProN W4","Hiragino Maru Gothic ProN","メイリオ","Meiryo","ＭＳ Ｐゴシック","MS PGothic",Sans-Serif;
    Verdana, 
    sans-serif;
  font-size: 16px;
  line-height: 1.7;
  color: #111;
  background-color: #fff;
}


/* =========================================================
   Global Reset & Variables
========================================================= */
:root {
  --container: 1100px;
  --logo-h: 122px;
  --radius: 12px;
  --border: #eee;
  --muted: #666;
  --ink: #111;
  --card: #fff;
  --line2: #ebebeb;
}

html, body {
  margin: 0;
  padding: 0;
  font-family: system-ui, sans-serif;
  color: var(--ink);
  background: #fafafa;
  line-height: 1.6;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { text-decoration: underline; }

/* =========================================================
   Header & Language Switch
========================================================= */
.site-header, .site-nav {
  background:#fff;
  border-bottom:1px solid #eaeaea;
}
.site-header .container,
.site-nav .container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: center;  /* ← ここを center に */
  gap: 16px;
}

/* ── 3カラム配置：左ロゴ・中央ナビ・右言語切替 ── */
.site-nav .container{
  display: grid !important;
  grid-template-columns: 1fr auto 1fr; /* 左右は余白に逃がし、中央に固定 */
  align-items: center;
  justify-items: center; /* デフォは中央寄せ */
}

/* 左：ロゴ */
.site-nav .brand{ 
  grid-column: 1;
  justify-self: start;   /* 左寄せ */
}

/* 中央：ナビ */
.site-nav .nav-list{
  grid-column: 2;        /* 真ん中のカラムに固定 */
  display: flex;
  gap: 18px;
  list-style: none;
  margin: 0;
  padding: 0;
  justify-content: center; /* 中身も中央に */
}

/* 右：言語切替 */
.site-nav .lang-switch{
  grid-column: 3;
  justify-self: end;     /* 右寄せ */
}

/* ── モバイル：縦積み＆トグル対応 ── */
@media (max-width: 900px){
  .site-nav .container{
    grid-template-columns: 1fr auto; /* 左：ロゴ、右：メニュー/言語 */
    grid-auto-flow: row;
    justify-items: stretch;
  }
  .site-nav .brand{ grid-column: 1; justify-self: start; }
  .site-nav .lang-switch{ grid-column: 2; justify-self: end; }
  .site-nav .nav-list{
    grid-column: 1 / -1; /* 幅いっぱいに */
    display: none;        /* デフォは閉じる */
    flex-direction: column;
    gap: 10px;
    border-top: 1px dashed #ccc;
    padding-top: 8px;
  }
  .site-nav .nav-list.open{ display: flex; } /* 既存のトグルで開く */
  .site-nav .nav-toggle{ 
    display: inline-block; 
    padding: 8px 12px; 
    border: 1px solid #ccc; 
    background: #fff; 
    border-radius: 6px; 
    cursor: pointer; 
  }
}


.site-header .brand img {
  height:var(--logo-h);
  width:auto;
  display:block;
}
.site-header .lang-switch {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.site-header .lang-switch a {
  display:inline-block;
  padding:8px 12px;
  border:1px solid #ddd;
  border-radius:999px;
  color:#111;
  font-weight:400;
  line-height:1;
}
.site-header .lang-switch a[aria-current="page"] {
  border-color:#d1ad93;
  background:#fff5ef;
  font-weight:700;
}

/* =========================================================
   Navigation
========================================================= */
.nav-toggle {
  display:none;
  border:1px solid #e5e7eb;
  background:#fff;
  border-radius:8px;
  padding:8px 12px;
  cursor:pointer;
  line-height:1;
}
.nav-list {
  display:flex;
  flex-wrap:wrap;
  gap:14px 18px;
  justify-content:center;
  align-items:center;
  margin:0;
  padding:0;
  list-style:none;
}
.nav-list a {
  display:inline-block;
  padding:12px 6px;
  color:#111;
  white-space:nowrap;
}
.nav-list a:hover { text-decoration:underline; }
.nav-list a[aria-current="page"] {
  font-weight:700;
  text-decoration:underline;
}

/* Mobile */
@media (max-width:900px){
  .site-nav .container { flex-wrap:wrap; }
  .nav-toggle { display:inline-block; }
  .nav-list {
    display:none;
    width:100%;
    border-top:1px dashed #e5e7eb;
    padding-top:8px;
  }
  .nav-list.open { display:flex; }
}

/* Desktop Centering */
@media (min-width:901px){
  .site-nav .container { justify-content:center; }
  .nav-list { flex:0 1 auto; justify-content:center; margin:0 auto; }
}
.site-nav .nav-list { text-align:center; }
.site-nav .nav-list li { display:inline-flex; float:none; }

/* =========================================================
   Breadcrumb
========================================================= */
.breadcrumb {
  font-size:.95rem;
  color:var(--muted);
  margin:14px 0 12px;
}
.breadcrumb a { color:inherit; }
.breadcrumb a:hover { text-decoration:underline; }

/* =========================================================
   Sidebar + Content Layout
========================================================= */
.wrap {
  max-width:var(--container);
  margin:0 auto;
  padding:0 16px;
}
#content {
  display:grid;
  grid-template-columns:280px 1fr;
  gap:28px;
  margin:22px 0 36px;
}
#sidebar .box {
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:14px;
  background:#fff;
}
#sidebar h3 { margin:0 0 10px; font-size:1.1rem; }
#sidebar ul { list-style:none; padding:0; margin:0; }
#sidebar li+li { margin-top:6px; }
#sidebar a[aria-current="page"] { font-weight:700; }

/* Mobile */
@media (max-width:900px){
  #content{ grid-template-columns:1fr; }
}

/* =========================================================
   Cards (Policy, Profile, etc.)
========================================================= */
.policy-card,
.profile-section {
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:#fff;
  padding:16px 20px;
}
.policy-card h1,
.profile-section h1 { font-size:1.6rem; margin:0 0 6px; }
.policy-card .sub { color:var(--muted); margin:0 0 14px; font-size:.95rem; }
.policy-card h2 { font-size:1.15rem; margin:18px 0 8px; }
.policy-card p, .profile-section p { margin:0 0 10px; line-height:1.75; }
.policy-card ul, .profile-section ul { margin:6px 0 12px 1.2em; padding:0; }
.policy-card li, .profile-section li { margin:6px 0; }

/* Company Profile key-values */
.kv { display:grid; grid-template-columns:220px 1fr; gap:12px; }
.kv dt { font-weight:700; color:#333; }
.kv dd { margin:0; }
.kv dd+dt { margin-top:8px; }
@media (max-width:900px){ .kv{ grid-template-columns:1fr; } }

/* =========================================================
   Hero, Notice, Quick links, News
========================================================= */
.hero { position:relative; max-width:1100px; margin:0 auto; }
.hero img { border-radius:12px; }
.hero-caption {
  position:absolute; left:4%; bottom:6%;
  background:rgba(0,0,0,.55);
  color:#fff;
  padding:18px 20px;
  border-radius:10px;
  max-width:72%;
}
.hero-caption h1 { margin:0 0 6px; font-size:1.8rem; }
.hero-caption p { margin:0; font-size:1rem; opacity:.95; }

.notice-bar {
  max-width:1100px;
  margin:14px auto 0;
  padding:10px 14px;
  border:1px solid #f3d28f;
  background:#fff9e9;
  border-radius:10px;
}
.notice-bar b{ margin-right:8px; }

.quick {
  max-width:1100px;
  margin:18px auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.quick .card {
  border:1px solid #eee;
  border-radius:12px;
  padding:16px;
  background:#fff;
  transition:transform .15s ease;
}
.quick .card:hover{ transform:translateY(-2px); }
.quick h3{ margin:.2rem 0 .5rem; font-size:1.05rem; }
.quick p{ margin:0 0 .6rem; color:#555; }
.quick a.btn {
  display:inline-block;
  padding:6px 12px;
  border:1px solid #ddd;
  border-radius:999px;
}

.news-digest { max-width:1100px; margin:8px auto 24px; }
.news-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.news-card {
  border:1px solid #eee;
  border-radius:12px;
  padding:14px;
  background:#fff;
}
.news-card .meta {
  font-size:.9rem;
  color:#666;
  display:flex;
  gap:8px;
  margin-bottom:6px;
  flex-wrap:wrap;
  align-items:center;
}
.tag {
  padding:2px 8px;
  border-radius:999px;
  border:1px solid #ddd;
  font-size:.8rem;
}
.tag-press{ border-color:#e06; }
.tag-maintenance{ border-color:#06c; }
.tag-notice{ border-color:#090; }

/* HK holidays box */
.hk-holidays {
  margin-top:14px;
  border:1px solid #f3d28f;
  background:#fff9e9;
  border-radius:10px;
  padding:12px 14px;
}
.hk-holidays h3{ margin:0 0 8px; font-size:1.05rem; }
.hk-holidays ul{ margin:0; padding-left:18px; }
.hk-holidays li+li{ margin-top:4px; }
.hk-holidays time{ font-variant-numeric: tabular-nums; }

/* =========================================================
   Map / Office Photo
========================================================= */
.map-embed { border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; background:#fff; }
.map-embed .map-inner { width:100%; aspect-ratio: 4/3; }
.map-embed iframe { width:100%; height:100%; border:0; display:block; }

.office-photo {
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  background:#fff;
}
.office-photo img { width:100%; height:auto; }

/* =========================================================
   Footer
========================================================= */
#footer {
  background:#fff;
  border-top:1px solid #eaeaea;
  padding:20px 0;
  font-size:.95rem;
  color:#444;
}
#footer .inner {
  max-width:var(--container);
  margin:0 auto;
  padding:0 16px;
}
#footer .logo {
  font-weight:700;
  margin-bottom:6px;
}
#footer .info p {
  margin:0;
  color:var(--muted);
  font-size:.9rem;
}
.footnav {
  list-style:none;
  margin:14px 0 0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:12px 20px;
}
.footnav a {
  text-decoration:none;
  color:#111;
}
.footnav a:hover {
  text-decoration:underline;
}
address {
  display:block;
  margin-top:12px;
  font-style:normal;
  font-size:.85rem;
  color:#999;
}

/* 各 AI アシスタントをカード枠で囲む */
.profile-row {
  display: flex;
  gap: 24px;
  align-items: center;
  padding: 16px;
  margin-bottom: 20px;           /* 各カード間の余白 */
  border: 1px solid var(--border, #ddd);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05); /* ほんのり影 */
}

.profile-figure {
  flex: 0 0 220px;
  max-width: 220px;
}

.profile-figure img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
  object-fit: cover;
}

.profile-body {
  flex: 1;
}

.profile-name {
  font-size: 1.3rem;
  font-weight: 700;
  margin-bottom: 6px;
}

.profile-role {
  font-size: .95rem;
  color: #666;
  margin-bottom: 10px;
}

.badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 6px 0 10px;
}

.badge {
  display: inline-block;
  font-size: .8rem;
  padding: 4px 8px;
  border: 1px solid #ccc;
  border-radius: 999px;
  color: #555;
  background: #fafafa;
}

/* === シール形式の本文デザイン === */
.prose {
  background: #fff;               /* 白いカード風背景 */
  border-radius: 12px;            /* 角をやわらかく */
  box-shadow: 0 4px 18px rgba(0,0,0,0.08);  /* 柔らかい影 */
  padding: 28px 32px;             /* 内側の余白 */
  border: 1px solid #e5e7eb;      /* 薄い外枠ライン */
  margin-bottom: 40px;            /* フッターとの間隔 */
}

/* スマホでは少し余白を減らす */
@media (max-width: 640px) {
  .prose {
    padding: 20px 18px;
    border-radius: 10px;
  }
}

.site-footer {
  background: #111;
  color: #fff;
  padding: 24px 0;
  font-size: 0.9rem;
}
.site-footer .container {
  max-width: 1100px;
  margin: 0 auto;
  text-align: center;
}
.site-footer .footnav {
  list-style: none;
  padding: 0;
  margin: 0 0 10px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
}
.site-footer .footnav a {
  color: #fff;
  text-decoration: none;
  opacity: 0.8;
}
.site-footer .footnav a:hover {
  opacity: 1;
  text-decoration: underline;
}
.site-footer address {
  font-style: normal;
  opacity: 0.8;
}

/* === Header / Lang Switch : about.html に合わせる === */
.site-header .lang-switch{
  display:flex; gap:8px; flex-wrap:wrap; font-size:14px; font-weight:400;
}
.site-header .lang-switch a{
  display:inline-block; padding:6px 12px; border:1px solid #ddd; border-radius:999px;
  color:#111; text-decoration:none; font-weight:400;
}
.site-header .lang-switch a[aria-current="page"]{
  border-color:#d1ad93; background:#fff5ef; font-weight:700;
}

/* === Nav Centering（PC時はナビ中央寄せ） === */
@media (min-width:901px){
  .site-nav .container{ justify-content:center; }
  .site-nav .left{ display:none; }
  .site-nav .nav-list{ justify-content:center; margin:0 auto; }
}

/* モバイル時のメニュー表示仕様（about.html準拠） */
@media (max-width:900px){
  .site-nav .container{ flex-wrap:wrap; }
  .nav-toggle{ display:inline-block; }
  .nav-list{ display:none; width:100%; border-top:1px dashed #e5e7eb; padding-top:8px; justify-content:center; }
  .nav-list.open{ display:flex; }
}
