@charset "UTF-8";
/*
Theme Name:ビューソウル
Theme URI:
Description:ビューソウルの専用テンプレートです。
Author:koshimizu ayako
Version:1.0 2025.07.16
*/

/* iphone リセット*/
input[type="submit"],
input[type="button"],
input[type="reset"]{
  border-radius: 0;
  -webkit-box-sizing: content-box;
  -webkit-appearance: button;
  appearance: button;
  border: none;
  box-sizing: border-box;
  cursor: pointer;
}
input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration,
input[type="reset"]::-webkit-search-decoration{
  display: none;
}
input[type="submit"]::focus,
input[type="button"]::focus,
input[type="reset"]::focus{
  outline-offset: -2px;
}

select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

input, select, textarea{
    border: none;
    outline: none;
}

*{
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

:root {
    color-scheme: light;
  }


/********* base *********/

body {
	color: #333;
	font-size: 16px;
	line-height: 1.6;
    font-family: zen-kaku-gothic-antique, 'ヒラギノ角ゴ ProN W3', 'Meiryo', 'メイリオ', sans-serif;
}

a{
    text-decoration: none;
    color: #333;
}
a:hover{opacity: 0.8;}

.sp{display: none!important;}

img {
    width: auto;
	max-width: 100%;
    vertical-align: middle;
}

.tac{text-align: center;}

@media screen and (max-width: 768px){
    body {font-size: calc(100vw * 12 / 375);}
    img{
        max-width: auto;
        width: 100%;
        vertical-align: bottom;}
	.sp{display: block!important;}
	.pc{display: none!important;}
    
}

/********* header *********/
.header {
    width: 100%;
    height: 100%;
    margin-bottom: 1px;
    position: relative;
    /*overflow: hidden;*/
    border-bottom: 1px solid #000;
}

.header__inner {
    max-width: 1310px;
    margin: 9px auto 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: inherit;
    position: relative;
}

h1.header__logo{
    max-width: 279px;
}

.header__inner-right{
    display: flex;
    align-items: flex-start;
    align-items: center;
}

p.catchphrase_txt {
    background: #000;
    text-align: center;
    color: #fff;
    font-size: 26px;
    padding: 9px 0 8px;
}

@media screen and (max-width:768px) {
    .header{
        margin-bottom: 5px; 
    }

    h1.header__logo{
        width: 37%;
    }
    .header__inner{
        align-items: flex-start;
    }

    p.catchphrase_txt {
        padding: 0.3% 0 1.3%;
        font-size: 110%;
    }
}


.header__inner-right .serch {
    margin-right: 10px;
    display: flex;
    align-items: center;
}

.header__nav {
    position: fixed;
    right: 0;
    top: 0;
    width: 68%;
    height: 100vh;
    padding: 0;
    background: #FDEBEB;
    transform: translateX(100%);
    background-size: contain;
    transition: ease .4s;
    z-index: 999;
    overflow-y: scroll
}

.header__nav_wrap{
    max-width: 660px;
    background: #FDEBEB;
    padding: 50px;
}

.header__nav .search__block{
    max-width: 480px;    
    margin: 0 auto 47px;
}

.header__nav .search__block input[type="text"] {
    padding: 7px;
    width: 64%;
}

.header__nav_block {
    margin-bottom: 16px;
    display: flex;
    column-gap: 134px;
}


.header__nav_block h2{
    font-size: 34px;
    margin-bottom: 20px;
    line-height: 1.1;
}
.header__nav_block h2 span{
    padding-bottom: 6px;
    font-size: 17px;
    display: inline-block;
    border-bottom: 1px solid #333;
}

.header__nav .header__nav_block ul li {
    margin-bottom: 20px;
    font-size: 16px;
    display: flex;
    align-items: center;
}
.header__nav .header__nav_block ul li:before{
    content: '';
    width: 10px;
    height: 2px;
    margin-right: 7px;
    background: #333;
}

.header__nav .keyword__block h2{
    font-size: 32px;
    margin-bottom: 20px;
    line-height: 1;
}

.header__nav .keyword__block ul.tag__list{
    margin: 10px auto;
    max-width: 530px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 31px;
}
.header__nav .keyword__block ul.tag__list li{
    width: 47%;
    margin-bottom: 5px;
    font-size: 14px;
}
.header__nav .keyword__block ul.tag__list li a {
    width: 100%;
    display: block;
    padding: 9px 0 6px;
    color: #333;
    text-align: center;
    cursor: pointer;
    border: 1px solid #333;
    border-radius: 50px;
    transition: .4s ease-in-out;
    letter-spacing: 1px;
}

.header__nav aside.sns__link{
    margin: 3% 0 3.2%;
}

.header__nav section#mail {
    width: 100%;
    max-width: 660px;
    padding: 1.9% 0 3.2%;
    background: #fff;
    border-radius: 15px;
}
.header__nav section#mail h1.ttl{
    margin-bottom: 22px;
    justify-content: center;
    font-size: 32px;
    letter-spacing: 0;
}
.header__nav section#mail p.ttl_sub{
    margin: 0;
    font-size: 22px;
    letter-spacing: 2px;
    text-align: left;
}

