@charset "UTF-8";
@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 400;
  src: url("font/NotoSansJP-Regular.woff") format("woff");
}
@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 500;
  src: url("font/NotoSansJP-Medium.woff") format("woff");
}
@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 700;
  src: url("font/NotoSansJP-Bold.woff") format("woff");
}
@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 900;
  src: url("font/NotoSansJP-Black.woff") format("woff");
}
abbr, address, article, aside, audio, b, blockquote, body, canvas, caption, cite, code, dd, del, details, dfn, div, dl, dt, em, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, html, i, iframe, img, ins, kbd, label, legend, li, mark, menu, nav, object, ol, p, pre, q, samp, section, small, span, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr, ul, var, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

body, html {
  height: 100%;
}

html {
  scroll-behavior: smooth;
}

body {
  line-height: 1;
  font-family: Noto Sans JP, Helvetica Neue, Arial, Hiragino Kaku Gothic ProN, Hiragino Sans, Meiryo, sans-serif;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, picture, section {
  display: block;
}

ul, ol {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:after, blockquote:before, q:after, q:before {
  content: "";
  content: none;
}

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

ins {
  text-decoration: none;
}

ins, mark {
  background-color: #ff9;
  color: #000;
}

mark {
  font-style: italic;
  font-weight: 700;
}

del {
  text-decoration: line-through;
}

abbr[title], dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0;
}

input, select {
  vertical-align: middle;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

li {
  padding-left: 0;
}

button {
  background-color: transparent;
  border: none;
  padding: 0;
}

picture, figure {
  display: block;
}

small {
  opacity: 1;
}

/* フッターを一番下に配置 */
/* height: 100vh;を定義したのに、iOSのスマホで高さいっぱいに表示されないのを解決する記述 */
body {
  min-height: 100vh;
  /* mobile viewport bug fix */
  min-height: -webkit-fill-available;
  scroll-behavior: smooth;
}

html {
  height: -webkit-fill-available;
}

html, body {
  height: 100%;
}

:root {
  --w-sm: 576px;
  --w-md: 768px;
  --w-lg: 992px;
  --w-xl: 1200px;
  --w-xxl: 1400px;
  /* height:0;からheight:'auto'へのアニメーションを可能にする */
  interpolate-size: allow-keywords;
  /* アンカーリンクに固定ヘッダー分の余白を確保する */
  --header-size-pc: 68px;
  --header-size-sp: min(12.18vw,78px);
  --scroll-margin-pc: var(--header-size-pc);
  --scroll-margin-sp: var(--header-size-sp);
  --primary-color: #355075;
  --primary-dark: #0f2441;
  --secondary-color: #ccd3d9;
  --accent-color: #cf072b;
  --text-color: #231815;
  --border-color: #221714;
  --gray-color: #e9ecef;
  --icn-color: #595757;
}

/* アンカー対象 */
@media (min-width: 768px) {
  [id], :focus {
    scroll-margin-block-start: var(--scroll-margin-pc);
  }
}
@media (max-width: 767.98px) {
  [id], :focus {
    scroll-margin-block-start: var(--scroll-margin-sp);
  }
}
button {
  color: var(--text-color);
}

/* ====================================
#header
===================================== */
#header {
  background-color: #fff;
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
}

#logo {
  display: block;
}

#btn_menu {
  cursor: pointer;
  border: none;
  background-color: transparent;
  padding: 0;
}
#btn_menu:hover .icn-btn-menu {
  background-color: var(--primary-color);
}
#btn_menu:hover .icn-btn-menu::before, #btn_menu:hover .icn-btn-menu::after {
  background-color: var(--primary-color);
}
#btn_menu.active .icn-btn-menu {
  background-color: transparent;
}
#btn_menu.active .icn-btn-menu::before {
  transform: rotate(-30deg);
  top: 0;
}
#btn_menu.active .icn-btn-menu::after {
  transform: rotate(30deg);
  bottom: 0;
}
#btn_menu .icn-btn-menu {
  display: block;
  height: 2px;
  left: 0;
  width: 100%;
  text-indent: -9999px;
  position: relative;
  background-color: #000;
}
#btn_menu .icn-btn-menu::before, #btn_menu .icn-btn-menu::after {
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  position: absolute;
  background-color: currentColor;
  transition: transform 0.3s ease;
}
#btn_menu .icn-btn-menu::before {
  transform-origin: 50% 0;
}
#btn_menu .icn-btn-menu::after {
  transform-origin: 50% 100%;
}

@media print, screen and (min-width: 768px) {
  #header::after {
    content: "";
    display: block;
    clear: both;
  }
  #header .container {
    height: var(--header-size-pc);
  }
  #logo {
    width: 212px;
    height: 20px;
  }
  #btn_menu {
    width: 53px;
    height: 31px;
  }
  .icn-btn-menu {
    width: 53px;
  }
  .icn-btn-menu::before {
    top: -14px;
  }
  .icn-btn-menu::after {
    bottom: -14px;
  }
}
@media only screen and (max-width: 767px) {
  #header .container {
    height: var(--header-size-sp);
  }
  #logo {
    width: min(40.16vw, 257px);
    height: min(3.91vw, 25px);
  }
  #btn_menu {
    width: min(9.69vw, 62px);
    height: min(5.63vw, 36px);
  }
  .icn-btn-menu::before {
    top: min(-1.56vw, -10px);
  }
  .icn-btn-menu::after {
    bottom: min(-1.56vw, -10px);
  }
}
.bar {
  background-color: var(--text-color);
  display: flex;
  align-items: center;
  justify-content: center;
  height: var(--header-size-sp);
}
@media screen and (min-width: 768px) {
  .bar {
    height: var(--header-size-pc);
  }
}

@media only screen and (max-width: 767px) {
  .bar-logo {
    width: min(77.03vw, 493px);
    height: min(4.38vw, 28px);
  }
}
.alert {
  background-color: var(--secondary-color);
  text-align: center;
  padding: 0.5em 0;
  line-height: 1;
  font-size: min(3.13vw, 20px);
}
@media screen and (min-width: 768px) {
  .alert {
    font-size: 0.75rem;
  }
}

/* #ganvList
===================================== */
#ganv {
  width: 100%;
  background-color: var(--primary-dark);
  opacity: 0;
  height: 0;
  overflow: hidden;
  box-sizing: border-box;
  transition: opacity 0.5s ease-in, height 0.5s ease-in;
}
#ganv a {
  display: block;
  color: var(--secondary-color);
  font-weight: 700;
  color: #fff;
}
#ganv.active {
  opacity: 1;
  height: auto;
  max-height: calc(100dvh - var(--header-size-sp));
  overflow-y: auto;
}
@media screen and (min-width: 768px) {
  #ganv.active {
    max-height: calc(100dvh - var(--header-size-pc));
  }
}

#ganvList li {
  border-bottom: 1px solid var(--secondary-color);
}
#ganvList a::after {
  content: "";
  display: inline-block;
  background-color: var(--secondary-color);
  mask-image: url(../image/icn-arrow-bdr.svg);
  mask-repeat: no-repeat;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto 0;
}

.btn-close {
  cursor: pointer;
  margin: 0 auto;
  border: 1px solid var(--primary-color);
  color: var(--primary-dark);
  background-color: var(--secondary-color);
  position: relative;
}
.btn-close::before {
  content: "";
  display: inline-block;
  background-color: var(--primary-color);
  mask-image: url(../image/icn-close.svg);
  mask-repeat: no-repeat;
}
.btn-close:hover {
  color: var(--primary-dark);
  background-color: #fff;
}

@media print, screen and (min-width: 768px) {
  #ganv {
    float: right;
  }
  #ganv.active {
    padding-bottom: 20px;
  }
  #ganvList {
    width: 780px;
    margin: 0 auto 20px;
  }
  #ganvList a {
    padding: 1em;
    font-size: 1.25rem;
    line-height: 1;
    transition: opacity 0.3s ease;
  }
  #ganvList a::after {
    right: 1em;
    width: 38px;
    height: 22px;
    transition: background-color 0.3s ease;
  }
  #ganvList a:hover {
    opacity: 0.8;
  }
  .btn-close {
    height: 44px;
    font-size: 1.125rem;
    border-radius: 10px;
    padding-inline: 20px 32px;
    transition: all 0.3s ease;
  }
  .btn-close::before {
    width: 16px;
    height: 16px;
    margin-right: 16px;
  }
}
@media only screen and (max-width: 767px) {
  #ganv.active {
    padding-bottom: min(5.63vw, 36px);
  }
  #ganvList {
    margin-bottom: min(5.63vw, 36px);
  }
  #ganvList a {
    padding: min(3.13vw, 20px) min(17.19vw, 110px) min(3.13vw, 20px) min(6.25vw, 40px);
    font-size: min(5vw, 32px);
    line-height: 1.44;
  }
  #ganvList a::after {
    right: min(6.88vw, 44px);
    width: min(5.94vw, 38px);
    height: min(3.44vw, 22px);
  }
  .btn-close {
    width: min(75%, 480px);
    font-size: min(4.69vw, 30px);
    height: min(11.25vw, 72px);
    border-radius: min(2.5vw, 16px);
    padding-right: min(6.56vw, 42px);
  }
  .btn-close::before {
    width: min(4.06vw, 26px);
    height: min(4.06vw, 26px);
    margin-right: min(2.5vw, 16px);
  }
}
/* ====================================
layout
===================================== */
.reverce {
  flex-direction: row-reverse;
}

