@charset "UTF-8";

/*
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com
Twitter: @rich_clark
*/

html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}

body {
    line-height: 1;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
    display: block;
}

nav ul {
    list-style: none;
}

blockquote,
q {
    quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
    content: '';
    content: none;
}

a {
    margin: 0;
    padding: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}

/* change colours to suit your needs */
ins {
    background-color: #ff9;
    color: #000;
    text-decoration: none;
}

/* change colours to suit your needs */
mark {
    background-color: #ff9;
    color: #000;
    font-style: italic;
    font-weight: bold;
}

del {
    text-decoration: line-through;
}

abbr[title],
dfn[title] {
    border-bottom: 1px dotted;
    cursor: help;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* change border colour to suit your needs */
hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #cccccc;
    margin: 1em 0;
    padding: 0;
}

input,
select {
    vertical-align: middle;
}

/*--------------
custom
--------------*/
html {
    font-size: 62.5%;
    line-height: 1;
}

ol,
ul {
    list-style: none;
}

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

a img {
    border: none;
}

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

a:hover {
    text-decoration: none;
    opacity: 0.7;
}

input,
button,
textarea,
select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    font-size: inherit;
    font-family: inherit;
    border-radius: 0;
}

input,
textarea,
select {
    font-size: 16px;
}

button {
    border: none;
    background: none;
    cursor: pointer;
    padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
    background: #fff;
    color: #333;
    font-family: 'Noto Sans JP', sans-serif;
    text-align: left;
    -webkit-text-size-adjust: 100%;
    line-height: 1.8;
    min-height: 100vh;
    position: relative;
}

.clearfix {
    overflow: hidden;
}

.disPc{
  display: block;
}

.disSp{
  display: none;
}

@media screen and (max-width: 768px) {
  .disPc{
  display: none;
 }
  .disSp{
  display: block;
 }
}

/* --- Common Classes from Model --- */
.tit01 {
    font-size: 3.5rem;
    font-weight: 600;
    line-height: 1.4;
    margin-bottom: 6rem;
    color: #333;
    text-align: center;
    letter-spacing: 1px;
    display: block;
    position: relative;
    padding-bottom: 1rem;
    font-family: "M PLUS 1 Code", monospace;
}


.tit01 span{
    font-size: 4rem;
    font-family: "M PLUS 1 Code", sans-serif;
}

@media screen and (max-width: 768px) {
    .tit01 {
        margin-bottom: 3rem;
        font-size: 2.5rem;
    }
    .tit01 span{
    font-size: 3rem;
 }
}

/*.tit01::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 2px;
    background-color: #C5A085;
}*/

.tit02 {
    text-align: center;
    font-family: 'Noto Serif JP', serif;
    font-size: 2.4rem;
    letter-spacing: 2.4px;
    color: #333;
    margin-bottom: 4rem;
    font-weight: 500;
    line-height: 1.4;
}

.tit03 {
font: normal normal bold 47px/44px Noto Sans JP;
letter-spacing: 0px;
color: #FFFFFF;
font-size: 4.7rem;
margin-right: 4rem;
font-weight: 500;
line-height: 1.4;
width: 150px;
}

@media (max-width: 768px) {
 .tit03 {
  font-size: 3.5rem;
  margin-right: 0;
  margin-bottom: 3rem;
  width: 100%;
  text-align: center;
 }
}


.containerBox01 {
    max-width: 1200px;
    margin: 0 auto;
    width: 100%;
    padding: 80px 4%;
    box-sizing: border-box;
}

.selectPointBg .containerBox01{
 padding-bottom: 0;
}


.containerBox01.workShop{
 padding-bottom: 2rem;
}

.containerBox01#company{
 padding-bottom: 2rem;
}

.containerBox02 {
margin: 0 auto;
width: 100%;
background-color: #008e66;
font-size: 4.7rem;
}

.containerBox02Inner {
padding: 80px 20px;
box-sizing: border-box;
max-width: 1080px;
margin: auto;
width: 100%;
}

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

 .containerBox01 {
    padding: 50px 4%;
}
.containerBox02Inner {
 padding: 30px 4%;
 }
}


/* --- Corporate Site Specifics (Adapted to new rules) --- */

/* Button */

.btn01 {
    position: relative;
    overflow: hidden;

    font: normal normal bold 19px/34px "M PLUS 1 Code";
    color: #fff;
    max-width: 450px;
    width: 100%;
    display: block;
    margin: 3rem auto 0;
    padding: 1.5rem 0;
    text-align: center;
    font-size: 1.6rem;
    background: #004B36;
    box-shadow: 0 1px 3px #00000040;
    border-radius: 32px;

    transition:
        transform .3s ease,
        box-shadow .3s ease,
        background .3s ease;
}

.btn01:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 25px rgba(0,0,0,.2);
    background: #006649;
}

.btn01::before {
    content: "";
    position: absolute;
    top: 0;
    left: -120%;

    width: 50%;
    height: 100%;

    background: linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,.4),
        transparent
    );

    transform: skewX(-25deg);
}

.btn01:hover::before {
    animation: shine .8s;
}



.btn02 {
    position: relative;
    overflow: hidden;
    font: normal normal bold 19px/34px "M PLUS 1 Code";
    color: #fff;
    max-width: 450px;
    width: 100%;
    display: block;
    margin: 3rem auto 0;
    padding: 1.5rem 0;
    text-align: center;
    font-size: 1.6rem;

    background: rgba(255, 255, 255, 0.3);
    border: 1px solid #fff;
    box-shadow: 0px 1px 3px #00000040;

    transition:
        transform .3s ease,
        box-shadow .3s ease,
        background .3s ease;
}

.btn02::before {
    content: "";
    position: absolute;
    top: 0;
    left: -120%;

    width: 50%;
    height: 100%;

    background: linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,.5),
        transparent
    );

    transform: skewX(-25deg);
}

.btn02:hover::before {
    animation: shine .8s;
}

@keyframes shine {
    100% {
        left: 150%;
    }
}


@media screen and (max-width: 500px) {
.btn01 {
max-width: 320px;
 }
.btn02 {
padding: 1rem 0;
max-width: 200px;
 }

.btn01 {
 font-size: 1.9rem;
  width: 92%;
 }
}


.btn02:hover{
    opacity: 0.7;
    color: #fff;
}



/* Header */


.headerLogo {
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    font-family: 'Noto Serif JP', serif;
}

.headerLogo__img {
    display: block;
    margin: auto;
    max-width: 272px;
    /* From reference */
}

@media screen and (max-width: 900px) {
 .header-content{
  height: 45px;
  padding: 0;
 }
 .headerLogo__img {
  max-width: 180px;
 }
 .headerNav{
  gap: 20px;
 }
}

.underPage .linkMenu_icon01 {
    display: none;
}

.main-header--not-top .linkMenu_icon01 {
    display: none;
}

.main-header--top .linkMenu_icon02{
 display: none;
}

.headerNav.is-active .linkMenu_icon01{
 display: block;
}

.underPage .linkMenu_icon02{
 display: block;
}


.headerLogo__img img {
    width: 100%;
}


