@charset "utf-8";

@media screen and (max-width: 767px) {}
@media screen and (max-width: 899px) {}
@media screen and (max-width: 1200px) {}
@media screen and (max-width: 1300px) {}

/*----------------------------------------------------------
   normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css
----------------------------------------------------------*/
/* Document */
html{line-height:1.15;-webkit-text-size-adjust:100%}
/* Sections */
body{margin:0}
main{display:block}
/* Grouping content */
hr{box-sizing:content-box;height:0}
pre{font-family:monospace,monospace;font-size:1em}
/* Text-level semantics */
a{background-color:transparent}
abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}
b,strong{font-weight:bolder}
code,kbd,samp{font-family:monospace,monospace;font-size:1em}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sub{bottom:-0.25em}
sup{top:-0.5em}
/* Embedded content */
img{border-style:none}
/* Forms */
button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}
button,select{text-transform:none}
button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button; appearance:button;}
button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}
button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}
fieldset{padding:0.35em 0.75em 0.625em}
legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}
progress{vertical-align:baseline}
textarea{overflow:auto}
[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}
[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}
[type="search"]{-webkit-appearance:textfield; appearance:textfield; outline-offset:-2px}
[type="search"]::-webkit-search-decoration{-webkit-appearance:none}
::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
/* Interactive */
details{display:block}
summary{display:list-item}
/* Misc */
template{display:none}
[hidden]{display:none}

/* reset
----------------------------------------------------------*/
h1, h2, h3, h4, h5, h6, dl, dt, dd, ul, ol, li, p, table, th, td, time { margin: 0; padding: 0; font-size: inherit;}
h1, h2, h3, h4, h5, h6, em, b { font-weight: inherit;}
em, b, i { font-style: inherit;}
li { list-style: none;}
figure { margin: 0;}
img { vertical-align: top; width: 100%; height: auto; background-color: rgba(255, 255, 255, .01);}
table { border-collapse: collapse; border-spacing: 0;}
input, select, textarea { font-size: max(1.8rem, 18px); -webkit-appearance: none; -moz-appearance: none; appearance: none; border-radius: 0;}
input:focus::-webkit-input-placeholder, textarea:focus::-webkit-input-placeholder { color: transparent;}
input:focus::-moz-placeholder, textarea:focus::-moz-placeholder { color: transparent;}
input:focus::-ms-input-placeholder, textarea:focus::-ms-input-placeholder { color: transparent;}
input:focus::placeholder, textarea:focus::placeholder { color: transparent;}
button { margin: 0; padding: 0; border: 0; outline: none; background: transparent; box-shadow: 0 0 0 0 transparent; cursor: pointer;}

/*----------------------------------------------------------
   custom
----------------------------------------------------------*/
:root {
  --w_max: 1260;
  --w_max02: 1102;
  --w_full: 1440;
  --w_tb: 768;
  --w_sp: 375;
  --c_white: #fff;
  --c_black: #222;
  --c_gray: #f7f7f7;
  --c_border: #a5a5a5;
  --c_bg: #f7f4eb;
  --c_text01: #444;
  --c_text02: #555;
  --c_em: #d70010;
  --c_link_hover: #b7000e;
}

/*----------------------------------------------------------
   base
----------------------------------------------------------*/
html {
  position: relative;
  height: 100dvh;
  font-size: min(2.6667vw, 62.5%);
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Droid Sans", "Yu Gothic", YuGothic, "\30E1\30A4\30EA\30AA", Meiryo, "\30D2\30E9\30AE\30CE\89D2\30B4 ProN W3", "Hiragino Kaku Gothic ProN", "\FF2D\FF33 \FF30\30B4\30B7\30C3\30AF", sans-serif;
  -webkit-font-smoothing: antialiased;
  scroll-behavior: smooth;
  scroll-padding-top: 2.0rem;
}
body {
  text-align: center;
  position: relative;
  min-height: 100dvh;
  background-color: var(--c_white);
  color: var(--c_black);
  font-size: 1.6rem;
  line-height: 1.8;
  font-weight: 500;
  -webkit-tap-highlight-color: transparent;
}
.en { font-family: "Inter", sans-serif;}

