@charset "utf-8";



/* ==================== 基本設定 ==================== */

body{
width: 100%;
min-width: 100%;
webkit-text-size-adjust : none;
}

body.fixed {
width: 100%;
height: 100%;
position: fixed;
}

img {
max-width: 100%;
height: auto;
width /***/:auto;
float: none!important;
text-align: center;
}



p,
td,
th,
li,
dt,
dd,
input,
textarea,
.entryBody,
.entryMore {
font-size:1.3rem;
}

.pc_none {
display: block;
}

br.pc_none {
display: inline;
}

.sp_none {
display: none!important;
}

.maintitle h2{
	margin:2.5rem 0;
}

a[href^="tel:"] {
color: #fff!important;
display:inline-block;
}



/* ==================== レイアウト ==================== */

.content_inner{
    padding-left: 3%;
    padding-right: 3%;
}

.content{
	display:block;
}

.home .main{
padding:0 0 10%;
}

.column_main{
	width:100%;
	margin:0 auto 5vh;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.column_sub{
	width:100%;
	margin:0 auto;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

/* ==================== 汎用装飾小技 ==================== */

.btn{
	margin:3vh 0;
	font-size:1.2rem;
}

.btn a {
    padding: 0.5rem 4rem;
}

/* ========== ヘッダー ========== */

.header{
	padding:15px 0;
}

.topPage .header{
	background:#000;
}

.header.scroll{
	padding:15px 0;
}

.header_inner {
width: 94%;
margin:0 auto;
padding:0;
position: relative;
height:auto;
}

.scroll .header_inner{
	padding:0;
}

.header_logo img{
max-height:36px;
width:auto;
}

/* ========== スマホ用メニュー ========== */

.header_menu {
display: none;
}

.header_humberger{
    height: 20px;
    position: absolute;
    right: 0;
	top:0;
    width: 30px;
	z-index: 9999;
	margin:8px 8px 0 0;
}

.header_humberger .menu_line{
    background: #000;
    display: block;
    height: 1px;
    position: absolute;
    transition:transform .3s;
    width: 100%;
}

.menu_line.active{
}

.menu_line.center{
    top: 9px;
}
.menu_line.bottom{
    bottom: 0;
}
.menu_line.top.active{
    top: 9px;
    transform: rotate(45deg);
}
.menu_line.center.active{
    transform:scaleX(0);
}
.menu_line.bottom.active{
    bottom: 10px;
    transform: rotate(135deg);
}

.header_menu_drawer{
top:0;
left:0;
background:rgb(255 255 255 / 95%);
display: none;
height: 100%;
position: fixed;
width: 100%;
z-index: 999;
background: #f2f2f0;
}

.header_menu_drawer_inner{
    height: 100%;
	margin:70px auto 0;
    width: 90%;
	text-align:right;
	overflow-y:auto;
}

.header_menu_drawer_wrap{
	display:block;
}

.header_menu_drawer_wrap.active{
	display:block;
}

.header_menu_drawer_logo{
	text-align:right;
	margin-bottom:30px;
}

.header_menu_drawer_logo img{
	max-width:220px;
}





.header_menu_drawer ul{
	list-style:none;
	padding:0;
	margin:0;
}

.header_menu_drawer ul li{
display:inline-block;
vertical-align:top;
margin:0 0 0 20px;
color:#000;
}

.header_menu_drawer ul li ul{
	margin-top:15px;
}

.header_menu_drawer ul li ul li{
display:block;
}

.header_menu_drawer ul span{
	display:block;
	font-size:12px;	
}

.header_menu_drawer ul a{
font-weight: bold;
text-decoration: none;
transition: .5s;
}
.header_menu_drawer ul a:hover{
color: #fff;
}

.header_menu_drawer ul > li {
display: block;
margin: 0 0 15px 0;
}
.header_menu_drawer ul > li >span {
font-size: min(16px,4.2vw);
line-height: 1.2;
font-weight:600;
text-align:right;
}

.header_menu_drawer ul li ul {
margin: 15px auto;
display: flex;
flex-wrap: wrap;
justify-content: right;
border-bottom: solid 1px #aaa;
padding: 0 0 15px;
gap: 8px;
}
.header_menu_drawer ul > li > ul >li {
display: flex;
font-size: 11px;
font-weight: normal;
margin: 0;
}
.header_menu_drawer ul li ul li a {
position: relative;
font-weight: normal;
border-radius: 5px;
border: 1px solid;
padding: 5px 15px;
background: #fff;
font-size: 12px;
}
.header_menu_drawer ul li ul li a:before {
    content: "\f105";
    font-family: "Font Awesome 6 Pro", "Font Awesome 6 Free", "Font Awesome 5 Free";
    margin-right: 5px;
    font-weight: 900;
}

.header_menu_drawer ul.header_menu_drawer_sns {
display: flex;
justify-content: center;
gap: 2rem;
}

.header_menu_drawer ul.header_menu_drawer_sns li {
font-size: 1.6rem;
margin: 0;
}

.header_menu_drawer ul.header_menu_drawer_sns li a {
height: 30px;
width: 30px;
display: flex;
justify-content: center;
align-items: center;
border: 1px solid;
border-radius: 50%;
color:#fff;
background:#000;
}



/* ---------- ヘッダーCTA ---------- */

.header_menu_drawer_contact {
margin-top:30px;
width: 100%;
color:#fff;
font-weight:bold;
text-align:center;
}


.header_menu_drawer_contact li{
border-radius:10px;
font-size:1.2rem;
}
ul.header_menu_drawer_contact li {
text-align: center;
}
ul.header_menu_drawer_contact li span{
font-size:2.4rem;
margin:0 5px;
vertical-align:sub;
text-align:center;
}

ul.header_menu_drawer_contact li a{
}

ul.header_menu_drawer_contact li:nth-child(2){
padding:10px 10px;
border: 1px solid;
background: #fff;
}
ul.header_menu_drawer_contact li:nth-child(3){
padding:10px 10px;
border: 1px solid;
background: #fff;
}


/* ========== キャッチ画像 ========== */

.catcharea{
margin:auto;
}
.catcharea_slick .slick-slide {
border-bottom-right-radius:0;
border-bottom-left-radius:0;
}
.catcharea_slick .slick-slide img {
border-bottom-right-radius:0;
border-bottom-left-radius:0;
}
.catcharea_flex {
position: relative;
padding: 2rem;
height: auto;
width: 97%;
box-sizing: border-box;
justify-content:center;
background-image: linear-gradient(0deg, rgb(15 23 42 / 40%), transparent);
}
.catcharea_inner{
height:auto;
box-sizing:border-box;
padding: 0;
color:#000;
}


.catcharea_inner .catcharea_brand{
font-size:4.8rem;
}

.catcharea_inner h2,
.catcharea_inner h1{
font-size:1.8rem;
}

.catcharea_inner p{
font-size:1.2rem;
}

.catcharea_slick .slick-slide{
margin-right: 1.5vw!important;
margin-left: 1.5vw!important;
}

.catcharea_slick.slick-initialized {
height: 50vh;
margin: auto;
}

.cta {
    text-align: center;
}
.cta a {
    color: #000;
    background: #fff;
}



/* ========== フッター ========== */

.footer {
width: 100%;
margin: 0 auto 15px;
}

.footer_inner .copyright{
font-size:1.2rem;
text-align: center;
}

.footer_inner .information{
	float:none;
	text-align:center;
}

.footer_inner .information p span a{
	display:inline-block;
}

.footer_inner .logo{
float:none;
padding-top:30px;
text-align:center;
}

.footer_inner .logo img{
	max-height:25px;
}

.footer_inner .footer_sns{
text-align:center;
}

.footer .footer_menu{
display:none;
}

/* ========== フッター CTA========== */

.footer_fixarea{
	padding:10px 0;
}


.footer_fixarea p{
	margin-bottom:5px;
}

.footer_fixarea ul{
	display:flex;
	justify-content: center;
}

.footer_fixarea ul li:nth-child(1),
.footer_fixarea ul li{
	margin:0 10px;
	padding:10px!important;
}

.pagetop{
	right:5%;
}

/* ========== その他 ========== */

.maintitle_sub {
    right: unset;
    top: -3.4rem;
}

/* ========== お問い合わせ ========== */

.p_contact .maintitle_sub {
font-size: min(10rem, 20vw);
left: 0;
right: 0;
}

.p_contact ul li a[href^="tel:"] {
    pointer-events: initial;
}

/* ==================== 選ばれる理由 ==================== */

.p_reason{
	margin-bottom:5vh;
}

.p_reason ul li {
width: 100%;
max-width: 560px;
}

.p_reason ul li h3{
	text-align:left;
	font-size:1.3rem;
}

.p_reason ul li p{
	font-size:1.2rem;
}


/* ==================== サービス ==================== */

.p_service{
	margin-bottom:5vh;
}

.p_service ul{
}

.p_service ul li:nth-child(-n+2){
	width:100%;
}


.p_service ul li{
    width: 100%;
    margin: 0 0 20px;
}


.p_service ul li .block{
width:80%;
padding:0 10px;
box-sizing:border-box;
}

.p_service ul li .icon{
width:20%;	
}

.p_service ul li img{
padding:10px 5px;
}

.p_service ul li i {
    width: 60px;
    height: 60px;
    font-size: 30px;
    line-height: 60px;
}

.p_service ul li h3{
	font-size:1.4rem;
}

.p_service ul li p{
	font-size:1.2rem;	
}


/* ==================== 料金 ==================== */
	
.p_price{
}

.p_price ul li{
	width:100%;
	margin:0 0 5vh;
}

.p_price ul li h3{
	font-size:1.6rem;
}

.p_price ul li h4{
	font-size:3.4rem;	
}

.p_price ul li dd{
	font-size:1.1rem;	
}

/* ==================== メッセージ ==================== */

.p_concept {
    background-image: url(./cmn/images/concept_bg_sp.jpg);
    background-position: center center;
	background-size:initial;
	background-attachment:initial;
}

.p_concept .read p{
	font-size:1.2rem;
}

.p_concept .read{
	width:90%;
	margin:auto;
}

.p_concept p{
	text-align:left;
}

/* ==================== コンテンツメニュー ==================== */

.p_menu ul li{
	width:50%;
}

.p_menu ul li .block{
	height:150px;
}

/* ==================== お知らせ ==================== */

.p_news .date{
justify-content: left;
}

.p_news .date li{
font-size:1.2rem;
flex-wrap: wrap;
}


.p_news .date li:nth-child(2n){
margin-right:0;
}

.p_news .date li span.dateCategory{
	padding:3px 10px;
}

.p_news .date li span.news_title{
display:block;
margin-top:10px;
width: 100%;
}


/* ==================== お問合せ ==================== */

.contact_box{
	width:94%;
	margin:0 auto;
}

.p_contact{
padding:10% 5%;
}

.p_contact ul{
margin:0;
	display:block;
}

.p_contact ul li{
margin:2vh auto;
font-size:1.4rem;
}

.p_contact ul li a[href^="tel:"]{
color:#033824 !important;
}

.p_contact .contact_tel .tel{
font-size:3.0rem;
}

.p_contact .contact_tel .tel a{
color:#fff!important;
display:inline-block;
}

.p_contact .contact_tel .tel span{
font-size:1.2rem;
}


form#mailformpro tr,
form#mailformpro th,
form#mailformpro td{
	width:100%;
	display:block;
}

/* ==================== about ==================== */
.about_wrap {
gap: 2rem;
}
.about_wrap .flex_inner:nth-child(2), .about_wrap .flex_inner {
    width: 100%;
    margin: 0;
}

/* ==================== business ==================== */
.business_flex .flex_inner {
    width: 100%;
}

/* ==================== セカンドエリア ==================== */
#secondArea {
width: 100%;
float: none;
}