.headerNav {
    display: flex;
    gap: 2rem;
}

@media screen and (max-width: 768px) {
    .headerNav {
        display: none;
    }
    .headerNav.is-active .linkMenu_icon02{
    display: none;
    }
}

.headerNavItem {
    font-size: 1.4rem;
    font-weight: 500;
    letter-spacing: 0.05em;
}

.headerNavItem img{
  margin-right: 8px;
}

.headerNavItem a {
    color: #fff;
    display: flex;
}

.sp-link {
    display: none;
}

@media screen and (max-width: 768px) {
 .sp-link {
  display: block;
 }
 .sp-link a{
  display: flex;
  width: 180px;
  font-size: 1.5rem;
 }
 .sp-link img{
  width: 20px;
  margin-right: 5px;
 }
 .header-main nav{
    display: flex;
    align-items: center;
 }
}



.menuToggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    cursor: pointer;
}

@media screen and (max-width: 768px) {
    .menuToggle {
        display: flex;
    }
}

.bar {
    width: 25px;
    height: 2px;
    background-color: #333;
}
/*-----------------*/

.header-main {
  width: 100%;
  background: rgba(255, 255, 255, 0);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  padding: 1rem 4%;
  transition:
  background-color .3s ease,
  color .3s ease,
  transform .3s ease,
  box-shadow .3s ease;
  will-change: transform;
}

.header-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 80px;
  padding: 0 40px;
  max-width: 1200px;
  margin: 0 auto;
}

.headerLogo {
  margin: 0;
}

.headerLogo01,
.headerLogo02{
  display: block;
  height: 40px;
}

.sp-headerLogo01,
.sp-headerLogo02{
  display: none;
}


@media (max-width: 1000px) {
.headerLogo01,
.headerLogo02{
  display: none;
}


.underPage .sp-headerLogo01{
  display: none;
}

.sp-headerLogo01,
.sp-headerLogo02{
  display: block;
}

  .headerLogo__img img {
  width: 56px;
 }
}

.headerNavWrap {
  display: flex;
  align-items: center;
}

.headerNav {
  display: flex;
  align-items: center;
  gap: 32px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.headerNavItem a {
  color: #fff;
  text-decoration: none;
}

.underPage .headerNavItem a{
  color:#333;
}

.header-main.scrolled .headerNavItem a,
.underPage .header-main .headerNavItem a{
  color: #333;
}

.headerNav.is-active .headerNavItem a,
.underPage .headerNav.is-active a{
  color: #fff;
}

        nav a:hover {
            opacity: 0.8;
        }

        /* Header States */
        .main-header--unpinned {
            transform: translateY(-100%);
        }

        .main-header--pinned {
            transform: translateY(0);
        }

        .main-header--top {
            box-shadow: none;
        }

        .main-header--not-top {
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
        }

.headerNavItem img {
  width: 14px;
  margin-right: 6px;
  vertical-align: middle;
}



.menuToggle {
  width: 25px;
  height: 32px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
}

.menuToggle .bar {
  display: block;
  width: 100%;
  height: 2px;
  background: #333;
  margin: 8px 0;
  transition: 0.3s;
}

.topPage .menuToggle .bar{
    background:#fff;
}

.topPage .scrolled .menuToggle .bar{
    background:#333;
}

.menuToggle.is-active .bar{
    background:#fff;
}


.scrolled .menuToggle.is-active .bar {
  background: #fff;
}


/* SP */
@media (max-width: 768px) {
  .header-content {
    height: 64px;
    padding: 0;
  }

  .menuToggle {
    display: block;
    position: relative;
    z-index: 1001;
  }

  .headerNav {
    position: fixed;
    top: 64px;
    right: 0;
    width: 100%;
    height: calc(100vh - 64px);
    background: #333;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding-left: 8%;
    justify-content: center;

    gap: 28px;
    transform: translateX(100%);
    transition: transform 0.3s ease;
  }

  .headerNav.is-active {
    transform: translateX(0);
    height: 100vh;
    top: 0;
  }

  .headerNavItem a {
    font-size: 18px;
  }

  .menuToggle.is-active .bar:nth-child(1) {
    transform: translateY(10px) rotate(45deg);
  }

  .menuToggle.is-active .bar:nth-child(2) {
    opacity: 0;
  }

  .menuToggle.is-active .bar:nth-child(3) {
    transform: translateY(-10px) rotate(-45deg);
  }
}
/*----------*/

.topPage .headerLogo01,
.topPage .link_icon01{
 display: block;
}

.underPage .headerLogo01,
.underPage .link_icon01{
 display: none;
}

.topPage .headerLogo02,
.topPage .link_icon02{
 display: none;
}


.topPage .scrolled .link_icon01,
.topPage .scrolled .headerLogo01{
 display: none;
}



.topPage .scrolled .link_icon02,
.topPage .scrolled .headerLogo02{
 display: block;
}


.topPage .scrolled .headerLogo01,
.topPage .scrolled .link_icon01{
 display: none;
}

.underPage .scrolled .headerLogo01{
 display: none;
}

.is-active.headerLogo .headerLogo02{
 display: none;
}

.is-active.headerLogo .link_icon02{
 display: none;
}

.is-active.headerLogo .headerLogo01{
 display: block;
}

.is-active.headerLogo .link_icon01{
 display: block;
}



@media (max-width: 1000px) {
.topPage .headerLogo01{
 display: none;
 }
.topPage .scrolled .headerLogo02{
 display: none;
 }
}

@media (max-width: 1000px) {
.topPage .sp-headerLogo01{
 display: block;
 z-index: 1;
 position: relative;
}

.topPage .sp-headerLogo02{
 display: none;
}

.topPage .scrolled .sp-headerLogo01{
 display: none;
}

 .headerLogo.is-active .sp-headerLogo01{
  display: block;
  z-index: 1;
  position: relative;
 }

.topPage .scrolled .sp-headerLogo02{
 display: block;
}
 .headerLogo.is-active .sp-headerLogo02 {
  display: none;
 }

.main-header--not-top.scrolled .headerLogo.is-active .sp-headerLogo02 {
 display: none;
}
.is-active.headerLogo .headerLogo01{
 display: none;
}
}

@media (min-width: 1001px) {
.topPage .sp-headerLogo01{
 display: none;
 }
.topPage .scrolled .sp-headerLogo02{
 display: none;
 }
 .topPage  .sp-headerLogo02{
 display: none;
 }
}

header a {
  transition: color 0.3s ease;
}

header a{
    color:#333;
    transition:.3s;
}

.topPage header:not(.scrolled) a{
    color:#fff;
}

.topPage header.scrolled a{
    color:#333;
}



.header-main{
    background:#fff;
    transition:.3s;
}

.topPage .header-main{
    background:transparent;
}

.topPage .header-main.scrolled{
    background:#fff;
    box-shadow:0 2px 8px rgba(0,0,0,.1);
}

/* 100px?????? */
header.scrolled {
  background: rgba(255, 255, 255, 1);
  color: #000;
}

/* ?????????? */
header.scrolled {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.menuIcon{
 display: none;
}

.menuIcon.is-active{
 display: block;
}
/* Slideshow */
.hero {
    height: 100vh;
    width: 100%;
    position: relative;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    color: white;
    text-align: center;
}

.slideshow {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
}

.slideImg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    opacity: 0;
    animation: slideShow 15s infinite;
}


.slide01 {
    background-image:
        linear-gradient(rgba(0,0,0,.3), rgba(0,0,0,.3)),
        url('/images/slider01.webp');
    animation-delay: 0s;
}

.no-webp .slide01 {
    background-image:
    url('/images/slider01.jpg');
}

@media (max-width: 768px) {
    .slide01 {
    background-image:
        url('/images/sp-slider01.webp');
    animation-delay: 0s;
}
    .no-webp .slide01 {
        background-image:
        url('/images/sp-slider01.jpg');
    }
}

.slide02 {
    background-image:
        linear-gradient(rgba(0,0,0,.3), rgba(0,0,0,.3)),
        url('/images/slider02.webp');
    animation-delay: 5s;
}

.no-webp .slide02 {
    background-image:
        url('/images/slider02.jpg');
}
@media (max-width: 768px) {
    .slide02 {
    background-image:
        url('/images/sp-slider02.webp');
    animation-delay: 5s;
}
    .no-webp .slide02 {
        background-image:
            url('/images/sp-slider02.jpg');
    }
}
.slide03 {
    background-image:
        linear-gradient(rgba(0,0,0,.3), rgba(0,0,0,.3)),
        url('/images/slider03.webp');
    animation-delay: 10s;
}

.no-webp .slide03 {
    background-image:
        url('/images/slider03.jpg');
}

@media (max-width: 768px) {
    .slide03 {
    background-image:
        url('/images/sp-slider03.webp');
    animation-delay: 10s;
}
    .no-webp .slide03 {
        background-image:
        url('/images/sp-slider03.jpg');
    }
}

@keyframes slideShow {
    0% {
        opacity: 0;
        transform: scale(1);
    }

    5% {
        opacity: 1;
        transform: scale(1.02);
    }

    33% {
        opacity: 1;
        transform: scale(1.05);
    }

    38% {
        opacity: 0;
        transform: scale(1.08);
    }

    100% {
        opacity: 0;
        transform: scale(1);
    }
}

.heroText {
    z-index: 10;
    width: 100%;
    position: relative;
    top: 10%;
}

.heroText h2 {
    font-family: "M PLUS 1 Code", sans-serif;
    font-size: 4rem;
    letter-spacing: 0.2em;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
    margin-bottom: 10rem;
    line-height: 1.4;
    color: #fff;
    padding-left: .2rem;
}

.heroText p {
    font-size: 1.6rem;
    letter-spacing: 0.1em;
    margin-top: 2rem;
    color: #fff;
}

@media screen and (max-width: 500px) {
.heroText {
    margin: 0 4%;
}

    .heroText h2 {
        font-size: 3.5rem;
        text-align: left;
        line-height: 2.2;
    }
    .heroText p {
    text-align: left;
 }
 .btn02{
  margin-left: 0;
  margin-right: 0;
 }
}


/* Concept */
.conceptGrid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
}