a {
  display: inline-block;
  color: inherit;
  text-decoration: none;
  outline: none;
  opacity: 1;
  transition: all .3s;
  backface-visibility: hidden;
}
a::after,
a::before {
  transition: all .3s;
  backface-visibility: hidden;
}
a img {
  vertical-align: top;
  background-color: rgba(255, 255, 255, .01);
}

.skip { position: absolute; left: -9999px;}
.hide { display: none;}
.left { float: left;}
.right { float: right;}
.clear { clear: both;}
.cf::after { clear: both; content: ""; display: block;}
.txtr { text-align: right;}
.txtc { text-align: center;}
.ib { display: inline-block;}
.wb { word-break: keep-all; overflow-wrap: break-word; line-break: normal;}
.em { color: var(--c_em);}
.note { color: var(--c_text02);}
.underline {
  display: inline;
  background-image: linear-gradient(transparent 70%, #ffbd61 30%);
}

.sp01 { margin-top: .5em;}
.sp02 { margin-top: 1em;}
.sp03 { margin-top: 1.5em;}
.sp04 { margin-top: 2em;}
.sp05 { margin-top: 2.5em;}

.sp { display: block;}
.pc { display: none;}
.noscript-text { padding: 1em;}

/* common */
section { position: relative; display: block;}
section::after { clear: both; content: ""; display: block;}
section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  background-repeat: no-repeat;
  background-position: 0 0;
  background-size: contain;
}
.inner, .header-inner {
  text-align: left;
  position: relative;
  margin-inline: auto;
}
.inner {
  max-width: calc(var(--w_max) * 1px);
  padding-inline: 2.0rem;
}
.inner.inner02 {
  max-width: calc(var(--w_max02) * 1px);
}
.inner * { box-sizing: border-box;}

@media screen and (min-width: 768px) {
  html { font-size: clamp(50%, 50% + ((1vw - 7.68px) * 0.3759), 62.5%);} /* 768px => 1300px | 8px => 10px */
  body { font-size: 2.0rem;}
  .sp { display: none;}
  .pc { display: block;}
}
@media screen and (min-width: 900px) {
  .inner {
    padding-inline: 20px;
  }
}

/* module
----------------------------------------------------------*/
/* grid */
.grid {
  display: flex;
  flex-direction: column;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .grid {
    flex-direction: row;
    justify-content: space-between;
  }
  .grid-rev {
    flex-direction: row-reverse;
  }
}

/* link */
a.link__line {
	--link_bg_h: 2px;
	display: inline;
	padding-bottom: 0;
	background: linear-gradient(0deg, var(--c_black), var(--c_black)) no-repeat right bottom / 100% var(--link_bg_h);
	transition: background-size .35s;
  font-weight: 700;
}
a.link__line:focus-visible {
	background-size: 0 var(--link_bg_h);
	background-position-x: right;
}
@media (any-hover: hover) {
	a.link__line:hover {
		background-size: 0 var(--link_bg_h);
		background-position-x: right;
	}
}
.link__btn__wrap {
  width: min(100%, 48.0rem);
  margin-inline: auto;
}
.link__btn {
  text-align: center;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  min-height: 7.2rem;
  border-radius: 100vh;
  background-color: var(--c_em);
  color: var(--c_white);
  font-size: 1.8rem;
  line-height: 1.5;
}
.link__btn::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0.8rem;
  bottom: 0;
  width: 2.6rem;
  height: 2.6rem;
  margin: auto;
  background: url('../images/ico_ar.svg') no-repeat 50% 50% / auto 100%;
}
.link__btn .sml {
  font-size: .7778em;
}
@media (any-hover: hover) {
  .link__btn:hover {
    background-color: var(--c_link_hover);
  }
}
@media screen and (min-width: 900px) {
  .link__btn::after {
    right: 3.2rem;
    width: 3.6rem;
    height: 3.6rem;
  }
}
@media screen and (max-width: 425px) {
  .link__btn {
    font-size: 1.6rem;
  }
}