.header__nav section#mail .ttl_wrap{
    display: flex;
    align-items: center;
    justify-content: center;
}
.header__nav section#mail .img__block{
    width: 44px;
    margin: 0 10px 0 0;
}

.header__nav section#mail p.txt{
    margin-top: 20px;
    font-size: 16px;
    letter-spacing: 1px;
}

.header__nav section#mail span.submit_btn{
    width: 85px;
}
.header__nav section#mail input[type="email"]{
    width: 348px;
}

.header__hamburger {
    width: 66px;
}

.hamburger {
    background-color: transparent;
    border-color: transparent;
    z-index: 9999;
    cursor: pointer;
}
.hamburger.active {
    margin-right: 1%;
    position: relative;
}

.hamburger span {
    width: 48px;
    transition: ease .4s;
}

.hamburger span:nth-child(1),
.hamburger span:nth-child(2) {
    display: none;
}
.hamburger span:nth-child(3) {
    margin-top: 3px;
    text-align: center;
    display: block;
}

.header__nav.active {
    transform: translateX(0);
}

.hamburger.active span:nth-child(1),
.hamburger.active span:nth-child(2){
    height: 2px;
    background-color: #ff80c0;
    position: relative;
    display: block;
}

.hamburger.active span:nth-child(1) {
    top: -12px;
    transform: rotate(45deg);
}

.hamburger.active span:nth-child(2) {
    top: -15px;
    transform: rotate(-45deg);
}

.hamburger.active span:nth-child(3) {
    display: none;
}

.header__nav-box-mask.active {
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 998;
    background: #FDEBEB url(img/menu_bg.png)no-repeat;
    background-size: contain;
    transition: ease .4s;
    top: 0;
}

.wp-block-search__inside-wrapper{
    position: relative;
}
.wp-block-search__inside-wrapper:before{
    content: '';
    display: block;
    background: url(img/icon_search_p.png)no-repeat;
    width: 28px;
    height: 28px;
    position: absolute;
    top: 16px;
    left: 14px;
}
.wp-block-search__input{
    border: none!important;
    border-radius: 50px;
    padding: 16px 60px!important;
    box-shadow: 0 0 10px #ffd5d5;
}


.header__inner-right button.menu-btn{
    width: 46px;
    height: 42px;
    display: block;
    position: relative;
}

.menu-btn.is-open {
    pointer-events: all;
}
button.menu-btn .inn,
button.menu-btn.is-open .inn-close{
    position: absolute;
    opacity: 1;
    top: 0;
}

button.menu-btn.is-open .inn,
button.menu-btn .inn-close{
    position: absolute;
    opacity: 0;
    top: 0;
    transition: .3s ease-in-out;
}

.header__inner-right .serch .menu {
    width: 400px;
    margin-right: 20px;
    position: relative;
    background-color: #fff;
    opacity: 0;
    transition: .3s ease-in-out;
    transform: translateY(-30px);
}

.header__inner-right .serch .menu.is-open {
  opacity: 1;
  transform: translateY(0);
}



@media screen and (max-width:768px) {    
    .header__inner-right .serch{
        display: none;
    }

    .hamburger{
        margin-right: 0;
    }
    .header__title{
        margin-left: 0;
    }

    h1.header__title.header-title{
        width: 23.6%;
        height: auto;
        padding: 2.7% 2% 2.4%;
    }

    .header__hamburger {
        margin-top: 4px;
        width: 46px;
    }
    .hamburger span {
        width: 35px;
        height: 2px;
    }
    .hamburger span:nth-child(3){
        margin-top: 13px;
    }

    .header__nav ul.sub-menu{
        margin-left: 10px;
    }
    .header__nav .sub-menu {
        position: relative;
    }

    .header__nav_wrap{
        padding: 50px 20px;
    }

    .header__nav{
        width: 94%;
    }
    .header__nav_block{
        column-gap: 35px;
    }

    .header__nav_wrap{
        padding: 50px 5px 50px 20px;
    }

    .header__nav_block h2{
            font-size: 26px;
            margin-bottom: 15px;
    }
    .header__nav_block h2 span{
        font-size: 14px;
    }

    .header__nav .header__nav_block ul li:before{
        width: 6px;
    }
    .header__nav .header__nav_block ul li{
        margin-bottom: 15px;
    }

    .header__nav .keyword__block h2{
        font-size: 26px;
    }

    .header__nav .keyword__block ul.tag__list{
        gap: 9px 11px;
    }
    .header__nav .keyword__block ul.tag__list li{
            width: 46%;
    }

    .header__nav section#mail h1.ttl{
        margin-bottom: 14px;
        font-size: 26px;
    }
    .header__nav section#mail{
        padding: 2.9% 0 3.2%;
    }
    .header__nav section#mail .img__block{
        width: 34px;
    }
    .header__nav section#mail p.ttl_sub{
        font-size: 18px;
    }
    .header__nav section#mail p.txt{
        margin-top: 10px;
        font-size: 14px;
    }
    .header__nav section#mail input[type="email"]{
        max-width: 248px;
    }

    .header__nav .search__block{
        width: 86%;
        max-width: 320px;
        margin: 0 0 6%;
    }

    .wp-block-search__input{
        padding: 10px 10px 10px 44px!important;
    }
    .wp-block-search__inside-wrapper:before{
        top: 8px;
        left: 9px;
    }
}