.row {
  display: flex;
  align-items: center;
}

.container {
  margin: 0 auto;
  position: relative;
  box-sizing: border-box;
}

.justify-center {
  justify-content: center;
}

.justify-between {
  justify-content: space-between;
}

.bg-primary {
  background-color: var(--primary-color);
  color: #fff;
}

.bg-color {
  background-color: var(--secondary-color);
}

.bg-gray {
  background-color: var(--gray-color);
}

.notice li, p.notice {
  margin-left: 1em;
  text-indent: -1em;
  line-height: 1.35;
  font-feature-settings: "palt";
}
@media screen and (min-width: 768px) {
  .notice li, p.notice {
    margin-left: 1.3em;
    text-indent: -1.3em;
  }
}

.notice02 li, p.notice02 {
  margin-left: 2.3em;
  text-indent: -2.3em;
  line-height: 1.35;
}

.notice li + li, .notice02 li + li {
  margin-top: 0.5em;
}

.title02, .title02-sub {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background-color: var(--text-color);
  font-weight: 500;
}
.title02.ttl-lg, .title02-sub.ttl-lg {
  height: min(13.44vw, 86px);
}
@media screen and (min-width: 768px) {
  .title02.ttl-lg, .title02-sub.ttl-lg {
    height: 112px;
  }
  .title02.ttl-lg .txt-nuro, .title02-sub.ttl-lg .txt-nuro {
    margin-right: 1.25rem;
  }
}

.title03 {
  font-weight: 700;
}

.section picture, .section figure {
  text-align: center;
}
.section img {
  margin-inline: auto;
}

a.link-text {
  color: var(--primary-color);
  text-decoration: underline;
}
a.link-text:hover {
  text-decoration: none;
}

.pagetop {
  opacity: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--primary-color);
  position: fixed;
  bottom: 20px;
  z-index: 50;
  border-radius: 50%;
  box-shadow: rgba(0, 0, 0, 0.16) 0px 10px 36px 0px, rgba(0, 0, 0, 0.06) 0px 0px 0px 1px;
  transition: opacity 0.3s ease;
}

.pagetop.visible {
  opacity: 1;
}

.pagetop:before {
  content: "";
  display: block;
  width: 26%;
  height: 26%;
  border-width: 3px 3px 0 0;
  border-color: #fff;
  border-style: solid;
  transform: rotate(-45deg);
  margin-top: 13%;
}

.pagetop-txt {
  display: none;
}

@media (min-width: 1360px) {
  .pagetop {
    right: calc((100vw - 1150px) / 2 - 100px);
  }
}
@media (min-width: 768px) and (max-width: 1359px) {
  .pagetop {
    right: 10px;
  }
}
@media (min-width: 768px) {
  body {
    padding-top: var(--header-size-pc);
  }
  .container {
    max-width: 780px;
    width: 94%;
  }
  .section {
    padding: 50px 0 70px;
  }
  .section p:not(.notice):not(.notice02), .section .list-dot li {
    line-height: 1.63;
  }
  .section p + .notice {
    margin-top: 0.5em;
  }
  .section hr {
    margin-block: 2em;
  }
  .row-lg {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
  }
  .row-lg.col02 > div {
    width: 50%;
  }
  .reverce-lg {
    flex-direction: row-reverse;
  }
  .align-lg {
    align-items: center;
  }
  .pc-only {
    display: block;
  }
  .sp-only {
    display: none;
  }
  .pagetop {
    width: 80px;
    height: 80px;
  }
  .pagetop:hover {
    opacity: 0.6;
  }
  .notice li, p.notice, .notice02 li, p.notice02 {
    font-size: 0.875rem;
    line-height: 1.33;
  }
}
@media (max-width: 767px) {
  body {
    padding-top: var(--header-size-sp);
  }
  .container {
    width: min(90.63%, 580px);
  }
  img {
    width: 100%;
  }
  .pagetop {
    width: min(13.3vw, 100px);
    height: min(13.3vw, 100px);
  }
  .pagetop {
    right: 2.3%;
    bottom: min(1.56vw, 10px);
    transition: bottom 0.8s ease;
  }
  .section {
    padding: min(9.38vw, 60px) 0 min(10.94vw, 70px);
  }
  .section p:not(.notice):not(.notice02):not(.sec-lead) {
    font-size: min(4.06vw, 26px);
    line-height: 1.54;
  }
  .section p + .notice {
    margin-top: min(4.38vw, 28px);
  }
  .section hr {
    margin-block: 1.69em;
  }
  .row-sp {
    display: flex;
  }
  .pc-only {
    display: none;
  }
  .sp-only {
    display: block;
  }
  .notice li, p.notice, .notice02 li, p.notice02 {
    font-size: min(3.13vw, 20px);
  }
}
/* box */
.box {
  background-color: #fff;
  position: relative;
  box-sizing: border-box;
  border-radius: min(1.56vw, 10px);
}
.box + .box {
  margin-top: min(6.25vw, 40px);
}
.box .acd-trigger {
  height: min(29.38vw, 188px);
  padding: min(1.88vw, 12px);
}
@media screen and (min-width: 768px) {
  .box .acd-trigger {
    height: inherit;
    padding: 1.5625rem 2.25rem;
  }
}
.box.acd .acd-content-inner {
  padding: 0 min(1.88vw, 12px) min(5.31vw, 34px);
}
@media screen and (min-width: 768px) {
  .box.acd .acd-content-inner {
    padding: 1.5625rem 2.25rem;
  }
}
@media screen and (min-width: 768px) {
  .box {
    padding: 1.5625rem 2.25rem;
  }
  .box.acd {
    padding: 0;
  }
  .box.acd .acd-content-inner {
    padding-top: 0;
  }
  .box + .box {
    margin-top: 12px;
  }
}
.box.primary {
  background-color: var(--primary-dark);
  color: #fff;
}
.box.bg-gray {
  background-color: var(--gray-color);
}

.bdr-box {
  border: 1px solid var(--text-color);
  box-sizing: border-box;
  padding: min(6.25vw, 40px) min(3.13vw, 20px);
}
@media screen and (min-width: 768px) {
  .bdr-box {
    padding: 0;
  }
}

/* table */
.table02 {
  border: 1px solid #d2d2d3;
  width: 100%;
  margin-bottom: 0.625em;
}
.table02 caption {
  font-weight: 700;
  border-width: 1px 1px 0;
  border-style: solid;
  border-color: #d2d2d3;
}
.table02 caption, .table02 th, .table02 td {
  padding: 0.5em;
  line-height: 1.2;
}
.table02 th, .table02 td {
  border: 1px solid #d2d2d3;
}
.table02 th {
  font-weight: 500;
  text-align: left;
}
@media screen and (min-width: 768px) {
  .table02 {
    font-size: 1.4375rem;
    margin-bottom: 0.625rem;
  }
}
.table02 caption {
  background-color: #ccd3d9;
}
.table02 tr:nth-child(even) th, .table02 tr:nth-child(even) td {
  background-color: #e9ecef;
}
.table02 td {
  text-align: right;
}

@media screen and (min-width: 768px) {
  .table02 + .notice {
    text-align: right;
  }
}

/* ====================================
button
===================================== */
.btn,
::file-selector-button { /* ファイル選択のボタン */
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  position: relative;
  text-decoration: none;
  touch-action: manipulation; /* スマホでボタンをタップした際の誤動作を防止 */
  user-select: none; /* ボタンのテキストの意図しない選択 */
  font-weight: 700;
}
.btn:hover,
::file-selector-button:hover {
  text-decoration: none;
}

*:focus-visible { /* フォーカス時のoutline */
  outline: 2px solid magenta;
  outline-offset: 2px;
}