/* iframe */
.movie iframe {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 800 / 450;
}

/*----------------------------------------------------------
   layout
----------------------------------------------------------*/
/* header
----------------------------------------------------------*/
#l-header {
  z-index: 3;
  position: absolute;
  top: 0;
  width: 100%;
}
#l-header .header-inner {
	padding-inline: min(calc(10 / var(--w_sp) * 100vw), 2.4rem);
}
.header__logo {
	position: relative;
	width: fit-content;
	margin: min(calc(10 / var(--w_sp) * 100vw), 2.4rem) 0 0 auto;
}
.header__logo a {
	display: block;
}
.header__logo img {
	width: 11.7rem;
	height: auto;
}
@media screen and (min-width: 768px) {
  .header__logo img {
    width: min(calc(176 / var(--w_max) * 100vw), 17.6rem);
  }
}

/* #mv
----------------------------------------------------------*/
#mv {
  background: url('../images/bg_mv.jpg') no-repeat 50% 50% / cover;
}
#mv .mv__content {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(calc(48 / var(--w_max) * 100vw), 48px);
  width: min(85%, 42.0rem);
  margin-inline: auto;
  padding-block: 6.8rem calc(32 / var(--w_sp) * 100vw);
}
#mv .mv__logo {
  width: 55.513%;
}
@media screen and (min-width: 768px) {
  #mv .inner {
    height: min(calc(640 / var(--w_full) * 100vw), 640px);
  }
  #mv .mv__content {
    width: min(calc(789 / var(--w_full) * 100vw), 789px);
    padding-block: min(calc(83 / var(--w_full) * 100vw), 83px) 0;
  }
}

/* #l-main
----------------------------------------------------------*/
/* #intro */
#intro {
  margin-top: 3.6rem;
}
#intro .inner::before {
  z-index: -1;
  content: "";
  position: absolute;
  top: auto;
  bottom: 2.0rem;
  left: 0;
  width: 100%;
  height: 88%;
  background-color: var(--c_bg);
}
#intro .intro__title {
  font-size: 5.4rem;
  line-height: 1;
  font-weight: 700;
  vertical-align: text-bottom;
}
#intro .intro__title b {
  color: var(--c_em);
}
#intro .intro__title b .en {
  color: var(--c_black);
  font-size: 1.0476em;
}
#intro .intro__title .last {
  color: #6e6e6e;
  font-size: 0.5714em;
}
#intro .intro__text {
  padding-top: 1.0rem;
  color: var(--c_text01);
  font-size: 1.6rem;
}
#intro .intro__image {
  width: 80%;
  margin: 1.3rem auto 0;
}
@media screen and (max-width: 767px) {
  #intro .grid {
    max-width: 42.5rem;
  }
}
@media screen and (min-width: 768px) {
  #intro {
    margin-top: min(calc(55 / var(--w_full) * 100vw), 5.5rem);
  }
  #intro::before {
    z-index: -1;
    top: auto;
    bottom: 2.0rem;
    width: 50%;
    height: min(calc(300 / var(--w_full) * 100vw), 30.0rem);
    background-color: var(--c_bg);
  }
  #intro .inner::before {
    width: min(calc(1130 / var(--w_full) * 100vw), 113.0rem);
    height: min(calc(300 / var(--w_full) * 100vw), 30.0rem);
    border-radius: 0 2.0rem 2.0rem 0;
  }
  #intro .intro__title {
    padding: min(calc(76 / var(--w_full) * 100vw), 7.6rem) 0 0 2.9rem;
    font-size: min(calc(84 / var(--w_max02) * 100vw), 8.4rem);
  }
  #intro .intro__text {
    padding: min(calc(40 / var(--w_full) * 100vw), 4.0rem) 0 0 min(calc(93 / var(--w_full) * 100vw), 9.3rem);
    font-size: min(calc(24 / var(--w_max) * 100vw), 2.4rem);
  }
  #intro .intro__image {
    width: min(calc(645 / var(--w_full) * 100vw), 64.5rem);
    margin: 0 1.3rem 0 0;
  }
}

