@charset "UTF-8";
/**
 * フォントサイズ
 */
/**
 * Retina対応の背景画像
 */
/**
 * メディアクエリ
 */
/**
 * クリアフィックス
 */
/*
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com 
Twitter: @rich_clark
*/
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after, q:before, q:after {
  content: "";
  content: none;
}

ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}

mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold;
}

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 #cccccc;
  margin: 1em 0;
  padding: 0;
}

input, select {
  vertical-align: middle;
}

body {
  background: #fff;
  color: #232b35;
  font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  line-height: 1.5;
  font-size: 16px;
  font-size: 1rem;
}
@media screen and (max-width: 767px) {
  body {
    -webkit-text-size-adjust: 100%;
  }
}

a {
  background: transparent;
  color: #1a0dab;
  margin: 0;
  outline: none;
  padding: 0;
  text-decoration: none;
  vertical-align: baseline;
  font-size: 16px;
  font-size: 1rem;
}
a a:hover {
  color: #65c0f5;
  text-decoration: none;
}
a[href^="tel:"] {
  display: inline-block;
}
@media print, screen and (min-width: 768px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}

img {
  vertical-align: top;
}
@media screen and (max-width: 767px) {
  img {
    height: auto;
    max-width: 100%;
  }
}

p {
  margin-bottom: 16px;
}

small {
  font-size: 12px;
  font-size: 0.75rem;
}

h2 {
  line-height: 1.2;
  margin: 0 0 10px;
  background: #000;
  color: #fff;
  font-size: 1.5rem;
  margin: 0 0 20px;
  padding: 10px 20px;
  text-align: left;
}

h3 {
  color: #1c3583;
  line-height: 1.2;
  margin: 0 0 10px;
  font-size: 24px;
  font-size: 1.5rem;
}
h3 span {
  font-size: 18px;
  font-size: 1.125rem;
}

h4 {
  border-bottom: 1px solid #ed7700;
  clear: both;
  color: #ed7700;
  margin: 20px 0 15px;
  padding-bottom: 5px;
  font-size: 18px;
  font-size: 1.125rem;
}

/**
 * リスト
 */
ul,
ol {
  margin: 0 0 16px 32px;
}

/**
 * フロート
 */
.clear {
  clear: both;
}

.center {
  text-align: center;
}

@media screen and (max-width: 767px) {
  .left,
  .right {
    float: none;
  }
  img.left,
  img.right {
    display: block;
    margin: 0 auto 14px;
  }
}
@media print, screen and (min-width: 768px) {
  .left {
    float: left;
  }
  .right {
    float: right;
  }
  img.left {
    margin: 0 14px 14px 0;
  }
  img.right {
    margin: 0 0 14px 14px;
  }
}
/**
 * Clearfix
 */
.clearfix:after {
  clear: both;
  content: "";
  display: block;
}

/**
 * テーブル
 */
.table-bordered {
  margin-bottom: 20px;
  width: 100%;
}
.table-bordered th,
.table-bordered td {
  border: 1px solid #ddd;
  padding: 10px;
  vertical-align: middle;
  font-size: 14px;
  font-size: 0.875rem;
}
.table-bordered th {
  background: #eee;
  text-align: left;
}
.table-bordered thead th {
  background: #4ec5ed;
  color: #fff;
  text-align: center;
  white-space: nowrap;
}

.bordered-container {
  border: 1px solid #ddd;
  padding: 10px;
}

table td *:last-child,
.bordered-container *:last-child {
  margin-bottom: 0;
}

.full-width {
  width: 100%;
}

.red {
  color: #f00;
}

.more {
  clear: both;
  text-align: right;
}

@media screen and (max-width: 767px) {
  .hidden-sp {
    display: none;
  }
}
@media print, screen and (min-width: 768px) {
  .hidden-pc {
    display: none;
  }
}
/**
 * ヘッダー
 */
.global-header {
  background: #000;
  margin: 0 auto 40px;
  padding: 0;
}
.global-header .global-header-inner {
  margin: 0 auto;
  overflow: hidden;
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 0 15px;
  height: 64px;
}
@media print, screen and (min-width: 768px) {
  .global-header .global-header-inner {
    padding: 0;
    width: 1000px;
  }
}
.global-header h1 {
  line-height: 1;
  margin: 0;
}
.global-header h1 a {
  font-size: 100%;
}
.global-header h1 a img {
  display: block;
}
@media screen and (max-width: 767px) {
  .global-header h1 {
    flex: 1;
  }
  .global-header h1 a {
    font-size: 24px;
    font-size: 1.5rem;
  }
  .global-header .logo {
    margin: 0 auto 10px;
    width: 80%;
  }
}
@media print, screen and (min-width: 768px) {
  .global-header {
    width: 100%;
  }
  .global-header h1 {
    width: 362px;
  }
  .global-header h1 a {
    font-size: 28px;
    font-size: 1.75rem;
  }
  .global-header .logo {
    margin: 5px 0 0;
  }
}
.global-header-contact a {
  border: 2px solid #fff;
  border-radius: 50px;
  color: #fff;
  font-weight: bold;
  padding: 5px 10px;
  font-size: 0.75rem;
}
@media print, screen and (min-width: 768px) {
  .global-header-contact a {
    font-size: 0.875rem;
  }
}
.global-header-contact a:hover {
  background: #fff;
  color: #000;
}