@media screen and (max-width: 768px) {
    .conceptGrid {
        grid-template-columns: 1fr;
    }
}

.conceptItem {
    text-align: center;
    padding: 30px;
    background: white;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.03);
    border-radius: 4px;
}

.conceptNumber {
    font-size: 3rem;
    color: #C5A085;
    font-family: 'Noto Serif JP', serif;
    margin-bottom: 1.5rem;
    line-height: 1;
    opacity: 0.3;
}

.conceptTitle {
    font-size: 1.6rem;
    margin-bottom: 1.5rem;
    color: #333;
    font-weight: 600;
}

.conceptDesc {
    font-size: 1.4rem;
    text-align: left;
    line-height: 1.8;
}

.newsCt{
 display: flex;
}

@media (max-width: 768px) {
 .newsCt{
  display: block;
 }
}


.newsItem time{
 font-size: 1.2rem;
 color: #fff;
 display: block;
}

.newsItem h3{
 font-size: 1.6rem;
 display: block;
 margin-top: 1rem;
 color: #fff;
 margin-bottom: 2rem;
 line-height: 1.6;
 font-family: "M PLUS 1 Code", monospace;

}

.newsItem + .newsItem{
 border-top: 1px solid #ffffffbf;
 padding-top: 2rem;
 margin-top: 2rem;
}

.newsCategoryWp{
 display: flex;
}

.newsCategory{
background: #FFFFFF 0% 0% no-repeat padding-box;
border-radius: 30px;
font: normal normal medium 11px/20px M PLUS 1 Code;
letter-spacing: 0px;
color: #008E66;
font-size: 13px;
padding: 0rem 1rem;
margin-left: 1rem;
min-width: 80px;
text-align: center;
}

.newsDetail{
 width: calc(100% - 150px);
}

@media (max-width: 768px) {
 .newsDetail{
  width: 100%;
 }
}

.type{
 background-color: #fff;
}

.no-webp .typeBg {
    background-image: url('/images/top_sec_img01.png');
}

.typeBg {
    position: relative;
    background-image: url('/images/top_sec_img01.webp');
    background-repeat: no-repeat;
    background-size: 70%;
    background-position: calc(100% - 50px) top;
}

.typeContent {
    width: 450px;
    padding: 60px 4%;
}

.typeContent p:last-child{
 margin-bottom: 0;
}


@media (max-width: 768px) {

    .typeBg {
        background-size: 100%;
        background-position: calc(100% + 120px) top;
    }

    .typeContent {
        width: 100%;
        padding: 0 20px;
    }

}


.txt01 {
    margin-bottom: 40px;
    color: #00936f;
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.2;
    font-family: "M PLUS 1 Code", monospace;
}

@media screen and (max-width: 768px) {
    .txt01 {
       margin-bottom: 25px;
    }
}

.subtxt01 {
    display: block;
    margin-top: 6px;
    font-size: 1.4rem;
    font-weight: 400;
    color: #00936f;
}

.containerBox01 .subtxt02 {
    display: block;
    margin-top: 3px;
    font-size: 1.5rem;
    font-weight: 400;
    color: #555;
}


/*.catchCopy {
    margin-top: 40px;
    color: #00936f;
    font-size: 4.4rem;
    font-weight: 700;
    line-height: 1.5;
}*/



/* Service */
.serviceBg {
    background-color: #f4f4f4;
    width: 100%;
}

.serviceList {
    display: flex;
    justify-content: space-between;
    gap: 30px;
}

@media screen and (max-width: 768px) {
    .serviceList {
        flex-direction: column;
    }
}

.serviceCard {
    flex: 1;
    background: white;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    transition: transform 0.3s;
    border-radius: 0px 0px 8px 8px;
}

.serviceCard:hover {
    transform: translateY(-5px);
}

.serviceImg {
    background-size: cover;
    background-position: center;
}



.serviceContent {
    padding: 25px;
    text-align: center;
}



