@charset "utf-8";

:root {
	/* base */
	--cts-gutter: clamp(30px, 1.343rem + 2.265vw, 65px);/*375-768*/
	--cts-width: 1312px;

	/* font */
	--dp-font-jp: "Noto Sans JP", sans-serif;      
	--cts-font: "altivo", sans-serif;
	/* 
	Bold 700
	*/
	/* color */
	--color-white-1: #FFFFFF;
	--color-gray-1: #707070;
	--color-gray-2: #484848;
	--color-blue-1: #004DA1;
	--color-blue-2: #004DA0;
	--color-blue-3: #F2F6FA;
	--color-blue-4: #F1F9FD;
	--color-red-1: #E20000;
	--color-red-2: #FDF1F1;
	--color-black-1: #000000;
	--color-black-2: #333333;
}

/* LP共通汎用
____________________*/
body {
	padding-right: 0 !important;
	overflow: visible !important;
}
#container a, #container a span {
    color: inherit;
    text-decoration: none;
}
.pagetop {
	display: none;	
}
#pagetop {
	display: none;
	position: fixed;
	bottom: 30px;
	right: 55px;
}
#pagetop a {
	color: #fff;
	background-color: #333;
	border-radius: 5px;
	display: block;
	font-size: 12px;
	line-height: 1.5em;
	padding: 5px 10px;
	text-align: center;
	text-decoration: none;
}
figure {
	margin: 0;
	text-align: center;
}
img {
	width: 100%;
	height: auto;
	image-rendering: -webkit-optimize-contrast;
}
header.l-header.p-header {
    display: block !important;
}
footer.l-footer.p-footer {
    display: block !important;
}
.l-header {
    width: 100%;
    background: #fff;
    position: relative;
}
.c-breadcrumb--gray {
	display: flex;
	align-items: center;
}
.bnr_link_win11_wrap {
    margin: 0 auto;
}
.bnr_link_win11 img {
    transition: opacity 0.3s;
    width: 300px;
}
.bnr_link_win11 img:hover {
	opacity: 0.75;
}
.BreadcrumbList_wrap {
	background: #fff;
	position: relative;
    z-index: 2;
}
.footer-wrap {
    background: #fff;
    position: relative;
    z-index: 2;
}
@media screen and (max-width: 1280px) {
    .l-header {
        z-index: 10;
    }
}
@media screen and (min-width: 768px), print and (min-width: 768px) {
	.c-breadcrumb__list.u-pc-width,
	.bnr_link_win11_wrap.u-pc-width {
		padding-inline: 30px;
	}
	.bnr_link_win11_wrap.u-pc-width {
		width: auto;
	}
}
@media screen and (max-width: 1000px) {
	.c-breadcrumb--gray {
		display: inherit;
	}
	.bnr_link_win11_wrap {
		width: 100%;
		margin: 10px auto 0 !important;
		padding-block-end: 10px;
	}
	.bnr_link_win11 {
		width: 100%;
		margin-top: 0;
		text-align: center;
	}
}
.contents__wrap {
	width: 100%;
	/* background: var(--cts-color1); */
	margin-inline: auto;
	font-size: var(--cts-font-size);
	font-family: var(--dp-font-jp);
	letter-spacing: 0.05em;
	/* color: var(--color-white-1); */
}
.contents__wrap img {
	max-width: 100%;
	vertical-align: bottom;
}
.pc {
	display: block !important;
}
.sp {
	display: none !important;
}
.flash:hover {
	animation-name: hover-flash;
	animation-duration: 1s;
	opacity: .85;
}
@keyframes hover-flash {
	0% {
		opacity: .3;
	}
	100% {
		opacity: .85;
	}
}

/* コンテンツ
____________________*/
::selection {
	color: var(--color-white-1);
	background-color: var(--color-blue-1);
}
.pc {
	display: block !important;
}
.sp {
	display: none !important;
}
.contents__wrap {
	/* margin-bottom: 100px; */
	background: var(--color-blue-3);
	position: relative;
	z-index: 1;
}

