@charset "utf-8";

/*
* fontawesomeセット
* content:'\○○○';
* font: var(--fa-font-solid);
*/


body {
  font-family: "Noto Serif JP";
  letter-spacing: 0.05em;
}

body.noscroll {
  overflow: hidden;
}

main {
  padding-top: 75px;
  overflow: clip;
}

.flex {
  display: flex;
}

.grid {
  display: grid;
}

.w126 {
  width: 100%;
  max-width: 1260px;
  position: relative;
  margin: 0 auto;
}

@media screen and (max-width:1300px) {
  .w126 {
    padding: 0 4%;
  }
}

/*=====================================
*
*header
*
=======================================*/
header {
  position: fixed;
  z-index: 9999;
  width: 100%;
  height: 75px;
  background-color: #fff;
}

header .header-inner {
  align-items: center;
  justify-content: space-between;
  height: 100%;
}

header .logo {
  max-width: 223px;
}

header .menu_area ul {
  display: flex;
  gap: 25px;
}

header .menu_area ul li a {
  position: relative;
  font-size: 16px;
  font-weight: 500;
  color: #000;
  transition: 0.3s;
}

@media (any-hover:hover) {
  header .menu_area ul li a:hover {
    opacity: 0.75;
  }
}

/*ハンバーガーメニュー*/
@media screen and (max-width:1024px) {
  header .sp_btn {
    display: flex !important;
    align-items: center;
    position: fixed;
    right: 4%;
    z-index: 9999;
    display: block;
    width: clamp(30px, 3.91vw, 40px);
    height: 40px;
  }

  header .sp_btn span {
    position: relative;
    display: inline-block;
    width: 100%;
    height: 0.8px;
    background-color: #000;
    transition: 0.3s ease-out;
  }

  header .sp_btn.open span {
    background-color: #fff;
  }

  header .sp_btn span::before {
    content: "";
    display: block;
    position: absolute;
    top: -5px;
    height: 1px;
    width: 100%;
    background-color: #000;
    transition: 0.3s ease-out;
  }

  header .sp_btn span::after {
    content: "";
    display: block;
    position: absolute;
    bottom: -5px;
    height: 1px;
    width: 100%;
    background-color: #000;
    transition: 0.3s ease-out;
  }

  header .sp_btn.open span:before {
    rotate: 10deg;
    transform: translateY(5px);
  }

  header .sp_btn.open span:after {
    rotate: -10deg;
    transform: translateY(-5px);
  }

  header .menu_area {
    display: flex;
    align-items: center;
    position: fixed;
    z-index: 9998;
    top: 0;
    right: 0;
    width: 0;
    height: 100lvh;
    padding: 30px 0 0 15px;
    transition: 0.5s ease-out;
    background: #fff;
    opacity: 0;
  }

  header .menu_area.open {
    width: 45vw;
    right: 0;
    opacity: 1.0;
    transition: 0.5s ease-out;
  }


  header .menu_area ul {
    flex-wrap: wrap;
    opacity: 0;
    transition: 0.3s ease-out;
  }

  header .menu_area.open ul {
    opacity: 1.0;
  }

  header .menu_area ul li {
    width: 100%;
    text-align: center;
  }

  header .menu_area ul li+li {
    margin-top: 20px;
  }

  header .menu_area ul li a {
    font-size: 18px;
  }

  header .sp-menu_bg {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 9997;
    width: 100%;
    height: 100lvh;
    opacity: 0;
    transition: 0.3s ease-out;
    pointer-events: none;
  }

  header .sp-menu_bg.open {
    opacity: 0.35;
    background: #000;
    pointer-events: initial;
  }
}

@media screen and (max-width:600px) {
  header .logo {
    max-width: 180px;
  }
	
  header .menu_area {
    width: 0;
    transition: 0.2s ease-out;
  }

  header .menu_area.open {
    width: 80vw;
    transition: 0.2s ease-out;
  }

  header .menu_area ul {
    transition: 0.1s ease-out;
  }
}

/*=====================================
*
*共通
*
=======================================*/
/*ボタン01*/
.btn01 {
  width: fit-content;
  margin-left: auto;
  margin-top: 40px;
}

.btn01 a {
  align-items: center;
  gap: 15px;
  color: #333;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.1em;
  transition: 0.3s;
}

@media(any-hover:hover) {
  .btn01 a:hover {
    opacity: 0.75;
  }
}

