@charset "UTF-8";
/** -----------------------------------------------
  共通
------------------------------------------------**/
/* これは必要 */
* {  box-sizing: border-box; } 

body {
    font-family: "Zen Kaku Gothic New", sans-serif;
    color: #5D5D5D;
    background-color: #fff;
    line-height: 1.6;
    overflow-x: hidden; /* 横方向のはみ出しを隠す */
}

html {
  scroll-behavior: smooth; /* スルスル〜っと優しくスクロールする魔法の言葉 */
}

/* スマホでヘッダーの高さが変わる場合は、メディアクエリ内で調整 */
@media screen and (max-width: 640px) {
  html {
    scroll-padding-top: 64px; /* スマホのヘッダーの高さに合わせる */
  }
}


a { text-decoration: none; 
color: inherit; /* 親要素の色を引き継ぐ（勝手に青や赤にならないようにする） */
}


/* --- 共通設定（基本は見せる　＜br＞タグにかけている） --- */
.pc-only {
  display: inline; /* 通常（PC）は改行として機能させる */
}

.sp-only {
  display: none;
}

/* --- スマホ版の設定（メディアクエリの中）＜br＞タグにかけている --- */
@media screen and (max-width: 640px) {
  .pc-only {
    display: none; /* スマホの時だけ改行を無効化する */
  }
}

/* セクションの共通余白 */
.message, .service, .member, .recruit, .work {
	padding: 100px 0 100px 0;
}


/* CTAだけ別の余白 */
.cta {
	padding: 50px 0;
}

/* --- 共通：セクションの見出しエリア --- */

img {
  display: flex;  /* 画像の横方向は自動調整されるが、縦方向は弱いので調整のために入れているcss */
}

/* コンテンツ幅を制限し、横並びにする */
.container {
  max-width: 1000px;
  width: 100%;
  margin: 0 auto;
  padding: 0 24px;
  justify-content: space-between;
  align-items: center; /* 垂直方向中央 */
}

/* ------スマホ＆タブレット共通）------------- */
@media screen and (max-width: 640px) {
.container {  
  max-width: 640px; 
}


/* セクションの共通余白 */
.message, .service, .member, .recruit, .work {
	padding: 50px 0 80px 0;
}

/* CTAだけ別の余白 */
.cta {
	padding: 50px 0 80px 0;
}

}


/* --- 共通：ボタン --- */
/* 応募ボタンを包んでいるdiv */
.btn-wrap{
  text-align: center; /* btnをinline-blockでかいているため  blockでbtnを作る場合はmargin 0 auto*/
  margin-top: 40px; 
}


/* 共通：応募ボタン */
.btn-entry {
    display: inline-block;
    
    padding: 10px 24px;
    font-size: 16px;
    letter-spacing: 0.1em;
    background: #c96a48;
    color: #ffffff;
    text-align: center;
    border-radius: 32px;
    text-decoration: none;
    /*transition: all 0.3s ease; /* ホバー時の動きを滑らかに */
    transition: filter 0.3s ease;
  filter: brightness(1); /* 通常時 */
}

/* マウスを載せたとき */
.btn-entry:hover {  
  filter: brightness(1.1); /* ホバー時に1.2倍明るくする */
  color: #ffffff
  /* border: 2px solid #c96a48;   線の太さと色 */
}



/* 共通：ボタン１のデザイン（「エントリー」ボタン以外） */
.btn-more {
  display: inline-block;
  padding: 10px 30px;       /* 上下と左右の余白でサイズを調整 */
  font-size: 14px;
  letter-spacing: 0.1em;
  text-decoration: none;
  color: #5D5D5D;
  
  /* 楕円形にするための設定 */
  border: 1px solid #8C867E;   /* 線の太さと色 */
  background-color: transparent; /* 背景透明 */
  border-radius: 32px;      /* ここを大きくすると楕円になります */
  transition: all 0.3s ease; /* ホバー時の動きを滑らかに */
}

/* マウスを載せたとき */
.btn-more:hover {
  background-color: #C19A6B;   /* 背景を塗りつぶす */
  color: #fff;              /* 文字を白くする */
}


/* --- 共通：見出し--- */

/* セクションはじめの小見出し・見出し・説明文
「事業について」「メンバー紹介」「募集職種」「働く環境」 */

/* セクション小見出し見出しテキストを囲んでいるdiv */
.section-title-area {
  text-align: left;/* 文字をに寄せる */
  margin-bottom: 50px; /* 下のカードとの隙間 */
}


/* 共通：セクション小見出し */
.section-sub-title {
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 0.1em;
    margin-bottom: 24px;
}

.section-sub-title span {
    display: inline-block;
    position: relative;
    padding: 0 .4em .2em; /* 文字の周りに少し余白を作る */
    color: #5d5d5d;
}

/* 共通：文字の下だけに色をつける線（疑似要素） */
.section-sub-title span::before {
    position: absolute;
    bottom: -3px; /* 親の border-bottom と位置を合わせる */
    left: 0;
    width: 100%;
    height: 3px;
    background-color: #d28366; 
    content: '';
}


/* 共通：セクション見出し */
.section-main-title {
  font-size: 40px;
  font-weight: 500;
  line-height: 1.2;
  margin-bottom: 20px;
  
}

/* 共通：見出しの下の説明文 */
.section-lead-text {
  font-size: 18px;
  line-height: 1.8;
}

/* -----------スマホ版-------------- */
@media screen and (max-width: 640px) {
.section-main-title {
  font-size: 24px; /* スマホでは文字をさらに小さく */
}

.section-lead-text {
  font-size: 16px;
}
}


/* ----共通：あしらい---- */

/* --- 共通：あしらい＞セクションの頭に波を入れるパーツ --- */
.wave-top {
  position: relative; /* 波を配置するための基準になります */
}