.contents__inner {
	width: 100%;
	max-width: var(--cts-width);
	margin-inline: auto;
	padding-inline: var(--cts-gutter);
	box-sizing: border-box;
	position: relative;
}
.ttl-set .ttl-h2,
.ttl-set .ttl-h3 {
    color: #004DA1; /* 文字色（var(--color-blue-1)） */
    font-size: clamp(1.3125rem, 0.841vw + 1.115rem, 2.125rem);
    font-weight: 700;
	text-align: left;
    line-height: 1.4;
    position: relative;
    padding-left: clamp(0.9375rem, 0.324vw + 1.261rem, 1.65rem); /* 左線の分の余白 */
    margin: 0;
}
/* --- 左側のグラデーション縦線 --- */
.ttl-set .ttl-h2::before,
.ttl-set .ttl-h3::before {
    content: "";
    position: absolute;
    top: 2px; /* 線の位置調整 */
    bottom: 2px;
    left: 0;
    width: clamp(0.375rem, 0.259vw + 0.314rem, 0.625rem); /* 線の太さ */
    /* 上から下への青系グラデーション */
    background: linear-gradient(180deg, #00A0E9 0%, #004DA1 100%);
    border-radius: 1px; /* 微小な角丸 */
}
.txt-normal {
	font-size: 16px;
	font-weight: 500;
	line-height: 2;	
} 
@media (max-width: 768px) {/*375-768*/
/* コンテンツ
____________________*/
.pc {
	display: none !important;
}
.sp {
	display: block !important;
}

.contents__wrap {
	padding-bottom: 0;
}

}
/* mv
____________________*/
.contents--mv {
    background: url(../../note/img/mil-std/kv-bg-pc.webp) no-repeat center top/contain;
    width: 100%;
    aspect-ratio: 1920/750;
    position: relative;
    z-index: 1;
    overflow: hidden;
}

.contents--mv .mv {
    width: 100%;
    height: 100%;
    position: relative;
    max-width: inherit;
    padding-inline: inherit;
    z-index: 2;
}

.contents--mv .mv .txt-box {
    position: absolute;
    top: 8.59375vw;       /* 165px */
    left: 9.375vw;        /* 180px */
    z-index: 3;
}

.contents--mv .mv .txt-box .kv-logo {
    width: 15.52083vw;    /* 298px */
    position: relative;
    z-index: 4;
}

.contents--mv .mv .txt-box .ttl-h1 {
    color: var(--color-blue-1);
    font-size: 2.5vw;      /* 48px */
    font-weight: 700;
    margin-top: 1.04167vw; /* 20px */
}

.contents--mv .mv .txt-box .kv-txt {
	color: var(--color-black-2);
    font-size: 0.9375vw;   /* 18px */
    font-weight: 500;
    line-height: 2.4;
    margin-top: 1.30208vw; /* 25px */
}

.contents--mv .mv .kv-catch {
    width: 16.97917vw;     /* 326px */
    position: absolute;
    top: 16.97917vw;       /* 326px */
    right: 6.77083vw;      /* 130px */
    z-index: 3;
	opacity: 0;
	will-change: transform, opacity;
}

.contents--mv .mv .kv-enclosure {
    width: 36.5625vw;      /* 702px */
    position: absolute;
    top: 4.94792vw;        /* 95px */
    right: 19.79167vw;     /* 380px */
    z-index: 3;
	opacity: 0;
	will-change: transform, opacity;
}
@media (max-width: 768px) {/*375-768*/
	.contents--mv {
		background: url(../../note/img/mil-std/kv-bg-sp.webp) no-repeat left top/100%, var(--color-white-1);
		aspect-ratio: 375/567;
	}
	.contents--mv .mv .txt-box {
		width: 100%;
		top: 62.667vw; /* 235px */
		left: 0;
		padding-inline: var(--cts-gutter);
	}
	.contents--mv .mv .txt-box .kv-logo {
		width: 38.667vw; /* 145px */
	}
	.contents--mv .mv .txt-box .ttl-h1 {
		font-size: 5.867vw; /* 22px */
		margin-top: 2.667vw; /* 10px */
	}
	.contents--mv .mv .txt-box .kv-txt {
		font-size: 3.733vw; /* 14px */
		line-height: 2;
		letter-spacing: 0.01em;
		margin-top: 2.667vw; /* 10px */
	}
	.contents--mv .mv .kv-catch {
		width: 38.4vw; /* 144px */
		top: 21.867vw; /* 82px */
		right: 4vw; /* 15px */
	}
	.contents--mv .mv .kv-enclosure {
		width: 61.333vw; /* 230px */
		top: 4.8vw; /* 18px */
		left: 4vw; /* 15px */
	}
}
/* intro
____________________*/
.contents--intro {
	width: 100%;
	padding-top: clamp(1.875rem, 3.236vw + 1.117rem, 5rem);
	padding-bottom: clamp(1.25rem, 1.942vw + 0.795rem, 3.125rem);
	position: relative;
	z-index: 1;
}
.intro-mil-logo {
	width: 30%;
	max-width: clamp(5.875rem, 1.812vw + 5.45rem, 7.625rem);
	margin-inline: auto;
	display: block;
}
.intro-txt-large {
	color: var(--color-blue-1);
	font-size: clamp(1.3125rem, 0.841vw + 1.113rem, 2.125rem);
	font-weight: 700;
	line-height: 1.8;
	text-align: center;
	margin: clamp(0.625rem, 0.647vw + 0.473rem, 1.25rem) auto 0;
	width: fit-content;
}
.intro-txt-large span {
	background: var(--color-white-1);
	padding: 4px 0px 4px clamp(0.25rem, 1.036vw + 0.007rem, 1.25rem);
}
.intro-txt {
	font-size: clamp(0.9375rem, 0.194vw + 0.892rem, 1.125rem);
	font-weight: 500;
	text-align: center;
	line-height: 2;
	margin-top: clamp(0.9375rem, 0.647vw + 0.786rem, 1.5625rem);
}
@media (max-width: 768px) {/*375-768*/
	.intro-txt-large span {
		line-height: 2;
	}
}


/* ハンバーガーメニュー
____________________*/
.hamburger-btn,
.sp-nav {
  display: none;
}

@media screen and (max-width: 768px) {
  /* 固定表示ボタンの基本位置 */
  .hamburger-btn {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 54px;
    background-color: #ffffff;
    border: none;
    cursor: pointer;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);

    /* 初期状態: 隠しておき、スクロール検知でフェードイン */
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease, background-color 0.3s ease;
  }

  /* スクロール時に付与する表示クラス */
  .hamburger-btn.is-visible {
    opacity: 1;
    visibility: visible;
  }

  /* --- 閉じた状態（3本線） --- */
  .hamburger-btn__icon {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 28px;
    height: 18px;
  }

  .hamburger-btn__line {
    display: block;
    width: 100%;
    height: 3px;
    background-color: #0066cc;
    border-radius: 2px;
  }

  /* --- 開いた状態（× CLOSE） --- */
  .hamburger-btn__close {
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .hamburger-btn__x {
    position: relative;
    width: 24px;
    height: 16px;
  }

  .hamburger-btn__x::before,
  .hamburger-btn__x::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #ffffff;
  }

  .hamburger-btn__x::before {
    transform: translateY(-50%) rotate(25deg);
  }

  .hamburger-btn__x::after {
    transform: translateY(-50%) rotate(-25deg);
  }

  .hamburger-btn__text {
    color: #ffffff;
    font-size: 11px;
    letter-spacing: 0.08em;
    margin-top: 2px;
  }

  /* アクティブ時のボタン背景切り替え */
  .hamburger-btn.is-active {
    background-color: #004bb1;
    box-shadow: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  }

  .hamburger-btn.is-active .hamburger-btn__icon {
    display: none;
  }

  .hamburger-btn.is-active .hamburger-btn__close {
    display: flex;
  }

  /* --- ナビゲーションメニュー本体 --- */
  .sp-nav {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: #004bb1;
    z-index: 999;
    padding-top: 70px;
    padding-bottom: 40px;
    overflow-y: auto;

    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }

  .sp-nav.is-active {
    opacity: 1;
    visibility: visible;
  }

  .sp-nav__inner {
    padding: 0 20px;
  }

  .sp-nav__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
  }

  .sp-nav__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 25px 20px;
    border: 1px solid rgba(255, 255, 255, 0.8);
    color: #ffffff;
    text-decoration: none;
    font-size: 15px;
    font-weight: bold;
    border-radius: 2px;
    background-color: transparent;
    transition: background-color 0.2s ease;
  }

  .sp-nav__link:active {
    background-color: rgba(255, 255, 255, 0.1);
  }

  /* 枠右側の「V」シェイプ矢印 */
  .sp-nav__arrow {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-right: 2px solid #ffffff;
    border-bottom: 2px solid #ffffff;
    transform: rotate(45deg);
    margin-right: 4px;
  }
}

