/* 追尾式フッターメニュー */
.fixed-footer-menu {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
display: flex;
z-index: 9999;
}
.fixed-footer-menu a {
display: flex;
align-items: center;
justify-content: center;
width: 50%;
height: 60px;
text-decoration: none;
font-weight: 600;
font-size: 16px;
font-family: 'IBM Plex Sans JP', sans-serif;
letter-spacing: 0.05em;
}
.fixed-footer-menu .footer-btn-reserve {
background-color: #c41a1a;
color: #fff;
}
.fixed-footer-menu .footer-btn-line {
background-color: #06C755;
color: #fff;
}
.fixed-footer-menu .footer-btn-reserve:hover {
opacity: 0.85;
}
.fixed-footer-menu .footer-btn-line:hover {
opacity: 0.85;
}
.fixed-footer-menu .footer-btn-reserve::before {
content: "";
display: inline-block;
width: 20px;
height: 20px;
margin-right: 6px;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M19 4h-1V2h-2v2H8V2H6v2H5a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2V6a2 2 0 00-2-2zm0 16H5V10h14v10zm0-12H5V6h14v2z'/%3E%3C/svg%3E") no-repeat center / contain;
}
.fixed-footer-menu .footer-btn-line::before {
content: "";
display: inline-block;
width: 24px;
height: 24px;
margin-right: 6px;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M12 2C6.48 2 2 5.83 2 10.5c0 4.17 3.68 7.66 8.66 8.35.34.07.8.22.91.51.1.26.07.67.03.93l-.15.88c-.04.27-.2 1.05.92.57s6.13-3.61 8.36-6.18C22.68 13.36 22 11.5 22 10.5 22 5.83 17.52 2 12 2z'/%3E%3C/svg%3E") no-repeat center / contain;
}
/* CTAボタン重なり防止 */
.cta .lp-img-container {
position: relative !important;
display: block !important;
}
.cta .cta-buttons {
position: absolute !important;
top: 58% !important;
bottom: auto !important;
left: 50% !important;
transform: translate(-50%, -50%) !important;
display: flex !important;
flex-direction: column !important;
align-items: center !important;
gap: 8px !important;
width: 80% !important;
z-index: 10;
}
.cta .cta-buttons .cta-btn,
.cta .cta-buttons .cta-btn-line {
position: static !important;
display: block !important;
width: 80% !important;
margin: 0 auto !important;
bottom: auto !important;
left: auto !important;
right: auto !important;
top: auto !important;
transform: none !important;
}
.cta .cta-buttons .cta-btn img,
.cta .cta-buttons .cta-btn-line img {
width: 100% !important;
display: block !important;
}
/* 店舗カードのoverflow対策 */
.store-info .store {
overflow: visible;
}
/* Web予約ボタン */
.store-booking-btns {
display: flex;
gap: 8px;
justify-content: center;
flex-wrap: wrap;
margin-top: 24px;
margin-bottom: 20px;
padding: 0 8px;
position: relative;
z-index: 1;
}
.store-booking-btn {
display: inline-block;
background-color: #c41a1a;
color: #fff;
text-decoration: none;
font-weight: 600;
font-size: 14px;
font-family: 'IBM Plex Sans JP', sans-serif;
padding: 10px 20px;
border-radius: 6px;
text-align: center;
transition: opacity 0.3s;
}
.store-booking-btn:hover {
opacity: 0.8;
color: #fff;
}
/* フッターメニュー分の余白 */
body {
padding-bottom: 60px;
}
/* === First-view: HTMLヘッダー＋GRAND OPENバナー（画像内文字をHTML化） === */
.fv-html-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 18px 30px;
background: #fff;
flex-wrap: wrap;
gap: 12px;
}
.fv-logo { flex-shrink: 0; line-height: 1; }
.fv-logo-en {
display: block;
font-family: "Cormorant Garamond", "Times New Roman", serif;
font-weight: 300;
font-size: 38px;
letter-spacing: 6px;
color: #2a2a2a;
}
.fv-logo-jp {
display: block;
font-family: "Hiragino Sans", "Yu Gothic", sans-serif;
font-size: 12px;
letter-spacing: 6px;
color: #555;
margin-top: 6px;
text-align: center;
}
.fv-store-list {
font-size: 14px;
color: #5cb0d8;
font-weight: 600;
line-height: 1.7;
text-align: right;
}
.fv-banner {
background: linear-gradient(135deg, #57b0d8 0%, #b591d6 100%);
color: #fff;
text-align: center;
padding: 36px 20px 38px;
}
.fv-banner-pretitle { font-size: 24px; font-weight: 600; letter-spacing: 2px; }
.fv-banner-title {
font-family: "Cormorant Garamond", serif;
font-weight: 600;
font-size: 64px;
letter-spacing: 4px;
margin: 6px 0;
line-height: 1;
}
.fv-banner-subtitle { font-size: 18px; letter-spacing: 1px; }
.fv-image-cropped {
width: 100%;
overflow: hidden;
position: relative;
aspect-ratio: 800 / 668;
line-height: 0;
}
.fv-image-cropped img {
width: 100%;
height: auto;
display: block;
margin-top: -43.125%;
}
@media (max-width: 600px) {
.fv-html-header { padding: 12px 16px; }
.fv-logo-en { font-size: 28px; letter-spacing: 4px; }
.fv-logo-jp { font-size: 10px; letter-spacing: 4px; }
.fv-store-list { font-size: 11px; }
.fv-banner { padding: 24px 12px 26px; }
.fv-banner-pretitle { font-size: 16px; }
.fv-banner-title { font-size: 42px; letter-spacing: 2px; }
.fv-banner-subtitle { font-size: 13px; }
}
/******************************/
/** コンタクトフォームの装飾 **/
/******************************/
/*　フォーム全体　*/
.text {
margin-top: 10px;
}
#cf7-area {
width: 90%;
margin: 0 auto;
font-family: "メイリオ", "MS Pゴシック", sans-serif;
}
.cf7-item {
display: flex;
align-items: flex-start;
justify-content: flex-start;
margin: 0 0 1.75em;
}
.date {
margin: 0 0 0.5em;
}
.cf7-q {
width: 30%;
margin: 0 0 0 10px;
}
.cf7-a {
width: 60%;
}
/*　見出し　*/
.form-heading {
width: 100%;
background-color: #191970;
border-left: 1em solid #6495ed;
border-radius: 2px;
color: #ffffff;
font-weight: bold;
padding: 1em 0.8em;
margin: 0 0 2em;
}
.form-heading p {
margin: 0;
}
/* 各項目共通 */
#cf7-area label {
font-weight: bold;
}
#cf7-area input[type="text"],
#cf7-area input[type="email"],
#cf7-area input[type="tel"],
#cf7-area input[type="select"],
#cf7-area textarea {
background: #e4e4e4;
width: 100%;
height: 50px;
margin-left: 10px;
border-radius: 5px;
border: none;
}
.select-class {
background: #e4e4e4;
width: 100%;
height: 50px;
border-radius: 5px;
border: none;
}
.wpcf7-select{
background: #e4e4e4;
width: 100%;
height: 50px;
border-radius: 5px;
border: none;
}
.date-class {
background: #e4e4e4;
width: 100%;
height: 50px;
border-radius: 5px;
border: none;
font-family: "メイリオ", sans-serif;
}
#cf7-area input[type="text"]:focus,
#cf7-area input[type="email"]:focus,
#cf7-area input[type="tel"]:focus,
#cf7-area input[type="select"]:focus,
#cf7-area textarea:focus {
/* background: #ffe4e1; */
border: 2px solid #f3cc81;
outline: 0;
}
#cf7-area input[type="checkbox"],
#cf7-area input[type="radio"] {
appearance: auto;
}
#cf7-area .wpcf7-list-item {
display: block;
}
#cf7-area textarea {
height: 200px;
padding: 0.625em 0.4375em;
}
.cf7-accept-check {
text-align: center;
margin: 50px auto;
}
.cf7-submit {
width: 40%;
margin: 0 auto;
text-align: center;
}
#cf7-area input[type="submit"] {
width: 100%;
background-color: #279ed0;
color: #ffffff;
border-radius: 5px;
font-size: 1.2em;
font-weight: bold;
padding: 1em 10px;
}
#cf7-area input[type="submit"]:hover {
background-color: #ffffff;
border: 2px solid #279ed0;
color: #279ed0;
}
.cf7-btn {
width: 40%;
margin: 0 auto;
text-align: center;
}
/*　必須ラベル　*/
.cf7-req {
font-size: 0.9em;
padding: 2px 4px;
background: #279ed0;
color: #ffffff;
margin-left: 5px;
display: inline-block;
}
@media screen and (max-width: 768px) {
.cf7-item {
display: block;
}
#cf7-area label {
display: block;
margin-bottom: 10px;
}
.cf7-q {
width: 100%;
margin: 0;
}
.cf7-a {
width: 100%;
}
#cf7-area input[type="text"],
#cf7-area input[type="email"],
#cf7-area input[type="tel"],
#cf7-area input[type="select"],
#cf7-area textarea {
margin-left: 0;
}
.cf7-submit {
width: 100%;
}
.text {
font-size: 14px;
}
}
/* === 店舗一覧（エリア別・地図は必要な人だけ開く） === */
.st-wrap{padding:0 16px;font-family:'IBM Plex Sans JP','Hiragino Sans','Yu Gothic',sans-serif}
.st-search{max-width:560px;margin:0 auto 10px;position:relative}
.st-search input{width:100%;box-sizing:border-box;height:50px;padding:0 44px 0 16px;border:2px solid #cfe3e6;border-radius:26px;background:#fff;font-size:16px;color:#333;outline:none;-webkit-appearance:none}
.st-search input:focus{border-color:#2b9fb0;box-shadow:0 0 0 3px rgba(43,159,176,.15)}
.st-search::after{content:"";position:absolute;right:18px;top:50%;width:18px;height:18px;transform:translateY(-50%);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232b9fb0' stroke-width='2.5' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat center/contain;pointer-events:none}
.st-lead{text-align:center;font-size:13px;color:#5a6b6e;margin:0 0 26px;letter-spacing:.05em}
.st-lead strong{color:#2b9fb0;font-weight:600}
.st-area{margin:0 0 34px}
.st-area-title{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:0 0 8px;border-bottom:2px solid #2b9fb0;font-size:20px;font-weight:700;color:#1f3a3f;letter-spacing:.06em}
.st-count{font-size:12px;font-weight:600;color:#fff;background:#2b9fb0;border-radius:999px;padding:3px 10px;letter-spacing:.05em}
.st-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.st-card{background:#fff;border-radius:12px;box-shadow:0 2px 10px rgba(31,58,63,.08);padding:18px 18px 16px;display:flex;flex-direction:column;text-align:left}
.st-body{flex:1}
.st-name{margin:0 0 8px;font-size:21px;font-weight:700;color:#222;line-height:1.3;letter-spacing:.04em}
.st-station{margin:0 0 8px;font-size:14px;line-height:1.6;color:#1f3a3f;font-weight:600;padding-left:22px;position:relative}
.st-station::before{content:"";position:absolute;left:0;top:3px;width:16px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%232b9fb0'%3E%3Cpath d='M12 2c-4 0-8 .5-8 4v9.5A3.5 3.5 0 0 0 7.5 19L6 20.5V21h12v-.5L16.5 19a3.5 3.5 0 0 0 3.5-3.5V6c0-3.5-4-4-8-4zM7.5 17a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm9 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zM18 11H6V6h12v5z'/%3E%3C/svg%3E") no-repeat center/contain}
.st-addr{margin:0;font-size:13px;line-height:1.6;color:#666;letter-spacing:.03em}
.st-note{margin:8px 0 0;font-size:12px;color:#2b9fb0;font-weight:600}
.st-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;align-items:center}
.st-actions .store-booking-btn{padding:10px 18px;font-size:14px}
.st-booth{font-size:13px;font-weight:700;color:#d8352b;line-height:1.3}
.st-map-btn{margin-left:auto;background:#fff;border:1.5px solid #2b9fb0;color:#2b9fb0;border-radius:6px;padding:9px 14px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;letter-spacing:.03em;transition:background .2s,color .2s}
.st-map-btn:hover,.st-map-btn[aria-expanded="true"]{background:#2b9fb0;color:#fff}
.st-map{margin-top:12px}
.st-map iframe{display:block;width:100%;height:220px;border:0;border-radius:8px}
.st-empty{display:none;text-align:center;color:#666;font-size:15px;padding:30px 0}
.st-wrap.is-empty .st-empty{display:block}
.st-card.is-hidden,.st-area.is-hidden{display:none}
@media screen and (max-width:768px){
.st-list{grid-template-columns:1fr;gap:12px}
.st-area-title{font-size:18px}
.st-name{font-size:19px}
.st-card{padding:16px 16px 14px}
.st-actions .store-booking-btn{flex:1 1 auto;text-align:center}
}

/* === 静的サイト移行で追加（2026-10-31） === */
/* width/height 属性を付けた画像は縦横比を保って縮小（レイアウトシフト防止） */
img[width][height] { height: auto; }
/* フォーム送信結果の表示 */
.form-response { width: 90%; margin: 0 auto 1.5em; padding: 14px 16px; border-radius: 6px; font-size: 15px; line-height: 1.6; font-family: "メイリオ", "MS Pゴシック", sans-serif; }
.form-response.is-error { background: #fff1f0; color: #b3261e; border: 1px solid #f3b4ae; }
.form-response.is-ok { background: #eefaf2; color: #1f6b3a; border: 1px solid #b8e2c5; }
#cf7-area input[type="submit"]:disabled { opacity: .6; cursor: wait; }
/* 迷惑送信対策の不可視項目（人間には見えない） */
.hp-field { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* === 旧 WordPress「追加CSS」（カスタマイザー）から移行 === */
/* セミパーソナルの料金表を非表示（price-2.jpg の下半分をカット） 2026-08-27 */
/* ペア割の表と月会費の注記は残す。元に戻すにはこのブロックを削除するだけ。 */
section.price img[src*="price-2"]{
  display: block;
  clip-path: inset(0 0 50% 0);
  margin-bottom: -63.9%;
}

/* === 旧 WordPress 本体CSS（wp-block-library）から移行：検索欄ラベルを視覚的に隠す === */
.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}
.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}
