@charset "UTF-8";

/*!
 * Aonami v1.1.2
 * Copyright 2021 hello-mystyle (https://hello-mystyle.jp/)
 * Customized based on Bootstrap v4.6.0 (https://getbootstrap.com/)
 * Customized based on Bootstrap v5.0.1 (https://getbootstrap.com/)
 */


/* ============================================================
  # Root
============================================================ */

:root {/*CSS変数*/
  --primary: hsla(210, 55%, 45%, 1);
  --primary-dk: hsla(210, 60%, 35%, 1);
  --primary-b: hsla(210, 60%, 50%, 1);
  --primary-lt: hsla(210, 60%, 60%, 1);
  --primary-ltg: hsla(210, 30%, 85%, 1);
  --secondary: hsla(210, 5%, 45%, 1);
  --accent: hsla(30, 70%, 50%, 1);
  --black: #000;
  --body: #222;
  --white: #fff;
  --border: #ccc;
  --lightgray: #d3d3d3;
  --whitesmoke: #f5f5f5;
  --frost: hsla(0, 0%, 100%, 0.2);
  --focus-shadow: hsla(210, 100%, 50%, 0.25);
  --font-family-base: "BIZ UDPGothic", "Meiryo", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
  --font-family-mincho: "BIZ UDPMincho", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  --font-family-gothic: "BIZ UDPGothic", "Meiryo", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
}



/* ============================================================
  # Content
============================================================ */

/* ## Reboot
======================================== */

*,
*::before,
*::after {
  box-sizing: border-box;
}
::selection {
  background: hsla(190, 85%, 45%, 0.5);
  text-shadow: none;
}
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
  display: block;
}
body {
  background-color: var(--white);/*基本背景色*/
  color: var(--body);/*基本文字色*/
  font-family: var(--font-family-base);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  margin: 0;
  text-align: left;
}

[tabindex="-1"]:focus:not(:focus-visible) {
  outline: 0 !important;
}
hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}
h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  margin-bottom: 0.5rem;
}
p {
  /* line-height: 1.8; */
  line-height: 2;
  margin-top: 0;
  margin-bottom: 1.5rem;
}
abbr[title],
abbr[data-original-title] {
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
  cursor: help;
  border-bottom: 0;
  -webkit-text-decoration-skip-ink: none;
  text-decoration-skip-ink: none;
}
address {
  margin-bottom: 1rem;
  font-style: normal;
  line-height: inherit;
}
ol, ul, dl {
  margin-top: 0;
  margin-bottom: 1.5rem;
}
ol ol, ul ul, ol ul, ul ol {
  margin-bottom: 0;
}
dt {
  font-weight: 700;
}
dd {
  margin-left: 0;
  margin-bottom: 0.5rem;
}
blockquote {
  margin: 0 0 1.125rem;
}
b, strong {
  font-weight: bolder;
}
/* small {
  font-size: 0.875em;
} */
sub, sup {
  position: relative;
  font-size: 0.75em;
  line-height: 0;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
a {
  color: var(--primary);/*リンク文字色*/
  text-decoration: none;
  background-color: transparent;
}
a:hover {
  color: var(--primary-dk);/*リンク文字色*/
  text-decoration: underline;
}
a:not([href]):not([class]) {
  color: inherit;
  text-decoration: none;
}
a:not([href]):not([class]):hover {
  color: inherit;
  text-decoration: none;
}
pre, code, kbd, samp {
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 1em;
}
pre {
  margin-top: 0;
  margin-bottom: 1.125rem;
  overflow: auto;
  -ms-overflow-style: scrollbar;
}
figure {
  margin: 0 0 1.5rem;
}
img {
  border-style: none;
  vertical-align: middle;
}
svg {
  overflow: hidden;
  vertical-align: middle;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
caption {
  color: var(--secondary);
  caption-side: bottom;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  text-align: left;
}
th {
  text-align: inherit;
  text-align: -webkit-match-parent;
}
label {
  display: inline-block;
  margin-bottom: 0.5rem;
}
button {
  border-radius: 0;
}
button:focus:not(:focus-visible) {
  outline: 0;
}
input, button, select, optgroup, textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  margin: 0;
}
button, input {
  overflow: visible;
}
button, select {
  text-transform: none;
}
[role="button"] {
  cursor: pointer;
}
select {
  word-wrap: normal;
}
button,
[type="button"], [type="reset"], [type="submit"] {
  -webkit-appearance: button;
}
button:not(:disabled),
[type="button"]:not(:disabled),
[type="reset"]:not(:disabled),
[type="submit"]:not(:disabled) {
  cursor: pointer;
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  padding: 0;
  border-style: none;
}
input[type="radio"], input[type="checkbox"] {
  box-sizing: border-box;
  padding: 0;
}
textarea {
  overflow: auto;
  resize: vertical;
}
fieldset {
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
}
legend {
  color: inherit;
  display: block;
  font-size: 1.5rem;
  line-height: inherit;
  margin-bottom: 0.5rem;
  max-width: 100%;
  padding: 0;
  white-space: normal;
  width: 100%;
}
progress {
  vertical-align: baseline;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
[type="search"] {
  outline-offset: -2px;
  -webkit-appearance: none;
}
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  font: inherit;
  -webkit-appearance: button;
}
output {
  display: inline-block;
}
summary {
  display: list-item;
  cursor: pointer;
}
template {
  display: none;
}
[hidden] {
  display: none !important;
}



/* ## Typography
======================================== */

/* ### Headings
---------------------------------------- */

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-weight: 700;
  /* line-height: 1.2; */
  margin-bottom: 0.5rem;
}
h1, .h1 {
  font-size: calc(1.375rem + 1.5vw);
}
@media (min-width: 1200px) {
  h1, .h1 {
    font-size: 2.5rem;
  }
}
h2, .h2 {
  font-size: calc(1.325rem + 0.9vw);
}
@media (min-width: 1200px) {
  h2, .h2 {
    font-size: 2rem;
  }
}
h3, .h3 {
  font-size: calc(1.3rem + 0.6vw);
}
@media (min-width: 1200px) {
  h3, .h3 {
    font-size: 1.75rem;
  }
}
h4, .h4 {
  font-size: calc(1.275rem + 0.3vw);
}
@media (min-width: 1200px) {
  h4, .h4 {
    font-size: 1.5rem;
  }
}
h5, .h5 {
  font-size: 1.25rem;
}
h6, .h6 {
  font-size: 1.125rem;
}


/* ### Paragraph
---------------------------------------- */

p {
  font-size: calc(0.813rem + 0.333vw);
}
@media (min-width: 1200px) {
  p {
    font-size: 1.063rem;
  }
}


/* ### hr
---------------------------------------- */

hr {
  border: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.25);
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}


/* ### Inline text elements
---------------------------------------- */

small, .small {
  font-size: 0.875em;
  font-weight: 400;
}

mark, .mark {
  background-color: #ff0;
  color: #000;
  padding: 0.2em;
}


/* ### Lists
---------------------------------------- */

.list-unstyled {
  padding-left: 0;
  list-style: none;
}

.list-with-icon {
  padding-left: 1.5rem;
  list-style: none;
}

.list-with-icon__item::before {
  border-color: transparent transparent transparent currentColor;
  border-width: 0.3em 0 0.3em 0.35em;
  border-style: solid;
  color: var(--primary);
  content: "";
  display: inline-block;
  height: 0;
  padding-right: 0.5em;
  width: 0;
}

/* .list-with-icon li::before {
  color: var(--primary);
  content: "\f0da";
  display: inline-block;
  font-family: FontAwesome;
  padding-right: 0.5em;
} */

li, dt, dd {
  font-size: calc(0.813rem + 0.333vw);
}
@media (min-width: 1200px) {
  li, dt, dd {
    font-size: 1.063rem;
  }
}



/* ## Images
======================================== */

/* ### Responsive images
---------------------------------------- */

.img-fluid {
  height: auto;
  max-width: 100%;
}


/* ### Image thumbnails
---------------------------------------- */

.img-thumbnail {
  background-color: var(--white);
  border: 1px solid #ccc;
  border-radius: 0.1rem;
  height: auto;
  max-width: 100%;
  padding: 0.375rem;
}


/* ### 美しい枠線
https://coliss.com/articles/build-websites/operation/css/css-image-contrast-options.html
---------------------------------------- */

.img-shadow {
  box-shadow: 0 0 3px 1px rgba(0,0,0,0.1) inset;
}
.img-shadow img {
  position: relative;
  z-index: -1;
}



/* ## Tables
======================================== */

.table {
  border: 1px solid var(--border);
  color: var(--body);
  margin-bottom: 1.5rem;
  width: 100%;
}

.table th, .table td {
  border: 1px solid var(--border);
  font-size: calc(0.813rem + 0.333vw);
  padding: 0.75rem;
  vertical-align: top;
}