.btnArea {
  text-align: center;
  padding-top: min(4.69vw, 30px);
  box-sizing: border-box;
}
.btnArea.kv-btnArea {
  background-color: #000;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: fixed;
  z-index: 5;
  bottom: 0;
  left: 0;
  padding: 10px 5%;
  box-sizing: border-box;
  color: #fff;
}
@media screen and (min-width: 768px) {
  .btnArea.kv-btnArea {
    padding: 10px 0;
    position: relative;
    bottom: inherit;
    left: inherit;
  }
}
@media only screen and (max-width: 767px) {
  .btnArea.kv-btnArea.fixed {
    box-shadow: 0 -5px 10px rgba(0, 0, 0, 0.4);
  }
}
@media only screen and (max-width: 767px) and (min-width: 768px) {
  .btnArea.kv-btnArea.fixed {
    position: fixed;
    z-index: 5;
    bottom: 0;
    left: 0;
  }
}
@media only screen and (max-width: 767px) and (min-width: 768px) {
  .btnArea.kv-btnArea.fixed .btn-primary {
    height: 3.5rem;
    font-size: 1.25rem;
  }
}
.btnArea.kv-btnArea .notice {
  margin-top: 0.5em;
}
.btnArea .btn-primary {
  margin-inline: auto;
  position: relative;
  background-color: var(--accent-color);
  color: #fff;
  border: 1px solid var(--accent-color);
  height: min(14.06vw, 90px);
  font-size: min(4.69vw, 30px);
  width: 100%;
  border-radius: min(1.88vw, 12px);
  transition: all 0.3s ease-in;
}
.btnArea .btn-primary:hover {
  background-color: #fff;
  color: var(--accent-color);
}
@media screen and (min-width: 768px) {
  .btnArea .btn-primary {
    font-size: 1.5625rem;
    height: 68px;
    max-width: 485px;
    width: 100%;
  }
}
.btnArea .btn-primary::after {
  content: "";
  display: block;
  background-color: #fff;
  mask-image: url(../image/icn-arrow.svg);
  mask-repeat: no-repeat;
  transform: rotate(-90deg);
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto 0;
  width: min(3.91vw, 25px);
  height: min(3.44vw, 22px);
  right: min(1.88vw, 12px);
}
@media screen and (min-width: 768px) {
  .btnArea .btn-primary::after {
    width: 13.5px;
    height: 12px;
    right: 10px;
  }
}
.btnArea .btn-primary:hover::after {
  background-color: var(--accent-color);
}
.btnArea .notice {
  margin-top: min(2.81vw, 18px);
}
@media screen and (min-width: 768px) {
  .btnArea .notice {
    font-size: 1.0625rem;
    margin-top: 8px;
  }
}

@media print, screen and (max-width: 767px) {
  .section .btnArea {
    display: none;
  }
}
/* accordion */
.acd:not(.acd-faq) .acd-trigger::after {
  content: "";
  display: inline-block;
  background-color: var(--icn-color);
  mask-image: url(../image/icn-down.svg);
  mask-repeat: no-repeat;
  mask-position: 0 0;
  mask-size: 100% auto;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto 0;
  transition: transform 0.3s ease-in;
  width: min(4.69vw, 30px);
  height: min(4.69vw, 30px);
  right: min(3.59vw, 23px);
}
@media screen and (min-width: 768px) {
  .acd:not(.acd-faq) .acd-trigger::after {
    right: 1.875rem;
  }
}

.acd-trigger {
  display: flex;
  align-items: center;
  cursor: pointer;
  position: relative;
  width: 100%;
  font-weight: 700;
}
.acd-trigger.no-btn {
  cursor: default;
}

.acd-content {
  height: 0;
  overflow: hidden;
  transition: height 0.3s ease-in;
}

.acd.active .acd-trigger::after {
  transform: rotate(180deg);
}
.acd.active .acd-content {
  height: auto;
}

.acd01 .acd-trigger {
  border-top: 1px solid var(--text-color);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  font-size: min(5.63vw, 36px);
  min-height: min(12.81vw, 82px);
  padding-block: 0.3em;
  box-sizing: border-box;
}
@media screen and (min-width: 768px) {
  .acd01 .acd-trigger {
    font-size: 1.375rem;
    height: min-rem(66px);
  }
}
.acd01 .acd-content .acd-content-inner {
  padding: min(4.06vw, 26px);
}
@media screen and (min-width: 768px) {
  .acd01 .acd-content .acd-content-inner {
    padding: 1.5rem 3.5rem;
  }
}
.acd01 .acd-content dl {
  margin: 0 auto;
  width: 100%;
  flex-wrap: wrap;
}
.acd01 .acd-content dl + dl {
  margin-top: min(8.75vw, 56px);
  margin-bottom: min(7.81vw, 50px);
}
@media screen and (min-width: 768px) {
  .acd01 .acd-content dl + dl {
    margin-bottom: 4.375rem;
  }
}
.acd01 .acd-content dl dt {
  letter-spacing: 0.1em;
  font-weight: 700;
  line-height: 1;
  font-size: min(8.13vw, 52px);
  margin-right: min(4.06vw, 26px);
  box-sizing: border-box;
  width: min(21.88vw, 140px);
}
@media screen and (min-width: 768px) {
  .acd01 .acd-content dl dt {
    font-size: 3.25rem;
    margin-right: 2.75rem;
    width: 8.75rem;
  }
}
.acd01 .acd-content dl dt sup {
  font-size: min(3.13vw, 20px);
  font-weight: 400;
  vertical-align: top;
  line-height: 1;
}
@media screen and (min-width: 768px) {
  .acd01 .acd-content dl dt sup {
    font-size: 0.875rem;
  }
}
.acd01 .acd-content dl dd {
  flex: 1;
  font-weight: 500;
  font-size: min(3.59vw, 23px);
}

#first .acd {
  background-color: #fff;
  border: 1px solid var(--text-color);
}
#first .acd .acd-trigger {
  border-top: none;
  min-height: 82px;
}

/* ====================================
#keyvisual
===================================== */
.bg-grade {
  background: url(../image/kv-bg-sp.jpg) 0 0 no-repeat;
  background-size: cover;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media screen and (min-width: 768px) {
  .bg-grade {
    background-image: url(../image/kv-bg-pc.jpg);
    height: 300px;
  }
}

@media only screen and (max-width: 767px) {
  #keyvisual.bg-grade {
    min-height: calc(100dvh - min(69.69vw, 446px));
  }
  .kv-txt {
    width: min(90vw, 576px);
    height: min(92.97vw, 595px);
  }
}
/* ====================================
#campaign
===================================== */
.campaign-ttl, .entry-ttl {
  text-align: center;
  position: relative;
}
.campaign-ttl:after, .entry-ttl:after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  margin-inline: auto;
  width: min(71.25vw, 456px);
  height: min(1.56vw, 10px);
}
@media screen and (min-width: 768px) {
  .campaign-ttl:after, .entry-ttl:after {
    width: 58.4%;
  }
}

.campaign-ttl {
  border-bottom: 2px solid var(--gray-color);
  padding-block: min(5.94vw, 38px) min(6.25vw, 40px);
  margin-bottom: min(6.25vw, 40px);
}
.campaign-ttl:after {
  background-color: #fff100;
  bottom: min(-0.78vw, -5px);
}
@media screen and (min-width: 768px) {
  .campaign-ttl:after {
    bottom: -5px;
  }
}
@media screen and (min-width: 768px) {
  .campaign-ttl {
    border-bottom-width: vaw(3px);
    margin: -1.5625rem -2.25rem 1.5625rem;
    padding: 1.5625rem 2.25rem 1.875rem;
    width: 100%;
  }
}
.campaign-ttl .txt-small {
  display: block;
  margin-top: min(1.56vw, 10px);
}
@media screen and (min-width: 768px) {
  .campaign-ttl .txt-small {
    font-size: 1.375rem;
    margin-top: 0.625rem;
  }
}

.txt-member-limit {
  width: min(76.56vw, 490px);
  margin: 0 auto min(1.88vw, 12px);
}
@media screen and (min-width: 768px) {
  .txt-member-limit {
    width: 26.625rem;
    margin-bottom: 0.8125rem;
  }
}

.campaign-ttl-02 {
  text-align: center;
  margin-bottom: min(4.69vw, 30px);
}
@media screen and (min-width: 768px) {
  .campaign-ttl-02 {
    margin-bottom: 1.25rem;
  }
}
.campaign-ttl-02 .txt-small {
  display: block;
  margin-bottom: min(4.69vw, 30px);
}
@media screen and (min-width: 768px) {
  .campaign-ttl-02 .txt-small {
    font-size: 1.625rem;
    margin-bottom: 1.4375rem;
  }
}
@media screen and (min-width: 768px) {
  .campaign-ttl-02 + p {
    margin-bottom: 3.5rem;
  }
}