#secondArea #subMenu{
display:block;
}


/* ==================== ブログ記事 ==================== */

.has_secondArea{
	width:100%;
	float:none;
}

.wp_profile-box__container{
	display:block;
}

.wp_profile-box__figure{
	width:20%;
	margin-bottom:20px;
}

.wp_profile-box__body{padding:0;}.wp-profile-box__container{flex-wrap:wrap;}.wp-profile-box__figure{margin-bottom:2.5vh;}.wp-profile-box__figure img{border-radius: 50%;}.wp-profile-box__body{padding:0;}.wp-profile-box__content p{line-height:1.4;}


.clmn_wrap{
	display:block;
}

.clmn_wrap .flex_inner{
width:100%;
}

.clmn_wrap .flex_inner:nth-child(2) {
width:100%;
}

.product_flex a{
	width:100%;
}

ul.product_image li{
	width:48%;
}

.salon_archive_list {
grid-template-columns: repeat(1, 1fr);
}
.salon_detail_flex {
grid-template-columns: repeat(1, 1fr);
}

.product_archive_list {
    grid-template-columns: repeat(1, 1fr);
}

/* === 2026-08-24 スマホUI修正 === */
/* ドット：slick既定CSSがテーマ指定(20x4のバー)を上書きしていたため詳細度を上げて復元 */
.catcharea_slick .slick-dots{ bottom:auto; height:auto; }
.catcharea_slick .slick-dots li{ width:20px; height:4px; }
.catcharea_slick .slick-dots li button{ width:20px; height:4px; padding:0; }
.catcharea_slick .slick-dots li button:before{ width:20px; height:4px; line-height:4px; }
/* アンカー着地が固定ヘッダー(66px)に隠れないように */
html{ scroll-padding-top:76px; }