.table th {
  background-color: var(--whitesmoke);
  font-weight: 400;
}

.table td > p {
  line-height: 1.5;
}

.table td > p:last-child {
  margin-bottom: 0;
}

@media (min-width: 1200px) {
.table td, .table th {
    font-size: 1.063rem;
  }
}


/* ### Responsive tables
---------------------------------------- */

.table-responsive {
  display: block;
  margin-bottom: 1.5rem;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.table-responsive > .table {
  margin-bottom: 0;
}


/* ### Responsive tables 2col（2列テーブルのレスポンシブ）
---------------------------------------- */

@media not all and (min-width: 576px) {
  .table-responsive-2col th,
  .table-responsive-2col td {
    border: none;
    display: block;
    width: 100% !important;
  }
  /* .table-responsive-2col th {
    padding-bottom: 0.25rem;
  }
  .table-responsive-2col td {
    padding-top: 0.25rem;
  } */
}



/* ## Figures
======================================== */

.figure {
  display: inline-block;
}

.figure-img {
  line-height: 1;
  margin-bottom: 0.375rem;
}

.figure-caption {
  color: var(--secondary);
  font-size: 0.875rem;
}





/* ============================================================
  # Layout
============================================================ */

.container {
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px;
  width: 100%;
}

@media (min-width: 576px) {/*sm*/
  .container {
    max-width: 540px;
  }
}

@media (min-width: 768px) {/*md*/
  .container {
    max-width: 720px;
  }
}

@media (min-width: 992px) {/*lg*/
  .container {
    max-width: 960px;
  }
}

/* @media (min-width: 1040px) {
  .container {
    max-width: 1000px;
  }
} */

@media (min-width: 1200px) {/*xl*/
  .container {
    max-width: 1140px;
  }
}

@media (min-width: 1400px) {/*xxl*/
  .container {
    max-width: 1320px;
  }
}

.container-fluid {
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px;
  width: 100%;
}

.container-breakout {
  margin-left: -50vw;
  margin-right: -50vw;
  position: relative;
  left: 50%;
  right: 50%;
  width: 100vw;
}

.row {
  margin-left: -15px;
  margin-right: -15px;
}

.col-full {
  padding-left: 15px;
  padding-right: 15px;
}

@media (min-width: 992px) {
  .col-full {
    padding-left: 0;
    padding-right: 0;
  }
}


/* ## Site content
======================================== */

.site-content__row {
  margin-left: -15px;
  margin-right: -15px;
}

.site-content__col-primary,
.site-content__col-secondary {
  padding-top: 1rem;/*調整*/
  padding-left: 15px;/*ガター幅*/
  padding-right: 15px;/*ガター幅*/
  padding-bottom: 3.5rem;
  width: 100%;
}

/* @media (min-width: 576px) {
} */
/* @media (min-width: 768px) {
} */

@media (min-width: 992px) {
  .site-content__row {
    display: flex;
    margin-left: -30px;
    margin-right: -30px;
  }
  .site-content__col-primary {
    flex: 1;
  }
  .site-content__col-secondary {
    width: calc(210px + 30px);
  }
}

/* @media (min-width: 1040px) {
  .site-content__col-secondary {
    width: calc(230px + 30px);
  }
} */

@media (min-width: 1200px) {
  .site-content__col-secondary {
    width: calc(250px + 30px);
  }
}




/* ============================================================
  # Components
============================================================ */

/* ## Site header
======================================== */

.site-header {
  border-top: 9px solid var(--primary);
  padding: 1rem 0;
  width: 100%;
}

.site-header__container {
  position: relative;
}


/* ### Layout
---------------------------------------- */

@media (min-width: 768px) {
  .site-header__row {
    align-items: center;
    display: flex;
    justify-content: space-between;
  }
}


/* ### Logo
---------------------------------------- */

.site-header__logo {
  display: block;
  margin-bottom: 0.75rem;
  max-width: 180px;
}

@media (min-width: 768px) {
  .site-header__logo {
    margin-bottom: 0;
  }
}


/* ### Tel
---------------------------------------- */

.site-header__tel {
  text-align: center;
}

@media (min-width: 768px) {
  .site-header__tel {
    text-align: left;
  }
}

.site-header__tel {
  /* line-height: 1.35; */
  margin-bottom: 0;
}

.site-header__tel-number {
  color: #c00;
  font-size: 1.5rem;
  font-weight: 700;
}

.site-header__tel-number a {
  color: #c00;
}


/* ### Nav btn
---------------------------------------- */

.site-header__nav-btn {
  background-color: transparent;
  border: none;/*border必須*/
  cursor: pointer;
  position: absolute;
    right: 15px;
    top: 3px;
  z-index: 10;
}

.site-header__nav-btn:focus {
  box-shadow: 0 0 0 0.2rem var(--focus-shadow);
  outline: 0;
}

.site-header__nav-btn::before {
  background-image: url("../img/menu_icon.svg");
  background-size: contain;
  content: "";
  display: block;
  width: 44px;
  height: 44px;
  transition: 0.15s;
}

.site-header__nav-btn.is-open::before {
  background-image: url("../img/close_icon.svg");
  background-size: contain;
  content: "";
  display: block;
  width: 44px;
  height: 44px;
  transition: 0.15s;
}

@media (min-width: 768px) {
  .site-header__nav-btn {
    display: none;
  }
}



/* ## Global nav for desktop
======================================== */

.global-nav__fluid {
  display: none;
}

@media (min-width: 768px) {
  .global-nav__fluid {
    display: block;
  }
}

.global-nav__fluid {
  background-color: var(--whitesmoke);
  color: var(--body);
}

.global-nav {
  display: flex;
  list-style: none;
  margin-left: -15px;
  margin-right: -15px;
  margin-bottom: 0;
  padding-left: 0;
}

.global-nav__item {
  border-right: 1px solid var(--border);
  flex: 1 0 0%;
  text-align: center;
}

.global-nav__item:first-child {
  border-left: 1px solid var(--border);
}

.global-nav__link {
  background-color: var(--white);
  border-bottom: 5px solid hsla(210, 55%, 75%, 1);
  color: var(--body);
  display: block;
  font-weight: 400;
  /* line-height: 1.35; */
  line-height: 1.5;
  padding: 0.75em 0.5em;
  transition: 0.15s;
}

.global-nav__link small {
  color: var(--primary);
  font-size: 0.75rem;
  font-weight: 400;
}

.global-nav__link:hover,
.global-nav__link:focus {
  background-color: var(--white);
  border-bottom-color: var(--primary-b);
  color: var(--body);
  text-decoration: none;
}

.global-nav__link--active,
.global-nav__link--active:hover,
.global-nav__link--active:focus {
  background-color: var(--white);
  border-bottom-color: var(--primary);
  color: var(--body);
}



/* ## Drawer nav
======================================== */

.drawer-nav__fluid {
  margin: 0 auto;
  /* margin: 0 -15px; */
}

@media (min-width: 768px) {
  .drawer-nav__fluid {
    display: none;
  }
}

/* .drawer-nav {
  margin-bottom: 1.5rem;
} */

/*head*/
.drawer-nav__head {
  background-color: var(--primary-b);
  border-top: 1px solid #ddd;
  border-bottom: 1px solid var(--white);
  border-radius: 0.25rem 0.25rem 0 0;
  color: var(--white);
  display: block;
  font-size: 1.125rem;
  padding: 0.75rem 1rem;
  text-align: center;
}

/* .drawer-nav__item {

} */

.drawer-nav__link {
  background-color: var(--white);
  border-left: 1px solid #ddd;
  border-right: 1px solid #ddd;
  display: block;
  padding: 0.5rem 2.25rem 0.5rem 1rem;
  position: relative;
  text-decoration: none;
  transition: 0.15s;
}

.drawer-nav__link:hover,
.drawer-nav__link:focus {
  background-color: #eee;
  box-shadow: 0 0 0 0.2rem var(--focus-shadow);
  outline: 0;
}

.drawer-nav__link::after {
  content: "\f054";
  font-family: FontAwesome;
  position: absolute;
    right: 15px;
    top: 50%;
  transform: translateY(-50%);
}

/*parent*/
.drawer-nav__link-parent {
  background-color: #999;
  border-left: 1px solid #ddd;
  border-right: 1px solid #ddd;
  color: var(--white);
  display: block;
  padding: 0.75rem 2.25rem 0.75rem 1rem;
  position: relative;
  text-decoration: none;
  transition: 0.15s;
}

.drawer-nav__link-parent:hover,
.drawer-nav__link-parent:focus {
  background-color: #888;
  box-shadow: 0 0 0 0.2rem var(--focus-shadow);
  color: var(--white);
  outline: 0;
}

/*other*/
.drawer-nav__link-other {
  background-color: var(--white);
  border-left: 1px solid #ddd;
  border-right: 1px solid #ddd;
  display: block;
  padding: 0.5rem 1rem 0.5rem 2.25rem;
  position: relative;
  text-decoration: none;
  transition: 0.15s;
}

.drawer-nav__link-other:hover,
.drawer-nav__link-other:focus {
  background-color: #eee;
  box-shadow: 0 0 0 0.2rem var(--focus-shadow);
  outline: 0;
}

.drawer-nav__link-other::before {
  content: "\f138";
  font-family: FontAwesome;
  position: absolute;
    left: 15px;
    top: 50%;
  transform: translateY(-50%);
}

/*adjust*/
.drawer-nav__link + .drawer-nav__link {
  border-top: 1px solid #ddd;
}
.drawer-nav__link-parent + .drawer-nav__link-parent {
  border-top: 1px solid var(--white);
}
.drawer-nav__link-other + .drawer-nav__link-other {
  border-top: none !important;
}

/*close*/
.drawer-nav__close {
  background-color: #777;
  border: none;/*border必須*/
  border-bottom: 1px solid #ddd;
  border-radius: 0 0 0.25rem 0.25rem;
  color: var(--white);
  cursor: pointer;
  display: block;
  font-size: 1.125rem;
  padding: 0.75rem 1rem 0.5rem;
  transition: 0.15s;
  text-align: center;
  width: 100%;
}

.drawer-nav__close::before {
  content: "\f151";
  display: inline-block;
  font-family: FontAwesome;
  padding-right: 0.5em;
}

.drawer-nav__close:hover,
.drawer-nav__close:focus {
  background-color: #666;
}



/* ## Visual
======================================== */

.page-visual__fluid {
  /* background-color: #eee; */
  background-color: hsla(210, 55%, 45%, 0.7);
  background-image: url("../img/bg_seigaiha.svg");
  border-bottom: 1px solid #ddd;
  box-shadow: 0 5px 4px -3px rgba(0, 0, 0, 0.15) inset;
  margin-bottom: 1.5rem;
}

.page-visual {
  background-image: url();
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  border-bottom: 1px solid #ddd;
  box-shadow: 0 5px 4px -3px rgba(0, 0, 0, 0.15) inset;
  margin: 0 -15px;
  padding: 60px 30px;
}

.page-visual--dummy {
  background-image: url("../img/visual_dummy1.jpg");
}

.page-visual__title {
  font-size: 1.75rem;
  text-shadow: 1px 1px 0px rgba(255, 255, 255, 1),/*白＋白*/
    0px 0px 4px rgba(255, 255, 255, 1);
}

@media (min-width: 768px) {
  .page-visual__title {
    font-size: 2rem;
  }
}



/* ## Breadcrumb
======================================== */

.breadcrumb {
  display: none;
}

@media (min-width: 768px) {
  .breadcrumb {
    /*background-color: #f5f5f5;背景を付けたいとき
    border-radius: 0.25rem;*/
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    margin-bottom: 1.125rem;
    padding-left: 0;
    /*padding: 0.75rem 1rem;背景を付けたいとき*/
  }
  /* .breadcrumb__item {
    display: flex;
  } */
  .breadcrumb__item:first-child::before {
    content: "\f015";
    /* display: inline-block; */
    float: left;
    font-family: FontAwesome;
    padding-right: 0.5em;
  }
  .breadcrumb__item {
    font-size: 0.875rem;
  }
  .breadcrumb__item + .breadcrumb__item {
    padding-left: 0.5em;
  }
  .breadcrumb__item + .breadcrumb__item::before {
    color: #666;
    content: ">\00a0";
    /* display: inline-block; */
    float: left;
    padding-right: 0.5em;
  }
  .breadcrumb__item + .breadcrumb__item:hover::before {
    text-decoration: underline;
  }
  .breadcrumb__item + .breadcrumb__item:hover::before {
    text-decoration: none;
  }
  .breadcrumb__item--current {
    color: #666;
  }
}



/* ## Heading
======================================== */

.heading-lg {
  background-color: #f5f5f5;
  background-image: linear-gradient(to bottom, #f7f7f7, #f7f7f7 60%, #eee);
  border: 1px solid #eee;
  border-radius: 0.25rem;
  box-shadow: 0 5px 4px -3px rgba(0, 0, 0, 0.15);
  color: var(--body);
  /* line-height: 1.4; */
  /* margin-top: 3rem; */
  margin-bottom: 0.75rem;
  padding: 0.25em 1rem;
}

.heading-md {
  background-color: #f5f5f5;
  border-left: 9px solid var(--primary-b);
  border-radius: 0.125rem;
  box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.03);
  margin-top: 3rem;
  margin-bottom: 0.75rem;
  padding: 0.25em 1rem;
}

.heading-sm {
  border-bottom: 1px dotted #bbb;
  margin-top: 2rem;
  margin-bottom: 0.75rem;
  padding: 0.25em 0;
}

/* .heading-xs {} */


/* ### Heading add label
---------------------------------------- */

.heading-lg__wrap {
  align-items: center;
  background-color: #f5f5f5;
  background-image: linear-gradient(to bottom, #f7f7f7, #f7f7f7 60%, #eee);
  border: 1px solid #eee;
  border-radius: 0.25rem;
  box-shadow: 0 5px 4px -3px rgba(0, 0, 0, 0.15);
  color: var(--body);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  /* line-height: 1.4; */
  margin-bottom: 0.75rem;
  padding: 0.5em 1rem;
}
.heading-lg__body {
  margin: 0;
}

.heading-md__wrap {
  align-items: center;
  background-color: #f5f5f5;
  border-left: 9px solid var(--primary-b);
  border-radius: 0.125rem;
  box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.03);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: 3rem;
  margin-bottom: 0.75rem;
  padding: 0.5em 1rem;
}
.heading-md__body {
  margin: 0;
}


/* ### Heading add underline
---------------------------------------- */

.heading-u__wrap {
  background-color: #f5f5f5;
  background-image: linear-gradient(to bottom, #f7f7f7, #f7f7f7 60%, #eee);
  border: 1px solid #eee;
  border-radius: 0.25rem;
  box-shadow: 0 5px 4px -3px rgba(0, 0, 0, 0.15);
  color: var(--body);
  /* line-height: 1.4; */
  margin-top: 3rem;
  margin-bottom: 0.75rem;
  padding: 0.5em 1rem;
}
.heading-u__body {
  border-bottom: 1px solid var(--primary-b);
  margin: 0;
  padding: 0 0 5px;
}

/* ### Heading short underline
---------------------------------------- */

.heading-short-underline {
  margin-top: 3rem;
  margin-bottom: 0.75rem;
  padding: 0.25em 1rem 0.5em;
  position: relative;
  text-align: center;
}

.heading-short-underline::after {
  background-color: var(--primary-b);
  content: "";
  height: 4px;
  position: absolute;
    bottom: 0;
    left: 50%;
  transform: translateX(-50%);
  width: calc(60px + 10%);
}


/* ### Heading underline plus
---------------------------------------- */

.heading-underline-plus {
  border-bottom: 4px solid #bbb;
  margin-top: 3rem;
  margin-bottom: 0.75rem;
  padding: 0.25em 1rem;
  position: relative;
}

.heading-underline-plus::after {
  background-color: var(--primary-b);
  content: "";
  height: 4px;
  position: absolute;
    bottom: -4px;
    left: 0;
  width: calc(60px + 20%);
}


/* ### Heading sideslash
---------------------------------------- */

.heading-sideslash {
  display: inline-block;
  margin-top: 3rem;
  margin-bottom: 0.75rem;
  padding: 0 2em;
  position: relative;
}

.heading-sideslash::before,
.heading-sideslash::after {
  background-color: var(--primary-b);
  content: "";
  height: 3px;
  position: absolute;
  top: 50%;
  width: 2em;
}

.heading-sideslash::before {
  left: 0;
  transform: rotate(75deg);
}

.heading-sideslash::after {
  right: 0;
  transform: rotate(105deg);
}



/* ## Lead
======================================== */

.lead {
  font-size: calc(1.275rem + 0.3vw);
  letter-spacing: 0.1em;
  text-align: center;
}
@media (min-width: 1200px) {
  .lead {
    font-size: 1.5rem;
  }
}



/* ## Buttons
======================================== */

.btn {
  background-color: #fafafa;
  border: 1px solid #ccc;
  border-radius: 0.25rem;
  /* border-radius: 50rem; 丸くしたいとき*/
  color: var(--body);
  /* cursor: pointer; */
  display: inline-block;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  padding: 0.5em 1rem;
  position: relative;
  transition: 0.15s;
  user-select: none;
  vertical-align: middle;
}

.btn:hover {
  background-color: #eee;
  border: 1px solid #adadad;
  color: var(--body);
  text-decoration: none;
}

.btn:focus, .btn.focus {
  box-shadow: 0 0 0 0.2rem var(--focus-shadow);
  outline: 0;
}

.btn.disabled, .btn:disabled {
  opacity: 0.65;
}

.btn:not(:disabled):not(.disabled) {
  cursor: pointer;
}

a.btn.disabled,
fieldset:disabled a.btn {
  pointer-events: none;
}

/* .btn--left-icon::before {
  color: var(--body);
  content: "\f0da";
  display: inline-block;
  font-family: FontAwesome;
  padding-right: 0.5em;
} */

.btn--left-icon::before {
  border-color: transparent transparent transparent currentColor;
  border-width: 0.375rem 0 0.375rem 0.5rem;
  border-style: solid;
  color: var(--body);
  content: "";
  display: inline-block;
  height: 0;
  padding-right: 0.5em;
  width: 0;
}

.btn--underline {
  background-color: transparent;
  border: none;
  border-bottom: 2px solid var(--primary);
  border-radius: 0;
  padding: 0 0.25em;
}

.btn--underline:hover,
.btn--underline:focus, .btn--underline.focus {
  background-color: transparent;
  border: none;
  border-bottom: 2px solid var(--accent);
  color: inherit;
}

.btn--primary {
  background-color: var(--primary);
  border-color: transparent;
  /* border-color: var(--primary); */
  color: var(--white);
}

.btn--primary:hover,
.btn--primary:focus, .btn--primary.focus {
  background-color: var(--primary-b);
  border-color: transparent;
  color: var(--white);
}

.btn--primary.btn--left-icon::before {
  color: var(--white);
}

.btn--secondary {
  background-color: var(--secondary);
  border-color: transparent;
  /* border-color: var(--secondary); */
  color: var(--white);
}

.btn--secondary:hover,
.btn--secondary:focus, .btn--secondary.focus {
  background-color: hsla(210, 5%, 50%, 1);
  border-color: transparent;
  color: var(--white);
}

.btn--secondary.btn--left-icon::before {
  color: var(--white);
}

.btn--block {
  display: block;
  width: 100%;
}

.btn--label {
  display: inline;
  font-size: 0.75rem;
  padding: 0.25em 0.75em;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
}

.btn--lg {
  border-radius: 0.375rem;
  font-size: 1.25rem;
  padding: 0.5em 2rem;
}



/* ## Badges
======================================== */

.badge {
  border-radius: 0.25rem;
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1;
  margin-left: 0.375rem;
  padding: 0.3em 0.7em;
  text-align: center;
  /* vertical-align: baseline; */
  vertical-align: middle;
  white-space: nowrap;
}

.badge--primary {
  background-color: hsla(210, 55%, 45%, 0.2);
  /* color: var(--white); */
}

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



/* ## Boxes
======================================== */

.box {
  background-color: #f5f5f5;
  border-radius: 0.25rem;
  /* margin-bottom: 1.5rem; */
  padding: 0.75rem 1.125rem;
}

.box > p:last-child, .box > ul:last-child,
.box > ol:last-child, .box > dl:last-child {
  margin-bottom: 0;
}

.box--border {
  border: 2px solid #ccc;
}

.box--border_primary {
  border: 2px solid var(--primary);
}

.box--shade {
  box-shadow: 0 0 6px 1px rgba(0, 0, 0, 0.07) inset;
}



/* ## Float img
======================================== */

/* vwを使ったマージンの取り方も研究してみる
例：calc(5px + 1vw)
https://coliss.com/articles/build-websites/operation/css/css-viewport-units.html */

/* margin の % 指定では、親要素の幅が基準。 */

.float-img {
  float: left;
  margin: 0 3% 3% 0;
  width: 33.33333333%;/*＝画像の横幅*/
}

.float-img--rev {/*reverse*/
  float: right;
  margin: 0 0 3% 3%;
  width: 33.33333333%;/*＝画像の横幅*/
}

@media (min-width: 576px) {
  .float-img,
  .float-img--rev {
    width: 25%;/*＝画像の横幅*/
  }
}

.float-img__body {/*回り込み回避（本文エリアに設定）*/
  overflow: hidden;
}




/* ## Cards
======================================== */

/* vwを使ったマージンの取り方も研究してみる
例：calc(5px + 1vw)
https://coliss.com/articles/build-websites/operation/css/css-viewport-units.html */

/* margin の % 指定では、親要素の幅が基準。 */

.card {
  /* margin-left: -15px;
  margin-right: -15px; */
  margin-left: -1.5%;
  margin-right: -1.5%;
  /* margin-bottom: 1.5rem; */
}

.card__item {
  background-color: #fafafa;
  border: 1px solid #ddd;
  border-radius: 0.25rem;
  /* margin: 15px; */
  margin: 1.5%;
  padding: 1.5%;
  /* width: calc(100% - 15px * 2); */
  width: calc(100% - 1.5% * 2);
}

/* @media (min-width: 320px) {
  .card {
    display: flex;
    flex-wrap: wrap;
  }
  .card__item {
    flex: 0 0 calc(100% / 2 - 30px);
    max-width: calc(100% / 2 - 30px);
  }
} */

@media (min-width: 576px) {
  .card {
    display: flex;
    flex-wrap: wrap;
  }
  .card__item {
    /* flex: 0 0 calc(100% / 2 - 30px);
    max-width: calc(100% / 2 - 30px); */
    flex: 0 0 calc(100% / 2 - 1.5% * 2);
    max-width: calc(100% / 2 - 1.5% * 2);
  }
}

@media (min-width: 768px) {
  .card__item {
    flex: 0 0 calc(100% / 2 - 1.5% * 2);
    max-width: calc(100% / 2 - 1.5% * 2);
  }
}

@media (min-width: 992px) {
  .card__item {
    /* flex: 0 0 calc(33.33333333% - 30px);
    max-width: calc(33.33333333% - 30px); */
    flex: 0 0 calc(33.33333333% - 1.5% * 2);/*IE,Edge対策*/
    max-width: calc(33.33333333% - 1.5% * 2);/*IE,Edge対策*/
  }
}

@media (min-width: 1200px) {
  .card__item {
    /* flex: 0 0 calc(100% / 4 - 30px);
    max-width: calc(100% / 4 - 30px); */
    flex: 0 0 calc(100% / 4 - 1.5% * 2);
    max-width: calc(100% / 4 - 1.5% * 2);
  }
}


/* ### Media Object
---------------------------------------- */

.media {
  /* margin-left: -15px;
  margin-right: -15px; */
  margin-left: -1.5%;
  margin-right: -1.5%;
  /* margin-bottom: 1.5rem; */
}

.media__body, .media__img {
  max-width: 100%;
  /* margin: 15px; */
  margin: 1.5%;
}

@media (min-width: 576px) {
  .media {
    /* align-items: center; */
    display: flex;
  }
  .media--rev {
    flex-direction: row-reverse;
  }
  .media__img {
    /* width: 300px; */
    width: 33%;
  }
  .media__img--half {
    width: 46%;
  }
  .media__body {
    flex: 1;
  }
}


/* ### flex-table-box
---------------------------------------- */

/* .flex-table-box {
  margin-bottom: 1.5rem;
} */

.flex-table-box__head, .flex-table-box__body {
  border: 2px solid var(--secondary);
  padding: 0.75rem;

}

dd.flex-table-box__body {
  margin-bottom: 0;
}

.flex-table-box__head {
  align-items: center;
  background-color: var(--secondary);
  color: var(--white);
  display: flex;
  justify-content: center;
}

@media (min-width: 768px) {
  .flex-table-box {
    display: flex;
    flex-wrap: wrap;
  }
  .flex-table-box__head {
    flex: 1 1 10em;
    max-width: 10em;
  }
  .flex-table-box__body {
    flex: 1 1 calc(100% - 10em);
    max-width: calc(100% - 10em);
  }
}

.flex-table-box__head > p:last-child,
.flex-table-box__body > p:last-child {
  margin-bottom: 0;
}



/* ## Forms
======================================== */

/* ### form-control
---------------------------------------- */

.form-control {
  /* background-color: var(--white); */
  background-color: hsla(210, 55%, 98%, 1);
  background-clip: padding-box;
  border: 1px solid hsla(210, 15%, 80%, 1);
  border-radius: 0.25rem;
  color: #333;
  display: block;
  font-size: 1rem;
  font-weight: 400;
  height: calc(1.5em + (0.375rem * 2) + 2px);
  line-height: 1.5;
  padding: 0.375rem 0.75rem;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  width: 100%;
}

.form-control::-ms-expand {
  background-color: transparent;
  border: 0;
}

.form-control:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #495057;
}

.form-control:focus {
  color: #495057;
  background-color: var(--white);
  border-color: #80bdff;
  outline: 0;
  box-shadow: 0 0 0 0.2rem var(--focus-shadow);
}

.form-control::-webkit-input-placeholder {
  color: #666;
  opacity: 1;
}

.form-control:-ms-input-placeholder {
  color: #666;
  opacity: 1;
}

.form-control::-ms-input-placeholder {
  color: #666;
  opacity: 1;
}

.form-control::placeholder {
  color: #666;
  opacity: 1;
}

input[type="date"].form-control,
input[type="time"].form-control,
input[type="datetime-local"].form-control,
input[type="month"].form-control {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

select.form-control:focus::-ms-value {
  color: #333;
  background-color: var(--white);
}

.form-control-file,
.form-control-range {
  display: block;
  width: 100%;
}

textarea.form-control {
  height: auto;
}

.form-text {
  display: block;
  margin-top: 0.25rem;
}

.form-check {
  position: relative;
  display: block;
  padding-left: 1.25rem;
}

.form-check-input {
  position: absolute;
  margin-top: 0.3rem;
  margin-left: -1.25rem;
}

.form-check-label {
  margin-bottom: 0;
}

.form-check-inline {
  display: inline-flex;
  align-items: center;
  padding-left: 0;
  margin-right: 0.75rem;
}

.form-check-inline .form-check-input {
  position: static;
  margin-top: 0;
  margin-right: 0.375rem;
  margin-left: 0;
}

.form-inline {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
}

.form-inline .form-check {
  width: 100%;
}

@media (min-width: 576px) {
  .form-inline label {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0;
  }
  .form-inline .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .form-inline .form-check {
    display: flex;
    align-items: center;
    justify-content: center;
    width: auto;
    padding-left: 0;
  }
  .form-inline .form-check-input {
    position: relative;
    flex-shrink: 0;
    margin-top: 0;
    margin-right: 0.25rem;
    margin-left: 0;
  }
}



/* ## Pagination
======================================== */

.pagination {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  font-size: 0.875rem;
  margin: 4.5rem 0 3rem;
}

/* .pagination__item {

} */

.pagination__link {
  background-color: var(--whitesmoke);
  border: 1px solid var(--border);
  border-radius: 0.25rem;
  font-weight: 700;
  line-height: 1.8;
  margin-right: 0.5rem;
  margin-bottom: 0.5rem;
  padding: 0.5rem 0.75rem;
  text-align: center;
  text-decoration: none;
  transition: 0.15s;
}

.pagination__link:hover,
.pagination__current {
  background-color: var(--primary);
  border: 1px solid var(--primary);
  color: var(--white);
  text-decoration: none;
}



/* ## Accordion
======================================== */
/* https://liginc.co.jp/356926 */

.js-accordion__btn.is-open {
  background-color: aquamarine;
}

.accordion__body {
  background-color: #eee;
  padding: 1rem;
}

.accordion__body {
  /* 閉じている状態 */
  padding-top: 0;
  padding-bottom: 0;
  /* 閉じるアニメーション */
  transition:
    padding-top    0.3s,
    padding-bottom 0.3s;
}

.accordion__body.is-open {
  /* 開いている状態 */
  padding-top: 1rem;
  padding-bottom: 1rem;
  /* 開くアニメーション */
  transition:
    padding-top    0.3s,
    padding-bottom 0.3s;
}

.accordion__body p {
  background-color: #ddd;
  margin-bottom: 0;
  padding: 1rem;
}

.accordion__body p {
  /* 閉じている状態 */
  line-height: 0;
  opacity: 0;
  padding-top: 0;
  padding-bottom: 0;
  visibility: hidden;
  /* 閉じるアニメーション */
  transition:
    line-height 0.3s,
    opacity     0.1s,
    visibility  0.1s;
}

.accordion__body.is-open p {
  /* 開いている状態 */
  line-height: 1.5;
  opacity: 1;
  padding-top: 1rem;
  padding-bottom: 1rem;
  visibility: visible;
  /* 開くアニメーション */
  transition:
    line-height 0.3s,
    opacity     0.2s 0.1s,
    visibility  0.1s 0.1s;
}


/* ## Tab
======================================== */

.tab {
  border-bottom: 1px solid #ccc;
  display: flex;
  flex-wrap: wrap;
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}

.tab__item {
  margin-bottom: -1px;
}

.tab__link {
  border: 1px solid transparent;
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
  display: block;
  padding: 0.5rem 1rem;
  transition: 0.15s;
}

.tab__link.active {
  color: #666;
  cursor: default;
  background-color: var(--white);
  border-color: #999 #999 var(--white);
  font-weight: 700;
  text-decoration: none;
}

.tab__link:not(.active):hover,
.tab__link:not(.active):focus {
  border-color: #ccc;
  text-decoration: none;
}



/* ## Stacked nav
======================================== */

/* ### Left icon
---------------------------------------- */

/* .stacked-nav {
  margin-bottom: 1.5rem;
} */

/* .stacked-nav__item {

} */

.stacked-nav__link {
  background-color: var(--white);
  color: var(--body);
  display: block;
  padding: 1rem 1rem 0.9rem;
  transition: 0.15s;
  width: 100%;
}

.stacked-nav__link:hover,
.stacked-nav__link:focus {
  background-color: #eee;
  color: var(--body);
  text-decoration: none;
}

/* .stacked-nav__link::before {
  color: var(--primary);
  content: "\f0da";
  display: inline-block;
  font-family: FontAwesome;
  padding-right: 0.5em;
} */

.stacked-nav__link::before {
  border-color: transparent transparent transparent currentColor;
  border-width: 0.375rem 0 0.375rem 0.5rem;
  border-style: solid;
  color: var(--primary);
  content: "";
  display: inline-block;
  height: 0;
  padding-right: 0.5em;
  width: 0;
}

.stacked-nav__link + .stacked-nav__link {
  border-bottom: 1px dashed #ccc;
}

.stacked-nav__link--active,
.stacked-nav__link--active:hover,
.stacked-nav__link--active:focus {
  background-color: #ffe;
}

.stacked-nav__link--disabled {
  color: #555;
  cursor: default;
  pointer-events: none;
}

.stacked-nav__head {
  border-radius: 0.25rem;
  display: block;
  padding: 1rem 1rem 0.9rem;
  width: 100%;
}

.stacked-nav__head,
.stacked-nav__head:hover,
.stacked-nav__head:focus,
a.stacked-nav__head,
a.stacked-nav__head:hover,
a.stacked-nav__head:focus {
  color: var(--white);
  background-color: var(--primary);
}


/* ### Right icon
---------------------------------------- */

/* .stacked-nav-right-icon {
  margin-bottom: 1.5rem;
} */

/* .stacked-nav-right-icon__item {

} */

.stacked-nav-right-icon__link {
  background-color: var(--white);
  color: var(--body);
  display: block;
  padding: 1rem 1.8rem 0.9rem 1rem;
  position: relative;
  transition: 0.15s;
  width: 100%;
}

.stacked-nav-right-icon__link:hover,
.stacked-nav-right-icon__link:focus {
  background-color: #eee;
  color: var(--body);
  text-decoration: none;
}

/* .stacked-nav-right-icon__link::after {
  color: var(--primary);
  content: "\f061";
  content: "\f054";
  font-family: FontAwesome;
  font-size: 0.75rem;
  position: absolute;
    right: 0.75rem;
    top: 50%;
  transform: translateY(-50%);
} */

.stacked-nav-right-icon__link::after {
  border-color: transparent transparent transparent currentColor;
  border-width: 0.375rem 0 0.375rem 0.5rem;
  border-style: solid;
  color: var(--primary);
  content: "";
  height: 0;
  position: absolute;
    right: 0.75rem;
    top: 50%;
  transform: translateY(-50%);
  width: 0;
}

.stacked-nav-right-icon__link + .stacked-nav-right-icon__link {
  border-bottom: 1px dashed #ccc;
}

.stacked-nav-right-icon__link--active,
.stacked-nav-right-icon__link--active:hover,
.stacked-nav-right-icon__link--active:focus {
  background-color: #ffe;
}

.stacked-nav-right-icon__link--disabled {
  color: #555;
  cursor: default;
  pointer-events: none;
}

.stacked-nav-right-icon__head {
  border-radius: 0.25rem;
  display: block;
  padding: 1rem 1rem 0.9rem;
  width: 100%;
}

.stacked-nav-right-icon__head,
.stacked-nav-right-icon__head:hover,
.stacked-nav-right-icon__head:focus,
a.stacked-nav-right-icon__head,
a.stacked-nav-right-icon__head:hover,
a.stacked-nav-right-icon__head:focus {
  color: var(--white);
  background-color: var(--primary);
}



/* ## Stacked bnr
======================================== */

/* .stacked-bnr {
  margin-bottom: 1.5rem;
} */

/* .stacked-bnr__item {

} */

.stacked-bnr__link {
  display: block;
  margin-bottom: 1rem;
  text-align: center;
}

.stacked-bnr__link .img-fluid {/*バナーの最大幅設定*/
  max-width: 360px;
  width: 100%;
}



/* ## Site footer
======================================== */

.site-footer {
  background-color: #f5f5f5;
  border-top: 4px solid var(--primary);
  padding: 1rem 0;
  width: 100%;
}


/* ### Layout
---------------------------------------- */

/* .site-footer__row {} */

/* .site-footer__primary,
.site-footer__secondary {
  flex: 0 1 auto;
} */


/* ### Footer nav
---------------------------------------- */

.footer-nav {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  /* justify-content: flex-end;
  justify-content: center;
  justify-content: space-between;
  justify-content: space-around; */
  /* margin-bottom: 0.75rem; */
}

/* .footer-nav__item {

} */

.footer-nav__link {
  border-radius: 0.25rem;
  display: block;
  padding: 0.2rem 0.5rem;
  transition: 0.15s;
}

.footer-nav__link:hover,
.footer-nav__link:focus {
  background-color: var(--white);
  text-decoration: none;
}

.footer-nav__link + .footer-nav__link {
  border-left: 1px solid #ccc;
}


/* ### Site info
---------------------------------------- */

.site-info__logo {
  display: block;
  margin-bottom: 0.75rem;
  max-width: 130px;
}

@media (min-width: 768px) {
  .site-info__logo {
    margin-bottom: 0;
  }
}

.site-info__address {
  margin-bottom: 0;
}


/* ### Copyright
---------------------------------------- */

.copyright__fluid {
  background-color: #e7e7e7;
  padding: 0.75rem;
  width: 100%;
}

.copyright {
  text-align: center;
}



/* ## Go top
======================================== */
.gotop {
  position: fixed;
  z-index: 10;
  right: 1rem;
  bottom: 1rem;
}
@media (min-width: 576px) {
  .gotop {
    right: 1.5rem;
    bottom: 1.5rem;
  }
}

.gotop__link {
  background-color: rgba(255, 255, 255, 0.5);
  border: 2px solid var(--primary);
  border-radius: 50%;
  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.35);
  color: var(--primary);
  display: inline-block;
  font-size: 1rem;
  height: 3rem;
  padding-top: 0.5625rem;
  text-align: center;
  text-decoration: none;
  transition: 0.15s;
  width: 3rem;
}

/*「先頭に戻る」などテキストを入れる場合*/
/*
.gotop__link {
  background-color: var(--primary);
  border-radius: 50%;
  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.35);
  color: var(--white);
  display: inline-block;
  font-size: 14px;
  height: 100px;
  padding-top: 40px;
  text-align: center;
  text-decoration: none;
  transition: 0.15s;
  width: 100px;

  transform: scale(0.85);
  transform-origin: right bottom;
}
*/

.gotop__link:hover,
.gotop__link:focus {
  border: 2px solid var(--primary-b);
  color: var(--primary-b);
  padding-top: 0.375rem;
}





/* ============================================================
  # Utilities(Helper)
============================================================ */

/* ## Clearfix
======================================== */

.clearfix::after {
  clear: both;
  content: "";
  display: block;
}


/* ## Colors
======================================== */

.text-body {
  color: var(--body) !important;
}
.text-white {
  color: var(--white) !important;
}
.text-primary {
  color: var(--primary) !important;
}
.text-primary-dk {
  color: var(--primary-dk) !important;
}
.text-primary-b {
  color: var(--primary-b) !important;
}
.text-primary-lt {
  color: var(--primary-lt) !important;
}
.text-secondary {
  color: var(--secondary) !important;
}
.text-accent {
  color: var(--accent) !important;
}
.text-muted {
  color: #777 !important;
}
.text-caution {
  color: #c00 !important;
}
.text-note {
  color: #555 !important;
}


.text-red {
  color: #dc3545 !important;
  color: hsla(0, 70%, 50%, 1) !important;
}
.text-orange {
  color: #fd7e14 !important;
  color: hsla(30, 90%, 50%, 1) !important;
}
.text-yellow {
  color: #ffc107 !important;
  color: hsla(45, 90%, 50%, 1) !important;
}
.text-green {
  color: #28a745 !important;
  color: hsla(110, 70%, 40%, 1) !important;
}
.text-blue {
  color: #007bff !important;
  color: hsla(210, 80%, 40%, 1) !important;
}
.text-purple {
  color: #6f42c1 !important;
  color: hsla(260, 50%, 40%, 1) !important;
}
.text-pink {
  color: #e83e8c !important;
  color: hsla(330, 70%, 50%, 1) !important;
}


.bg-primary {
  background-color: var(--primary) !important;
  color: var(--white);
}

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

.bg-accent {
  background-color: var(--accent) !important;
  color: var(--white);
}



/* ## Borders
======================================== */

.rounded {
  border-radius: 0.25rem !important;
}
.rounded-circle {
  border-radius: 50% !important;
}
.rounded-pill {
  border-radius: 50rem !important;
}
.rounded-0 {
  border-radius: 0 !important;
}



/* ## Display property
======================================== */

.d-inline {
  display: inline !important;
}
.d-inline-block {
  display: inline-block !important;
}
.d-block {
  display: block !important;
}
.d-grid {
  display: grid !important;
}
.d-table {
  display: table !important;
}
.d-table-row {
  display: table-row !important;
}
.d-table-cell {
  display: table-cell !important;
}
.d-flex {
  display: flex !important;
}
.d-inline-flex {
  display: inline-flex !important;
}
.d-none {
  display: none !important;
}



/* ## Flex
======================================== */

.flex-row {
  flex-direction: row !important;
}
.flex-column {
  flex-direction: column !important;
}
.flex-row-reverse {
  flex-direction: row-reverse !important;
}
.flex-wrap {
  flex-wrap: wrap !important;
}
.flex-nowrap {
  flex-wrap: nowrap !important;
}
.flex-fill {
  flex: 1 1 auto !important;
}


/* ### Justify content
---------------------------------------- */
.justify-content-start {
  justify-content: flex-start !important;
}
.justify-content-end {
  justify-content: flex-end !important;
}
.justify-content-center {
  justify-content: center !important;
}
.justify-content-between {
  justify-content: space-between !important;
}
.justify-content-around {
  justify-content: space-around !important;
}


/* ### Align items
---------------------------------------- */

.align-items-start {
  align-items: flex-start !important;
}
.align-items-end {
  align-items: flex-end !important;
}
.align-items-center {
  align-items: center !important;
}
.align-items-baseline {
  align-items: baseline !important;
}
.align-items-stretch {
  align-items: stretch !important;
}


/* ### 上下左右中央揃え（親要素に設定）
---------------------------------------- */

.flex-center {
  align-items: center;
  display: flex;
  justify-content: center;
}


/* ### Flex combination
---------------------------------------- */

.d-flex-wrap-center {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}



/* ## Ratio
======================================== */

.ratio {
  position: relative;
  width: 100%;
}
.ratio::before {
  content: "";
  display: block;
  padding-top: var(--bs-aspect-ratio);
}
/* .ratio > * { */
.ratio > iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.ratio-1x1 {
  --bs-aspect-ratio: 100%;
}
.ratio-4x3 {
  --bs-aspect-ratio: calc(3 / 4 * 100%);
}
.ratio-16x9 {
  --bs-aspect-ratio: calc(9 / 16 * 100%);
}
.ratio-21x9 {
  --bs-aspect-ratio: calc(9 / 21 * 100%);
}



/* ## Position
======================================== */

.position-static {
  position: static !important;
}
.position-relative {
  position: relative !important;
}
.position-absolute {
  position: absolute !important;
}
.position-fixed {
  position: fixed !important;
}
.position-sticky {
  position: -webkit-sticky !important;
  position: sticky !important;
}
.fixed-top {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1030;
}
.fixed-bottom {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1030;
}
.sticky-top {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 1020;
}



/* ## Screenreaders
======================================== */

.sr-only {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}



/* ## Sizing
======================================== */

.w-25 {
  width: 25% !important;
}
.w-50 {
  width: 50% !important;
}
.w-75 {
  width: 75% !important;
}
.w-100 {
  width: 100% !important;
}
.w-auto {
  width: auto !important;
}
.mw-100 {
  max-width: 100% !important;
}
.vw-100 {
  width: 100vw !important;
}
.min-vw-100 {
  min-width: 100vw !important;
}
.h-25 {
  height: 25% !important;
}
.h-50 {
  height: 50% !important;
}
.h-75 {
  height: 75% !important;
}
.h-100 {
  height: 100% !important;
}
.h-auto {
  height: auto !important;
}
.mh-100 {
  max-height: 100% !important;
}
.vh-100 {
  height: 100vh !important;
}
.min-vh-100 {
  min-height: 100vh !important;
}

/* 要検討 */
.mw-40r {
  max-width: 40rem !important;
}
.mw-45r {
  max-width: 45rem !important;
}
.mw-50r {
  max-width: 50rem !important;
}
.mw-55r {
  max-width: 55rem !important;
}
.mw-60r {
  max-width: 60rem !important;
}


/* ## Spacing
======================================== */

.m-0 {
  margin: 0 !important;
}
.mt-0, .my-0 {
  margin-top: 0 !important;
}
.mr-0, .mx-0 {
  margin-right: 0 !important;
}
.mb-0, .my-0 {
  margin-bottom: 0 !important;
}
.ml-0, .mx-0 {
  margin-left: 0 !important;
}
.m-1 {
  margin: 0.25rem !important;
}
.mt-1, .my-1 {
  margin-top: 0.25rem !important;
}
.mr-1, .mx-1 {
  margin-right: 0.25rem !important;
}
.mb-1, .my-1 {
  margin-bottom: 0.25rem !important;
}
.ml-1, .mx-1 {
  margin-left: 0.25rem !important;
}
.m-2 {
  margin: 0.5rem !important;
}
.mt-2, .my-2 {
  margin-top: 0.5rem !important;
}
.mr-2, .mx-2 {
  margin-right: 0.5rem !important;
}
.mb-2, .my-2 {
  margin-bottom: 0.5rem !important;
}
.ml-2, .mx-2 {
  margin-left: 0.5rem !important;
}
.m-3 {
  margin: calc(0.75rem + 0.333vw) !important;
}
.mt-3, .my-3 {
  margin-top: calc(0.75rem + 0.333vw) !important;
}
.mr-3, .mx-3 {
  margin-right: calc(0.75rem + 0.333vw) !important;
}
.mb-3, .my-3 {
  margin-bottom: calc(0.75rem + 0.333vw) !important;
}
.ml-3, .mx-3 {
  margin-left: calc(0.75rem + 0.333vw) !important;
}
@media (min-width: 1200px) {
  .m-3 {
    margin: 1rem !important;
  }
  .mt-3, .my-3 {
    margin-top: 1rem !important;
  }
  .mr-3, .mx-3 {
    margin-right: 1rem !important;
  }
  .mb-3, .my-3 {
    margin-bottom: 1rem !important;
  }
  .ml-3, .mx-3 {
    margin-left: 1rem !important;
  }
}
.m-4 {
  margin: calc(1.25rem + 0.333vw) !important;
}
.mt-4, .my-4 {
  margin-top: calc(1.25rem + 0.333vw) !important;
}
.mr-4, .mx-4 {
  margin-right: calc(1.25rem + 0.333vw) !important;
}
.mb-4, .my-4 {
  margin-bottom: calc(1.25rem + 0.333vw) !important;
}
.ml-4, .mx-4 {
  margin-left: calc(1.25rem + 0.333vw) !important;
}
@media (min-width: 1200px) {
  .m-4 {
    margin: 1.5rem !important;
  }
  .mt-4, .my-4 {
    margin-top: 1.5rem !important;
  }
  .mr-4, .mx-4 {
    margin-right: 1.5rem !important;
  }
  .mb-4, .my-4 {
    margin-bottom: 1.5rem !important;
  }
  .ml-4, .mx-4 {
    margin-left: 1.5rem !important;
  }
}
.m-5 {
  margin: calc(1.5rem + 2vw) !important;
}
.mt-5, .my-5 {
  margin-top: calc(1.5rem + 2vw) !important;
}
.mr-5, .mx-5 {
  margin-right: calc(1.5rem + 2vw) !important;
}
.mb-5, .my-5 {
  margin-bottom: calc(1.5rem + 2vw) !important;
}
.ml-5, .mx-5 {
  margin-left: calc(1.5rem + 2vw) !important;
}
@media (min-width: 1200px) {
  .m-5 {
    margin: 3rem !important;
  }
  .mt-5, .my-5 {
    margin-top: 3rem !important;
  }
  .mr-5, .mx-5 {
    margin-right: 3rem !important;
  }
  .mb-5, .my-5 {
    margin-bottom: 3rem !important;
  }
  .ml-5, .mx-5 {
    margin-left: 3rem !important;
  }
}
.mt-6, .my-6 {
  margin-top: calc(2.5rem + 2.667vw) !important;
}
.mb-6, .my-6 {
  margin-bottom: calc(2.5rem + 2.667vw) !important;
}
@media (min-width: 1200px) {
  .mt-6, .my-6 {
    margin-top: 4.5rem !important;
  }
  .mb-6, .my-6 {
    margin-bottom: 4.5rem !important;
  }
}
.mt-7, .my-7 {
  margin-top: calc(3rem + 4vw) !important;
}
.mb-7, .my-7 {
  margin-bottom: calc(3rem + 4vw) !important;
}
@media (min-width: 1200px) {
  .mt-7, .my-7 {
    margin-top: 6rem !important;
  }
  .mb-7, .my-7 {
    margin-bottom: 6rem !important;
  }
}
.p-0 {
  padding: 0 !important;
}
.pt-0, .py-0 {
  padding-top: 0 !important;
}
.pr-0, .px-0 {
  padding-right: 0 !important;
}
.pb-0, .py-0 {
  padding-bottom: 0 !important;
}
.pl-0, .px-0 {
  padding-left: 0 !important;
}
.p-1 {
  padding: 0.25rem !important;
}
.pt-1, .py-1 {
  padding-top: 0.25rem !important;
}
.pr-1, .px-1 {
  padding-right: 0.25rem !important;
}
.pb-1, .py-1 {
  padding-bottom: 0.25rem !important;
}
.pl-1, .px-1 {
  padding-left: 0.25rem !important;
}
.p-2 {
  padding: 0.5rem !important;
}
.pt-2, .py-2 {
  padding-top: 0.5rem !important;
}
.pr-2, .px-2 {
  padding-right: 0.5rem !important;
}
.pb-2, .py-2 {
  padding-bottom: 0.5rem !important;
}
.pl-2, .px-2 {
  padding-left: 0.5rem !important;
}
.p-3 {
  padding: calc(0.75rem + 0.333vw) !important;
}
.pt-3, .py-3 {
  padding-top: calc(0.75rem + 0.333vw) !important;
}
.pr-3, .px-3 {
  padding-right: calc(0.75rem + 0.333vw) !important;
}
.pb-3, .py-3 {
  padding-bottom: calc(0.75rem + 0.333vw) !important;
}
.pl-3, .px-3 {
  padding-left: calc(0.75rem + 0.333vw) !important;
}
@media (min-width: 1200px) {
  .p-3 {
    padding: 1rem !important;
  }
  .pt-3, .py-3 {
    padding-top: 1rem !important;
  }
  .pr-3, .px-3 {
    padding-right: 1rem !important;
  }
  .pb-3, .py-3 {
    padding-bottom: 1rem !important;
  }
  .pl-3, .px-3 {
    padding-left: 1rem !important;
  }
}
.p-4 {
  padding: calc(1rem + 0.667vw) !important;
}
.pt-4, .py-4 {
  padding-top: calc(1rem + 0.667vw) !important;
}
.pr-4, .px-4 {
  padding-right: calc(1rem + 0.667vw) !important;
}
.pb-4, .py-4 {
  padding-bottom: calc(1rem + 0.667vw) !important;
}
.pl-4, .px-4 {
  padding-left: calc(1rem + 0.667vw) !important;
}
@media (min-width: 1200px) {
  .p-4 {
    padding: 1.5rem !important;
  }
  .pt-4, .py-4 {
    padding-top: 1.5rem !important;
  }
  .pr-4, .px-4 {
    padding-right: 1.5rem !important;
  }
  .pb-4, .py-4 {
    padding-bottom: 1.5rem !important;
  }
  .pl-4, .px-4 {
    padding-left: 1.5rem !important;
  }
}
.p-5 {
  padding: calc(1rem + 2.667vw) !important;
}
.pt-5, .py-5 {
  padding-top: calc(1rem + 2.667vw) !important;
}
.pr-5, .px-5 {
  padding-right: calc(1rem + 2.667vw) !important;
}
.pb-5, .py-5 {
  padding-bottom: calc(1rem + 2.667vw) !important;
}
.pl-5, .px-5 {
  padding-left: calc(1rem + 2.667vw) !important;
}
@media (min-width: 1200px) {
  .p-5 {
    padding: 3rem !important;
  }
  .pt-5, .py-5 {
    padding-top: 3rem !important;
  }
  .pr-5, .px-5 {
    padding-right: 3rem !important;
  }
  .pb-5, .py-5 {
    padding-bottom: 3rem !important;
  }
  .pl-5, .px-5 {
    padding-left: 3rem !important;
  }
}
.m-auto {
  margin: auto !important;
}
.mt-auto, .my-auto {
  margin-top: auto !important;
}
.mr-auto, .mx-auto {
  margin-right: auto !important;
}
.mb-auto, .my-auto {
  margin-bottom: auto !important;
}
.ml-auto, .mx-auto {
  margin-left: auto !important;
}


/* ## Text
======================================== */

/* ### Text alignment
---------------------------------------- */

.text-left {
  text-align: left !important;
}
.text-right {
  text-align: right !important;
}
.text-center {
  text-align: center !important;
}


/* ### Text wrapping and overflow
---------------------------------------- */

.text-wrap {
  white-space: normal !important;
}

.text-nowrap {
  white-space: nowrap !important;
}

.text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}