/* page-nav
____________________*/
.contents__wrap .page-nav {
    width: 100%;
    max-width: 1582px;
    position: sticky;
    top: 20px;
    z-index: 10;
    margin-inline: auto;
    padding-inline: var(--cts-gutter);
    padding-bottom: clamp(3.125rem, 2.913vw + 2.442rem, 5.9375rem);
}

.contents__wrap .page-nav .page-nav-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr); /* 4列維持 */
    gap: clamp(0.75rem, 0.8vw, 1.25rem);    /* 隙間をわずかに縮小 */
}

.contents__wrap .page-nav .page-nav-list li {
    width: 100%;
}

.contents__wrap .page-nav .page-nav-list .page-nav-link {
    color: var(--color-blue-1);
    /* 画面幅に応じて適切に文字サイズを小ぶりに変化 */
    font-size: clamp(.94rem, 0.5vw + 0.55rem, 1.125rem);
    font-weight: 500;
    line-height: 1;
    width: 100%;
    border: 1px solid var(--color-blue-2);
    border-radius: 5px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding-block: clamp(0.875rem, 0.5vw + 1.7rem, 1.6875rem);
    padding-inline: 0.25rem; /* 内側の固定余白 */
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition: color 0.3s ease;
    white-space: nowrap; /* 1行維持 */
}

/* --- 【擬似要素::before】すりガラス風（ブラー付き半透明白背景） --- */
.contents__wrap .page-nav .page-nav-list .page-nav-link::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: rgba(255, 255, 255, 0.75);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    z-index: 1;
}

/* --- 【擬似要素::after】左から右への青背景アニメーション --- */
.contents__wrap .page-nav .page-nav-list .page-nav-link::after {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--color-blue-1);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.3s ease;
    z-index: 2;
}

/* --- テキスト部分（ボタン内いっぱいに広げて左右のバランスを取る） --- */
.contents__wrap .page-nav .page-nav-list .page-nav-link span {
    position: relative;
    z-index: 4;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    pointer-events: none;
    /* 矢印（右端からの距離＋矢印幅＋余白）分の領域を完全に排除 */
    padding-left: clamp(1rem, 1vw + 0.5rem, 1.5rem);  /* 左側にも同じ余白を作って真の中央寄せを維持 */
    padding-right: clamp(1rem, 1vw + 0.5rem, 1.5rem); /* 矢印と重ならないよう遮断 */
    box-sizing: border-box;
}

/* --- ボタン右側に固定配置される矢印 --- */
.contents__wrap .page-nav .page-nav-list .page-nav-link span::after {
    content: "";
    position: absolute;
    /* ボタン（.page-nav-link）全体の右端を基準にして固定 */
    right: clamp(0.75rem, 0.6vw, 0.875rem);
    top: 50%;
    z-index: 4;
    width: clamp(10px, 0.4vw + 6px, 11px);
    height: clamp(10px, 0.4vw + 6px, 11px);
    border-right: 2px solid var(--color-blue-1);
    border-bottom: 2px solid var(--color-blue-2);
    transform: translateY(-50%) rotate(45deg);
    transition: border-color 0.3s ease;
}

/* --- ホバー時のスタイル --- */
.contents__wrap .page-nav .page-nav-list .page-nav-link:hover {
    color: var(--color-white-1);
}

.contents__wrap .page-nav .page-nav-list .page-nav-link:hover::after {
    transform: scaleX(1);
}

