/* =========================================================
   01. ヘッダー・モバイルメニュー
========================================================= */

.ast-mobile-header-wrap .ast-mobile-header-content,
.ast-desktop-header-content {
  background: none !important;
}

/* ハンバーガーボタン */
button.menu-toggle {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  z-index: 10000 !important;
}

/* モバイルメニュー */
@media screen and (max-width: 921px) {

  /* 画面全体の背景レイヤー */
  body.mobile-menu-bg-open::before,
  body.mobile-menu-bg-closing::before {
    content: "";
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100svh;
    background-color: rgba(160, 160, 160, 0.5);
    z-index: 9997;
    pointer-events: none;
  }

  body.mobile-menu-bg-open::before {
    opacity: 1;
    transition: opacity 0.4s ease;
  }

  body.mobile-menu-bg-closing::before {
    opacity: 0;
    transition: opacity 0.4s ease;
  }

  /* メニュー本体 */
  .ast-mobile-header-content {
    position: fixed !important;
    top: 60px !important;
    right: 0 !important;
    left: auto !important;

    width: 100vw !important;
    max-width: 100vw !important;
    height: calc(100svh - 60px) !important;
    overflow-y: auto !important;

    display: block !important;
    background-color: transparent !important;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(40px);

    transition:
      opacity 0.4s ease,
      transform 0.4s ease,
      visibility 0s linear 0.4s;

    z-index: 9998 !important;
  }

  /* 開いている時 */
  .ast-mobile-header-content.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(0);

    transition:
      opacity 0.4s ease,
      transform 0.4s ease,
      visibility 0s linear 0s;
  }

  /* 閉じる時 */
  .ast-mobile-header-content.is-closing {
    opacity: 0;
    visibility: visible;
    pointer-events: none;
    transform: translateX(40px);
  }

  /* メニュー項目の背景を透明に */
  ul#ast-hf-mobile-menu,
  ul#ast-hf-mobile-menu li,
  ul#ast-hf-mobile-menu li a,
  .ast-mobile-header-content li,
  .ast-mobile-header-content li a {
    background-color: transparent !important;
  }
}


/* =========================================================
   02. MENUページ（page-id-207）
========================================================= */

.page-id-207 .wp-block-table {
  border-top: 1px solid #333 !important;
  border-bottom: 1px solid #333 !important;
}

.page-id-207 .wp-block-table table {
  margin-top: 10px;
  margin-bottom: 10px;
}

.page-id-207 .wp-block-table table tr {
  border-bottom: 1px dotted #333 !important;
}

.page-id-207 .wp-block-table table tr:last-child {
  border-bottom: none !important;
}


/* =========================================================
   03. STYLISTページ（page-id-155）
========================================================= */

.page-id-155 th,
.page-id-155 td {
  text-align: left;
  vertical-align: top;
}

.page-id-155 table,
.page-id-155 th,
.page-id-155 td {
  border: none !important;
}

.page-id-155 table {
  border-collapse: separate;
  border-spacing: 0 1.7rem;
}

/* 元は全ページのtableに効いていたため、STYLISTページだけに限定 */
.page-id-155 table td:first-child {
  font-family: serif;
  font-size: 1rem;
  font-weight: bold;
}


/* =========================================================
   04. ブログ一覧・個別投稿
========================================================= */

/* HOME・ブログ一覧の左右余白 */
#apbAdvancedPosts-1 .apbGridPosts,
#apbAdvancedPosts-1 .apbGrid1Posts {
  padding-left: 5%;
  padding-right: 5%;
}

/* ブログタイトル上の余白 */
header.entry-header .entry-title {
  margin-top: 50px;
}

/* 個別投稿の日付・メタ情報 */
.entry-meta,
.entry-meta * {
  color: black;
}


/* =========================================================
   05. Jetpack スライドショー
========================================================= */

/* ナビゲーションドットを中央へ */
.wp-block-jetpack-slideshow
.wp-block-jetpack-slideshow_pagination.swiper-pagination-custom {
  justify-content: center !important;
}

/* スライド画像を親幅いっぱいに */
.wp-block-jetpack-slideshow
.wp-block-jetpack-slideshow_slide figure {
  width: 100% !important;
}

.wp-block-jetpack-slideshow
.wp-block-jetpack-slideshow_slide figure img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}


