@charset "UTF-8";

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;
}
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, 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;
}

/* @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ */

h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
}

strong, b {
  font-weight: bold;
}

em, i {
  font-style: italic;
}

img {
  border: 0;
  vertical-align: bottom;
  -ms-interpolation-mode: bicubic;
}

input, button, select, textarea {
  font-family: inherit;
  font-size: inherit;
}

input[type="submit"],
button {
  cursor: pointer;
}


/* @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ */

html {
  background-color: transparent;
  background-image: none;
}

body {
  position: relative;
  color: #000;
  font-family: "IBM Plex Sans JP", "Yu Gothic", YuGothic, "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN W3", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro W3", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", "MS PGothic",sans-serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 1;
  -webkit-text-size-adjust: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

a:hover,
a:active,
a:focus {
  text-decoration: none;
}

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

a img {
  transition: opacity 0.2s;
}

a:hover img {
  opacity: 0.7;
}

table th,
table td {
  padding: 0px;
  vertical-align: top;
}

table th {
  /* text-align: left; */
  font-weight: normal;
}

hr {
  height: 0;
  margin: 0;
  border: none;
  border-bottom: 1px dotted #333;
  padding: 0;
}

/* -------------------------------- */

.ir {
  overflow: hidden;
  text-indent: 110%;
  white-space: nowrap;
}

.irb {
  height: 0;
  overflow: hidden;
  line-height: 2;
}

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

.float-wrapper::after {
  content: "";
  clear: both;
  display: block;
}

.float_left {float: left;}
.float_right {float: right;}

.align_center {text-align: center;}
.align_left {text-align: left;}
.align_right {text-align: right;}

.bold {
  font-weight: bold;
}

a.disabled {
  pointer-events: none;
}

.font-weight-normal {
  font-weight: normal !important;
}

.nowrap {
  white-space: nowrap;
}

span.nowrap {
  display: inline-block;
}

.buttons a,
.buttons button {
  text-decoration: none !important;
}

.buttons a :hover,
.buttons button :hover {
  text-decoration: none !important;
}

.list-style_disc {
  padding-left: 2em;
}

.list-style_disc>li {
  list-style-type: disc;
}

.list-style_decimal {
  padding-left: 2em;
}

.list-style_decimal>li {
  list-style-type: decimal;
}

.list-style_double-circle {
  padding-left: 1.25em;
}

.list-style_double-circle>li {
  list-style-type: "◎\a0";
}

.list-style_none {
  padding-left: 0;
}

.list-style_none>li {
  list-style-type: none;
}

.note {
  /* font-size: 85%; */
}

span.note {
  display: inline-block;
}

.kome {
  padding-left: 1.25em;
  text-indent: -1.25em;
}

.kome::before {
  display: inline-block;
  content: "※";
  width: 1.25em;
  text-indent: 0;
}

.break_all {
  word-break: break-all;
}

.text-border_white_1px {
  text-shadow: -1px -1px 0px #fff,
               0px -1px 0px #fff,
               1px -1px 0px #fff,
               1px 0px 0px #fff,
               1px 1px 0px #fff,
               0px 1px 0px #fff,
               -1px 1px 0px #fff,
               -1px 0px 0px #fff;
}

.text-border_white_2px {
  text-shadow: -2px -2px 0px #fff,
               -1px -2px 0px #fff,
               0px -2px 0px #fff,
               1px -2px 0px #fff,
               2px -2px 0px #fff,
               2px -1px 0px #fff,
               2px 0px 0px #fff,
               2px 1px 0px #fff,
               2px 2px 0px #fff,
               1px 2px 0px #fff,
               0px 2px 0px #fff,
               -1px 2px 0px #fff,
               -2px 2px 0px #fff,
               -2px 1px 0px #fff,
               -2px 0px 0px #fff,
               -2px -1px 0px #fff;
}

.text-border_white_3px {
  text-shadow: -3px -3px 0px #fff,
               -2px -3px 0px #fff,
               -1px -3px 0px #fff,
               0px -3px 0px #fff,
               1px -3px 0px #fff,
               2px -3px 0px #fff,
               3px -3px 0px #fff,
               3px -2px 0px #fff,
               3px -1px 0px #fff,
               3px 0px 0px #fff,
               3px 1px 0px #fff,
               3px 2px 0px #fff,
               3px 3px 0px #fff,
               2px 3px 0px #fff,
               1px 3px 0px #fff,
               0px 3px 0px #fff,
               -1px 3px 0px #fff,
               -2px 3px 0px #fff,
               -3px 3px 0px #fff,
               -3px 2px 0px #fff,
               -3px 1px 0px #fff,
               -3px 0px 0px #fff,
               -3px -1px 0px #fff,
               -3px -2px 0px #fff;
}

.strong {
  color: #ff5400;
  font-weight: 600;
}

.large {
  font-size: calc((18 / 16) * 100%);
}




/*-------------------- animation --------------------*/
.animation {
  animation-play-state: paused !important;
}
.animation.active {
  animation-play-state: running !important;
}

.stretchx {
  animation: stretchX 0.4s linear both;
}

.fade {
  animation: fade 0.75s ease both;
}

.fadescale {
  animation: fadeScale 0.75s ease both;
}

.blurfadescale {
  animation: blurFadeScale 0.75s ease both;
}

.fadeleft {
  animation: fadeLeft 0.8s ease both;
}

.faderight {
  animation: fadeRight 0.8s ease both;
}

.slideup {
  animation: slideUp 0.75s ease both;
}

.slidedown {
  animation: slideDown 0.75s ease both;
}

.boyon {
  animation: boyon 1s ease both;
}

@keyframes stretchX {
  0% {
    transform: scaleX(0);
  }
  100% {
    transform: scaleX(1);
  }
}

@keyframes fade {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes fadeScale {
  0% {
    transform: scale(1.2);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes blurFadeScale {
  0% {
    filter: blur(0.5em);
    transform: scale(1.2);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    filter: blur(0);
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes fadeLeft {
  0% {
    transform: translateX(-20%);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes fadeRight {
  0% {
    transform: translateX(20%);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes slideUp {
  0% {
    transform: translateY(100%);
  }
  100% {
    transform: translateY(0);
  }
}

@keyframes slideDown {
  0% {
    transform: translateY(-100%);
  }
  100% {
    transform: translateY(0);
  }
}

@keyframes boyon {
  0% {
    transform: scale(0.7);
    opacity: 0;
  }
  33% {
    transform: scale(1.1);
  }
  50% {
    opacity: 1;
  }
  67% {
    transform: scale(0.9);
  }
  100% {
    transform: scale(1.0);
  }
}




/* @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ */

ol,ul {
  box-sizing: content-box; /* /wp-includes/css/dist/block-library/style.min.css 対策 */
}

#wrapper {
}

.br_pc {
  display: inline;
}

.br_sp {
  display: none;
}

.page-heading .en,
.section-heading .en,
.mincho {
  font-family: "Zen Old Mincho", serif;
}

.site-map {
  position: relative;
  white-space: nowrap;
}

.site-map a:hover {
  text-decoration: underline;
}

.site-map .upper {
  padding: 0 0 32px 20px;
}

.site-map .upper ul {
  display: flex;
  font-size: 16px;
  font-weight: 600;
}

.site-map .upper ul>li:not(:first-child) {
  margin-left: 50px;
}

.site-map .lower {
  display: flex;
  justify-content: space-between;
  border-top: 1px solid #fff;
  padding: 32px 20px 0;
}

.site-map .lower .tier_1>li:not(:first-child) {
  margin-top: 32px;
}

.site-map .lower .tier_1>li>p {
  font-size: 16px;
  font-weight: 600;
}

.site-map .lower .tier_2 {
  margin-top: 32px;
  font-size: 15px;
}

.site-map .lower .tier_2>li::before {
  display: inline-block;
  content: "−";
  margin-right: 1em;
}

.site-map .lower .tier_2>li:not(:first-child) {
  margin-top: 24px;
}

.site-map .sns {
  position: absolute;
  top: -6px;
  right: 20px;
  display: flex;
  align-items: center;
}

.site-map .sns>li:not(:first-child) {
  margin-left: 24px;
}

.site-map .sns img {
  width: auto;
  height: 28px;
}

.buttons a {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  height: 48px;
  border-radius: calc(48px / 2);
  padding-top: 4px;
  text-align: left;
  font-size: 18px;
  font-weight: 600;
}

.buttons.download a {
  height: auto;
  padding-top: 11px;
  padding-bottom: 7px;
  line-height: calc(24 / 18);
}

.buttons.download a::after {
  line-height: 1;
}

.buttons a.arrow_forward::after,
.buttons a.external::after {
  font-family: 'Material Symbols Outlined';
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
}

.buttons a.arrow_forward::after {
  position: absolute;
  top: 50%;
  right: 12px;
  display: block;
  content: "arrow_forward_ios";
  font-size: 20px;
  font-weight: normal;
  transform: translateY(-50%);
}

.buttons a.external {
  justify-content: space-between;
  padding-left: 24px;
  padding-right: 22px;
}

.buttons a.external::after {
  display: block;
  content: "open_in_new";
  margin-bottom: 4px;
  margin-left: 16px;
  font-size: 24px;
  font-weight: normal;
}

.buttons a.pdf {
  justify-content: space-between;
  padding-left: 24px;
  padding-right: 20px;
}

.buttons a.pdf::after {
  flex-shrink: 0;
  display: block;
  content: "";
  background: url(images/icon_pdf.svg) no-repeat center top / contain;
  width: 26px;
  height: 26px;
  margin-bottom: 4px;
  margin-left: 18px;
}

.inline-pdf {
  text-decoration: underline;
}

.inline-pdf.indent {
  display: inline-block;
  padding-left: 46px;
  text-indent: -46px;
}

.inline-pdf::before {
  display: inline-block;
  content: "PDF";
  background-color: #f00;
  box-sizing: border-box;
  width: 38px;
  margin-left: 4px;
  margin-right: 4px;
  border-radius: 4px;
  padding: 7px 6px 4px;
  color: #fff;
  text-align: center;
  text-indent: 0;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
}

.inline-pdf:hover {
  text-decoration: none;
}

.inline-xlsx {
  text-decoration: underline;
}

.inline-xlsx.indent {
  display: inline-block;
  padding-left: 54px;
  text-indent: -54px;
}

.inline-xlsx::before {
  display: inline-block;
  content: "XLSX";
  background-color: #106835;
  box-sizing: border-box;
  width: 46px;
  margin-left: 4px;
  margin-right: 4px;
  border-radius: 4px;
  padding: 7px 6px 4px;
  color: #fff;
  text-align: center;
  text-indent: 0;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
}

.inline-xlsx:hover {
  text-decoration: none;
}




/* ################################################################ */
/* header */

header {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #fff;
  min-height: 130px;
  padding-right: 110px;
  z-index: 9999;
}

header .corp-logo {
  flex-shrink: 0;
  width: 242px;
  margin-left: 53px;
  animation: blurFadeScale 0.75s ease both paused;
}

header.active .corp-logo {
  animation-play-state: running;
}

@media screen and (max-width: 1219px) {
  header .corp-logo {
    margin-left: 32px;
  }
}

#header-nav {
  display: flex;
  align-items: center;
  margin-left: 30px;
  animation: fadeRight 0.8s ease both paused;
  animation-delay: 0.5s;
}

header.active #header-nav {
  animation-play-state: running;
}

#header-nav .links {
  display: flex;
  flex-wrap: wrap;
  font-size: 16px;
  font-weight: 600;
}

@media screen and (max-width: 1199px) {
  #header-nav .links {
    width: 346px;
  }
}

#header-nav .links>li {
  margin: 8px 14px;
}

#header-nav .links a {
  display: block;
  padding: 7px 3px 0;
  white-space: nowrap;
}

#header-nav .links a::after {
  display: block;
  content: "";
  background-color: #ffd545;
  height: 2px;
  margin: 5px -3px 0;
  transform: scaleX(0);
  transition: transform 0.2s ease-out;
}

#header-nav .links a:hover::after,
#header-nav .links .current a::after {
  transform: scaleX(1);
}

#header-nav .contact-btn {
  margin-left: 22px;
}

#header-nav .contact-btn a {
  display: flex;
  justify-content: center;
  align-items: center;
  background-image: linear-gradient(135deg, #5245ff, #4287e5);
  width: 220px;
  height: 52px;
  border-radius: calc(52px / 2);
  color: #fff;
  font-size: 16px;
  transition: opacity 0.2s;
}

#header-nav .contact-btn a:hover {
  opacity: 0.7;
}

#menu {
  position: fixed;
  top: 38px;
  right: 32px;
  z-index: 9999;
}

#menu .menu-btn {
  background-color: #fff;
  width: 54px;
  box-shadow: 0px 0px 0px 1px rgba(255,255,255,1);
  border-radius: 4px;
  overflow: hidden;
}

#menu .menu-btn:hover {
  cursor: pointer;
}

#menu .menu-btn .inner {
  position: relative;
  display: block;
  background-image: linear-gradient(135deg, #31ae4b, #0074be);
  padding-top: 54px;
  transition: opacity 0.2s;
}

#menu .menu-btn:hover .inner {
  opacity: 0.7;
}

#menu .menu-btn .inner::before {
  font-family: 'Material Symbols Outlined';
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  content: "menu";
  color: #fff;
  font-size: 30px;
  transform: translate(-50%, -50%);
}

#menu.open .menu-btn .inner::before {
  content: "close";
  font-size: 34px;
}

#menu .menu-body,
#menu .menu-body::before {
  background-color: rgba(51,51,51,0.95);
}

#menu .menu-body {
  position: absolute;
  top: calc(100% + 25px);
  right: -20px;
  border-radius: 8px;
  padding: 40px 40px;
  color: #fff;
  text-shadow: 0 0 4px #000,
               0 0 4px #000;
  opacity: 0;
  visibility: hidden;
  transform: scale(0.5, 0.5);
  transform-origin: calc(100% - 20px - 27px) calc(0% - 25px);
  transition: opacity 0.15s, visibility 0.15s, transform 0.15s;
}