.contents__wrap .page-nav .page-nav-list .page-nav-link:hover span::after {
    border-color: var(--color-white-1);
}
@media (max-width: 768px) {/*375-768*/
	.contents__wrap .page-nav {
		position: relative;
		top: 0;
		padding-inline: var(--cts-gutter);
	}
	.contents__wrap .page-nav .page-nav-list {
		grid-template-columns: 1fr;
	}
}
/* about
____________________*/
.contents--about {
	background: var(--color-white-1);
	padding-top: clamp(3.125rem, 4.531vw + 2.063rem, 7.5rem);
	padding-bottom: clamp(3.125rem, 5.825vw + 1.76rem, 8.75rem);
	position: relative;
	z-index: 1;
}
.about .ttl-set {
	text-align: center;
}
.about .ttl-set .ttl-eng {
	color: var(--color-blue-1);
	font-size: clamp(2.8125rem, 1.618vw + 2.433rem, 4.375rem);
	font-family: var(--cts-font);
	font-weight: 700;
	line-height: 1;
}
.about .ttl-set .ttl-h2 {
	color: var(--color-blue-1);
	font-size: clamp(0.875rem, 0.259vw + 0.814rem, 1.125rem);
	font-weight: 700;
	line-height: 1;
	padding-left: 0;
	text-align: center;
}
.about .ttl-set .ttl-h2::before {
	content: none;
}
.about-item-wrap {
	margin-top: clamp(1.5625rem, 1.618vw + 1.183rem, 3.125rem);
	display: flex;
	flex-direction: column;
	gap: clamp(3.125rem, 11.003vw + 0.546rem, 13.75rem);
}
.about-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(1.25rem, 0.647vw + 1.098rem, 1.875rem);
}
.about .ttl-set .ttl-h3 {
	font-size: clamp(1.3125rem, 0.712vw + 1.145rem, 2rem);
}
.txt-about-item {
	font-size: 15px;
	font-weight: 500;
	line-height: 2;
	margin-top: 20px;
}
.about-item .img-wrap {
	position: relative;
	z-index: 1;
}
.about-item:nth-of-type(1) .img-wrap {
	width: 470px;
}
.about-item:nth-of-type(2) {
	flex-direction: row-reverse;
}
.about-item:nth-of-type(2) .img-wrap {
	width: 587px;
}
.about-item:nth-of-type(3) .img-wrap {
	width: 633px;
}
.about-item .img-wrap .move-img {
	position: absolute;
	z-index: 3;
}
.about-item .img-wrap .bg-img {
	position: relative;
	z-index: 2;
}
.about-item .img-wrap .move-img {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}
.about-item .img-wrap .move-img {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	z-index: 5;
}
.about-item:nth-of-type(1) .img-wrap .move-img {
	width: 177px;
}
.about-item:nth-of-type(2) .img-wrap .move-img {
	width: 380px;
	top: 27%;
}
.about-item:nth-of-type(2) .img-wrap .move-img .move-img-effect-1 {
	width: 235px;
	position: absolute;
    top: 58%;
    left: 44%;
	transform: translate(-50%,-50%);
	z-index: 5;
}
.about-item:nth-of-type(3) .img-wrap .move-img {
	width: 313px;
}
.about-item:nth-of-type(3) .img-wrap .move-img .move-img-effect-1 {
	width: 64px;
	position: absolute;
    top: 4%;
    right: -12%;
	transform: translate(-50%,-50%);
	z-index: 5;
}
@media (max-width: 768px) {/*375-768*/
	.about-item {
		flex-direction: column;
		align-items: flex-start;
	}
	.about-item:nth-of-type(2) {
		flex-direction: column;
	}
	.txt-about-item {
		line-height: 1.8;
		letter-spacing: 0.002em;
	}
	.about-item:nth-of-type(1) .img-wrap {
		width: 100%;
	}
	.about-item:nth-of-type(1) .img-wrap .move-img {
		width: 29.3vw;
	}
	.about-item:nth-of-type(2) .img-wrap {
		width: 100%;
		margin-block: 10.667vw; /* 40px */
	}
	.about-item:nth-of-type(2) .img-wrap .move-img {
		width: 69.067vw; /* 259px */
		top: 35%;
	}
	.about-item:nth-of-type(2) .img-wrap .move-img .move-img-effect-1 {
		width: 42.667vw; /* 160px */
	}
	.about-item:nth-of-type(3) .img-wrap {
		width: 100%;
		padding-top: 8vw; /* 30px */
		padding-bottom: 2.667vw; /* 10px */
	}
	.about-item:nth-of-type(3) .img-wrap .move-img {
		width: 50.4vw; /* 189px */
		top: 57%;
	}
	.about-item:nth-of-type(3) .img-wrap .move-img .move-img-effect-1 {
		width: 10.667vw; /* 40px */
	}
	.txt-about-item {
		margin-top: 0;
	}
}
/* contents--test
____________________*/
.contents--test {
	padding-top: 120px;
	padding-bottom: 165px;
	background: linear-gradient(90deg, #004DA1 0%, #00B2FD 100%);
	position: relative;
	z-index: 1;
}
.test {
	color: var(--color-white-1);
}

.ttl-test {
	font-size: 34px;
	text-align: center;
	line-height: 1.6;
	position: relative;
	z-index: 2;
}
.test .txt-normal {
	color: var(--color-white-1);
	text-align: center;
	margin-top: 15px;
}
.card-wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 15px;
	margin-top: 35px;
}
.card-item {
	width: 239px;
	background: var(--color-white-1);
	border-radius: 10px;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 30px 29px;
}
.card-icon {
	width: 84px;
}
.ttl-test-name {
	color: var(--color-blue-1);
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	margin-top: 15px;
}
.txt-test {
	color: var(--color-black-2);
	font-size: 13px;
	font-weight: 500;
	line-height: 2;
	text-align: left;
	margin-top: 10px;
}
.slider-btn {
	display: none;
}
@media (max-width: 768px) {/*375-768*/
	.contents--test {
		padding-top: 50px;
		padding-bottom: 50px;
	}
	.test {
		padding-inline: 0;
	}
	.test .ttl-test {
		font-size: 25px;
		text-align: left;
		padding-inline: var(--cts-gutter);
	}
	.test .txt-normal {
		font-size: 14px;
		text-align: left;
		letter-spacing: 0;
		padding-inline: var(--cts-gutter);
	}
	.card-slider-container {
		position: relative; /* 親要素の位置基準 */
		width: 100%;
		overflow: hidden;
		padding: 30px 0 0;
		
		/* 上下の縦中央揃えを正確にするためFlex配置をセット */
		display: flex;
		align-items: center;
	}

	.card-slider-window {
		width: 100%; /* ウィンドウ幅いっぱいに広げる */
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-behavior: smooth;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.card-slider-window::-webkit-scrollbar {
		display: none;
	}

	.card-wrap {
		display: flex;
		flex-wrap: nowrap;
		justify-content: flex-start;
		gap: 15px;
		margin-top: 0;
		padding: 0 calc(50vw - 119.5px);
	}

	.card-item {
		flex: 0 0 239px;
		scroll-snap-align: center;
		scroll-snap-stop: always; /* 1回のフリックで1つずつしか移動しないように強制 */
		opacity: 0.5; /* 中央以外のカードを50%透過 */
		transition: opacity 0.3s ease, transform 0.3s ease; /* 滑らかに切り替え */
	}

	/* 中央に来たカードのスタイル */
	.card-item.is-active {
		opacity: 1; /* 100%表示 */
	}

	/* prev, next ボタン（縦中央配置の修正） */
	.slider-btn {
		display: flex;
		align-items: center;
		justify-content: center;
		position: absolute;
		top: 50%;
		transform: translateY(-50%); /* 自身の高さの半分だけ上に戻して完璧な縦中央に */
		width: 37px;
		height: 37px;
		background-color: var(--color-blue-1, #0056b3);
		border: 1px solid var(--color-white-1);
		border-radius: 50%;
		cursor: pointer;
		z-index: 10;
		box-shadow: 0 2px 5px rgba(0,0,0,0.2);
	}

	.prev-btn {
		left: 10px;
	}

	.next-btn {
		right: 10px;
	}

	/* くの字矢印 */
	.slider-btn::before {
		content: "";
		display: block;
		width: 10px;
		height: 10px;
		border-top: 2px solid #fff;
		border-right: 2px solid #fff;
	}

	.prev-btn::before {
		transform: rotate(-135deg);
		margin-left: 3px;
	}

	.next-btn::before {
		transform: rotate(45deg);
		margin-right: 3px;
	}
}
/* scene
____________________*/
.contents--scene {
	padding-top: clamp(3.125rem, 4.531vw + 2.064rem, 7.5rem);;
	background: var(--color-white-1);
}
.change-card-wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 30px 16px;
	margin-top: clamp(1.5625rem, 0.647vw + 1.411rem, 2.1875rem);
}
/* 親要素を相対配置にし、要素の高さを確保 */
.change-card-item {
	width: 100%;
	max-width: 583px;
	position: relative;
	/* 子要素を絶対配置にするため、コンテンツの高さ分の最小高さを指定（※高さに合わせて調整してください） */
	min-height: 615px; 
}

/* AとB共通スタイル：重ね合わせてアニメーション設定 */
.item-inner-a,
.item-inner-b {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	box-sizing: border-box; /* paddingが含まれても崩れないように設定 */
	padding: 40px 50px;
	border-radius: 10px;
	
	/* アニメーションの設定（0.4秒でフェード） */
	transition: opacity 0.4s ease, visibility 0.4s ease;
}

/* 初期状態：Aを表示、Bを非表示 */
.item-inner-a {
	opacity: 1;
	visibility: visible;
	background: var(--color-blue-4);
}

.item-inner-b {
	opacity: 0;
	visibility: hidden;
	background: var(--color-red-2);
}

/* クリック時（is-active付与時）：Aを非表示、Bを表示 */
.change-card-item.is-active .item-inner-a {
	opacity: 0;
	visibility: hidden;
}

.change-card-item.is-active .item-inner-b {
	opacity: 1;
	visibility: visible;
}
.change-card-ttl-set {
	display: flex;
	flex-direction: column;
	gap: 5px;
	margin-top: clamp(1.25rem, 0.647vw + 1.098rem, 1.875rem);
}
.txt-scene {
	color: var(--color-black-2);
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
}
.ttl-change {
	color: var(--color-blue-1);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.5;
}
.txt-change {
	font-size: clamp(0.875rem, 0.065vw + 0.86rem, 0.9375rem);
	font-weight: 500;
	line-height: 2;
	margin-top: 15px;
}
.change-btn-wrap {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 15px;
	margin-top: 15px;
}
.change-btn-wrap .txt-change-btn {
	font-size: clamp(0.875rem, 0.0647vw + 0.8598rem, 0.9375rem);
	font-weight: 700;
	border-width: 2px;
	border-style: solid;
	padding: 12px;
	box-sizing: border-box;
	position: relative;
}
.item-inner-a .change-btn-wrap .txt-change-btn {
	color: var(--color-blue-1);
	border-color: var(--color-blue-2);
	position: relative;
	z-index: 2;
}
.item-inner-a .change-btn-wrap .txt-change-btn::after,
.item-inner-b .change-btn-wrap .txt-change-btn::after {
	content: "";
	width: 100%;
	height: 100%;
	opacity: 0.1;
	position: absolute;
	top: 0;
	left: 0;
}
.item-inner-a .change-btn-wrap .txt-change-btn::after {
	background: var(--color-blue-2);
}
.item-inner-b .change-btn-wrap .txt-change-btn::after {
	background: var(--color-red-1);
}
.item-inner-b .change-btn-wrap .txt-change-btn {
	color: var(--color-red-1);
	border-color: var(--color-red-1);
}
/* アイコンのベーススタイル（共通） */
.change-mark {
	display: inline-block;
	position: relative;
	width: clamp(2.5rem, 0.647vw + 2.348rem, 3.125rem);
	height: clamp(2.5rem, 0.647vw + 2.348rem, 3.125rem);
	border-radius: 50%;
	flex-shrink: 0;
}

/* 内部の線（共通） */
.change-mark::before,
.change-mark::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	background-color: #ffffff; /* 線の色 */
	transform: translate(-50%, -50%);
	border-radius: 1px;
}

