/* ====================================
  トップページ - メイン画像制御
  ==================================== */
.top-img {
    /* コンテナの幅に対して高さを90%に設定（縦横比の制御） */
    position: relative; 
    padding-bottom: 90%; 
    width: 100%;
    margin: 0 auto 1rem;
    overflow: hidden; 
}

.top-img a img {
    /* コンテナ全体を覆うように画像をフィットさせる */
    position: absolute; 
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; 
    max-width: 100%; 
    
    /* 画像をトリミングし、コンテナを覆う */
    object-fit: cover; 
    object-position: center top; /* 画像の上部を基準に表示 */
    
    display: block;
}

.content-box{
	max-width: 1000px;
	margin: 0 auto;
}

/* ====================================
  特集・コラム
  ==================================== */
.feature-area{
	max-width: 100%;
	margin: 1rem auto 1rem;
}

.feature-area a img{
	max-width: 94%;
	margin: 0 auto;
	display: block;
}

.feature-text{
	max-width: 90%;
	margin: 1rem auto;
	font-size: 0.9rem;
}

/* ====================================
    ランキングエリア
    ==================================== */
.rank-area{
	margin: 0 auto;
	padding: 1rem 0; /* 上下の余白を追加 */
}

dl.rank {
    /* max-width: 90% !important; を削除 */
    margin: 0 auto 0.5rem;
    padding: 0;
     max-width: 400px;
}

.rank dt {
    text-align: center;
    margin-bottom: 0.4rem;
}

.rank-area dl.rank dt img {
    width: 80%; /* 画像の幅を親要素に対して80%に設定 */
    max-width: 360px; /* 画像の最大幅を制限 */
    height: auto;   
    display: block; 
    margin: 0 auto 0.4rem; /* 中央寄せ */
}

.rank-title {
    font-size: 1.1rem;
    font-weight: bold;
    text-align: center;
    margin-bottom: 0.3rem;
}

.rank-text {
	width: 90%;
    font-size: 0.8rem;
    line-height: 1.4;
    padding: 0 5%; /* 左右に少しパディング */
    text-align: left;
	margin: 0 auto;
	letter-spacing: 1px;
}

/* ====================================
   ノベルティ製作についてのよくあるご質問
  ==================================== */

/* アコーディオンの全体を制御する部分 */
.accbox {
    margin: 0 auto 10px;
    width: 100%;
    max-width: 100%;
    color: #333333;
    text-align: left;
	font-size:0.9rem;
}

/* 質問文（Q）部分のデザインと動作設定 */
.accbox label {
    display: block;
    margin: 1.5px 0;
    padding: 1rem 40px 1rem 10px;
    background: #DDEAF2;
    color: #333333;
    cursor: pointer;
    position: relative;
    transition: all 0.5s;
	text-indent: 1rem;
}

.accbox label:hover {
    background: #DDEAF2;
}

/* チェックボックスを非表示にする設定 */
.accbox input {
    display: none;
}

/* 回答（A）部分のデザインと非表示設定 */
.accbox .accshow {
    height: 0;
    overflow: hidden;
    opacity: 0;
    transition: 0.8s;
    line-height: 160%;
    padding: 0 10px;
}

/* ★修正: 回答（A）を表示するセレクタ */
.cssacc:checked + label + .accshow {
    height: auto;
    padding: 1rem 10px;
    background: #FCE4E4;
    opacity: 1;
}

/* 質問（Q）部分の右端に「＋」アイコンを追加 */
.accbox label::after {
    content: '+';
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.2em;
    font-weight: bold;
    transition: transform 0.3s ease-in-out;
}

/* 回答表示時にアイコンを「−」に切り替え */
.accbox input:checked + label::after {
    content: '－';
	font-size: 1.2em;
}

/* ====================================
   新着情報（レスポンシブ対応）
  ==================================== */
#news-section {
  max-width: 800px;
  margin: 0 auto;
  padding: 2em 1em;
  background: #fafafa;
  border-radius: 12px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}

.news-title {
  font-size: 1.4rem;
  font-weight: 600;
  margin-bottom: 1em;
  border-left: 4px solid #ff9900;
  padding-left: 0.6em;
  color: #333;
}