#campaign h3 + p {
  text-align: center;
  font-weight: 500;
  font-size: min(3.13vw, 20px);
}
@media screen and (min-width: 768px) {
  #campaign h3 + p {
    font-size: 0.75rem;
    line-height: 1.42;
  }
}
#campaign h3 + p .notice {
  display: block;
  font-weight: 400;
  font-size: min(2.81vw, 18px);
  font-feature-settings: "palt";
}
@media screen and (min-width: 768px) {
  #campaign h3 + p .notice {
    font-size: 0.75rem;
  }
}

.campaign-inner .notice {
  text-align: center;
  margin-bottom: 1em;
}
@media screen and (min-width: 768px) {
  .campaign-inner .notice {
    margin-bottom: 0.75rem;
  }
}
.campaign-inner .notice a {
  color: #fff;
}
.campaign-inner .notice a:hover {
  text-decoration: none;
}

.list-cam {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .list-cam {
    margin-bottom: 2.5rem;
  }
}
.list-cam li {
  text-align: center;
  box-sizing: border-box;
  position: relative;
}
@media screen and (min-width: 768px) {
  .list-cam li {
    width: 33.3%;
    padding-inline: 1rem;
  }
  .list-cam li:not(:last-child)::after {
    content: "";
    display: block;
    width: 3px;
    height: 100%;
    background: url(../image/line-dot.svg) repeat-y 0 0;
    position: absolute;
    top: 0;
    right: 0;
  }
}
.list-cam li span {
  display: block;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .list-cam li:last-child .txt-small {
    margin-block: 0 0.75rem;
  }
}
.list-cam .txt-small {
  font-size: min(3.75vw, 24px);
  margin-block: 1rem 1.25rem;
  line-height: 1.43;
}
@media screen and (min-width: 768px) {
  .list-cam .txt-small {
    font-size: 0.8125rem;
    margin-block: 0 1.625rem;
  }
}
.list-cam .txt-small em {
  display: block;
  font-style: normal;
}
@media screen and (min-width: 768px) {
  .list-cam .txt-small em {
    font-size: 0.875rem;
  }
}
.list-cam .txt-xsmall {
  font-size: min(3.75vw, 24px);
  margin-block: 0 1.25rem;
  line-height: 1.4;
}
@media screen and (min-width: 768px) {
  .list-cam .txt-xsmall {
    font-size: 0.8125rem;
    margin-block: 0 1.25rem;
    line-height: 1.54;
  }
}
.list-cam .txt-lg {
  font-weight: 700;
}
@media screen and (min-width: 768px) {
  .list-cam .txt-lg {
    font-size: 1.375rem;
    margin-block: 0.4375rem 1.25rem;
  }
}
.list-cam .notice {
  text-align: left;
  text-indent: -1.3em;
  margin: 1em 0 0 1.3em;
  font-size: min(2.81vw, 18px);
  line-height: 1.21;
}
@media screen and (min-width: 768px) {
  .list-cam .notice {
    font-size: 0.625rem;
    margin: 0 0 0 1.3em;
    line-height: 1.2;
  }
}

@media only screen and (max-width: 767px) {
  .list-cam li {
    border-top: 2px dotted #fff;
    padding-bottom: 1.5rem;
  }
  .txt-5000point {
    width: min(31.25vw, 200px);
    height: min(10vw, 64px);
    margin-left: min(21.88vw, 140px);
  }
  .txt-5000point, .list-cam .txt-lg {
    display: inline-block;
    vertical-align: bottom;
  }
  .list-cam .txt-lg {
    padding: 0 min(6.25vw, 40px) min(2.19vw, 14px) min(0.94vw, 6px);
  }
}
@media only screen and (max-width: 767px) {
  .cam-limit-wrap {
    border-top: 1px solid #fff100;
    display: flex;
    flex-direction: column-reverse;
  }
  .cam-limit-wrap .notice {
    font-size: min(2.81vw, 18px);
    font-feature-settings: "palt";
    text-align: left;
    margin-bottom: min(4.69vw, 30px);
  }
}
.cam-limit {
  padding-block: min(4.69vw, 30px) min(6.25vw, 40px);
  line-height: 1;
  text-align: center;
  color: #d2d2d3;
  font-weight: 700;
  font-feature-settings: "palt";
  text-box: trim-both cap alphabetic;
}
@media screen and (min-width: 768px) {
  .cam-limit {
    font-size: 1.4375rem;
    padding-block: 1.25rem 0;
    border-top: 1px solid #fff100;
    font-weight: 500;
  }
}

.entry-ttl {
  text-align: center;
  padding-block: min(5.63vw, 36px) min(5vw, 32px);
  margin-bottom: min(3.75vw, 24px);
  color: var(--primary-dark);
}
@media screen and (min-width: 768px) {
  .entry-ttl {
    padding-bottom: 1.5rem;
    margin-bottom: 2.25rem;
  }
}
.entry-ttl:after {
  background-color: var(--accent-color);
  bottom: 0;
}
.entry-ttl span {
  display: block;
}
.entry-ttl .txt-small {
  font-size: min(4.06vw, 26px);
}
@media screen and (min-width: 768px) {
  .entry-ttl .txt-small {
    font-size: 1.625rem;
  }
}
.entry-ttl .txt-lg {
  font-size: min(6.25vw, 40px);
  margin-top: min(1.56vw, 10px);
}
@media screen and (min-width: 768px) {
  .entry-ttl .txt-lg {
    font-size: 2.25rem;
    margin-top: 0.4375rem;
  }
}

.entry-ttl-02 {
  color: var(--primary-dark);
  width: 97.14%;
  margin: 0 auto min(5.63vw, 36px);
}
@media screen and (min-width: 768px) {
  .entry-ttl-02 {
    font-size: 1.25rem;
    line-height: 1.7;
    justify-content: space-between;
    margin-bottom: 2.5rem;
    width: 41.875rem;
  }
}
.entry-ttl-02 + p {
  margin-bottom: min(4.69vw, 30px);
  text-align: center;
}
@media screen and (min-width: 768px) {
  .entry-ttl-02 + p {
    margin-bottom: 1.5rem;
  }
}
.entry-ttl-02 .txt-small picture {
  margin-top: 0.375rem;
}

.entry-box .cam-limit {
  border-top: 1px solid var(--accent-color);
  color: var(--primary-dark);
}

@media print, screen and (max-width: 767px) {
  .txt-nuro {
    width: min(77.19vw, 494px);
    height: min(5.94vw, 38px);
    margin-inline: auto;
    line-height: 0;
  }
  .txt-nuro img {
    vertical-align: bottom;
  }
  .title02 .txt-nuro {
    width: min(55.63vw, 356px);
    height: min(4.22vw, 27px);
    margin-inline: 0 min(1.56vw, 10px);
  }
  .campaign-inner {
    width: 92%;
    margin-inline: auto;
  }
  .list-cam {
    margin-top: min(7.5vw, 48px);
  }
  .entry-ttl-02 .txt-small {
    display: block;
    margin: 0 auto min(6.25vw, 40px);
    font-size: min(4.06vw, 26px);
    line-height: 1.73;
    width: min(56.88vw, 364px);
  }
  #campaign #entry h3 + p {
    font-weight: 700;
  }
}
/* ====================================
icn
===================================== */
.icn {
  display: inline-block;
}

.icn-wrap {
  border-radius: 50%;
  background-color: #c0cee1;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  margin-inline: auto;
  display: flex;
  justify-content: center;
  z-index: 1;
}

.icn-mask {
  mask-position: center center;
  -webkit-mask-position: center center;
  mask-size: contain;
  -webkit-mask-size: contain;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  border-radius: 50%;
  width: 100%;
  height: 100%;
  background-color: #fff;
}

@media print, screen and (min-width: 768px) {
  .icn-wrap {
    width: 110px;
    height: 110px;
    top: -50px;
  }
  .icn-mask {
    width: 53px;
    height: 53px;
    margin-top: 13px;
  }
}
@media only screen and (max-width: 767px) {
  .icn-wrap {
    width: min(14.06vw, 90px);
    height: min(14.06vw, 90px);
    top: min(-3.91vw, -25px);
  }
  .icn-mask {
    width: min(6.88vw, 44px);
    height: min(6.88vw, 44px);
    margin-top: min(1.25vw, 8px);
  }
}
.icn-mask.icn-about01 {
  -webkit-mask-image: url("../image/icn-about-01.svg");
  mask-image: url("../image/icn-about-01.svg");
}

.icn-mask.icn-about02 {
  -webkit-mask-image: url("../image/icn-about-02.svg");
  mask-image: url("../image/icn-about-02.svg");
}