#menu.open .menu-body {
  box-sizing: border-box;
  width: calc(100vw - 24px - 17px);
  max-width: 920px;
  opacity: 1;
  visibility: visible;
  transform: scaleY(1);
}

#menu .menu-body::before {
  position: absolute;
  bottom: 100%;
  right: calc(20px + 27px);
  display: block;
  content: "";
  width: 24px;
  height: 20px;
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  transform: translateX(50%);
}




/* ################################################################ */
/* main */

#breadcrumbs {
  background-image: linear-gradient(90deg, #31ae4b, #0074be);
  padding: 14px 0 12px;
}

#breadcrumbs>ul {
  display: flex;
  flex-wrap: wrap;
  box-sizing: border-box;
  max-width: 1000px;
  padding: 0 20px 0 calc(20px - 1em);
  margin: 0 auto;
  color: #fff;
  font-size: 14px;
  line-height: calc(16 / 14);
}

#breadcrumbs>ul>li {
  margin-left: 1em;
}

#breadcrumbs>ul>li:not(:first-child)::before {
  display: inline-block;
  content: "\03e";
  margin-right: 1em;
}

#breadcrumbs a {
  text-decoration: none;
}

#breadcrumbs a:hover {
  text-decoration: underline;
}


#page-navi {
  background-image: linear-gradient(90deg, #31ae4b, #0074be);
  padding: 48px 0;
}

#page-navi>ul {
  display: flex;
  justify-content: center;
  box-sizing: border-box;
  max-width: 1040px;
  margin: 0 auto;
  padding: 0 8px;
}

#page-navi>ul>li {
  width: 240px;
  margin: 0 calc((8 / 1024) * 100%);
  animation: fade 0.75s ease both paused;
}

#page-navi>ul>li:nth-child(1) {animation-delay: 0s;}
#page-navi>ul>li:nth-child(2) {animation-delay: 0.1s;}
#page-navi>ul>li:nth-child(3) {animation-delay: 0.2s;}
#page-navi>ul>li:nth-child(4) {animation-delay: 0.3s;}
#page-navi>ul>li:nth-child(5) {animation-delay: 0.4s;}
#page-navi>ul>li:nth-child(6) {animation-delay: 0.5s;}
#page-navi>ul>li:nth-child(7) {animation-delay: 0.6s;}
#page-navi>ul>li:nth-child(8) {animation-delay: 0.7s;}
#page-navi>ul>li:nth-child(9) {animation-delay: 0.8s;}
#page-navi>ul>li:nth-child(10) {animation-delay: 0.9s;}

#page-navi>ul.active>li {
  animation-play-state: running;
}

#page-navi a {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #fff;
  box-sizing: border-box;
  box-shadow: 0px 0px 4px 0px rgba(0,0,0,0.3);
  height: 90px;
  border-bottom: 16px solid #ffd545;
  border-radius: 8px;
  padding: 6px 10px 0;
  color: #444;
  text-align: center;
  font-size: 18px;
  font-weight: 600;
  line-height: calc(30 / 18);
  transition: border-bottom-color 0.2s, color 0.2s;
}

#page-navi a::after {
  position: absolute;
  top: calc(100% + 3px);
  left: 50%;
  display: block;
  content: "";
  background-color: #fff;
  width: 12px;
  height: 10px;
  clip-path: polygon(0% 0%, 100% 0%, 50% 100%);
  transform: translateX(-50%);
  transition: background-color 0.2s;
}

#page-navi a:hover {
  border-bottom-color: rgba(255,213,69,0.6);
  color: rgba(0,0,0,0.6);
}

#page-navi a:hover::after {
  /* background-color: rgba(255,255,255,0.6); */
}


.page-heading,
#index .section-heading,
#contact-us .section-heading,
#customer-harassment {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.page-heading {
  justify-content: center;
  background: no-repeat center center / cover;
  height: 160px;
  padding: 0 24px;
}

.page-heading.thin {
  background-color: #eae9d9;
  box-sizing: border-box;
  height: 120px;
  padding-top: 4px;
}

.page-heading .en,
#index .section-heading .en,
#contact-us .section-heading .en {
  font-size: 42px;
}

.page-heading .ja,
#index .section-heading .ja,
#contact-us .section-heading .ja {
  margin-top: 16px;
  font-size: 18px;
  font-weight: 600;
}

.page-heading .ja_large,
#index .section-heading .ja_large,
#contact-us .section-heading .ja_large {
  font-size: 28px;
  font-weight: 600;
  line-height: 1.5;
}

.page-heading .ja {
  animation-delay: 0.6s;
}

.page-contents {
  padding: 64px 0;
}


.post .categories>li {
  background-color: #fff;
  border: 1px solid #000;
}

.post .categories>li.release {
  /* border-color: #31ae4b; */
  /* color: #31ae4b; */
}
.post .categories>li.event {
  /* border-color: #ff7e38; */
  /* color: #ff7e38; */
}
.post .categories>li.survey {
  /* border-color: #0074be; */
  /* color: #0074be; */
}


.posts.tiling-list {
  display: flex;
  max-width: calc((320px + 20px) * 3);
  margin: -20px auto 0;
}

#archive .archive-title+.posts.tiling-list {
  margin-top: calc(40px - 20px);
}

.posts.tiling-list .post {
  display: flex;
  width: 320px;
  margin: 20px 10px 0;
  animation: fade 0.75s ease both paused;
}

.posts.tiling-list .post:nth-child(1) {animation-delay: 0s;}
.posts.tiling-list .post:nth-child(2) {animation-delay: 0.2s;}
.posts.tiling-list .post:nth-child(3) {animation-delay: 0.4s;}
.posts.tiling-list .post:nth-child(4) {animation-delay: 0.6s;}
.posts.tiling-list .post:nth-child(5) {animation-delay: 0.8s;}
.posts.tiling-list .post:nth-child(6) {animation-delay: 1.0s;}

.posts.tiling-list.active .post {
  animation-play-state: running;
}

.posts.tiling-list .post>a {
  display: block;
  position: relative;
  background-color: #fff;
  box-shadow: 0 0 8px 0 rgba(0,0,0,0.3);
  width: 100%;
  padding: 10px 10px 15px;
  border-radius: 8px;
  transition: box-shadow 0.2s;
}

.posts.tiling-list .post>a:hover {
  box-shadow: 0 0 2px 0 rgba(0,0,0,0.3);
}

.posts.tiling-list .image {
  height: 180px;
}

.posts.tiling-list .image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.posts.tiling-list .meta,
.posts.tiling-list .title {
  padding-left: 6px;
  padding-right: 6px;
  transition: opacity 0.2s;
}

.posts.tiling-list .post>a:hover .meta,
.posts.tiling-list .post>a:hover .title {
  opacity: 0.7;
}

.posts.tiling-list .meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  margin: 2px 0 0 -12px;
  white-space: nowrap;
}

.posts.tiling-list .new .meta::before {
  position: absolute;
  top: 17px;
  left: 17px;
  display: block;
  content: "NEW";
  background-color: #f00;
  box-shadow: 0 0 2px 0 rgba(0,0,0,0.5);
  border-radius: 4px;
  padding: 8px 12px 6px;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  z-index: 1;
}

.posts.tiling-list .categories>li,
.posts.tiling-list .date {
  margin-top: 8px;
}

.posts.tiling-list .categories {
  display: flex;
  flex-wrap: wrap;
  padding-left: 4px;
}

.posts.tiling-list .categories>li {
  margin-left: 8px;
  border-radius: calc(28px / 2);
  padding: 7px 16px 5px;
  font-size: 14px;
}

.posts.tiling-list .date {
  margin-left: 12px;
  color: #999;
  font-size: 15px;
}

.posts.tiling-list .title {
  margin-top: 14px;
  font-size: 16px;
  /* font-weight: 600; */
  line-height: 1.5;
}


.pagination {
  box-sizing: border-box;
  max-width: 960px;
  margin: 32px auto 0;
  padding: 0 20px;
  text-align: center;
}

.pagination>.inner {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
}

.pagination .page-numbers {
  margin: 8px 4px 0;
  color: #0074be;
  font-size: 16px;
}

.pagination .page-numbers:not(.dots) {
  background-color: #fff;
  box-sizing: border-box;
  min-width: 32px;
  border: 2px solid #0074be;
  border-radius: 4px;
  padding: 7px 4px 5px;
  text-align: center;
}

.pagination .page-numbers.dots {
  padding-top: 2px;
}

.pagination a.page-numbers {
  text-decoration: none;
  font-weight: normal;
  transition: background-color 0.2s, color 0.2s;
}

.pagination a.page-numbers:hover,
.pagination .page-numbers.current {
  background-color: #0074be;
  color: #fff;
  text-decoration: none;
}


#single .post {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}

#single .post .title,
#page .post .section-heading {
  display: inline-block;
  text-align: left;
}

#archive .archive-title {
  text-align: center;
}

#archive .archive-title span,
#single .post .title span,
#page .post .section-heading span {
  background: linear-gradient(90deg, #31ae4b, #0074be) no-repeat bottom left / 100% 4px;
  color: #0074be;
  font-size: 26px;
  font-weight: 600;
  line-height: calc(46 / 26);
}

#single .post .meta,
#single .post .content {
  text-align: left;
}

#single .post .meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  margin: 16px 0 0 -12px;
  padding-left: 6px;
  padding-right: 6px;
  white-space: nowrap;
}

#single .post .categories>li,
#single .post .date {
  margin-top: 8px;
}

#single .post .categories {
  display: flex;
  flex-wrap: wrap;
  padding-left: 4px;
}

#single .post .categories>li {
  margin-left: 8px;
  border-radius: calc(28px / 2);
  padding: 7px 16px 5px;
  font-size: 14px;
}

#single .post .date {
  margin-left: 12px;
  color: #999;
  font-size: 15px;
}

#single .post .eyecatch {
  margin-top: 24px;
  text-align: center;
}

#single .post .content,
#page .post .section-contents.common {
  font-size: 16px;
  line-height: 1.8;
}

#single .post .content {
  margin-top: 24px;
}

#single .post .content::after {
  content: "";
  clear: both;
  display: block;
}

#single .post .content h2,
#page .post .section-contents.common h3 {
  margin: 40px 0 0;
  color: #1c843e;
  font-size: 22px;
  font-weight: bold;
  line-height: calc(36 / 22);
}

#single .post .content h3,
#page .post .section-contents.common h4 {
  margin: 32px 0 0;
  padding-left: 1.16666667em;
  text-indent: -1.16666667em;
  color: #0074be;
  font-size: 18px;
  font-weight: bold;
  line-height: calc(30 / 18);
}

#single .post .content h3::before,
#page .post .section-contents.common h4::before {
  display: inline-block;
  content: "\25c9";
  width: 1.16666667em;
  text-indent: 0;
}

#single .post .content h4,
#page .post .section-contents.common h5 {
  margin: 24px 0 0;
  font-size: 16px;
  font-weight: bold;
}

#single .post .content h2+h3,
#single .post .content h2+h4,
#single .post .content h3+h4,
#page .post .section-contents.common h3+h4,
#page .post .section-contents.common h3+h5,
#page .post .section-contents.common h4+h5 {
  margin-top: 16px;
}

#single .post .content ul,
#single .post .content ol,
#single .post .content form,
#single .post .content table,
#single .post .content p,
#page .post .section-contents.common ul.list-style_disc,
#page .post .section-contents.common ol.list-style_decimal,
#page .post .section-contents.common ul.list-style_double-circle,
#page .post .section-contents.common ul.list-style_none,
#page .post .section-contents.common form,
#page .post .section-contents.common table,
#page .post .section-contents.common p {
  margin-top: 16px;
}

#single .post .content ul,
#single .post .content ol {
  padding-left: 2em;
}

#single .post .content ul {
  list-style: disc;
}

#single .post .content ol {
  list-style: decimal;
}

#single .post .content>*:first-child,
#page .post .section-contents.common>*:first-child {
  margin-top: 0;
}

#single .post .content table th,
#single .post .content table td,
#page .post .section-contents.common table th,
#page .post .section-contents.common table td {
  border: 1px solid #999;
  padding: 0.5em 1.2em;
}

#single .post .content table th,
#page .post .section-contents.common table th {
  background-color: #e8f4ff;
}

#single .post .content table td,
#page .post .section-contents.common table td {
  background-color: #fff;
}

#single .post .content a,
#page .post .section-contents.common a {
  color: #0074be;
  text-decoration: underline;
}

#single .post .content a:hover,
#page .post .section-contents.common a:hover {
  text-decoration: none;
}

#single .post .content .buttons a,
#page .post .section-contents.common .buttons a {
  color: #fff;
  text-decoration: none;
}

#single .post .content hr,
#page .post .section-contents.common hr {
  background-image: linear-gradient(90deg, #31ae4b, #0074be);
  padding-bottom: 4px;
  margin-top: 32px;
  margin-bottom: 32px;
}

#single .post .content .alignleft,
#page .post .alignleft,
#single .post .content .alignright,
#page .post .alignright {
  margin-top: 16px;
  margin-bottom: 16px;
}

#single .post .content .alignleft,
#page .post .alignleft {
  margin-right: 24px;
}

#single .post .content .alignright,
#page .post .alignright {
  margin-left: 24px;
}

#page .post .page-contents {
  padding-top: 0;
  padding-bottom: 0;
}

#page .post .page-contents>section {
  padding-top: 64px;
  padding-bottom: 64px;
  text-align: center;
}

#page .post .page-contents>section.blue {
  background-color: #edf6fc;
}

#page .post .page-contents>section.blue .section-contents.common h3 {
  color: #0074be;
}

#page .post .page-contents>section.yellow {
  background-color: #fefff4;
}

#page .post .section-heading {
  padding: 0 15px;
}

#page .post .section-contents {
  text-align: left;
}

#page .post .section-heading+.section-contents {
  margin-top: 48px;
}