/* ---------------------------
   スクロールボックス
---------------------------- */
#news {
  max-height: 250px;             /* PC時の高さを固定 */
  overflow-y: auto;              /* 縦スクロールを許可 */
  overflow-x: hidden;
  padding-right: 0.5em;          /* スクロールバーの余白調整 */
  scroll-behavior: smooth;       /* スムーズスクロール */
}

/* スクロールバーのデザイン（Webkit系） */
#news::-webkit-scrollbar {
  width: 6px;
}
#news::-webkit-scrollbar-track {
  background: #eee;
  border-radius: 10px;
}
#news::-webkit-scrollbar-thumb {
  background-color: #ccc;
  border-radius: 10px;
}

/* ---------------------------
   リストデザイン
---------------------------- */
#news ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
#news li {
  padding: 0.8em 0.5em;
  border-bottom: 1px solid #ddd;
  line-height: 1.5;
  font-size: 0.95rem;
}
#news li a {
  display: inline-block;
  margin-left: 0.4em;
  color: #0066cc;
  text-decoration: underline;
  transition: color 0.2s;
}
#news li a:hover {
  color: #ff9900;
}

/* 背景色交互 */
#news li.gray { background: #f8f8f8; }
#news li.white { background: #fff; }

/* ---------------------------
   モバイル対応（UX重視）
---------------------------- */
@media (max-width: 767px) {
  #news-section {
    padding: 1.5em 1em;
  }
  #news {
    max-height: 180px;           /* モバイル時は少し低く */
    -webkit-overflow-scrolling: touch; /* iOSでスムーズに */
  }
  #news li {
    font-size: 0.9rem;
    padding: 0.7em 0.4em;
  }
}

/* ====================================
課題解決型
  ==================================== */
/* アコーディオン全体 */
.accordion-list {
	max-width: 1000px; /* 例として最大幅を設定 */
	margin: 0 auto 2rem;
}

/* 各アコーディオン項目 */
.accordion-list .accordion-item0 {
	margin-bottom: 10px; /* 項目間の余白 */
	overflow: hidden; /* コンテンツ開閉時の視覚効果のために */
}

/* タイトル部分（クリックで開閉） */
.accordion-list .accordion-title0 {
	display: block; /* クリック領域を広げる */
	padding: 12px 40px 12px 15px; /* 右側に記号分の余白を確保 */
	cursor: pointer;
	background-color: #7FB7DE;
	color: #fff;
	position: relative;
}

/* 開閉記号（+ / -）の表示設定 */
.accordion-list .accordion-title0::after {
	content: "+"; /* 閉じている時は「+」 */
	position: absolute;
	right: 15px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.5em;
	transition: transform 0.3s;
	line-height: 1; /* 行の高さを調整 */
}

/* コンテンツ部分 */
.accordion-list .accordion-body-content2 {
	padding: 0 15px;
	max-height: 0; /* 閉じている時は高さを0にする */
	overflow: hidden;
	transition: max-height 0.4s ease-out, padding 0.4s ease-out; /* 滑らかな開閉アニメーション */
}

/* --- 状態変更の制御 --- */

/* チェックボックスがチェックされた時（開いている時）のタイトルスタイル */
.accordion-list .accordion-item0 input[type="checkbox"]:checked ~ .accordion-title0 {
	background-color: #2589D0; /* 開いた時の背景色変更 */
	color: #fff;
}

/* チェックボックスがチェックされた時（開いている時）の記号 */
.accordion-list .accordion-item0 input[type="checkbox"]:checked ~ .accordion-title0::after {
	content: "−"; /* 開いている時は「-」（マイナス記号はハイフンではなくU+2212を使用） */
	
}

/* チェックボックスがチェックされた時（開いている時）のコンテンツ表示 */
.accordion-list .accordion-item0 input[type="checkbox"]:checked ~ .accordion-body-content2 {
	/* 開いた時のコンテンツの最大の高さを設定（コンテンツ量に合わせて調整してください。十分大きな値に設定が必要です。） */
	max-height: 1000px; 
	padding-top: 8px; /* コンテンツを開いた時の上側のパディング */
	padding-bottom: 8px; /* コンテンツを開いた時の下側のパディング */
}

/* ====================================
ふせん活用法
  ==================================== */


.works{
	width: 90%;
	margin: 0  auto;
	background-color: #DDEAF2;
	border-radius:0.5rem;
	padding: 1rem;
	font-size:0.8rem;
}