/********* footer *********/
footer {
    padding-bottom: 7px;
    background: #999;
}

footer .inner{
    padding: 3% 0 2.4%;
}

footer h1.footer__logo {
    width: 280px;
    margin: 0 auto 28px;
}

footer p.catchphrase_txt {
    margin-bottom: 23px;
    padding: 0;
    background: none;
    text-align: center;
    color: #fff;
    font-size: 15px;
    letter-spacing: 2px;
}

nav.footer__nav {
    max-width: 1000px;
    margin: 0 auto 25px;
    padding: 27px 0 20px;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff;
}

nav.footer__nav ul,
nav.footer__nav_mini ul {
    margin-bottom: 5px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 13px;
}

nav.footer__nav ul li{
    display: flex;
    align-items: center;
}
nav.footer__nav ul li a{
    padding: 0 7px 0 0;
    display: block;
    color: #fff;
}
nav.footer__nav ul li:after{
    content: '';
    width: 1px;
    height: 14px;
    background: #fff;
    display: block;
}

nav.footer__nav_mini ul {
    justify-content: center;
    gap: 6px 30px;
}
nav.footer__nav_mini ul li{
    font-size: 12px;
}
nav.footer__nav_mini ul li a{
    color: #fff;
}

footer p.copy{
    font-size: 12px;
    font-weight: normal;
    color: #fff;
    text-align: center;
}


@media screen and (max-width:768px) {
    footer {
        padding: 0 0 5%;
    }

    nav.footer__nav{
        width: 94%;
        margin: 0 auto 4.8%;
        padding: 4% 0 3.6%;
        border-top: none;
        border-bottom: 1px solid #fff;
    }

    nav.footer__nav ul, nav.footer__nav_mini ul{
        justify-content: center;
    }
    nav.footer__nav ul li{
        margin-bottom: 2px;
    }
    nav.footer__nav ul li a{
        padding: 0 10px 0 0;
        font-size: 100%;
    }

    nav.footer__nav ul li:after{
        height: 20px;
    }

    footer h1.footer__logo{
        width: 40%;
        max-width: 280px;
        margin: 0 auto 5%;
    }

    footer p.catchphrase_txt{
        margin-bottom: 5.5%;
        font-size: 98%;
    }
    nav.footer__nav_mini ul{
        margin-bottom: 4.6%;
    }
    nav.footer__nav_mini ul li{
        font-size: 100%;
    }

    footer p.copy{
        font-size: 100%;
    }
 
}


/* 初期状態でサブメニューを非表示にしておく */
footer nav#footer__nav ul.sub-menu {
    display: none;
  }
  
/* 子を持つ親メニューにマウスオーバーしたとき、サブメニューを表示する */
footer nav#footer__nav ul .menu-item-has-children:hover .sub-menu {
display: block;
}

  
  /* 親メニューをinline-blockにしてセンターに配置 */
  footer nav#footer__nav .menu > .menu-item {
    display: inline-block;
  }
  
  /* リストの記号を消去 */
  .menu-item {
    list-style-type: none;
  }
  
  /* サブメニューをabsoluteにするため、親メニューをrelativeに */
  .menu-item-has-children {
    position: relative;
  }
  
  /* 親メニューにマウスオーバーしたときにカーソルを変更 */
  .menu-item-has-children:hover {
    cursor: pointer;
  }
  
  /* 子を持つ親メニューにマウスオーバーしたときサブメニューを表示 */
  .menu-item-has-children:hover .sub-menu {
    display: block;
  }
  
  /* サブメニューをabsoluteにして親メニューの下に配置。スタイルは適宜調整してください */
  .sub-menu {
    position: absolute;
  }

  footer nav#footer__nav ul li.contact > a:after {
    content: '▼';
    font-size: 14px;
    margin-left: 7px;
    position: relative;
    top: -3px;
}

  footer nav#footer__nav ul .sub-menu li{
    width: 200px;
    margin: 0 !important;
    background: #F2F1EC;
    text-align: center;
  }
  
  /* サブメニューの境目をわかりやすくするため、一番下の項目以外下線を引いた */
  .sub-menu > .menu-item:not(:last-child) {
    margin: 0 !important;
  }
  
  /* サブニューのリンクタグをmenu-itemの大きさと合わせ、クリックしやすいようにした */
  .sub-menu > .menu-item a {
    display: inline-block;
    width: 100%;
    height: 100%;
  }
  
  /* サブメニューにマウスオーバーしたときリンクの背景色とテキストカラーを変更 */
  .sub-menu > .menu-item a:hover {
    background: black;
    color: white;
  }


  @media screen and (max-width:768px) {
  footer nav#footer__nav ul li.contact > a:after {
        font-size: 9px;
        margin-left: 2px;
        top: -2px;
    }
}