/* ====================================
#about
===================================== */
#about .title02 {
  font-size: min(5vw, 32px);
}
@media screen and (min-width: 768px) {
  #about .title02 {
    font-size: 2.5rem;
  }
}
#about .title02 .txt-lg {
  font-size: min(6.25vw, 40px);
}
@media screen and (min-width: 768px) {
  #about .title02 .txt-lg {
    font-size: 3rem;
  }
}
#about .bdr-box {
  padding: 0;
}
@media screen and (min-width: 768px) {
  #about .bdr-box {
    margin-bottom: 0.875rem;
  }
}
#about .bdr-box-inner {
  padding: 0 min(4.69vw, 30px) min(6.88vw, 44px);
}
@media screen and (min-width: 768px) {
  #about .bdr-box-inner {
    padding: 0 3.375rem 2rem;
  }
}
#about .about-list {
  width: 100%;
  justify-content: space-between;
  margin: min(12.5vw, 80px) 0 min(6.25vw, 40px);
}
@media screen and (min-width: 768px) {
  #about .about-list {
    margin: 6.25rem auto 2.125rem;
    width: 84.45%;
  }
}
#about .about-list li {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background-color: #c0cee1;
  width: 46.73%;
  height: min(17.66vw, 113px);
  position: relative;
}
@media screen and (min-width: 768px) {
  #about .about-list li {
    margin: 0.8125rem 0 2.125rem;
    height: 8.375rem;
  }
}
#about .about-list .about-list-txt {
  position: relative;
  z-index: 2;
  font-weight: 700;
  font-size: min(4.69vw, 30px);
  line-height: 1.27;
}
@media screen and (min-width: 768px) {
  #about .about-list .about-list-txt {
    font-size: 2.375rem;
    line-height: 1.26;
  }
}
#about p {
  font-feature-settings: "palt";
  font-weight: 500;
  font-size: min(3.44vw, 22px);
}
@media screen and (min-width: 768px) {
  #about p {
    font-size: 1.375rem;
    line-height: 1.45;
    text-align: center;
  }
}

.about-img {
  margin: 0 auto min(9.38vw, 60px);
}

.list-check li {
  display: inline-block;
  padding-left: min(5.31vw, 34px);
  margin-right: min(2.19vw, 14px);
  position: relative;
  line-height: 1.3;
  font-weight: 700;
}
@media screen and (min-width: 768px) {
  .list-check li {
    margin-right: 1.25rem;
  }
}
.list-check li:before {
  content: "";
  display: inline-block;
  background: url(../image/icn-check.svg) no-repeat 0 0;
  background-size: cover;
  width: min(3.75vw, 24px);
  height: min(3.75vw, 24px);
  vertical-align: middle;
  position: absolute;
  top: 0.2em;
  left: 0;
}
@media screen and (min-width: 768px) {
  .list-check li:before {
    width: 25px;
    height: 25px;
  }
}
.list-check li.w-full {
  width: 100%;
  margin-top: min(2.81vw, 18px);
}
@media screen and (min-width: 768px) {
  .list-check li.w-full {
    margin-top: 1.25rem;
  }
}

@media only screen and (max-width: 767px) {
  .list-check .w-full-sp {
    width: 100%;
    display: block;
    margin-bottom: min(2.81vw, 18px);
  }
  .list-check .w-full-sp + .w-full {
    margin-top: 0;
  }
  .list-check li + li {
    margin-top: min(3.13vw, 20px);
  }
}
/* ====================================
#benefit
===================================== */
.section .sec-lead {
  color: var(--accent-color);
  text-align: center;
  font-size: min(7.03vw, 45px);
  line-height: 1.2;
  margin-bottom: min(5.63vw, 36px);
}
@media screen and (min-width: 768px) {
  .section .sec-lead {
    font-size: 1.6875rem;
    margin-bottom: 1.875rem;
  }
}

#benefit .title02 {
  font-size: min(5.63vw, 36px);
  margin-bottom: min(4.69vw, 30px);
}
@media screen and (min-width: 768px) {
  #benefit .title02 {
    margin-bottom: 1.625rem;
  }
}
@media only screen and (max-width: 767px) {
  #benefit .title02 {
    flex-direction: column;
    gap: min(2.5vw, 16px);
    height: min(21.88vw, 140px);
  }
}
#benefit .acd-trigger {
  color: var(--primary-color);
  font-size: min(6.56vw, 42px);
  font-weight: 700;
  justify-content: flex-start;
  text-align: left;
  gap: 0 min(1.88vw, 12px);
}
@media screen and (min-width: 768px) {
  #benefit .acd-trigger {
    font-size: 2.9375rem;
    gap: 0 1.25rem;
  }
}
#benefit .acd-trigger:after {
  bottom: inherit;
  top: min(1.88vw, 12px);
}
@media screen and (min-width: 768px) {
  #benefit .acd-trigger:after {
    top: 0;
    bottom: 0;
    margin-block: auto;
  }
}
#benefit .acd-trigger .txt-wrap {
  display: flex;
  flex-direction: column;
  flex: 1;
  align-items: center;
  padding-right: min(10.94vw, 70px);
}
@media screen and (min-width: 768px) {
  #benefit .acd-trigger .txt-wrap {
    flex-direction: row;
    padding-right: 0;
  }
}
#benefit .acd-trigger .txt-wrap picture {
  display: inline-block;
}
#benefit .acd-trigger .txt-small {
  font-size: min(3.13vw, 20px);
  margin-bottom: min(1.88vw, 12px);
}
@media screen and (min-width: 768px) {
  #benefit .acd-trigger .txt-small {
    margin-bottom: 0;
    text-align: center;
  }
}
#benefit .acd-trigger .txt-small picture {
  display: inline-block;
  vertical-align: text-bottom;
  margin-bottom: min(-0.63vw, -4px);
  margin-inline: 0.125rem;
}
@media screen and (min-width: 768px) {
  #benefit .acd-trigger .txt-small picture {
    margin-bottom: -0.3125rem;
  }
}
#benefit .acd-trigger .txt-lg {
  font-weight: 900;
  font-size: min(11.72vw, 75px);
  line-height: 1;
}
#benefit .label-benefit {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: #fff;
  border-radius: 50%;
  line-height: 1;
  width: min(14.06vw, 90px);
  height: min(14.06vw, 90px);
  font-size: min(2.66vw, 17px);
  gap: min(0.94vw, 6px) 0;
}
#benefit .label-benefit .txt-num {
  font-weight: 700;
  line-height: 1;
  font-size: min(9.38vw, 60px);
  text-box: trim-both cap alphabetic;
}
@media screen and (min-width: 768px) {
  #benefit .label-benefit .txt-num {
    font-weight: 500;
  }
}
#benefit .acd-content-inner p {
  text-align: center;
  font-weight: 500;
  font-size: min(3.59vw, 23px);
  line-height: 1.72;
}
@media screen and (min-width: 768px) {
  #benefit .acd-content-inner p {
    font-size: 1.125rem;
  }
}
#benefit .acd-content-inner .box {
  padding: min(3.13vw, 20px) min(3.13vw, 20px) min(4.69vw, 30px) min(6.25vw, 40px);
}
@media screen and (min-width: 768px) {
  #benefit .acd-content-inner .box {
    padding-inline: 3.375rem 2rem;
  }
}
#benefit .acd-content-inner .notice {
  margin-top: min(5.63vw, 36px);
}
@media screen and (min-width: 768px) {
  #benefit .acd-content-inner .notice {
    margin-top: 2.5rem;
  }
}
#benefit h4 {
  text-align: center;
  font-feature-settings: "palt";
  font-size: min(4.69vw, 30px);
  line-height: 1.5;
  margin-bottom: min(5.94vw, 38px);
}
@media screen and (min-width: 768px) {
  #benefit h4 {
    font-size: 2rem;
    margin-bottom: 2.125rem;
    line-height: 1.47;
  }
}
#benefit .list-check {
  font-feature-settings: "palt";
  font-size: min(3.59vw, 23px);
}
@media screen and (min-width: 768px) {
  #benefit .list-check {
    font-size: 1.375rem;
  }
}
#benefit .list-check li {
  line-height: 1.39;
}
@media screen and (min-width: 768px) {
  #benefit .list-check li + li {
    margin-top: 1rem;
  }
}
@media screen and (min-width: 768px) {
  #benefit #benefit01 {
    padding: 0 0 1.5625rem;
  }
}
#benefit #benefit01 .notice {
  padding: 0 min(4.38vw, 28px) min(1.88vw, 12px);
}
@media screen and (min-width: 768px) {
  #benefit #benefit01 .notice {
    padding: 0;
    font-size: 0.75rem;
    text-align: center;
  }
}
@media screen and (min-width: 768px) {
  #benefit #benefit01 .acd-trigger .txt-small {
    width: 15.8125rem;
    font-size: 1.25rem;
    line-height: 2;
  }
}
#benefit #benefit02 .acd-trigger .txt-small {
  font-size: min(3.75vw, 24px);
}
@media screen and (min-width: 768px) {
  #benefit #benefit02 .acd-trigger .txt-small {
    width: 16.875rem;
    font-size: 2.25rem;
    line-height: 1.33;
  }
}
#benefit #benefit03 {
  margin-bottom: min(2.5vw, 16px);
}
@media screen and (min-width: 768px) {
  #benefit #benefit03 {
    margin-bottom: 1.875rem;
  }
}
#benefit #benefit03 .acd-trigger .txt-small {
  font-feature-settings: "palt";
}
@media screen and (min-width: 768px) {
  #benefit #benefit03 .acd-trigger .txt-small {
    width: 15rem;
    font-size: 1.25rem;
    line-height: 2;
  }
}
#benefit #benefit03 + p {
  text-align: center;
  font-weight: 700;
  font-size: min(3.13vw, 20px);
}
@media screen and (min-width: 768px) {
  #benefit #benefit03 + p {
    font-weight: 500;
  }
}