/* ### Text transform
---------------------------------------- */

.text-lowercase {
  text-transform: lowercase !important;
}

.text-uppercase {
  text-transform: uppercase !important;
}

.text-capitalize {
  text-transform: capitalize !important;
}



/* ## Font weight and italics
======================================== */

.font-weight-normal {
  font-weight: 400 !important;
}
.font-weight-bold {
  font-weight: 700 !important;
}


/* ## Line height（bootstrap v5.0.1）
======================================== */

/* .lh-1 {
  line-height: 1 !important;
}
.lh-sm {
  line-height: 1.25 !important;
}
.lh-base {
  line-height: 1.5 !important;
}
.lh-lg {
  line-height: 2 !important;
} */


/* ## Line height
======================================== */

.line-height-lower {
  line-height: 1.4 !important;
}


/* ## Font size, family and decoration
======================================== */

.underline {
  text-decoration: underline !important;
}
.font-size-xxsmall {
  font-size: 0.625rem !important;
}
.font-size-xsmall {
  font-size: 0.75rem !important;
}
.font-size-small {
  font-size: 0.875rem !important;
}
.font-size-medium {
  font-size: calc(0.813rem + 0.333vw) !important;
}
@media (min-width: 1200px) {
  .font-size-medium {
    font-size: 1.063rem !important;
  }
}
.font-size-large {
  font-size: calc(1.1rem + 0.2vw) !important;
}
@media (min-width: 1200px) {
  .font-size-large {
    font-size: 1.25rem !important;
  }
}
.font-size-xlarge {
  font-size: calc(1.275rem + 0.3vw) !important;
}
@media (min-width: 1200px) {
  .font-size-xlarge {
    font-size: 1.5rem !important;
  }
}
.font-size-xxlarge {
  font-size: calc(1.325rem + 0.9vw) !important;
}
@media (min-width: 1200px) {
  .font-size-xxlarge {
    font-size: 2rem !important;
  }
}
.font-size-3xlarge {
  font-size: calc(1.375rem + 1.5vw) !important;
}
@media (min-width: 1200px) {
  .font-size-3xlarge {
    font-size: 2.5rem !important;
  }
}
.font-size-4xlarge {
  font-size: calc(1.425rem + 2.1vw) !important;
}
@media (min-width: 1200px) {
  .font-size-4xlarge {
    font-size: 3rem !important;
  }
}