.w-title{
	font-weight: bold;
	text-align: center;
	width: 94%;
	margin: 0 auto;
	font-size:0.9rem;
}


.w-text{
	text-align: left;
	width: 94%;
	margin: 0 auto;
}


/* アコーディオンの全体を制御する部分 */
.accbox2 {
    margin: 0 auto 10px;
    width: 100%;
    max-width: 100%;
    color: #333333;
    text-align: left;
}

/* 質問文（Q）部分のデザインと動作設定 */
.accbox2 label {
    display: block;
    margin: 1.5px 0;
    padding: 1rem 40px 1rem 10px;
    background: #ccc;
    color: #333333;
    cursor: pointer;
    position: relative;
    transition: all 0.5s;
	text-indent: 1rem;
}

.accbox2 label:hover {
    background: #eee;
}

/* チェックボックスを非表示にする設定 */
.accbox2 input {
    display: none;
}

/* 回答（A）部分のデザインと非表示設定 */
.accbox2 .accshow2 {
    height: 0;
    overflow: hidden;
    opacity: 0;
    transition: 0.8s;
    line-height: 160%;
    padding: 0 10px;
}

/* ★修正: 回答（A）を表示するセレクタ */
.cssacc2:checked + label + .accshow2 {
    height: auto;
    padding: 1rem 10px;
    background: #fff;
    opacity: 1;
}

/* 質問（Q）部分の右端に「＋」アイコンを追加 */
.accbox2 label::after {
    content: '+';
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.2em;
    font-weight: bold;
    transition: transform 0.3s ease-in-out;
}

/* 回答表示時にアイコンを「−」に切り替え */
.accbox2 input:checked + label::after {
    content: '－';
	font-size: 1.2em;
}


.case-hard a{
background:#D37D4E;
border-radius: 2rem;
display:block;
text-align: center;
padding: 6px 0 6px;
font-size: 0.9rem;
margin: 0 auto;
text-decoration: none;
color: #fff;
}

.case-cover a{
background: #2EABD4;
border-radius: 2rem;
display:block;
text-align: center;
padding: 6px 0 6px;
font-size: 0.9rem;
margin: 0 auto;
text-decoration: none;
color: #fff;
}

.case-nocover a {
background: #E68584;
border-radius: 2rem;
display:block;
text-align: center;
padding: 6px 0 6px;
font-size: 0.9rem;
margin: 0 auto;
text-decoration: none;
color: #fff;
}
.case-diecut a {
background: #C388CB;
border-radius: 2rem;
display:block;
text-align: center;
padding: 6px 0 6px;
font-size: 0.9rem;
margin: 0 auto;
text-decoration: none;
color: #fff;
}

.case-block a {
background: #ABC942;
border-radius: 2rem;
display:block;
text-align: center;
padding: 6px 0 6px;
font-size: 0.9rem;
margin: 0 auto;
text-decoration: none;
color: #fff;
}

.case-other a {
background: #EFC649;
border-radius: 2rem;
display:block;
text-align: center;
padding: 6px 0 6px;
font-size: 0.9rem;
margin: 0 auto;
text-decoration: none;
color: #fff;
}

/* ====================================
    モバイル対応アコーディオン CSS (768px以下)
   ==================================== */