#txt-benefit {
  height: min(49.69vw, 318px);
  padding: 0;
}

@media only screen and (max-width: 767px) {
  .txt-benefit-img {
    width: min(83.28vw, 533px);
  }
  #benefit01 .acd-trigger {
    height: auto;
  }
  #benefit01 .txt-wrap picture {
    width: min(20.78vw, 133px);
    height: min(5.47vw, 35px);
  }
  #benefit02 .txt-wrap picture {
    width: min(20.78vw, 133px);
    height: min(14.22vw, 91px);
  }
  #benefit03 .txt-wrap picture {
    width: min(20vw, 128px);
    height: min(5.47vw, 35px);
  }
}
/* ====================================
spec
===================================== */
.table {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .table caption, .table td {
    width: 75.65%;
  }
}
.table caption {
  background-color: var(--text-color);
  margin-bottom: min(2.81vw, 18px);
  padding-block: min(3.13vw, 20px);
  border-radius: min(2.34vw, 15px) min(2.34vw, 15px) 0 0;
}
@media screen and (min-width: 768px) {
  .table caption {
    border-radius: 20px 20px 0 0;
    margin-left: 24.35%;
    margin-bottom: 0;
  }
}
.table caption figure {
  width: 88.1%;
  height: auto;
}
.table tr:not(:first-child) {
  border-top: min(2.81vw, 18px) solid var(--gray-color);
}
@media screen and (min-width: 768px) {
  .table tr:not(:first-child) {
    border-top: 7px solid var(--gray-color);
  }
}
.table th, .table td {
  font-weight: 700;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .table th, .table td {
    vertical-align: middle;
    height: 126px;
  }
}
.table th {
  background-color: rgba(255, 255, 255, 0.7);
  font-size: min(4.06vw, 26px);
  line-height: min(8.13vw, 52px);
}
@media screen and (min-width: 768px) {
  .table th {
    font-size: 23px;
    line-height: 1.35;
    width: 24.35%;
  }
}
.table td {
  background-color: #fff;
}
.table span {
  display: block;
}
.table .spec02 .txt-lg {
  font-size: min(7.5vw, 48px);
}
.table .spec02 .txt-small {
  font-size: min(4.06vw, 26px);
  margin-top: min(1.56vw, 10px);
}
.table .spec04 {
  font-size: min(3.44vw, 22px);
  line-height: 1.71;
}
.table .spec05 {
  font-size: min(7.5vw, 48px);
}
.table .spec06 .txt-lg {
  font-feature-settings: "palt";
  font-size: min(4.69vw, 30px);
}
.table .spec06 .txt-small {
  font-size: min(3.13vw, 20px);
  margin-top: min(1.56vw, 10px);
  line-height: 1.4;
}
@media screen and (min-width: 768px) {
  .table .spec06 .txt-lg {
    font-size: 2rem;
  }
  .table .spec06 .txt-small {
    font-size: 0.8125rem;
    margin-top: 2.25rem;
  }
}

@media only screen and (max-width: 767px) {
  .table caption, .table th, .table td {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
  }
  .table td {
    min-height: min(16.72vw, 107px);
    padding: min(2.5vw, 16px) min(4.69vw, 30px);
  }
  .txt-spec-1, .txt-spec-3 {
    margin-inline: auto;
  }
  .txt-spec-1 {
    width: min(74.84vw, 479px);
    height: min(6.88vw, 44px);
  }
  .txt-spec-3 {
    width: min(33.28vw, 213px);
    height: min(6.72vw, 43px);
  }
}
#spec .btnArea {
  margin-top: min(10.94vw, 70px);
}
@media screen and (min-width: 768px) {
  #spec .btnArea {
    margin-top: 2.75rem;
  }
}

/* ====================================
info
===================================== */
.title02-sub {
  margin-inline: -4.69%;
  width: 109.38%;
  height: min(10vw, 64px);
  margin-bottom: min(6.25vw, 40px);
  font-size: min(4.69vw, 30px);
}
.title02-sub:not(:first-child) {
  margin-top: min(7.81vw, 50px);
}
@media screen and (min-width: 768px) {
  .title02-sub {
    margin-inline: auto;
    margin-bottom: 2.25rem;
    width: 100%;
    font-size: 1.5rem;
  }
}

#info .list-check {
  margin-bottom: min(4.22vw, 27px);
  font-size: min(4.22vw, 27px);
}
@media screen and (min-width: 768px) {
  #info .list-check {
    font-size: 1.625rem;
    margin-bottom: 1.875rem;
  }
}
@media screen and (min-width: 768px) {
  #info .list-check li + li {
    margin-top: 1.25rem;
  }
}
#info .list-area {
  font-size: min(3.44vw, 22px);
  margin-bottom: min(2.81vw, 18px);
}
#info .list-area dt {
  margin-bottom: min(2.19vw, 14px);
}
@media screen and (min-width: 768px) {
  #info .list-area dt {
    margin-bottom: 1rem;
  }
}
#info .list-area dt:before {
  content: "・";
}
#info .list-area dt:not(:first-child) {
  margin-top: 1em;
}
#info .list-area dt + dd {
  margin-left: 1em;
}
#info .list-area dd {
  display: inline-block;
  padding-right: 0.5em;
}
#info .list-area dd + dd {
  border-left: 1px solid var(--text-color);
  padding-left: 0.5em;
}
@media screen and (min-width: 768px) {
  #info .list-area + p {
    font-size: 1.375rem;
    margin-bottom: 1.75rem;
  }
}
@media screen and (min-width: 768px) {
  #info .flow-wrap {
    margin: 0 2.5rem;
  }
}
#info .flow-wrap .row-lg {
  align-items: flex-start;
  margin-bottom: min(7.81vw, 50px);
}
@media screen and (min-width: 768px) {
  #info .flow-wrap .row-lg {
    margin-bottom: 2.375rem;
  }
}
#info .flow-wrap h3 {
  display: flex;
  align-items: center;
  gap: 0 min(1.56vw, 10px);
  font-size: min(4.06vw, 26px);
  margin-bottom: min(2.5vw, 16px);
  font-feature-settings: "palt";
}
@media screen and (min-width: 768px) {
  #info .flow-wrap h3 {
    width: 14.375rem;
    line-height: 1.19;
    margin-bottom: 0;
  }
}
#info .flow-wrap .label-flow {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--text-color);
  color: #fff;
  border-radius: 50%;
  width: min(6.09vw, 39px);
  height: min(6.09vw, 39px);
  font-size: min(3.91vw, 25px);
}
@media screen and (min-width: 768px) {
  #info .flow-wrap .contain {
    flex: 1;
  }
}
#info .flow-wrap .contain p:not(.notice) {
  font-size: min(3.44vw, 22px);
  line-height: 1.23;
}
@media screen and (min-width: 768px) {
  #info .flow-wrap .contain p:not(.notice) {
    font-size: 1.125rem;
    line-height: 1.72;
  }
}
#info .flow-wrap .contain p:not(.notice) + .notice {
  margin-top: 1em;
}
#info .flow-wrap .contain .notice {
  font-feature-settings: "palt";
}
@media screen and (min-width: 768px) {
  #info .btnArea {
    padding-top: 4.375rem;
  }
}

@media only screen and (max-width: 767px) {
  #info .flow-wrap .contain {
    margin-left: min(7.81vw, 50px);
  }
  #info .flow-wrap .contain p:not(.notice) {
    margin-bottom: min(5.63vw, 36px);
  }
}
/* ====================================
faq
===================================== */
.title-border {
  border-bottom: 1px solid var(--text-color);
  text-align: center;
  font-size: min(4.69vw, 30px);
  padding-bottom: min(5.63vw, 36px);
}
@media screen and (min-width: 768px) {
  .title-border {
    font-size: 1.5rem;
    padding-bottom: 2.5rem;
  }
}