.font-family-gothic {
  font-family: var(--font-family-gothic) !important;
}
.font-family-mincho {
  font-family: var(--font-family-mincho) !important;
}
.font-family-inconsolata {
  font-family: 'Inconsolata', monospace;
}

.ls-1 {
  letter-spacing: 0.05em !important;
}
.ls-2 {
  letter-spacing: 0.1em !important;
}
.ls-3 {
  letter-spacing: 0.2em !important;
}



/* ## Others
======================================== */

/* ### Hover flash
---------------------------------------- */

/* .hover-flash:hover {
  animation: hover-flash 0.3s ease 1;
}
@keyframes hover-flash {
  from {opacity: 1;}
  50% {opacity: 0.7;}
  to {opacity: 1;}
} */
.hover-flash:hover {
  animation: hover-flash 0.5s ease 1;
}
@keyframes hover-flash {
  from {opacity: 1;}
  30% {opacity: 0.7;}
  to {opacity: 1;}
}


/* ### Copy guard
---------------------------------------- */

.copy-guard {
  pointer-events: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  user-select: none;
}
/*js制御の場合*/
/* .js-copy-guard {} */


/* ### Only display
---------------------------------------- */

.display-desktop-only {
  display: none;
}

@media (min-width: 768px) {
  .display-mobile-only {
    display: none;
  }
  .display-desktop-only {
    display: block;
  }
}


