/*!
Theme Name: Vivax Child
Theme URI: http://gianfar.ltd.ua/wp/vivax
Author: Gianfar
Template: vivax
Author URI: https://themeforest.net/user/gianfar/portfolio
Description: Creative Portfolio Theme
Version: 1.0.0
Tested up to: 7.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: vivax-child
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

vivax is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

*/

/* =========================================
   匠輝庵 Shokian  基本設定
   ========================================= */
:root {
  --shk-purple: #5f3e8c;  /* キーカラー 紫 */
  --shk-sky:    #66c6f1;  /* キーカラー 水色 */
  --shk-deep:   #2c003f;  /* サブカラー 濃紫 */
  --shk-pale:   #c7eafa;  /* サブカラー 淡水色 */
  --shk-serif: 'Noto Serif JP', serif;
  --shk-sans:  'Noto Sans JP', sans-serif;
}

/* Elementorのグローバルフォントを明朝に統一 */
[class*="elementor-kit-"] {
  --e-global-typography-primary-font-family: 'Noto Serif JP' !important;
  --e-global-typography-secondary-font-family: 'Noto Serif JP' !important;
  --e-global-typography-text-font-family: 'Noto Serif JP' !important;
  --e-global-typography-accent-font-family: 'Noto Serif JP' !important;
}

/* テーマ既定フォント（Poppins / Archivo Black）を置き換え */
body,
h1, h2, h3, h4, h5, h6, p, a, li, blockquote, label, button, input, textarea, select,
.s-link span,
.other-single-project .title-section,
#loader-wrapper,
.elementor-heading-title,
.elementor-widget-text-editor,
.elementor-button {
  font-family: var(--shk-serif) !important; /* Elementor個別設定より優先 */
}

/* 補助テキスト用（ゴシック Light）：クラス「shk-sans」を付けた要素 */
.shk-sans, .shk-sans * {
  font-family: var(--shk-sans) !important;
  font-weight: 300 !important;
}

/* リンク・選択色 */
a:hover { color: var(--shk-purple); }
::selection { background: var(--shk-pale); color: var(--shk-deep); }