.acd-faq {
  border-bottom: 1px solid var(--text-color);
}
@media screen and (min-width: 768px) {
  .acd-faq.active .acd-trigger {
    padding-bottom: 1.25rem;
  }
}
.acd-faq.active .acd-trigger .icn::after {
  transform: rotate(0);
}
.acd-faq .acd-trigger {
  transition: padding 0.3s ease-in;
  padding: min(4.69vw, 30px) min(9.38vw, 60px) min(4.69vw, 30px) min(10.94vw, 70px);
  font-size: min(4.06vw, 26px);
  text-align: left;
  font-weight: 700;
}
@media screen and (min-width: 768px) {
  .acd-faq .acd-trigger {
    font-size: 1.25rem;
    padding: 2.1875rem 3.75rem 2.1875rem 5rem;
  }
}
.acd-faq .acd-trigger .txt-q {
  position: absolute;
  top: 0;
  bottom: 0;
  left: min(3.13vw, 20px);
  margin-block: auto;
  height: 1em;
}
@media screen and (min-width: 768px) {
  .acd-faq .acd-trigger .txt-q {
    top: 2.5rem;
    bottom: inherit;
    left: 2.5rem;
    margin-block: inherit;
  }
}
.acd-faq .acd-trigger .icn {
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  margin-block: auto;
  right: min(3.13vw, 20px);
  width: min(3.59vw, 23px);
  height: min(3.59vw, 23px);
}
@media screen and (min-width: 768px) {
  .acd-faq .acd-trigger .icn {
    width: 17px;
    height: 17px;
    top: 2.5rem;
    bottom: inherit;
    right: 2.5rem;
    margin-block: 0;
  }
}
.acd-faq .acd-trigger .icn::before, .acd-faq .acd-trigger .icn::after {
  content: "";
  display: block;
  background-color: var(--text-color);
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  transition: transform 0.3s ease-in;
  width: min(3.59vw, 23px);
  height: 1px;
}
@media screen and (min-width: 768px) {
  .acd-faq .acd-trigger .icn::before, .acd-faq .acd-trigger .icn::after {
    width: 17px;
  }
}
.acd-faq .acd-trigger .icn::after {
  transform: rotate(90deg);
}
.acd-faq .acd-content-inner {
  position: relative;
  padding-left: min(7.81vw, 50px);
  margin: 0 min(3.13vw, 20px) min(6.25vw, 40px);
}
@media screen and (min-width: 768px) {
  .acd-faq .acd-content-inner {
    font-size: 1rem;
    margin: 0 1.75rem 2.5rem 6.25rem;
    padding-left: 2.75rem;
  }
}
.acd-faq .acd-content-inner .txt-a {
  font-weight: 700;
  position: absolute;
  top: 0.2em;
  left: 0;
  line-height: 1;
  font-size: min(4.06vw, 26px);
}
@media screen and (min-width: 768px) {
  .acd-faq .acd-content-inner .txt-a {
    font-size: 1.25rem;
  }
}

#faq .title04 {
  font-weight: 700;
}
@media screen and (min-width: 768px) {
  #faq .title04 {
    margin-bottom: 0.875rem;
    line-height: 1.63;
  }
}

@media only screen and (max-width: 767px) {
  .section .acd-faq .acd-content-inner .title04 {
    margin-bottom: min(1.25vw, 8px);
    font-size: min(3.75vw, 24px);
    line-height: 1.4;
    font-feature-settings: "palt";
  }
  .section .acd-faq .acd-content-inner p, .list-dot li {
    font-size: min(3.44vw, 22px) !important;
    line-height: 1.4 !important;
  }
}
.list-dot {
  margin-bottom: min(5vw, 32px);
}
@media screen and (min-width: 768px) {
  .list-dot {
    margin-bottom: 2.25rem;
  }
}

.list-dot li {
  position: relative;
  padding-left: 1em;
}

.list-dot > li + li {
  margin-top: 0.3em;
}

.list-dot > li::before {
  content: "・";
  position: absolute;
  top: 0;
  left: 0;
}

.list-dot.dot-b > li::before {
  content: "●";
  color: #717071;
}

.list-dot.dot-b.dot-b-02 > li::before {
  color: var(--text-color);
}

/* ====================================
contact
===================================== */
.contact-ttl {
  font-size: min(4.06vw, 26px);
  margin-bottom: min(4.38vw, 28px);
  text-align: center;
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .contact-ttl {
    font-size: 1.5rem;
    line-height: 1;
  }
}

.list-contact {
  margin-bottom: min(3.13vw, 20px);
}
@media screen and (min-width: 768px) {
  .list-contact {
    margin-bottom: 0.875rem;
  }
}
.list-contact dt {
  font-weight: 700;
  font-size: min(3.13vw, 20px);
  margin-bottom: min(1.56vw, 10px);
}
@media screen and (min-width: 768px) {
  .list-contact dt {
    font-size: 0.875rem;
    line-height: 1.42;
    margin-bottom: 0.375rem;
  }
}
.list-contact dd span {
  vertical-align: middle;
}
@media screen and (min-width: 768px) {
  .list-contact dd span {
    display: inline-block;
  }
}
.list-contact .txt-small {
  font-size: min(3.13vw, 20px);
  font-weight: 500;
  margin-bottom: 0.2em;
}
@media screen and (min-width: 768px) {
  .list-contact .txt-small {
    font-size: 0.875rem;
    padding-right: 1em;
    margin-bottom: 0;
  }
}
.list-contact .txt-tel {
  display: block;
  font-weight: 700;
  font-size: min(6.25vw, 40px);
}
@media screen and (min-width: 768px) {
  .list-contact .txt-tel {
    display: inline-block;
    font-size: 1.6875rem;
  }
}

@media screen and (min-width: 768px) {
  #contact.section {
    padding-top: 60px;
  }
}
#contact .btnArea {
  padding-block: 0 min(6.25vw, 40px);
}
@media screen and (min-width: 768px) {
  #contact .btnArea {
    padding-block: 0 3.25rem;
  }
}
#contact .bdr-box {
  padding: min(6.25vw, 40px) min(4.38vw, 28px) min(3.13vw, 20px);
}
@media screen and (min-width: 768px) {
  #contact .bdr-box {
    padding: 1.875rem 2.5rem 2.5rem 2.5rem;
  }
}
#contact .bdr-box .contact-tel {
  text-align: center;
}
@media screen and (min-width: 768px) {
  #contact .bdr-box .contact-tel {
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    gap: 10px;
  }
}
#contact .bdr-box .txt-small {
  font-weight: 700;
  display: block;
  margin-bottom: min(2.5vw, 16px);
}
@media screen and (min-width: 768px) {
  #contact .bdr-box .txt-small {
    margin-bottom: 0;
    font-size: 1.5625rem;
    display: inline-block;
  }
}

.txt-contact-time {
  font-size: min(3.13vw, 20px) !important;
  line-height: 1.5 !important;
  margin-top: min(5.63vw, 36px);
}
@media screen and (min-width: 768px) {
  .txt-contact-time {
    font-size: 1rem !important;
    line-height: 1 !important;
    margin-top: 1.25rem;
    text-align: center;
  }
}

/* ====================================
attention
===================================== */
@media screen and (min-width: 768px) {
  #attention .container {
    padding-inline: 2.5rem;
  }
}
#attention .attention-ttl {
  text-align: center;
  font-size: min(4.69vw, 30px);
}
@media screen and (min-width: 768px) {
  #attention .attention-ttl {
    font-size: 1.5rem;
  }
}
#attention .attention-ttl-02 {
  font-size: min(3.75vw, 24px);
  margin-block: min(5.31vw, 34px) min(1.56vw, 10px);
}
@media screen and (min-width: 768px) {
  #attention .attention-ttl-02 {
    font-size: 1rem;
    margin-block: 1.625rem 1rem;
  }
}
#attention .acd-faq .acd-trigger {
  padding-left: min(3.75vw, 24px);
}
@media screen and (min-width: 768px) {
  #attention .acd-faq .acd-trigger {
    padding-left: 2.5rem;
  }
}
#attention .acd-faq .acd-content-inner {
  margin-inline: 0;
  padding-inline: 0;
}
#attention .title04 {
  background-color: #fff;
  padding: 0.5em;
  margin-bottom: min(4.69vw, 30px);
}
@media screen and (min-width: 768px) {
  #attention .title04 {
    font-size: 1.3125rem;
    margin-bottom: 1.125rem;
  }
}
@media screen and (min-width: 768px) {
  #attention .notice {
    font-size: 0.75rem;
  }
  #attention .notice li {
    margin-top: 0.8em;
  }
}
@media screen and (min-width: 768px) {
  #attention .btnArea {
    padding-top: 7.5rem;
  }
}
#attention sup {
  font-size: 80%;
  vertical-align: top;
}

