@charset "utf-8";


/*===================================================== */
/* LAYOUT
======================================================= */

#wrapper{
	position:relative;
    z-index:0
}
#container{
	position:relative;
	margin:0 auto;
	padding:0;
}
#container .contents{

}
#container .contents > #mainArea{
	width:100%;
	margin:0 auto 60px;
}
.content-area{  /*各コンテンツの枠*/
    width:100%;
}


/*===================================================== */
/* DESIGN
======================================================= */


/* タイトル */

#container .titleArea{
	padding-top:3.5rem;
	margin-bottom:3em;
}
#container h2.title{
	width:100%;
	margin:0 0 ;
	padding:0px;
	font-size: 25px;
	color: #252525;
	text-align: center;
	font-family: "Noto Serif JP", serif;
	font-weight: 400;
	font-style: normal;
}
#container .title_sub{
	margin-bottom:0.5em;
	font-size: 18px;
	text-align: center;
	font-family: "Noto Serif JP", serif;
	font-weight: 400;
	font-style: normal;
}
#container .title_eng{
	font-size: 12px;
	text-align: center;
}


/* header
======================================================= */

header.header{
    display: flex;
    align-items: center;
	width:100%;
	margin:0 auto 2rem;
	padding: 4%;
    box-sizing: border-box;
    background:white;
}
header.header .logo{
    max-width:50%;
    margin:auto;
    text-align: center;
}

header.header .logo img{
	display: block;
    width:350px;
    max-width:100%;
    margin:auto;
}

/**/
.shops{
    display: grid;
    columns: row;
    gap:1rem;
    width:10%;
}
.shops li{
    display: block;
}
.shops li a{
    display: block;
    padding:2%;
    border:1px solid #DDD;
    font-size: clamp(12px, 0.7vw, 0.8rem);
    border-radius:5px;
    text-decoration:none;
    text-align: center;
}
.shops li a:hover{
    background:#f3f3f3;
}
/**/
.toForm{
    display: flex;
    justify-content: center;
    gap:2.3rem;
}
.toForm > div{
}
.toForm a{
    display: block;
    padding:1.2rem;
    text-decoration:none;
    font-size: 0.7rem;
    text-align:center;
    text-decoration:none;
}
.toForm a:hover{
    background:#f3f3f3;
}
.toForm a img{
    width:32%;
    height: 26px;
    margin:0 auto 0.8rem;
}


/*===================================================== */
/* navi
======================================================= */
#navi{
    display: flex;
    flex-wrap:wrap;
    justify-content: center;
    gap:3.2rem;
    max-width:96%;
    margin:0 auto 2.5rem;
}
#navi a{
    display: block;
    font-size: 0.9rem;
    font-weight: 100;
    white-space: nowrap;
}
/*===================================================== */
/* pankuzu
======================================================= */
ul.pankuzu{
	position: fixed;
	width:100% !important;
	height: 22px;
	margin:0 0 ;
	padding:0px 10px ;
	line-height: 22px;
	background:#f9f9f9;
	z-index: 999;
}
ul.pankuzu li{
	display: inline-block;
	margin-right: 12px;
	font-size:11px;
	color:#666;
}
ul.pankuzu li a{
	font-size:11px;
	color:#666;
}
ul.pankuzu li i{
	margin-right: 12px;
	font-size:11px
}


/*===================================================== */
/* contact
======================================================= */

/* お問い合わせセクション */
.contactSection {
    padding: 4rem 2rem;
    background: #e9e9e9;
    color: #686868;
}

.contactSection h2 {
    font-size: 1.4rem;
    font-weight: 100;
    margin-bottom: 2.5rem;
    color: #686868;
    text-align: center;
}
.contactSection .summary {
    font-size: 0.78rem;
    margin:0 auto 2rem;
    text-align: center;
}
.contactSection .note {
    margin-top:3rem;
    text-align: center;
    font-size: 0.75rem;
    color: #686868;
    line-height: 1.6;
}
.contactSection .inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap:10%;
    width:60%;
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}
.contactSection .inner > div{
    width:50%;
}