@media screen and (max-width:767px) {
  .btn01 a {
    gap: 5px;
  }

  .btn01 img {
    scale: 0.75;
  }
}

/*見出し01*/
.heading_area .hd01 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 35px;
}

.heading_area .hd01 .deco {
  position: relative;
  width: 35px;
  height: 34px;
}

.heading_area .hd01 .deco span {
  position: absolute;
  display: inline-block;
  width: 24px;
  height: 24px;
  border: solid 2px #102C29;
  border-radius: 50%;
}

.heading_area .hd01 .deco span:nth-of-type(1) {
  top: 0;
  left: 0;
}

.heading_area .hd01 .deco span:nth-of-type(2) {
  right: 0;
  bottom: 0;
  border-color: #CEB98E;
}

.heading_area .hd01 :is(h2, h3, h4, h5, h6) {
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.1em;
}


/*=====================================
*mv
=======================================*/
.mv {
  padding: 70px 0;
  background-image: url(../images/top/mv-bg.webp);
  background-size: cover;
}

.mv .mv-text {
  text-align: center;
}

.mv .mv-text .mv-logo {
  max-width: clamp(450px, 29.32vw, 563px);
  margin: 0 auto 9px;
}

.mv .mv-text .mv_hd h1 {
  font-size: clamp(30px, 2.6vw, 50px);
  font-weight: 600;
  line-height: calc(72 / 50);
  margin-bottom: 12px;
}

.mv .mv-text .mv_hd p.sub {
  font-size: clamp(18px, 1.35vw, 26px);
  font-weight: 600;
  line-height: calc(50 / 26);
  margin-bottom: 29.5px;
}

.mv .mv-text>p {
  font-size: clamp(15px, 0.94vw, 18px);
  font-weight: 500;
}

.mv .mv-text :is(h1, p) {
  color: #172B32;
  letter-spacing: 0.05em;
}

@media screen and (max-width:1024px) {
  .mv {
    padding: 50px 0;
  }
}

@media screen and (max-width:767px) {
  .mv .mv-text .mv-logo {
    width: 85%;
  }

  .mv .mv-text .mv_hd h1 {
    font-size: clamp(25px, 2.6vw, 50px);
  }

  .mv .mv-text .mv_hd p.sub {
    font-size: clamp(16px, 1.35vw, 26px);
  }

  .mv .mv-text>p {
    font-size: clamp(13px, 0.94vw, 18px);
  }
}

/*=====================================
*
*front
*
=======================================*/
/*=====================================
*news
=======================================*/
#front .news_list {
  padding: 60px 0 80px;
}

#front .news_list li+li {
  margin-top: 15px;
}

#front .news_list li a {
  align-items: center;
  gap: 30px;
  font-size: 16px;
  font-weight: 400;
  color: #333;
  letter-spacing: 0.05em;
  transition: 0.3s;
}

@media (any-hover) {
  #front .news_list li a:hover {
    opacity: 0.75;
    color: #102C29;
  }
}

#front .news_list li time {
  align-items: center;
  gap: 12px;
}

#front .news_list li time .deco {
  display: inline-block;
  width: 18px;
  height: 2px;
  background-color: #102C29;
}

#front .news_list li a h3 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
}

/*sp*/
@media screen and (max-width:600px) {
  #front .news_list li+li {
    margin-top: 30px;
  }

  #front .news_list li a {
    flex-wrap: wrap;
    gap: 5px;
  }

  #front .news_list li a>* {
    width: 100%;
  }

  #front .news_list li a h3 {
    -webkit-line-clamp: 2;
  }
}

/*=====================================
*about
=======================================*/
#front .about {
  padding: 60px 0;
  background-image: url(../images/top/about/about-bg.jpg);
  background-size: cover;
}

#front .about .contents {
  position: relative;
  z-index: 1;
}

#front .about .text p {
  font-weight: 400;
  font-size: 18px;
  letter-spacing: 0.05em;
  line-height: calc(50 / 18);
  margin: -16px 0;
}

#front .about .contents .deco {
  position: absolute;
  bottom: 18px;
  right: calc(clamp(100px, 11.98vw, 230px)*-1);
  z-index: -1;
  width: clamp(200px, 21.56vw, 414px);
}

@media screen and (max-width:1650px) {
  #front .about .contents .deco {
    right: -3.0vw;
  }
}