#page .post .section-contents+.section-contents {
  margin-top: 40px;
}

#page .post .plain {
  width: calc(100vw - 30px);
  max-width: 930px;
  margin-left: auto;
  margin-right: auto;
}

#page .post .type1 {
  display: flex;
  align-items: flex-start;
}

#page .post .type1 .text {
  flex-grow: 1;
  padding: 0 40px 0 60px;
}

#page .post .type1 .image {
  flex-shrink: 0;
  width: 50%;
  max-width: 700px;
}

#page .post .type1 .text>*:first-child,
#page .post .type1 .image>*:first-child {
  margin-top: 0 !important;
}

#page .post .type1 .image img {
  clip-path: polygon(64px 0%, 100% 0%, 100% 100%, 0% 100%, 0% 64px);
}

#page .post .type1.image_left .text {
  order: 1;
  padding: 0 60px 0 40px;
}

#page .post .type1.image_left .image {
  order: 0;
}

#page .post .type1.image_left .image img {
  clip-path: polygon(0% 0%, calc(100% - 64px) 0%, 100% 64px, 100% 100%, 0% 100%);
}


.slide-container {
  display: flex;
  align-items: center;
  overflow: hidden;
}

.slide-wrapper {
  display: flex;
  animation: slide-flow 0s infinite linear 1s both paused;
}

.slide-container.run .slide-wrapper {
  animation-play-state: running;
}

.slide {
  overflow: hidden;
}

.slide img {
  width: 100%;
  object-fit: cover;
}

@keyframes slide-flow {
  0% {transform: translateX(0);}
  100% {transform: translateX(-100%);}
}


.list_type1 {
  box-sizing: border-box;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 15px;
  font-size: 16px;
  line-height: 1.8;
}

.list_type1>div {
  display: flex;
  border-bottom: 1px solid #ccc;
}

.list_type1>div:first-child {
  border-top: 1px solid #ccc;
}

.list_type1>div>dt,
.list_type1>div>dd {
  padding-top: 10px;
  padding-bottom: 8px;
}

.list_type1>div>dt {
  flex-shrink: 0;
  width: 10em;
  padding-left: 12px;
  padding-right: 20px;
}

.list_type1>div>dd {
  flex-grow: 1;
  position: relative;
  padding-left: 35px;
  padding-right: 12px;
}

.list_type1>div>dd::before {
  position: absolute;
  top: 12px;
  left: 0;
  display: block;
  content: "";
  background-color: #31ae4b;
  width: 3px;
  height: 23px;
}

.list_type1>div>dd.with-button {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}


.list_type1.alt>div>dt {
  color: #1c843e;
  font-weight: 600;
}


.list_type2 {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  box-sizing: border-box;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 15px;
  font-size: 16px;
  line-height: 1.8;
}

.list_type2>li:not(:last-child)::after {
  content: "\a0／\a0";
}


.list_type3 {
  width: calc(100vw - 30px);
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}

.list_type3>div {
  padding: 16px 6px 12px;
}

.list_type3>div:not(:first-child) {
  border-top: 1px solid #ccc;
}

.list_type3>div>dt {
  padding-left: 1.16666667em;
  text-indent: -1.16666667em;
  color: #1c843e;
  font-size: 18px;
  font-weight: bold;
  line-height: calc(30 / 18);
}

.list_type3>div>dt::before {
  display: inline-block;
  content: "\25c9";
  width: 1.16666667em;
  text-indent: 0;
}

.list_type3>div>dd {
  margin-top: 2px;
  font-size: 16px;
  line-height: 1.8;
}


.tiling-list_type1 {
  display: flex;
  flex-wrap: wrap;
  max-width: calc((320px + 20px) * 3);
  margin: -20px auto 0;
}

.tiling-list_type1>li {
  display: flex;
  flex-direction: column;
  background-color: #fff;
  box-sizing: border-box;
  box-shadow: 0 0 8px 0 rgba(0,0,0,0.3);
  max-width: 320px;
  margin: 20px 10px 0;
  border-radius: 8px;
  padding: 10px 10px 24px;
}

.tiling-list_type1>li {
  display: flex;
  flex-direction: column;
  background-color: #fff;
  box-sizing: border-box;
  box-shadow: 0 0 8px 0 rgba(0,0,0,0.3);
  max-width: 320px;
  margin: 20px 10px 0;
  border-radius: 8px;
  padding: 10px 10px 24px;
  animation: fade 0.75s ease both paused;
}

.tiling-list_type1>li:nth-child(1) {animation-delay: 0s;}
.tiling-list_type1>li:nth-child(2) {animation-delay: 0.2s;}
.tiling-list_type1>li:nth-child(3) {animation-delay: 0.4s;}
.tiling-list_type1>li:nth-child(4) {animation-delay: 0.6s;}
.tiling-list_type1>li:nth-child(5) {animation-delay: 0.8s;}
.tiling-list_type1>li:nth-child(6) {animation-delay: 1.0s;}
.tiling-list_type1>li:nth-child(7) {animation-delay: 1.2s;}
.tiling-list_type1>li:nth-child(8) {animation-delay: 1.4s;}
.tiling-list_type1>li:nth-child(9) {animation-delay: 1.6s;}
.tiling-list_type1>li:nth-child(10) {animation-delay: 1.8s;}

.tiling-list_type1.active>li {
  animation-play-state: running;
}

.tiling-list_type1 .image {
  height: 200px;
}

.tiling-list_type1 .image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tiling-list_type1 .text {
  flex-grow: 1;
  margin-top: 22px;
}

.tiling-list_type1 .text .name {
  color: #0074be;
  border-bottom: 2px solid #0074be;
  padding: 0 10px 8px;
  text-align: center;
  font-size: 20px;
  font-weight: 600;
}

.tiling-list_type1 .text .description {
  margin-top: 15px;
  padding: 0 10px;
  font-size: 15px;
  line-height: calc(24 / 15);
}

.tiling-list_type1 .buttons {
  margin-top: 16px;
  text-align: center;
}

.tiling-list_type1 .buttons a {
  background-color: #ff873e;
  width: 180px;
  color: #fff;
  transition: opacity 0.2s;
}

.tiling-list_type1 .buttons a:hover {
  opacity: 0.7;
}


.list-container {
  max-width: 1000px;
  margin: 0 auto;
  padding: 64px 15px;
  font-size: 16px;
  line-height: 1.8;
  animation-delay: 0.5s;
}

.list-container>*:first-child {
  margin-top: 0 !important;
}

.list-container .description,
.description-list>div>dt,
.description-list>div>dd {
  padding-left: 10px;
  padding-right: 10px;
}

.list-container .description {
  margin-top: 32px;
}

.list-container .description>p:not(:first-child) {
  margin-top: 16px;
}

.description-list {
  margin-top: 32px;
}

.description-list>div:not(:first-child) {
  margin-top: 32px;
}

.description-list>div>dt {
  border-bottom: 2px solid #1c843e;
  padding-bottom: 2px;
  color: #1c843e;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.6;
}

.description-list>div>dd {
  margin-top: 16px;
}

.description-list>div>dd+dd {
  margin-top: 32px;
}

.description-list>div>dd>*:first-child {
  margin-top: 0 !important;
}

.description-list>div>dd>ul.list-style_disc,
.description-list>div>dd>ol.list-style_decimal,
.description-list>div>dd>ul.list-style_double-circle,
.description-list>div>dd>ul.list-style_none,
.description-list>div>dd>table,
.description-list>div>dd>p {
  margin-top: 16px;
}

.description-list .inner-dl {
  margin-top: 16px;
}

.description-list .inner-dl>div:not(:first-child) {
  margin-top: 24px;
}

.description-list .inner-dl>div>dt {
  font-size: 18px;
  font-weight: 600;
  line-height: calc(30 / 18);
}

.description-list .inner-dl>div>dd {
  margin-top: 8px;
  padding-left: 8px;
}

.description-list .inner-dl>div>dd>*:first-child {
  margin-top: 0 !important;
}

.description-list .inner-dl>div>dd>ul.list-style_disc,
.description-list .inner-dl>div>dd>ol.list-style_decimal,
.description-list .inner-dl>div>dd>ul.list-style_double-circle,
.description-list .inner-dl>div>dd>ul.list-style_none,
.description-list .inner-dl>div>dd>table,
.description-list .inner-dl>div>dd>p {
  margin-top: 16px;
}

.description-list .list_type1 {
  max-width: none;
  margin-top: 16px;
  margin-left: 0;
  margin-right: 0;
  padding: 0;
  font-size: inherit;
  line-height: inherit;
}

.description-list .goal {
  display: inline-flex;
  background-color: #fff;
  border: 1px solid #f00;
  padding: 9px 18px 7px;
  color: #f00;
  font-weight: 600;
}

.description-list .goal>dt {
  white-space: nowrap;
}

.description-list .goal>dt::after {
  content: "：";
}


#kids-dl-contents.tiling-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: calc(100vw - 30px);
  max-width: 1000px;
  margin: -32px auto 0;
  justify-content: center;/* 子要素1つの場合 */
}

#kids-dl-contents.tiling-list>li {
  background-color: #fff;
  background-repeat: no-repeat;
  box-sizing: border-box;
  box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.3);
  width: calc(50% - 12px);
  max-width: 480px;
  margin: 32px 0 0;
  border-radius: 16px;
  padding: 20px 20px 35px;
}

#kids-dl-contents.tiling-list .nurie {
  background-image: url(images/bg_kaseki.svg);
  background-position: calc(100% - 30px) calc(100% - 30px);
  background-size: 180px auto;
}

#kids-dl-contents.tiling-list .sugoroku {
  background-image: url(images/bg_haniwa.svg);
  background-position: calc(100% - 30px) calc(100% - 30px);
  background-size: 180px auto;
}

#kids-dl-contents.tiling-list .nurie {
  position: relative;
  z-index: 0;
}
#kids-dl-contents.tiling-list .nurie .image {
  box-shadow: 0px 0px 0px 1px #999 inset;
}
#kids-dl-contents.tiling-list .nurie .image img {
  position: relative;
  z-index: -1;
}

#kids-dl-contents.tiling-list .text {
  margin-top: 10px;
  padding-left: 15px;
  padding-right: 15px;
}

#kids-dl-contents.tiling-list .image+.text {
  margin-top: 30px;
}

#kids-dl-contents.tiling-list .name {
  color: #0074be;
  text-align: center;
  font-size: 24px;
  font-weight: 600;
  line-height: calc(32 / 24);
}

#kids-dl-contents.tiling-list .description {
  margin-top: 16px;
  font-size: 16px;
  /* font-weight: 600; */
  line-height: 1.8;
}

#kids-dl-contents.tiling-list .buttons.download {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-top: 15px;
}

#kids-dl-contents.tiling-list .buttons.download a {
  background-color: #ffb400;
  color: #fff;
  transition: opacity 0.2s;
}

#kids-dl-contents.tiling-list .buttons.download a:not(:first-child) {
  margin-top: 15px;
}

#kids-dl-contents.tiling-list .buttons.download a:hover {
  opacity: 0.7;
}


#hakkutsukun_isekichan {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

#hakkutsukun_isekichan .text .description {
  font-size: 16px;
  /* font-weight: 600; */
  line-height: 1.8;
}

#hakkutsukun_isekichan .text .buttons {
  width: 460px;
  margin-top: 22px;
}

#hakkutsukun_isekichan .text .buttons a {
  display: flex;
  color: #fff;
  transition: opacity 0.2s;
}

#hakkutsukun_isekichan .text .buttons a:hover {
  opacity: 0.7;
}

#hakkutsukun_isekichan .text .buttons a:not(:first-child) {
  margin-top: 12px;
}

#hakkutsukun_isekichan .text .buttons a.hakkutsukun {
  background-color: #0074be;
}
#hakkutsukun_isekichan .text .buttons a.isekichan {
  background-color: #31ae4b;
}

#hakkutsukun_isekichan .text .buttons a .account {
  display: inline-block;
  margin-left: 0.66666667em;
  font-weight: normal;
}

#hakkutsukun_isekichan .image {
  flex-shrink: 0;
  width: 260px;
  margin-left: 18px;
  animation-delay: 0.8s;
}


#recruit-lead .lead {
  text-align: center;
  font-size: 38px;
  /* font-weight: bold; */
  line-height: calc(55 / 38);
}

#recruit-lead .recruitment-type {
  display: inline-flex;
  box-shadow: 0px 0px 4px 0px rgba(0,0,0,0.3);
  margin-top: 25px;
  border-radius: calc(44px / 2);
  text-align: left;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.5;
  overflow: hidden;
}

#recruit-lead .recruitment-type dt,
#recruit-lead .recruitment-type dd {
  padding-top: 8px;
  padding-bottom: 6px;
}

#recruit-lead .recruitment-type dt {
  display: flex;
  align-items: center;
  background-color: #f00;
  padding-left: 32px;
  padding-right: 26px;
  color: #fff;
  white-space: nowrap;
}

#recruit-lead .recruitment-type dd {
  background-color: #fff;
  padding-left: 26px;
  padding-right: 32px;
}

#recruit-lead .recruitment-type dd>span {
  display: inline-block;
}

#recruit-lead .recruitment-type dd>span:not(:last-child)::after {
  content: "・";
}

#recruit-lead .recruitment-type dd .small {
  font-size: 14px;
}


#contact-us {
  position: relative;
  background-color: #fff;
  padding-top: calc(64px + 8px);
  /* padding-bottom: 72px;*/
}

#contact-us::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  display: block;
  content: "";
  background-image: linear-gradient(90deg, #31ae4b, #0074be);
  height: 8px;
}

#index #contact-us {
  padding-top: 64px;
}

#index #contact-us::before {
  content: normal;
}

#contact-means.tiling-list {
  display: flex;
  justify-content: space-between;
  max-width: 1000px;
  margin: 32px auto 0;
  padding: 0 20px;
}