.contactSection .inner .mail,
.contactSection .inner .phone{
    padding:4%;
    background:white;
    border:1px solid #d3d3d3;
    border-radius:8px;
}


.contactSection .contactBtn {
    display: inline-block;
    padding: 0.75rem 2rem;
    background: #fff;
    color: #1e293b;
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
    border-radius: 8px;
    transition: background 0.3s;
}

.contactSection .contactBtn:hover {
    background: #f3f4f6;
}

.contactSection .phone {
    padding: 1rem 1.5rem;
    background: #334155;
    border-radius: 8px;
    min-width: 280px;
    width: 100%;
    max-width: 400px;
}

.contactSection .phoneTitle {
    font-size: 1.0rem;
    text-align: center;
    margin-bottom: 1rem;
}

.contactSection .phoneItem {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    padding: 0.5rem 0;
    margin-bottom: 0.5rem;
    width: 100%;
}

.contactSection .phoneItem span,
.contactSection .phoneItem a {
    display: block;
}

.contactSection .studioName,
.contactSection .studioPhone {
    width:8rem;
    font-weight: 600;
    font-size: 0.9rem;
    text-align: left;
}

.contactSection .studioName {
    margin-bottom: 0.3rem;
    font-size: 0.8rem;
    padding:0.4rem;
    background:#f6f6f6;
}

.contactSection .studioPhone {
    text-decoration: none;
    transition: all 0.3s ease;
    display: inline-block;
}

.contactSection .studioPhone:hover {
    color: #60a5fa;
    transform: scale(1.05);
}

.contactSection .studioPhone:active {
    transform: scale(0.98);
}


/*===================================================== */
/* footer
======================================================= */

/*####################################################################
フッタ
####################################################################*/


footer{
	width:100%;
	padding:5rem 0;
	color:#202020;
	background:#FFF;
}
.footerInner{
	position: relative;
	width:90%;
	margin:0 auto 2rem;
	padding: 0;
}
.footerLogo{
	width:20%;
	min-width:300px;
	margin-right: 80px;
}
.footerLogo img{
	width:100%;
}
.footerInner .flex{
    display: flex;
    justify-content: flex-start;
    gap:5rem;
}


/* footerNavi */

.footerNavi{
	width:100%;
	margin:3rem 0  3rem;
}
.footerNavi ul.mainNavi{
	display: flex;
    gap:4rem;
    align-items: center;
	flex-wrap: wrap;
	justify-content:center;
}
.footerNavi ul.mainNavi li{
	display: block;
	margin:0 ;
	padding:0;
}
.footerNavi ul.mainNavi li a{
	display: block;
	color:#444;
	font-size:0.9rem;
    font-weight: 100;
}
.footerNavi a:visited{
	text-decoration:none;
}
.footerNavi a:link{
	text-decoration:none;
}
.footerNavi a:hover{
	background:#e0e0e0;
}


/*subnavi*/
ul.subNavi{
	display: flex;
    flex-wrap:nowrap;
    gap:2rem;
    align-items: center;
	justify-content:flex-start;
}
ul.subNavi li{
	display: block;
	margin:0 ;
	padding:0;
}
ul.subNavi li a{
	display: block;
    padding:2% 5%;
    background:#f5f5f5;
	color:#444;
    white-space: nowrap;
	font-size:0.8rem;
    font-weight: 100;
    text-decoration: none;
}
ul.subNavi li a:hover{
    background:#EEE;
}
/*sns*/
.footerSns{
    display: flex;
    gap:2rem;
	width:auto;
}
.footerSns a{
	display: inline-block;
	width:150px;
}
.footerSns a img{
	width:100%;
}


/* footerStudio */