/*tb*/
@media screen and (max-width:1024px) {
  #front .about .contents .deco {
    width: clamp(250px, 21.56vw, 414px);
    right: 0;
  }
}

/*=====================================
*company
=======================================*/
#front .company {
  padding: 60px 0;
  background-image: url(../images/top/company/company-bg.jpg);
  background-size: cover;
}

#front .company .company-table {
  padding: 0 50px;
}

#front .company .company-table .table-contents+.table-contents {
  margin-top: 25px;
}

#front .company .company-table .table-contents>* {
  font-size: clamp(16px, 0.94vw, 18px);
  font-weight: 500;
  color: #000;
  letter-spacing: 0.05em;
  line-height: 1.0;
  padding-bottom: 15px;
}

#front .company .company-table h3 {
  width: 123px;
  text-align: center;
  border-bottom: 2px solid #102C29;
}

#front .company .company-table p {
  width: calc(100% - 123px);
  padding-left: 30px;
  padding-right: 30px;
  border-bottom: 2px solid #CEB98E;
}

/*tb*/
@media screen and (max-width:1024px) {
  #front .company .company-table {
    padding: 0;
  }

  #front .company .company-table .table-contents>* {
    font-size: 16px;
  }

  #front .company .company-table p {
    padding-left: 20px;
    padding-right: 20px;
  }
}

@media screen and (max-width:850px) {
  #front .company .company-table .table-contents>* {
    font-size: 14px;
  }

  #front .company .company-table p {
    padding-left: 15px;
    padding-right: 15px;
  }
}

/*sp*/
@media screen and (max-width:767px) {
  #front .company .company-table .table-contents {
    flex-wrap: wrap;
  }
	
  #front .company .company-table .table-contents+.table-contents {
    margin-top: 30px;
  }

  #front .company .company-table .table-contents>* {
    font-size: 16px;
    line-height: 1.5;
    padding-bottom: 6px;
  }

  #front .company .company-table h3 {
    width: 100px;
    padding-left: 10px;
    padding-right: 10px;
  }

  #front .company .company-table p {
    width: 100%;
    margin-top: 22px;
    padding-left: 10px;
    padding-right: 10px;
  }

}

/*=====================================
*product
=======================================*/
.product {
  padding: 60px 0 80px;
}

.product .ec-link_area .ec-link{
  width:75%;
  margin:auto;
}

.product .ec-link_area .ec-link > *{
  display:flex;
  align-items:center;
  gap:50px;
}

.product .ec-link_area .ec-link a{
  transition: 0.3s ease-out;
}

@media (any-hover:hover) {
  .product .ec-link_area .ec-link a:hover {
    opacity: 0.75;
  }
}

.product .ec-link_area .ec-link figure {
  position: relative;
  width: 50%;
  height: 0;
  padding-bottom: calc((100 / 292) * 100%);
}

.product .ec-link_area .ec-link figure img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%!important;
  height: 100%!important;
  object-fit: cover;
  border:solid 1px #ececec;
}

.product .ec-link_area .ec-link .ec-text_area{
  width:calc(50% - 50px);
}

.product .ec-link_area .ec-link h3 {
    position:relative;
    font-weight: 400;
    font-size: 20px;
    color: #333;
    letter-spacing: 0.1em;
    line-height: 2.0;
    margin-bottom: 30px;
}

.product .ec-link_area .ec-link h3:after {
    content: "";
    position: absolute;
    bottom: -8px;
    width: 17%;
    height: 2px;
    left: 0;
    background-color: #333;
}

.product .ec-link_area .ec-link .ec-link_btn{
  text-align:end;
  margin-top:25px;
}

.product .ec-link_area .ec-link .ec-link_btn a{
    display:flex;
    align-items: center;
    justify-content:end;
    gap: 15px;
    color: #333;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.1em;
    margin-top:25px;
    transition: 0.3s;
}

.product .ec-link_area .ec-link .ec-link_btn a:after{
   content: "";
   display:block;
   width:40px;
   height:40px;
   background-image: url(../images/btn/btn-img01.svg);
   background-size: cover;
}

/*tb*/
@media screen and (max-width:1024px) {
  .product .ec-link_area .ec-link{
    width:100%;
  }
	
  .product .ec-link_area .ec-link > *{
    gap:25px;
  }
	
  .product .ec-link_area .ec-link .ec-text_area{
    width:calc(50% - 25px);
  }
}

