/* Variables */
:root {
  --main-color: #32B16C;
  --secondary-color: #F7812B;
  --tertiary-color: #EC6875;
  --black-color: #000;
  --white-color: #fff;
  --gray-color: #666666;
  --font-primary: "Noto Sans JP", sans-serif;
  --fs-small: 12px; 
  --fs-main: 16px; 
  --fs-med: 18px; 
  --fs-large: 20px; 
}

@font-face {
    font-family: 'Helvetica Neue';
    src: url('../fonts/HelveticaNeue/HelveticaNeue-Bold.woff2') format('woff2'),
        url('../fonts/HelveticaNeue/HelveticaNeue-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'DIN Alternate';
    src: url('../fonts/DINAlternate/DINAlternate-Bold.woff2') format('woff2'),
        url('../fonts/DINAlternate/DINAlternate-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}



*, *:before, *:after { 
  box-sizing: border-box; 
  -moz-box-sizing: border-box; 
  image-rendering: -webkit-optimize-contrast;
}
*:focus {
  outline: none;
}

/* Add the correct display in Edge, IE 10+, and Firefox. */
 details { display: block; }

/* Add the correct display in IE 10+ */
template { display: none; }

/* Add the correct display in all browsers */
summary { display: list-item; }

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed,  figure, figcaption, footer, header, hgroup,  menu, nav, output, ruby, section, summary, time, mark, audio, video { 
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; 
  -webkit-text-size-adjust: 100%;
}
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
}

/* HTML5 display-role reset for older browsers */

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {  display: block; }
body { line-height: 1; }
ul { list-style: none; }
blockquote, q { quotes: none; }
blockquote:before, blockquote:after,
q:before, q:after { 
  content: '';
  content: none;
}
table { 
  border-collapse: collapse;
  border-spacing: 0; 
}
button, html input[type=button], input[type=reset], input[type=submit] { 
  -webkit-appearance: button;
  cursor: pointer;
}
input:not([type='radio']):not([type='checkbox']), textarea, select { -webkit-appearance: none; }
form, label { -webkit-text-size-adjust: 100%; }
mark { background-color: transparent; }
/* end reset */

/*preset*/
body { 
  font-size: var(--fs-main); 
  line-height: 1.5;
  font-family: var(--font-primary); 
  color: var(--black-color);
  position: relative; 
}
body.active { 
  overflow: hidden;
  width:100%;
  height:100%;
  position:fixed!important; 
}
a { 
  text-decoration:none; 
  -webkit-transition: all .3s linear;
  transition: all .3s linear; 
}
img { 
  max-width: 100%; 
  vertical-align: top; 
  image-rendering: -webkit-optimize-contrast; 
}
textarea { resize:vertical; }
iframe { border: none; width: 100%; }
ul, h1, h2, h3, h4 { 
  margin:0; 
  padding:0; 
  list-style: none; 
}
strong , b { font-weight: bold; }
em, i { font-style: italic; }
sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub { bottom: -0.25em; }
sup { top: -0.5em; }
input[type="submit"] { cursor: pointer; }
hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  height: 0;
  overflow: visible;
}
pre {
  font-family: monospace, monospace;
  font-size: 1em;
}
a { background-color: transparent; }
a[href^="tel:"] { 
  color: inherit!important;
  text-decoration: none; 
}
abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}
code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

.clearfix:before, .clearfix:after { 
  content:""; 
  display: table; 
  clear: both; 
}
.clearfix { 
  clear: both; 
  overflow: hidden; 
}

/* Forms Presets */
::-webkit-input-placeholder { opacity: 1; color: inherit; }
::-moz-placeholder { opacity: 1; color: inherit; }
:-ms-input-placeholder { opacity: 1; color: inherit; }
:-moz-placeholder { opacity: 1; color: inherit; }

/*end preset*/