/* ボタン（ご予約 Booking など）：クラス「shk-btn」 */
.shk-btn .elementor-button,
.shk-btn a {
  background: var(--shk-purple);
  color: #fff;
  border-radius: 0;
  font-family: var(--shk-serif);
  letter-spacing: .1em;
  transition: background .3s;
}
.shk-btn .elementor-button:hover,
.shk-btn a:hover { background: var(--shk-deep); color: #fff; }

/* =========================================
   匠輝庵 ヘッダー（白帯・ロゴ左・メニュー右・SNS）
   ========================================= */
:root { --shk-header-h: 96px; }

body { padding-top: var(--shk-header-h); }
/* メニューのページ内リンクで見出しがヘッダーに隠れないように */
html { scroll-padding-top: calc(var(--shk-header-h) + 20px); }

/* ヘッダー帯：常に表示・白背景（テーマのJSによる色変更/隠しを無効化） */
.page-navigation,
.page-navigation.nav-up,
.page-navigation.nav-down {
  top: 0;
  height: var(--shk-header-h);
  background-color: #fff !important;
  border-bottom: 1px solid #ececec;
  transform: none !important;
}
body.admin-bar .page-navigation,
body.admin-bar .header-logo { top: 32px; }

/* ロゴ */
.header-logo {
  position: fixed;
  top: 0;
  left: 40px;
  width: 210px !important;
  height: var(--shk-header-h) !important;
  display: flex;
  align-items: center;
  z-index: 11;
}
.header-logo img { width: 100%; height: auto !important; }

/* メニュー（PC） */
.home-menu-text .menu {
  justify-content: flex-end;
  padding: 0 40px 0 280px;
  margin: 0;
}
.home-menu-text .menu-item { margin: 0 22px; }
.home-menu-text a {
  color: #222;
  font-size: 13px;
  letter-spacing: .14em;
  text-transform: none;
}
.home-menu-text a:before { background-color: var(--shk-purple); }
.home-menu-text a:hover { color: var(--shk-purple); }

/* SNSアイコン */
.home-menu-text .shk-sns { margin: 0 0 0 14px; }
.home-menu-text .shk-sns + .shk-sns { margin-left: 10px; }
.home-menu-text .shk-sns a { display: flex; align-items: center; color: #111; }
.home-menu-text .shk-sns a:before { display: none; }
.home-menu-text .shk-sns a:hover { color: var(--shk-purple); }

@media (max-width: 1199.98px) {
  .home-menu-text .menu-item { margin: 0 12px; }
  .home-menu-text a { font-size: 12px; letter-spacing: .08em; }
}

@media (max-width: 782px) {
  body.admin-bar .page-navigation,
  body.admin-bar .header-logo { top: 46px; }
}

/* スマホ */
@media (max-width: 767.98px) {
  :root { --shk-header-h: 64px; }
  .header-logo { left: 15px; top: 0; width: 150px !important; }
  .header-logo img { height: auto !important; }
  .hamburger { top: 14px; }
  .hamburger .color-menu { background: var(--shk-deep); }
  .hamburger.opened .color-menu { background: #fff; }
  .home-menu-text .menu {
    padding: 0;
    justify-content: center;
    background-color: var(--shk-deep);
    left: 0;
  }
  .home-menu-text .menu-item { margin: 14px 0; }
  .home-menu-text a { color: #fff; font-size: 16px; }
  .home-menu-text .shk-sns { margin: 14px 0 0; }
  .home-menu-text .shk-sns a { color: #fff; }
}

/* =========================================
   匠輝庵 ロゴ A/B 切替
   ========================================= */
/* Bパターンでは三角形などの装飾を非表示（装飾要素にクラス shk-deco を付ける） */
.shk-logo-b .shk-deco { display: none !important; }

/* 確認用の切替ボタン（ロゴ決定後に functions.php で非表示にします） */
.shk-logo-switch {
  position: fixed;
  left: 16px;
  bottom: 16px;
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 6px 8px;
  background: rgba(255,255,255,.95);
  border: 1px solid #ddd;
  box-shadow: 0 2px 10px rgba(0,0,0,.12);
  font-size: 12px;
}
.shk-logo-switch span { padding: 0 6px 0 2px; color: #666; letter-spacing: .1em; }
.shk-logo-switch a {
  display: inline-block;
  min-width: 30px;
  padding: 4px 8px;
  text-align: center;
  color: var(--shk-deep);
  border: 1px solid var(--shk-purple);
  text-decoration: none;
}
.shk-logo-switch a.is-active { background: var(--shk-purple); color: #fff; }

/* =========================================
   匠輝庵 メインスライダー
   ========================================= */
/* 高さ：画面いっぱい（ヘッダー分を除く） */
.elementor-widget-vivax-slider .parallax-slider,
.elementor-widget-vivax-slider .parallax-slider .swiper-slide {
  height: calc(100vh - var(--shk-header-h)) !important;
  min-height: 0 !important;
}
.elementor-widget-vivax-slider { height: calc(100vh - var(--shk-header-h)); overflow: hidden; }
.elementor-section:has(.elementor-widget-vivax-slider) > .elementor-container {
  min-height: 0 !important;
  height: auto !important;
  align-items: flex-start !important;
}

/* 写真：横幅に合わせて拡大・中央基準でトリミング */
.parallax-slider .swiper-slide .img-slider {
  background-size: cover !important;
  background-position: center center !important;
}

/* 切替時の白い隙間対策：写真のずらし（パララックス）を止め、背景を黒に */
.parallax-slider .swiper-slide { background: #000; }
.parallax-slider .swiper-slide .img-slider { transform: none !important; }
/* 動き出しと止まりをゆるやかに */
.parallax-slider .swiper-wrapper { transition-timing-function: cubic-bezier(.45, 0, .2, 1) !important; }

/* 黒ベタ 40% */
.parallax-slider .img-slider:before {
  background-color: #000;
  opacity: .4;
}

/* テンプレートのテキスト・ボタン・カウンターは非表示（ロゴのみ） */
.parallax-slider .wrap-slider-content,
.parallax-slider .counter { display: none !important; }

/* 中央の縦ロゴ */
.elementor-widget-vivax-slider { position: relative; }
.shk-hero-logo {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 5;
  pointer-events: none;
}
.shk-hero-logo .shk-logo-tate { width: auto; height: 46vh; max-height: 420px; }
.shk-logo-b .shk-hero-logo .shk-logo-tate { height: 32vh; max-height: 300px; }
/* ロゴA：ドロップシャドウ（近め・ぼかし少なめ・薄め） */
.shk-logo-a .shk-hero-logo .shk-logo-tate { filter: drop-shadow(2px 2px 3px rgba(0, 0, 0, .35)); }

@media (max-width: 767.98px) {
  .shk-hero-logo .shk-logo-tate { height: 34vh; }
  .shk-logo-b .shk-hero-logo .shk-logo-tate { width: 60vw; height: auto; }
}

/* =========================================
   匠輝庵 セクション共通（見出し・本文・ボタン）
   ========================================= */
/* 見出し：英語サブ → 日本語タイトル → 線 */
.wrap-title-section .sub-title-1 {
  font-size: 18px;
  text-transform: none;
  letter-spacing: .04em;
  color: #333;
}
.wrap-title-section .title-section {
  font-size: 32px;
  text-transform: none;
  letter-spacing: .12em;
  color: #111;
}
.wrap-title-section .s-line { width: 80px; background-color: #555; }

/* 見出し下のリード文 */
.shk-lead p { font-size: 15px; line-height: 2; letter-spacing: .08em; color: #222; margin: 18px 0 50px; }
.shk-lead .shk-en { display: inline-block; font-size: 14px; color: #444; letter-spacing: .02em; }

/* 本文 */
.shk-body p { font-size: 13px; line-height: 2; letter-spacing: .04em; color: #222; margin: 0 0 1.1em; }
.shk-body .shk-en { margin-top: 2.2em; }
.shk-body .shk-en p { font-size: 12.5px; line-height: 1.9; letter-spacing: .01em; color: #333; }
.shk-on-dark p { color: #f2eef7; }
.shk-on-dark .shk-en p { color: #ddd6e8; }

/* ご予約 Booking ボタン（テンプレートのボタンを紫に） */
.shk-btn .wrap-button-link {
  background-color: var(--shk-purple) !important;
  color: #fff !important;
  border-radius: 0;
  padding: 12px 22px !important;
  letter-spacing: .12em;
  transition: background-color .3s;
}
.shk-btn .wrap-button-link:hover { background-color: var(--shk-deep) !important; }
.shk-btn .button-text span { color: #fff !important; font-size: 14px; text-transform: none; letter-spacing: .12em; }
.shk-btn .icon-link { display: none; }

/* =========================================
   匠輝庵とは（About）
   ========================================= */
.shk-about { position: relative; overflow: hidden; }
.shk-about .wrap-title-section { text-align: center; }
/* 見出し上の内側余白をなくす */
.shk-about > .elementor-container > .elementor-column > .elementor-widget-wrap { padding-top: 0 !important; }
@media (max-width: 767.98px) {
  /* スマホは見出し上40px */
  .shk-about > .elementor-container > .elementor-column > .elementor-widget-wrap { padding-top: 40px !important; }
}
/* 悠久物語の上を約20pxに詰める */
.shk-about .wrap-title-section { margin-bottom: 0 !important; }
.shk-about .wrap-title-section .s-line { margin-bottom: 0 !important; }
.shk-about .shk-lead p { margin-top: 20px; }

/* ご予約ボタンを写真の下端にそろえる（PC） */
@media (min-width: 768px) {
  .shk-about .elementor-inner-section > .elementor-container { align-items: stretch; }
  .shk-about .elementor-inner-section .elementor-column:first-child > .elementor-widget-wrap,
  .shk-about .elementor-inner-section .elementor-column:last-child > .elementor-widget-wrap {
    display: flex;
    flex-direction: column;
    align-content: normal;
    height: 100%;
  }
  .shk-about .elementor-inner-section .elementor-column:last-child .shk-btn { margin-top: auto; margin-bottom: 0; }
  .shk-about .elementor-inner-section .elementor-column:last-child .shk-body { margin-bottom: 24px; }
  .shk-about .elementor-inner-section .elementor-column:first-child .elementor-widget-image,
  .shk-about .elementor-inner-section .elementor-column:first-child img { margin-bottom: 0; display: block; }
  /* 写真を列の高さいっぱいに（下端＝ボタンの下端） */
  .shk-about .elementor-inner-section .elementor-column:first-child .elementor-widget-image { flex: 1 1 auto; width: 100%; position: relative; min-height: 300px; }
  .shk-about .elementor-inner-section .elementor-column:first-child .elementor-widget-image img { position: absolute; inset: 0; }
  .shk-about .elementor-inner-section .elementor-column:first-child .elementor-widget-image img {
    width: 100%; height: 100%; object-fit: cover;
  }
}
.shk-deco-wrap { position: static !important; margin: 0 !important; }
.shk-deco { position: absolute; pointer-events: none; z-index: 1; }
.shk-deco svg { display: block; width: 100%; height: auto; }
.shk-deco-about-l { width: 110px; left: 7%; top: 170px; }
.shk-deco-about-r { width: 72px; right: 3%; top: 30px; }

@media (max-width: 767.98px) {
  .shk-deco-about-l { width: 70px; left: 4%; top: 40px; }
  .shk-deco-about-r { width: 44px; right: 4%; top: 20px; }
  .wrap-title-section .title-section { font-size: 26px; }
}

/* =========================================
   プロフィール（西川千匠）
   ========================================= */
.shk-profile-name .elementor-heading-title {
  color: #fff !important;
  font-size: 30px !important;
  line-height: 1.5 !important;
  letter-spacing: .08em;
  padding-bottom: 14px;
  margin-bottom: 26px;
  border-bottom: 1px solid rgba(255,255,255,.85);
}
.shk-profile-name .shk-small { font-size: 14px; margin-right: 6px; letter-spacing: .06em; }
.shk-profile-name .shk-sep { margin: 0 12px; font-weight: 300; }
.shk-profile-name .shk-name-en { display: block; font-size: 12px; letter-spacing: .03em; margin-top: 6px; color: #e6def0; }
.shk-profile-photo img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.shk-profile > .elementor-container { align-items: flex-start; }
.shk-profile .elementor-widget { width: 100%; }
/* プロフィール背景：2枚重ね（①黒40%で写真を暗く → ②濃紫を乗算） */
.shk-profile { position: relative; }
.shk-profile::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .4);
  z-index: 0;
}
.shk-profile > .elementor-background-overlay {
  background-color: var(--shk-deep) !important; /* 濃紫 #2c003f を乗算：ほぼ黒に写真がほんのり */
  mix-blend-mode: multiply;
  opacity: 1 !important;
  z-index: 0;
}
.shk-profile > .elementor-container { position: relative; z-index: 1; }
@media (min-width: 768px) {
  /* 写真のサイズ・位置を「匠輝庵とは」の写真に合わせる */
  .shk-profile > .elementor-container > .elementor-column:first-child { width: 38.9%; }
  .shk-profile > .elementor-container > .elementor-column:last-child { width: 61.1%; }
  .shk-profile > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap { padding-left: 0; padding-right: 0; }
  .shk-profile > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap { padding-left: 0; padding-right: 19px; }
  /* 写真を右側に */
  .shk-profile > .elementor-container { flex-direction: row-reverse; }
  .shk-profile-photo img { aspect-ratio: 428 / 580; }
}

@media (max-width: 767.98px) {
  .shk-profile-name .elementor-heading-title { font-size: 24px !important; }
}

/* =========================================
   匠輝庵 ご提供しているもの（サービスカルーセル）
   ========================================= */
.shk-service { position: relative; overflow: hidden; }
.shk-service .wrap-title-section { text-align: center; margin-bottom: 50px !important; }
.shk-service > .elementor-container > .elementor-column > .elementor-widget-wrap { padding-top: 60px !important; }
@media (max-width: 767.98px) {
  .shk-service > .elementor-container > .elementor-column > .elementor-widget-wrap { padding-top: 40px !important; }
}

.shk-svc { position: relative; max-width: 1000px; margin: 0 auto; padding: 0 70px; }
.shk-svc-swiper { overflow: hidden; min-height: 0 !important; float: none !important; } /* テンプレートの「画面の高さいっぱい」指定を解除 */
.shk-svc-card { height: auto; }
.shk-svc-img { display: block; overflow: hidden; }
.shk-svc-img img { display: block; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; transition: transform .8s ease; }
.shk-svc-img:hover img { transform: scale(1.04); }
.shk-svc-title {
  margin: 18px 0 14px;
  text-align: center;
  font-size: 18px !important;
  font-weight: 400;
  letter-spacing: .1em;
  color: #111;
  text-transform: none;
}
.shk-svc-title span { margin-left: 1em; letter-spacing: .04em; }
.shk-svc-ja, .shk-svc-en { font-size: 12.5px; line-height: 1.85; color: #222; margin: 0 0 12px; }
.shk-svc-en { font-size: 12px; color: #444; }
.shk-svc-more { color: var(--shk-purple); letter-spacing: .08em; text-decoration: none; }
.shk-svc-more:hover { color: var(--shk-deep); text-decoration: underline; }

/* PREV / NEXT */
.shk-svc-nav {
  position: absolute;
  top: 0;
  z-index: 3;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  color: #333;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}
.shk-svc-nav span { font-size: 9px; letter-spacing: .3em; }
.shk-svc-nav i { display: block; position: relative; width: 56px; height: 1px; background: #333; }
.shk-svc-nav i::after {
  content: ""; position: absolute; top: -3px; width: 8px; height: 1px; background: #333;
}
.shk-svc-prev { left: 0; align-items: flex-start; }
.shk-svc-prev i::after { left: 0; transform: rotate(-35deg); transform-origin: left center; top: 0; }
.shk-svc-next { right: 0; }
.shk-svc-next i::after { right: 0; transform: rotate(35deg); transform-origin: right center; top: 0; }
.shk-svc-nav:hover { color: var(--shk-purple); }
.shk-svc-nav:hover i, .shk-svc-nav:hover i::after { background: var(--shk-purple); }

/* ボタンを中央に */
.shk-service .shk-btn { text-align: center; margin-top: 40px; }

@media (max-width: 767.98px) {
  .shk-service .wrap-title-section { margin-bottom: 10px !important; } /* スマホ：カルーセルの上を40px詰める */
  .shk-svc { padding: 40px 0 0; }
  .shk-svc-nav { top: 0; }
}

/* =========================================
   匠輝庵 動画ブロック
   ========================================= */
.shk-video .story-section { padding: 110px 0; background: #111; overflow: hidden; }
/* 背景：①黒70% → ②紫を乗算 */
.shk-video .story-section:after { background-color: rgba(0, 0, 0, .7); }
.shk-video .story-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--shk-purple);
  mix-blend-mode: multiply;
  z-index: 1;
}
.shk-video .story-section .container { max-width: 1100px; }
.shk-video .row { align-items: center; }

/* 左：文章 */
.shk-video .section-text {
  white-space: pre-line;
  color: #fff !important;
  font-size: 12.5px;
  line-height: 2.1;
  letter-spacing: .04em;
  margin: 0;
}

/* 右：斜線 ／ PLAY VIDEO ＋ 丸い再生ボタン（テンプレートのサンプルと同じ形） */
.shk-video .story-video {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  margin-top: 0;
  text-decoration: none;
}
.shk-video .story-video > span {
  display: block;
  color: #fff;
  font-size: 11px;
  letter-spacing: .3em;
  text-transform: uppercase;
  margin-bottom: 14px;
}
.shk-video .col-md-5:last-child { text-align: center; }
.shk-video .sep-line div { background-color: rgba(255, 255, 255, .7); }
.shk-video .circle-button { height: 210px; width: 210px; }
.shk-video .circle-button path { stroke: #fff; }
.shk-video svg#p-icon { width: 76px; height: 76px; margin-left: 14px; }
.shk-video .story-video:hover .circle-button path { stroke: var(--shk-sky); }

@media (max-width: 767.98px) {
  .shk-video .story-section { padding: 70px 0; }
  .shk-video .col-md-5 + .col-md-2 + .col-md-5 { margin-top: 40px; }
  .shk-video .circle-button { height: 150px; width: 150px; }
  .shk-video svg#p-icon { width: 56px; height: 56px; }
}


/* =========================================
   Instagram（Smash Balloon）
   ========================================= */
.shk-sns-sec .elementor-widget-wrap{padding-top:0 !important;}
.shk-insta{max-width:960px;margin:-40px auto 0 !important;}
.shk-insta #sb_instagram.sbi_masonry #sbi_images{transition:none !important;}
.shk-insta #sb_instagram{padding-bottom:0 !important;}
.shk-insta #sb_instagram .sbi_photo{transition:opacity .4s ease;}
.shk-insta #sb_instagram .sbi_photo:hover{opacity:.8;}
.shk-insta #sb_instagram .sbi_follow_btn{margin-top:40px;}
.shk-insta #sb_instagram .sbi_follow_btn a{background:var(--shk-purple) !important;color:#fff !important;border-radius:0 !important;padding:14px 40px !important;font-family:var(--shk-serif) !important;font-size:14px !important;letter-spacing:.12em;box-shadow:none !important;transition:background .3s ease;}
.shk-insta #sb_instagram .sbi_follow_btn a:hover{background:var(--shk-deep) !important;}
@media (max-width:767px){
  .shk-insta #sb_instagram .sbi_follow_btn{margin-top:30px;}
}

/* Load More と Follow を横並び */
.shk-insta #sb_instagram #sbi_load{display:flex !important;justify-content:center;align-items:stretch;flex-wrap:wrap;gap:16px;margin-top:40px;}
.shk-insta #sb_instagram #sbi_load .sbi_follow_btn{margin:0 !important;display:flex;}
.shk-insta #sb_instagram #sbi_load .sbi_load_btn,
.shk-insta #sb_instagram #sbi_load .sbi_follow_btn a{box-sizing:border-box;min-width:290px;display:inline-flex !important;align-items:center;justify-content:center;gap:8px;margin:0 !important;padding:14px 40px !important;border-radius:0 !important;font-family:var(--shk-serif) !important;font-size:14px !important;line-height:1.4 !important;letter-spacing:.12em;box-shadow:none !important;}
.shk-insta #sb_instagram #sbi_load .sbi_load_btn{background:#fff !important;color:var(--shk-purple) !important;border:1px solid var(--shk-purple) !important;transition:background .3s ease,color .3s ease;}
.shk-insta #sb_instagram #sbi_load .sbi_load_btn:hover{background:var(--shk-purple) !important;color:#fff !important;}
.shk-insta #sb_instagram #sbi_load .sbi_follow_btn a{border:1px solid var(--shk-purple) !important;}
@media (max-width:767px){
  .shk-insta #sb_instagram #sbi_load{margin-top:30px;gap:12px;}
  .shk-insta #sb_instagram #sbi_load .sbi_load_btn,
  .shk-insta #sb_instagram #sbi_load .sbi_follow_btn a{min-width:0;width:100%;}
  .shk-insta #sb_instagram #sbi_load .sbi_follow_btn{width:100%;}
}

/* =========================================
   フッター
   ========================================= */
.main-footer.shk-footer{background:var(--shk-deep) !important;color:#fff;padding:0 !important;text-align:center;}
.shk-footer .container{padding:80px 16px 70px;}
.shk-footer-logo{margin:0 0 36px;}
.shk-footer-logo a{display:inline-block;}
.shk-footer-logo img{display:block;height:240px;width:auto;margin:0 auto;}
.shk-logo-b .shk-footer-logo img{height:170px;}
.shk-footer-menu{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 36px;}
.shk-footer-menu li{margin:0;padding:0;}
.shk-footer-menu a{color:rgba(255,255,255,.85) !important;font-family:var(--shk-serif);font-size:13px;letter-spacing:.12em;text-decoration:none;transition:color .3s ease;}
.shk-footer-menu a:hover{color:var(--shk-sky) !important;}
.shk-footer .w-line{width:60px;height:1px;background:rgba(255,255,255,.5);margin:36px auto;}
.shk-footer-actions{display:flex;justify-content:center;align-items:center;gap:28px;}
.shk-footer-sns{color:#fff !important;display:inline-flex;transition:color .3s ease;}
.shk-footer-sns:hover{color:var(--shk-sky) !important;}
.shk-footer-contact{display:inline-block;border:1px solid #fff;color:#fff !important;font-family:var(--shk-serif);font-size:14px;letter-spacing:.12em;padding:13px 40px;text-decoration:none;transition:background .3s ease,color .3s ease;}
.shk-footer-contact:hover{background:#fff;color:var(--shk-deep) !important;}
.shk-footer .copyright{background:rgba(0,0,0,.3);padding:26px 16px 22px;margin:0;}
.shk-footer .copyright p{margin:0;color:rgba(255,255,255,.75);font-family:var(--shk-serif);text-transform:none !important;letter-spacing:.04em;}
.shk-footer-notice{font-size:12px;line-height:1.9;}
.shk-footer-notice span{font-size:11px;color:rgba(255,255,255,.6);}
.shk-footer .copyright .shk-footer-copy{margin-top:12px;font-size:11px;letter-spacing:.1em;color:rgba(255,255,255,.5);}
@media (max-width:767px){
  .shk-footer .container{padding:60px 20px 50px;}
  .shk-footer-logo img{height:200px;}
  .shk-logo-b .shk-footer-logo img{height:140px;}
  .shk-footer-menu{gap:12px 22px;}
  .shk-footer .w-line{margin:28px auto;}
  .shk-footer-notice{font-size:11px;text-align:left;}
  .shk-footer-notice span{font-size:10px;}
}

/* =========================================
   ご予約（カレンダー）
   ========================================= */
.shk-reserve{position:relative;overflow:hidden;}
.shk-reserve::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.7);z-index:0;pointer-events:none;}
.shk-reserve::after{content:"";position:absolute;inset:0;background:var(--shk-purple);mix-blend-mode:multiply;z-index:0;pointer-events:none;}
.shk-reserve > .elementor-container{position:relative;z-index:1;}
.shk-reserve .elementor-widget-wrap{padding:0 !important;}
.shk-reserve .wrap-title-section .sub-title-1,
.shk-reserve .wrap-title-section .title-section,
.shk-reserve .wrap-title-section .char{color:#fff !important;}
.shk-reserve .wrap-title-section .s-line{background:#fff !important;border-color:#fff !important;}
.shk-reserve .elementor-widget-vivax-section-title{margin-bottom:60px;}

.shk-cal{position:relative;color:#fff;font-family:var(--shk-serif);}
.shk-cal-inner{max-width:1500px;margin:0 auto;padding:0 110px;}
.shk-cal-swiper.swiper-container{min-height:0 !important;height:auto;overflow:hidden;float:none;}
.shk-cal-swiper .swiper-slide{height:auto;}
.shk-cal-month{border:.5px solid rgba(255,255,255,.6);padding:26px 26px 18px;height:100%;box-sizing:border-box;}
.shk-cal-head{display:flex;justify-content:center;gap:1.4em;font-size:21px;letter-spacing:.04em;margin-bottom:16px;}
.shk-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);row-gap:0;text-align:center;}
.shk-cal-wd{font-size:13px;letter-spacing:.04em;color:rgba(255,255,255,.85);padding-bottom:4px;}
.shk-cal-day{display:flex;align-items:center;justify-content:center;width:36px;height:36px;margin:0 auto;padding:0;border:0;border-radius:50%;background:transparent;color:#fff;font-family:var(--shk-serif);font-size:18px;line-height:1;transition:background .25s ease,color .25s ease;}
button.shk-cal-day{cursor:pointer;}
button.shk-cal-day:hover{background:rgba(255,255,255,.18);}
.shk-cal-day.is-off{color:rgba(255,255,255,.3);}
.shk-cal-day.is-selected,.shk-cal-day.is-selected:hover{background:var(--shk-sky);color:var(--shk-deep);}

.shk-cal-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:46px;height:156px;padding:0;border:0;border-radius:0;background:#fff;color:#333;font-family:var(--shk-sans);font-size:15px;letter-spacing:.45em;writing-mode:vertical-rl;cursor:pointer;transition:background .3s ease,color .3s ease;}
.shk-cal-prev{left:0;transform:translateY(-50%) rotate(180deg);}
.shk-cal-next{right:0;}
.shk-cal-nav:hover{background:var(--shk-purple);color:#fff;}
.shk-cal-nav.swiper-button-disabled{opacity:.35;cursor:default;}
.shk-cal-nav.swiper-button-disabled:hover{background:#fff;color:#333;}
.shk-cal-selected{min-height:1.6em;margin:36px 0 0;text-align:center;font-size:18px;letter-spacing:.08em;color:#fff;}
.shk-cal-note{margin:12px 0 0;padding:0 20px;text-align:center;font-size:13px;line-height:1.9;color:rgba(255,255,255,.8);}
.shk-cal-note span{font-size:12px;color:rgba(255,255,255,.6);}
@media (max-width:1024px){
  .shk-cal-inner{padding:0 80px;}
}
@media (max-width:767px){
  .shk-reserve .elementor-widget-vivax-section-title{margin-bottom:30px;}
  .shk-cal-inner{padding:0 44px;}
  .shk-cal-month{padding:20px 8px 14px;}
  .shk-cal-head{font-size:19px;margin-bottom:16px;}
  .shk-cal-wd{font-size:12px;}
  .shk-cal-day{width:32px;height:32px;font-size:15px;max-width:100%;}
  .shk-cal-nav{width:36px;height:120px;font-size:12px;}
  .shk-cal-selected{margin-top:26px;font-size:16px;}
  .shk-cal-note{font-size:12px;text-align:left;}
  .shk-cal-note span{font-size:11px;}
}

/* =========================================
   予約ポップアップ（PC：ポップアップ／スマホ：全画面モーダル）
   ========================================= */
html.shk-bk-lock,html.shk-bk-lock body{overflow:hidden !important;}
.shk-bk{position:fixed;inset:0;z-index:100000;visibility:hidden;pointer-events:none;}
.shk-bk.is-open{visibility:visible;pointer-events:auto;}
.shk-bk-overlay{position:absolute;inset:0;background:rgba(20,0,32,.72);opacity:0;transition:opacity .35s ease;}
.shk-bk.is-open .shk-bk-overlay{opacity:1;}
.shk-bk-dialog{position:absolute;left:50%;top:50%;width:min(680px,calc(100vw - 40px));max-height:calc(100vh - 60px);overflow-y:auto;overscroll-behavior:contain;background:#fff;color:#333;padding:48px 52px 44px;box-sizing:border-box;transform:translate(-50%,-46%);opacity:0;transition:transform .4s cubic-bezier(.2,.7,.2,1),opacity .35s ease;font-family:var(--shk-serif);outline:none;}
.shk-bk.is-open .shk-bk-dialog{transform:translate(-50%,-50%);opacity:1;}
.shk-bk-close{position:absolute;top:14px;right:14px;width:44px;height:44px;border:0;background:transparent;cursor:pointer;padding:0;}
.shk-bk-close span,.shk-bk-close span::after{position:absolute;left:11px;top:21px;width:22px;height:1px;background:#333;transform:rotate(45deg);content:"";}
.shk-bk-close span::after{left:0;top:0;transform:rotate(90deg);}
.shk-bk-close:hover span,.shk-bk-close:hover span::after{background:var(--shk-purple);}

.shk-bk-head{text-align:center;margin-bottom:30px;}
.shk-bk-en{margin:0;font-size:15px;letter-spacing:.06em;color:#555;}
.shk-bk-head h3{margin:4px 0 14px;font-size:26px;letter-spacing:.2em;color:#111;font-weight:400;}
.shk-bk-date{margin:0 0 22px;font-size:18px;color:var(--shk-purple);letter-spacing:.06em;}
.shk-bk-date span{display:block;font-size:12px;color:#888;letter-spacing:.04em;margin-top:2px;}
.shk-bk-steps{display:flex;justify-content:center;gap:0;margin:0;padding:0;list-style:none;counter-reset:bk;}
.shk-bk-steps li{position:relative;flex:1;max-width:150px;font-size:13px;color:#aaa;padding-top:26px;counter-increment:bk;}
.shk-bk-steps li::before{content:counter(bk);position:absolute;top:0;left:50%;transform:translateX(-50%);width:20px;height:20px;line-height:20px;border-radius:50%;background:#ddd;color:#fff;font-size:11px;font-family:var(--shk-sans);z-index:1;}
.shk-bk-steps li:not(:first-child)::after{content:"";position:absolute;top:10px;right:50%;width:100%;height:1px;background:#ddd;}
.shk-bk-steps li span{display:block;font-size:10px;letter-spacing:.06em;}
.shk-bk-steps li.is-active,.shk-bk-steps li.is-done{color:var(--shk-purple);}
.shk-bk-steps li.is-active::before,.shk-bk-steps li.is-done::before{background:var(--shk-purple);}
.shk-bk-steps li.is-active::after,.shk-bk-steps li.is-done::after{background:var(--shk-purple);}

.shk-bk-field{margin:0 0 26px;}
.shk-bk-label{display:block;margin:0 0 10px;font-size:15px;color:#222;letter-spacing:.04em;}
.shk-bk-label em{font-style:normal;color:#c0392b;margin-left:2px;}
.shk-bk-label span{margin-left:10px;font-size:11px;color:#999;letter-spacing:.04em;}
.shk-bk input[type=text],.shk-bk input[type=email],.shk-bk input[type=tel],.shk-bk select,.shk-bk textarea{width:100%;box-sizing:border-box;border:1px solid #ccc;border-radius:0;background:#fff;padding:12px 14px;font-family:var(--shk-sans);font-size:16px;color:#222;line-height:1.5;margin:0;box-shadow:none;}
.shk-bk select{height:auto;appearance:auto;}
.shk-bk input:focus,.shk-bk select:focus,.shk-bk textarea:focus{outline:none;border-color:var(--shk-purple);box-shadow:0 0 0 2px rgba(95,62,140,.15);}
.shk-bk .has-err input[type=text],.shk-bk .has-err input[type=email],.shk-bk .has-err input[type=tel],.shk-bk .has-err select{border-color:#c0392b;}
.shk-bk-err{margin:6px 0 0;font-size:12px;color:#c0392b;font-family:var(--shk-sans);}
.shk-bk-err:empty{display:none;}
.shk-bk-hint{margin:8px 0 0;font-size:12px;line-height:1.8;color:#777;font-family:var(--shk-sans);}
.shk-bk-hint a{color:var(--shk-purple);text-decoration:underline;}

.shk-bk-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.shk-bk-slot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #ccc;padding:14px 4px 10px;cursor:pointer;transition:border-color .2s ease,background .2s ease;margin:0;}
.shk-bk-slot input{position:absolute;opacity:0;pointer-events:none;}
.shk-bk-slot-time{font-size:19px;color:#222;letter-spacing:.04em;}
.shk-bk-slot-sub{font-size:11px;color:#888;font-family:var(--shk-sans);margin-top:2px;}
.shk-bk-slot:hover{border-color:var(--shk-purple);}
.shk-bk-slot:has(input:checked){border-color:var(--shk-purple);background:var(--shk-purple);}
.shk-bk-slot:has(input:checked) .shk-bk-slot-time,.shk-bk-slot:has(input:checked) .shk-bk-slot-sub{color:#fff;}
.shk-bk-slot:has(input:focus-visible){box-shadow:0 0 0 2px rgba(95,62,140,.35);}
.shk-bk-slot.is-off{cursor:not-allowed;background:#f3f3f3;border-color:#e2e2e2;}
.shk-bk-slot.is-off .shk-bk-slot-time{color:#bbb;text-decoration:line-through;}
.shk-bk-slot.is-off .shk-bk-slot-sub{color:#aaa;}

.shk-bk-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;}
.shk-bk-tags li{margin:0;padding:6px 12px;background:var(--shk-pale);color:var(--shk-deep);font-size:13px;}
.shk-bk-checks,.shk-bk-radios{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 16px;}
.shk-bk-check{display:flex;align-items:flex-start;gap:8px;margin:0;cursor:pointer;font-size:14px;color:#333;line-height:1.5;font-family:var(--shk-sans);}
.shk-bk-check input{margin:3px 0 0;width:16px;height:16px;flex:none;accent-color:var(--shk-purple);}
.shk-bk-other{margin-top:10px !important;}
.shk-bk-hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;overflow:hidden;}

.shk-bk-price{background:#f6f3fa;padding:18px 22px;margin:0 0 26px;}
.shk-bk-price-empty{margin:0;text-align:center;font-size:13px;color:#888;line-height:1.7;}
.shk-bk-price-empty span{font-size:11px;}
.shk-bk-price-row{display:flex;justify-content:space-between;align-items:baseline;padding:6px 0;font-size:15px;}
.shk-bk-price-row small{display:block;font-size:11px;color:#999;}
.shk-bk-price-row.is-total{border-top:1px solid #d9d0e6;margin-top:6px;padding-top:12px;font-size:17px;color:var(--shk-deep);}
.shk-bk-price-row.is-total span:last-child{font-size:24px;color:var(--shk-purple);}
.shk-bk-price-note{margin:8px 0 0;font-size:11px;line-height:1.7;color:#888;font-family:var(--shk-sans);}

.shk-bk-policy{background:#f7f7f7;padding:14px 16px;margin:0 0 12px;font-size:12px;line-height:1.8;color:#555;font-family:var(--shk-sans);}
.shk-bk-policy span{color:#888;}

.shk-bk-summary{display:grid;grid-template-columns:9.5em 1fr;margin:0 0 20px;border-top:1px solid #e5e5e5;}
.shk-bk-summary dt{margin:0;padding:12px 10px 12px 0;border-bottom:1px solid #e5e5e5;font-size:13px;color:#666;}
.shk-bk-summary dt span{display:block;font-size:10px;color:#aaa;}
.shk-bk-summary dd{margin:0;padding:12px 0;border-bottom:1px solid #e5e5e5;font-size:15px;color:#222;line-height:1.6;word-break:break-word;}
.shk-bk-summary dd small{font-size:12px;color:#888;}

.shk-bk-actions{display:flex;justify-content:center;gap:14px;margin-top:30px;}
.shk-bk-btn{min-width:180px;padding:15px 28px;border:1px solid var(--shk-purple);border-radius:0;background:var(--shk-purple);color:#fff;font-family:var(--shk-serif);font-size:15px;letter-spacing:.12em;cursor:pointer;transition:background .3s ease,color .3s ease,border-color .3s ease;}
.shk-bk-btn:hover{background:var(--shk-deep);border-color:var(--shk-deep);}
.shk-bk-btn.is-ghost{background:#fff;color:var(--shk-purple);}
.shk-bk-btn.is-ghost:hover{background:var(--shk-pale);color:var(--shk-deep);}
.shk-bk-btn:disabled{opacity:.6;cursor:wait;}

.shk-bk-done{text-align:center;padding:10px 0;}
.shk-bk-done-ttl{margin:0;font-size:22px;letter-spacing:.12em;color:var(--shk-purple);}
.shk-bk-done-en{margin:6px 0 20px;font-size:13px;color:#888;}
.shk-bk-done-txt{font-size:14px;line-height:1.9;color:#444;}
.shk-bk-done-txt span{font-size:12px;color:#888;}

@media (max-width:767px){
  .shk-bk-dialog{left:0;top:0;width:100%;height:100%;max-height:none;padding:56px 20px 36px;transform:translateY(100%);opacity:1;}
  .shk-bk.is-open .shk-bk-dialog{transform:translateY(0);}
  .shk-bk-close{top:8px;right:8px;}
  .shk-bk-head{margin-bottom:24px;}
  .shk-bk-head h3{font-size:22px;}
  .shk-bk-date{font-size:16px;margin-bottom:18px;}
  .shk-bk-slots{grid-template-columns:repeat(2,1fr);}
  .shk-bk-checks{grid-template-columns:1fr 1fr;gap:10px 10px;}
  .shk-bk-check{font-size:13px;}
  .shk-bk-summary{grid-template-columns:1fr;}
  .shk-bk-summary dt{padding:12px 0 2px;border-bottom:0;}
  .shk-bk-summary dd{padding:0 0 12px;}
  .shk-bk-actions{gap:10px;}
  .shk-bk-btn{min-width:0;flex:1;padding:14px 10px;font-size:14px;letter-spacing:.06em;}
}

.shk-bk-lead{margin:0 0 14px;padding:10px 14px;background:var(--shk-pale);color:var(--shk-deep);font-size:13px;line-height:1.7;font-family:var(--shk-sans);}
.shk-bk-lead span{font-size:11px;color:#4a4a6a;}
.shk-bk-checks .shk-bk-check{border:1px solid #ddd;padding:10px 12px;align-items:center;transition:border-color .2s ease,background .2s ease;}
.shk-bk-checks .shk-bk-check input{margin:0;}
.shk-bk-checks .shk-bk-check:hover{border-color:var(--shk-purple);}
.shk-bk-checks .shk-bk-check:has(input:checked){border-color:var(--shk-purple);background:#f6f3fa;}
.shk-bk-count{margin:10px 0 0;font-size:13px;color:var(--shk-purple);font-family:var(--shk-sans);}
.shk-bk-count:empty{display:none;}
.shk-bk-count span{margin-left:8px;font-size:11px;color:#999;}
@media (max-width:767px){
  .shk-bk-checks .shk-bk-check{padding:10px 8px;font-size:12px;}
  .shk-bk-count span{display:block;margin:2px 0 0;}
}

/* =========================================
   お支払いページ（WooCommerce 注文の支払い）
   ========================================= */
body.woocommerce-order-pay .wrap-page-content > .woocommerce,
body.woocommerce-order-received .wrap-page-content > .woocommerce{max-width:760px;margin:0 auto;padding:70px 20px 110px;box-sizing:border-box;font-family:var(--shk-serif);color:#333;}
.shk-pay-head{text-align:center;margin-bottom:40px;}
.shk-pay-en{margin:0;font-size:17px;letter-spacing:.06em;color:#555;}
.shk-pay-ttl{margin:6px 0 16px;font-size:30px;letter-spacing:.2em;font-weight:400;color:#111;}
.shk-pay-ttl::after{content:"";display:block;width:60px;height:1px;background:#333;margin:18px auto 0;}
.shk-pay-lead{margin:0 0 14px;font-size:14px;line-height:1.9;}
.shk-pay-lead span,.shk-pay-limit span{font-size:12px;color:#888;}
.shk-pay-limit{display:inline-block;margin:0;padding:10px 18px;background:var(--shk-pale);color:var(--shk-deep);font-size:13px;line-height:1.7;}
body.woocommerce-order-pay .shop_table{width:100%;border:0;border-collapse:collapse;margin:0 0 30px;border-top:1px solid #ddd;}
body.woocommerce-order-pay .shop_table th,body.woocommerce-order-pay .shop_table td{border:0;border-bottom:1px solid #ddd;padding:16px 8px;font-size:15px;text-align:left;background:transparent;}
body.woocommerce-order-pay .shop_table thead th{font-size:12px;color:#888;font-weight:400;letter-spacing:.06em;}
body.woocommerce-order-pay .shop_table .product-quantity{width:0;padding:0 !important;font-size:0;overflow:hidden;}
body.woocommerce-order-pay .shop_table td.product-subtotal,body.woocommerce-order-pay .shop_table th.product-total,body.woocommerce-order-pay .shop_table tfoot td{text-align:right;white-space:nowrap;}
body.woocommerce-order-pay .shop_table tfoot th{font-weight:400;color:#666;}
body.woocommerce-order-pay .shop_table tfoot tr:last-child th,body.woocommerce-order-pay .shop_table tfoot tr:last-child td{font-size:18px;color:var(--shk-deep);}
body.woocommerce-order-pay .shop_table tfoot tr:last-child td .amount{font-size:24px;color:var(--shk-purple);}
body.woocommerce-order-pay #payment{background:#f6f3fa;border-radius:0;padding:24px;}
body.woocommerce-order-pay #payment ul.payment_methods{border-bottom:1px solid #e0d8ec;padding:0 0 16px;margin:0 0 16px;}
body.woocommerce-order-pay #payment div.form-row{padding:0;margin:0;}
body.woocommerce-order-pay .woocommerce-privacy-policy-text{font-size:12px;line-height:1.8;color:#777;font-family:var(--shk-sans);margin-bottom:20px;}
body.woocommerce-order-pay #place_order{float:none !important;display:block;width:100%;max-width:360px;margin:10px auto 0;padding:16px 28px;border:0;border-radius:0;background:var(--shk-purple);color:#fff;font-family:var(--shk-serif);font-size:16px;letter-spacing:.12em;cursor:pointer;transition:background .3s ease;}
body.woocommerce-order-pay #place_order:hover{background:var(--shk-deep);}
body.woocommerce-order-pay .woocommerce-info,body.woocommerce-order-pay .woocommerce-error{border-top-color:var(--shk-purple);background:#fff;font-family:var(--shk-sans);font-size:14px;}
@media (max-width:767px){
  body.woocommerce-order-pay .wrap-page-content > .woocommerce{padding:40px 16px 80px;}
  .shk-pay-ttl{font-size:24px;}
  body.woocommerce-order-pay .shop_table th,body.woocommerce-order-pay .shop_table td{font-size:13px;padding:12px 4px;}
  body.woocommerce-order-pay #payment{padding:18px 14px;}
}

/* =========================================
   ヘッダーメニュー：区切り線・SNSアイコン追加
   ========================================= */
.shk-ico{display:inline-block;width:22px;height:22px;background-color:currentColor;-webkit-mask:var(--shk-ico) center/contain no-repeat;mask:var(--shk-ico) center/contain no-repeat;}
.shk-ico-youtube{--shk-ico:url("https://cdn.jsdelivr.net/npm/simple-icons@13.21.0/icons/youtube.svg");}
.shk-ico-tripadvisor{--shk-ico:url("https://cdn.jsdelivr.net/npm/simple-icons@13.21.0/icons/tripadvisor.svg");}
@media (min-width:768px){
  .home-menu-text .menu > .menu-item:not(.shk-sns){position:relative;}
  .home-menu-text .menu > .menu-item:not(.shk-sns) + .menu-item:not(.shk-sns)::before{content:"";position:absolute;left:-22px;top:50%;width:1px;height:12px;background:#b5b5b5;transform:translateY(-50%);}
}
@media (min-width:768px) and (max-width:1199.98px){
  .home-menu-text .menu > .menu-item:not(.shk-sns) + .menu-item:not(.shk-sns)::before{left:-12px;}
}

.home-menu-text .menu > .menu-item > a{white-space:nowrap;}
@media (min-width:768px) and (max-width:1439.98px){
  .home-menu-text .shk-mi-ja{display:none;}
}
@media (min-width:768px) and (max-width:991.98px){
  .home-menu-text .menu > .menu-item{margin:0 7px;}
  .home-menu-text .menu > .menu-item:not(.shk-sns) + .menu-item:not(.shk-sns)::before{left:-7px;}
  .home-menu-text .shk-sns{margin-left:8px;}
  .header-logo{width:160px !important;}
  .header-logo img{height:auto !important;}
  .home-menu-text .menu > .menu-item > a{font-size:10.5px;letter-spacing:.03em;}
}

/* スマホメニュー：SNSアイコンを横並びに */
@media (max-width:767.98px){
  .home-menu-text .menu{flex-direction:row !important;flex-wrap:wrap;justify-content:center;align-content:center;}
  .home-menu-text .menu > .menu-item:not(.shk-sns){flex:0 0 100%;}
  .home-menu-text .menu > .shk-sns{margin:26px 14px 0 !important;}
}

/* PC：SNSアイコンの間隔 */
@media (min-width:992px){
  .home-menu-text .menu > .shk-sns{margin-left:22px;}
  .home-menu-text .menu > .shk-sns + .shk-sns{margin-left:18px;}
}
/* スマホ：メニューを開いた時は白いロゴ */
@media (max-width:767.98px){
  body.shk-logo-a:has(.hamburger.opened) .header-logo img{content:url("https://kyoto-tea-dance.kujiramatsu.jp/wp-content/uploads/2026/09/logo2_yoko2_shokian.svg");}
  body.shk-logo-b:has(.hamburger.opened) .header-logo img{filter:brightness(0) invert(1);}
}

/* =========================================
   サービス紹介ページ
   ========================================= */
/* 上部の紫帯（ページ内メニュー・スクロールしても上に残る） */
.elementor:has(> .shk-snav-sec){overflow:visible !important;}
.shk-snav-sec{position:sticky !important;top:calc(var(--shk-header-h) + var(--wp-admin--admin-bar--height, 0px));z-index:50;}
html:has(.shk-snav){scroll-padding-top:calc(var(--shk-header-h) + var(--wp-admin--admin-bar--height, 0px) + 100px);}
.shk-snav{background:var(--shk-deep);color:#fff;}
.shk-snav-inner{max-width:1680px;margin:0 auto;padding:22px 30px;box-sizing:border-box;}
.shk-snav-list ul{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 34px;margin:0;padding:0;list-style:none;}
.shk-snav-list li{margin:0;padding:0;}
.shk-snav-list a{display:flex;flex-direction:column;align-items:center;color:#fff !important;text-decoration:none;line-height:1.45;font-family:var(--shk-serif) !important;transition:color .3s ease;white-space:nowrap;}
.shk-snav-list a .ja{font-size:14px;letter-spacing:.1em;}
.shk-snav-list a .en{font-size:11px;letter-spacing:.04em;opacity:.75;}
.shk-snav-list a:hover,.shk-snav-list a.is-current{color:var(--shk-sky) !important;}
@media (max-width:1199.98px){
  .shk-snav-list ul{gap:10px 24px;}
}
@media (max-width:767.98px){
  html:has(.shk-snav){scroll-padding-top:calc(var(--shk-header-h) + var(--wp-admin--admin-bar--height, 0px) + 80px);}
  .shk-snav-inner{padding:14px 0;}
  .shk-snav-list ul{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;gap:0 22px;padding:0 16px 4px;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .shk-snav-list ul::-webkit-scrollbar{display:none;}
  .shk-snav-list{position:relative;}
  .shk-snav-list::after{content:"";position:absolute;top:0;right:0;bottom:0;width:36px;background:linear-gradient(to right,rgba(44,0,63,0),var(--shk-deep));pointer-events:none;}
  .shk-snav-list ul{cursor:grab;touch-action:pan-x pan-y;}
  .shk-snav-list ul li:last-child{padding-right:24px;}
  .shk-snav-list a .ja{font-size:13px;}
}

/* 各サービス */
.shk-svc-sec .elementor-widget-vivax-section-title{margin-bottom:0 !important;}
.shk-svc-sec .wrap-title-section{margin-bottom:50px !important;}
.shk-svc-sec .shk-svc-text{margin-bottom:34px;}
.shk-svc-sec .shk-svc-text .elementor-widget-text-editor{font-size:14px;line-height:2.1;}
@media (max-width:767.98px){
  .shk-svc-sec .wrap-title-section{margin-bottom:30px !important;}
  .shk-svc-sec .shk-svc-text{margin-bottom:22px;}
}

/* 写真モザイク */
.shk-mosaic{display:grid;gap:12px;height:560px;}
.shk-mosaic--a{grid-template-columns:1.1fr 1fr;grid-template-rows:1fr 1fr;}
.shk-mosaic--a .shk-mosaic-item--1{grid-row:1 / 3;}
.shk-mosaic--b{grid-template-columns:1fr 1.1fr;grid-template-rows:1fr 1fr;}
.shk-mosaic--b .shk-mosaic-item--1{grid-column:2;grid-row:1 / 3;}
.shk-mosaic--b .shk-mosaic-item--2{grid-column:1;grid-row:1;}
.shk-mosaic--b .shk-mosaic-item--3{grid-column:1;grid-row:2;}
.shk-mosaic--c{grid-template-columns:repeat(3,1fr);grid-template-rows:1fr;}
.shk-mosaic--d{grid-template-columns:1fr 1fr;grid-template-rows:1.3fr 1fr;}
.shk-mosaic--d .shk-mosaic-item--1{grid-column:1 / 3;}
.shk-mosaic-item{position:relative;margin:0;overflow:hidden;background:#f3f0f7;min-height:0;}
.shk-mosaic-item img{display:block;width:100% !important;height:100% !important;max-width:none;object-fit:cover;}
.shk-mosaic-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px dashed #d4cae2;color:#a193b8;font-family:var(--shk-serif);}
.shk-mosaic-empty span:first-child{font-size:14px;letter-spacing:.12em;}
.shk-mosaic-empty span:last-child{font-size:11px;letter-spacing:.06em;}
@media (max-width:767.98px){
  .shk-mosaic{height:400px;gap:8px;}
}

/* =========================================
   お問い合わせフォーム（予約フォームと同じデザイン）
   ========================================= */
.shk-cf{max-width:720px;margin:0 auto;font-family:var(--shk-serif);color:#333;}
.shk-cf .shk-cf-steps{margin:50px 0 40px !important;}
@media (max-width:767.98px){ .shk-cf .shk-cf-steps{margin:34px 0 30px !important;} }
.shk-cf input[type=text],.shk-cf input[type=email],.shk-cf select,.shk-cf textarea{width:100%;box-sizing:border-box;border:1px solid #ccc;border-radius:0;background:#fff;padding:12px 14px;font-family:var(--shk-sans);font-size:16px;color:#222;line-height:1.5;margin:0;box-shadow:none;height:auto;}
.shk-cf input:focus,.shk-cf select:focus,.shk-cf textarea:focus{outline:none;border-color:var(--shk-purple);box-shadow:0 0 0 2px rgba(95,62,140,.15);}
.shk-cf .has-err input[type=text],.shk-cf .has-err input[type=email],.shk-cf .has-err select,.shk-cf .has-err textarea{border-color:#c0392b;}
.shk-cf .shk-bk-check a{color:var(--shk-purple);text-decoration:underline;}
.shk-cf .shk-bk-done{padding:30px 0;}

.shk-contact-sec .wrap-title-section{margin-bottom:40px !important;}
.shk-cf-lead{text-align:center;margin-bottom:50px !important;font-size:14px;line-height:2;}
.shk-cf-lead .shk-cf-lead-en{font-size:12px;color:#888;}
@media (max-width:767.98px){ .shk-cf-lead{text-align:left;margin-bottom:34px !important;} }

.shk-bk-steps li{text-align:center;}
.shk-bk-steps li::before{text-align:center;}

/* =========================================
   規約・ポリシーページ（クリックで開く）
   ========================================= */
.shk-policy-sec .wrap-title-section{margin-bottom:34px !important;}
.shk-policy-lead{text-align:center;font-size:13px;line-height:1.9;color:#666;margin-bottom:30px !important;}
.shk-policy .elementor-toggle-item{border-bottom:1px solid #ddd;}
.shk-policy .elementor-toggle-item:first-child{border-top:1px solid #ddd;}
.shk-policy .elementor-tab-title{display:flex;align-items:center;gap:14px;padding:20px 6px !important;border:0 !important;cursor:pointer;}
.shk-policy .elementor-toggle-title{font-family:var(--shk-serif);font-size:16px;letter-spacing:.06em;color:#222 !important;text-decoration:none;}
.shk-policy .elementor-tab-title:hover .elementor-toggle-title,.shk-policy .elementor-tab-title.elementor-active .elementor-toggle-title{color:var(--shk-purple) !important;}
.shk-policy .elementor-toggle-icon{order:2;margin-left:auto;width:14px;flex:none;color:var(--shk-purple);}
.shk-policy .elementor-toggle-icon svg{width:12px;height:12px;fill:var(--shk-purple);}
.shk-policy .elementor-tab-content{padding:0 6px 26px !important;border:0 !important;font-size:14px;line-height:2;color:#444;}
.shk-policy .elementor-tab-content p{margin:0 0 .8em;}
.shk-policy .elementor-tab-content ul,.shk-policy .elementor-tab-content ol{margin:.2em 0 1em 1.4em;padding:0;}
.shk-policy .elementor-tab-content li{margin:0 0 .4em;}
.shk-policy .elementor-tab-content table{width:100%;border-collapse:collapse;margin:.4em 0 1.2em;font-size:13px;}
.shk-policy .elementor-tab-content th,.shk-policy .elementor-tab-content td{border:1px solid #ddd;padding:10px 12px;text-align:left;vertical-align:top;background:#fff;}
.shk-policy .elementor-tab-content th{background:#f6f3fa;font-weight:400;white-space:nowrap;}
.shk-policy .elementor-tab-content .blank{color:#c0392b;}
@media (max-width:767.98px){
  .shk-policy .elementor-toggle-title{font-size:15px;}
  .shk-policy .elementor-tab-content{font-size:13px;}
  .shk-policy .elementor-tab-content th{white-space:normal;}
  .shk-policy-lead{text-align:left;}
}
.shk-policy-sec .blank{color:#c0392b;}
.shk-bk-check a{color:var(--shk-purple);text-decoration:underline;}


/* イベント（カレンダー表示・ポップアップ） */
.shk-cal-day.has-event{background:var(--shk-sky);color:#fff;cursor:pointer;font-weight:600;}
button.shk-cal-day.has-event:hover{background:#fff;color:var(--shk-sky);}
.shk-cal-day.has-event.is-selected,.shk-cal-day.has-event.is-selected:hover{background:#fff;color:var(--shk-deep);box-shadow:0 0 0 2px var(--shk-sky);}
.shk-cal-tip{position:fixed;left:0;top:0;z-index:9999;max-width:260px;padding:8px 14px;background:#fff;color:#333;font-family:var(--shk-serif);font-size:13px;line-height:1.6;letter-spacing:.04em;text-align:center;box-shadow:0 4px 18px rgba(0,0,0,.18);transform:translate(-50%,-100%);opacity:0;pointer-events:none;transition:opacity .2s ease;}
.shk-cal-tip::after{content:"";position:absolute;left:50%;bottom:-6px;margin-left:-6px;border:6px solid transparent;border-bottom:0;border-top-color:#fff;}
.shk-ev-list{max-width:620px;margin:30px auto 0;padding:0 20px;color:#fff;font-family:var(--shk-serif);}
.shk-ev-list-ttl{margin:0 0 12px;text-align:center;font-size:16px;letter-spacing:.12em;}
.shk-ev-list-ttl span{display:block;margin-top:2px;font-size:12px;letter-spacing:.1em;color:rgba(255,255,255,.65);}
.shk-ev-list ul{margin:0;padding:0;list-style:none;border-top:.5px solid rgba(255,255,255,.6);}
.shk-ev-list li{margin:0;border-bottom:.5px solid rgba(255,255,255,.6);}
.shk-ev-list button{display:flex;align-items:center;gap:16px;width:100%;padding:14px 8px;border:0;background:transparent;color:#fff;font-family:inherit;font-size:15px;text-align:left;cursor:pointer;transition:background .25s ease;}
.shk-ev-list button:hover{background:rgba(255,255,255,.1);}
.shk-ev-list .d{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:5.6em;height:30px;padding:0 10px;border-radius:15px;background:var(--shk-sky);font-size:14px;}
.shk-ev-list .t{flex:1;line-height:1.5;}
.shk-ev-list .t small{display:block;font-size:12px;color:rgba(255,255,255,.65);}
.shk-ev-list .v{flex:none;font-size:13px;color:rgba(255,255,255,.8);}
.shk-ev .shk-ev-img{margin:-48px -52px 26px;aspect-ratio:16/9;overflow:hidden;background:#eee;}
.shk-ev .shk-ev-img[hidden]{display:none;}
.shk-ev .shk-ev-img img{display:block;width:100%;height:100%;object-fit:cover;}
.shk-ev .shk-bk-en{color:var(--shk-sky);}
.shk-ev-title-en{margin:2px 0 6px;font-size:13px;letter-spacing:.06em;color:#888;}
.shk-ev-title-en:empty{display:none;}
.shk-ev-switch{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px;}
.shk-ev-switch:empty{display:none;}
.shk-ev-switch button{padding:6px 14px;border:.5px solid var(--shk-sky);border-radius:16px;background:#fff;color:#333;font-family:inherit;font-size:13px;cursor:pointer;}
.shk-ev-switch button.is-on{background:var(--shk-sky);color:#fff;}
.shk-ev-info{display:grid;grid-template-columns:7em 1fr;gap:10px 16px;margin:0 0 20px;padding:18px 0;border-top:.5px solid #ccc;border-bottom:.5px solid #ccc;font-size:15px;line-height:1.6;}
.shk-ev-info dt{margin:0;font-weight:600;color:var(--shk-purple);}
.shk-ev-info dt span{display:block;font-size:11px;font-weight:400;color:#999;}
.shk-ev-info dd{margin:0;}
.shk-ev-info dd small{display:block;font-size:12px;color:#888;}
.shk-ev-desc{margin:0 0 24px;font-size:14px;line-height:1.9;}
.shk-ev-desc:empty{display:none;}
.shk-ev-desc p{margin:0 0 .8em;}
.shk-ev .shk-bk-slots{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));}
.shk-ev-closed{margin:10px 0;padding:18px;background:#f4f4f4;text-align:center;font-size:15px;line-height:1.8;}
.shk-ev-closed span{font-size:13px;color:#888;}
.shk-ev-regular-link{margin:26px 0 0;text-align:center;}
.shk-ev-regular-link button{border:0;background:transparent;color:var(--shk-purple);font-family:inherit;font-size:14px;line-height:1.6;text-decoration:underline;text-underline-offset:4px;cursor:pointer;}
.shk-ev-regular-link button span{display:table;margin:2px auto 0;font-size:12px;color:#888;}
@media (max-width:767px){
  .shk-ev .shk-ev-img{margin:-56px -20px 22px;}
  .shk-ev-list{margin-top:20px;padding:0 4px;}
  .shk-ev-list button{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:4px 12px;padding:12px 4px;font-size:14px;}
  .shk-ev-list .d{grid-row:1 / span 2;min-width:0;height:26px;font-size:13px;}
  .shk-ev-list .t{grid-column:2;}
  .shk-ev-list .v{grid-column:2;font-size:12px;}
  .shk-ev-info{grid-template-columns:5.5em 1fr;font-size:14px;}
}

.shk-ev-list + .shk-cal-note{margin-top:32px;}

/* ローディング表示（Noto Serifでふわっと） */
#loader-wrapper .loader-section{background:#fff;}
#loader{margin:0;color:transparent;-webkit-text-stroke:0;font-size:0;line-height:1;letter-spacing:0;font-weight:400;text-transform:none;}
#loader::before{content:"Loading";position:static;display:block;height:auto;max-width:none;overflow:visible;padding-left:.4em;color:var(--shk-purple);font-family:var(--shk-serif);font-size:15px;font-weight:400;letter-spacing:.4em;opacity:0;animation:shkLoadIn 1s ease .1s forwards,shkLoadBreath 2.4s ease-in-out 1.1s infinite;}
@keyframes shkLoadIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
@keyframes shkLoadBreath{0%,100%{opacity:1;}50%{opacity:.35;}}
.loaded #loader{opacity:0;transition:opacity .5s ease;}

/* イベントのポップアップ：写真の上でも閉じるボタンが見えるよう白い丸を敷く */
.shk-ev .shk-bk-close{z-index:3;border-radius:50%;background:rgba(255,255,255,.92);box-shadow:0 2px 10px rgba(0,0,0,.18);}
.shk-ev .shk-bk-close:hover{background:#fff;}

/* TOPスライダーの PREV / NEXT を非表示 */
.parallax-slider .swiper-button-prev,.parallax-slider .swiper-button-next{display:none !important;}

/* スマホのヘッダーロゴを80%に（150px → 120px） */
@media (max-width:767.98px){
  .header-logo{width:96px !important;}
  .elementor-element-19e3b18,.elementor-element-19e3b18 .elementor-widget-container{text-align:center !important;}
}

/* サービスカードの MORE：日本語・英語とも右寄せで同じ位置に */
.shk-svc-card .shk-svc-more{display:table;margin:6px 0 0 auto;}

/* カレンダーの PREV / NEXT をカレンダー本体の高さの中央に */
.shk-cal-inner{position:relative;}

/* スマホ：TOPスライダー1枚目（hero_01）を左へ40pxずらす */
@media (max-width:767.98px){
  .parallax-slider figure.img-slider[data-img*="hero_01"]{background-position:calc(50% - 40px) 50% !important;}
}

/* スマホ：ロゴBは120px（Aは96px） */
@media (max-width:767.98px){
  body.shk-logo-b .header-logo{width:120px !important;}
}