/*sp*/
@media screen and (max-width:767px) {
  .product .ec-link_area .ec-link > *{
    flex-wrap:wrap;
  }
	
  .product .ec-link_area .ec-link h3 {
	 text-align:center;
  }
	
  .product .ec-link_area .ec-link h3:after {
	left:50%;
    transform: translate(-50%,0);
  }
	
  .product .ec-link_area .ec-link .ec-link_btn a {
    gap: 5px;
  }

  .product .ec-link_area .ec-link .ec-link_btn a:after{
    scale: 0.75;
  }
}

@media screen and (min-width:540px) and (max-width:767px) {
  .product .ec-link_area .ec-link :is(figure,.ec-text_area){
    width: 70%;
	margin:auto;
  }
	
  .product .ec-link_area .ec-link figure {
	padding-bottom: 60%;
  }
}

@media screen and (max-width:539px) {
  .product .ec-link_area .ec-link :is(figure,.ec-text_area){
    width: 100%;
  }
	
  .product .ec-link_area .ec-link figure {
	padding-bottom: 100%;
  }
}

/*=====================================
*cta
=======================================*/
.cta {
  padding: 70px 0;
  text-align: center;
  background-image: url(../images/cta/cta-bg.jpg);
  background-size: cover;
}

.cta .heading_area {
  margin-bottom: 40px;
}

.cta h2 {
  font-size: 25px;
  font-weight: 600;
  color: #000;
  letter-spacing: 0.1em;
  margin: -6.25px 0;
}

.cta .cta_btn {
  width: 345px;
  height: 75px;
  margin: auto;
  background-color: #FCFAF3;
  transition: 0.3s ease-out;
}

@media (any-hover:hover) {
  .cta .cta_btn:hover {
    opacity: 0.75;
  }
}

.cta .cta_btn a {
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-size: 20px;
  font-weight: 600;
  color: #000;
  letter-spacing: 0.1em;
  margin: -5px 0;
}

/*sp*/
@media screen and (max-width:767px) {
  .cta h2 {
    font-size: 20px;
    margin: -5px 0;
  }

  .cta .cta_btn {
    width: 300px;
    height: 70px;
  }

  .cta .heading_area {
    margin-bottom: 30px;
  }

  .cta .cta_btn a {
    font-size: 18px;
    margin: -3px 0;
  }
}


/*=====================================
*
*下層共通
*
=======================================*/
.under-btn01 {
  width: 100%;
  text-align: center;
  margin-top: 50px !important;
}

.under-btn01 a {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  font-weight: 500;
  font-family: 'Noto Serif JP';
  width: 198px;
  height: 48px;
  border: none;
  color: #fff;
  margin: auto;
  padding: 0;
  border: 1px solid #333;
  background-color: #333;
  transition: 0.3s ease-out;
  cursor: pointer;
  border-radius: 0;
}

@media (any-hover:hover) {
  .under-btn01 a:hover {
    color: #333;
    background: #fff;
  }
}

/*下層ヘッダー*/
.under-header {
  padding-top: 50.5px;
  padding-bottom: 50.5px;
  background-image: url(../images/under/under-header.jpg);
  background-size: cover;
}

.under-header .heading_area h1 {
  position: relative;
  font-size: 38px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #333;
  padding-bottom: 25.5px;
}

.under-header .heading_area h1:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 90px;
  height: 2px;
  background-color: #102C29;
}

.under-header .heading_area p {
  font-size: 18px;
  letter-spacing: 0.05em;
  margin-top: 45.5px;
}

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

  .under-header .heading_area h1 {
    font-size: 25px;
    padding-bottom: 16px;
  }
	
  .under-header .heading_area h1:after {
    width: 60px;
  }

  .under-header .heading_area p {
    font-size: 16px;
    margin-top: 28.5px;
  }
}


.contents .under-contents {
  position: relative;
  z-index: 1;
  padding: 100px 0;
  background-image: url(../images/under/under-bg.jpg);
  background-size: cover;
  overflow: hidden;
}

.under-contents:before,
.under-contents:after {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
}

.contents .under-contents:before {
  right: -23.13vw;
  top: -11.09vw;
  background-image: url(../images/under/under-deco1.png);
  background-size: cover;
  width: clamp(424px, 44.17vw, 848px);
  height: clamp(228.5px, 23.8vw, 457px);
}