/* 横線（＋とーの共通パーツ） */
.change-mark::before {
	width: clamp(1rem, 0.259vw + 0.939rem, 1.25rem);
	height: 2px;
}

/* 縦線（＋専用パーツ） */
.change-mark::after {
	width: 2px;
	height: clamp(1rem, 0.259vw + 0.939rem, 1.25rem);
}

/* --- A（＋アイコン / 背景: #004DA0）--- */
.item-inner-a .change-mark {
	background-color: #004DA0;
}

/* --- B（ーアイコン / 背景: #E20000）--- */
.item-inner-b .change-mark {
	background-color: #E20000;
}

/* Bの場合は縦線（::after）を非表示にして「ー」にする */
.item-inner-b .change-mark::after {
	display: none;
}
@media (max-width: 768px) {/*375-768*/
	.scene {
		padding-inline: 15px;
	}
	.scene .ttl-set .ttl-h2 {
		margin-left: 25px;
	}
	.change-card-item {
		min-height: 150vw;
	}
	.item-inner-a, .item-inner-b {
		padding: 25px 28px;
	}
	.item-inner-a .change-btn-wrap,
	.item-inner-b .change-btn-wrap {
		border-width: 2px;
		border-style: solid;
		padding: 15px;
		position: relative;
		z-index: 2;
	}
	.item-inner-a .change-btn-wrap {
		border-color: var(--color-blue-2);
	}
	.item-inner-b .change-btn-wrap {
		border-color: var(--color-red-1);
	}
	.item-inner-a .change-btn-wrap::after,
	.item-inner-b .change-btn-wrap::after {
		content: "";
		width: 100%;
		height: 100%;
		opacity: 0.1;
		position: absolute;
		top: 0;
		left: 0;
	}
	.item-inner-a .change-btn-wrap::after {
		background: var(--color-blue-2);
	}
	.item-inner-b .change-btn-wrap::after {
		background: var(--color-red-1);
	}
	.item-inner-a .change-btn-wrap .txt-change-btn,
	.item-inner-b .change-btn-wrap .txt-change-btn {
		border: none;
		padding: 0;
	}
	.item-inner-a .change-btn-wrap .txt-change-btn::after,
	.item-inner-b .change-btn-wrap .txt-change-btn::after {
		content: none;
	}
}
/* line-up
____________________*/
.contents--line-up {
	padding-top: clamp(3.125rem, 4.531vw + 2.064rem, 7.5rem);
	padding-bottom: clamp(3.125rem, 4.531vw + 2.064rem, 7.5rem);
	background: var(--color-white-1);
}
.ttl-set-h3 {
	display: flex;
	align-items: center;
	gap: 24px;
	position: relative;
	z-index: 2;
	margin-top: clamp(3.125rem, 0.647vw + 2.973rem, 3.75rem);
}
.ttl-set-h3::after {
	content: "";
	width: 100%;
	height: 1px;
	background: var(--color-gray-1);
	display: block;
}
.ttl-set-h3 .ttl-h3 {
	font-size: clamp(1.1875rem, 0.388vw + 1.096rem, 1.5625rem);
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
}
/*外側*/
.model-card-wrapper{
	position:relative;
	margin-top: clamp(3.125rem, 0.647vw + 2.973rem, 3.75rem);
	width:100%;
}
/*リスト*/
.model-card-wrapper .model-card-list {
	position:relative;
	margin:auto;
	width:100%;
	display:flex;
	flex-wrap:wrap;
	gap:15px;

}
.model-card-wrapper .model-card-list {
	margin-top: 20px;
}
/*モデルカード*/
.model-card-wrapper .model-card-list > li {
	width:calc((100% - 45px) / 4);
	color: var(--cts-black-1);
	background:#fff;
	border:1px solid #a3a3a3;
	box-shadow: 3px 3px 0px 0px rgba(0, 0, 0, 0.1);
	padding:15px;
	display:flex;
	flex-direction: column;
	justify-content: space-between;
	text-align:center;
	line-height: 1.2;
}
.model-card-wrapper .model-card-list--horizontal>li {
	width: calc((100% - 15px) / 2);
}