/* .point */
.point__wrap {
  position: relative;
}
.point .point__title {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.2rem;
}
.point .point__title .point__num {
  flex-grow: 0;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 8.0rem;
  height: 8.0rem;
  padding-top: 0.5rem;
  border-radius: 50%;
  background-color: var(--c_em);
  color: var(--c_white);
  font-size: 1.4rem;
  line-height: 1;
  font-weight: 800;
}
.point .point__title i {
  display: block;
  font-size: 3.6rem;
  font-weight: 600;
}
.point .point__title .point-title__text {
  font-size: 3.2rem;
  line-height: 1.4;
  font-weight: 700;
}
.point .point__illust {
  position: absolute;
  top: 0;
  height: fit-content;
}
.point .point__text__wrap {
  margin: 2.4rem 0 0;
}
.point .point__text__wrap .point-text__title {
  font-size: 2.2rem;
  line-height: 1.5;
  font-weight: 700;
}
.point .point__text__wrap p {
  margin-top: 1.6rem;
}
@media screen and (min-width: 768px) {
  .point .point__title {
    justify-content: flex-start;
    gap: 2.4rem;
  }
  .point .point__title .point__num {
    width: 11.2rem;
    height: 11.2rem;
    font-size: 2.0rem;
  }
  .point .point__title i {
    font-size: 5.2rem;
  }
  .point .point__title .point-title__text {
    font-size: 4.0rem;
  }
  .point .point__image {
    position: absolute;
    top: 0;
    height: fit-content;
  }
  .point .point__text__wrap {
    margin-left: 4.8rem;
  }
  .point .point__text__wrap .point-text__title {
    font-size: 3.2rem;
  }
  .point .point__text__wrap p {
    margin-top: 2.4rem;
  }
}

/* .point01 */
#point01 {
  padding-top: 4.8rem;
}
#point01 .point__image {
  width: 25.6rem;
  margin: 1.2rem auto 0;
}
#point01 .point__illust {
  top: 24.6rem;
  left: calc(50% + 6.1rem);
  width: 9.9rem;
}
@media screen and (min-width: 768px) {
  #point01 {
    padding-top: min(calc(81 / var(--w_full) * 100vw), 8.1rem);
  }
  #point01 .point__wrap {
    margin-inline: min(calc(62 / var(--w_full) * 100vw), 6.2rem);
    padding-right: min(calc(450 / var(--w_full) * 100vw), 45.0rem);
  }
  #point01 .point__image {
    right: 0;
    bottom: 0;
    width: min(calc(400 / var(--w_full) * 100vw), 40.0rem);
    margin: auto;
  }
  #point01 .point__illust {
    top: 1.0rem;
    right: min(calc(420 / var(--w_full) * 100vw), 42.0rem);
    left: auto;
    width: min(calc(177 / var(--w_full) * 100vw), 17.7rem);
  }
}

/* .point02 */
#point02 {
  padding-top: 4.8rem;
}
#point02 .point__image {
  width: 27.5rem;
  margin: 1.2rem auto 0;
  padding-right: 40px;
}
#point02 .point__illust {
  top: 9.4rem;
  left: calc(50% + 4.6rem);
  width: 12.5rem;
}
@media screen and (min-width: 768px) {
  #point02 {
    padding-top: min(calc(95 / var(--w_full) * 100vw), 9.5rem);
  }
  #point02 .point__wrap {
    margin-inline: min(calc(62 / var(--w_full) * 100vw), 6.2rem) min(calc(112 / var(--w_full) * 100vw), 11.2rem);
    padding-left: min(calc(360 / var(--w_full) * 100vw), 36.0rem);
  }
  #point02 .point__image {
    left: 0;
    bottom: 0;
    width: min(calc(320 / var(--w_full) * 100vw), 32.0rem);
    margin: auto;
    padding-right: 0;
  }
  #point02 .point__illust {
    top: -3.2rem;
    right: -8.0rem;
    left: auto;
    width: min(calc(226 / var(--w_full) * 100vw), 22.6rem);
  }
}
@media screen and (min-width: 900px) {
  #point02 .point__wrap {
    margin-inline: min(calc(126 / var(--w_full) * 100vw), 12.6rem) min(calc(112 / var(--w_full) * 100vw), 11.2rem);
  }
}