.footerStudio{
	width:100%;
	margin: 0 auto 2rem;
}
.footerStudio ul{
	display: flex;
	justify-content: space-between;
	width:100%;
}
.footerStudio ul li{
	display: block;
	width:48%;
	padding:2%;
	box-sizing: border-box;
	background:#f9f9f9;
	border-radius:5px;
    border-right:10px solid #f6f6f6;
    border-bottom:10px solid #f6f6f6;
}
.footerStudio ul li > div{
	margin:0 0 1.2rem;
	font-size: 1em;
}
.footerStudio ul li > div span.title{
	display: inline-block;
	width:4rem;
	font-size: 0.84rem;
	font-weight: bold;
}
.footerStudio ul li .name{
	margin-bottom: 2rem;
	font-size:1.2rem;
}

.footerStudio ul li .studio,
.footerStudio ul li .access{
	display: inline-block;
	margin-right: 1.5em;
}
.footerStudio ul li .studio a,
.footerStudio ul li .access a{
	display: block;
	padding:0.4rem;
	background: #eee;
	text-decoration: none;
}
.footerStudio ul li p.studio a:hover,
.footerStudio ul li p.access a:hover{
	background: #ddd;
}
.footerStudio ul li p.studio i,
.footerStudio ul li p.access i{
	display: inline-block;
	margin-left:0.8em;
	font-size: 0.7em;
}
.footerStudio ul li p.address{
	margin-top:1.5em;
}
.footerStudio ul li p.tel{
}
.footerStudio ul li p.open{
}



/* footer_contact */
.footer_contact{
	clear:both;
	width:90%;
	padding:15px 0;
	margin:0 auto 25px;
	box-sizing: border-box;
}

.footer_contact .reservation{
	width:100%;
	margin:0 auto 15px;
	text-align:center;
}
.footer_contact .reservation a{
	width:320px;
	display:block;
	padding:12px 0;
	color:#FFF !important;
	background:#e70e41;
	text-decoration:none;
	font-size:16px;
	font-weight:bold;
	border-radius:5px;
}
.footer_contact .reserve a:hover{
	background:#7b4249;
}


.footer_contact ul{
	display: flex;
	align-items: center;
	justify-items: flex-start;
	width:100%;
	margin:0 auto 20px;
}
.footer_contact ul li{
	vertical-align:middle;
	margin:0 0 20px;
	padding:0 1em;
	font-size:0.78em;
}
.footer_contact ul li:nth-child(2){
	border-left:1px solid #CCC;
	border-right:1px solid #CCC;
}
.footer_contact ul span.tel{
	padding:0 10px;
	font-size:22px;
	font-weight:bold;
}
.footer_contact ul span.time{
}

.footer_contact a{
}
/* invoice */
.footer_contact .invoice{
	margin:0 auto 15px 1em;
	font-size: 0.9rem;
	line-height: 1.8;
	text-align:center;
}
.footer_contact .invoice p{
	width:260px;
	padding:1.0rem;
	margin-bottom:1.5rem;
	background:#f6f6f6;
	border: 1px solid #dfdfdf;
}

/**/

.footer .payments{
	width:100%;
	margin: 0 auto 45px;
	padding:4rem;
	box-sizing: border-box;
	background:#f6f6f6;
}
.footer .payments img{
	display: block;
	width:800px;
	margin-bottom:1rem;
	padding:1.8rem;
	background:#fff;
}
.footer .payments p{
	padding:8px 0;
	font-size:13px;
}
.footer .payments p span{
	font-size: 11px;
}



/**/
.footer .copyright{
	text-align:center;
	font-size:clamp(14px , 0.8vw, 0.9rem);
	color:#ccc;
}
.footer #copyright span{
	font-size:10px;
}

/* ###コピーライト##################################################### */

#copyright{
	margin: 0 0 ;

	font-size:12px;
	line-height:1.8;
	text-align: center;
}

/* ============================================================
   レスポンシブ対応 - メディアクエリ
   ============================================================ */