/*----------------------------------------------
	 COMMON
---------------------------------------------*/
section { 
  margin-bottom: 100px;
  padding: 0 12px;
}
.l_wrapper {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  position: relative;
}
.c_ttl {
  font-size: 36px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--main-color);
  text-align: center;
  margin-bottom: 25px;
}
.sp-only { display: none; }


/*----------------------------------------------
	 HEADER
---------------------------------------------*/
.header_con { 
  min-height: 70px;
  display: flex;
  justify-content: center;
  align-items: center;
}
header .logo {
  width: 100%;
  max-width: 186px;
}



/*----------------------------------------------
	 BANNER
---------------------------------------------*/
#banner { margin-bottom: 30px; }
#banner .wrap { max-width: 1150px; }
#banner_con  { }
#banner .mv { 
  background-color: var(--main-color);
  text-align: center;
}
#banner .info { 
  font-size: var(--fs-small);
  padding: 10px 0;
}
#banner .info ul li {
  position: relative;
  padding-left: 15px; 
}
#banner .info ul li:before {
  content: "※";
  position: absolute;
  top: 0;
  left: 0;
}



/*----------------------------------------------
	 STEPS
---------------------------------------------*/
.steps_list li {
  display: block;
  width: 100%;
  position: relative;
  border: 1px solid var(--main-color);
  border-radius: 10px;
  margin-bottom: 80px;
}
.steps_list li:last-child { margin-bottom: 0; }
.steps_list li:not(:last-child):before {
  content: "";
  background: url(../images/icon-arrow-down.svg) no-repeat center top / contain;
  width: 30px;
  height: 36px;
  position: absolute;
  bottom: -60px;
  left: 0;
  right: 0;
  margin: 0 auto;
}
.steps_list .num {
  font-family: 'Helvetica Neue';
  font-size: 33px;
  line-height: 1;
  font-weight: 700;
  color: var(--white-color);
  text-align: center;
  padding: 10px;
  width: 100%;
  display: block;
  background-color: var(--main-color);
  border-radius: 7px 7px 0 0;
  margin-bottom: 50px;
}
.steps_list .num small { font-size: 40px; }
.steps_list .sub-ttl {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 7px;
}
.steps_list .sub-ttl h3 {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  color: #fff;
  padding: 6px 27px 6px 42px;
  display: flex;
  align-items: center;
  gap: 5px;
  position: relative;
  margin-left: 43px;
}
.steps_list .sub-ttl h3.orange { background-color: var(--secondary-color); }
.steps_list .sub-ttl h3.pink { background-color: var(--tertiary-color); }
.steps_list .sub-ttl h3:before {
  content: "";
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  width: 75px;
  height: 80px;
  position: absolute;
  top: 50%;
  left: -44px;
  transform: translateY(-50%);
}
.steps_list .sub-ttl h3.orange:before { background-image: url(../images/icon-ttl-1.svg); }
.steps_list .sub-ttl h3.pink:before { background-image: url(../images/icon-ttl-2.svg); }
.steps_list .sub-ttl h3:after {
  content: "";
  width: 0;
  height: 0;
  border-top: 20px solid transparent;
  border-bottom: 20px solid transparent;
  border-right: 10px solid var(--white-color);
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}
.steps_list .sub-ttl h3 span { font-size: 15px; }
.steps_list .sub-ttl small { font-weight: 700; }
.steps_info {
  padding: 40px 70px 50px 120px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.steps_info .text {width: 58%;}
.steps_info .text h4 {
  font-size: 30px;
  line-height: 1.2;
  font-weight: bold;
  color: var(--main-color);
  margin-bottom: 5px;
}
.steps_info .text h4 small { font-size: 15px; }
.steps_info .text p { margin-bottom: 20px; }
.steps_info .text .btn {
  font-size: var(--fs-main);
  font-weight: 700;
  line-height: 1.2;
  color: var(--white-color);
  text-align: center;
  padding: 5px 15px;
  width: 100%;
  min-height: 40px;
  max-width: 200px;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--black-color);
  margin-bottom: 20px;
  border-radius: 4px;
  position: relative;
}
.steps_info .text .btn.line { 
  background-color: #00C300;
  box-shadow: 0 3px 0 0 #00B100;
}
.steps_info .text .btn.line:before {
  content: "";
  background: url(../images/icon-line.svg) no-repeat center top / contain;
  width: 32px;
  height: 30px;
  display: inline-block;
  vertical-align: middle;
  margin-right: 5px;
}
.steps_info .text .btn.pink { 
  background-color: var(--tertiary-color);
  box-shadow: 0 3px 0 0 #C04C58;
}
.steps_info .text .btn.combi { 
  background: linear-gradient(to right, var(--secondary-color), var(--tertiary-color));
  box-shadow: 0 3px 0 0 rgba(0,0,0,.2);
}
.steps_info .text .btn:hover { opacity: .6; }
.steps_info .media {
  width: 37%;
  max-width: 280px;
}
/* copy text */
.copy-box {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}
.copy-message {
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-bottom: 8px;
  padding: 4px 8px;
  background: #333;
  color: #fff;
  font-size: 12px;
  border-radius: 4px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease;
  white-space: nowrap;
}
.copy-message.show {
  opacity: 1;
  visibility: visible;
}
.steps_info .copy-box .copy-btn {
  background-color: var(--secondary-color);
  box-shadow: 0 3px 0 0 #D16D24;
  max-width: 129px;
  border: none;
  cursor: pointer;
  margin-bottom: 0;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}