/* ### Display fadein
---------------------------------------- */

.display-fadein {
  opacity: 0.25;
  /* transform: translate(0, 0.25rem); */
  transition: 1s;
}

.display-fadein.active {
  opacity: 1;
  /* transform: translate(0, 0); */
}


/* ### 縦書き
---------------------------------------- */

.vertical-writing {
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
}


/* ### With icon
---------------------------------------- */

.with-icon-caret::before {
  border-style: solid;
  color: var(--primary);
  content: "";
  display: inline-block;
  height: 0;
  /* margin-right: 0.5em; */
  width: 0;
  /* vertical-align: middle; */
}
.with-icon-caret::after {
  border-style: solid;
  color: var(--primary);
  content: "";
  display: inline-block;
  height: 0;
  /* margin-left: 0.5em; */
  width: 0;
  /* vertical-align: middle; */
}

.with-icon-caret--down::before {
  border-color: currentColor transparent transparent transparent;
  border-width: 0.5em 0.375em 0 0.375em;
  transform: translateY(-0.1em);
}
.with-icon-caret--left::before {
  border-color: transparent currentColor transparent transparent;
  border-width: 0.375em 0.5em 0.375em 0;
}
.with-icon-caret--right::before {
  border-color: transparent transparent transparent currentColor;
  border-width: 0.375em 0 0.375em 0.5em;
}
.with-icon-caret--up::before {
  border-color: transparent transparent currentColor transparent;
  border-width: 0 0.375em 0.5em 0.375em;
  transform: translateY(-0.1em);
}
.with-icon-caret--down::after {
  border-color: currentColor transparent transparent transparent;
  border-width: 0.5em 0.375em 0 0.375em;
  transform: translateY(-0.1em);
}
.with-icon-caret--left::after {
  border-color: transparent currentColor transparent transparent;
  border-width: 0.375em 0.5em 0.375em 0;
}
.with-icon-caret--right::after {
  border-color: transparent transparent transparent currentColor;
  border-width: 0.375em 0 0.375em 0.5em;
}
.with-icon-caret--up::after {
  border-color: transparent transparent currentColor transparent;
  border-width: 0 0.375em 0.5em 0.375em;
  transform: translateY(-0.1em);
}