/* =========================================================
   06. Gallery Slider｜共通設定
========================================================= */

.gslider-image-slider-b5aba85c.gslider-image-slider-wrapper
.gslider-image-slider-content-wrapper {
  height: auto;
}

/* 角丸 */
.gslider-image-slider-wrapper .gslider-image-item,
.gslider-image-slider-wrapper .gslider-image-link,
.gslider-image-slider-wrapper img {
  border-radius: 7px !important;
}

.gslider-image-slider-wrapper .gslider-image-link {
  display: block !important;
  overflow: hidden !important;
}

/* 立体スライドの左右グラデーションを削除 */
.swiper-slide-shadow-right,
.swiper-slide-shadow-left {
  display: none !important;
}


/* =========================================================
   07. RAABA IMAGE SLIDER｜基本設定
========================================================= */

/* キャプション文字 */
.raaba-image-slider .caption,
.raaba-image-slider .wp-caption-text,
.raaba-image-slider figcaption,
.raaba-image-slider [class*="caption"],
.raaba-image-slider [class*="Caption"] {
  font-size: clamp(10px, 1.4vw, 14px) !important;
  line-height: 1.7 !important;
  max-width: 100% !important;
  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: break-word !important;
}

/* キャプション箱を画像幅に合わせる */
.raaba-image-slider [class*="caption"],
.raaba-image-slider [class*="Caption"],
.raaba-image-slider figcaption {
  width: 100% !important;
  max-width: 100% !important;
  left: 0 !important;
  right: 0 !important;
  box-sizing: border-box !important;
}