#contact-means.tiling-list>li {
  background-color: #e1f2fd;
  box-sizing: border-box;
  width: 480px;
  border-radius: 8px;
  padding: 40px 35px 35px;
  text-align: center;
  animation: fade 0.75s ease both paused;
}

#contact-means.tiling-list>li:nth-child(1) {animation-delay: 0s;}
#contact-means.tiling-list>li:nth-child(2) {animation-delay: 0.2s;}

#contact-means.tiling-list.active>li {
  animation-play-state: running;
}

#contact-means.tiling-list .mean {
  font-size: 24px;
  font-weight: 600;
}

#contact-means.tiling-list .telephone .phone-num {
  margin-top: 38px;
  margin-right: -10px;
  color: #0074be;
  font-size: 38px;
  font-weight: 600;
  white-space: nowrap;
}

#contact-means.tiling-list .telephone .phone-num a {
  display: flex;
  justify-content: center;
  align-items: center;
}

#contact-means.tiling-list .telephone .phone-num a::before {
  flex-shrink: 0;
  display: block;
  content: "";
  background: url(images/icon_phone.svg) no-repeat center top / contain;
  width: 34px;
  height: 34px;
  margin-bottom: 4px;
  margin-right: 15px;
}

#contact-means.tiling-list .telephone .phone-num a>span {
  display: flex;
  align-items: center;
}

#contact-means.tiling-list .telephone .phone-num .small {
  font-size: 20px;
}

#contact-means.tiling-list .telephone .reception-hours {
  display: inline-flex;
  background-color: #fff;
  margin-top: 22px;
  border-radius: 8px;
  padding: 5px 25px;
  color: #0074be;
}

#contact-means.tiling-list .telephone .reception-hours>dt,
#contact-means.tiling-list .telephone .reception-hours>dd {
  padding-top: 11px;
  padding-bottom: 7px;
}

#contact-means.tiling-list .telephone .reception-hours>dt {
  display: flex;
  align-items: center;
  padding-right: 22px;
  font-size: 18px;
  font-weight: 600;
  white-space: nowrap;
}

#contact-means.tiling-list .telephone .reception-hours>dd {
  border-left: 2px solid #ccc;
  padding-left: 22px;
  text-align: left;
  font-size: 18px;
  font-weight: 600;
  white-space: nowrap;
}

#contact-means.tiling-list .telephone .reception-hours>dd .holiday {
  margin-top: 8px;
  font-size: 16px;
}

#contact-means.tiling-list .mailform .description {
  margin-top: 22px;
  text-align: left;
  font-size: 16px;
  /* font-weight: 600; */
  line-height: 1.8;
}

#contact-means.tiling-list .mailform .buttons.more {
  margin-top: 20px;
  text-align: center;
}

#contact-means.tiling-list .mailform .buttons.more a {
  background-color: #0074be;
  width: 200px;
  color: #fff;
  transition: opacity 0.2s;
}

#contact-means.tiling-list .mailform .buttons.more a:hover {
  opacity: 0.7;
}

#customer_harassment {
  position: relative;
  background-color: #fff;
  padding-top: 16px;
  padding-bottom: 72px;
}

#customer_harassment::before {
}

#customer_harassment .text {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 20px;
  font-size: 15px;
  line-height: 1.8;
}


/*-------------------- index --------------------*/
#index main {
  position: relative;
  z-index: 0;
}

#index main>*:not(#mv) {
  position: relative;
  z-index: 1;
}

#index main>section:not(#contact-us):not(#customer_harassment) {
  padding-top: 64px;
  padding-bottom: 72px;
}

#mv {
  position: relative;
  padding: 118px 0 88px;
  overflow: hidden;
  z-index: 0;
}

#mv::before,
#mv::after {
  position: absolute;
  left: 0;
  right: 0;
  display: block;
  content: "";
  background-image: linear-gradient(90deg, #31ae4b, #0074be);
  height: 8px;
  z-index: 2;
}

#mv::before {
  top: 0;
}
#mv::after {
  bottom: 0;
}

#mv>*:not(#mv-bg) {
  position: relative;
  z-index: 1;
}

#mv-catchcopy {
  display: flex;
  flex-direction: column;
  align-items: center;
}

#mv-catchcopy .main {
  color: #fff;
  text-align: center;
  text-shadow: 0px 0px 8px #000;
  font-size: 48px;
  /* font-weight: bold; */
  line-height: 1.5;
}

#mv-catchcopy .sub {
  background-image: linear-gradient(90deg, #31ae4b, #0074be);
  border-radius: 8px;
  margin-top: 20px;
  padding: 8px 60px 10px;
  color: #fff;
  text-align: center;
  font-size: 24px;
  /* font-weight: bold; */
  line-height: 1.5;
  animation-delay: 0.5s;
}

#mv-content {
  max-width: 1000px;
  margin: 90px auto 0;
  border-radius: 16px;
  overflow: hidden;
}

#mv-content .upper {
  background-color: rgba(255,255,255,0.88);
  padding: 40px 24px;
  overflow: hidden;
}

#mv-content .selling-point {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.5;
}

#mv-content .selling-point>li {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: calc(100% / 3);
  height: 110px;
  animation: fadeScale 0.75s ease both paused;
}

#mv-content .selling-point>li:nth-child(1) {animation-delay: 0s;}
#mv-content .selling-point>li:nth-child(2) {animation-delay: 0.2s;}
#mv-content .selling-point>li:nth-child(3) {animation-delay: 0.4s;}
#mv-content .selling-point>li:nth-child(4) {animation-delay: 0.6s;}
#mv-content .selling-point>li:nth-child(5) {animation-delay: 0.8s;}
#mv-content .selling-point>li:nth-child(6) {animation-delay: 1.0s;}

#mv-content .selling-point.active>li {
  animation-play-state: running;
}

#mv-content .selling-point::before,
#mv-content .selling-point::after,
#mv-content .selling-point>li:nth-child(-n+3)::before,
#mv-content .selling-point>li:nth-child(3n+1)::before,
#mv-content .selling-point>li::after {
  position: absolute;
  display: block;
  content: "";
  background: url(images/tombo.svg) no-repeat center center / 48px auto;
  width: 48px;
  height: 48px;
}

#mv-content .selling-point::before {
  bottom: 0;
  left: 0;
  transform: translate(-50%, 50%);
}
#mv-content .selling-point::after {
  top: 0;
  right: 0;
  transform: translate(50%, -50%);
}
#mv-content .selling-point>li:nth-child(-n+3)::before,
#mv-content .selling-point>li:nth-child(3n+1)::before {
  top: 0;
  left: 0;
  transform: translate(-50%, -50%);
}
#mv-content .selling-point>li::after {
  bottom: 0;
  right: 0;
  transform: translate(50%, 50%);
}

#mv-content .selling-point img {
  margin-right: 15px;
  animation-delay: 0.5s;
}

#mv-content .selling-point>li:nth-child(1) img {width: 81px;}
#mv-content .selling-point>li:nth-child(2) img {width: 70px;}
#mv-content .selling-point>li:nth-child(3) img {width: 74px;}
#mv-content .selling-point>li:nth-child(4) img {width: 76px;}
#mv-content .selling-point>li:nth-child(5) img {width: 74px;}
#mv-content .selling-point>li:nth-child(6) img {width: 77px;}

#mv-content .lower {
  background-color: rgba(0,116,190,0.88);
  padding: 40px 0 40px;
}

#mv-content .services .section-heading {
  color: #fff;
}

#mv-content .services .section-heading .ja {
  /* font-weight: normal; */
}

#mv-content .services .bubbles {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 30px;
}

#mv-content .services .bubbles>li {
  display: flex;
  justify-content: center;
  align-items: center;
  background-repeat: no-repeat;
  background-blend-mode: lighten;
  box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.8);
  width: 300px;
  height: 300px;
  margin: 0 8px;
  border-radius: 50%;
  font-size: 20px;
  font-weight: 600;
  animation: blurFadeScale 0.75s ease both paused;
}

#mv-content .services .bubbles>li:nth-child(1) {animation-delay: 0s;}
#mv-content .services .bubbles>li:nth-child(2) {animation-delay: 0.2s;}
#mv-content .services .bubbles>li:nth-child(3) {animation-delay: 0.4s;}

#mv-content .services .bubbles.active>li {
  animation-play-state: running;
}

#mv-content .services .bubbles>li:nth-child(1) {
  background-color: rgba(255,255,255,0.65);
  background-image: url(images/services_bubbles_1.jpg);
  background-position: calc((119 / (690 - 300)) * 100%) calc((151 / (460 - 300)) * 100%);
  background-size: calc((690 / 300) * 100%) auto;
}
#mv-content .services .bubbles>li:nth-child(2) {
  background-color: rgba(255,255,255,0.55);
  background-image: url(images/services_bubbles_2.jpg);
  background-position: calc((135 / (584 - 300)) * 100%) calc((22 / (330 - 300)) * 100%);
  background-size: calc((584 / 300) * 100%) auto;
}
#mv-content .services .bubbles>li:nth-child(3) {
  background-color: rgba(255,255,255,0.65);
  background-image: url(images/services_bubbles_3.jpg);
  background-position: calc((3 / (306 - 300)) * 100%) calc((12 / (408 - 300)) * 100%);
  background-size: calc((306 / 300) * 100%) auto;
}

#mv-content .services .buttons.more {
  margin-top: 32px;
  text-align: center;
}

#mv-content .services .buttons.more a {
  background-color: #fff;
  width: 200px;
  color: #0074be;
  transition: color 0.2s;
}

#mv-content .services .buttons.more a:hover {
  color: rgba(0,116,190,0.6);
}

#mv-bg {
  position: fixed;
  top: 0;
  right:0;
  left:0;
  bottom:0;
  background-color: #000;
  z-index: 0;
}

#mv-bg::before {
  position: absolute;
  top: 0;
  right:0;
  left:0;
  bottom:0;
  display: block;
  content: "";
  background: rgba(0,0,0,0.7) url(images/pattern_dot.svg) repeat center top / 4px auto;
  opacity: 0.7;
  z-index: 1;
}

#ytplayer {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: calc((100vh / 9) * 16);
  height: calc(((100vw / 16) * 9) + 400px);
  min-width: 100vw;
  min-height: calc(100vh + 400px);
  pointer-events: none;
  z-index: 0;
}


#index-information .buttons.more,
#index-project .buttons.more,
#index-kids .buttons.more,
#index-recruit .buttons.more {
  text-align: center;
}

#index-information .buttons.more a,
#index-project .buttons.more a,
#index-kids .buttons.more a,
#index-recruit .buttons.more a {
  width: 200px;
  transition: opacity 0.2s;
}

#index-information .buttons.more a:hover,
#index-project .buttons.more a:hover,
#index-kids .buttons.more a:hover,
#index-recruit .buttons.more a:hover {
  opacity: 0.7;
}


#index-information {
  background-color: #fff;
}

#index-information .posts.tiling-list {
  justify-content: center;
  margin-top: 12px;
}

#index-information .buttons.more {
  margin-top: 32px;
}

#index-information .buttons.more a {
  background-color: #31ae4b;
  color: #fff;
}


#index-project {
  background-color: #d7edfb;
}

#index-project .slide-container {
  margin-top: 32px;
}

#index-project .slide {
  width: 240px;
  margin-left: 5px;
  border-radius: 8px;
}

#index-project .slide img {
  height: 240px;
}

#index-project .buttons.more {
  margin-top: 32px;
}

#index-project .buttons.more a {
  background-color: #0074be;
  color: #fff;
}

#index-socialmedias {
  background-color: #fffeed;
}

#medias-contents {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: calc(100vw - 30px);
  max-width: 1000px;
  margin: 32px auto 0;
}

#medias-contents .twitter {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  background-color: #e1f2fd;
  box-sizing: border-box;
  box-shadow: 0 0 0 4px #1da1f2 inset;
  width: 100%;
  padding: 30px;
}

#medias-contents .twitter .icon {
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #1da1f2;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  margin: 10px 24px 10px 10px;
}

#medias-contents .twitter .icon img {
  width: 48px;
}

#medias-contents #hakkutsukun_isekichan {
  flex-grow: 1;
}

#medias-contents .banner {
  background-color: #fff;
  width: calc(50% - 15px);
  max-width: 480px;
  margin-top: 30px;
}


#index-kids {
  background: url(images/pattern_star.svg) repeat center top / 8px auto,
              url(images/bg_sugoroku.jpg) no-repeat center center / cover;
  box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.5) inset;
}

#index-kids #kids-dl-contents.tiling-list {
  margin-top: 0;
}

#index-kids .buttons.more {
  margin-top: 32px;
}

#index-kids .buttons.more a {
  background-color: #ff873e;
  color: #fff;
}


#index-recruit {
  background: #fff url(images/bg_hakkutsu.jpg) no-repeat center center / cover;
}

#recruit-contents {
  background-color: rgba(255,255,255,0.8);
  box-sizing: border-box;
  width: calc(100vw - 30px);
  max-width: 1000px;
  margin: 32px auto 0;
  border-radius: 16px;
  padding: 40px 20px 32px;
  text-align: center;
}

#index-recruit .buttons.more {
  margin-top: 32px;
}

#index-recruit .buttons.more a {
  background-color: #f00;
  color: #fff;
}

#index-recruit .buttons.more a:hover {
  opacity: 0.6;
}



/*-------------------- information --------------------*/
#information .page-heading {
  background-image: url(images/page_heading_bg_1.jpg);
}

#information .posts.tiling-list {
  flex-wrap: wrap;
}



/*-------------------- project --------------------*/
#project .page-heading {
  background-image: url(images/page_heading_bg_2.jpg);
}

#project .movie {
  background-color: #d7edfb;
  margin-top: -64px;
  margin-bottom: 46px;
  padding: 50px 0;
}

#project .movie .inner {
  position: relative;
  width: calc(100% - 15px);
  max-width: 960px;
  margin: 0 auto;
}

#project .movie .inner::before {
  display: block;
  content: "";
  padding-top: calc((9 / 16) * 100%);
}

#project .movie iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