.with-icon-angle::before {
  border-style: solid;
  color: var(--primary);
  content: "";
  display: inline-block;
  height: 0.5em;
  width: 0.5em;
  margin-right: 0.25em;
  /* vertical-align: middle; */
}
.with-icon-angle--right::before {
  border-color: currentColor currentColor transparent transparent;
  border-width: 0.125em 0.125em 0 0;
  transform: rotate(45deg);
}

.with-icon-chevron::before {
  border-style: solid;
  color: var(--primary);
  content: "";
  display: inline-block;
  height: 0.5em;
  width: 0.5em;
  margin-right: 0.25em;
  /* vertical-align: middle; */
}
.with-icon-chevron--right::before {
  border-color: currentColor currentColor transparent transparent;
  border-width: 0.25em 0.25em 0 0;
  transform: rotate(45deg);
}

.with-icon-circle::before {
  background-color: var(--primary);
  border-radius: 50%;
  content: "";
  display: inline-block;
  height: 0.5em;
  margin-right: 0.25em;
  transform: translateY(-0.1em);
  width: 0.5em;
}


/* ============================================================
  # Extend
============================================================ */



/* ## homeページ
======================================== */




/* ## お問い合わせページ
======================================== */

.contact-form-table th {
  width: 15em;
}
/*2列テーブルのレスポンシブ*/
@media not all and (min-width: 768px) {
  .contact-form-table th,
  .contact-form-table td {
    border: none;
    display: block;
    width: 100% !important;
  }
  /* .contact-form-table th {
    padding-bottom: 0.25rem;
  }
  .contact-form-table td {
    padding-top: 0.25rem;
  } */
}

.form-input__year {
  max-width: 6em;
}

.form-input__month,
.form-input__day {
  max-width: 4em;
}

.form-input__tel {
  max-width: 15em;
}

.form-input__zip {
  max-width: 10em;
}




/* ============================================================
  # For print
============================================================ */

@media print {
  .d-print-none {
    display: none !important;
  }
  .d-print-inline {
    display: inline !important;
  }
  .d-print-inline-block {
    display: inline-block !important;
  }
  .d-print-block {
    display: block !important;
  }
  .d-print-table {
    display: table !important;
  }
  .d-print-table-row {
    display: table-row !important;
  }
  .d-print-table-cell {
    display: table-cell !important;
  }
  .d-print-flex {
    display: flex !important;
  }
  .d-print-inline-flex {
    display: inline-flex !important;
  }
}