.contents .under-contents:after {
  left: -21.46vw;
  bottom: -11.15vw;
  background-image: url(../images/under/under-deco2.png);
  background-size: cover;
  width: clamp(442.5px, 46.09vw, 885px);
  height: clamp(238.5px, 24.84vw, 477px);
}

/*=====================================
*
*single
*
=======================================*/
#single .contents nav.breadcrumb :is(ul, ol) {
  border: none;
  background: transparent;
  padding: 0;
}

#single .contents nav.breadcrumb :is(ul, ol) li::before {
  content: none;
}

#single .contents nav.breadcrumb :is(ul, ol) li {
  margin: 0;
}

#single .contents .img_area {
    position: relative;
    margin-top: 75px;
    margin-bottom: 50px;
    text-align: center;
    height: 550px;
}

#single .contents .img_area img{
    position: absolute;
    left: 0px;
    top: 0;
    object-fit: cover;
    width: 100%;
    height: 100%;
}

#single .contents nav.breadcrumb+p {
  margin-top: 75px;
}

#single .contents p {
  font-size: 18px;
  letter-spacing: 0.05em;
  line-height: 2.0;
}

#single .contents {
  padding-bottom: 50px;
  border-bottom: 1px solid #ddd;
}

#single .page_pn {
  margin-top: 20px;
  margin-bottom: 50px;
}
#single .page_pn ol{
  justify-content:end;
}

#single .page_pn ol li{
  width:calc(100% / 3)
}

#single .page_pn ol li.back{
  text-align:center;
}

#single .page_pn li.prev {
  text-align:end;
}

#single .page_pn :is(.next,.back, .prev) a {
  color: #333;
  letter-spacing: 0.05em;
}

/*sp*/
@media screen and (max-width:767px) {
  #single .contents .img_area {
	height: 300px;
    margin-top: 45px;
  }

  #single .contents nav.breadcrumb+p {
    margin-top: 45px;
  }

  #single .contents p {
    font-size: 16px;
  }

}

/*=====================================
*
*page
*
=======================================*/

#page .contents h2.under-hd01 {
  font-size: clamp(25px, 1.67vw, 32px);
  font-weight: 600;
  line-height: calc(46 / 32);
  color: #333;
  letter-spacing: 0.05em;
  margin-bottom: 48px;
}

#page .contents .text-only {
  font-size: clamp(20px, 1.25vw, 24px);
  line-height: calc(63 / 24);
  color: #333;
  margin-top: -7.5px;
}

@media screen and (max-width:767px) {
  #page .contents .under-contents {
    padding: 75px 0;
  }

  #page .contents h2.under-hd01 {
    font-size: clamp(22px, 1.67vw, 32px);
    margin-bottom: 35px;
  }

  #page .contents .text-only {
    font-size: 18px;
  }
}

#page .service-table {
  padding: 0 50px;
}

#page .service-table .table-cell>div {
  display: flex;

}

#page .service-table .table-cell+.table-cell {
  margin-top: 25px;
}

#page .service-table .table-cell :is(h3, p) {
  font-size: clamp(16px, 0.94vw, 18px);
  font-weight: 500;
  color: #000;
  letter-spacing: 0.05em;
  line-height: 1.0;
  padding-bottom: 15px;
}

#page .service-table .table-cell h3 {
  width: 123px;
  text-align: center;
  border-bottom: 2px solid #102C29;
}

#page .service-table .table-cell p {
  width: calc(100% - 123px);
  padding-left: 30px;
  padding-right: 30px;
  border-bottom: 2px solid #CEB98E;
}

/*tb*/
@media screen and (max-width:1024px) {
  #page .service-table {
    padding: 0;
  }

  #page .service-table .table-cell :is(h3, p) {
    font-size: 16px;
  }

  #page .service-table .table-cell p {
    padding-left: 20px;
    padding-right: 20px;
  }
}

@media screen and (max-width:850px) {
  #page .service-table .table-cell :is(h3, p) {
    font-size: 14px;
  }

  #page .service-table .table-cell p {
    padding-left: 15px;
    padding-right: 15px;
  }
}

/*sp*/
@media screen and (max-width:767px) {
  #page .service-table .table-cell>div {
    flex-wrap: wrap;
  }

  #page .service-table .table-cell+.table-cell {
    margin-top: 30px;
  }

  #page .service-table .table-cell :is(h3, p) {
    font-size: 16px;
    line-height: 1.5;
    padding-bottom: 6px;
  }

  #page .service-table .table-cell h3 {
    width: 100px;
    text-align: start;
    padding-left: 10px;
    padding-right: 10px;
  }

  #page .service-table .table-cell p {
    width: 100%;
    margin-top: 22px;
    padding-left: 10px;
    padding-right: 10px;
  }

}