#project .posts-lead,
#project .posts {
  box-sizing: border-box;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}

#project .posts-lead {
  border-bottom: 1px solid #ccc;
  padding: 0 10px 46px;
  color: #0074be;
  text-align: center;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.8;
}

#project .posts .post {
  display: flex;
  align-items: flex-start;
  border-bottom: 1px dashed #ccc;
  padding: 15px 20px 15px 10px;
  animation: fadeLeft 0.8s ease both paused;
}

#project .posts .post:nth-child(1) {animation-delay: 0s;}
#project .posts .post:nth-child(2) {animation-delay: 0.2s;}
#project .posts .post:nth-child(3) {animation-delay: 0.4s;}
#project .posts .post:nth-child(4) {animation-delay: 0.6s;}
#project .posts .post:nth-child(5) {animation-delay: 0.8s;}

#project .posts.active .post {
  animation-play-state: running;
}

#project .posts .image {
  flex-shrink: 0;
  width: 120px;
}

#project .posts .container {
  flex-grow: 1;
  display: flex;
  align-items: flex-start;
  margin-left: 20px;
}

#project .posts .text {
  flex-grow: 1;
}

#project .posts .text .title {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
}

#project .posts .text .meta {
  margin-top: 16px;
  font-size: 15px;
  line-height: 1.5;
}

#project .posts .text .meta>div {
  display: flex;
  align-items: flex-start;
}

#project .posts .text .meta>div:not(:first-child) {
  margin-top: 10px;
}

#project .posts .text .meta dt {
  background-color: #fff;
  border: 1px solid #000;
  padding: 4px 10px 1px;
  white-space: nowrap;
}

#project .posts .text .meta dd {
  margin-left: 16px;
}

#project .posts .text .meta .year dd {
  padding-top: 5px;
  white-space: nowrap;
}

#project .posts .text .meta .works dd {
  margin-top: -5px;
  margin-left: calc(16px - 8px);
  padding-top: 1px;
}

#project .posts .text .meta .works dd>span {
  display: inline-block;
  background-color: #000;
  margin-top: 5px;
  margin-left: 8px;
  border-radius: 4px;
  padding: 4px 8px 1px;
  color: #fff;
  white-space: nowrap;
}

/* #project .posts .text .meta .works dd .survey {background-color: #ff9933;} */
/* #project .posts .text .meta .works dd .organizing {background-color: #0066cc;} */
/* #project .posts .text .meta .works dd .report {background-color: #669900;} */

#project .posts .buttons {
  margin-left: 20px;
}

#project .posts .buttons a {
  background-color: #0074be;
  height: 38px;
  padding-top: 2px;
  padding-left: 20px;
  padding-right: 36px;
  color: #fff;
  font-size: 16px;
  font-weight: normal;
  white-space: nowrap;
  transition: opacity 0.2s;
}

#project .posts .buttons a:hover {
  opacity: 0.7;
}

#project .posts .buttons a::after {
  right: 10px;
  font-size: 18px;
}

#project #single .post {
  max-width: none;
}

#project #single .post .title,
#project #single .post .eyecatch,
#project #single .post .content {
  max-width: 720px;
}

#project #single .post .eyecatch,
#project #single .post .content {
  margin-left: auto;
  margin-right: auto;
}

#project #single .project-meta {
  margin-top: 36px;
  text-align: left;
}

#project #single .project-meta .list {
  background-color: #e9f4fa;
  font-size: 16px;
  line-height: 1.8;
}

#project #single .project-meta .list>dl {
  display: table;
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
}

#project #single .project-meta .list>dl>div {
  display: table-row;
}

#project #single .project-meta .list>dl>div>dt,
#project #single .project-meta .list>dl>div>dd {
  display: table-cell;
  box-sizing: border-box;
  padding-top: 15px;
  padding-bottom: 12px;
}

#project #single .project-meta .list>dl>div:not(:first-child)>dt,
#project #single .project-meta .list>dl>div:not(:first-child)>dd {
  border-top: 1px solid #fff;
}

#project #single .project-meta .list>dl>div>dt {
  padding-left: 20px;
  padding-right: 4em;
  color: #0074be;
  font-weight: 600;
  white-space: nowrap;
}

#project #single .project-meta .list>dl>div>dd {
  width: 100%;
  padding-right: 20px;
}

#project #single .project-meta .list>dl>div.works>dd>span {
  display: inline-block;
}

#project #single .project-meta .list>dl>div.works>dd>span:not(:last-child)::after {
  content: "、";
}

#project #single .project-meta .buttons {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  box-sizing: border-box;
  max-width: 720px;
  margin: 32px auto 0;
  padding: 0 20px;
}

#project #single .project-meta .buttons.download a {
  background-color: #ffb400;
  color: #fff;
  transition: opacity 0.2s;
  animation: fadeRight 0.8s ease both paused;
}

#project #single .project-meta .buttons.download a:not(:first-child) {
  margin-top: 16px;
}

#project #single .project-meta .buttons.download a:hover {
  opacity: 0.7;
}

#project #single .project-meta .buttons.download a:nth-child(1) {animation-delay: 0s;}
#project #single .project-meta .buttons.download a:nth-child(2) {animation-delay: 0.2s;}
#project #single .project-meta .buttons.download a:nth-child(3) {animation-delay: 0.4s;}
#project #single .project-meta .buttons.download a:nth-child(4) {animation-delay: 0.6s;}
#project #single .project-meta .buttons.download a:nth-child(5) {animation-delay: 0.8s;}
#project #single .project-meta .buttons.download a:nth-child(6) {animation-delay: 1.0s;}
#project #single .project-meta .buttons.download a:nth-child(7) {animation-delay: 1.2s;}
#project #single .project-meta .buttons.download a:nth-child(8) {animation-delay: 1.4s;}

#project #single .project-meta .buttons.download.active a {
  animation-play-state: running;
}




/*-------------------- company --------------------*/
#company .page-heading {
  background-image: url(images/page_heading_bg_3.jpg);
}

#company .slide {
  margin-left: 2px;
  /* border-radius: 8px; */
}

#company .slide img {
  width: auto;
  max-width: none;
  height: 300px;
  /* object-fit: fill; */
}

#company .list_type1 .address span {
  display: inline-block;
}

#company .list_type1 .buttons {
  margin-left: 32px;
  padding-bottom: 2px;
}

#company .list_type1 .buttons a {
  background-color: #31ae4b;
  height: 38px;
  padding-top: 2px;
  padding-left: 20px;
  padding-right: 20px;
  color: #fff;
  font-size: 16px;
  font-weight: normal;
  line-height: 1;
  white-space: nowrap;
  transition: opacity 0.2s;
}

#company .list_type1 .buttons a:hover {
  opacity: 0.7;
}

#company .list_type1 .buttons a.external::after {
  margin-left: 10px;
  font-size: 20px;
}




/*-------------------- business --------------------*/
#business .page-heading {
  background-image: url(images/page_heading_bg_4.jpg);
}

#business .works.tiling-list {
  display: flex;
  flex-wrap: wrap;
  width: calc(100vw - 20px);
  max-width: calc((300px + 20px) * 3);
  margin: -20px auto 0;
}

#business .works.tiling-list>li {
  background-color: #fff;
  box-sizing: border-box;
  width: 300px;
  margin: 20px 10px 0;
  border: 2px solid #0074be;
  border-radius: 8px;
  padding: 10px 20px 16px;
  animation: fade 0.75s ease both paused;
}

#business .works.tiling-list>li:nth-child(1) {animation-delay: 0s;}
#business .works.tiling-list>li:nth-child(2) {animation-delay: 0.2s;}
#business .works.tiling-list>li:nth-child(3) {animation-delay: 0.4s;}
#business .works.tiling-list>li:nth-child(4) {animation-delay: 0.6s;}
#business .works.tiling-list>li:nth-child(5) {animation-delay: 0.8s;}
#business .works.tiling-list>li:nth-child(6) {animation-delay: 1.0s;}
#business .works.tiling-list>li:nth-child(7) {animation-delay: 1.2s;}
#business .works.tiling-list>li:nth-child(8) {animation-delay: 1.4s;}
#business .works.tiling-list>li:nth-child(9) {animation-delay: 1.6s;}
#business .works.tiling-list>li:nth-child(10) {animation-delay: 1.8s;}

#business .works.tiling-list.active>li {
  animation-play-state: running;
}

#business .works.tiling-list .image {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 136px;
}

#business #section_1 .works.tiling-list>li:nth-child(1) .image img {width: 74px;}
#business #section_1 .works.tiling-list>li:nth-child(2) .image img {width: 108px;}
#business #section_1 .works.tiling-list>li:nth-child(3) .image img {width: 82px;}
#business #section_1 .works.tiling-list>li:nth-child(4) .image img {width: 104px;}
#business #section_1 .works.tiling-list>li:nth-child(5) .image img {width: 188px;}
#business #section_1 .works.tiling-list>li:nth-child(6) .image img {width: 86px;}

#business #section_2 .works.tiling-list>li:nth-child(1) .image img {width: 126px;}
#business #section_2 .works.tiling-list>li:nth-child(2) .image img {width: 82px;}
#business #section_2 .works.tiling-list>li:nth-child(3) .image img {width: 74px;}

#business .works.tiling-list .text>dt {
  color: #0074be;
  text-align: center;
  font-size: 20px;
  font-weight: 600;
}

#business .works.tiling-list .text>dd {
  margin-top: 16px;
  font-size: 15px;
  line-height: 1.6;
}




/*-------------------- survey --------------------*/
#survey .page-heading {
  background-image: url(images/page_heading_bg_5.jpg);
}

#survey #section_2 .buttons a {
  background-color: #0074be;
  width: 200px;
  color: #fff;
  transition: opacity 0.2s;
}

#survey #section_2 .buttons a:hover {
  opacity: 0.7;
}

#survey-flow {
  width: calc(100vw - 30px);
  max-width: 1200px;
  margin: 0 auto;
}

#survey-flow>section {
  display: flex;
  align-items: flex-start;
}

#survey-flow .heading,
#survey-flow .list dt {
  padding-top: 9px;
  font-size: 18px;
}

#survey-flow .heading {
  flex-shrink: 0;
  background-color: #31ae4b;
  width: 6.5em;
  padding-bottom: 5px;
  padding-left: 12px;
  padding-right: 16px;
  clip-path: polygon(0% 0%, calc(100% - 16px) 0%, 100% 50%, calc(100% - 16px) 100%, 0% 100%);
  color: #fff;
  font-weight: 600;
}

#survey-flow .list {
  padding-left: 48px;
}

#survey-flow .list>div {
  position: relative;
  padding-bottom: 40px;
}

#survey-flow>section:last-child .list>div:last-child {
  padding-bottom: 0;
}

#survey-flow .list>div::before,
#survey-flow .list>div::after {
  position: absolute;
  left: calc(-48px / 2);
  display: block;
  content: "";
}

#survey-flow .list>div::before {
  top: calc(32px / 2);
  background-color: #0074be;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}

#survey-flow .list>div::after {
  top: 0;
  bottom: 0;
  background-color: #ccc;
  width: 2px;
  transform: translateX(-50%);
  z-index: 0;
}

#survey-flow>section:first-child .list>div:first-child::after {
  top: 16px;
}

#survey-flow>section:last-child .list>div:last-child::after {
  bottom: calc(100% - 16px);
}

#survey-flow .list dt {
  color: #0074be;
  font-weight: 600;
}

#survey-flow .list dd {
  display: flex;
  margin-top: 12px;
}

#survey-flow .list dd .image {
  flex-shrink: 0;
  max-width: 260px;
}

#survey-flow .list dd .text {
  margin-left: 20px;
  font-size: 16px;
  line-height: 1.8;
}




/*-------------------- facility --------------------*/
#facility .page-heading {
  background-image: url(images/page_heading_bg_6.jpg);
}




/*-------------------- kids --------------------*/
#kids .page-heading {
  background-image: url(images/page_heading_bg_7.jpg);
}

#kids #hakkutsukun_isekichan {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 40px;
}

#kids #hakkutsukun_isekichan .image {
  margin-left: 48px;
}

#kids .posts.tiling-list {
  justify-content: center;
  margin-top: -10px;
}

#kids .posts.tiling-list+.buttons {
  margin-top: 32px;
  text-align: center;
}

#kids .posts.tiling-list+.buttons a {
  background-color: #31ae4b;
  width: 200px;
  color: #fff;
  transition: opacity 0.2s;
}

#kids .posts.tiling-list+.buttons a:hover {
  opacity: 0.7;
}




/*-------------------- recruit --------------------*/
#recruit .page-heading {
  background-image: url(images/page_heading_bg_8.jpg);
}

#recruit #recruit-lead {
  background-image: linear-gradient(90deg, #31ae4b, #0074be);
  padding: 28px 20px 40px;
  text-align: center;
}

#recruit #recruit-lead .lead {
  color: #fff;
  text-shadow: 0 0 4px rgba(0,0,0,0.4);
}

#recruit #recruit-lead .recruitment-type {
  animation-delay: 0.5s;
}

#recruit #features {
  display: flex;
  justify-content: space-between;
  width: calc(100vw - 30px);
  max-width: 1060px;
  margin: -50px auto 0;
}

#recruit #features>li {
  width: 320px;
  margin-top: 50px;
  animation: fadeScale 0.75s ease both paused;
}

#recruit #features>li:nth-child(1) {animation-delay: 0s;}
#recruit #features>li:nth-child(2) {animation-delay: 0.2s;}
#recruit #features>li:nth-child(3) {animation-delay: 0.4s;}

#recruit #features.active>li {
  animation-play-state: running;
}

#recruit #features .section-heading {
  padding-left: 0;
  padding-right: 0;
}

#recruit #features .section-heading span {
  font-size: 24px;
}

#recruit #features .image {
  max-width: 320px;
  box-shadow: 0 0 8px 0 rgba(0,0,0,0.3);
  margin: 20px auto 0;
  border-radius: 50%;
  overflow: hidden;
}