/* .point03 */
#point03 {
  padding-top: 4.8rem;
}
#point03 .point__illust {
  top: auto;
  bottom: -2.0rem;
  left: 0;
  width: 15.1rem;
}
#point03 .point__chart {
  gap: 1.6rem;
}
#point03 .point__chart .grid_col {
  padding: 2.0rem 1.6rem;
  border-radius: 0.8rem;
  background-image: linear-gradient(to bottom, #fff6d7, #fafaf8);
}
#point03 .point__chart .grid_col .point-chart__title {
  text-align: center;
  font-size: 2.4rem;
  line-height: 1.5;
  font-weight: 700;
}
#point03 .point__chart .grid_col .point-chart__subtitle {
  text-align: center;
  margin-top: 1.2rem;
  font-size: 1.9rem;
  line-height: 1.5;
  font-weight: 500;
}
#point03 .point__chart .grid_col .point-chart__image {
  padding-block: 1.7rem;
}
#point03 .point__chart .grid_col .point-chart__text {
  font-size: 1.4rem;
}
#point03 .link__btn__wrap {
  margin-top: 2.2rem;
}
#point03 .point__text__last {
  text-align: center;
  margin-top: 1.8rem;
  font-size: 1.8rem;
}
@media screen and (max-width: 767px) {
  #point03 .point__text__wrap .point-text__sp {
    display: block;
    height: 13.4rem;
    padding-left: 16.2rem;
  }
  #point03 .point__chart .grid_col .point-chart__image {
    max-width: 42.5rem;
    margin-inline: auto;
  }
}
@media screen and (min-width: 768px) {
  #point03 {
    padding-top: min(calc(96 / var(--w_full) * 100vw), 9.6rem);
  }
  #point03 .point__wrap {
    margin-inline: 4.2rem 5.0rem;
  }
  #point03 .point__illust {
    top: 12.0rem;
    bottom: auto;
    left: -3.0rem;
    width: 26.7rem;
  }
  #point03.point .point__text__wrap {
    margin: 0.8rem 0 3.2rem 30.0rem;
  }
  #point03 .point__chart {
    gap: min(calc(32 / var(--w_full) * 100vw), 3.2rem);
  }
  #point03 .point__chart .grid_col {
    width: 50%;
    padding: 3.0rem min(calc(40 / var(--w_full) * 100vw), 4.0rem) 3.1rem;
  }
  #point03 .point__chart .grid_col .point-chart__title {
    font-size: 3.6rem;
  }
  #point03 .point__chart .grid_col .point-chart__subtitle {
    margin-top: 1.7rem;
    font-size: 2.8rem;
  }
  #point03 .point__chart .grid_col .point-chart__image {
    padding: 2.5rem min(calc(41 / var(--w_full) * 100vw), 4.1rem) 2.4rem;
  }
  #point03 .point__chart .grid_col .point-chart__text {
    font-size: 1.6rem;
  }
  #point03 .link__btn__wrap {
    margin-top: 3.2rem;
  }
  #point03 .point__text__last {
    margin-top: 2.2rem;
    font-size: 3.2rem;
  }
}

/* #extraction_request */
#extraction_request {
  margin-top: 4.8rem;
}
#extraction_request .extraction__wrap {
  overflow: hidden;
  border-radius: 1.2rem;
  border: solid 1px var(--c_border);
  color: var(--c_text01);
}
#extraction_request .extraction__wrap .extraction__title {
  text-align: center;
  padding: 1.7rem 1.7rem 1.6rem;
  background-color: var(--c_gray);
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.2;
}
#extraction_request .extraction__wrap .extraction__content {
  padding: 1.8rem 1.2rem 2.4rem;
  border-top: solid 1px var(--c_border);
  font-size: 1.4rem;
  line-height: 1.6;
}
#extraction_request .extraction__wrap .extraction__content li+li {
  margin-top: 0.4444em;
}
#extraction_request .link__btn__wrap {
  margin-top: 2.4rem;
}
@media screen and (min-width: 768px) {
  #extraction_request {
    margin-top: min(calc(89 / var(--w_full) * 100vw), 8.9rem);
  }
  #extraction_request .extraction__wrap {
    border-radius: 1.6rem;
  }
  #extraction_request .extraction__wrap .extraction__title {
    font-size: 2.4rem;
  }
  #extraction_request .extraction__wrap .extraction__content {
    padding: 3.2rem min(calc(40 / var(--w_full) * 100vw), 4.0rem);
    font-size: 1.8rem;
    line-height: 1.4;
  }
  #extraction_request .link__btn__wrap {
    margin-top: 3.0rem;
  }
}