.model-card-wrapper .model-card-list--horizontal>li>.grid-container.full {
	margin-left: 0;
	margin-right: 0;
}

/*モデルイメージ*/
.model-card-wrapper .model-card img{
	margin:0 auto var(--model-card-gap) auto !important;
	width:60% !important;
}
/*ディスプレイ表示*/
.model-card-wrapper .model-display{
	margin-top:-5px;
	margin-bottom:var(--model-card-gap);
	font-size: clamp(11px, 0.642rem + 0.23vw, 13px);
	line-height:1.2;
	text-align:center;
	padding:0.3em;
	color:#004da1;
	background:#d9f1fb;
}
/*モデル名*/
.model-card-wrapper .model-name{
	min-height: calc(1em * 1.4);
	margin-bottom:var(--model-card-gap);
	display: -webkit-box;
	overflow: hidden;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	line-height: 1.4;
	font-weight: 700;
	font-size: clamp(13px, 0.744rem + 0.34vw, 16px);
	text-align:left;
}
.model-card-wrapper .model-card-list--horizontal .model-logo {
	width: 100% !important;
}

/*-------------------------------------
　画像2枚併記
---------------------------------------*/
.card-images{
	position:relative;
	width:100%;
}
.model-card-wrapper .model-card .card-images img{
	width:100% !important;
}
.card-images .card__img{
	position:relative;
	width:100%;
	margin:auto;
}
.card-images .card__img-left{
	position:relative;
	width:60%;
	top:0;
	left:5%;
	z-index:2;
}
.card-images .card__img-right{
	position:absolute;
	width:60%;
	top:0;
	right:5%;
	z-index:1;
}
/*Insight調整 insight左側*/
.insight .card-images .card__img-left{
	width:55%;
	z-index: 1;
	left:0;
}
.insight .card-images .card__img-left img{
	padding-top:5px;
}
.insight .card-images .card__img-right{
	right: -5%;
	z-index: 2;
}

/*Insight調整 insight右側*/
.insight-right .card-images .card__img-left{
	left:-5%;
	z-index: 2;
}
.insight-right .card-images .card__img-right{
	width:55%;
	right: 0;
	z-index: 1;
}
.insight-right .card-images .card__img-right img{
	padding-top:5px;
}
/*スペック*/
.model-card-wrapper .model-spec{
	margin-bottom:var(--model-card-gap);
	font-size: clamp(11px, 0.642rem + 0.23vw, 13px);
	line-height:1.2;
	text-align:left;
}
.model-card-wrapper .model-spec > li {
	/*display: inline-block;*/
	display: block;
	position:relative;
	width:auto;
	padding-left:1em;
}
/*出荷状況*/
.model-stkname {
    color: #e43344;
    border: 1px solid #e43344;
	border-radius: 3px;
    padding: 0.2em 0.5em;
	margin: 10px auto;
    width: fit-content;
}

.model-card-wrapper .model-spec li {
	list-style: none;
	height: 1.6em;
	display: -webkit-box !important;
	overflow: hidden;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	font-size:clamp(13px, 0.756rem + 0.24vw, 15px);
		padding: 0.2em 0;
		border-bottom: 1px solid #b6b6b6;
}
#event-sale .model-review{
	width:fit-content;
	margin:10px 0;
	font-size:90%;
}
#event-sale .model-img-cols .model-review{
	margin:10px auto 0 auto;
}
/*金額*/
.model-card-wrapper .model-price{
	color: #e43344;
	text-align:left;
	margin-bottom:var(--model-card-gap);
	font-size: clamp(12px, 0.705rem + 0.23vw, 14px);

}
.model-card-wrapper .model-price span{
	font-size: clamp(18px, 1.034rem + 0.45vw, 22px);
	font-weight: 700;
}
/*object*/
.model-card-wrapper .model-card object{
	width:100%;
}

/*詳しくはこちら*/
.model-card-wrapper .model-button{
	width:100%;
	height:44px;
	font-size:clamp(12px, 0.659rem + 0.45vw, 16px);
	padding-right:10px;
	margin-bottom:0;
}
@media screen and (max-width: 767px) {
	.model-card-wrapper .model-card-list {
		flex-direction: column;
	}
	.model-card-wrapper .model-card-list--horizontal>li {
		width: 100%;
	}
	.model-card-wrapper .model-button{
		padding-right:10px;
	}
	.model-card-wrapper .model-button::after{
		right: 10px;
	}
}