#recruit #features .text {
  text-align: left;
  margin-top: 20px;
  font-size: 16px;
  line-height: 1.8;
}

#recruit #section_2 .lead {
  text-align: center;
  font-size: 16px;
  line-height: 1.8;
}

#recruit #jobs {
  justify-content: center;
  margin-top: calc(40px - 20px);
}

#recruit .recruit-buttons {
  margin: 48px auto 0;
  text-align: center;
}

#recruit .recruit-buttons .buttons a {
  min-width: fit-content;
  margin: 0 auto;
  padding-right: 48px;
  padding-left: 40px;
  color: #fff;
  background-color: #ff873e;
  transition: opacity 0.2s;
}

#recruit .recruit-buttons .buttons a:hover {
  opacity: 0.7;
}

@media screen and (max-width: 1089px) {
  #recruit #features>li {
    width: calc((100vw - 100px) / 3);
  }

  #recruit #features .section-heading span {
    font-size: 22px;
  }
}




/*-------------------- privacy --------------------*/
#privacy .description-list .list_type1>div>dt {
  width: 6em;
}




/*-------------------- kiyaku --------------------*/
#kiyaku .list-container .end {
  margin-top: 32px;
  text-align: right;
}




/*-------------------- actionplan --------------------*/
#actionplan .description-list .actionplan-list {
  margin-top: 16px;
}

#actionplan .description-list .actionplan-list>li:not(:first-child) {
  margin-top: 12px;
}

#actionplan .description-list .actionplan-list a {
  position: relative;
  display: inline-block;
  padding-left: 34px;
  text-decoration: underline;
}

#actionplan .description-list .actionplan-list a:hover {
  text-decoration: none;
}

#actionplan .description-list .actionplan-list a::before {
  font-family: 'Material Symbols Outlined';
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
  position: absolute;
  top: 1px;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  content: "arrow_forward_ios";
  background-color: #1c843e;
  box-sizing: border-box;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  padding-left: 1px;
  color: #fff;
  font-size: 14px;
  line-height: 1;
}

#actionplan .description-list .list_type1>div>dt {
  width: 7em;
}

#actionplan .description-list .achievements {
  margin-top: 16px;
}

#actionplan .description-list .achievements>dt {
  padding-left: 1.16666667em;
  text-indent: -1.16666667em;
}

#actionplan .description-list .achievements>dt::before {
  display: inline-block;
  content: "\25c9";
  width: 1.16666667em;
  text-indent: 0;
}




/*-------------------- format --------------------*/
#format .description-list>div>dd {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

#format .description-list>div>dd .image {
  flex-shrink: 0;
  width: calc((420 / 980) * 100%);
  max-width: 420px;
  margin-left: 32px;
}




/*-------------------- group --------------------*/
#group .page-heading {
  flex-direction: row;
}

#group .page-heading .logo {
  flex-shrink: 0;
  width: 60px;
  margin-right: 20px;
  animation-delay: 0.5s;
}

#group .post .buttons a {
  background-color: #fff;
  height: auto;
  border: 2px solid #1c843e;
  border-radius: calc(40px / 2);
  padding: 6px 38px 4px 20px;
  color: #1c843e;
  font-size: 16px;
  line-height: 1.5;
  transition: background-color 0.2s, color 0.2s;
}

#group .post .buttons a::after {
  font-size: 18px;
}

#group .post .buttons a:hover {
  background-color: #1c843e;
  color: #fff;
}

#group .group-link {
  margin-top: 16px;
  text-align: right;
}

#group .company-link {
  margin-left: 30px;
  white-space: nowrap;
}

#group .description-list>div:not(:first-child) {
  margin-top: 48px;
}

#group .core-company {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding-top: 8px;
}

#group .core-company .content>dt img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 60px;
}

#group .core-company .content>dd {
  margin-top: 16px;
}

#group .core-company .company-link {
  margin-top: 11px;
}

#group .group-companies {
  margin-top: 24px;
}

#group .group-companies>div>dt,
#group .group-companies>div>dd {
  padding-top: 15px;
  padding-bottom: 13px;
}

#group .group-companies>div>dt {
  width: 12em;
}

#group .group-companies>div>dd {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

#group .group-companies>div>dd::before {
  top: 17px;
}

#group .group-companies>div>dd .company-link {
  margin-top: -5px;
  margin-bottom: -5px;
  margin-right: -12px;
  padding-bottom: 2px;
}




/*-------------------- 404 NOT FOUND --------------------*/
#not-found .page-contents {
  padding-left: 20px;
  padding-right: 20px;
}

#not-found .message {
  max-width: 480px;
  margin: 0 auto;
  font-size: 16px;
  line-height: 1.8;
}

#not-found .buttons {
  text-align: center;
  margin-top: 32px;
}

#not-found .buttons a {
  width: 200px;
  background-color: #31ae4b;
  color: #fff;
  transition: opacity 0.2s;
}

#not-found .buttons a:hover {
  opacity: 0.7;
}



/* ################################################################ */
/* footer */

footer {
  position: relative;
  z-index: 1;
}

footer .takamatsu-cg {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #007769;
  padding: 40px 0;
}

footer .takamatsu-cg .banner {
  position: relative;
  display: flex;
  background-color: #fff;
  padding: 20px 64px 20px 36px;
}

footer .takamatsu-cg .banner::after,
footer .takamatsu-cg .banner .text {
  transition: opacity 0.2s;
}

footer .takamatsu-cg .banner:hover::after,
footer .takamatsu-cg .banner:hover .text {
  opacity: 0.7;
}

footer .takamatsu-cg .banner::after {
  font-family: 'Material Symbols Outlined';
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
  position: absolute;
  top: 50%;
  right: 12px;
  display: block;
  content: "arrow_forward_ios";
  color: #007769;
  font-size: 32px;
  font-weight: normal;
  transform: translateY(-50%);
}

footer .takamatsu-cg .banner .group-logo {
  display: flex;
  align-items: center;
  width: 250px;
  padding-right: 28px;
}

footer .takamatsu-cg .banner .text {
  border-left: 2px solid #007769;
  padding: 12px 0 9px 28px;
}

footer .takamatsu-cg .banner .text>dt,
footer .takamatsu-cg .banner .text>dd {
  white-space: nowrap;
}

footer .takamatsu-cg .banner .text>dt {
  color: #007769;
  font-size: 26px;
  font-weight: 600;
}

footer .takamatsu-cg .banner .text>dd {
  margin-top: 15px;
  font-size: 18px;
  /* font-weight: 600; */
}

footer .takamatsu-cg .banner_expo2025 {
  background-color: #fff;
  margin-top: 32px;
  border-radius: 8px;
}

footer .takamatsu-cg .banner_expo2025.banner_expo2025_takamatsu_cg {
  border-radius: 0;
}

#footer-main {
  background-color: #333;
  padding: 72px 20px;
  color: #fff;
}

#footer-menu {
  display: flex;
  justify-content: space-between;
  max-width: 1070px;
  margin: 0 auto;
}

#footer-menu .coap-logo {
  width: 180px;
  min-width: 150px;
}

#footer-menu .site-map {
  width: 840px;
  margin-left: 30px;
}

#footer-footer {
  display: flex;
  justify-content: center;
  background-color: #000;
  padding: 15px 20px 13px;
  color: #fff;
}

#footer-nav .links {
  display: flex;
  font-size: 14px;
}

#footer-nav .links>li:not(:first-child) {
  margin-left: 50px;
}

#footer-nav .links a:hover {
  text-decoration: underline;
}

#footer-footer .copy {
  margin-left: 80px;
  font-size: 14px;
}





@media screen and (max-width: 1029px) {

/* ################################################################ */
/* header */

#header-nav {
  margin-left: 0;
}

#header-nav .links {
  display: none;
}



/* ################################################################ */
/* main */

.posts.tiling-list .post {
  width: calc((100% / 3) - 20px);
}

.tiling-list_type1 {
  max-width: calc((320px + 20px) * 2);
}

#contact-means.tiling-list {
  display: block;
  max-width: none;
  margin: 32px auto 0;
  padding-left: 0;
  padding-right: 0;
}

#contact-means.tiling-list>li {
  width: auto;
  border-radius: 0;
  padding: 40px 10px 35px;
}

#contact-means.tiling-list>li:not(:first-child) {
  margin-top: 20px;
}

#contact-means.tiling-list .mailform .description {
  width: calc(100vw - 52px);
  max-width: 400px;
  margin-left: auto;
  margin-right: auto;
}

#contact-means.tiling-list .mailform .buttons.more {
  margin-top: 20px;
}


/*-------------------- index --------------------*/
#mv-content {
  width: calc(100vw - 30px);
  max-width: 720px;
}

#mv-content .upper {
  padding: 22px 15px;
}

#mv-content .selling-point>li {
  width: 50%;
}

#mv-content .selling-point>li:nth-child(-n+3)::before,
#mv-content .selling-point>li:nth-child(3n+1)::before {
  content: normal;
}

#mv-content .selling-point::before,
#mv-content .selling-point::after,
#mv-content .selling-point>li:nth-child(-n+2)::before,
#mv-content .selling-point>li:nth-child(2n+1)::before,
#mv-content .selling-point>li::after {
  position: absolute;
  display: block;
  content: "";
  background: url(images/tombo.svg) no-repeat center center / 48px auto;
  width: 34px;
  height: 34px;
}

#mv-content .selling-point::before {
  bottom: 0;
  left: 0;
  transform: translate(-50%, 50%);
}
#mv-content .selling-point::after {
  top: 0;
  right: 0;
  transform: translate(50%, -50%);
}
#mv-content .selling-point>li:nth-child(-n+2)::before,
#mv-content .selling-point>li:nth-child(2n+1)::before {
  top: 0;
  left: 0;
  transform: translate(-50%, -50%);
}
#mv-content .selling-point>li::after {
  bottom: 0;
  right: 0;
  transform: translate(50%, 50%);
}

#mv-content .services .bubbles>li {
  margin: 0 24px;
}

#medias-contents .twitter {
  display: block;
}

#medias-contents .twitter .icon {
  width: 80px;
  height: 80px;
  margin: 0 auto;
}

#medias-contents .twitter .icon img {
  width: 38px;
}

#medias-contents #hakkutsukun_isekichan {
  margin-top: 20px;
}


/*-------------------- information --------------------*/
#information .posts.tiling-list {
  max-width: calc((320px + 20px) * 2);
}

#information .posts.tiling-list .post {
  width: 320px;
}


/*-------------------- recruit --------------------*/
#recruit .post .plain {
  max-width: 720px;
}

#recruit .list_type3 {
  max-width: 720px;
}



/* ################################################################ */
/* footer */

footer .takamatsu-cg {
  padding: 20px 0;
}

footer .takamatsu-cg .banner {
  display: block;
  padding: 0 50px 0 15px;
}
footer .takamatsu-cg .banner::after {
  right: 10px;
  font-size: 32px;
}

footer .takamatsu-cg .banner .group-logo {
  display: block;
  width: auto;
  max-width: 250px;
  margin: 0 auto;
  padding: 25px 0 15px;
}

footer .takamatsu-cg .banner .text {
  border-left: none;
  border-top: 2px solid #007769;
  padding: 16px 8px;
}

footer .takamatsu-cg .banner .text>dt {
  font-size: 26px;
}

footer .takamatsu-cg .banner .text>dd {
  margin-top: 12px;
  font-size: 16px;
}

footer .takamatsu-cg .banner_expo2025 {
  margin-top: 16px;
}

#footer-menu {
  justify-content: center;
}

#footer-menu .site-map {
  max-width: 640px;
}

#footer-menu .site-map .upper ul>li:not(:first-child) {
  margin-left: 40px;
}

#footer-menu .site-map .lower {
  flex-wrap: wrap;
  padding-top: 0;
}

#footer-menu .site-map .lower>div {
  width: 50%;
  margin-top: 40px;
}


}





@media screen and (max-width: 979px) {

/* ################################################################ */
/* main */

/*-------------------- business --------------------*/
#business .works.tiling-list>li {
  width: calc((100% / 3) - 20px);
}

}





@media screen and (max-width: 959px) {

/* ################################################################ */
/* header */

#menu .menu-body {
  right: 0;
  padding: 0;
  transform-origin: calc(100% - 27px) calc(0% - 25px);
}

#menu.open .menu-body {
  width: 270px;
  max-width: none;
}

#menu .menu-body::before {
  right: 27px;
}

#menu .site-map {
  max-height: calc(100vh - 38px - 54px - 25px - 10px);
  padding: 0 10px;
  overflow: auto;
}

#menu .site-map .upper,
#menu .site-map .lower {
  padding: 30px 0;
}

#menu .site-map .upper ul {
  display: block;
}

#menu .site-map .upper ul>li:not(:first-child) {
  margin-left: 0;
}

#menu .site-map .lower {
  display: block;
}

#menu .site-map .upper ul>li,
#menu .site-map .lower .tier_1>li {
  position: relative;
  padding-left: 50px;
}

#menu .site-map .upper ul>li:not(:first-child),
#menu .site-map .lower .tier_1>li {
  margin-top: 30px;
}

#menu .site-map .lower>div:first-child .tier_1>li:first-child {
  margin-top: 0;
}

#menu .site-map .upper ul>li::before,
#menu .site-map .lower .tier_1>li::before {
  font-family: 'Material Symbols Outlined';
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
  position: absolute;
  top: calc(50% - 1px);
  left: 16px;
  display: block;
  content: "arrow_forward_ios";
  font-size: 20px;
  font-weight: normal;
  transform: translateY(-50%);
}

#menu .site-map .lower .tier_2 {
  display: none;
}

#menu .site-map .sns {
  position: static;
  justify-content: center;
  border-top: 1px solid #fff;
  padding: 30px 0;
}

#menu .site-map .sns>li:not(:first-child) {
  margin-left: 24px;
}

#menu .site-map .sns img {
  width: auto;
  height: 28px;
}




/* ################################################################ */
/* main */