/* #supervise */
#supervise {
  margin-top: 4.8rem;
}
#supervise .inner {
  display: flex;
}
#supervise .inner::after {
  z-index: -1;
  content: "";
  position: absolute;
  bottom: 0;
  width: calc(100% - 4.0rem);
  height: calc(100% - 1.6rem);
  border-radius: 1.2rem;
  background-color: var(--c_bg);
}
#supervise .inner>.grid {
  align-items: flex-start;
  padding: 0 1.6rem 3.2rem;
  gap: 3.5rem;
}
#supervise .supervise__text__wrap .supervise__title {
  font-size: 1.5rem;
  line-height: 1.5;
}
#supervise .supervise__text__wrap .supervise__title span {
  font-size: 1.2em;
  font-weight: 700;
}
#supervise .supervise__text__wrap .supervise__subtitle {
  font-size: 2.6rem;
  font-weight: 700;
  line-height: 1.45;
}
#supervise .supervise__text__wrap .supervise__text {
  margin-top: 1.8rem;
  font-size: 1.4rem;
}
#supervise .supervise__text__wrap .supervise__text .note {
  margin-top: 0.8rem;
  font-size: 1.2rem;
  line-height: 1.5;
}
#supervise .supervise__vcard {
  align-items: flex-end;
  gap: 1.6rem;
}
#supervise .supervise__vcard .supervise-vcard__photo {
  width: 18.6rem;
}
#supervise .supervise__vcard .supervise-vcard__text {
  width: 18.0rem;
  font-size: 1.2rem;
  line-height: 1.5;
}
#supervise .supervise__vcard .supervise-vcard__fn {
  margin-bottom: 0.5rem;
}
#supervise .supervise__vcard .supervise-vcard__fn span {
  font-size: 1.6rem;
  font-weight: 500;
}
@media screen and (min-width: 768px) {
  #supervise {
    margin-top: min(calc(96 / var(--w_full) * 100vw), 9.6rem);
  }
  #supervise .inner::after {
    border-radius: 2.0rem;
  }
  #supervise .inner>.grid {
    padding: 0 min(calc(64 / var(--w_full) * 100vw), 6.4rem) 3.2rem;
    gap: 4.8rem;
  }
  #supervise .supervise__text__wrap .supervise__title {
    font-size: 2.0rem;
  }
  #supervise .supervise__text__wrap .supervise__subtitle {
    font-size: 3.2rem;
  }
  #supervise .supervise__text__wrap .supervise__text {
    margin-top: 2.5rem;
    font-size: 1.6rem;
  }
  #supervise .supervise__text__wrap .supervise__text .note {
    font-size: 1.4rem;
  }
}