@media (max-width: 768px) {

    .kadai-title {
        margin-bottom: 1rem;
        color: #E47A20;
        font-weight: bold;
    }
	 

 /* -----------------------------------
   横スライド（カルーセル風）
----------------------------------- */
  	
/* --- 横スクロールの枠（親要素） --- */
.kadai-slide-container {
    display: flex;               /* 横並びにする */
    overflow-x: auto;            /* 横スクロール有効化 */
    gap: 15px;                   /* ★重要：カード間の隙間はここで一括管理 */
    padding-bottom: 10px;        /* 下の余白 */
    
    /* スナップ（吸着）設定 */
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    
    /* 不要な改行を防ぐ */
    white-space: nowrap;
}

/* --- カードそのもの（子要素） --- */
.kadai-item {
    /* ★重要：幅の指定をこれ一つに絞る */
    /* 94%にすることで次のカードを少しチラ見せする */
    flex: 0 0 94%;
    
    /* これまでの width: 80vw や min-width は削除してOK */
    /* 余白は親の gap で管理するため margin-right は 0 にする */
    margin-right: 0; 
    
    /* 見た目の装飾 */
    background-color: #E7F3FB;
    padding: 10px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    border-radius: 5px;
    white-space: normal; /* 中のテキストは折り返すように戻す */
    
    /* スナップ位置の指定 */
    scroll-snap-align: start;
    scroll-behavior: smooth;
}

/* --- カードの中身のレイアウト調整 --- */
.kadai-item .kadai-left {
    width: 100%;
    margin-bottom: 10px;
}
	
.kadai-item .kadai-item img {
    width: 100%;      /* 画像がはみ出さないように */
    height: auto;
    display: block;
}

 .kadai-item .kadai-right {
    width: 100%;
    margin: 0;
}

 .kadai-item .kadai-right dt {
    font-weight: bold;
    margin-bottom: 0.8rem;
    white-space: normal; /* テキストの折り返しを保証 */
}
	
.kadai-item .kadai-right dd {
    white-space: normal; /* テキストの折り返しを保証 */
	font-size: 0.9rem;
}

  /* ボタン周り */
.kadai-right .tab-button a {
    width: 80%;
    background: #2589D0;
    border-radius: 6rem;
    color: #fff;
    display: block;
    margin: 0.6rem auto;
    padding: 0.3rem 0; /* 高さが潰れないよう少し調整 */
    text-align: center;
    transition: 0.2s ease;
    text-decoration: none;
}

 .kadai-right .tab-button a:active {
    opacity: 0.7;
    transform: scale(0.98);
}

}

/* ====================================
   PCサイト向けスタイル (769px以上)
   ==================================== */