#recruit-lead .lead {
  font-size: 32px;
}



/*-------------------- recruit --------------------*/
#recruit #features .section-heading span {
  font-size: 20px;
}




/* ################################################################ */
/* footer */

#footer-footer {
  display: block;
  padding: 30px 20px 20px;
}

#footer-nav .links {
  display: block;
  text-align: center;
}

#footer-nav .links>li:not(:first-child) {
  margin-left: 0;
  margin-top: 15px;
}

#footer-footer .copy {
  margin-left: 0;
  margin-top: 22px;
  text-align: center;
  line-height: calc(18 / 14);
}


}





@media screen and (max-width: 839px) {

/* ################################################################ */
/* main */

#hakkutsukun_isekichan {
  display: block;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}

#hakkutsukun_isekichan .text .description {
  padding: 0 5px;
}

#hakkutsukun_isekichan .text .buttons {
  width: auto;
  max-width: 450px;
  margin: 20px auto 0;
}

#hakkutsukun_isekichan .text .buttons a {
  height: auto;
  border-radius: 8px;
  padding-top: 16px;
  padding-bottom: 14px;
  font-size: 17px;
}

#hakkutsukun_isekichan .text .buttons a:not(:first-child) {
  margin-top: 12px;
}

#hakkutsukun_isekichan .text .buttons a .account {
  display: block;
  margin-top: 9px;
  margin-left: 0;
}

#hakkutsukun_isekichan .text .buttons a::after {
  font-size: 26px;
}

#hakkutsukun_isekichan .image {
  width: auto;
  max-width: 260px;
  margin: 32px auto 0;
  animation-delay: 0s;
}



/*-------------------- index --------------------*/
#mv {
  padding-top: 96px;
}

#mv-catchcopy .main {
  text-shadow: 0px 0px 6px #000;
  font-size: 36px;
}

#mv-catchcopy .sub {
  margin-top: 15px;
  padding: 7px 30px 9px;
  font-size: 20px;
}

#mv-content {
  margin-top: 70px;
}



/*-------------------- kids --------------------*/
#kids #hakkutsukun_isekichan {
  max-width: 640px;
  margin: 0 auto;
  padding: 0 20px;
}

#kids #hakkutsukun_isekichan .image {
  margin-left: auto;
  margin-right: auto;
}



/*-------------------- recruit --------------------*/
#recruit #features .section-heading span {
  font-size: 18px;
}


}





@media screen and (max-width: 799px) {

/* ################################################################ */
/* main */

#page-navi {
  padding: 20px 0;
}

#page-navi>ul {
  display: block;
  max-width: 400px;
  padding: 0 20px;
}

#page-navi>ul>li {
  width: auto;
  margin: 0;
}

#page-navi>ul>li:not(:first-child) {
  margin-top: 10px;
}

#page-navi a {
  justify-content: flex-start;
  height: 50px;
  border-bottom: none;
  padding: 2px 24px 0;
  text-align: left;
  font-size: 16px;
  line-height: 1;
  transition: color 0.2s;
}

#page-navi a::after {
  top: 50%;
  left: auto;
  right: 20px;
  background-color: #0074be;
  width: 12px;
  height: 10px;
  transform: translateY(-50%);
}

#page-navi a:hover {
  color: rgba(68,68,68,0.6);
}

#page-navi a:hover::after {
  background-color: rgba(0,116,190,0.6);
}

#page-navi a .br_pc {
  display: none;
}



/*-------------------- business --------------------*/
#business .works.tiling-list {
  max-width: calc((300px + 20px) * 2);
}

#business .works.tiling-list>li {
  width: calc((100% / 2) - 20px);
}


}





@media screen and (max-width: 767px) {

.br_pc {
  display: none;
}

.br_sp {
  display: inline;
}

.buttons a {
  height: 44px;
  border-radius: calc(44px / 2);
  padding-top: 2px;
  text-align: left;
  font-size: 16px;
}

.buttons.download a {
  padding-top: 10px;
  padding-bottom: 6px;
}

.buttons a.arrow_forward::after {
  font-size: 20px;
}

.buttons a.pdf::after {
  width: 24px;
  height: 24px;
}




/* ################################################################ */
/* header */

header {
  min-height: 74px;
  padding-right: 0;
}

header .corp-logo {
  width: 163px;
  margin-left: 16px;
}

#header-nav {
  display: none;
}

#menu {
  top: 10px;
  right: 10px;
}

#menu .site-map {
  max-height: calc(100vh - 10px - 54px - 25px - 10px);
}




/* ################################################################ */
/* main */

#breadcrumbs {
  padding: 9px 0 7px;
}

#breadcrumbs>ul {
  max-width: none;
  margin: 0;
}


.page-heading {
  height: 130px;
}

.page-heading.thin {
  height: 100px;
}

.page-heading .en,
#index .section-heading .en,
#contact-us .section-heading .en {
  font-size: 34px;
}

.page-heading .ja,
#index .section-heading .ja,
#contact-us .section-heading .ja {
  margin-top: 15px;
  font-size: 16px;
  font-weight: 600;
}

.page-heading .ja_large,
#index .section-heading .ja_large,
#contact-us .section-heading .ja_large {
  font-size: 22px;
}

.page-contents {
  padding: 40px 0;
}


.posts.tiling-list {
  display: block;
  max-width: none;
  margin: 0;
}

#archive .archive-title+.posts.tiling-list {
  margin-top: 32px;
}

.posts.tiling-list .post {
  display: block;
  width: auto;
  margin: 0;
  border-bottom: 1px solid #ccc;
}

.posts.tiling-list .post:first-child {
  border-top: 1px solid #ccc;
}

.posts.tiling-list .post>a {
  background-color: transparent;
  display: block;
  box-shadow: none;
  padding: 12px 20px 12px;
  border-radius: 0;
}

.posts.tiling-list .post>a:hover {
  box-shadow: none;
}

.posts.tiling-list .image {
  display: none;
}

.posts.tiling-list .meta,
.posts.tiling-list .title {
  padding-left: 0;
  padding-right: 0;
}

.posts.tiling-list .meta {
  justify-content: flex-start;
  margin: -8px 0 0 -12px;
}

.posts.tiling-list .new .meta::before {
  position: static;
  box-shadow: none;
  margin-top: 8px;
  margin-left: 12px;
}

.posts.tiling-list .title {
  margin-top: 12px;
}


#single .post {
  max-width: none;
  margin: 0;
  padding: 0 20px;
  text-align: center;
}

#archive .archive-title span,
#single .post .title span,
#page .post .section-heading span {
  font-size: 22px;
}

#single .post .content {
  padding: 0 6px;
}

#single .post .content h2,
#page .post .section-contents.common h3 {
  font-size: 20px;
}

#single .post .content h3,
#page .post .section-contents.common h4 {
  font-size: 18px;
}

#single .post .content .alignleft,
#page .post .alignleft,
#single .post .content .alignright,
#page .post .alignright {
  float: none;
  margin-bottom: 0;
  margin-left: auto;
  margin-right: auto;
}

#page .post .page-contents>section {
  padding: 40px 20px;
  text-align: center;
}

#page .post .section-heading {
  padding: 0;
}

#page .post .section-heading+.section-contents {
  margin-top: 32px;
}

#page .post .section-contents+.section-contents {
  margin-top: 32px;
}

#page .post .plain {
  width: auto;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding: 0 6px;
}

#page .post .type1 {
  display: block;
}

#page .post .type1 .text,
#page .post .type1.image_left .text {
  padding: 0 6px;
}

#page .post .type1 .image {
  width: auto;
  max-width: none;
  margin-top: 32px;
  text-align: center;
}

@media screen and (max-width: 399px) {
  #page .post .type1 .image img {
    clip-path: polygon(48px 0%, 100% 0%, 100% 100%, 0% 100%, 0% 48px);
  }

  #page .post .type1.image_left .image img {
    clip-path: polygon(0% 0%, calc(100% - 48px) 0%, 100% 48px, 100% 100%, 0% 100%);
  }
}


.list_type1 {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding: 0;
}

.list_type1>div {
  display: block;
  border-bottom: 1px solid #ccc;
  padding: 12px 10px 10px;
}

.list_type1>div:first-child {
  border-top: 1px solid #ccc;
}

.list_type1>div>dt,
.list_type1>div>dd {
  padding-top: 0;
  padding-bottom: 0;
}

.list_type1>div>dt {
  position: relative;
  width: auto;
  padding-left: 10px;
  padding-right: 0;
  font-weight: 600;
}

.list_type1>div>dt::before {
  position: absolute;
  top: 1px;
  left: -3px;
  display: block;
  content: "";
  background-color: #31ae4b;
  width: 3px;
  height: 23px;
}

.list_type1>div>dd {
  margin-top: 6px;
  padding-left: 10px;
  padding-right: 0;
}

.list_type1>div>dd::before {
  display: none;
  content: normal;
}

.list_type1>div>dd.with-button {
  display: block;
}


.list_type2 {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding: 0 6px;
}

.list_type2>li:not(:last-child)::after {
  content: "\a0／\a0";
}


.list_type3 {
  width: auto;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}


.tiling-list_type1 {
  display: block;
  max-width: none;
  margin: 0;
}

.tiling-list_type1>li {
  display: block;
  margin: 20px auto 0;
}

.tiling-list_type1>li:first-child {
  margin-top: 0;
}

.tiling-list_type1 .image {
  height: auto;
}

.tiling-list_type1 .image img {
  height: auto;
}

.list-container {
  padding: 40px 15px;
}


#kids-dl-contents.tiling-list {
  display: block;
  width: auto;
  max-width: 480px;
  margin: 0 auto;
}

#kids-dl-contents.tiling-list>li {
  box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.3);
  width: auto;
  max-width: none;
  margin: 0;
  border-radius: 16px;
  padding: 16px 16px 32px;
}

#kids-dl-contents.tiling-list>li:not(:first-child) {
  margin-top: 32px;
}

#kids-dl-contents.tiling-list .nurie {
  background-position: calc(100% - 30px) calc(100% - 20px);
}

#kids-dl-contents.tiling-list .sugoroku {
  background-position: calc(100% - 25px) calc(100% - 20px);
}

#kids-dl-contents.tiling-list .text {
  margin-top: 12px;
  padding-left: 8px;
  padding-right: 8px;
}

#kids-dl-contents.tiling-list .image+.text {
  margin-top: 24px;
}

#kids-dl-contents.tiling-list .name {
  font-size: 22px;
}

#kids-dl-contents.tiling-list .description {
  margin-top: 12px;
}

#kids-dl-contents.tiling-list .buttons.download {
  align-items: center;
  text-align: center;
}

#kids-dl-contents.tiling-list .buttons.download a {
  height: 48px;
  border-radius: calc(48px / 2);
  font-size: 18px;
}


#recruit-lead .lead {
  font-size: 24px;
  line-height: 1.5;
}

#recruit-lead .recruitment-type {
  margin-top: 20px;
  border-radius: 12px;
}

#recruit-lead .recruitment-type dt,
#recruit-lead .recruitment-type dd {
  padding-top: 10px;
  padding-bottom: 8px;
}

#recruit-lead .recruitment-type dt {
  padding-left: 18px;
  padding-right: 15px;
  font-size: 16px;
}

#recruit-lead .recruitment-type dd {
  padding-left: 20px;
  padding-right: 20px;
  font-size: 18px;
}


#contact-us {
  padding-top: calc(40px + 8px);
  /* padding-bottom: 40px; */
}

#index #contact-us {
  padding-top: 40px;
}

#customer_harassment {
  padding-bottom: 40px;
}

@media screen and (max-width: 449px) {
  #contact-means.tiling-list .telephone .phone-num {
    margin-right: 0;
  }

  #contact-means.tiling-list .telephone .phone-num a {
    align-items: flex-start;
  }

  #contact-means.tiling-list .telephone .phone-num a>span {
    display: block;
  }

  #contact-means.tiling-list .telephone .phone-num .small {
    display: block;
    margin-top: 2px;
    margin-left: -8px;
    text-align: left;
  }
}

@media screen and (max-width: 359px) {
  #contact-means.tiling-list .telephone .phone-num {
    font-size: calc((38 / 360) * 100vw);
  }

  #contact-means.tiling-list .telephone .phone-num a::before {
    width: calc((34 / 360) * 100vw);
    height: calc((34 / 360) * 100vw);
    margin-bottom: calc((4 / 360) * 100vw);
    margin-right: calc((15 / 360) * 100vw);
  }

  #contact-means.tiling-list .telephone .phone-num .small {
    font-size: calc((20 / 360) * 100vw);
  }
}

@media screen and (max-width: 359px) {
  #contact-means.tiling-list .telephone .reception-hours {
    display: inline-block;
    padding: 0 5px;
  }

  #contact-means.tiling-list .telephone .reception-hours>dt,
  #contact-means.tiling-list .telephone .reception-hours>dd {
    padding: 16px 30px 12px;
  }

  #contact-means.tiling-list .telephone .reception-hours>dt {
    display: block;
  }

  #contact-means.tiling-list .telephone .reception-hours>dd {
    border-left: none;
    border-top: 2px solid #ccc;
  }
}




/*-------------------- index --------------------*/
#index main>section:not(#contact-us) {
  padding-top: 40px;
  padding-bottom: 40px;
}

#mv {
  padding: 74px 0 48px;
}


#mv-catchcopy .main {
  text-shadow: 0px 0px 4px #000;
  font-size: 24px;
}

@media screen and (max-width: 419px) {
  #mv-catchcopy .main {
    font-size: calc((24 / 420) * 100vw);
  }
}

#mv-catchcopy .sub {
  margin-top: 10px;
  padding: 7px 30px 9px;
  font-size: 18px;
}

@media screen and (max-width: 349px) {
  #mv-catchcopy .sub {
    padding-left: 20px;
    padding-right: 20px;
  }
}

#mv-content {
  width: calc(100vw - 30px);
  max-width: 480px;
  margin: 50px auto 0;
}