.serviceTitle {
 font-size: 2.2rem;
  margin-bottom: 1rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: "M PLUS 1 Code", monospace;
}

.serviceTitle::before {
  content: "";
}

.serviceCard01 .serviceTitle::before {
  width: 34px;
  height: 34px;
  background: url("../images/top_sec02_icon01.svg") no-repeat center center;
  background-size: contain;
  flex-shrink: 0;
}

.serviceCard02 .serviceTitle::before {
  width: 34px;
  height: 34px;
  background: url("../images/top_sec02_icon02.svg") no-repeat center center;
  background-size: contain;
  flex-shrink: 0;
}

.serviceCard03 .serviceTitle::before {
  width: 34px;
  height: 34px;
  background: url("../images/top_sec02_icon03.svg") no-repeat center center;
  background-size: contain;
  flex-shrink: 0;
}

.serviceContent p {
    font-size: 1.5rem;
    line-height: 1.6;
    font-family: "M PLUS 1 Code", monospace;
}

.selectPointBg{
 background-color: #FBF8F3;
 padding-bottom: 8rem;
}

/* Works */


.worksGrid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 20px;
}

.workItem {
    position: relative;
    border-radius: 18px;
    background-color: #eee;
    overflow: hidden;
}

.workRenov .workItem {
    background-color: #fcf8f4;
}


.workItem img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s;
}

/*.workItem:hover img {
    transform: scale(1.1);
}
*/
.workInfo {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    background: rgba(0, 0, 0, 0.6);
    color: white;
    padding: 10px 15px;
    transform: translateY(100%);
    transition: transform 0.3s;
    box-sizing: border-box;
}

.workItem:hover .workInfo {
    transform: translateY(0);
}

.workTag {
    font-size: 1.2rem;
    background-color: #C5A085;
    padding: 2px 8px;
    border-radius: 2px;
    margin-right: 5px;
}

.workInfo span:last-child {
    font-size: 1.4rem;
}


/* Company */
.companyLayout {
    display: flex;
    gap: 40px;
    align-items: flex-start;
}

@media screen and (max-width: 768px) {
    .companyLayout {
        flex-direction: column;
        display: block;
    }
    .topCompanyInfo{
        margin-bottom: 4rem;
    }
}

.topCompanyInfo tr {
    border-bottom: 1px solid #ddd;
    font-family: "Noto Sans JP", sans-serif;
}

.topCompanyInfo th {
    width: 120px;
    font-weight: 700;
    padding: 1.5rem 0;
    font-size: 1.5rem;
    text-align: left;
    vertical-align: top;
    font-family: "Noto Sans JP", sans-serif;
}

.topCompanyInfo td {
    padding: 1.5rem 0;
    font-size: 1.5rem;
}

.companyMap {
    flex: 1;
    background-color: #eee;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #888;
    border: 1px solid #ddd;
    width: 100%;
    font-size: 1.4rem;
}
.banner{
 display: block;
 max-width: 1200px;
 margin: 6rem auto;
}

@media screen and (max-width: 768px) {
  .banner{
 margin: 6rem auto 0;
 }
}

/* Footer */
.footer {
    background-color: #333;
    color: white;
    box-sizing: border-box;
    padding: 0 0 20px;
}
.footerInner{
    max-width: 1200px;
    margin: auto;
    width: 92%;
}

.footerNav {
    margin-bottom: 10px;
}

.footerNav a {
    margin: 0 15px;
    font-size: 1.4rem;
    color: #fff;
}

@media screen and (max-width: 768px) {
   .footer{
   padding: 0 0 40px;
   text-align: center;
    }
   .footerNav a {
    margin: 0 0 15px;
    display: block;
    text-align: left;
 }
 .footerInner{
  width: 100%;
 }
}

.footerLogo{
 max-width: calc(100% - 150px);
   height: 80px;
  display: flex;
  align-items: center;
}



@media screen and (max-width: 768px) {
 .footerLogo{
   justify-content: center;
   margin-left: 4%;
 }
}



.pageTop {
 display: none;
  width: 80px;
  height: 80px;
}

.pageTop img {
  width: 30px;
}



.footerInfo {
    display: flex;
    align-items: center;
    font-size: 1.3rem;
    color: #fff;
    justify-content: space-between;
}



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


@media screen and (max-width: 768px) {
 .footerInfo {
  display: block;
  padding: 20px 4%;
 }
 .pageTop {
  display: flex;
  align-items: center;
  justify-content: center;
  border-left: 1px solid rgba(255, 255, 255, 0.25);
 }
 .footerTop{
 border-bottom: 1px solid rgba(255, 255, 255, 0.25);
 }
}


.footerInfo p {
    margin-bottom: 0.5rem;
}

.snsIcons {
    margin-top: 20px;
}

.snsIcons span {
    display: inline-block;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.1);
    line-height: 40px;
    margin: 0 5px;
    font-size: 1.2rem;
    color: #fff;
}

.copyright {
    font-size: 1.2rem;
    opacity: 0.6;
    color: #fff;
    text-align: left;
}

@media screen and (max-width: 768px) {
 .copyright {
    text-align: center;
 }
}



/* Contact (Index) */
.contactSection {
    padding: 60px 20px;
    text-align: center;
}

.contactBtn {
    display: inline-block;
    border: 1px solid white;
    padding: 1.5rem 5rem;
    color: white;
    transition: 0.3s;
    background: rgba(255, 255, 255, 0.1);
    font-size: 1.6rem;
}


/* Coming Soon */
.comingSoon {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 60vh;
    text-align: center;
}


/* Animation */
.fadeIn {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 1s ease-out, transform 1s ease-out;
}

.fadeIn.visible {
    opacity: 1;
    transform: translateY(0);
}

.fixedContact {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 1000;

  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: #333;

  display: flex;
  align-items: center;
  justify-content: center;

  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.fixedContact img {
  width: 28px;
  height: auto;
}

.fixedContact:hover {
  opacity: 0.8;
  transform: translateY(-3px);
}

@media screen and (max-width: 767px) {
  .fixedContact {
    right: 18px;
    bottom: 18px;
    width: 60px;
    height: 60px;
  }

  .fixedContact img {
    width: 28px;
  }
}

.fixedContact {
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.fixedContact.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}


.underTitle{
display: block;
margin: 10rem auto 5rem;
font-size: 4.0rem;
font-weight: 700;
line-height: 1.4;
color: #333;
text-align: center;
position: relative;
}

.underText{
text-align: center;
font-size: 1.5rem;
letter-spacing: 0px;
color: #555555;
margin-bottom: 8rem;
font-family: "M PLUS 1 Code", monospace;
}

@media screen and (max-width: 767px) {
 .underTitle {
  margin: 6rem auto 5rem;
 }
 .otherPageTop {
  padding-top: 6.5rem;
 }
 .underText{
  text-align: left;
  margin-bottom: 5rem;
 }
}

.worksNavItem{
background: #F4F0E7 0% 0% no-repeat padding-box;
border: 1px solid #937A4E;
border-radius: 3px;
}

.worksNavItem a{
text-align: center;
padding: 1rem 5rem;
font-size: 1.6rem;
letter-spacing: 0px;
color: #937A4E;
display: block;
line-height: 22px;
padding: 1rem 5rem;
font-family: "M PLUS 1 Code", monospace;
}

.worksNavList{
display: flex;
justify-content: center;
align-items: center;
margin-bottom: 6rem;
}


@media (max-width: 768px) {
 .worksNavItem a {
  font-size: 1.5rem;
  padding: 1rem 0;
  width: 100%;
 }
 .worksNavItem {
  width: 100%;
 }
}

.worksNavList li + li{
margin-left: 3rem;
}

.otherPageTop{
padding-top: 10rem;
}

.secWidth{
 width: 92%;
 margin: auto;
}

 header .headerNav.is-active a {
  color: #fff;
}


/*--------about----------*/


.aboutPoint{
 padding-bottom: 6rem;
}

.aboutPointInner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  gap: 44px;
  align-items: center;
}