@media screen and (max-width: 768px) {
    /* HEADER */
    header.header {
        /* flex-direction: column; */
        flex-wrap:wrap;
        justify-content: center;
        padding: 2rem 0rem 2rem;
        margin-bottom: 0rem;
        position: relative;
    }
    header.header .humberger{
        color: #444 !important;
    }

    header.header .shops {
        width: 30%;
        order: 2;
    }

    header.header .logo {
        width: 100%;
        max-width: 100%;
        margin: 0 auto 1.5rem;
        order: 1;
    }

    header.header .logo img {
        max-width: 100%;
    }

    header.header .logo h1 {
        font-size: clamp(12px, 2.5vw, 1rem);
        margin-top: 0.5rem;
    }
    header.header .logo h1 span{
        display: block;
    }

    header.header .toForm {
        width: 60%;
        gap: 1rem;
        justify-content: flex-end !important;
        margin-top: 0;
        order: 3;
    }
    header.header .toForm > div{
        width:30%;
    }

    header.header .toForm a {
        padding: 0.8rem 1rem;
        font-size: 0.7rem;
    }

    header.header .toForm a img {
        width: 24px;
        height: 24px;
        margin-bottom: 0.5rem;
    }

    /* NAVIGATION */
    #navi {
        gap: 1.5rem;
        padding: 0 2%;
        margin-bottom: 1.5rem;
    }

    #navi a {
        font-size: 0.8rem;
    }

    /* CONTAINER */
    #container {
        padding: 0;
    }

    #container .contents {
        padding: 0;
    }

    #container .contents > #mainArea {
        margin: 0 auto 0px;
    }

    #container .titleArea {
        padding-top: 2rem;
        margin-bottom: 2rem;
    }

    #container h2.title {
        font-size: clamp(18px, 5vw, 1.8rem);
        padding: 0 5%;
    }

    #container .title_sub {
        font-size: clamp(14px, 3.5vw, 1rem);
        padding: 0 5%;
    }

    #container .title_eng {
        font-size: 0.7rem;
    }

    /* FOOTER */
    footer {
        padding: 3rem 0 2rem;
    }

    .footerInner {
        width: 95%;
        margin-bottom: 1.5rem;
    }

    .footerInner .flex {
        flex-direction: column;
        gap: 2rem;
    }

    .footerLogo {
        width: 100%;
        min-width: auto;
        margin-right: 0;
        margin-bottom: 1.5rem;
        text-align: center;
    }

    /* FOOTER NAVI */
    .footerNavi {
        width: 100%;
        margin: 2rem 0;
        padding: 1.5rem 0;
    }

    .footerNavi ul.mainNavi {
        flex-direction: column;
        gap: 1rem;
        padding: 0 1rem;
    }

    .footerNavi ul.mainNavi li {
        width: 100%;
        text-align: center;
    }

    .footerNavi ul.mainNavi li a {
        font-size: 0.9rem;
        padding: 0.5rem 1rem;
        display: block;
    }

    /* SUB NAVI */
    ul.subNavi {
        flex-wrap: wrap;
        gap: 1rem;
        justify-content: center;
        padding: 0 1rem;
    }

    ul.subNavi li {
        flex: 0 1 auto;
    }

    ul.subNavi li a {
        font-size: 0.75rem;
        padding: 0.5rem 1rem;
        white-space: nowrap;
    }

    /* FOOTER SNS */
    .footerSns {
        width: 100%;
        justify-content: center;
        gap: 1.5rem;
        margin-bottom: 1.5rem;
    }

    .footerSns a {
        width: 120px;
    }

    /* FOOTER STUDIO */
    .footerStudio {
        width: 100%;
        margin-bottom: 1.5rem;
    }

    .footerStudio ul {
        flex-direction: column;
        gap: 1.5rem;
    }

    .footerStudio ul li {
        width: 100%;
    }

    .footerStudio ul li .name {
        font-size: 1.1rem;
        margin-bottom: 1.5rem;
    }

    .footerStudio ul li > div {
        margin-bottom: 1rem;
        font-size: 0.9rem;
    }

    .footerStudio ul li > div span.title {
        font-size: 0.8rem;
    }

    .footerStudio ul li .studio,
    .footerStudio ul li .access {
        display: block;
        margin-right: 0;
        margin-bottom: 0.8rem;
    }

    .footerStudio ul li .studio a,
    .footerStudio ul li .access a {
        padding: 0.5rem 1rem;
        text-align: center;
    }

    /* FOOTER CONTACT */
    .footer_contact {
        width: 95%;
        padding: 1.5rem 0;
        margin: 0 auto 1.5rem;
    }

    .footer_contact .reservation {
        margin-bottom: 1rem;
    }

    .footer_contact .reservation a {
        width: 90%;
        max-width: 280px;
        font-size: 0.9rem;
        padding: 0.8rem 1.5rem;
        display: block;
        margin: 0 auto;
    }

    .footer_contact .invoiceBox {
        width: 100%;
    }

    .footer_contact .invoiceInner {
        padding: 0.8rem 1rem;
        text-align: center;
    }

    .footer_contact .invoiceTitle {
        font-size: 0.75rem;
        margin-bottom: 0.5rem;
    }

    .footer_contact .invoiceNumber {
        font-size: 0.85rem;
    }

    /* FOOTER PAYMENTS */
    .footer .payments {
        padding: 2rem 1rem;
        margin: 0 auto 2rem;
    }

    .footer .payments img {
        width: 100%;
        max-width: 100%;
        padding: 1rem;
    }

    .footer .payments p.paymentNote {
        font-size: 0.75rem;
        padding: 0.5rem 1rem;
        line-height: 1.6;
    }

    /* FOOTER COPYRIGHT */
    .footer .copyright {
        font-size: 0.75rem;
        padding: 0 1rem;
    }

    /* PANKUZU */
    ul.pankuzu {
        height: auto;
        padding: 0.5rem 10px;
        font-size: 0.7rem;
    }

    ul.pankuzu li {
        font-size: 0.7rem;
        margin-right: 0.5rem;
    }

    ul.pankuzu li a {
        font-size: 0.7rem;
    }

    ul.pankuzu li i {
        font-size: 0.7rem;
        margin-right: 0.5rem;
    }

    /* CONTACT SECTION */
    .contactSection {
        padding: 3rem 1rem;
    }

    .contactSection h2 {
        font-size: clamp(18px, 4vw, 1.5rem);
        margin-bottom: 1.5rem;
    }

    .contactSection .summary {
        font-size: 0.85rem;
        margin-bottom: 1.5rem;
        padding: 0 1rem;
    }

    .contactSection .note {
        font-size: 0.7rem;
        margin-top: 2rem;
        padding: 0 1rem;
    }

    .contactSection .inner {
        flex-direction: column;
        width: 100%;
        max-width: 100%;
        gap: 2rem;
        padding: 0 1rem;
    }

    .contactSection .inner > div {
        width: 100%;
        max-width: 400px;
        margin: 0 auto;
    }

    .contactSection .inner .mail,
    .contactSection .inner .phone {
        padding: 6%;
    }

    .contactSection .contactBtn {
        font-size: 0.9rem;
        padding: 0.75rem 2rem;
        width: 100%;
        display: block;
    }

    .contactSection .phone {
        min-width: auto;
        max-width: 100%;
    }

    .contactSection .phoneTitle {
        font-size: 0.9rem;
        margin-bottom: 1rem;
    }

    .contactSection .phoneItem {
        flex-direction: column;
        align-items: stretch;
        gap: 0.5rem;
        padding: 0.5rem 0;
    }

    .contactSection .studioName,
    .contactSection .studioPhone {
        width: 100%;
        text-align: center;
        font-size: 0.9rem;
    }

    .contactSection .studioName {
        font-size: 0.85rem;
        padding: 0.5rem;
    }

    .contactSection .studioPhone {
        padding: 0.75rem 1rem;
        font-size: 1.1rem;
        font-weight: bold;
    }
}