#mv-content .upper {
  padding: 22px 15px;
}

#mv-content .selling-point {
  font-size: 13px;
}

#mv-content .selling-point>li {
  flex-direction: column;
  justify-content: flex-end;
  width: 50%;
  height: auto;
  padding: 10px 0 20px;
  text-align: center;
}

#mv-content .selling-point>li:nth-child(-n+3)::before,
#mv-content .selling-point>li:nth-child(3n+1)::before {
  content: normal;
}

#mv-content .selling-point::before,
#mv-content .selling-point::after,
#mv-content .selling-point>li:nth-child(-n+2)::before,
#mv-content .selling-point>li:nth-child(2n+1)::before,
#mv-content .selling-point>li::after {
  position: absolute;
  display: block;
  content: "";
  background: url(images/tombo.svg) no-repeat center center / 48px auto;
  width: 34px;
  height: 34px;
}

#mv-content .selling-point::before {
  bottom: 0;
  left: 0;
  transform: translate(-50%, 50%);
}
#mv-content .selling-point::after {
  top: 0;
  right: 0;
  transform: translate(50%, -50%);
}
#mv-content .selling-point>li:nth-child(-n+2)::before,
#mv-content .selling-point>li:nth-child(2n+1)::before {
  top: 0;
  left: 0;
  transform: translate(-50%, -50%);
}
#mv-content .selling-point>li::after {
  bottom: 0;
  right: 0;
  transform: translate(50%, 50%);
}

#mv-content .selling-point img {
  margin-bottom: 9px;
  margin-right: 0;
}

#mv-content .selling-point>li:nth-child(1) img {width: 60px;}
#mv-content .selling-point>li:nth-child(2) img {width: 52px;}
#mv-content .selling-point>li:nth-child(3) img {width: 56px;}
#mv-content .selling-point>li:nth-child(4) img {width: 54px;}
#mv-content .selling-point>li:nth-child(5) img {width: 55px;}
#mv-content .selling-point>li:nth-child(6) img {width: 57px;}

#mv-content .lower {
  padding: 40px 0 40px;
}

#mv-content .services .section-heading .en {
  font-size: 28px;
}

#mv-content .services .bubbles {
  display: block;
  margin-top: 32px;
  padding: 0 20px;
}

#mv-content .services .bubbles>li {
  box-shadow: 0px 0px 4px 0px rgba(0,0,0,0.8);
  width: auto;
  max-width: 400px;
  height: 70px;
  margin: 0 auto;
  border-radius: 4px;
  text-align: center;
  font-size: 18px;
}

#mv-content .services .bubbles>li:not(:first-child) {
  margin-top: 20px;
}

#mv-content .services .bubbles>li:nth-child(1) {
  background-position: calc((83 / (1035 - 640)) * 100%) calc((298 / (689 - 140)) * 100%);
  background-size: calc((1035 / 640) * 100%) auto;
}
#mv-content .services .bubbles>li:nth-child(2) {
  background-position: calc((108 / (878 - 640)) * 100%) calc((160 / (495 - 140)) * 100%);
  background-size: calc((878 / 640) * 100%) auto;
}
#mv-content .services .bubbles>li:nth-child(3) {
  background-position: calc((15 / (689 - 640)) * 100%) calc((479 / (918 - 140)) * 100%);
  background-size: calc((689 / 640) * 100%) auto;
}

#mv-content .services .buttons.more {
  margin-top: 24px;
}


#index-information .posts.tiling-list {
  margin-top: 32px;
}

#index-information .buttons.more {
  margin-top: 32px;
}


#index-project .slide-container {
  margin-top: 32px;
}

#index-project .slide {
  width: 150px;
  margin-left: 4px;
}

#index-project .slide img {
  height: 150px;
}

#index-project .buttons.more {
  margin-top: 32px;
}

#medias-contents {
  display: block;
  width: calc(100vw - 20px);
  max-width: 480px;
  margin-top: 32px;
}

#medias-contents .twitter {
  display: block;
  width: auto;
  padding: 24px 24px 48px;
}

#medias-contents .twitter .icon {
  width: 60px;
  height: 60px;
}

#medias-contents .twitter .icon img {
  width: 28px;
}

#medias-contents #hakkutsukun_isekichan {
  margin-top: 14px;
}

#medias-contents .banner {
  width: auto;
  max-width: 480px;
  margin: 20px auto 0;
}


#index-kids {
  box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.5) inset;
}

#index-kids #kids-dl-contents.tiling-list {
  width: calc(100vw - 20px);
  margin-top: 32px;
}

#index-kids .buttons.more {
  margin-top: 32px;
}


#recruit-contents {
  width: calc(100vw - 20px);
  max-width: 480px;
  margin-top: 32px;
  padding: 27px 20px 32px;
}

#index-recruit .buttons.more {
  margin-top: 32px;
}



/*-------------------- information --------------------*/
#information .page-heading {
  background-image: url(images/page_heading_bg_1.jpg);
}

#information .posts.tiling-list {
  max-width: none;
}

#information .posts.tiling-list .post {
  width: auto;
}



/*-------------------- project --------------------*/
#project .page-heading {
  background-image: url(images/page_heading_bg_2.jpg);
}

#project .movie {
  margin-top: -40px;
  margin-bottom: 32px;
  padding: 32px 0;
}

#project .movie .inner {
  max-width: none;
}

#project .posts-lead,
#project .posts {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

#project .posts-lead {
  padding: 0 26px 32px;
  text-align: left;
}

#project .posts .post {
  padding: 20px 16px 10px 10px;
}

#project .posts .image {
  width: calc(100vw / 4);
  max-width: 120px;
  min-width: 90px;
}

#project .posts .container {
  flex-grow: 1;
  display: block;
}

#project .posts .buttons {
  margin-top: 16px;
  margin-left: 0;
}

#project #single .post .title,
#project #single .post .eyecatch,
#project #single .post .content {
  max-width: none;
}

#project #single .post .eyecatch,
#project #single .post .content {
  margin-left: 0;
  margin-right: 0;
}

#project #single .project-meta .list {
  margin-left: -20px;
  margin-right: -20px;
}

#project #single .project-meta .list>dl {
  max-width: none;
  margin: 0;
}

#project #single .project-meta .list>dl>div>dt {
  padding-left: 26px;
  padding-right: 3em;
}

#project #single .project-meta .list>dl>div>dd {
  padding-right: 26px;
}

#project #single .project-meta .buttons {
  max-width: none;
  margin: 32px 0 0;
  padding: 0 6px;
}




/*-------------------- company --------------------*/
#company .page-heading {
  background-image: url(images/page_heading_bg_3.jpg);
}

#company .slide-container {
  margin-left: -20px;
  margin-right: -20px;
}

#company .slide {
  margin-left: 2px;
}

#company .slide img {
  height: 180px;
}

#company .list_type1 .buttons {
  margin-top: 8px;
  margin-left: 0;
  padding-bottom: 6px;
  text-align: right;
}




/*-------------------- business --------------------*/
#business .page-heading {
  background-image: url(images/page_heading_bg_4.jpg);
}

#business .works.tiling-list {
  justify-content: space-between;
  width: auto;
  max-width: calc((300px + 20px) * 2);
}

#business .works.tiling-list>li {
  width: calc((100% / 2) - 10px);
  margin-left: 0;
  margin-right: 0;
}

@media screen and (max-width: 599px) {
  #business .works.tiling-list {
    display: block;
    max-width: 300px;
    margin-top: 0;
  }

  #business .works.tiling-list>li {
    width: auto;
  }

  #business .works.tiling-list>li:first-child {
    margin-top: 0;
  }

}




/*-------------------- survey --------------------*/
#survey .page-heading {
  background-image: url(images/page_heading_bg_5.jpg);
}

#survey-flow {
  width: auto;
  max-width: none;
  margin: 0;
}

#survey-flow .heading {
  width: 5em;
}

#survey-flow .list dd {
  display: block;
  margin-top: 16px;
}

#survey-flow .list dd .text {
  margin-top: 16px;
  margin-left: 0;
}

@media screen and (max-width: 479px) {
  #survey-flow .heading {
    width: auto;
    margin-top: -6px;
    padding-top: 10px;
    padding-bottom: 12px;
    padding-left: 10px;
    padding-right: calc(11px + 16px);
    clip-path: polygon(0% 0%, calc(100% - 16px) 0%, calc(100% - 16px) 12px, 100% 22px, calc(100% - 16px) 32px, calc(100% - 16px) 100%, 0% 100%);
    writing-mode: vertical-rl;
  }
}





/*-------------------- facility --------------------*/
#facility .page-heading {
  background-image: url(images/page_heading_bg_6.jpg);
}




/*-------------------- kids --------------------*/
#kids .page-heading {
  background-image: url(images/page_heading_bg_7.jpg);
}

#kids #hakkutsukun_isekichan {
  max-width: none;
  margin: 0;
  padding: 0;
}

#kids .posts.tiling-list {
  margin-top: 0;
}




/*-------------------- recruit --------------------*/
#recruit .page-heading {
  background-image: url(images/page_heading_bg_8.jpg);
}

#recruit #recruit-lead {
  padding: 24px 20px 32px;
}

#recruit #features {
  display: block;
  width: auto;
  max-width: 480px;
  margin-top: -50px;
}

#recruit #features>li {
  width: auto;
  margin-top: 50px;
}

#recruit #features .section-heading span {
  font-size: 24px;
}

#recruit #section_2 .lead {
  max-width: 480px;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

#recruit .recruit-buttons {
  margin-top: 20px;
}




/*-------------------- privacy --------------------*/
#privacy .description-list .list_type1>div>dt {
  width: auto;
}




/*-------------------- kiyaku --------------------*/




/*-------------------- actionplan --------------------*/




/*-------------------- format --------------------*/
#format .description-list>div>dd {
  display: block;
}

#format .description-list>div>dd .image {
  width: auto;
  margin: 32px auto 0;
}




/*-------------------- group --------------------*/
#group .page-heading .logo {
  width: 48px;
}


#group .group-link .br_sp {
  display: none;
}

@media screen and (max-width: 479px) {
  #group .group-link {
    text-align: center;
  }

  #group .buttons.group-link a {
    border-radius: calc(62px / 2);
  }

  #group .group-link .br_sp {
    display: inline;
  }
}

#group .company-link {
  margin-left: 0;
  text-align: right;
}

#group .core-company {
  display: block;
}

#group .core-company .company-link {
  margin-top: 16px;
}

#group .group-companies>div>dt,
#group .group-companies>div>dd {
  padding-top: 0;
  padding-bottom: 0;
}

#group .group-companies>div>dt {
  width: auto;
}

#group .group-companies>div>dd {
  display: block;
}

#group .group-companies>div>dd::before {
  top: 17px;
}

#group .group-companies>div>dd .company-link {
  margin-top: 16px;
  margin-bottom: 0;
  margin-right: -12px;
  padding-bottom: 6px;
}




/* ################################################################ */
/* footer */

footer .takamatsu-cg .banner .text>dt {
  font-size: 20px;
}

footer .takamatsu-cg .banner .text>dd {
  font-size: 12px;
}

@media screen and (max-width: 419px) {
  footer .takamatsu-cg .banner {
    padding: 0 calc((50 / 420) * 100vw) 0 calc((15 / 420) * 100vw);
  }

  footer .takamatsu-cg .banner::after {
    right: calc((10 / 420) * 100vw);
    font-size: calc((32 / 420) * 100vw);
  }

  footer .takamatsu-cg .banner .group-logo {
    max-width: calc((250 / 420) * 100vw);
    padding: calc((25 / 420) * 100vw) 0 calc((15 / 420) * 100vw);
  }

  footer .takamatsu-cg .banner .text {
    border-top: calc((2 / 420) * 100vw) solid #007769;
    padding: calc((16 / 420) * 100vw) calc((8 / 420) * 100vw);
  }

  footer .takamatsu-cg .banner .text>dt {
    font-size: calc((20 / 420) * 100vw);
  }

  footer .takamatsu-cg .banner .text>dd {
    margin-top: calc((12 / 420) * 100vw);
    font-size: calc((12 / 420) * 100vw);
  }
}

footer .takamatsu-cg .banner_expo2025 {
  width: calc((380 / 420) * 100vw);
  max-width: 380px;
  border-radius: calc((8 / 625) * 380px);
}

#footer-main {
  padding: 50px 15px 60px;
}

#footer-menu {
  display: block;
  max-width: none;
}

#footer-menu .coap-logo {
  width: 180px;
  margin: 0 auto;
}

#footer-menu .site-map {
  display: flex;
  flex-direction: column;
  width: auto;
  max-width: none;
  margin-left: 0;
}

#footer-menu .site-map .upper {order: 1;}
#footer-menu .site-map .lower {order: 2;}
#footer-menu .site-map .sns {order: 0;}

#footer-menu .site-map .upper,
#footer-menu .site-map .lower {
  padding-left: 28px;
  padding-right: 28px;
}

#footer-menu .site-map .upper {
  margin-top: 36px;
  padding-bottom: 28px;
}

#footer-menu .site-map .upper ul {
  flex-wrap: wrap;
  margin: 0 -24px;
}

#footer-menu .site-map .upper ul>li {
  margin: 24px 24px 0;
}

#footer-menu .site-map .upper ul>li:not(:first-child) {
  margin-left: 24px;
}

#footer-menu .site-map .lower {
  display: block;
  padding-top: 32px;
}

#footer-menu .site-map .lower>div {
  width: auto;
  margin-top: 0;
}

#footer-menu .site-map .lower>div:not(:last-child) {
  padding-bottom: 16px;
}

#footer-menu .site-map .lower .tier_1>li {
  margin-top: 32px;
}

#footer-menu .site-map .lower>div:first-child .tier_1>li:first-child {
  margin-top: 0;
}

#footer-menu .site-map .lower .tier_2 {
  margin-top: 24px;
}

#footer-menu .site-map .sns {
  position: static;
  justify-content: center;
  margin-top: 25px;
}


}
