@charset "UTF-8";

/*
Theme Name: Twenty Twenty-One
Theme URI: https://wordpress.org/themes/twentytwentyone/
Author: the WordPress team
Author URI: https://wordpress.org/
Description: Twenty Twenty-One is a blank canvas for your ideas and it makes the block editor your best brush. With new block patterns, which allow you to create a beautiful layout in a matter of seconds, this theme’s soft colors and eye-catching — yet timeless — design will let your work shine. Take it for a spin! See how Twenty Twenty-One elevates your portfolio, business website, or personal blog.
Requires at least: 5.3
Tested up to: 6.9
Requires PHP: 5.6
Version: 2.7
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyone
Tags: one-column, accessibility-ready, custom-colors, custom-menu, custom-logo, editor-style, featured-images, footer-widgets, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, blog, portfolio

Twenty Twenty-One WordPress Theme, (C) 2020 WordPress.org
Twenty Twenty-One is distributed under the terms of the GNU GPL.
*/

/* ====================================
   ベースリセット（必要に応じて調整）
==================================== */
body { margin: 0; padding:0; overflow-x: hidden; }
ul { margin:0 auto; padding:0; list-style-type:none; }
h2 { margin:0 0 1.5rem; padding:0 0 0 2.1rem; font-size:1.5rem; color:#694949; font-weight:400; letter-spacing:1.5px; background-image: url("./img/h2icon.gif"); background-repeat:no-repeat; background-position:0% 50%; background-size:25px 9px; }
h2 span { font-size:12px; color:#8d8d8d; font-weight:normal; }
a.but { margin:0 auto; padding:1.5% 3%; width:400px; max-width:80%; text-align:center; font-size:0.9rem; color:#565151; background-image: linear-gradient(90deg, rgba(251, 233, 226, 1), rgba(252, 244, 238, 1)); text-decoration:none; display:block; }

/* ====================================
   ヒーローセクション（メインビジュアル）
==================================== */
.hero-section { position: relative; width:100%; }
.hero-bg { width: 100%; height: 80vh; background-image: url('img/sleep-woman.jpg'); background-size: cover; background-position: center center; background-repeat: no-repeat; border-bottom-left-radius: 50% 2vw; border-bottom-right-radius: 50% 2vw; }
.hero-logo0 { position:absolute; top:15px; left:30px; margin:0; z-index:10; }
.hero-logo0 img { width:200px; height: auto; }
.hero-logo { position:absolute; bottom:8%; right:10%; margin:0; z-index:10; }
.hero-logo img { width: 330px; height: auto; }
.top-header { position:absolute; top:0; right:0; padding:30px 100px; display:flex; align-items:center; gap: 25px; z-index: 100; }
.tel-wrap { text-align:right; color: #555; }
.tel-number { margin:0; font-size: 1.2rem; font-weight: 500; font-family: sans-serif; }
.tel-time { margin: 0; font-size: 0.65rem; color: #888; letter-spacing: 0.1em; }

/* ハンバーガーメニュー */
.hamburger { position: fixed;background: transparent; border: none; cursor: pointer; width: 45px; height: 16px; display: flex; flex-direction: column; justify-content: space-between; padding: 0; }
.hamburger span { display: block; width: 100%; height: 1px; background-color: #555; transition: all 0.3s; }
.hamburger { position:fixed; top:45px; right:40px; z-index:9999; }
.hamburger.is-open span:nth-of-type(1) { transform: translateY(7.5px) rotate(45deg); }
.hamburger.is-open span:nth-of-type(2) { opacity: 0; }
.hamburger.is-open span:nth-of-type(3) { transform: translateY(-7.5px) rotate(-45deg); }
.global-menu { position: fixed; top: 0; left: 0; width: 100%; height: 100vh; background-color: rgba(255, 255, 255, 0.95); z-index: 9998; opacity: 0; visibility: hidden; transition: all 0.4s ease; }
.global-menu.is-open { opacity: 1; visibility: visible; }
.global-menu-inner { margin:0 auto; width:90%; border:1px solid #ccc; }
.global-menu-inner img.logo { margin:0 auto; width:250px; height:auto; display:block; }
.global-menu-inner .navv { margin:0; padding:0; display:flex; justify-content:space-between; flex-wrap:wrap; }
.global-menu-inner .navv p { margin:0 auto 1.5%; padding:1.5% 2%; width:20%; border:1px solid #f7f7f7; box-sizing:border-box; display:blcok; }
.global-menu-inner .navv p a { text-decoration:none; color:#443b37; font-size:1rem; letter-spacing:1px; display:block; }

.menu-close-btn { position: absolute; top:30px; right:40px; background:transparent; border:none; cursor:pointer; color:#555; font-size:0.9rem; font-family:sans-serif; letter-spacing: 0.1em; display: flex; align-items: center; gap: 5px; z-index: 10000; transition: opacity 0.3s; }
.menu-close-btn:hover { opacity: 0.6;}
.menu-close-btn .close-icon { font-size:1.5rem; line-height:1; font-weight:300; }
.hero-title-img { position: absolute; top: 32%; right:10%; width: 40vw; max-width: 549px; z-index: 20; }
.hero-title-img img { width: 100%; height: auto; display: block; }

header { margin:0 auto; }

nav { margin:0 auto 2%; padding:5.5% 0 0; width:100%; box-sizing:border-box; }
nav ul { margin:0 auto; padding:0; width:100%; display:flex; justify-content: space-between; list-style-type:none; }
nav ul li { margin: 0; padding: 0; text-align: center; width: 14%; background-image: url("./img/line.gif"); background-repeat:no-repeat; background-position:100% 50%; background-size:2px 50px; }
nav ul li:last-child { background-image:none; }
nav ul li a { text-decoration: none;   font-size:1rem;  color: #aa6c00; display: inline-flex; flex-direction: column; align-items: flex-start; text-align: left; font-weight:400; }
nav ul li a span { font-size:0.5rem; letter-spacing:0.3em; color:#b48430; margin-bottom:1px; font-weight:normal; }

.no-fuzoku-box { background-color: #f5f5f5; padding:40px; margin:0 auto; width:1000px; max-width:96%; border-radius: 4px; box-sizing: border-box; }
.no-fuzoku-box h2 { text-align: center; font-size: 1.5rem; background:none; color: #5b4961; margin-top: 0; margin-bottom: 30px; letter-spacing: 0.1em; font-family: serif; }
.no-fuzoku-text { font-size: 0.95rem; line-height: 1.8; color: #444; }
.no-fuzoku-text p { margin-bottom: 25px; }
.no-fuzoku-text p:last-child { margin-bottom: 0; }
.prohibited-list { list-style: none; padding: 25px 30px; background-color: #fff; border: 1px solid #ddd; margin-bottom: 25px; border-radius: 4px; }
.prohibited-list li { margin-bottom: 12px; position: relative; padding-left: 1.2em; color: #c0392b; font-weight: bold; }
.prohibited-list li:last-child { margin-bottom: 0; }
.prohibited-list li::before { content: "※"; position: absolute; left: 0; top: 0; }
.no-fuzoku-text { position: relative; max-height: 180px; overflow: hidden; transition: max-height 0.6s ease; }
.no-fuzoku-text::after { content: ""; position: absolute; bottom: 0; left: 0; width: 100%; height: 80px; background: linear-gradient(to bottom, rgba(245, 245, 245, 0) 0%, rgba(245, 245, 245, 1) 100%); pointer-events: none; transition: opacity 0.4s ease; }
.no-fuzoku-text.is-open { max-height: 2000px; }
.no-fuzoku-text.is-open::after { opacity: 0; }
.read-more-wrap { text-align: center; margin-top: 20px; position: relative; z-index: 10; }
.read-more-btn { background-color: #dadada; color: #333; border: none; padding: 12px 60px; border-radius: 4px; cursor: pointer; font-size: 0.95rem; font-weight: bold; letter-spacing: 0.05em; transition: all 0.3s; }
.read-more-btn:hover { background-color: #c5c5c5; }

/* トップページ */
#About { margin:5% auto 0; padding:0; width:85%; }
#About h3 { font-size:1.4rem; text-align:center; background: linear-gradient(0deg, #78bfd3 0%, #306a75 65%); color: transparent; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; text-fill-color: transparent; font-family: "Zen Old Mincho", serif; font-weight: 400; font-style: normal; }
#About h3 span { font-size:12px; color:#565151; display:block; }
#About ul { margin:0 auto 5%; width:1200px; max-width:98%; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; }
#About ul li { margin:0 auto; padding:0; }
#About ul li img { margin:0 auto; width:90%; height:auto; display:block; }
#About ul li p { margin:0 0 5%; padding:0; font-size:13px; color:#565151; line-height:170%; display:block; }
#About ul li p span { margin:1.2%; padding:1% 2%; background:#e8e8e8; color:#222; font-size:12.5px; text-align:center; display:inline-block; }
#About ul li.abul01l { width:40%; }
#About ul li.abul01r { width:58%; }

#Tpp { margin:5% auto 0; padding:0; width:85%; display:flex; justify-content:space-between; flex-wrap:wrap; }
#Tpp div { marign:0; padding:0; width:49%; }
#Tpp div ul.news-list { margin:0 auto; padding:0; }
#Tpp div ul.news-list li { margin:0 0 2%; padding:0 0 2%; border-bottom:1px solid #e8e8e8; }
#Tpp div ul.news-list li h3 { margin:0 0 1.5%; padding:0; font-size:1.1rem; font-weight:normal; }
#Tpp div ul.news-list li h3 a { text-decoration:none; color:#565151; display:block; }
#Tpp div ul.news-list li p.news-meta { margin:0; padding:0; }
#Tpp div ul.news-list li p.news-meta span { margin:0 1.5% 0 0; padding:.6% 2%; font-size:.7rem; color:#939393; border:1px solid #b9b9b9; display:inline-block; }
#Tpp div dl { margin:0 auto; padding:0; width:98%; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; }
#Tpp div dl dt { margin:0; padding:0; width:49%; }
#Tpp div dl dt img { margin:0 auto; width:90%; height:auto; display:block; }
#Tpp div dl dd { margin:0; padding:0; width:49%; }
#Tpp div dl dd h3 { margin:0; padding:0; font-size:1.3rem; color:#565151; font-weight:normal; }
#Tpp div dl dd h3 span { font-size:.9rem; }
#Tpp div dl dd p { margin:0 0 3%; letter-spacing:1px; color:#8e8e8e; }
#Tpp div dl dd p.catch { font-size:12.5px; }
#Tpp div dl dd p.size { font-size:13px;  }
#Tpp div dl dd p.day { margin:3% 0; padding:3% 0; border-top:1px solid #ede6e9; border-bottom:1px solid #ede6e9; color:red; font-size:1.2rem; }
#Tpp div dl dd p.com { font-size:12.5px; line-height:150%; }

#Today { margin:5% auto 0; padding:0; width:85%; max-width:98%; display:block; }
#Today p.todayn { margin:0; padding:0; font-size:1.2rem; color:#73667c; font-weight:bold; text-align:right; }
#Today ul.todayul { margin:2% auto; padding:0; width:100%; display:flex; justify-content: space-between; flex-wrap:wrap; }
#Today ul.todayul li { margin:0 0 2%; padding:1%; width:23%; text-align:center; box-shadow:0 0 5px #ccc; box-sizing:border-box; }
#Today ul.todayul li a img { margin:0 auto; width:75%; height:auto; display:block; }
#Today ul.todayul li a img.wp-post-image { height: auto !important; }
#Today ul.todayul li a { text-decoration:none; }
#Today ul.todayul li a p { margin:0 auto; padding:0; }
#Today ul.todayul li a p.catch { padding:0 0 3% 0; font-size:12px; color:#444; }
#Today ul.todayul li a p.name { padding:3% 0;font-size:1.1rem; color:#5b4961; font-weight:700;  }
#Today ul.todayul li a p.size { padding:0 0 3% 0; font-size:12px; color:#666; }
#Today ul.todayul li a p.time { padding:0 0 3% 0; font-size:1.2rem; color:#ff0072; }

#Faq { margin:5% auto 2%; padding:0; width:85%; max-width:98%; }
#Faq ul { margin:2% auto 5%; padding:0; } /* paddig を padding に修正しました */
#Faq ul li { margin:0 0 1%; padding:0 0 1%; border-bottom:1px solid #ede6e9; }
#Faq ul li h3 a { margin:0; padding:0; font-weight:normal; font-size:1.1rem; text-align:left; color:#565151; text-decoration:none; display:block; }
#Faq ul li p { margin:0; padding:0; }
#Faq ul li p span { margin: 0 1.5% 0 0; padding: .6% 2%; font-size: .7rem; color: #939393; background: #fff; border: 1px solid #b9b9b9; display: inline-block; white-space: nowrap; }
#Faq ul li p span a { padding: 0; color: #939393; text-decoration:none; }

#Slid { margin:5% auto 0; padding:3% 0; background:#f7f7f7; box-sizing:border-box; width:100%; overflow:hidden; display:block; }
#Banner { margin:5% auto 2%; padding:0; width:85%; max-width:98%; text-align:center; }
#Note { margin:5% auto 0; padding:0; width:85%; max-width:98%; display:block; }
#Note p { margin:0; padding:0; font-size:12.5px; color:#888888; }
#Note ul { margin:0 auto; padding:0; }
#Note ul li { margin:0 0 .5rem; padding:0 0 .5rem; font-size:12px; color:#888888; }

footer { margin:0 auto; padding:2%; }
footer ul { margin:0 auto; padding:0; width:1200px; max-width:98%; display:flex; justify-content: space-between; align-items:center; flex-wrap:wrap; }
footer ul li { margin:0; padding:0; align-items:center; text-align:center; }
footer ul li a { margin:0 auto; padding:0; display:inline-block; color:#888; text-decoration:none; }
footer ul li a img { margin:0 auto; width:250px; max-width:90%; height:auto; display:block; }
footer ul li p {}
footer ul li span { font-size:.85rem; display:block; }
footer ul li.ftulli01 { width:18%; }
footer ul li.ftulli02 { border-left:1px solid #f5f5f5; border-right:1px solid #f5f5f5; width:18%; }
footer ul li.ftulli03 { width:60%; font-size:0.8rem; color:#888; line-height:250%; }

/* 固定ページ */
#Page { margin:0 auto 5%; padding:0; width:1200px; max-width:98%; display:block; }
#Page p.pcom { margin:0 0 5%; padding:0; font-size:13px; color:#565151; line-height:170%; display:block; }
#Page ul.sysul01 { margin:0 auto 7%; padding:0; display:flex; justify-content: space-between; align-items:center; flex-wrap:wrap; }
#Page ul.sysul01 li { margin:0; padding:0; width:49%; }
#Page ul.sysul01 li img { margin:0 auto; width:80%; height:auto; display:block; }
#Page ul.sysul01 li h3 { margin:0 0 3%; font-size:1.4rem; text-align:center; background: linear-gradient(0deg, #78bfd3 0%, #306a75 65%); color: transparent; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; text-fill-color: transparent; font-family: "Zen Old Mincho", serif; font-weight: 400; font-style: normal; }
#Page ul.sysul01 li h3 span { font-size:12px; color:#565151; display:block; }
#Page ul.sysul01 li p { margin:0 0 5%; padding:0; font-size:13px; color:#565151; line-height:170%; display:block; }

#Page dl.sysdl { margin:0 auto 3.5%; padding:0; display:flex; justify-content: space-between; flex-wrap:wrap; }
#Page dl.sysdl dt { margin:0; padding:0; width:18%; }
#Page dl.sysdl dt img { margin:0 auto; width:100%; height:auto; }
#Page dl.sysdl dd { margin:0; padding:0; width:80%; }
#Page dl.sysdl dd h3 { margin:0 0 3%; padding:0 0 0 1.5rem; color:#694949; font-size:1.3rem; background-image: url("./img/sys_icon.gif"); background-repeat:no-repeat; background-size:12px 12px; background-position:0% 50%; }
#Page dl.sysdl dd h3 span { font-size:11px; font-weight:normal; color:#565151; display:block; }
#Page dl.sysdl dd p.comp { margin:0; padding:0; font-size:13px; color:#565151; line-height:170%; display:block; }
#Page dl.sysdl dd div { margin:0; padding:0; text-align:right; display:block; }
#Page dl.sysdl dd div p { margin:0; padding:0; font-size:2.2rem; font-family: "Lato", sans-serif; font-weight: 700; font-style: normal; display:inline; }
#Page dl.sysdl dd div p span { font-size:1rem; }

#Page div.sys01 { margin:7% auto 0; padding:2.5% 2.5% 0 2.5%; width:1200px; max-width:98%; background:#fafafa; box-sizing:border-box; display:block; }
#Page div.sys01 ul { display:flex; justify-content: space-around; align-items:center; flex-wrap:wrap; }
#Page div.sys01 ul li { margin:0 auto 2.5%; padding:2%; width:48%; background:#fff; box-sizing:border-box; display:flex; justify-content: space-around; align-items:center; flex-wrap:wrap; }
#Page div.sys01 ul li p { margin:0; padding:0; width:49%; font-size:2.2rem; font-family: "Lato", sans-serif; font-weight: 700; font-style: normal; display:inline; }
#Page div.sys01 ul li p span { font-size:1rem; }
#Page div.sys01 ul li p span.spp { font-size:1.7rem; }
#Page div.sys01 ul li p.psys { text-align:right; }

#Page div.shiharai { margin:7% auto 0; }
#Page div.shiharai p { margin:0; padding:0; font-size:13px; color:#565151; line-height:170%; display:block; }

#Page div.flow { margin:7% auto; padding:0; width:1200px; max-width:98%; display:block; }
#Page div.flow dl.dlflow { margin:5% auto; padding:0; display:flex; justify-content:space-between; align-items: center; flex-wrap:wrap; }
#Page div.flow dl.dlflow dt { margin:0; padding:0; width:18%; }
#Page div.flow dl.dlflow dt p { margin:0; padding-top:2%; background-image: linear-gradient(60deg, #f6ddc2, #ffffff); text-align:center; font-size:13px; color:#444; display:block; }
#Page div.flow dl.dlflow dt img { margin:0; width: 80%; height:auto; display:block; }
#Page div.flow dl.dlflow dd { margin:0; padding:0; width:78%; }
#Page div.flow dd h3 { margin:0 0 3%; padding:0 0 0 1.5rem; color:#694949; font-size:1.3rem; font-weight:normal; background-image: url("./img/sys_icon.gif"); background-repeat:no-repeat; background-size:12px 12px; background-position:0% 50%; }
#Page div.flow dd p { margin:0; padding:0; font-size:13px; color:#565151; line-height:170%; display:block; }

#Page ul.todayul { margin:5% auto 0; padding:0; width:100%; display:flex; flex-wrap:wrap; }
#Page ul.todayul li { margin:0 1% 2% 1%; padding:1%; width:23%; text-align:center; box-shadow:0 0 5px #ccc; border-radius:4px; box-sizing:border-box; }
#Page ul.todayul li img { margin:0 auto; width:85%; height:auto; display:block; }
#Page ul.todayul li a { text-decoration:none; }
#Page ul.todayul li a img.wp-post-image { height: auto !important; }
#Page ul.todayul li a p { margin:0 auto; padding:0; }
#Page ul.todayul li a p.catch { padding:1% 0 3% 0; font-size:12px; color:#444; }
#Page ul.todayul li a p.name { padding:3% 0;font-size:1.1rem; font-weight:normal; color:#5b4961; font-weight:700;  }
#Page ul.todayul li a p.size { padding:0 0 3% 0; font-size:12px; color:#888; letter-spacing:1px; }

#Page div.eventwaku { margin:0 0 5% 0; padding:0 0 5% 0; border-bottom:1px dotted #d1ced5; display:block; }
#Page div.eventwaku h3 { color:#ff5400; font-size:1.2rem; text-align:center; }
#Page div.eventwaku .post-thumbnail00 img { margin:0 auto 3%; width:80%; height:auto; display:block; }
#Page div.eventwaku p { margin:0 auto; padding:0; font-size:13.5px; width:85%; color:#565151; line-height:200%; display:block; }

#Page ul.faqull { margin:5% auto 0; padding:0; width:100%; display:block; }
#Page ul.faqull li { margin:0 0 2% 0; padding:0 0 2% 0; border-bottom:1px dotted #d1ced5; display:block;  }
#Page ul.faqull li h3 { margin:0 0 1.5%; padding:0; font-size:1.3rem; font-weight:normal; }
#Page ul.faqull li h3 a { text-decoration:none; color:red; }
#Page ul.faqull li a { text-decoration:none; color:#333; display:block; } 
#Page ul.faqull li a p { margin:0; padding:0; font-size:1rem; }

#Page .kuchikomi { margin:0 0 2%; padding:0 0 2%; border-bottom:1px dotted #ccc; }
#Page .kuchikomi h3 { font-size:1.2rem; font-weight:normal; color:#800000; }
#Page .kuchikomi p { margin:0 auto; padding:0; font-size:13.5px; width:90%; color:#565151; line-height:200%; display:block; }



/* パンクズリスト */
.breadcrumb { font-size:12px; margin:0 0 5%; padding:0.5em 2rem; background:#fafafa; box-sizing: border-box; }
.breadcrumb ol { display: flex; flex-wrap: wrap;align-items: center;list-style: none; padding: 0; font-size: 0.85rem; margin: 10px 0; line-height: 1.6; }
.breadcrumb li + li::before { content: ">"; margin: 0 8px; color: #999; }
.breadcrumb a { text-decoration: none; color: #0066cc; }
.breadcrumb .is-current { color: #666; font-weight: bold; }

/* トップへ戻るボタンの基本設定 */
.back-to-top { position: fixed; bottom: -60px; right: 20px; width: 50px; height: 50px; background-image: linear-gradient(90deg, #e9a495, #f4caba); color: #fff; border-radius: 50%; display: flex; justify-content: center; align-items: center; text-decoration: none; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3); transition: bottom 0.4s ease, opacity 0.4s ease; opacity: 0; z-index: 999; }
.back-to-top .arrow { width: 12px; height: 12px; border-top: 2px solid #fff; border-left: 2px solid #fff; transform: rotate(45deg); margin-top: 5px; }
.back-to-top:hover { background-color: #005618; }
.back-to-top.is-visible { bottom: 30px; opacity: 1; }


@media screen and (max-width: 768px) {
	h2 { margin:0 0 1rem; padding:0 0 0 2rem; font-size:1.3rem; letter-spacing:0; }
	h2 span { font-size:11px; }
	.no-fuzoku-box { padding:20px; margin:20px 10px; widht:97%; }
	.prohibited-list { padding:15px; }

	#About { margin:3% auto 0; width:98%; }

}