@media screen and (max-width: 600px) {
  .raaba-image-slider {
    width: 90vw !important;
    max-width: 90vw !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .raaba-image-slider img {
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
  }
}


/* =========================================================
   08. KERATIN SLIDER｜基本設定
========================================================= */

.keratin_slider .wp-block-gslider-blocks-image-slider {
  width: 100%;
}

.keratin_slider
.wp-block-gslider-blocks-image-slider
.wp-block-gslider-blocks-image-slider {
  margin-bottom: 50px;
}

.keratin_slider
.wp-block-gslider-blocks-image-slider
.gslider-image-slider-caption {
  background: rgba(0, 0, 0, 0.4);
  text-shadow: 0 0 3px rgba(0, 0, 0, 0.5);
  line-height: 1.5;
  padding: 20px 15px;
  max-width: 86%;
  margin: 0 auto;
}

@media only screen and (max-width: 767px) {
  .keratin_slider .gslider-image-slider-content-wrapper {
    justify-content: flex-start !important;
    height: 400px !important;
  }

  .keratin_slider .swiper-button-next,
  .keratin_slider .swiper-button-prev {
    margin-top: -20% !important;
  }
}

@media only screen and (min-width: 767px) {
  .keratin_slider
  .wp-block-gslider-blocks-image-slider
  .gslider-image-slider-caption {
    font-size: 18px;
    padding: 30px 40px;
    max-width: 80%;
  }
}


/* =========================================================
   09. HOMEページ
========================================================= */

/* ページ上部の余白を削除 */
body.home,
body.home .wp-site-blocks,
body.home main,
body.home .entry-content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* トップ動画 */
.top-movie {
  margin-top: 0 !important;
}

.home .top-movie {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}

.home .top-movie__video {
  width: 100vw !important;
  max-width: 100vw !important;
  height: 100vh;
  height: 100svh;
  object-fit: cover;
}

/* スタイリスト部分の下余白 */
.wp-block-column.is-vertically-aligned-center.has-background {
  margin-bottom: 0;
}

/* HOMEテーブル内リンク */
.has-ast-global-color-6-color.has-text-color.has-link-color.has-fixed-layout a {
  color: black;
}


/* =========================================================
   10. STYLISTカード
========================================================= */

.stylist-block .wp-block-column p:nth-of-type(1) {
  min-height: 3.2em;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.6;
}

.stylist-block .wp-block-column p:nth-of-type(2) {
  min-height: 2em;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.stylist-card-link {
  cursor: pointer;
  transition: opacity 0.25s ease, transform 0.25s ease;
}

.stylist-card-link:hover {
  opacity: 0.85;
  transform: translateY(-2px);
}

@media screen and (max-width: 600px) {
  .stylist-block {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px !important;
  }

  .stylist-block .wp-block-column {
    width: 100% !important;
    padding: 12px 10px !important;
  }

  .stylist-block .wp-block-column img {
    max-height: 150px !important;
  }

  .stylist-block .wp-block-column p {
    font-size: 13px !important;
    line-height: 1.5 !important;
    margin-top: 6px !important;
    margin-bottom: 6px !important;
  }

  .stylist-block .wp-block-column p:nth-of-type(1) {
    min-height: 3em;
  }

  .stylist-block .wp-block-column p:nth-of-type(2) {
    min-height: 1.8em;
  }

  .stylist-block .wp-block-column p:nth-of-type(3) {
    font-size: 10px !important;
  }
}


/* =========================================================
   11. HOME｜ボタン共通デザイン
========================================================= */

.home .wp-block-button__link,
.home .wp-element-button {
  background-color: #b8b8b8 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 0 !important;
  text-decoration: none !important;
  box-shadow: 6px 7px 0 #d2d2d2 !important;

  transition:
    background-color 0.2s ease,
    box-shadow 0.15s ease,
    transform 0.15s ease;
}

.home .wp-block-button__link:hover,
.home .wp-element-button:hover {
  background-color: #adadad !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 7px 8px 0 #c9c9c9 !important;
}

.home .wp-block-button__link:active,
.home .wp-element-button:active {
  transform: translate(3px, 3px);
  box-shadow: 3px 4px 0 #cfcfcf !important;
}


/* =========================================================
   12. PC表示（922px以上）
========================================================= */

@media (min-width: 922px) {

  /* コンテンツ左右余白 */
  .page-id-91 .wp-block-paragraph,
  .page-id-155 .wp-block-paragraph,
  .wp-block-table,
  .wp-block-gslider-blocks-image-slider,
  #apbAdvancedPosts-1,
  .wp-block-columns.custom-table-css,
  .stylist-block {
    padding-right: 20% !important;
    padding-left: 20% !important;
  }

  .top-text {
    margin-top: 120px !important;
  }

  /* Menu-price内テーブル */
  .wp-block-table.is-style-regular.has-small-font-size {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  /* 横長画像 */
  .wp-block-image.alignwide {
    width: 100vw;
    margin: 0;
  }

  .wp-block-image.alignwide img {
    width: 100vw;
    height: 50vh;
    object-fit: cover;
    object-position: center;
    display: block;
  }

  /* メニュー表リンク */
  .has-text-align-right.alignwide.has-ast-global-color-4-color.has-text-color.has-link-color.has-medium-font-size.wp-block-paragraph {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}


/* =========================================================
   13. タブレット以上（544px以上）
========================================================= */

@media (min-width: 544px) {
  #footer-logo {
    width: 150px !important;
  }
}


/* =========================================================
   14. スマホ表示（544px以下）
========================================================= */

@media (max-width: 544px) {
  .wp-custom-css-b0f17cec,
  .wp-custom-css-21cd6b7f {
    width: 100% !important;
  }
}

/* =========================================================
   15. About・メニュー導線
========================================================= */

/* Aboutメニューボタン */
.menu-gray-button {
  color: #595959;
}

/* メニューはこちら｜初期指定 */
.menu-arrow-link {
  text-align: right;
}

.menu-arrow-link a {
  position: relative;
  display: inline-block;
  color: white !important;
  text-decoration: none !important;
  padding-bottom: clamp(5px, 1.5vw, 10px);
}

.menu-arrow-link a::after {
  content: "";
  position: absolute;

  right: -8px;
  bottom: 0;

  width: clamp(90px, 30vw, 160px);
  height: clamp(4px, 1.2vw, 7px);

  border-bottom: 1px solid white;
  border-right: 1px solid white;

  transform: skewX(45deg);
  transform-origin: right bottom;

  transition: width 0.3s ease;
}

.menu-arrow-link a:hover::after {
  width: clamp(100px, 32vw, 175px);
}


/* メニューはこちら｜幅・余白の上書き指定 */
.menu-arrow-link {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;

  text-align: right;
  white-space: nowrap;

  padding-left: 20px !important;
  padding-right: 24px !important;
}

.menu-arrow-link a {
  position: relative;
  display: inline-block;

  color: white !important;
  text-decoration: none !important;
  white-space: nowrap;

  padding-bottom: clamp(5px, 1.2vw, 9px);
}


/* ========================================
   メニューはこちら｜文字下いっぱいの矢印
======================================== */

/* メニュー文字と矢印を少し左へ */
.menu-arrow-link a {
  position: relative !important;
  display: inline-block !important;

  right: clamp(34px, 5vw, 62px) !important;

  color: white !important;
  text-decoration: none !important;
  white-space: nowrap !important;

  padding-bottom: 5px;
}

/* 文字の下いっぱいに伸びる矢印線 */
.menu-arrow-link a::after {
  content: "";
  position: absolute;

  left: 0;
  bottom: 0;

  width: calc(100% + 12px);
  height: 5px;

  border-bottom: 0.6px solid white;
  border-right: 1px solid white;

  transform: skewX(45deg);
  transform-origin: right bottom;

  transition:
    left 0.2s ease,
    transform 0.2s ease;
}

/* ホバー時に少しだけ右へ */
.menu-arrow-link a:hover::after {
  left: 6px;
}

/* スマホ調整 */
@media (max-width: 543px) {
  .menu-arrow-link a {
    right: 10px !important;
  }

  .menu-arrow-link a::after {
    width: calc(100% + 12px);
  }
}

/* =========================================================
   16. Gallery Slider｜レイアウト崩れ修正
========================================================= */

/* スライダー本体への20% paddingを無効化 */
@media (min-width: 922px) {
  .wp-block-gslider-blocks-image-slider {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* 画像と説明文を離さない */
.gslider-image-slider-wrapper
.gslider-image-slider-content-wrapper {
  position: relative !important;

  height: auto !important;
  min-height: 0 !important;

  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;

  gap: 0 !important;
  padding: 0 !important;
}

/* 画像部分 */
.gslider-image-slider-wrapper .gslider-image-item {
  position: relative !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
}

.gslider-image-slider-wrapper .gslider-image-item img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  object-fit: cover !important;
}

/* 説明文 */
.gslider-image-slider-wrapper
.gslider-image-slider-caption {
  position: relative !important;

  left: auto !important;
  right: auto !important;
  top: auto !important;
  bottom: auto !important;

  transform: none !important;

  width: 80% !important;
  max-width: 80% !important;

  margin: 0 auto !important;
  box-sizing: border-box !important;
}


/* =========================================================
   17. RAABA Gallery Slider｜共通完成レイアウト
   PCは小さめ / SPは広め / キャプションを重ねる
========================================================= */

/* スライダー全体 */
.raaba-image-slider,
.keratin_slider {
  width: 100%;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* 中身の基準 */
.raaba-image-slider .gslider-image-slider-content-wrapper,
.keratin_slider .gslider-image-slider-content-wrapper {
  position: relative !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

/* 画像 */
.raaba-image-slider .gslider-image-item,
.keratin_slider .gslider-image-item {
  position: relative !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
}

.raaba-image-slider .gslider-image-item img,
.keratin_slider .gslider-image-item img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 10;
  object-fit: cover !important;
}

/* 説明文を画像に重ねる */
.raaba-image-slider .gslider-image-slider-caption,
.keratin_slider .gslider-image-slider-caption {
  position: absolute !important;
  left: 50% !important;
  bottom: 5% !important;
  top: auto !important;
  right: auto !important;

  transform: translateX(-50%) !important;

  width: 76% !important;
  max-width: 76% !important;
  height: 150px !important;
  min-height: 150px !important;

  margin: 0 !important;
  padding: 20px 28px !important;
  box-sizing: border-box !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  overflow: hidden !important;
  z-index: 5 !important;

  background: rgba(110, 110, 110, 0.58) !important;
  color: #fff !important;
  text-align: center !important;
  line-height: 1.7 !important;
}

/* キャプション内の余白を統一 */
.raaba-image-slider .gslider-image-slider-caption p,
.keratin_slider .gslider-image-slider-caption p {
  margin: 0 !important;
}


@media screen and (max-width: 600px) {
  .raaba-image-slider,
  .keratin_slider {
    width: 90vw !important;
    max-width: 90vw !important;
  }

  .raaba-image-slider .gslider-image-slider-caption,
  .keratin_slider .gslider-image-slider-caption {
    width: 78% !important;
    max-width: 78% !important;

    height: 145px !important;
    min-height: 145px !important;

    padding: 14px 18px !important;
    font-size: 13px !important;
    line-height: 1.65 !important;
  }
}


/* =========================================================
   18. スライダー｜端末別の最終調整
========================================================= */

/* PC版を少し小さく */
@media screen and (min-width: 922px) {
  .raaba-image-slider,
  .keratin_slider {
    width: min(540px, 52vw) !important;
    max-width: 540px !important;
  }
}

/* スマホ版 */
@media screen and (max-width: 600px) {

  /* キャプションを画像の下へ半分出す */
  .raaba-image-slider .gslider-image-slider-caption,
  .keratin_slider .gslider-image-slider-caption {
    bottom: 0 !important;
    transform: translate(-50%, 50%) !important;

    width: 80% !important;
    max-width: 80% !important;

    height: 140px !important;
    min-height: 140px !important;

    padding: 14px 18px !important;
  }

  /* 下へ出した箱の分だけ余白を確保 */
  .raaba-image-slider .gslider-image-slider-content-wrapper,
  .keratin_slider .gslider-image-slider-content-wrapper {
    margin-bottom: 70px !important;
  }
}


/* =========================================================
   19. PC・タブレット共通調整（601px以上）
   スマホ版は変更しない
========================================================= */

@media screen and (min-width: 601px) {

  /* PC・タブレットで同じ幅にする */
  .raaba-image-slider,
  .keratin_slider {
    width: min(680px, 72vw) !important;
    max-width: 680px !important;

    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* スマホ版と同じく、説明文を画像の下へ半分出す */
  .raaba-image-slider .gslider-image-slider-caption,
  .keratin_slider .gslider-image-slider-caption {
    left: 50% !important;
    right: auto !important;
    bottom: 0 !important;
    top: auto !important;

    transform: translate(-50%, 50%) !important;

    width: 78% !important;
    max-width: 78% !important;

    height: 150px !important;
    min-height: 150px !important;

    padding: 20px 28px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    box-sizing: border-box !important;
    text-align: center !important;
  }

  /* 下に出た説明文ボックス分の余白 */
  .raaba-image-slider .gslider-image-slider-content-wrapper,
  .keratin_slider .gslider-image-slider-content-wrapper {
    margin-bottom: 75px !important;
  }
}

/* =========================================================
   20. スライダー｜デスクリプション書体
========================================================= */

/* PC・タブレットの文字間・行間調整 */
@media screen and (min-width: 601px) {
  .raaba-image-slider .gslider-image-slider-caption,
  .keratin_slider .gslider-image-slider-caption {
    font-family:
      "Hiragino Mincho ProN",
      "Hiragino Mincho Pro",
      "Yu Mincho",
      "YuMincho",
      serif !important;

    letter-spacing: 0.08em !important;
    line-height: 1.65 !important;
  }
}

/* 全端末でヒラギノ明朝を適用 */
.raaba-image-slider .gslider-image-slider-caption,
.keratin_slider .gslider-image-slider-caption {
  font-family:
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Yu Mincho",
    "YuMincho",
    serif !important;
}


/* ========================================
   PC版だけ｜メニューはこちら＋矢印を大きく・左寄せ
======================================== */

@media (min-width: 922px) {
  .menu-arrow-link a {
    font-size: 19px !important; /* 文字を大きく */
    right: clamp(56px, 6vw, 90px) !important; /* 全体を左へ */
    padding-bottom: 7px !important;
  }

  .menu-arrow-link a::after {
    width: calc(100% + 34px) !important; /* 矢印線を長く */
    height: 7px !important;

    border-bottom: 1px solid white !important;
    border-right: 1px solid white !important;
  }
}


/* ========================================
   タブレット幅｜メニューはこちら矢印のホバー調整
   少しだけ動くけど、右に消えない
======================================== */

@media (min-width: 544px) and (max-width: 921px) {
  .menu-arrow-link a {
    right: 26px !important;
    padding-bottom: 5px !important;
  }

  .menu-arrow-link a::after {
    left: 0 !important;
    width: calc(100% + 10px) !important;
    height: 5px !important;

    border-bottom: 0.6px solid white !important;
    border-right: 1px solid white !important;

    transform: skewX(45deg) !important;
    transform-origin: right bottom;

    transition:
      left 0.2s ease,
      width 0.2s ease;
  }

  .menu-arrow-link a:hover::after {
    left: 5px !important;
    width: calc(100% + 10px) !important;
  }
}