.steps_info .copy-box input {
  font-size: 14px;
  color: var(--black-color);
  height: 43px;
  border: 1px solid #ccc;
  padding: 5px 10px 5px 140px;
  border-radius: 4px;
  width: 100%;
}



/*----------------------------------------------
	 NOTICE
---------------------------------------------*/
.notice { 
   background-color: #F6F6F6; 
   padding: 40px 105px;
   border-radius: 20px;
  }
.notice .ttl {
  font-size: 23px;
  font-weight: 700;
  color: var(--black-color);
  margin-bottom: 20px;
  text-align: center;
  line-height: 1.2;
}
.notice h3 {
  font-size: var(--fs-main);
  line-height: 1.2;
  color: var(--white-color);
  border-radius: 4px;
  padding: 6px 10px;
  margin-bottom: 10px;
  display: inline-block;
  vertical-align: top;
  font-weight: 700;
}
.notice .sub-ttl1 { background-color: var(--secondary-color); }
.notice .sub-ttl2 { background-color: var(--tertiary-color); }
.notice p { margin-bottom: 20px; }
.notice p.last { margin-bottom: 0px; }
.notice ul { margin-bottom: 20px; }
.notice ul li { 
  position: relative;
  padding-left: 20px;
}
.notice ul li:before {
  content: "";
  background: #000;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  position: absolute;
  top: 12px;
  left: 7px;
}



/*----------------------------------------------
	 FAQ
---------------------------------------------*/
.faq_list li:not(:last-child) { margin-bottom: 20px; }
.faq_quest {
  font-size: var(--fs-large);
  font-weight: 700;
  color: var(--white-color);
  background-color: var(--main-color);
  padding: 18px 20px 18px 70px;
  border-radius: 10px 10px 0 0;
  position: relative;
  line-height: 1.2;
}
.faq_quest:before {
  content: "Q.";
  font: 500 34px 'DIN Alternate';
  color: var(--white-color);
  position: absolute;
  top: 50%;
  left: 30px;
  transform: translateY(-50%);
}
.faq_ans {
  font-size: var(--fs-med);
  font-weight: 500;
  color: var(--gray-color);
  padding: 18px 20px 18px 70px;
  border: 3px solid var(--main-color);
  border-radius: 0 0 10px 10px;
  position: relative;
}
.faq_ans:before {
  content: "A.";
  font: 500 34px 'DIN Alternate';
  color: var(--main-color);
  position: absolute;
  top: 50%;
  left: 30px;
  transform: translateY(-50%);
}