.wave-top::before {
  content: ""; /* これを必ずいれることで表示される */
  position: absolute;
  top: -82px;       /* 画像の高さの半分くらい上に浮かせる */
  left: 0;
  width: 100%;
  height: 164px;    /* 画像の高さ  142だった*/
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center top;
  z-index: 1;
  pointer-events: none; /* 波がボタンなどの邪魔をしないようにする */
}


/* ---共通：あしらい＞ 輪っかの基本設定（共通） --- */
/* すべてのwrap要素を「輪っかの基準」にする */
.message-wrap, 
.service-wrap, 
.member-wrap, 
.recruit-wrap, 
.work-wrap {
  position: relative;
  width: 100%;
  /*z-index: 1; /* 親に 1 を振る */
  
  /* 輪っかを画面端からはみ出させたいので hidden は書かない */
}

.ring-deco {
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  z-index: 10;           /* 波（波の 1 より大きくする）やコンテンツより背面へ */
  pointer-events: none; /* マウス反応を無効化 */
  opacity: 0.7;         /* カンプに合わせて透明度を調整 */

/* SVG化に伴い初期値を設定 */
  width: 50px;  /*デフォルトサイズ */
  height: auto;  /*高さは自動計算に任せる  ？*/

  /* 最初は隠しておく */
  opacity: 0;
  transform: translateY(30px); /* 30px下に下げておく */
  transition: opacity 1.2s, transform 1.2s; /* 1.2秒かけて変化させる */
}

/* --- JSでこのクラスがついたら表示される --- */
.ring-deco.is-show {
  opacity: 0.7; /* 元の透明度に戻す */
  transform: translateY(0); /* 元の高さに戻す */
}

/* 画像の指定  */
.ring-right { 
  background-image: url(../images/ring1.svg); 
  height: 350px;
}
.ring-left  { 
  background-image: url(../images/ring2.svg); 
  height: 350px;
}


/** -----------------------------------------------
PC :  画面の横幅が641px以上
------------------------------------------------**/
/** -----------------------------------------------
サイドバー
------------------------------------------------**/

.sidebar {
	position: fixed; /* absoluteからfixedに変更：スクロールに追従させるため */
	top: 0; 
	left: 0;
	width: 200px;
	height: 100vh;
	background: #fff;
	padding: 40px 24px;
	z-index: 1000;
}

/* スクロール後にJSでつけるクラス（PC用） */
.sidebar.hidden {
  display: none !important;/* パッと消す設定 */
}

.sidebar.open {
  /* サイドバーが消えて⇒ボタンが出現⇒ボタンをクリックするとメニュー表示
   hidden クラスの display: none を上書き */
    display: block !important;

    width: 250px;             /* メニューの幅をコンパクトに */
    height: auto;             /* 高さを中身に合わせる */
    top: 90px;                /* ボタンの下あたりに配置 */
    left: auto;               /* 左固定を解除 */
    right: 25px;              /* 右端から浮かせる */
    padding: 30px;
    border-radius: 10px;      /* 角を丸く */
    box-shadow: 0 10px 30px rgba(0,0,0,0.1); /* 浮いている感じを出す影 */
    z-index: 2000;           /* 1300のボタンより上に */
    background: rgba(255, 255, 255, 0.98); /* 背景を白くして下のコンテンツを隠す */
  }

  .sidebar.open .logo.pc-only {
    width: 70%;
    height: auto;
    display: flex;
    margin: 0 auto;
    margin-bottom: 25px;
  }

/* PC版メニュー内の配置調整 */
.sidebar.open .nav-list li {
  font-size: 16px;
  text-align: center;
  margin-bottom: 12px;
}

/* PC版サイドバーのリンクにホバーしたときの設定 */
.nav-list li a {
  transition: 0.3s; /* 色の変化をふわっとさせる */
}

.nav-list li a:hover {
  color: #C19A6B !important; /* スマホ版と同じアクセントカラー */
  opacity: 0.7;   /* 少し透けさせる */
  
}

/* PCサイドバー・スマホメニュー共通：文字に触れた時の色 */
.sidebar.open .nav-list li a:hover {
  color: #C19A6B !important; /* 強制的にアクセントカラーにする */
  opacity: 0.7;
  transition: 0.3s;
}

/* 【重要】スマホは「マウスをのせる（hover）」がないので、
   指で触れた瞬間（active）にも色が変わるようにします */
.sidebar .nav-list li a:active {
  color: #C19A6B !important;
}


/* ロゴとナビのスタイル（PC版） */
.logo.pc-only {
  display: flex; /* 縦にするための設定 */
  flex-direction: column; /* 縦に並べる */
  align-items: center; /* ロゴと文字の上下中央を揃える */
  gap: 0px; /* ロゴと文字の間のすき間 */
  margin-bottom: 24px;
}


/* ロゴ画像のサイズ調整 */
.logo.pc-only img {
	width: 100%; 
  height: auto;
  margin-bottom: 0px;
}

.logo span {
  font-size: 13px;
  line-height: 1.0; /* ←ここが 0% だけど、1.0 などにすると安定する */
  font-weight: 600;
  color: #C19A6B;
  letter-spacing: 0.1em;
  /* 左揃えを強調したい場合は margin-left を少しつけても綺麗 */
  padding-left: 2px;
}



/* メニュー項目 */
.nav-list {
	list-style: none;
  padding: 0;
  
}

.nav-list li {
	font-size: 16px;
  text-align: center;
	margin: 0 0 20px 0;
	color: #5D5D5D; 
	cursor: pointer;
	letter-spacing: 0.1em;
}


/** -----------------------------------------------
ハンバーガーメニュー
------------------------------------------------**/

.hamburger {
    position: fixed;
    top: 25px;
    right: 25px;
    width: 54px;
    height: 54px;
    background: #C19A6B;
    border-radius: 50%;
    display: none;      /* 1. 最初は消しておく */
    opacity: 1 !important; /* 2. 透明度は1（見える状態）にする */
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 1300;
    cursor: pointer; 
}