.pointLeft {
  width: 420px;
}

.pointTitle {
  margin: 0 0 20px;
  font-size: 34px;
  line-height: 1.4;
  font-weight: 700;
  color: #333;
}

.pointBtns {
  width: 100%;
}

.pointBtn {
  width: 100%;
  height: 78px;
  margin-bottom: 22px;
  padding: 0 24px;
  border: none;
  border-radius: 20px;
  background: #e1e3e0;
  color: #333;
  font-size: 18px;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  transition: background 0.3s ease, color 0.3s ease;
  display: flex;
  align-items: center;
}

.pointBtn span {
  margin-right: 20px;
  font-size: 34px;
  color: rgba(51, 51, 51, 0.2);
  font-weight: 700;
}

.pointBtn.is-active {
  background: #00583f;
  color: #fff;
}

.pointBtn.is-active span {
  color: rgba(255, 255, 255, 0.25);
}

.pointContents {
  flex: 1;
}

.pointContent {
  display: none;
  position: relative;
}

.pointContent.is-active {
  display: block;
}

.pointContent img {
  width: 100%;
  display: block;
  border-radius: 10px;
}

.pointContent p {
  position: absolute;
  right: 25px;
  bottom: 25px;
  max-width: 420px;
  padding: 25px;
  margin: 0;
  background: rgba(255, 255, 255, 0.85);
  border-radius: 10px;
  font-size: 15px;
  line-height: 1.8;
  color: #333;
  font-family: "M PLUS 1 Code", monospace;
}


.pointContentsTit{
 display: none;
}


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

 .pointContent {
  display: block;
 }

  .pointContent + .pointContent {
  margin-top: 3rem;
 }
  .aboutPointInner {
    display: block;
  }

    .pointLeft {
    width: 100%;
    margin-bottom: 32px;
  }

  .pointTitle {
    margin-bottom: 32px;
    font-size: 28px;
    line-height: 1.45;
    text-align: center;
  }


  .pointBtn {
    height: 68px;
    border-radius: 16px;
    font-size: 16px;
  }

  .pointBtn span {
    font-size: 28px;
  }

  .pointContent p {
    position: static;
    max-width: none;
    margin-top: 10px;
    padding: 0px;
    background: rgba(255, 255, 255, 0);
  }

 .pointContentsTit{
  display: block;
  font-size: 2.3rem;
  text-align: center;
  color: #333;
  margin-bottom: 2rem;
  font-weight: 500;

 }
 .pointContentsTit span{
  display: block;
  font-weight: bold;
  font-size: 3.5rem;
  color: #437968;
  font-family: "Noto Sans JP", sans-serif;
 }
}


.selectPoint {
  padding: 70px 0 80px;
  background: #fff;
}

.selectPoint .secWidth {

  margin: 0 auto;
}

.selectPointTitle {
  margin-bottom: 58px;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 34px;
  font-weight: 800;
  letter-spacing: .06em;
  color: #333;
}

.selectPointList {
  display: flex;
  flex-direction: column;
  gap: 56px;
}

.selectPointItem {
  display: grid;
  grid-template-columns: 48% 1fr;
  gap: 42px;
}

.selectPointImg img {
  width: 100%;
  display: block;
  border-radius: 8px;
  aspect-ratio: 536 / 315;
  object-fit: cover;
}

.selectPointText {
  padding-top: 4px;
}

.selectPointHead {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 26px;
}

.selectPointIcon {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  border-radius: 6px;
  background: #00956f;
}

.selectPointIcon img {
  width: 28px;
  height: 28px;
  display: block;
}

.selectPointHead h3 {
  margin: 0;
  font-family: "M PLUS 1 Code", monospace;
  font-size: 26px;
  font-weight: 800;
  line-height: 1.4;
  color: #333;
}

.selectPointText p {
  margin: 0;
  font-family: "M PLUS 1 Code", monospace;
  font-size: 16px;
  font-weight: 500;
  line-height: 2;
  letter-spacing: .02em;
  color: #666;
}

.selectPointText strong {
  font-weight: 800;
  color: #00785c;
}

.selectPointContact {
  margin-top: 56px;
  text-align: center;
}

.selectPointContact a {
  width: min(480px, 100%);
  height: 64px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  background: #00533f;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 19px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 4px 8px rgba(0, 0, 0, .18);
  transition: opacity .3s ease;
}

.selectPointContact a:hover {
  opacity: .75;
}

/* SP */
@media screen and (max-width: 768px) {
  .selectPoint {
    padding: 48px 0 60px;
  }

  .selectPoint .secWidth {
    width: calc(100% - 32px);
  }

  .selectPointTitle {
    margin-bottom: 36px;
    font-size: 26px;
  }

  .selectPointList {
    gap: 60px;
  }

  .selectPointItem {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .selectPointHead {
    gap: 12px;
    margin-bottom: 16px;
    justify-content: center;
  }

  .selectPointIcon {
    width: 44px;
    height: 44px;
  }

  .selectPointIcon img {
    width: 24px;
    height: 24px;
  }

  .selectPointHead h3 {
    font-size: 22px;
  }

  .selectPointText p {
    font-size: 15px;
    line-height: 1.9;
  }

  .selectPointContact {
    margin-top: 42px;
  }

  .selectPointContact a {
    height: 56px;
    font-size: 17px;
  }
}




.orderFlow {
  background: #faf7f1;
  padding-top: 8rem;
}

.orderFlow .secWidth {
  margin: 0 auto;
}

.orderFlowTitle {
  margin-bottom: 60px;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 34px;
  font-weight: 800;
  letter-spacing: .05em;
  color: #333;
}

.orderFlowList {
  position: relative;
}

.orderFlowList::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 2px;
  background-image: linear-gradient(
    to bottom,
    #b8b8b8 0 8px,
    transparent 8px 16px
  );
  transform: translateX(-50%);
  border-left:2px dashed #b8b8b8;
}

.orderFlowItem {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 64px 1fr;
  align-items: center;
  gap: 32px;
  margin-bottom: 72px;
}

.orderFlowItem:last-child {
  margin-bottom: 0;
}

.orderFlowNum {
  position: relative;
  z-index: 2;
  width: 54px;
  height: 54px;
  margin: 0 auto;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #00624b;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 22px;
  font-weight: 800;
  line-height: 1;
}