/**
 * コンテンツ
 */
.content {
  margin: 0 auto;
  padding: 0 15px;
}
@media print, screen and (min-width: 768px) {
  .content {
    width: 1000px;
  }
}

section {
  margin-bottom: 20px;
}

.text-first {
  text-align: center;
  font-size: 18px;
  font-size: 1.125rem;
}

/**
 * サービス提供会社
 */
.offer {
  font-size: 14px;
  font-size: 0.875rem;
  margin: 0 0 16px;
}
@media print, screen and (min-width: 768px) {
  .offer {
    margin: 0 0 20px;
  }
}

/**
 * 申し込みフォーム
 */
.contact-btn {
  text-align: center;
}
.contact-btn a {
  background-color: #ec1a1a;
  border-radius: 10px;
  box-shadow: 0 5px 0 #8a0f0f;
  color: #fff;
  display: inline-block;
  font-weight: bold;
  position: relative;
  text-decoration: none;
  top: 0;
  transition: all 0.2s ease;
  font-size: 20px;
  font-size: 1.25rem;
}
.contact-btn a:hover {
  box-shadow: none;
  top: 5px;
}
@media screen and (max-width: 767px) {
  .contact-btn {
    margin: 20px auto 40px;
  }
  .contact-btn a {
    padding: 20px;
  }
}
@media print, screen and (min-width: 768px) {
  .contact-btn {
    margin: 0 auto 40px;
  }
  .contact-btn a {
    padding: 20px 40px;
  }
}

fieldset {
  background: #fff;
  border: 2px groove threedface;
  margin: 20px 0;
  padding: 10px;
}
fieldset table {
  width: 100%;
}
fieldset table th,
fieldset table td {
  border: 1px solid #ccc;
  padding: 10px;
  vertical-align: middle;
}
fieldset table th {
  background: #eee;
  text-align: left;
}
@media screen and (max-width: 767px) {
  fieldset table th,
  fieldset table td {
    display: block;
  }
}
@media print, screen and (min-width: 768px) {
  fieldset table th {
    width: 15em;
  }
}
fieldset input,
fieldset select,
fieldset textarea {
  font-family: inherit;
  font-size: inherit;
  padding: 5px;
}
@media screen and (max-width: 767px) {
  fieldset input[type=text],
  fieldset textarea {
    box-sizing: border-box;
    width: 100%;
  }
}
fieldset input[type=radio] {
  margin-bottom: 0;
  margin-top: 0;
}
fieldset textarea {
  height: 10em;
}
@media print, screen and (min-width: 768px) {
  fieldset textarea {
    width: 500px;
  }
}
fieldset.support-type label, fieldset.time label {
  align-items: center;
  display: inline-flex;
}
fieldset .label-required,
fieldset .label-optional {
  background: #f00;
  color: #fff;
  display: inline-block;
  font-weight: bold;
  margin-right: 1em;
  padding: 2px 4px;
  font-size: 12px;
  font-size: 0.75rem;
}
fieldset .label-optional {
  background: #888;
}
fieldset .input-example {
  color: #888;
}

#privacy {
  border: 1px solid #ccc;
  height: 200px;
  overflow-y: scroll;
  padding: 10px;
  width: auto;
}
#privacy h2 {
  margin-bottom: 20px;
}

.buttons {
  margin: 10px auto 20px;
  text-align: center;
  word-spacing: 2em;
}
.buttons input {
  -webkit-appearance: none;
  background-color: #ec1a1a;
  border: 0;
  border-radius: 10px;
  box-shadow: 0 5px 0 #8a0f0f;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-weight: bold;
  padding: 20px 40px;
  position: relative;
  text-decoration: none;
  top: 0;
  transition: all 0.2s ease;
  font-size: 20px;
  font-size: 1.25rem;
}
.buttons input:hover {
  box-shadow: none;
  top: 5px;
}
.buttons input:disabled {
  background: #ccc;
  box-shadow: none;
  top: 5px;
}

.g-recaptcha > div {
  margin: 20px auto;
}

/**
 * フッター
 */
.global-footer {
  background: #000;
}
.global-footer-inner {
  margin: 0 auto;
  overflow: hidden;
  padding: 10px 15px;
}
@media print, screen and (min-width: 768px) {
  .global-footer-inner {
    width: 1000px;
  }
}
.global-footer .copyright {
  color: #fff;
  float: left;
  display: block;
  margin: 0;
  font-size: 14px;
  font-size: 0.875rem;
}
.global-footer .privacy {
  float: right;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .global-footer .privacy {
    float: none;
  }
}
.global-footer .privacy a {
  color: #fff;
  display: inline-block;
  text-decoration: underline;
  font-size: 14px;
  font-size: 0.875rem;
}
@media screen and (max-width: 767px) {
  .global-footer .privacy a {
    margin-top: 1em;
  }
}
.global-footer .privacy a:not(:last-child) {
  margin-right: 1em;
}