/* JSで .visible がついた瞬間に「表示」に切り替える */
.hamburger.visible {
  display: flex !important; /* display: none を打ち消す */
}

.bar {
	width: 24px;
    height: 2px;
    background: #fff;
    margin: 3px 0;
    transition: 0.3s;
}

/* --- ボタンが「active」になった時の線の動きメニューボタン×にする --- */

/* 1本目：45度回転して右下がりに */
.hamburger.active .bar:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}

/* 2本目：真ん中の線は消す */
.hamburger.active .bar:nth-child(2) {
  opacity: 0;
}

/* 3本目：-45度回転して右上がりに */
.hamburger.active .bar:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}


/** -----------------------------------------------
  PC兼SP用ヘッダー (ロゴがある白い帯部分)　SPと書いてあるけど共用
------------------------------------------------**/
.sp-logo {
  display: none; 
}

@media screen and (max-width: 640px) {
  .sp-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 64px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 32px;
    z-index: 2100;
    /*  SP用のサイドバー2000よりも大きくした */
    background: rgba(255, 255, 255, 0.9);
  }

  .sp-logo { 
    display: flex; 
    align-items: center; 
    gap: 10px; 
    line-height: 1;      /* ★重要：文字の上下余白をリセット */
  }
  .sp-logo img { 
    height: 16px; 
    width: auto;
    display: block;      /* 余計な隙間を消す */
  }
  .sp-logo span {
    font-size: 14px;
    font-weight: bold;
    color: #C19A6B;
    letter-spacing: 0.2em;
    /* margin-bottom: 2px;    /* ←効かない・・なぜ */
    display: block;
  }

  /* ハンバーガーボタン：ヘッダー内に収める設定 */
  .hamburger {
    position: static; 
    display: flex;
    width: 44px;
    height: 44px;
    opacity: 1 !important;
  }
}

/** -----------------------------------------------
  スマホ・展開時メニュー (共通化したsidebarを流用)
------------------------------------------------**/
@media screen and (max-width: 640px) {
  .sidebar {
    position: fixed; /* 念のため固定を再指定 */
    width: 100vw !important; /* 画面の横幅いっぱい */
    height: 100vh !important; /* 画面の高さいっぱい */
    left: 0;
    top: 0;

    /* ここがポイント！ */
    padding-top: 128px !important; /* ヘッダーの高さ分（64px）だけ中身を下げる */
    
    transform: translateX(100%); /* 最初は右に完全に隠す */
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: transform 0.3s ease; /* スライドの速度 */
    padding: 0;
    z-index: 2000;
    background: #fff !important; /* 背景を白で塗りつぶす */
    border-radius: 0; /* PC版の角丸をリセット */
    box-shadow: none; /* PC版の影をリセット */
  }

  /* メニューが開いた時（ここが重要！） */
  .sidebar.open {
    transform: translateX(0) !important; /* 画面左端に合わせる */
    width: 100vw !important; /* 開いた時も100%を強制 */
    right: 0 !important; /* PC版の right: 25px をリセット */
    top: 0 !important;   /* PC版の top: 90px をリセット */
  }

  .sidebar .pc-only { 
    display: none !important;
  } /* サイドバー内のロゴは隠す */
  
  .sidebar .nav-list li {
    font-size: 20px;
    text-align: center;
    margin-bottom: 30px;
  }
}


/* * ----------------------------------------------- */
/* メインビジュアル */
/* * ----------------------------------------------- */

.mainvisual{
	margin-left: 200px;
  height: 100vh;
  background-image: url(../images/mv_pc.webp);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;

	/* 配置のルール*/
	display: flex;
	/* 垂直方向：下寄せ */
  align-items: flex-end;
	/* 水平方向：左寄せ */
  justify-content: flex-start;
	/* 画面の端にピタッとくっつかないように余白を作る */
	padding-left: 50px;   /* 左からの距離 */
  padding-bottom: 50px;  /* 下からの距離 */
}

.mainvisual-copy {
	/* Shippori Mincho で上書き */
  font-family: "Shippori Mincho", serif;
	color: #fff; 
	font-size: 42px; 
	font-weight: 600;
	line-height: 1.6;
	text-align:left; 
	text-shadow: 0 2px 10px rgba(0,0,0,0.3); 
}


/* -------スマホ版メインビジュアル ---------- */
@media screen and (max-width: 640px) {
.mainvisual {
    margin-left: 0 !important;
    width: 100%;
    /* 写真全体を見せるための設定 */
    height: auto;           /* 高さを固定せず、画像に合わせる */
    aspect-ratio: 3 / 2;    /* ★重要：写真の縦横比（PC版の比率）に合わせる */
    background-image: url(../images/mv_pc.webp);
    background-position: center top;
    background-repeat: no-repeat;

    /* メインビジュアルがヘッダーに被らないよう余白を追加 */
    margin-top: 64px; /* ヘッダーの高さ分下げる */
    
    /* 文字の位置調整 */
    display: flex;
    align-items: flex-end;
    padding: 40px;

  }

  .mainvisual-copy {
    font-size: 22px;        /* 写真が小さくなる分、文字も少し小さく調整 */
    text-shadow: 0 1px 5px rgba(0,0,0,0.8); /* 写真の上に重なるので影を強く */
  }
}

/** ----------------------------------------------- */
/* 「世界をつつむ」メッセージ */
/** ----------------------------------------------- */
/* ★メッセージ★外側のID（アンカー用）とセクション全体の背景 */
.message {
	background-color: #ffffff;
}

.message-wrap {
	width: 100%;
	position: relative;
} 


/* FVとメッセージの間（左側）固有の位置・サイズを指定 */
.ring-fv-msg {
  top: -190px;    /* メッセージセクションの少し上に浮かせる */
  right: 4%;    /* 画面右端からの位置 */
  width: 24vw;
  max-width: 350px; /* 大きくなりすぎ防止 */
  transform: rotate(-10deg);
  /* opacity: 0.6; */
}