.orderFlowContent {
  position: relative;
  z-index: 1;
}

.textContent {
  color: #555;
}

.flowLeft .textContent {
  text-align: right;
}

.flowRight .textContent {
  text-align: left;
}

.textContent h3 {
  margin: 0 0 16px;
  font-family: "M PLUS 1 Code", monospace;
  font-size: 26px;
  font-weight: 800;
  line-height: 1.45;
  color: #333;
}

.textContent h3 span {
  display: inline-block;
  margin-right: 6px;
}

.textContent p {
  margin: 0;
  font-family: "M PLUS 1 Code", monospace;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.85;
  letter-spacing: .02em;
  color: #666;
}

.textContent .note {
  margin-top: 14px;
  font-size: 12px;
  line-height: 1.7;
  color: #777;
}

.imageContent img {
  width: 100%;
  display: block;
  aspect-ratio: 430 / 160;
  object-fit: cover;
  border-radius: 16px;
}

.circleImage {
  display: flex;
  justify-content: center;
}

.circleImage img {
  width: min(430px, 100%);
  aspect-ratio: 1 / 1;
  border-radius: 50%;
}

.flowLarge {
  align-items: start;
}

.flowLarge .orderFlowNum {
  margin-top: 210px;
}

.flowStep {
  margin-top: 18px;
}

.flowStep p {
  margin-top: 6px;
}

.stepLabel {
  display: inline-block;
  color: #00624b !important;
  font-weight: 800 !important;
}

.stepLabel span {
  display: inline-block;
  margin-right: 8px;
  padding: 2px 9px 3px;
  border-radius: 9999px;
  background: #00624b;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.3;
}

.workTitle {
  margin-top: 16px !important;
  color: #00624b !important;
  font-weight: 800 !important;
}

/* SP */
@media screen and (max-width: 768px) {

  .orderFlow .secWidth {
    width: calc(100% - 32px);
  }

  .orderFlowTitle {
    margin-bottom: 40px;
    font-size: 26px;
  }

  .orderFlowList::before {
    left: 24px;
  }

  .orderFlowItem {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 16px;
    margin-bottom: 48px;
    align-items: start;
  }

  .orderFlowNum {
    grid-column: 1;
    grid-row: 1;
    width: 48px;
    height: 48px;
    font-size: 18px;
  }

  .orderFlowContent {
    grid-column: 2;
  }

  .flowLeft .textContent,
  .flowRight .textContent {
    text-align: left;
  }

  .textContent {
    grid-row: 1;
  }

  .imageContent {
    grid-row: 2;
    margin-top: 16px;
  }

  .textContent h3 {
    margin-bottom: 12px;
    font-size: 21px;
  }

  .textContent p {
    font-size: 14px;
    line-height: 1.8;
  }

  .circleImage.imageContent img {
    aspect-ratio: 430 / 416;
    border-radius: 12px;
  }

  .circleImage {
    justify-content: flex-start;
  }

  .circleImage img {
    width: 60%;
    aspect-ratio: 430 / 260;
    border-radius: 12px;
  }

  .flowLarge .orderFlowNum {
    margin-top: 0;
  }

  .stepLabel {
    display: block;
  }

  .stepLabel span {
    margin-bottom: 4px;
  }
}


/* 06?07????? */
.orderFlowItem:nth-last-child(2),
.orderFlowItem:nth-last-child(1) {
  margin-bottom: 72px;
}

/* ?????????? */
.beautySalon {
  padding: 80px 0 70px;
  background: #fff;
}

.beautySalon .secWidth {
  /*width: min(1080px, calc(100% - 40px));*/
  margin: 0 auto;
}

.beautySalonTitle {
  margin-bottom: 34px;
  text-align: center;
  font-family: "M PLUS 1 Code", monospace;
  font-size: 34px;
  font-weight: 800;
  letter-spacing: .05em;
  color: #333;
}

.beautySalonLead {
  margin: 0 0 48px;
  text-align: center;
  font-family: "M PLUS 1 Code", monospace;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: .03em;
  color: #666;
}

.beautySalonCards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}

.beautySalonCard {
  overflow: hidden;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 0 12px rgba(0, 0, 0, .18);
}

.beautySalonCard h3 {
  min-height: 130px;
  margin: 0;
  padding: 30px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-family: "M PLUS 1 Code", monospace;
  font-size: 21px;
  font-weight: 800;
  line-height: 1.5;
  color: #333;
}

.beautySalonCard p {
  min-height: 100%;
  margin: 0;
  padding: 28px 24px 26px;
  background: #f8f4ee;
  text-align: center;
  font-family: "M PLUS 1 Code", monospace;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.85;
  letter-spacing: .02em;
  color: #666;
}

.beautySalonBtn {
  margin-top: 48px;
  text-align: center;
}

.beautySalonBtn a {
  width: min(440px, 100%);
  height: 60px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  background: #00533f;
  color: #fff;
  font-family: "M PLUS 1 Code", monospace;
  font-size: 18px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 4px 8px rgba(0, 0, 0, .18);
  transition: opacity .3s ease;
}

.beautySalonBtn a:hover {
  opacity: .75;
}

/* SP */
@media screen and (max-width: 768px) {
  .beautySalon {
    padding: 54px 0 60px;
  }

  .beautySalon .secWidth {
    width: calc(100% - 32px);
  }

  .beautySalonTitle {
    margin-bottom: 24px;
    font-size: 26px;
  }

  .beautySalonLead {
    margin-bottom: 34px;
    font-size: 14px;
    text-align: left;
  }

  .beautySalonCards {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .beautySalonCard h3 {
    min-height: auto;
    padding: 26px 18px;
    font-size: 20px;
  }

  .beautySalonCard p {
    min-height: auto;
    padding: 24px 20px;
    font-size: 14px;
    line-height: 1.8;
    text-align: left;
  }

  .beautySalonBtn {
    margin-top: 36px;
  }

  .beautySalonBtn a {
    height: 56px;
  }
}


/* Staff */
.staffIntro {
  padding: 8rem 0;
  background: #faf7f1;
}

.staffIntro .secWidth {
  margin: 0 auto;
}

.staffIntroTitle {
  margin-bottom: 34px;
  text-align: center;
  font-family: "M PLUS 1 Code", monospace;
  font-size: 34px;
  font-weight: 800;
  letter-spacing: .05em;
  color: #333;
}

.staffIntroLead {
  margin: 0 0 34px;
  text-align: center;
  font-family: "M PLUS 1 Code", monospace;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: .03em;
  color: #666;
}

.staffIntroImage {
  position: relative;
  overflow: hidden;
}

.staffIntroImage img {
  width: 100%;
  display: block;
  aspect-ratio: 1080 / 580;
  object-fit: cover;
}

.staffIntroImage::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 34%;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, .45),
    rgba(0, 0, 0, 0)
  );
  pointer-events: none;
}

.staffIntroCopy {
  position: absolute;
  left: 50%;
  bottom: 36px;
  z-index: 1;
  width: 100%;
  margin: 0;
  transform: translateX(-50%);
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 34px;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: .04em;
  color: #fff;
}