/* #spec */
#spec {
  margin-top: 4.8rem;
}
#spec .spec__title {
  text-align: center;
  font-size: 2.4rem;
  font-weight: 500;
}
#spec .spec__list {
  overflow: hidden;
  display: grid;
  margin-top: 1.8rem;
  border-radius: 0.8rem;
  border: solid 1px var(--c_border);
}
#spec .spec__list>dt {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 5.5rem;
  margin: 0;
  border-top: solid 1px var(--c_border);
  background-color: var(--c_gray);
  font-size: 1.4rem;
  font-weight: 500;
}
#spec .spec__list>dd {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 5.5rem;
  border-top: solid 1px var(--c_border);
  padding: 0.7rem 1.2rem;
  font-size: 1.4rem;
  line-height: 1.5;
}
#spec .spec__list>dt:first-of-type {
  border-top: 0;
}
#spec .spec__list>dd .note {
  margin-top: 0.3rem;
  font-size: 1.3rem;
}
#spec .spec__list>dd .spec-list_components {
  justify-content: flex-start;
  gap: 1.8rem;
  margin: 0;
}
#spec .spec__list>dd .spec-list_components .spec__image {
  width: min(100%, 42.5rem);
}
#spec .spec__list>dd .spec-list_components+.note {
  margin: 1.5rem 0 1.3rem;
}
@media screen and (min-width: 768px) {
  #spec {
    margin-top: min(calc(86 / var(--w_full) * 100vw), 8.6rem);
  }
  #spec .spec__title {
    font-size: 3.2rem;
  }
  #spec .spec__list {
    grid-template-columns: 24.0rem 1fr;
    margin-top: 2.3rem;
  }
  #spec .spec__list>dt {
    min-height: 6.9rem;
    border-right: solid 1px var(--c_border);
    font-size: 1.8rem;
  }
  #spec .spec__list>dd {
    min-height: 6.9rem;
    font-size: 1.8rem;
  }
  #spec .spec__list>dd:first-of-type {
    border-top: 0;
  }
  #spec .spec__list>dd .note {
    font-size: 1.6rem;
  }
  #spec .spec__list>dd .spec-list_components {
    gap: 3.2rem;
  }
  #spec .spec__list>dd .spec-list_components .spec__image {
    width: 33.6rem;
  }
}

/* #faq */
#faq {
  margin-top: 4.8rem;
  padding-block: 4.8rem 4.8rem;
  background-color: var(--c_bg);
}
#faq .faq__title {
  text-align: center;
  font-size: 2.4rem;
  font-weight: 500;
}
#faq .faq__list {
  margin-top: 2.2rem;
}
#faq .faq__list>dt {
  display: flex;
  align-items: center;
  margin-bottom: 0.7rem;
  padding-bottom: 0.9rem;
  border-bottom: 1px solid #c4c4c4;
  color: var(--c_text01);
  font-size: 1.5rem;
  line-height: 1.6;
  font-weight: 500;
}
#faq .faq__list>dt .faq__num {
  flex-grow: 0;
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 4.0rem;
  height: 4.0rem;
  margin-right: 1.2rem;
  border-radius: 50%;
  background-color: var(--c_black);
  color: var(--c_white);
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1;
}
#faq .faq__list>dd {
  color: var(--c_text02);
  font-size: 1.4rem;
  line-height: 1.6;
}
#faq .faq__list>dd+dt {
  margin-top: 3.8rem;
}
#faq .faq__list .movie {
  overflow: hidden;
  width: 100%;
  margin-top: 2.2rem;
  border-radius: 0.6rem;
}
#faq .faq__list .faq__image__wrap {
  align-items: flex-end;
  gap: 2.4rem;
  width: 100%;
  margin: 2.2rem auto;
  color: var(--c_black);
}
#faq .faq__list .faq__image {
  width: min(100%, 46.0rem);
}
#faq .faq__list .faq__warning {
  overflow: hidden;
  border-radius: 0.8rem;
  border: solid 1px var(--c_border);
}
#faq .faq__list .faq__warning dt {
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.8rem;
  background-color: #ebebeb;
  padding: 0.2rem;
  font-size: 1.5rem;
  font-weight: 700;
}
#faq .faq__list .faq__warning dt::before {
  content: "";
  display: block;
  width: 2.2rem;
  height: 2.0rem;
  background: url('../images/ico_warning.svg') no-repeat 50% 50% / auto 100%;
}
#faq .faq__list .faq__warning dd {
  padding: 0.4rem 1.2rem 0.8rem;
  font-size: 1.2rem;
}
@media screen and (max-width: 767px) {
  #faq .faq__list .faq__image__wrap {
    max-width: 42.5rem;
  }
}
@media screen and (min-width: 768px) {
  #faq {
    margin-top: min(calc(96 / var(--w_full) * 100vw), 9.6rem);
    padding-block: min(calc(70 / var(--w_full) * 100vw), 7.0rem) 4.8rem;
  }
  #faq .faq__title {
    font-size: 3.2rem;
  }
  #faq .faq__list>dt {
    font-size: 1.8rem;
  }
  #faq .faq__list>dd {
    font-size: 1.8rem;
  }
  #faq .faq__list>dd+dt {
    margin-top: 4.7rem;
  }
  #faq .faq__list .movie {
    width: 80.0rem;
    margin: 3.2rem auto 0;
  }
  #faq .faq__list .faq__image__wrap {
    width: 78.7rem;
    margin: 3.2rem auto;
  }
  #faq .faq__list .faq__warning {
    width: 30.3rem;
  }
  #faq .faq__list .faq__warning dd {
    font-size: 1.3rem;
  }
}