/* コンテンツ幅を制限し、横並びにする */
.message .container {
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center; /* 垂直方向中央 */
  gap: 20px;
}

/* 中央のテキストエリア */
.message-content {
  text-align: justify; 
  flex: 0 0 45%; /* 真ん中のテキスト幅 */
  padding: 20px;
}

.message-title {
  font-family: "Shippori Mincho", serif;
  font-size: 24px;
  font-weight: 500;
  letter-spacing: 0.15em;
  margin-bottom: 1.5em;
}

.message-text {
  font-family: "Shippori Mincho", serif;
  font-size: 16px;
  line-height: 2.0; /* 行間を広くして読みやすく */
  margin-bottom: 1.5em;
  white-space: pre-wrap; /* 改行を反映させる場合 */
}

/* 一番最後の文章だけは、下の余白をいらないようにする設定 */
.message-text:last-child {
  margin-bottom: 0;
}


/* 左右の画像ブロック（クラス名をHTMLに合わせて調整） */
.message-image-left,
.message-image-right {
  flex: 0 0 25%; /* 画像の横幅 */
}

.message-image-left img,
.message-image-right img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.1); /* 軽い影で立体感を出す */
}

/* デザイン上の「ズレ」を演出 */
.message-image-left {
  align-self: flex-start; /* 左画像は上に寄せる */
  margin-top: -30px;
}

.message-image-right {
  align-self: flex-end; /* 右画像は下に寄せる */
  margin-top: 100px;    /* 右側を大きく下げる */
}

/* ---スマホ版メッセージセクション--- */
/* メッセージ下の写真2枚を横に並べる */
@media screen and (max-width: 640px) {
  .message .container {
    display: flex;
    flex-direction: column; /* 縦に並べる */
    align-items: center;
  }

  /* 1. テキストエリアを一番上に固定 */
  .message-content {
    order: 1; /* 順番を1番目に */
    width: 100%;
    margin-bottom: 30px; /* 写真との間隔 */
  }

  /* 2. 写真2枚を包むための設定 */
  /* order: 2 にすることで、HTMLの記述順に関わらずテキストの下に来ます */
  .message-image-left,
  .message-image-right {
    order: 2;
    width: 48%; /* 重なりを考慮して少し大きく */
    flex: 0 0 52%;
  }

  /* 3. 上下にずらして重ねる（傾けなし） */
  .message-image-left {
    z-index: 2;
    /* そのままでも良いですが、少し右に寄せるとバランスが良いです */
    transform: translateX(10px); 
  }

  .message-image-right {
    z-index: 1;
    /* 左に40px寄せて重ね、下に40pxずらす */
    transform: translateX(-20px) translateY(25px);
    margin-top: -45%;
  }

  /* 写真の仕上げ：カンプのような白枠と影 */
  .message-image-left img,
  .message-image-right img {
    border-radius: 8px;
    box-shadow: 0 8px 20px rgba(0,0,0,0.1);
  }

  .message-title {
  font-size: 20px;
}
}




/** -----------------------------------------------
事業について（Service）
------------------------------------------------**/
/* --- 事業セクション固有（カードなど）のスタイル --- */
/* 事業について：波の画像を指定 */
.service.wave-top::before {
  background-image: url(../images/wave-service-work.svg);
}

.service {
  position: relative;
  background-color: #F8F4E9; /* 柔らかなベージュ背景 */
}

/* --- 個別設定：messageとserviceの間（左側） --- */
.service-wrap {
  position: relative;   /* 輪っかの位置の基準にする */
 /* overflow: visible;    /* 輪っかが画面外にはみ出して横スクロールが出るのを防ぐ */
  /* overflow: hidden; を一旦外すか、調整します */
  /* 波からはみ出して見えるようにしたい場合は、ここを visible にする必要があります */
} 

.ring-msg-srv {
  top: -320px;         /* サービスセクションの少し上（メッセージとの間）に配置 */
  left: 4%;        /* 画面左端から少しはみ出させる */
  width: 24vw;        /* 大きさを指定 */
  max-width: 350px; /* 大きくなりすぎ防止 */
  transform: rotate(-15deg); /* ★ここで角度をマイナス15度回転！ */
}


/* --- 3つの事業カード全体 --- */
.service-grid {
  width:75%; /* 親の要素containerの75％と考えた */
  display: flex;
  flex-direction: column; /* アイテムを縦に並べる */
  justify-content: center;
  /* align-items: center;  ←入れたけどセンターにならない */
  gap: 30px; /* カード同士の縦の間隔 */
  margin-bottom: 60px;
  margin: 0 auto; /* containerの中で真ん中 */
}

/* --- カード1枚のラップ --- */
.service-item {
  display: flex;
  align-items: center; /* テキストと画像を垂直中央で揃える */
  position: relative;
  width: 100%;
  justify-content: center; /* .service-gridの中で真ん中  margin: 0 auto;ではない*/
}

/* --- 輪っかの飾りについて　.service-item　を基準にしている --- */
/* --- 共通部分に基本設定の記載あり --- */
.ring-srv-01 {
  top: 100px;
  right: -36%;
  width: 18vw;  /* ここで ring_1 のサイズを小さく調整 */
  max-width: 350px;
  transform: rotate(20deg); /* 角度を20度変える */
}

/* --- セクション見出しテキスト欄---  */

.service-text{    /* 追加してみた */
  width: 50%; /* ボックスの横幅を全体の4分の3に */
  background: #fff;
  padding: 25px 25px 30px 25px; /* 右側のパディングを広くして画像との重なりを作る */
  border-radius: 20px; /* 柔らかな角丸 */
  box-shadow: 0 4px 15px rgba(0,0,0,0.02); /* 薄い影で浮かせる */
  z-index: 2; /* 画像より上に配置 */
  }

.service-number {
  font-family: "Jost", serif;
  font-size: 36px;
  font-weight: 400;
  color: #c09d7d;
  line-height: 1;
  margin-bottom: 15px;
}