.staffIntroCopy span {
  display: block;
  font-size: 21px;
  font-weight: 500;
}


/* Company */
.companyInfo {
  padding: 80px 0 84px;
  background: #fff;
}

.companyInfo .secWidth {
  /*width: min(1080px, calc(100% - 40px));*/
  margin: 0 auto;
}

.companyInfoTitle {
  margin-bottom: 58px;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 34px;
  font-weight: 800;
  letter-spacing: .05em;
  color: #333;
}

.companyInfoTableWrap {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 64px;
}

.companyInfoTable {
  margin: 0;
}

.companyInfoRow {
  display: grid;
  grid-template-columns: 105px 1fr;
  gap: 22px;
  padding: 17px 0;
  border-bottom: 1px solid #d8d8d8;
}

.companyInfoRow:first-child {
  border-top: none;
}

.companyInfoRow dt {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.7;
  color: #222;
}

.companyInfoRow dd {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.7;
  color: #333;
}

.companyInfoBtn {
  margin-top: 64px;
  text-align: center;
}

.companyInfoBtn a {
  width: min(440px, 100%);
  height: 60px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  background: #00533f;
  color: #fff;
  font-family: "M PLUS 1 Code", monospace;
  font-size: 18px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 4px 8px rgba(0, 0, 0, .18);
  transition: opacity .3s ease;
}

.companyInfoBtn a:hover {
  opacity: .75;
}


/* SP */
@media screen and (max-width: 768px) {
  .staffIntro {
    padding: 54px 0 48px;
  }

  .staffIntro .secWidth {
    width: calc(100% - 32px);
  }

  .staffIntroTitle {
    margin-bottom: 24px;
    font-size: 26px;
  }

  .staffIntroLead {
    margin-bottom: 28px;
    font-size: 14px;
    text-align: left;
  }

  .staffIntroCopy {
    bottom: 24px;
    padding: 0 16px;
    font-size: 24px;
  }

  .staffIntroCopy span {
    font-size: 16px;
  }

  .companyInfo {
    padding: 56px 0 64px;
  }

  .companyInfo .secWidth {
    width: calc(100% - 32px);
  }

  .companyInfoTitle {
    margin-bottom: 36px;
    font-size: 26px;
  }

  .companyInfoTableWrap {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .companyInfoRow {
    grid-template-columns: 92px 1fr;
    gap: 14px;
    padding: 15px 0;
  }

  .companyInfoRow dt,
  .companyInfoRow dd {
    font-size: 14px;
  }

  .companyInfoBtn {
    margin-top: 44px;
  }

  .companyInfoBtn a {
    height: 56px;
    font-size: 16px;
  }
}

/*------/??????------*/

/*------??????------*/
.chuuPage {
  background: #fff;
}

.chuuMv {
  position: relative;
  width: 100%;
  height: 720px;
  overflow: hidden;
}

.chuuMvImg {
  width: 100%;
  height: 100%;
}

.chuuMvImg picture,
.chuuMvImg img {
  width: 100%;
  height: 100%;
  display: block;
}

.chuuMvImg img {
  object-fit: cover;
  object-position: center center;
}

.chuuMv::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .12);
  pointer-events: none;
}

.chuuMvLogo {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 1;
  transform: translate(-50%, -44%);
  text-align: center;
  color: #fff;
}

.chuuMvLogo p {
  margin: 0 0 12px;
  font-family: "M PLUS 1 Code", monospace;
  font-size: 27px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .04em;
  color: #fff;
}

.chuuMvLogo img {
  width: 270px;
  max-width: 70vw;
  display: block;
}


/* intro */
.chuuIntro {
  background: #faf7f1;
}


.chuuIntroText {
  margin: 0 0 50px;
  text-align: center;
  font-family: "M PLUS 1 Code", monospace;
  font-size: 15px;
  font-weight: 600;
  line-height: 2.2;
  letter-spacing: .05em;
  color: #777;
}