/* --- タップ領域44px確保（レイアウトは動かさない） --- */
/* ハンバーガーは絶対配置のためpadding不可。疑似要素で当たり判定のみ拡大 */
.header_humberger::after{ content:""; position:absolute; top:-12px; right:-12px; bottom:-12px; left:-12px; }
.cta a, .cta01 a{ min-height:44px; }
.top_salon_list_btn a{ min-height:44px; }
.top_salon_area a{ min-height:44px; }
.header_logo a{ min-height:44px; }
.news_title a{ display:inline-block; padding:8px 0; }

/* 店舗詳細のタップ領域 44px（2026-08-30） */
.monet-salon-tel a{ display:inline-block; min-height:44px; line-height:44px; }
.salon_detail_back a{ min-height:44px; }


/* 2026-09-21 店名をGBPの正式名称（白髪染めと髪質改善のお店 monet [モネ] 〇〇院）に統一した結果、
   トップのサロン紹介スライダーで1行目が枠幅353pxに対し351pxとほぼ余白ゼロになり、
   文字が画像の端に接していたため左右に余白を確保する。 */
.top_salon_list_title{
    padding: 0 1.2em;
    box-sizing: border-box;
}

/* A19 スマホ追従CTA（2026-09-22）
   sp.css 全体が media="screen and (max-width:992px)" で読まれているので @media は要らない。
   ・色は既存の主CTA（.cta01 a の #0f172a）に合わせた。
   ・.fixcta_tel の color に !important を付けているのは、上の a[href^="tel:"] が
     color:#fff!important を全体に当てており、白地ボタンで文字が消えるため。
   ・body の下余白と .pagetop の位置は、CTAにフッターとページトップが隠れないように持ち上げている。 */