.service-item-title {
  font-size: 24px;
  font-weight: 600;
  margin-bottom: 15px;
}

.service-item-text {
  font-size: 14px;
  line-height: 1.8;
}

/* --- 右側：画像ボックス --- */
.service-img-box {
  width: 45%; /* 画像の幅 */
  margin-left: -2%; /* 左にマイナス余白を入れてテキストボックスと重ねる */
  z-index: 1; /* テキストボックスの下に重ねる */
}

.service-img-box img {
  width: 100%;
  height: auto;
  border-radius: 20px; /* 画像の角を丸くする */
  display: block;
}


/* -------------------------------------------
  2. レイアウトの変更（スマホ＆タブレット共通）
  「横並び」を「縦並び」に変えて、幅を100%にする
------------------------------------------- */
@media screen and (max-width: 640px) {
  /* 1. カード全体の並びと余白 */
  .service-grid {
    width: 90%; /* スマホでは幅を広くとる */
    gap: 40px;
  }

  /* 2. カード1枚の設定：ここが重要！ */
  .service-item {
    flex-direction: column; /* 事業内容（Service）のカードを縦並びに */
    background: #fff;       /* カード全体を白背景に */
    border-radius: 24px;    /* カンプ通りの大きな角丸 */
    padding: 24px;          /* 内側の余白 */
    align-items: flex-start; /* 左寄せ */
  }

  /* 3. テキストボックスの設定（PC版の重なりをリセット） */
  .service-text {
    width: 100%;            /* 幅いっぱい */
    background: transparent; /* 背景を透明にしてカードの白に任せる */
    padding: 0;             /* 余白リセット */
    box-shadow: none;       /* 影リセット */
    display: flex;          /* 中身（番号・タイトル・本文）を制御 */
    flex-direction: column;
  }

  /* 4. 並び替え：タイトルを画像の上に、本文を画像の下に　でもうまくいってない */

  .service-number { order: 1; margin-bottom: 8px; }
  .service-item-title { order: 2; margin-bottom: 20px; }
  .service-item-text { order: 3; }
  .service-img-box { order: 4; width: 100%; margin:0 auto;}
  

  /* 画像の表示調整 */
  .service-img-box img {
    border-radius: 16px;
    width: 100%;
    aspect-ratio: 4 / 3; /* 写真の縦横比を変えている */
    object-fit: cover;
    margin-top: 20px;
  }

  .service-item-title {
  font-size: 20px;
}
}


/** -----------------------------------------------
メンバー紹介(member)
------------------------------------------------**/
/* 曲線をセクションの間にいれる */
/* 募集職種：波の画像を指定 */
.member.wave-top::before {
  background-image: url(../images/wave-member.svg); /* 適切な画像パスにしてください */
}

.member {
  position: relative;
  background-color: #FAF9F6 ;
}

/* --- 輪っかのあしらい --- */
/* メンバーセクションの親要素を基準にする */
/* --- 共通部分に基本設定の記載あり --- */
.member-wrap {
  position: relative;
  /* overflow は visible のままでOKです */
}

/* 4. serviceとmemberの間（左側） */
.ring-srv-mem {
  top: -310px;      /* 前のセクションとの境界線あたり */
  left: 4%;
  width: 24vw;
  max-width: 350px;
  transform: rotate(10deg);
  opacity: 0.8;    /* 背景色に合わせて少し濃くする調整 */
}


/* ---メンバーの一覧--- */

.member-box {
  display: flex;
  flex-direction: column; /* 要素を縦方向に並べる */
  gap: 20px; /* 縦方向の要素間に20pxの間隔を空ける */
  }


/* 各メンバーのカード（横並びのルールを明確にする） */
.member-item {
  display: flex;
  justify-content: center; /* 真ん中に寄せる */
  align-items: center;           /* 垂直方向を中央に */
  gap: 30px;
  background-image: url(../images/member_card.png);
  background-size: cover;
  background-position: center;
  border-radius: 30px;
  padding: 40px 60px;                 /* 余白をしっかり取る */
  margin-bottom: 20px;
}

/* テキストエリアの調整 */
.member-text {
  flex: 0 1 500px; /* 幅を持たせることでテキストの頭がビシッと揃う */
  text-align: left;
}

/* 画像エリアの調整 */
.member-img-box {
  flex: 0 0 180px;     /* 画像の横幅を固定する（例：200px） */
}

.member-img-box img {
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 50%;  /* 写真を丸くしたい場合は追加 */
}

/* ここだけ特別に一行コピーが入っている */
.seciton-main-title-subcopy {
  font-size: 24px;
  font-weight: 500;
  line-height: 1.4;
  margin-bottom: 20px;
}

/* メンバーのセクション見出しを真ん中にする */
.member-wrap .section-title-area { 
  text-align: center; 
}

.member-item-title {
  font-family: "Shippori Mincho", serif; 
	font-size: 24px; 
	font-weight: 600;
	line-height: 1.6;
}

/* 名前と役職：下の余白を削ってボタンを近づける */
.member-item-text {
  font-size: 16px;
  margin-top: 8px;
}


/* 「記事を読む」ボタン関係*/
/* ０　右寄せにするための親要素 */
.btn-more-small {
  text-align: right; /* ブロック要素を右に寄せる */
  margin-top: 8px;
  margin-right: 20px;
}

/* １　リンクボタン本体 */
.member-link {
  display: inline-flex; /* 中身を横並びにしつつ、ボタン自体は右に寄る */
  align-items: center;
  text-decoration: none; /* リンクの下線を消す */
  color: #5D5D5D;        /* 文字色 */
  transition: opacity 0.3s;
}

.member-link:hover {
  opacity: 0.7; /* ホバー時に少し透明にしてクリック感を出す */
}

/* ２「記事を読む」テキスト */
.member-link span {
  font-size: 14px;
  margin-right: 4px; /* 文字と矢印の間の隙間 */
}