/*お問い合わせ*/
#page .contents .contact_text-only {
  font-size: 18px;
  line-height: 2.0;
  color: #333;
  margin-top: -9px;
}

#page .contents .contact_area {
  margin-top: 35px;
  padding: 0 100px;
}

@media screen and (max-width:1300px) {
  #page .contents .contact_area {
    padding: 0;
  }
}

#page .contents .contact_area .form-row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 30px;
}

#page .contents .contact_area .form-row p:first-of-type {
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.05em;
}

#page .contents .contact_area .form-row:nth-last-of-type(3) p:first-of-type {
  padding-top: 20px;
}

#page .contents .contact_area :not(.form-row:nth-last-of-type(3)) {
  align-items: center;
}

#page .contents .contact_area .form-row+.form-row {
  margin-top: 20px;
}

#page .contents .contact_area .form-row p:first-of-type {
  grid-column: 1 / 2;
}

#page .contents .contact_area .form-row p:last-of-type {
  grid-column: 2 / 6;
}

#page .contents .contact_area .form-row p :is(input, textarea) {
  width: 100%;
  font-family: "Noto Serif JP";
  font-size: 17px;
  color: #333;
  padding: 10px 8px;
  border: none;
}

#page .contents .contact_area .form-row p textarea {
  resize: none;
}

#page .contents .contact_area .check-row{
  text-align: center;
  margin-top: 50px;
  margin-bottom: 10px;
}

#page .contents .contact_area .check-row *{
  cursor:pointer;
}

#page .contents .contact_area .btn_area {
  text-align: center;
}

#page .contents .contact_area .btn_area input {
  font-size: 20px;
  font-weight: 500;
  font-family: 'Noto Serif JP';
  width: 198px;
  height: 48px;
  border: none;
  color: #fff;
  border: 1px solid #333;
  background-color: #333;
  transition: 0.3s ease-out;
  cursor: pointer;
}

@media (any-hover:hover) {
  #page .contents .contact_area .btn_area input:hover {
    color: #333;
    background: #fff;
  }
}

@media screen and (max-width:1024px) {
  #page .contents .contact_area .form-row {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  #page .contents .contact_area .form-row p:first-of-type {
    grid-column: 1;
  }

  #page .contents .contact_area .form-row p:last-of-type {
    grid-column: 1;
  }
}

/*プライバシーポリシー*/
#page .contents .privacy_text-only {
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 2.0;
  color: #333;
  margin-top: -8px;
}

#page .contents .privacy_row {
  margin-top: 50px;
}

#page .contents .under-hd01+.privacy_text-only {
  margin-top: -30px;
}

#page .contents .under-hd01+ol {
  margin-top: -30px;
}

#page .contents .privacy_row ol {
  list-style: initial;
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 2.0;
  padding-left: calc(1.0em + 4px);
}

#page .contents .privacy_row .privacy_text-only+ol {
  margin-top: 15px;
}

#page .contents .privacy_row .privacy_text-only+.privacy_text-only {
  margin-top: 15px;
}

#page .contents .privacy_row ol li {
  list-style: decimal;
}

#page .contents .privacy_row ol li>ul {
  margin-top: 10px;
  margin-bottom: 10px;
  padding-left: calc(1.5em + 4px);
}

#page .contents .privacy_row ol li>ul>li>ul {
  margin-bottom: 10px;
}

.text-flex>div {
  display: flex;
}

.text-flex>div p {
  font-size: 16px;
  letter-spacing: 0.05em;
  line-height: 2.0;
  color: #333;
}

.text-flex>div p:first-of-type {
  min-width: fit-content;
}

#page .contents .privacy_row .privacy_text-only+.text-flex {
  margin-top: 10px;
}

#page .contents .privacy_row  .text-flex+.text-flex {
  margin-top: 10px;
}

#page .contents .privacy_row  .text-flex+.privacy_text-only {
  margin-top: 10px;
}

/*=====================================
*
*archive
*
=======================================*/
#archive .looplist ol li+li {
  border-top: 1px solid #8ba0a8;
}