/*----------------------------
SMBC
-----------------------------*/
.smbc-item{
	margin-bottom:var(--model-card-gap);
	font-size: clamp(12px, 0.705rem + 0.23vw, 14px);
	text-align:left;
}
.smbc-item .js-products-show_fee-modal-recommend{
	color:#00a1e8;
	text-decoration: underline;
}
.smbc-item .recItemPrice span{
  font-size: clamp(18px, 1.034rem + 0.45vw, 22px);
  font-weight: 700;
}
.smbc-item svg {
  height: 1em;
  margin-left: 0.25em;
  vertical-align: middle;
}

.smbc-item .recItemIcon {
  background: none;
  color: #484848;
  font-size: clamp(12px, 0.705rem + 0.23vw, 14px);
  padding: 0;
}
.smbc-item svg:hover,
.smbc-item .js-products-show_fee-modal-recommend:hover{
  cursor: pointer;
}
.smbc-item .recItemPrice{
    color: #e43344;
}

/*----------------------------
モデルリスト下部リンク
-----------------------------*/
.more-link{
  margin-top:20px;
}
.more-link+.more-link{
  margin-top:10px;
}
.more-link .c-button--primary-white {
  width: 60%;
  margin: auto;
  line-height:1.2;
}

@media screen and (max-width: 767px) {
  .more-link .c-button--primary-white {
    width: 100%;
    text-align: center;
    line-height: 1.2;
    padding-top: 10px;
    padding-bottom: 10px;
    height: auto;
	}
}
/* faq
____________________*/
.contents--faq {
	padding-top: clamp(3.125rem, 4.531vw + 2.064rem, 7.5rem);
}
.faq .ttl-h2 {
	color: var(--color-blue-1);
	font-size: clamp(1.5625rem, 0.583vw + 1.426rem, 2.125rem);
	text-align: center;
	line-height: 1.5;
}

.faq-container {
	margin: clamp(1.25rem, 1.942vw + 0.795rem, 3.125rem) auto 0;
	font-family: sans-serif;
	border-top: 1px solid var(--color-gray-1);
}

.faq-item {
	border-bottom: 1px solid var(--color-gray-1);
}

.faq-question {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: clamp(1.25rem, 0.971vw + 1.022rem, 2.1875rem) clamp(0rem, 2.265vw - 0.531rem, 2.1875rem);
	cursor: pointer;
	font-weight: bold;
	color: var(--color-blue-1);
	font-size: clamp(0.9375rem, 0.194vw + 0.892rem, 1.125rem);
	line-height: 1.9;
	letter-spacing: 0;
	list-style: none;
}

.faq-question::-webkit-details-marker {
	display: none;
}

/* アイコン装飾 */
.icon {
	position: relative;
	width: clamp(2.5rem, 0.647vw + 2.348rem, 3.125rem);
	height: clamp(2.5rem, 0.647vw + 2.348rem, 3.125rem);
	background-color: var(--color-blue-2);
	border-radius: 50%;
	flex-shrink: 0;
	margin-left: 16px;
}

.icon::before,
.icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	background-color: var(--color-white-1);
	transform: translate(-50%, -50%);
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.icon::before {
	width: 20px;
	height: 2px;
}

.icon::after {
	width: 2px;
	height: 20px;
}

/* 開いたときのアイコン（＋からーへ） */
.faq-item[open] .icon::after {
	transform: translate(-50%, -50%) rotate(90deg);
	opacity: 0;
}