/* 矢印を包む枠（円の設定を消して、サイズだけ確保する） */
.arrow_r {
  display: inline-block;
  width: 10px;          /* 矢印の幅に合わせて調整 */
  height: 10px;         /* 矢印の高さに合わせて調整 */
  position: relative;
  margin-left: 2px;     /* テキストとの距離を微調整 */
}

/* 「く」の字の部分 */
.arrow_r::after {
  content: "";
  display: block;
  width: 6px;           /* 矢印の大きさ */
  height: 6px;          /* 矢印の大きさ */
  border-top: 2px solid #5D5D5D;   /* 線の太さと色 */
  border-right: 2px solid #5D5D5D; /* 線の太さと色 */
  transform: rotate(45deg);        /* 45度回転させて「>」にする */
  position: absolute;
  top: 50%;
  left: 0;
  transform-origin: center;
  margin-top: -3px;     /* 上下中央に見えるように微調整 */
}

/* -------スマホ版メンバー紹介 ---------- */
@media screen and (max-width: 640px) {
.member-wrap .section-title-area { 
  text-align: left; 
}
.seciton-main-title-subcopy {
  font-size: 20px; 
  font-weight: 600;
}

.member-box{  
  gap: 0px; /* paddingやマージンがあるので */
  }

/* 各メンバーのカード（横並びのルールを明確にする） */
.member-item {
  display: flex;
  flex-direction: column-reverse;
  gap: 0px; /* member-boxs でgap 20pxあるので */
  padding: 30px 20px;                 /* 余白をしっかり取る */
}

/* テキストエリアの調整 */
.member-text {
  width: 100%;
  flex: auto;    
}

.member-item-title {
  font-size: 20px;
}

/* 画像エリアの調整 */
.member-img-box {
  flex: 0 0 180px;     /* 画像の横幅を固定する（例：200px） */
  width: 180px;
}
}


/** -----------------------------------------------
募集職種
------------------------------------------------**/
/* 募集職種：波の画像を指定 */
.recruit.wave-top::before {
  background-image: url(../images/wave-recruit.svg);
}

.recruit {
	background-color: #ffffff;
}

/* --- 個別設定：memberとrecruitの間（左側） --- */
.recruit-wrap {
  position: relative;   /* 輪っかの位置の基準にする */
  overflow: visible;    /* 輪っかが画面外にはみ出して横スクロールが出るのを防ぐ */
  /* overflow: hidden; を一旦外すか、調整します */
  /* 波からはみ出して見えるようにしたい場合は、ここを visible にする必要があります */
}

/* 募集職種セクション専用の輪っか位置設定 */
.ring-rec-right {
  top: -240px;       /* 「募集職種」の見出しの横あたりにくるよう調整 */
  right: 3%;    /* 画面右端から少しはみ出させる */
  width: 24vw;     /* PCサイズでの大きさ */
  max-width: 300px;
  transform: rotate(15deg); /* お好みの角度に */
  opacity: 0.6;     /* 控えめな透明度 */
}

.recruit-list {
  padding-left: 0;
  list-style: none;
  width: 600px;
  margin: 0 auto;
}

.recruit-list-position {
  box-sizing: border-box;
  cursor: pointer;
  font-size: 16px;
  text-align: left;
  width: 100%;
  margin-bottom: 8px;
}

/* 募集職種のリンク設定 */
.position-link {
  display: flex;
  align-items: center;
  position: relative;
  width: 100%;
  padding: 20px 40px 20px 32px; /* 上・右・下・左 の順 */
  background-color: #fff;
  color: #5D5D5D;
  text-decoration: none;
  line-height: 1.3;
  box-sizing: border-box;
  border: 1px solid #ccc; /* 上下左右まとめて線をつける */
  border-radius: 8px;
  transition: all 0.3s ease;
  overflow: hidden;
}

/* ホバー時の変化（お好みで追加） */
.position-link:hover {
  background-color: #f9f9f9;
  opacity: 0.8;
}

/* 2. 左端の縦線（::before） */
.position-link::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;          /* 上下中央に配置 */
  width: 8px;            /* 線の太さ */
  height: 100%;           /* 線の長さ */
  background-color: #CBAB84; /* TSUTSUMUのアクセントカラー */
}

/* 矢印のデザイン（::after 疑似要素） */
.position-link::after {
  content: '';
  position: absolute;
  top: 50%;/* 上から50%の位置 */
  /* 右端からの位置 */
    right: 25px;
  /* 矢印のサイズ */            
  width: 8px;
  /* 矢印のサイズ */            
  height: 8px;            
  border-top: 2px solid #b9b8b8;
  border-right: 2px solid #b9b8b8;
  /* 真ん中に寄せてから45度回転 */
  transform: translateY(-50%) rotate(45deg); 
}

@media screen and (max-width: 640px) {
    .position-link {
    padding: 12px 32px 12px 24px; /* スマホでは少しだけコンパクトにするとスッキリします */
  }
}

/** -----------------------------------------------
募集職種(recruit)ここまで
------------------------------------------------**/

/** -----------------------------------------------
働く環境
------------------------------------------------**/

/* 募集職種：波の画像を指定 */
.work.wave-top::before {
  background-image: url(../images/wave-service-work.svg);
}

.work {
  background-color: #F8F4E9;
}

/* 働く環境セクションの全体枠 */
.work-wrap {
  position: relative;
  /* overflow は指定せず、はみ出しは body の overflow-x: hidden で制御しましょう */
}

/* 5. workセクション専用の輪っか位置設定 */
.ring-work-right {
  top: -164px;        /* 福利厚生カードの横あたりに配置 */
  right: 12%;     /* 画面右端から少し大胆にはみ出させる */
  width: 20vw;      /* 少し大きめにしてゆったり感を出す */
  max-width: 350px;
  transform: rotate(-10deg); /* 逆向きに少し傾けてリズムをつけます */
  opacity: 0.5;      /* 背景色に馴染むよう、少し薄めに */
}