#archive .looplist ol li a {
  grid-template-columns: repeat(8, 1fr);
  padding: 25px 0;
  color: #333;
  letter-spacing: 0.05em;
  transition: ease-out;
}

#archive .looplist ol li .text {
  grid-column: 2 / 9;
}

#archive .looplist ol li .text h2 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
}

#archive nav ul.page-numbers {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 25px;
  margin-top: 55px;
}

#archive nav ul.page-numbers li a {
  color: #333;
}

#archive nav ul.page-numbers li span.current {
  font-weight: 600;
  color: #333;
  text-decoration: underline;
}

#archive nav ul.page-numbers li a:is(.prev, .next) {
  position: relative;
  color: transparent;
}

#archive nav ul.page-numbers li a:is(.prev, .next):before {
  position: absolute;
  top: calc(50% + 2px);
  left: 50%;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 15px;
  color: #333;
  transform: translate(-50%, -50%);
}

#archive nav ul.page-numbers li a.prev:before {
  content: "\f104";
}

#archive nav ul.page-numbers li a.next:before {
  content: "\f105";
}

@media screen and (max-width:1024px) {
  #archive .looplist ol li a {
    grid-template-columns: repeat(1, 1fr);
    gap: 10px;
  }

  #archive .looplist ol li .text {
    grid-column: 1;
  }
}

/*=====================================
*
*breadcrumb
*
=======================================*/
.breadcrumb {
  padding: 15px 0;
}

.breadcrumb ul {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.breadcrumb ul li {
  font-size: 12px;
  letter-spacing: 0.05em;
}

.breadcrumb ul li a {
  color: #333;
  font-weight: 500;
}

.breadcrumb ul li:last-of-type a {
  color: #102C29;
  font-weight: 600;
}

/*=====================================
*
*toc
*
=======================================*/

/*=====================================
*
*footer
*
=======================================*/
footer .footer-contents {
  padding: 30px 0;
}

footer .footer-contents .wrapper {
  justify-content: space-between;
  align-items: center;
}

footer .footer-contents .logo {
  max-width: 223px;
}

footer .footer-contents .footer_menu ul {
  display: flex;
  gap: 25px;
}

footer .footer-contents .footer_menu ul li a {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: #000;
  transition: 0.3s ease-out;
}

@media (any-hover:hover) {
  footer .footer-contents .footer_menu ul li a:hover {
    opacity: 0.75;
  }
}

footer .copyright {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #000;
  text-align: center;
  margin: -3px 0;
  padding: 7px 0;
  background-color: #FCFAF3;
}

/*sp*/
@media screen and (max-width:600px) {
  footer .footer-contents .logo {
    max-width: 180px;
  }
}

@media screen and (max-width:767px) {
  footer .footer-contents .wrapper {
    display: block;
  }

  footer .footer-contents .footer_menu ul {
    flex-wrap: wrap;
    margin-top: 35px;
  }

  footer .footer-contents .footer_menu ul li {
    width: 100%;
  }

  footer .footer-contents .footer_menu ul li {
    font-size: 14px;
  }

}

/*=====================================
*
*sidenav
*
=======================================*/

/*=====================================
*
*pc&tablet&spのnone処理
*
=======================================*/
/*=====================================
*pcのみ削除
=======================================*/
@media screen and (min-width: 1025px) {
  .pcnone {
    display: none;
  }
}

/*=====================================
*tablet削除
=======================================*/
@media screen and (max-width: 1024px) and (min-width: 415px) {
  .tabnone {
    display: none;
  }
}

/*=====================================
*sp削除
=======================================*/
@media screen and (max-width:414px) {
  .spnone {
    display: none;
  }
}

/*=====================================
*
*pc
*
=======================================*/
@media screen and (min-width: 1025px) {
  .sp {
    display: none;
  }

  .tb {
    display: none;
  }

  .sp_tb {
    display: none;
  }
}

/*=====================================
*
*tb
*
=======================================*/
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .pc {
    display: none;
  }

  .sp {
    display: none;
  }

  .tb {
    display: inherit;
  }

  .tb_pc {
    display: inherit;
  }

  .sp_tb {
    display: inherit;
  }
}

/*=====================================
*
*sp
*
=======================================*/
@media screen and (max-width: 767px) {
  .pc {
    display: none;
  }

  .tb_pc {
    display: none;
  }

  .sp {
    display: inherit;
  }

  .tb {
    display: none;
  }

  .sp_tb {
    display: inherit;
  }
}