.fixcta {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9500;
    display: flex;
    gap: 8px;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
    background: rgba(255,255,255,.95);
    border-top: 1px solid #e5e5e2;
    box-shadow: 0 -2px 12px rgba(0,0,0,.08);
}
.fixcta a {
    flex: 1 1 0;
    min-height: 52px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 30px;
    text-decoration: none;
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1.3;
}
.fixcta .fixcta_tel {
    display: flex;
    background: #fff;
    color: #0f172a!important;
    border: 1px solid #0f172a;
}
.fixcta .fixcta_tel small {
    font-size: 1.2rem;
    font-weight: 400;
    letter-spacing: .02em;
    opacity: .7;
}
.fixcta .fixcta_book {
    background: #0f172a;
    color: #fff;
}
/* WordPress の global-styles-inline-css が head の最後に body{padding:0} を出すので、
   body だけの指定では負ける。html を足して詳細度を上げている。 */
html body {
    padding-bottom: 76px;
}
.pagetop {
    bottom: 96px;
}

/* A38（2026-09-22）slick 初期化前もスマホの高さを 50vh に固定する。
   下の .catcharea_slick.slick-initialized{height:50vh} だけだと、初期化前は style.css の
   calc(96vh - 120px) が効いてしまい、初期化の瞬間に高さが跳ねる（＝CLS）。 */
.catcharea_slick { height: 50vh; }

/* A39（2026-09-22）フォント差し替わりによるCLS対策。
   実測：412px幅で .catcharea h1 が 代替フォント27px（1行）→ Libre Baskerville 52px（2行）と
   25px 伸び、以下のコンテンツが丸ごとずれていた（Lighthouseモバイル CLS 0.09）。
   430px以下では Web フォントだと必ず2行になるので、先に2行分の高さを確保しておく。
   440px以上は両方1行なので min-height は当てない（余白が空いてしまうため）。 */
.catcharea h1 { line-height: 1.5; }
@media screen and (max-width:430px){
    .catcharea h1 { min-height: 54px; }
}

/* A39（2026-09-22）上と同じ。992px以下の実測値。
   トップ（.catcharea）と下層（.subcatch）で header の高さが 74px / 89px と違う。 */
.catcharea { padding-top: 74px; }
.subcatch { padding-top: 89px; }