@media screen and (max-width: 480px) {
    /* より小さな画面用の追加調整 */
    header.header {
        padding: 1.5rem 0rem 0.5rem;
        gap:5%;
    }

    header.header .logo img {
        width: 240px;
    }

    header.header .toForm {
        /* flex-direction: column; */
        gap: 0.8rem;
    }

    header.header .toForm a {
        width: 100%;
        max-width: 280px;
    }

    #navi {
        gap: 1rem;
        padding: 0 1rem;
    }

    #navi a {
        font-size: 0.75rem;
    }

    #container h2.title {
        font-size: clamp(16px, 6vw, 1.5rem);
    }

    /* FOOTER NAVI - 480px以下 */
    .footerNavi {
        margin: 1.5rem 0;
        padding: 1rem 0;
    }

    .footerNavi ul.mainNavi {
        gap: 0.8rem;
        padding: 0 0.5rem;
    }

    .footerNavi ul.mainNavi li a {
        font-size: 0.85rem;
        padding: 0.4rem 0.8rem;
    }

    /* SUB NAVI - 480px以下 */
    ul.subNavi {
        gap: 0.8rem;
        padding: 0 0.5rem;
    }

    ul.subNavi li a {
        font-size: 0.7rem;
        padding: 0.4rem 0.8rem;
    }

    /* FOOTER SNS - 480px以下 */
    .footerSns {
        gap: 1rem;
        margin-bottom: 1rem;
    }

    .footerSns a {
        width: 100px;
    }

    /* FOOTER INNER - 480px以下 */
    .footerInner {
        width: 100%;
    }

    .footerInner .flex {
        gap: 1.5rem;
    }

    .footerLogo {
        margin-bottom: 1rem;
    }

    /* FOOTER STUDIO - 480px以下 */
    .footerStudio {
        margin-bottom: 1rem;
    }

    .footerStudio ul {
        gap: 1rem;
    }

    .footerStudio ul li {
        padding: 3%;
    }

    .footerStudio ul li .name {
        font-size: 1rem;
        margin-bottom: 1rem;
    }

    .footerStudio ul li > div {
        font-size: 0.85rem;
        margin-bottom: 0.8rem;
    }

    .footerStudio ul li > div span.title {
        font-size: 0.75rem;
    }

    .footerStudio ul li .studio a,
    .footerStudio ul li .access a {
        padding: 0.4rem 0.8rem;
        font-size: 0.85rem;
    }

    .footer .payments {
        padding: 1.5rem 0.5rem;
    }

    .footer .payments img {
        padding: 0.8rem;
    }

    .footer .payments p.paymentNote {
        font-size: 0.7rem;
        padding: 0.4rem 0.8rem;
    }

    .footer .copyright {
        font-size: 0.7rem;
    }

    /* CONTACT SECTION - より小さな画面用 */
    .contactSection {
        padding: 2.5rem 0.8rem;
    }

    .contactSection h2 {
        font-size: clamp(16px, 5vw, 1.3rem);
        margin-bottom: 1.2rem;
    }

    .contactSection .summary {
        font-size: 0.8rem;
        padding: 0 0.5rem;
        margin-bottom: 1.2rem;
    }

    .contactSection .note {
        font-size: 0.65rem;
        margin-top: 1.5rem;
        padding: 0 0.5rem;
    }

    .contactSection .inner {
        gap: 1.5rem;
        padding: 0 0.5rem;
    }

    .contactSection .inner > div {
        max-width: 350px;
    }

    .contactSection .inner .mail,
    .contactSection .inner .phone {
        padding: 5%;
    }

    .contactSection .contactBtn {
        font-size: 0.85rem;
        padding: 0.7rem 1.8rem;
    }

    .contactSection .phoneTitle {
        font-size: 0.85rem;
        margin-bottom: 0.8rem;
    }

    .contactSection .phoneItem {
        gap: 0.4rem;
        padding: 0.4rem 0;
    }

    .contactSection .studioName {
        font-size: 0.8rem;
        padding: 0.4rem;
    }

    .contactSection .studioPhone {
        font-size: 1rem;
        padding: 0.7rem 1rem;
    }
}