/* --- 福利厚生３つ（親要素） --- */
.col-3 {
  display: grid; /* flexからgridに変更 */
  grid-template-columns: repeat(3, 1fr); /* 3等分 */
  gap: 20px; /* 隙間 */
  margin-bottom: 48px;
}

/* 子要素の .work-item から width: calc(...) は不要 */
.work-item {
  background: #fff;
  display: flex;
  flex-direction: column;
}

/* カードの中の画像がはみ出さないように固定 */
.work-item img {
  width: 100%;
  height: auto;
  display: block; /* display: flex; から block に変更 */
}

/* カードの中の文字部分 */
.work-text {
  width: 100%; 
  padding: 24px; /* 余白を上下左右均等にすると綺麗です */
}

.work-item-title {
  font-size: 20px;
  font-weight: 600;
  line-height: 1.8;
}

.work-item-text {
  font-size: 16px;
  line-height: 1.5;
}



/* --- 育児中の社員の1日 (col-2) --- */
.col-2 {
  display: grid;
  /* PCでは 1:1 の比率で2列に並べる */
  grid-template-columns: 1fr 1fr; 
  background: #fff;
  border-radius: 20px; /* カード全体の角丸 */
  overflow: hidden;    /* 画像が角丸からはみ出さないように */
  margin-top: 60px;
}

/* 左側の画像エリア */
.item-1 img {
  width: 100%;
  height: 100%;       /* 親の高さに合わせる */
  object-fit: cover;  /* 画像を歪ませずに枠いっぱいに広げる */
  display: block;
}

/* 右側のテキストエリア */
.item-2 {
  display: flex;
  flex-direction: column;
  justify-content: center; /* 中身を上下中央に */
  padding: 40px;          /* 内側の余白をたっぷり取る */
}

/* ボタンの配置調整 */
.item-2 .btn-wrap {
  text-align: left;       /* PCではテキストに合わせて左寄せ */
  margin-top: 20px;
}


.work-oneday-textcard {
  padding: 36px;
}
.item-1 { 
  width: 100%;
  display: flex;  
  }


.work-oneday-title {
  font-size: 32px;
  font-weight: 500;
  line-height: 1.2;
  margin-bottom: 24px;
}

.work-oneday-subtitle {
  font-size: 18px;
  font-weight: 500;
  line-height: 1.8;
  margin-bottom: 24px;
  text-align: center;
}

.work-oneday-text {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  margin-bottom: 24px;
}

.item-2 .btn-wrap {
  text-align: right;
  margin: 0;
  padding: 0 36px 0 0;
}

.item-2 .btn-more {
  font-size: 14px;
}


/* --- スマホ版 働く環境の設定 --- */
@media screen and (max-width: 640px) {
  .col-3 {
    /* スマホでは「1列」にするだけで、画像が上・テキストが下になります */
    grid-template-columns: 1fr; 
  }
  
  .col-2 {
    /* スマホでは「1列」にするだけで、画像が上・テキストが下になります */
    grid-template-columns: 1fr; 
  }

  .work-oneday-textcard {
  padding: 0;
}

  .item-2 {
    padding: 24px;   /* スマホでは余白を少し詰める */
    text-align: left;   /* スマホでは中央寄せが綺麗です */
  }

  .item-2 .btn-wrap {
    text-align: center;   /* ボタンも中央へ */
    padding: 0;
  }

  .work-oneday-title {
  font-size: 28px;
}

.work-oneday-subtitle {
  text-align: left;  
}
}
/** -----------------------------------------------
働く環境ここまで
------------------------------------------------**/

