@charset "UTF-8";

/* reset
================================================= */
*,*::before,*::after{box-sizing:border-box}
html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}
body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}
ul[role='list'],ol[role='list']{list-style:none}
body{min-height:100vh}
h1,h2,h3,h4,h5,h6,button,input,label{line-height:1.4}
a:not([class]){text-decoration-skip-ink:auto;color:currentColor}
img,picture{max-width:100%;display:block}
input,button,textarea,select{font:inherit}
textarea:not([rows]){min-height:10em}
:target{scroll-margin-block:5em}
/* addition */
table{border-collapse:collapse;border-spacing:0}
.cf:before,.cf:after{content:"";display:table}
.cf:after{clear:both}


/* base
================================================= */
html {
	font-size: 62.5%;
  scroll-behavior: smooth;
}
body {
	color: #181818;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	font-size: 1.6rem;
	line-height: 1.8;
	-webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
a {
  color: #1558d6;
}
a:visited {
  color: #681da8;
}
a:hover,
a:active {
  color: #44a0ff;
}
ul,
ol {
  margin: 0;
  padding: 0 0 0 1.2em;
}
iframe[src^="https://www.youtube.com/"] {
  width: 100%;
  height: 100%;
	aspect-ratio: 16 / 9;
}
@media print, screen and (min-width: 960px) {
  body { font-size: 1.8rem; }
}


/* text decoration
================================================= */
.text-smallest {
  font-size: 0.7em;
}
.text-small {
  font-size: 0.85em;
}
.text-large {
  font-size: 1.25em;
}
.text-largest {
  font-size: 1.4em;
}
.text-bold {
  font-weight: bold;
}
.text-red {
  color: #C80028;
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}


/* flexbox
================================================= */
.flex {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: -7%;
}
.flex.col1 {
  justify-content: center;
}
.flex.col2 {
  justify-content: space-between;
}
.flex > * {
  margin-bottom: 7%;
}
@media print, screen and (min-width: 600px) {
  .flex { margin-bottom: -5%; }
  .flex > * { margin-bottom: 5%; }
  .flex.col2 > * { width: 47.5%; }
}


/* button
================================================= */
a.btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(100%,280px);
  height: 60px;
  margin: 0.4em 0;
  padding: 0 1.5em;
  border-radius: 100vh;
  background: linear-gradient(135deg, #e60012, #e60012 50%, #b23416);
  color: #ffffff;
  font-weight: bold;
  line-height: 1.3;
  text-decoration: none;
  z-index: 0;
  transition: 0.2s;
  -webkit-tap-highlight-color: rgba(0,0,0,0);
}
a.btn:hover,
a.btn:active {
  color: #ffffff;
}
a.btn::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 100vh;
  background: linear-gradient(135deg, #00a6bf, #00a6bf 50%, #066f8d);
  z-index: -1;
  opacity: 0;
  transition: 0.2s;
}
a.btn:hover::before,
a.btn:active::before {
  opacity: 1;
}
a.btn::after {
  content: '';
  display: block;
  width: 9px;
  height: 16px;
  margin-left: 10px;
  background-image: url(../image/icon_arrow-white.svg);
  background-position: center left;
  background-repeat: no-repeat;
  background-size: contain;
}
@media print, screen and (min-width: 960px) {
  a.btn { width: min(100%,320px); height: 70px; }
}


/* footer
================================================= */
footer {
	padding: 15px 0;
	background: #000000;
	color: #fff;
  font-size: 1.2rem;
	text-align: center;
}
address {
  font: inherit;
  line-height: 20px;
}
@media print, screen and (min-width: 768px) {
  footer { padding: 25px 0;  }
}
