@import url('https://fonts.googleapis.com/css2?family=Zen+Old+Mincho:wght@500;600;700&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap');

/* ============================================================
   配色ペア定義
   各セクション(data-section属性)ごとに --header / --body-bg /
   --ink / --ink-soft を切り替える。
   曲線の形状(edge/control比)は全セクション共通。
   ============================================================ */
:root{
  --cream:#f1efe3;
  --line:rgba(0,0,0,.12);
  --accent-inquiry:#bd5d49;
}

body[data-section="top"]{
  --header:#242623; --body-bg:#ffffff; --ink:#1c1c1a; --ink-soft:#5a5850; --panel:#f7f5ef;
}
body[data-section="news"]{
  --header:#4b6e45; --body-bg:#68bbe1; --ink:#152b30; --ink-soft:#3d5b62;
}
body[data-section="company"]{
  --header:#29324c; --body-bg:#ccb644; --ink:#20240e; --ink-soft:#4d4a2e;
}
body[data-section="works"]{
  --header:#392e34; --body-bg:#8fb78d; --ink:#132414; --ink-soft:#3a4f3b;
}
body[data-section="inquiry"]{
  --header:#337080; --body-bg:#bd5d49; --ink:#2c1410; --ink-soft:#5c3d34;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{background:var(--body-bg);font-family:'Zen Kaku Gothic New',sans-serif;color:var(--ink);}
a{text-decoration:none;color:inherit;}
h1,h2,h3{font-family:'Zen Old Mincho',serif;margin:0;font-weight:600;}
img{max-width:100%;display:block;}

.wrap{max-width:1312px;margin:0 auto;padding:0 64px;}
@media (max-width:600px){ .wrap{padding:0 24px;} }

/* ---------- ヘッダー／フッターの曲線 ---------- */
.curve-header{position:relative;width:100%;height:190px;}
@media (max-width:600px){ .curve-header{height:92px;} }

.curve-header svg{position:absolute;top:0;left:0;width:100%;height:100%;display:block;}
.curve-nav{position:absolute;top:0;right:0;bottom:0;left:0;max-width:1312px;margin:0 auto;padding:0 64px;}
@media (max-width:600px){ .curve-nav{padding:0 20px;} }

.curve-nav .logo-link{position:absolute;top:44%;left:64px;transform:translateY(-50%);margin:-10px 0 0 0;}
@media (max-width:600px){ .curve-nav .logo-link{left:20px;margin-top:-10px;} }
.curve-nav .logo-link svg{height:20px;width:auto;color:#fff;display:block;}
@media (max-width:600px){ .curve-nav .logo-link svg{height:15px;} }

.curve-nav nav{position:absolute;top:44%;right:64px;transform:translateY(-50%);display:flex;align-items:center;gap:44px;margin:0;}
@media (max-width:600px){ .curve-nav nav{display:none;right:20px;} } /* モバイルはハンバーガーに差し替え(JSで開閉) */

.curve-nav nav a{color:rgba(255,255,255,.85);font-size:15px;letter-spacing:.08em;font-weight:500;}
.curve-nav nav a.active{color:#fff;font-weight:700;}
.curve-nav nav a.home-link{display:none;}
@media (max-width:600px){ .curve-nav nav a.home-link{display:inline;} }

.menu-btn{display:none;background:none;border:none;padding:8px;flex-direction:column;gap:5px;cursor:pointer;z-index:1001;position:relative;}
.menu-btn span{width:22px;height:2px;background:#fff;display:block;}
@media (max-width:600px){
  .menu-btn{display:flex;position:absolute;top:44%;right:20px;transform:translateY(-50%);margin:0;}
}

/* ---------- モバイル用ナビ（ハンバーガーで開閉） ---------- */
@media (max-width:600px){
  .curve-nav nav{
    display:none;
    position:fixed;
    top:0;right:0;bottom:0;left:0;
    transform:none;
    background:var(--header);
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:28px;
    padding:24px 40px;
    z-index:1000;
  }
  body.nav-open .curve-nav nav{display:flex;}
  body.nav-open{overflow:hidden;}
  .curve-nav nav a{font-size:20px;}
}

/* ---------- 2カラム（本文＋固定幅の画像／地図など）。768px以下で縦積みに切り替え ---------- */
.split{display:flex;gap:48px;}
.split-main{flex:1;min-width:0;}
@media (max-width:600px){
  .split{flex-direction:column;gap:24px;}
}
.split-media-380{width:380px;flex-shrink:0;}
@media (max-width:600px){ .split-media-380{width:100%;} }
.split-media-560{width:560px;flex-shrink:0;}
@media (max-width:600px){ .split-media-560{width:100%;} }
.split-media-500{width:500px;flex-shrink:0;}
@media (max-width:600px){ .split-media-500{width:100%;} }

.curve-footer-wrap{position:relative;margin-top:-1px;}
.curve-footer-wrap svg{display:block;width:100%;height:240px;}
@media (max-width:600px){ .curve-footer-wrap svg{height:110px;} }

.footer-content{background:var(--cream);margin-top:-1px;padding:0 0 40px 0;}
.footer-inner{max-width:1312px;margin:0 auto;padding:0 64px;}
@media (max-width:600px){ .footer-inner{padding:0 24px;} }

.footer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;padding-bottom:40px;border-bottom:1px solid #e2ddcb;}
@media (max-width:600px){ .footer-grid{grid-template-columns:1fr;gap:28px;} }
.footer-grid h4{font-size:12px;letter-spacing:.12em;color:#5a5850;margin-bottom:16px;font-weight:700;}
.footer-grid a{display:block;font-size:13px;color:#1c1c1a;margin-bottom:10px;}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:28px;}
.footer-bottom svg{height:16px;width:auto;color:#1c1c1a;}
.footer-bottom .copyright{font-size:11px;color:#5a5850;}
@media (max-width:600px){
  .footer-bottom{flex-direction:column;align-items:center;gap:12px;text-align:center;}
}

/* ---------- 汎用パーツ ---------- */
.eyebrow{font-size:12px;letter-spacing:.16em;color:var(--ink-soft);font-weight:700;margin-bottom:14px;}
.breadcrumb{font-size:12px;color:var(--ink-soft);margin-bottom:20px;}
.breadcrumb a{border-bottom:1px solid var(--ink-soft);padding-bottom:2px;}
.btn{display:inline-block;padding:16px 40px;border-radius:2px;font-size:14px;letter-spacing:.06em;font-weight:700;}
.card{background:rgba(255,255,255,.5);border-radius:2px;padding:28px;}
.pill{padding:6px 16px;border-radius:999px;font-size:12px;}
.grid-3{display:grid;grid-template-columns:repeat(var(--grid-3-cols,3),minmax(0,1fr));gap:28px;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
@media (max-width:600px){ .grid-3,.grid-2{grid-template-columns:1fr;} }

/* ---------- スマホ幅では見出し(h1)が大きすぎるページが多いため、一律で縮小する ----------
   各テンプレートのh1はインラインで font-size を指定しているため、通常のCSSでは
   上書きできない。ここだけ !important を使って対応する。 */
@media (max-width:600px){
  h1{font-size:24px !important;line-height:1.5 !important;}
}
.chip-scroll{position:relative;}
.chip-scroll .chip-track{display:flex;gap:10px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;-ms-overflow-style:none;}
.chip-scroll .chip-track::-webkit-scrollbar{display:none;}
.chip-scroll .chip-track a{white-space:nowrap;flex-shrink:0;}
/* フェード演出は見た目が不自然だったため廃止。右端のチップが半分見切れること自体がスクロール可能のヒントになる。 */

/* ---------- NEWS一覧の行。狭い画面では日付とタイトルは同じ行のまま、隙間だけ詰める ---------- */
.news-row{display:flex;align-items:center;gap:40px;padding:26px 32px;}
.news-row-date{width:110px;flex-shrink:0;}
@media (max-width:600px){
  .news-row{align-items:flex-start;gap:20px;padding:16px 20px;}
  .news-row-date{width:auto;flex-shrink:0;padding-top:1px;}
}