/* アニメーション用スタイル */
.faq-answer {
	overflow: hidden;
	transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.faq-answer-inner {
	padding: 0 20px clamp(1.25rem, 0.259vw + 1.189rem, 1.5rem) clamp(0rem, 1.294vw - 0.304rem, 1.25rem);
	color: #333333;
	font-size: 15px;
	line-height: 1.8;
}

.faq-answer-inner p {
	margin: 0;
}
.faq-answer-inner p.bold {
	font-weight: 700;
}
.ttl-caution {
	color: var(--color-blue-1);
	font-size: clamp(0.75rem, 0.194vw + 0.705rem, 0.9375rem);
	font-weight: 700;
	line-height: 1;
	width: fit-content;
	border: 2px solid var(--color-blue-1);
	padding: clamp(0.3125rem, 0.324vw + 0.237rem, 0.625rem);
	display: block;
	margin: clamp(1.875rem, 3.236vw + 1.117rem, 5rem) auto 0;
}
.txt-caution {
	font-size: 11px;
	text-align: center;
	line-height: 1.8;
	letter-spacing: 0.005em;
	margin-top: clamp(0.9375rem, 0.324vw + 0.862rem, 1.25rem);
}
/* other
____________________*/
.contents--other {
	padding-top: clamp(3.125rem, 4.531vw + 2.064rem, 7.5rem);
	padding-bottom: clamp(3.125rem, 4.531vw + 2.064rem, 7.5rem);
	overflow: hidden;
}
.other .ttl-h2 {
	color: var(--color-blue-1);
	font-size: clamp(1.5625rem, 0.583vw + 1.426rem, 2.125rem);
	text-align: center;
}
.bnr-safety {
	width: 100%;
	height: auto;
	background: url(../../note/img/mil-std/bg-safety.webp)no-repeat left top/100%;
	aspect-ratio: 1200/250;
	padding: 45px 85px;
	margin-top: clamp(1.25rem, 1.294vw + 0.947rem, 2.5rem);
	position: relative;
	z-index: 1;
}
.bnr-safety .ttl-safety {
	width: 463px;
	position: relative;
	z-index: 2;
}
.bnr-safety .txt-safety {
	color: var(--color-gray-2);
	font-size: 21px;
	font-weight: 500;
	line-height: 1.7;
	padding-top: 30px;
	position: relative;
	z-index: 2;
}
.bnr-safety .img-sagety {
	width: 251px;
	position: absolute;
	z-index: 3;
	top: 0;
	right: 188px;
}
.txt-other {
	color: var(--color-blue-1);
	font-size: clamp(0.9375rem, 0.453vw + 0.831rem, 1.375rem);
	font-weight: 500;
	text-align: center;
	line-height: 2;
	margin-top: clamp(1.5625rem, 0.971vw + 1.334rem, 2.5rem);
}
.wide-block {
	position: relative;
	z-index: 2;
	padding: clamp(0.3125rem, -0.971vw + 1.478rem, 1.25rem) 0 clamp(1.875rem, -0.647vw + 2.654rem, 2.5rem);
	margin-top: clamp(1.875rem, 1.294vw + 1.572rem, 3.125rem);
}
.wide-block::after {
	content: "";
	width: 100vw;
	height: 100%;
	background: var(--color-white-1);
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	z-index: -2;
}
.wide-block .txt-wide {
	font-size: clamp(1.125rem, 0.971vw + 0.897rem, 2.0625rem);
	font-weight: 700;
	line-height: 1.7;
	text-align: center;
	position: relative;
	z-index: 2;
}
.wide-block .txt-wide .font-xl,
.wide-block .txt-wide .font-l {
	color: var(--color-blue-2);
}
.wide-block .txt-wide .font-xl {
	font-size: clamp(3.125rem, 1.165vw + 2.852rem, 4.25rem);
}
.wide-block .txt-wide .font-l {
	font-size: clamp(1.5625rem, 1.1vw + 1.305rem, 2.625rem);
}
.wide-block .txt-wide-m {
	font-size: clamp(0.875rem, 0.388vw + 0.784rem, 1.25rem);
	font-weight: 700;
	line-height: 1.7;
	text-align: center;
}
.menu-list{
	display:grid;
	grid-template-columns: repeat(2,1fr);
	gap:clamp(10px, 0.398rem + 1.14vw, 20px);
	margin-top: 50px;
}

.menu-list > li{
	position:relative;
	background:#fff;
	border:2px solid #004da1;
	border-radius:clamp(10px, 0.398rem + 1.14vw, 20px);
}
.menu-list > li:hover{
	cursor: pointer;
	outline: 1px solid rgba(0, 162, 230, 0.5);
	filter: drop-shadow(0 0 5px rgba(0, 162, 230, 0.5));
}

.menu-list .menu-item{
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	justify-content: space-between;
	padding:clamp(15px, 0.795rem + 0.61vw, 20px);
}

.menu-list h3{
	font-size:clamp(12px, 0.53rem + 0.73vw, 22px);
	color:#004da1;
	font-weight:700;
	margin-bottom:clamp(10px, 0.398rem + 1.14vw, 20px);
}

.menu-list .menu-wrap{
	width:100%;
	display:flex;
	gap: clamp(5px, -0.195rem + 2.27vw, 40px);
	align-items: center;
}

.menu-list .menu-img{
	width:35%;
}

.menu-list .menu-txt{
	flex:1;
	display:flex;
	flex-direction: column;
	justify-content: space-between;
}
.menu-list .menu-txt-list li{
	list-style-type: disc;
	margin-bottom:10px;
	margin-left:1.5em;
	font-size:clamp(11px, 0.359rem + 0.45vw, 16px);
	line-height:1.2;
}
.menu-list .menu-txt-list li:has(h4){
	list-style-type: none;
	margin-left:0;
}
.menu-list .menu-txt-list h4{
	font-weight:700;
}
.menu-list .c-panel-arrow::after {
    background-color: #ececec;
    border-radius: 2rem;
    right: 12px;
    bottom: 12px;
}
.menu-list .c-panel-arrow::before {
    right: 19px;
    bottom: 18px;
    border-color: #a3a3a3;
}
@media (max-width: 1314px) and (min-width: 768px) {
	.bnr-safety {
		padding: 3.425vw 6.469vw;
	}
	.bnr-safety .ttl-safety {
		width: 35.236vw;
	}
	.bnr-safety .txt-safety {
		font-size: 1.598vw;
		padding-top: 2.283vw;
	}
	.bnr-safety .img-sagety {
		width: 19.102vw;
		right: 14.307vw;
	}
}
@media screen and (max-width: 767px) {
	.bnr-safety {
		background: url(../../note/img/mil-std/bg-safety.webp) no-repeat left top / 170%;
		padding: 4vw; /* 15px */
		aspect-ratio: 309/112;
	}
	.bnr-safety .ttl-safety {
		width: 40.8vw; /* 153px */
	}
	.bnr-safety .txt-safety {
		font-size: 3.2vw; /* 12px */
		letter-spacing: 0;
		padding-top: 1.333vw; /* 5px */
	}
	.bnr-safety .img-sagety {
		width: 29.867vw; /* 112px */
		top: 0;
		right: 0;
	}
	.wide-block .txt-wide-m {
		text-align: left;
		margin-top: 20px;
	}
	.menu-list{
		grid-template-columns: repeat(1,1fr);
	}
	.menu-list .menu-img {
		width: 32%;
	}
	.menu-list .menu-txt-list li {
		margin-bottom: 5px;
	}
}
.other-btn-wrap {
	width: 100%;
	max-width: 633px;
	margin: 30px auto 0;
}
.other-btn-wrap .c-button {
	font-size: clamp(0.9375rem, 0.194vw + 0.892rem, 1.125rem);
	font-weight: 500;
	width: 100%;
	height: clamp(3.75rem, 0.971vw + 3.522rem, 4.6875rem);
}

.pagetop-btn {
  position: fixed;
  right: 40px;
  bottom: 40px;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: #004bb1;
  border: none;
  cursor: pointer;
  z-index: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);

  /* 初期状態: 非表示 */
  opacity: 0;
  visibility: hidden;
  transform: translateY(0);
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease, background-color 0.3s ease;
}

/* スクロール検知でフェードイン */
.pagetop-btn.is-visible {
  opacity: 1;
  visibility: visible;
}

/* ホバー時に少し上に浮き上がる */
@media (hover: hover) {
  .pagetop-btn:hover {
    transform: translateY(-5px);
    background-color: #003680;
  }
}

/* 矢印アイコン（「^」マーク） */
.pagetop-btn__arrow {
  display: block;
  width: 12px;
  height: 12px;
  border-top: 3px solid #ffffff;
  border-left: 3px solid #ffffff;
  transform: translateY(2px) rotate(45deg);
}

/* スマホ表示時の調整 */
@media screen and (max-width: 768px) {
  .pagetop-btn {
    right: 16px;
    bottom: 16px;
    width: 44px;
    height: 44px;
  }

  .pagetop-btn__arrow {
    width: 10px;
    height: 10px;
  }
}