@charset "UTF-8";

@media only screen and (max-width : 768px) {
	/*-----------------------
スマホ・タブレット用レイアウト（768px以下スクリーン）
----------------------*/

	/*------------------
共通設定(スマホ)
-------------------*/

	/* はみ出した領域は非表示にする*/
	html {
		overflow-y: scroll;
		overflow-x: hidden;
	}

	html,
	body {
		width: 100%;
		-webkit-text-size-adjust: 100%;
		-ms-text-size-adjust: 100%;
	}

	/*画像サイズの調整*/
	img {
		height: auto;
		max-width: 100%;
	}

	/*H2タグ*/
	h2 {
		margin: 0.5em 0 0.5em;
		font-size: clamp(1.3em, 2.5vw, 1.6em);
		font-weight: bold;
		text-align: center;
	}

	/*H3タグ*/
	h3 {
		margin: 0 0 0.5em;
		padding: 0.3em 0em;
		font-weight: bold;
	}


	/*--------------------------------------------------------
全体レイアウト/背景設定(スマホ・タブレット)
--------------------------------------------------------*/

	/*全体エリア(全体背景の設定はここ)*/
	.main {
		background-color: #fff;
	}

	/*記事(ボディ)エリア*/
	.article {
		background-color: #fff;
		/*スマホの場合はカラムの線を消す*/
		border-left: none;
		border-right: none;
	}

	/*記事(ボディ)エリアの行間*/
	.article p {
		line-height: 1.8em;
	}

	/*記事(ボディ)エリアのフォントサイズ*/
	.article {
		font-size: 1.6em;
	}

	/*カラム全体の幅はスマホの場合固定*/
	.header_inr,
	.article,
	.atcl_inr,
	.top_image_in {
		width: 100%;
		margin: 0 auto
	}

	/*PC画面とスマホ画面の切り替え*/

	.gamen_pc {
		display: none;
	}

	.gamen_rps {
		display: block;
	}

	/*-------------------------
上部固定ヘッダー設定
----------------------*/

	/*上部固定ヘッダー全体*/

	/* floatを打ち消してflex化：ロゴ｜TEL｜≡ */
	.header_inr {
		display: flex;
		align-items: center;
		gap: 8px;
		padding: 8px 12px;
	}

	.header_logo,
	.header_tel,
	.header_menu {
		float: none;
		width: auto;
		margin: 0;
		padding: 0;
		padding-top: 0.5em;
	}

	/* 並び順と位置 */
	.header_logo {
		order: 1;
	}

	.header_tel {
		order: 2;
		margin-left: auto;
		/* ロゴ→TELの間を自動で広げる（TELを右側へ） */
		display: flex;
		align-items: center;
		max-width: 120px;
	}

	.hamburger {
		order: 3;
		display: flex;
		/* SPで表示 */
		flex-direction: column;
		width: 44px;
		height: 44px;
		align-items: center;
		justify-content: center;
		gap: 6px;
		border: 0;
		background: transparent;
		cursor: pointer;
		position: relative;
		z-index: 1101;
		/* メニューより前 */
		-webkit-appearance: none;
		appearance: none;
		margin-left: 5px;
		/* TELとの間隔 */
	}

	.hamburger span {
		display: block;
		width: 22px;
		height: 2px;
		background: #111;
		transition: transform .2s ease, opacity .2s ease;
	}

	.hamburger.is-open span:nth-child(1) {
		transform: translateY(8px) rotate(45deg);
	}

	.hamburger.is-open span:nth-child(2) {
		opacity: 0;
	}

	.hamburger.is-open span:nth-child(3) {
		transform: translateY(-8px) rotate(-45deg);
	}

	/* SPナビはオフキャンバス（右からスライド） */
	.header_menu {
		/* 競合でdisplay:noneが当たる可能性に備えて */
		display: block !important;

		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		width: 58vw;
		max-width: 360px;
		background: #fff;
		box-shadow: -8px 0 24px rgba(0, 0, 0, .12);
		transform: translateX(100%);
		transition: transform .25s ease;
		padding: 72px 24px 24px;
		z-index: 1100;
		/* ハンバーガーの一段下 */
	}

	.header_menu.open {
		transform: translateX(0);
	}

	/* パネル内の縦並び */
	.header_menu nav ul {
		display: grid;
		gap: 16px;
		font-size: 16px;
	}

	/* 右端のノッチ対策 */
	.header_inr {
		padding-right: max(12px, env(safe-area-inset-right));
	}




	/*-------------------------------
ファーストビュー設定
-------------------------------*/

	.top_image {
		/*スマホの際はファーストビューの背景を非表示*/
		background-image: none;
	}

	.top_image_in {
		padding: 0em 0em;
	}

	/* --------------------------
サービスエリア設定
----------------------------*/
	.sec_GLINK_service {
		padding-top: 1em;
		padding-bottom: 1em;
	}

	.GLINK_service_text {
		text-align: center;
		padding-bottom: 0.5em;
	}

	.service_text01 {
		font-size: 1.3em;
		font-weight: bold;
	}

	.service_text02 {
		font-size: 1.4em;
		font-weight: bold;
	}

	.GLINK_service_cntnr {
		text-align: center;
	}

	.svc-wrap {
		--col-gap: 14px;
		--arrow-size: 36px;
	}

	/* grid を flex に切替（スマホだけ） */
	.svc-list {
		display: flex;
		flex-wrap: wrap;
		gap: var(--col-gap);
		justify-content: center;
		/* 各行を中央寄せ */
		overflow-x: hidden;
	}

	/* 3カラム幅（gapを考慮） */
	.svc-card {
		width: calc((100% - (var(--col-gap) * 2)) / 3);
	}

	/* 4枚目・5枚目の列指定は不要（中央に寄ります） */
	/* .svc-card:nth-child(4){ grid-column: 2; }
     .svc-card:nth-child(5){ grid-column: 3; }  <-- 削除 */

	/* 矢印は今まで通り。最後のカード以外に表示 */
	.svc-card:not(:last-child)::after {
		right: calc(var(--col-gap) * -0.5 - var(--arrow-size) * 0.5);
	}

	/* --------------------------
CV01エリア設定
----------------------------*/
	.sec_GLINK_cv {
		background: url(../images/haikei_GLINK_cv.png) center top no-repeat #fff;
		background-size: cover;
		height: auto;
		padding-top: 0.5em;
		padding-bottom: 1.5em;
	}

	.sec_GLINK_cv h2 {
		color: #fff;
	}

	.cv01_glid {
		flex-wrap: wrap;
		gap: 15px;
		padding-top: 1em;
	}

	.cv01_glid img {
		max-width: 150px;
	}



	/* --------------------------
旅行データエリア設定
----------------------------*/
	.sec_GLINK_travel_data {
		padding: 0.5em 0.5em 2em;
	}

	.sec_GLINK_travel_data h2 {
		padding-bottom: 0.2em;
	}

	.travel_data_area {
		padding: 1em 0.5em;
	}

	.travel_data_area h3 {
		text-align: center;
	}

	.travel_data_cntnr,
	.travel_data_cntnr02 {
		display: flex;
		flex-direction: column;

	}

	.travel_data_cntnr {
		align-items: center;
		padding-bottom: 2em;
	}

	.travel_data_cntnr02 {
		align-items: flex-start;
		padding-top: 1.5em;
	}

	.travel_data_cntnr03 {
		flex-wrap: wrap-reverse;
		gap: 20px;
	}

	.travel_data_img,
	.travel_data_text {
		width: 100%;
		box-sizing: border-box;
		/* paddingの分を含めて計算 */
	}

	.travel_data_chart {
		text-align: center;
	}

	.travel_data_chart img {
		max-width: 350px;

	}

	/*-----
 吹き出しラベル 
 -----*/
	.label-bubble {
		display: inline-block;
		background: #004ec2;
		/* ベース色 */
		color: #fff;
		font-weight: 700;
		line-height: 1;
		padding: .85em .9em;
		border-radius: 0px;
		position: relative;
		margin: 0 0 .6em 0;
		/* 下に少し余白 */
		font-size: 1.1em;
		text-shadow: 0 1px 2px rgba(0, 0, 0, .15);
	}

	/* 下向きノッチ（▲） */
	.label-bubble::after {
		content: "";
		position: absolute;
		top: 100%;
		/* 吹き出しの真下 */
		left: 40px;
		/* 左端から少し内側にずらす */
		width: 0;
		height: 0;
		border-left: 8px solid transparent;
		border-right: 8px solid transparent;
		border-top: 8px solid #004ec2;
		/* 吹き出しと同色 */
	}

	.circle_chart img {
		max-width: 200px;
	}

	/* --------------------------
グラフエリア設定
----------------------------*/
	.sec_GLINK_chance_graph {
		padding-bottom: 0.5em;
	}


	/*-----
 円形グラデーション設定 
 -----*/
	.circle-list {
		gap: 8px;
	}

	.circle {
		padding: 0.2em;
		width: 140px;
		height: 140px;
		font-size: 14px;
	}


	.chance_graph_text {
		padding-top: 30px;
		text-align: center;
	}

	.chance_graph_text p {
		font-size: 1em;
		font-weight: bold;
	}

	/* --------------------------
強みエリア設定
----------------------------*/
	.sec_GLINK_Strengths {
		padding: 0.5em;
		background: none;
		background-color: #3329ff;
	}

	.sec_GLINK_Strengths h2 {
		padding: 1em 0em;
	}

	.Strengths_cntnr {
		padding: 1.2em 0.5em;
	}


	/* インフルエンサーの対応言語＿横並びレイアウト */
	.lang-tags {
		display: flex;
		flex-wrap: wrap;
		gap: 5px;
		justify-content: space-evenly;
		padding: 1em 0.5em;
	}

	/* 枠ボックス */
	.lang-tag {
		display: flex;
		flex-wrap: wrap;
		padding: 10px 25px;
		min-width: 150px;
	}

	/*-----
 アサインエリアの設定 
 -----*/
	.assaign_cntnr,
	.assaign_cntnr02 {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 15px;
	}

	.assaign_text {
		padding-top: 1em;
	}

	.assaign_img img {
		max-width: 350px;
	}

	/* --------------------------
成功事例エリア設定
----------------------------*/

	.success_story_cntnr {
		flex-direction: column;
		gap: 20px;
		align-items: center;
		margin: 0 auto;
		padding: 0.5em;
	}

	.story_mds {
		padding: 0.4em 1em;
	}

	.success_story_Number {
		font-size: 1.3em;
	}

	.success_story_Number p {
		line-height: 1.6;
	}

	.success_story_mms {
		position: relative;
		padding: 1.8em 0em 0.8em;
		font-size: 1em;
		font-weight: bold;
		color: #2f4ea0;
		margin-left: 0.5em;
		margin-right: 0.5em;
	}

	/* アイコン画像の位置・サイズ調整 */
	.success_story_mms img {
		position: absolute;
		top: -20px;
		left: 0px;
		width: 40px;
		height: auto;
	}

	.border_b {
		max-width: 300px;
	}

	.success_story_text h3 {
		text-align: center;
	}

	.success_story_text p {
		font-size: .9em;
	}

	/* --------------------------
CV02エリア設定
----------------------------*/
	.GLINK_cv02_text {
		font-size: 1.2em;
	}

	/* --------------------------
比較エリア設定
----------------------------*/


	/* ラッパー：横スクロール許可（SP） */
	.table-wrap {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	/* テーブルはPCと同じ幅をキープして、狭い画面では横スクロール */
	table.comp-table {
		width: 100%;
		min-width: 1100px;
		table-layout: fixed;
	}

	table.comp-table th,
	table.comp-table td {
		white-space: nowrap;
	}

	.table-wrap {
		position: relative;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.table-wrap {
		scrollbar-color: #004ec2 #f2f2f2;
		/* スクロールバーの色（対応ブラウザ） */
		scrollbar-width: thin;
		/* Firefox用：細めバー */
	}


	table.comp-table th:first-child,
	table.comp-table td:first-child {
		width: 14%;
	}

	.sec_GLINK_comparison_inr {
		min-width: auto;
		overflow-x: hidden;
		padding: 16px 12px;
	}

	.table-wrap {
		position: relative;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	/* ⇆ 横にスクロールできますのテキスト */
	.scroll_hint {
		color: #AD0000;
	}

	.scroll_hint_icon {
		display: inline-block;
		animation: scrollHintMove 1.5s ease-in-out infinite;
	}

	@keyframes scrollHintMove {

		0%,
		100% {
			transform: translateX(0);
		}

		50% {
			transform: translateX(20px);
		}
	}


	/* --------------------------
流れエリア設定
----------------------------*/

	/* セクション余白 */
	.sec_GLINK_nagare {
		background: #fff;
		padding: 0.5em 0;
	}

	.sec_GLINK_nagare h2 {
		margin-bottom: 3px;
	}

	/* 4カラムの並び＋区切り線 */
	.flow-list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}



	/* STEP表示 */
	.step {
		font-size: 1.6em;
	}

	.icon img {
		max-width: 80%;
		height: auto;
	}

	.flow-item .desc {
		min-height: 110px;
	}

	/* 矢印を消す */
	.flow-item::after {
		display: none !important;
	}

	/* カード間の余白をモバイル向けに縮める */
	.sec_GLINK_nagare {
		--col-gap: 14px;
		/* ←PCの50pxを上書き */
		--row-gap: 16px;
		/* 行間も少し詰める（任意） */
	}

	.flow-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		/* 2カラム */
		column-gap: var(--col-gap);
		row-gap: var(--row-gap);
	}

	/* カード内のパディングも少しだけ詰める（任意） */
	.flow-item {
		padding: 16px 12px;
	}



	/* --------------------------
Q&Aエリア設定
----------------------------*/
	.sec_GLINK_qa {
		padding: 0.5em 0.5em 1em;
	}

	.qa_cntnr {
		padding: 0.2em 0.2em 0.3em 1.6em;
		margin-bottom: 1.5em;
	}

	.box_qa_q {
		padding: 1em 0em 0em 0.6em;
		border-bottom: 1px solid #ccc;
		font-size: 1.2em;
		font-weight: bold;
		color: #004ec2;
	}

	.box_qa_a {
		padding: 1em 0em;
		line-height: 1.8;
	}

	/* --------------------------
お問い合わせフォームエリア設定
----------------------------*/

	.inq-wrap {
		padding: 18px 14px 28px;
	}

	/*--------------------------------------------------------
フッター部分
-------------------------------------------------*/

	.footer {
		padding: 2em 0em 2em;
		font-size: 1em;
	}

	/*スマホ用下部固定メニュー*/

	/*スマホ用下部固定メニュー*/


	.cv-cta_footer {
		display: flex;
		gap: 16px 18px;
		justify-content: center;
		padding: 0.5em 0em;
	}

	.fix_menu_smartphone {
		transition: opacity 0.3s ease, visibility 0.3s ease;
	}

	.fix_menu_smartphone.is-hidden {
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
	}

	.cv-cta_footer .btn {
		min-width: 160px;

	}
}