/* footer
----------------------------------------------------------*/
#l-footer {
  padding: 3.2rem 2.4rem;
  background: #222;
  color: #fff;
}
.footer_inner {
  text-align: left;
  max-width: 920px;
  margin: 0 auto;
}
.footer_contact {
  padding: 32px 24px;
  background: #444;
}
.footer_contact_info {
  display: flex;
  flex-direction: column;
  gap: 13px;
  padding-bottom: 32px;
}
.footer_contact_info_item_data {
  font-size: 1.2rem;
  line-height: 1.6;
  font-weight: 700;
}
.footer_contact_info_item_data.footer_contact_info_item_data__num {
  margin-top: 7px;
  font-size: 1.6rem;
  line-height: 1;
}
.footer_contact_info_item_note {
  width: 100%;
  margin-top: 13px;
}
.footer_contact_info_item_note_text {
  font-size: 1rem;
}
.footer_contact_info_reception_data {
  font-size: 1.2rem;
  line-height: 1.9;
}
.footer_contact_info_reception_data__title::after {
  display: inline-block;
  content: "：";
}
.footer_contact_toMailform {
  padding-top: 32px;
  border-top: solid 1px #787878;
}
.footer_contact_toMailform_link {
  text-align: center;
  position: relative;
  display: block;
  margin: 0 auto;
  padding: 9px 6.0rem;
  border: solid 1px #fff;
  color: #fff;
  font-size: 1.8rem;
  line-height: 1.5;
  font-weight: 500;
  transition: opacity 0.3s;
}
.footer_contact_toMailform_link::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
  width: 36px;
  height: 36px;
  background-image: url(../images/arrow-next.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.footer_contact_toMailform_link:hover {
  opacity: 0.6;
}
.footer_copy {
  text-align: center;
  margin-top: 30px;
}
.footer_copy_text {
  color: #fff;
  font-weight: 400;
  font-size: 1rem;
  line-height: 2.8;
}

@media screen and (min-width: 768px) {
  footer {
    padding: min(2.21429vw, 31px) min(2.85714vw, 40px) min(2.85714vw, 40px);
  }
  .footer_contact {
    padding: 48px 40px;
  }
  .footer_contact_info {
    gap: 25px;
  }
  .footer_contact_info_item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 29px 32px;
  }
  .footer_contact_info_item_data {
    font-size: 1.8rem;
    line-height: 1.1;
  }
  .footer_contact_info_item_data.footer_contact_info_item_data__num {
    margin-top: 0;
    font-size: 2.2rem;
  }
  .footer_contact_info_item_note_text {
    font-size: 1.4rem;
    line-height: 1.4;
  }
  .footer_contact_info_reception {
    display: flex;
  }
  .footer_contact_info_reception_data {
    font-size: 1.6rem;
    line-height: 1.4;
  }
  .footer_contact_toMailform_link {
    width: 400px;
    padding: 21px;
  }
  .footer_contact_toMailform_link::after {
    right: 24px;
  }
  .footer_copy {
    margin-top: 54px;
  }
  .footer_copy_text {
    font-size: 1.2rem;
    line-height: 2.3;
  }
}