.chuuPhotoList {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.chuuPhotoItem {
  overflow: hidden;
  border-radius: 8px;
}

.chuuPhotoItem img {
  width: 100%;
  display: block;
  aspect-ratio: 330 / 220;
  object-fit: cover;
  transition: transform .4s ease;
}

.chuuPhotoItem a:hover img,
.chuuPhotoItem:hover img {
  transform: scale(1.04);
}


/* header?MV??????????? */
.chuuPage .header-main {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 20;
  width: 100%;
  background: transparent;
}

.chuuPage .header-main.scrolled {
  background: rgba(255, 255, 255, .95);
}


/* SP */
@media screen and (max-width: 768px) {
  .chuuMv {
    height: 560px;
  }

  .chuuMvImg img {
    object-position: center center;
  }

  .chuuMvLogo {
    transform: translate(-50%, -35%);
  }

  .chuuMvLogo p {
    margin-bottom: 10px;
    font-size: 20px;
  }

  .chuuMvLogo img {
    width: 210px;
  }


  .chuuIntroText {
    margin-bottom: 34px;
    text-align: left;
    font-size: 14px;
    line-height: 2;
  }

  .chuuPhotoList {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .chuuPhotoItem img {
    aspect-ratio: 343 / 220;
  }
}



.hairSalonTitle {
  margin: 0 0 58px;
  text-align: center;
  font-size: 44px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: .06em;
  color: #333;
}

.hairSalonCatch {
  margin: 0 0 46px;
  text-align: center;
  font-family: "M PLUS 1 Code", monospace;
  font-size: 31px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .04em;
  color: #333;
}

.hairSalonLead {
  margin: 0 0 42px;
  text-align: center;
  font-family: "M PLUS 1 Code", monospace;
  font-size: 14px;
  font-weight: 600;
  line-height: 2.1;
  letter-spacing: .03em;
  color: #777;
}

.hairSalonCardList {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 58px;
}

.hairSalonCard {
  overflow: hidden;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 0 7px rgba(0, 0, 0, .12);
}

.hairSalonCard h3 {
  min-height: 130px;
  margin: 0;
  padding: 32px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 26px;
  font-weight: 800;
  letter-spacing: .04em;
  color: #333;
}

.hairSalonCard p {
  min-height: 100%;
  margin: 0;
  padding: 28px 24px 26px;
  background: #faf7f1;
  text-align: center;
  font-family: "M PLUS 1 Code", monospace;
  font-size: 14px;
  font-weight: 600;
  line-height: 2;
  letter-spacing: .03em;
  color: #777;
}

.cotaSalonBox {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  border: 1px solid #d8d8d8;
  background: #fff;
}

.cotaSalonImg img {
  width: 100%;
  display: block;
  aspect-ratio: 540 / 245;
  object-fit: cover;
}

.cotaSalonText {
  padding: 40px 70px;
}

.cotaSalonText h3 {
  margin: 0 0 18px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 31px;
  font-weight: 800;
  letter-spacing: .03em;
  color: #333;
}

.cotaSalonText p {
  margin: 0;
  font-family: "M PLUS 1 Code", monospace;
  font-size: 14px;
  font-weight: 600;
  line-height: 2;
  letter-spacing: .03em;
  color: #777;
}


/* =========================
   Hair Menu
========================= */

.hairMenu {
  background: #faf7f1;
}



.hairMenuLayout {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 72px;
  align-items: start;
}

.hairMenuSide h2 {
  margin: 0 0 42px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 34px;
  font-weight: 800;
  letter-spacing: .06em;
  color: #333;
}

.hairMenuNav {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.hairMenuNav li {
  padding: 6px 0;
  border-bottom: 1px solid transparent;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: .04em;
  color: #777;
  cursor: pointer;
}


.hairMenuNav li + li {
  margin-left: 3rem;
}

.hairMenuNav li.is-active {
  color: #333;
  border-bottom-color: #777;
}

.hairMenuContent {
  min-height: 470px;
  padding: 48px 60px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .08);
}

.hairMenuTable {
  margin: 0;
}

.hairMenuRow {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  padding: 19px 0;
  border-bottom: 1px solid #d8d8d8;
}

.hairMenuRow dt,
.hairMenuRow dd {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.6;
  color: #333;
}

.hairMenuRow dd {
  text-align: right;
}

.hairMenuNote {
  margin: 24px 0 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.8;
  color: #777;
}


/* SP */
@media screen and (max-width: 768px) {

  .hairSalonTitle {
    margin-bottom: 36px;
    font-size: 32px;
  }

  .hairSalonCatch {
    margin-bottom: 28px;
    font-size: 23px;
  }

  .hairSalonLead {
    margin-bottom: 34px;
    text-align: left;
    font-size: 14px;
    line-height: 1.9;
  }

  .hairSalonCardList {
    grid-template-columns: 1fr;
    gap: 22px;
    margin-bottom: 42px;
  }

  .hairSalonCard h3 {
    min-height: auto;
    padding: 28px 20px;
    font-size: 24px;
  }

  .hairSalonCard p {
    min-height: auto;
    padding: 24px 20px;
    font-size: 14px;
    line-height: 1.9;
  }

  .cotaSalonBox {
    grid-template-columns: 1fr;
  }

  .cotaSalonImg img {
    aspect-ratio: 343 / 190;
  }

  .cotaSalonText {
    padding: 28px 24px 32px;
  }

  .cotaSalonText h3 {
    font-size: 26px;
  }

  .cotaSalonText p {
    font-size: 14px;
  }


  .hairMenuLayout {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .hairMenuSide h2 {
    margin-bottom: 24px;
    font-size: 30px;
  }

  .hairMenuNav li {
    font-size: 16px;
  }

  .hairMenuContent {
    min-height: auto;
    padding: 28px 24px 34px;
  }

  .hairMenuRow {
    gap: 16px;
    padding: 16px 0;
  }

  .hairMenuRow dt,
  .hairMenuRow dd {
    font-size: 16px;
  }
}


.hairSalonAccess {
    background: #faf7f1;
}

.hairSalonAccessLayout {
    display: flex;
    justify-content: space-between;
    gap: 6rem;
    align-items: flex-start;
}

.hairSalonAccessInfo {
    width: 48%;
}

.hairSalonAccessInfo h2 {
    font-size: 3.3rem;
    font-weight: 700;
    margin-bottom: 2rem;
    color: #333;
    line-height: 1.2;
}

/* ???? */

.hairSalonAccessTable {
    width: 100%;
}

.hairSalonAccessRow {
    display: flex;
    align-items: center;
    padding: 2rem 0;
    border-bottom: 1px solid #d9d9d9;
}

.hairSalonAccessRow dt {
    width: 120px;
    flex-shrink: 0;
    font-size: 1.7rem;
    font-weight: bold;
    color: #111;
}

.hairSalonAccessRow dd {
    flex: 1;
    font-size: 1.7rem;
    color: #333;
    line-height: 1.6;
    margin: 0;
}

/* QR??? */

.qrRow dt {
    width: 110px;
}

.qrRow dt img {
    width: 90px;
    display: block;
}

.qrRow dd {
    display: flex;
    align-items: center;
}

/* GoogleMap */

.hairSalonMap {
    width: 48%;
}

.hairSalonMap iframe {
    width: 100%;
    aspect-ratio: 1 / 0.75;
    border: 0;
}

/* ??? */

.hairSalonReserve {
    margin-top: 7rem;
    text-align: center;
}

.hairSalonReserve a {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 560px;
    max-width: 100%;
    height: 78px;

    background: #00563d;
    color: #fff;

    border-radius: 9999px;

    font-size: 2.4rem;
    font-weight: bold;

    text-decoration: none;
    transition: .3s;
}

.hairSalonReserve a:hover {
    opacity: .8;
}

.hairSalonAccessMap{
 width: 42%;
 height: 440px; 
}

.hairSalonAccessMap iframe{
 width: 100%;
 height: 100%; 
}

.hairMenuContent {
  display: none;
}


.hairMenuContent.is-active {
  display: block;
}

/* ==========================
   SP
========================== */

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


.hairSalonAccessLayout{
    flex-direction:column;
    gap:4rem;
}

.hairSalonAccessInfo,
.hairSalonMap{
    width:100%;
}

.hairSalonAccessInfo h2{
    font-size:3.6rem;
    margin-bottom:3rem;
    text-align: center;
}

.hairSalonAccessRow{
    display:block;
    padding:1.8rem 0;
}

.hairSalonAccessRow dt{
    width:100%;
    margin-bottom:1rem;
    font-size:1.8rem;
}

.hairSalonAccessRow dd{
    font-size:1.6rem;
}

.qrRow{
    display:flex;
    align-items:center;
}

.qrRow dt{
    width:80px;
    margin-bottom:0;
}

.qrRow dt img{
    width:70px;
}

.hairSalonReserve{
    margin-top:4rem;
}

.hairMenuNav li.is-active {
  color: #333;
  border-bottom: 2px solid #333;
}


.hairSalonReserve a{
    width:100%;
    height:64px;
    font-size:2rem;
}
.hairSalonAccessMap{
 width: 100%;
}

}


.noto-sans-jp-<uniquifier> {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
}

.m-plus-1-code-<uniquifier> {
  font-family: "M PLUS 1 Code", monospace;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
}



.beforeAfterImage {
 position: relative;
 aspect-ratio: 349 / 237;
 overflow: hidden; 
}



.baItem {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s ease;
    z-index: 1;
}

.baItem.is-active {
    opacity: 1;
    visibility: visible;
    z-index: 2;
}

.baItem img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 20px;
    display: block;
}



.beforeAfterToggle {
  display: flex;
  justify-content: center;
  margin-top: 10px;
}

.toggleBtn {
    min-width: 100px;
    height: 30px;
    border: none;
    background: #cfcac1;
    color: #fff;
    font-size: 18px;
    cursor: pointer;
    line-height: 30px;
}

.toggleBtn:first-child {
  border-radius: 9999px 0 0 9999px;
}

.toggleBtn:last-child {
  border-radius: 0 9999px 9999px 0;
}

.toggleBtn.is-active {
  background: #a6874e;
}