@media (min-width: 769px) {

/* ====================================
  特集・コラム
  ==================================== */
.feature-area{
	width: 93%;
	display: flex;
	flex-wrap:wrap;
	margin: 1rem auto 1rem;
	justify-content: center;
}

.feature{
	width: 350px;
	margin: 0 auto;
}

.feature-text{
	width: 90%;
	margin: 1rem auto;
	line-height: 150%;
}

/* ====================================
    ランキングエリア
    ==================================== */
.rank-area{
	margin: 0 auto;
	display: flex;
	flex-wrap:wrap;
}

dl.rank {
	width: 30%;
    margin: 0 auto 1rem;
    padding: 0;
     max-width: 400px;
}

.rank dt {
    text-align: center;
    margin-bottom: 0.4rem;
}

.rank-area dl.rank dt img {
    width: 100%; /* 画像の幅を親要素に対して80%に設定 */
    max-width: 360px; /* 画像の最大幅を制限 */
    height: auto;   
    display: block; 
    margin: 0 auto 0.4rem; /* 中央寄せ */
}

.rank-title {
    font-size: 1rem;
    font-weight: bold;
    text-align: center;
    margin-bottom: 0.3rem;
}

.rank-text {
	width: 100%;
    font-size: 0.8rem;
    line-height: 1.5;
    padding: 0 5%; /* 左右に少しパディング */
    text-align: left;
	margin: 0 auto;
	letter-spacing: 1px;
}

/* 活用事例
------------------------------------------------ */
.works{
	width: 90%;
	margin: 0  auto 1rem;
	font-size:1rem;
	line-height: 160%;
	letter-spacing: 1px;
	background: #F7F4E0; 
}

.w-title{
	font-weight: bold;
	text-align: center;
	width: 94%;
	margin: 0 auto;
	font-size:0.9rem;
}


.w-text{
	text-align: left;
	width: 94%;
	margin: 0 auto;
}


.case-hard a{
width: 74%;
background:#D37D4E;
border-radius: 2rem;
display:block;
text-align: center;
padding: 6px 0 6px;
font-size: 0.9rem;
margin: 1rem auto 0.5rem;
text-decoration: none;
color: #fff;
}

.case-cover a{
width: 74%;
background: #2EABD4;
border-radius: 2rem;
display:block;
text-align: center;
padding: 6px 0 6px;
font-size: 0.9rem;
margin: 1rem auto 0.5rem;
text-decoration: none;
color: #fff;
}

.case-nocover a {
width: 74%;
background: #E68584;
border-radius: 2rem;
display:block;
text-align: center;
padding: 6px 0 6px;
font-size: 0.9rem;
margin: 1rem auto 0.5rem;
text-decoration: none;
color: #fff;
}
	
.case-diecut a {
width: 74%;
background: #C388CB;
border-radius: 2rem;
display:block;
text-align: center;
padding: 6px 0 6px;
font-size: 0.9rem;
margin: 1rem auto 0.5rem;
text-decoration: none;
color: #fff;
}

.case-block a {
width: 74%;
background: #ABC942;
border-radius: 2rem;
display:block;
text-align: center;
padding: 6px 0 6px;
font-size: 0.9rem;
margin: 1rem auto 0.5rem;
text-decoration: none;
color: #fff;
}

.case-other a {
width: 74%;
background: #EFC649;
border-radius: 2rem;
display:block;
text-align: center;
padding: 6px 0 6px;
font-size: 0.9rem;
margin: 1rem auto 0.5rem;
text-decoration: none;
color: #fff;
}
	
/* 活用事例
------------------------------------------------ */
.tab-3 {
    display: flex;
    flex-wrap: wrap;
    gap: 0 10px;
    width:100%;
	font-size: 1.1rem;
	margin: 0 auto;
}

.tab-3 > label {
    flex: 1 1;
    order: -1;
    opacity: .5;
    padding: .6em 1em;
    border-radius: 5px 5px 0 0;
    background-color: #013B83;
    color: #fff;
    font-size: 0.9rem;
    text-align: center;
    cursor: pointer;
}

.tab-3 > label:hover {
    opacity: .5;
}

.tab-3 input {
    display: none;
}

.tab-3 > div {
    display:none;
    width: 100%;
    padding: 1rem 0 1rem 0;
    background-color: #fff;
	text-align: left;
	background:#E7F3FB;
}

.tab-3 label:has(:checked) {
    opacity: 1;
}

.tab-3 label:has(:checked) + div {
    display: block;
}

.tab-title3{ 
    text-align: left;
    font-size: 1rem;
    font-weight: bold;
    color: #333;
    margin-bottom: 1rem;
    text-indent: 2.4rem;
}

.tab-cont2{
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-bottom: 1rem;
}
	
	.tab-text{
		font-size:0.9rem;
		letter-spacing: 1px;
		line-height: 140%;
		width: 90%;
		margin: 0 auto;
	}
	
/* オリジナルノベルティグッズ製作のメリット
------------------------------------------------ */
.more-info{
	width: 100%;
	margin: 3rem auto 2rem;
}

.more-title{
	background:#002F71;
	padding: 10px 0 10px 0;
	width:100%;
	margin:0 auto;
	color: #fff;
	font-size: 1.2rem;
	text-indent: 1rem;
}

.more-text{
	text-align: left;
	width: 96%;
	padding: 1rem;
	margin:0.5rem auto 0.5rem;
	font-size:0.9rem;
	letter-spacing: 1px;
}

/* アコーディオンの全体を制御する部分 */
.morebox {
    width: 100%;
    text-align: left;
    color: #333333;
    text-indent: 16px;
    letter-spacing: 1px;
	margin: 0 auto 10px;
}

/* 質問文部分のデザインと動作設定 */
.morebox label {
    display: block;
    padding: 1rem 40px 1rem 10px;
    color: #333333;
    background: #E9E9E9;
    cursor: pointer;
    transition: all 0.5s;
    font-size: 14px;
    letter-spacing: 1px;
    position: relative;
}

.morebox label:hover {
    background: #888;
    color: #fff;
}

/* チェックボックスを非表示にする設定 */
.morebox input {
    display: none;
}

/* 回答部分のデザインと非表示設定 */
.morebox .moreshow {
    height: 0;
    padding: 0;
    overflow: hidden;
    opacity: 0;
    transition: 0.8s;
    line-height: 160%;
    font-size: 14px;
    letter-spacing: 1px;
}

/* ★修正: 回答（moreshow）を表示するセレクタ */
.cssacc:checked + label + .moreshow {
    height: auto;
    padding: 1rem 10px;
    opacity: 1;
    background: #fff;
}

/* 質問部分の右端に「＋」アイコンを追加 */
.morebox label::after {
    content: '+';
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.2em;
    font-weight: bold;
    transition: transform 0.3s ease-in-out;
}

/* 回答表示時にアイコンを「−」に切り替え */
.morebox input:checked + label::after {
    content: '－';
    font-size: 1.2em;
}

}