/** -----------------------------------------------
CTAセクション
------------------------------------------------**/
.cta {
  /* 背景：中央が薄く、外側が濃い赤の円形グラデーション */
  background: radial-gradient(circle, #f3c4a9 0%, #E99E73 100%);
  text-align: center; /* 中身を中央寄せ */
  padding: 80px 0;  
  color: #ffffff;    /* セクション全体の文字を白にする */
}

.cta-textcard {
  max-width: 800px;
  margin: 0 auto;
} 

.cta-title {
  font-family: "Shippori Mincho", serif;
  font-size: 42px;
  font-weight: 600;
  color: #ffffff; 
  margin-bottom: 30px;
  letter-spacing: 0.1em;
  line-height: 1.4;
}

.cta-text1 {
  font-size: 24px;
  font-weight: 500;
  color: #ffffff;
  margin-bottom: 20px;
  line-height: 1.8;
}

.cta-text2 {
  font-size: 16px;
  /* 少し透明な白にして、補足説明としての強弱をつける */
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 40px;
  line-height: 1.8;
}

/* ボタンを横に並べる */
.cta-btn {
  display: flex;
  justify-content: center;
  gap: 20px;  
}

/* 共通設定 .btn-wrap の margin-top を打ち消す */
.cta .btn-wrap {
  margin-top: 0;
}

/* ボタンの幅を揃える */
.cta .btn-entry,
.cta .btn-more {
  padding-top : 18px;
  padding-bottom : 18px;
  min-width: 200px;
}


/* CTA内の「カジュアル面談」ボタン */
.cta .btn-more {
  color: #ffffff;
  border-color: #ffffff;
}

.cta .btn-more:hover {
  background-color: #ffffff;
  color: #c96a48;
}


/* --- スマホ版CTA --- */
@media screen and (max-width: 640px) {
  .cta-textcard {
    display: grid; /* Gridに切り替え */
    gap: 20px;
  }
 
  
  .cta-btn {
    display: contents; /* ★これ！中のボタンを親のGrid要素として扱えるようにします */
  }

  /* 順番を指定 (order) */
  .cta-title { order: 1; font-size: 36px;}
  .cta-text1 { order: 2; font-size: 20px;}  
  .entry-box { order: 3; } /* 応募するボタンを3番目に */  
  .cta-text2 { order: 4; margin: 40px 0 24px;}  
  .more-box { order: 5; }  /* カジュアル面談ボタンを5番目に */

  .sp-only {
    display: inline;  /* スマホの時だけ改行として復活させる */
  }


  /* スマホでのボタンの幅調整 */
  .btn-wrap {
    width: 100%;
    margin: 24px 0 0 0;
  }
}
/** -----------------------------------------------
CTAセクションここまで
------------------------------------------------**/

/** -----------------------------------------------
フッター
------------------------------------------------**/
.footer {
  background-color: #555555;
  padding: 80px 0 40px;
  color: #ffffff;
}

/* 1. PCでは「左ブロック」と「右ブロック」を横並びに */
.footer-content {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

/* 左側：ロゴとSNS */
.footer-logo-area {
  flex-direction: column;
  gap: 10px;
  display: flex;
  margin-bottom: 30px;
}

.footer-logo {
  width: 180px; /* ロゴサイズ調整 */
  height: auto;
}

.footer-logo-text {
  font-size: 18px;
  letter-spacing: 0.1em;
  color: #C19A6B;
}

.footer-sns {
  display: flex;
  gap: 15px;
}

.footer-sns img {
  width: 24px;
  filter: brightness(0) invert(1);
}

/* 右側：ナビゲーション */
.footer-right {
  text-align: right; /* 中の要素を右に寄せる */
}

/* 2. リストを横並びにする時は inline ではなく flex を使う！ */
.footer-nav-upper,
.footer-nav-lower {
  display: flex;        /* 横並びにする */
  justify-content: flex-end; /* 右端に寄せる */
  list-style: none;
  gap: 30px;            /* 項目間のスキマ */
  margin-bottom: 20px;
  padding: 0;
}

.footer-nav-lower {
  margin-bottom: 40px;
}

.footer-nav-upper a,
.footer-nav-lower a {
  color: #ffffff;
  font-size: 14px;
  white-space: nowrap; /* 勝手に改行されないように */
  transition: opacity 0.5s;  /* ホバー　0.3秒かけて変化させる */
}

/*ホバー　マウスを乗せた時の設定*/
.footer-nav-upper a:hover,
.footer-nav-lower a:hover {
  opacity: 0.6; /* 透過率60%にする */
}

.copyright {
  font-size: 12px;
  opacity: 0.6;
}

/* --- スマホ版フッター 個々だけ早めに切り替え--- */
@media screen and (max-width: 700px) {
  .footer {
    padding: 60px 0 30px;
  }

  /* 3. 左右に分かれていたものを「縦並び」にして中央寄せ */
  .footer-content {
    flex-direction: column;
    align-items: center; 
    text-align: center;
  }

  /* 4. ロゴエリアも縦並びにする */
  .footer-logo-area {
    flex-direction: column;
    gap: 10px;
  }

  /* 1. 右側ブロック（メニュー全体）の設定 */
  .footer-right {
    display: flex;
    justify-content: center; /* 全体を中央に寄せる */
    align-items: flex-start; /* ★重要：これで見出しの高さが揃います */
    gap: 20px;               /* 2列の間のスキマ（お好みで調整） */
    width: 100%;
    margin-top: 16px;
    flex-wrap: wrap;         /* コピーライトが下に落ちるように */
  }

  /* 2. upper と lower を左右に並べる設定 */
  .footer-nav-upper,
  .footer-nav-lower {
    display: flex;
    flex-direction: column; /* 各リストの中身（項目）は縦に並べる */
    align-items: flex-start; /* ★重要：各項目の行頭を左に揃える */
    padding: 0;
    margin: 0;
    width: auto;             /* 幅は中身に合わせる */
    min-width: 120px;        /* 列が潰れないように最低幅を確保 */
    gap: 12px;
  }

  /* 3. 左側のメニュー（upper）を少し左寄りに、右側（lower）を右寄りにしたい場合 */
  .footer-nav-upper {
    text-align: left;
    align-items: flex-start; /* 左列は左揃え */
    padding-left: 5%;       /* 中央から少し離す調整 */
  }
  
  .footer-nav-lower {
    text-align: left;
    align-items: flex-start; /* 右列も左揃え（カンプに合わせる） */
    padding-left: 5%;        /* 微調整 */
  }

  /* リスト内の各項目（li）の調整 */
  .footer-nav-upper li,
  .footer-nav-lower li {
    margin-bottom: 12px;     /* 行間のスキマ */
    text-align: left;
  }

  .footer-sns {
    justify-content: center;
    margin-bottom: 40px;
  }

  /* コピーライト */
  .copyright {
    width: 100%;
    text-align: center;
    margin-top: 12px;
    padding-bottom: 12px;
  }
}
/** -----------------------------------------------
フッター ここまで
------------------------------------------------**/


/** -----------------------------------------------
輪っかのあしらい　スマホ用
------------------------------------------------**/
@media screen and (max-width: 640px) {
  /* ここにスマホ用の変更をまとめる！ */
/* 共通：スマホでは一律で少し小さくする */
  .ring-deco {
    width: 32% !important; /* 画面幅の35% */
  }

  /* 個別に微調整が必要なものだけ書く */
  .ring-fv-msg {
    top: -12% !important;
    right: 1% !important;
  }  

  .ring-msg-srv {
    top: -6% !important;
    left: 32%!important;
  }  
  
  .ring-srv-01 {
    top: -6% !important;
    right: 1% !important;
  }  

  .ring-srv-mem {
    top: -5% !important;
    left: 60%;
  }

  .ring-rec-right {
    top: -12% !important;
    right: 1% !important;
  } 
  
  .ring-work-right {
    top: -4% !important;
    right: 8% !important;
  }


/** -----------------------------------------------
波の調整 スマホ用
------------------------------------------------**/
/* スマホでは横幅が狭くなるため、PCと同じ高さだと波が急に見えすぎます。
高さを少し下げる（例: 80px -> 40px）ことで、緩やかな波を維持できます。 */

.wave-top::before {
height: 40px;
top: -20px;
}
}