.fmv-note {
  margin: 40px 0;
}

.step-flow-wrapper {
  width: 100%;
  max-width: 600px;
  margin: 0 0 20px;
  padding: 12px 8px;
  border: 1px solid #1c3583;
  background-color: #ffffff;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02);
  box-sizing: border-box;
  font-family: sans-serif;
}

.step-flow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  width: 100%;
}

.step-item {
  display: flex;
  align-items: center;
  gap: 4px;
}

.step-number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background-color: #1c3583;
  color: #ffffff;
  font-size: 0.6875rem;
  flex-shrink: 0;
}

.step-text {
  font-size: 0.6875rem;
  font-weight: bold;
  line-height: 1.2;
}

.step-arrow {
  color: #1c3583;
  font-size: 0.875rem;
  flex-shrink: 0;
}

@media print, screen and (min-width: 768px) {
  .step-flow-wrapper {
    padding: 20px 24px;
  }
  .step-flow {
    justify-content: center;
    gap: 16px;
  }
  .step-item {
    gap: 8px;
  }
  .step-number {
    width: 30px;
    height: 30px;
    font-size: 0.875rem;
  }
  .step-text {
    font-size: 0.875rem;
  }
  .step-arrow {
    font-size: 1.125rem;
  }
}
.tel {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 20px;
  border: 3px solid #f2f2f2;
}
.tel .tel-title {
  font-weight: bold;
  font-size: 1.25rem;
  line-height: 1.4;
  text-align: center;
  white-space: nowrap;
}
.tel .tel-main-num {
  font-weight: bold;
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}
.tel .tel-main-num a {
  color: inherit;
  font-size: 1.75rem;
}
.tel .tel-main-num-icon {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  position: relative;
  width: 45px;
  height: 45px;
  background-color: #1c3583;
  border-radius: 100%;
}
.tel .tel-main-num-icon span {
  background: url(../img/tel_ic_001.png) center/contain no-repeat;
  width: 22px;
  height: 24px;
}
.tel .tel-main-sup,
.tel .tel-main-sup a {
  font-size: 0.875rem;
}
.tel .tel-main-sup {
  color: #666;
  margin-top: 4px;
}
.tel .tel-reception {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 20px;
  border-top: 1px solid #f2f2f2;
}
.tel .tel-reception-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.tel .tel-reception-item-label {
  background-color: #1c3583;
  color: #fff;
  font-size: 0.875rem;
  font-weight: bold;
  padding: 2px 0;
  white-space: nowrap;
  flex: 0 0 6em;
  text-align: center;
}
.tel .tel-reception-item-content {
  flex: 1;
  font-size: 1.25rem;
  font-weight: bold;
  line-height: 1.2;
}
.tel .tel-reception-item-content span {
  font-size: 0.75rem;
  color: #666;
}
@media screen and (max-width: 767px) {
  .tel .contact-transition {
    max-width: 550px;
    margin: 20px auto 25px;
  }
  .tel a.tel-contact-btn {
    display: flex;
    align-items: center;
    gap: 10px;
    position: relative;
    min-height: 42px;
    padding: 5px 35px 5px 20px;
    color: #fff;
    font-weight: bold;
    font-size: 16px;
    line-height: 1.2;
    text-decoration: none;
    background-color: #1c3583;
    border-radius: 50px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  }
  .tel a.tel-contact-btn::after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    right: 15px;
    width: 8px;
    height: 12px;
    background-color: #fff;
    clip-path: polygon(0 0, 0 100%, 100% 50%);
    transform: translateY(-50%);
  }
  .tel [class*=commonIcon-] {
    display: inline-block;
    flex-shrink: 0;
    position: relative;
    overflow: hidden;
    white-space: nowrap;
    text-indent: 100%;
    line-height: 1;
    vertical-align: middle;
    background-repeat: no-repeat;
    background-position: 0 0;
    background-size: 100% auto;
  }
  .tel .commonIcon-tel {
    width: 16px;
    height: 18px;
    background-image: url(../img/tel_ic_001.png);
  }
  .tel .contact-btn_txt {
    width: 100%;
    text-align: center;
  }
}
@media print, screen and (min-width: 768px) {
  .tel {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
  .tel .tel-title {
    font-size: 1rem;
  }
  .tel .tel-main-num a {
    font-size: 2.25rem;
  }
  .tel .tel-reception {
    padding-top: 0;
    border-top: 0;
  }
}

.slider {
  margin: 0 auto 60px !important;
}
@media print, screen and (min-width: 768px) {
  .slider {
    width: 980px;
  }
}
.slider .slick-prev,
.slider .slick-next {
  z-index: 2;
}
.slider .slick-prev::before,
.slider .slick-next::before {
  color: #000;
}
.slider .slick-prev {
  left: -10px;
}
.slider .slick-next {
  right: -10px;
}
.slider .slick-slide a:hover {
  opacity: 0.8;
}