.list-pdf li + li {
  margin-top: min(3.75vw, 24px);
}
@media screen and (min-width: 768px) {
  .list-pdf li + li {
    margin-top: 0.75rem;
  }
}
.list-pdf a {
  color: var(--text-color);
  display: flex;
  align-items: center;
  position: relative;
  line-height: 1.4;
  font-feature-settings: "palt";
  padding-left: min(10.94vw, 70px);
  font-size: min(4.06vw, 26px);
  min-height: min(8.59vw, 55px);
}
@media screen and (min-width: 768px) {
  .list-pdf a {
    padding-left: 3.375rem;
    min-height: 33px;
    font-size: 1rem;
    line-height: 1.3;
  }
}
.list-pdf a:hover {
  text-decoration: none;
}
.list-pdf a::before {
  content: "";
  display: inline-block;
  background: url(../image/icn-pdf.svg) no-repeat 0 0;
  background-size: contain;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto 0;
  width: min(7.34vw, 47px);
  height: min(8.59vw, 55px);
  left: min(1.56vw, 10px);
}
@media screen and (min-width: 768px) {
  .list-pdf a::before {
    width: 28px;
    height: 33px;
    left: 0.9375rem;
  }
}
.list-pdf + .title04 {
  margin-top: 1.875rem;
}

/* ====================================
#info02
===================================== */
#info02 p:not(.notice) {
  font-size: min(3.75vw, 24px);
}
@media screen and (min-width: 768px) {
  #info02 p:not(.notice) {
    font-size: 1rem;
  }
}

.btn-modal:has(.info02-img-01) {
  margin: min(5.31vw, 34px) auto min(3.13vw, 20px);
}
@media screen and (min-width: 768px) {
  .btn-modal:has(.info02-img-01) {
    margin: 0 auto 2.5rem;
  }
}

.title03-sub {
  margin-block: 3em 1em;
  font-size: min(4.38vw, 28px);
  line-height: 1.4;
  font-weight: 900;
  border-left: 5px solid #000;
  padding: 0.3em 0 0.3em 0.5em;
}
@media screen and (min-width: 768px) {
  .title03-sub {
    font-size: 1.125rem;
    font-weight: 700;
  }
}
.title03-sub:first-child {
  margin-top: 1em;
}

.title04-sub {
  margin: 2em 0 1em;
  line-height: 1.4;
  font-size: min(4.06vw, 26px);
}
@media screen and (min-width: 768px) {
  .title04-sub {
    font-size: 1.0625rem;
  }
}
.title04-sub.has-indent {
  text-indent: -1em;
  margin-left: 1em;
}
.title04-sub:first-child {
  margin-top: 1em;
}

.title05-sub {
  margin: 1em 0 0.5em;
  line-height: 1.4;
  font-size: min(3.75vw, 24px);
}
@media screen and (min-width: 768px) {
  .title05-sub {
    font-size: 1rem;
  }
}

ol.list-num-maru {
  margin-top: 1em;
  font-size: min(3.75vw, 24px);
}
@media screen and (min-width: 768px) {
  ol.list-num-maru {
    font-size: 1rem;
  }
}

ol.list-num-maru > li {
  text-indent: -1.3em;
  margin-left: 1.3em;
  line-height: 1.3;
}
ol.list-num-maru > li + li {
  margin-top: 0.8em;
}
ol.list-num-maru > li ol, ol.list-num-maru > li ul {
  margin-top: 0.5em;
}
ol.list-num-maru > li ol > li, ol.list-num-maru > li ul > li {
  text-indent: 0;
}
ol.list-num-maru > li .list-dot {
  margin-bottom: 0;
}

#attention .title04-sub + *:not(ul), ol.list-num-maru {
  margin-left: 1em;
}

#attention .box.bg-gray {
  margin-top: 1em;
  padding: 1em;
  line-height: 1.4;
  font-size: min(3.75vw, 24px);
}
@media screen and (min-width: 768px) {
  #attention .box.bg-gray {
    font-size: 1rem;
    line-height: 1.5;
  }
}
#attention .box.bg-gray .notice {
  display: block;
  font-size: min(3.13vw, 20px);
}
@media screen and (min-width: 768px) {
  #attention .box.bg-gray .notice {
    display: inline;
    font-size: 0.875rem;
    padding-left: 0.5em;
  }
}

.info02-img-02 {
  margin-top: min(4.69vw, 30px);
}
@media screen and (min-width: 768px) {
  .info02-img-02 {
    margin-top: 1.5rem;
  }
}

@media only screen and (max-width: 767px) {
  .info02-img-01, .info02-img-02, .info02-img-03 {
    margin-left: 1em;
  }
}
.t-r {
  text-align: right;
  margin-top: min(6.25vw, 40px);
}
@media screen and (min-width: 768px) {
  .t-r {
    margin-top: 3.5rem;
    font-size: 1rem;
  }
}

@media only screen and (max-width: 767px) {
  .section p.t-r {
    font-size: min(3.13vw, 20px) !important;
  }
}
@media print, screen and (min-width: 768px) {
  .btn-modal {
    display: block;
    margin-top: 1em;
    cursor: pointer;
    position: relative;
    border: 1px solid transparent;
    padding: 10px;
  }
  .btn-modal::before {
    content: "拡大表示";
    background-color: var(--primary-color);
    color: #fff;
    padding: 0.5em 1em;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
  }
  .btn-modal img {
    transition: opacity 0.3s ease-in;
  }
  .btn-modal:hover {
    box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;
  }
  .btn-modal:hover img {
    opacity: 0.5;
  }
  .dialog[open] {
    opacity: 1;
    transform: scale(100%);
  }
  .dialog {
    border: none;
    max-width: 1000px;
    width: 100%;
    opacity: 0;
    transform: scale(50%);
    transition: all 0.5s allow-discrete;
  }
  .dialog img {
    width: 100%;
    max-width: inherit;
  }
  .dialog button {
    margin: 20px auto 0;
    border: 1px solid var(--primary-color);
    background-color: var(--primary-color);
    color: #fff;
    border-radius: 6px;
    cursor: pointer;
    padding: 0.8em 1.4em;
    line-height: 1;
  }
  .dialog button:hover {
    background-color: #fff;
    color: var(--primary-color);
  }
  @starting-style {
    .dialog[open] {
      opacity: 0;
      transform: scale(50%);
    }
  }
  /* ダイアログがモーダルで最上位に来た場合に :backdrop をトランジションする */
  .dialog::backdrop {
    background-color: rgba(0, 0, 0, 0);
    transition: all 0.7s allow-discrete;
  }
  .dialog[open]::backdrop {
    background-color: rgba(0, 0, 0, 0.7);
  }
  @starting-style {
    .dialog[open]::backdrop {
      background-color: rgba(0, 0, 0, 0);
    }
  }
}
@media only screen and (max-width: 767px) {
  .btn-modal {
    pointer-events: none;
  }
}
/* ====================================
footer
===================================== */
#footer {
  background-color: #000000;
  color: #fff;
}
#footer .container {
  text-align: center;
}
#footer .footer-logo {
  margin: 0 auto min(1.56vw, 10px);
}
#footer .footer-copy {
  font-style: 700;
  font-style: normal;
}

@media print, screen and (min-width: 768px) {
  #footer {
    padding-block: 1.875rem;
  }
  #footer .footer-copy {
    font-size: 0.875rem;
  }
}
@media only screen and (max-width: 767px) {
  #footer {
    padding-block: min(3.75vw, 24px) min(27.19vw, 174px);
  }
  #footer .footer-logo {
    width: min(33.75vw, 216px);
  }
  #footer .footer-copy {
    font-size: min(2.5vw, 16px);
  }
}
/* ====================================
アニメーション
===================================== */
@media screen {
  [data-anm=js-scroll] {
    opacity: 0;
    transition: all 1s;
  }
  [data-anm=js-scroll].active {
    opacity: 1;
  }
  [data-anm=js-scroll-y] {
    opacity: 0;
    transition: all 1s;
    transform: translate(0px, 60px) scale(1);
  }
  [data-anm=js-scroll-y].active {
    opacity: 1;
    transform: translate(0px, 0px) scale(1);
  }
  [data-anm=js-scroll-l] {
    opacity: 0;
    transition: all 1s;
    transform: translate(-60px, 0) scale(1);
  }
  [data-anm=js-scroll-l].active {
    opacity: 1;
    transform: translate(0px, 0px) scale(1);
  }
  [data-anm=js-scroll-r] {
    opacity: 0;
    transition: all 1s;
    transform: translate(60px, 0) scale(1);
  }
  [data-anm=js-scroll-r].active {
    opacity: 1;
    transform: translate(0px, 0px) scale(1);
  }
}/*# sourceMappingURL=nuro.css.map */