@charset "UTF-8";

@media screen and (min-width: 0px) {
  /* ==========================================================================
     グローバル項目
     ========================================================================== */
  * {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
  }
  html {
    scroll-behavior: smooth;
    overflow-x: hidden;
    overflow-y: scroll;
  }
  body {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 0;
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    line-height: 1.7; /* 行間を広げて読みやすく */
    letter-spacing: 0.05em; /* 文字間隔に微小な余裕を持たせる */
    color: #333333;
    background-color: #ffffff;
    background-repeat: repeat;
    overflow-wrap: normal;
    overflow-x: hidden;
    overflow-y: scroll;
  }
  #wrap {
    width: 100%;
    margin: 0;
    padding: 0;
    background-attachment: scroll;
    overflow-x: hidden !important;
    width: 100%;
    /* ページ全体の高さを最低でも画面1杯分（またはコンテンツ全体）にする */
    min-height: 100vh;
    /* 上から下へ向かうグラデーションの設定 */
    background: linear-gradient(to bottom, #f9f5f5 0%, #dfdddd 90%, #393939 100%);
    /* スクロールした時に背景グラデーションが途切れないようにするおまじない */
    background-attachment: scroll;
  }
  /* --- タイポグラフィ・要素 --- */
  h1 {
    font-size: 1.2rem;
  }
  h2 {
    font-size: 1rem;
  }
  h3 {
    font-size: 1rem;
  }
  h5 {
    font-size: 1rem;
  }
  p {
    margin: 0.4rem 0;
  }
  ul {
    padding: 0.4rem;
    font-size: 1rem;
  }
  li {
    list-style: none;
  }
  select {
    padding: 5px;
  }
  /* --- リンク・ボタン --- */
  a:link {
    color: #1d0000;
    text-decoration: none;
  }
  a:visited {
    color: #1d0000;
    text-decoration: none;
  }
  a:hover {
    opacity: 0.7;
    text-decoration: none;
  }
  input:hover {
    opacity: 0.7;
  }
  .grecaptcha-badge {
    visibility: hidden;
  }
  /* ==========================================================================
     アコーディオン
     ========================================================================== */
  .dli-chevron-down {
    position: relative;
    display: flex;
    align-items: center;
    width: 16px;
    height: 4px;
    margin-top: 4px;
    line-height: 1;
    vertical-align: middle;
    cursor: pointer;
  }
  .dli-chevron-down::before {
    content: "";
    position: absolute;
    top: 2px;
    left: 0;
    width: 100%;
    height: 4px;
    background-color: #fff;
  }
  .dli-chevron-down::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 0;
    width: 100%;
    height: 4px;
    background-color: #fff;
    transform: rotate(-90deg);
  }
  .faq-button {
    height: 24px;
    width: 24px;
    padding: 4px;
    text-align: center;
    background-color: #96745A;
    border-radius: 50%;
    position: absolute;
    right: 1rem;
    top: 0.9rem;
  }
  .faq-button:hover {
    cursor: pointer;
  }
  .faq-button.active {
    transform: rotate(180deg);
    transition: 0.3s;
  }
  .selected .dli-chevron-down {
    position: relative;
    display: flex;
    width: 0.8rem;
    height: 0.6rem;
    margin-top: 0.2rem;
    cursor: pointer;
  }
  .selected .dli-chevron-down::before {
    content: "";
    position: absolute;
    top: 3px;
    left: 1px;
    width: 100%;
    height: 4px;
    background-color: #fff;
  }
  .selected .dli-chevron-down::after {
    display: none;
  }
  .faq-content {
    margin: 12px auto;
    border: 1px solid #eee;
  }
  .faq-detail {
    padding: 1rem;
  }
  .single_text_pc {
    display: none;
  }
  /* ==========================================================================
     数字だけ1.5倍 (@font-face)
     ========================================================================== */
  @font-face {
    font-family: "Adjusted";
    src: local("HiraginoSans-W6");
    size-adjust: 120%;
    unicode-range: U+30-39;
  }
  @font-face {
    font-family: "Adjusted2";
    src: local("HiraginoSans-W3");
    size-adjust: 120%;
    unicode-range: U+30-39;
  }
  .adjusted {
    font-family: "Adjusted", sans-serif;
  }
  .adjusted2 {
    font-family: "Adjusted2", sans-serif;
  }
  /* ==========================================================================
     モーダルウィンドウ・コンテンツ
     ========================================================================== */
  .content {
    display: flex;
    width: 100%;
    margin: 0 auto;
    padding: 0;
  }
  .content a {
    position: relative;
    padding: 0.4rem;
    flex-basis: 50%;
  }
  .modal {
    position: fixed;
    top: 0;
    display: none;
    width: 100%;
    height: 100vh;
    z-index: 100000;
  }
  .modal__bg {
    position: absolute;
    width: 100%;
    height: 100vh;
    background: rgba(0, 0, 0, 0.8);
  }
  .modal__content {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 80%;
    padding: 1rem;
    background: #fff;
    transform: translate(-50%, -50%);
  }
  .zoom_icon {
    position: absolute;
    bottom: 0.4rem;
    right: 0.4rem;
    width: 2rem;
    height: auto;
  }
  /* ==========================================================================
     TOP / header.php
     ========================================================================== */
  /* --- ヘッダー（全体設定） --- */
  header {
    position: fixed;
    top: 0;
    z-index: 99999;
    display: block;
    width: 100%;
    height: auto;
    background-color: #fff;
  }
  header .main_title {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    height: 4rem;
    padding: 0.4rem 0.2rem 0.2rem 0.2rem;
    background-color: #96745A;
    color: #fff;
  }
  header .main_title h1 {
    flex-basis: 100%;
    padding: 0;
    color: #fff;
    font-size: 1.2rem;
    text-align: center;
    line-height: 1.4rem;
    font-weight: 600;
  }
  header .main_title h1 a:link, header .main_title a:visited {
    color: #fff;
    text-decoration: none;
  }
  header .main_title h1 span {
    font-size: 14px;
    font-weight: 400;
  }
  header .main_title .aioseo-breadcrumbs {
    flex-basis: 100%;
    color: #fff;
    font-size: 14px;
    text-align: right;
  }
  .header_tell {
    display: none;
  }
  /* --- ハンバーガーメニュー --- */
  nav {
    z-index: 10;
    width: 100%;
  }
  #header-menu {
    height: 0;
    margin-bottom: 0;
    padding: 0 20px;
    overflow: hidden;
    list-style: none;
    background-color: #fff;
    transition: 0.3s;
  }
  #header-menu > li > a.reserve-btn {
    padding: 14px 0;
    margin: 30px auto 0 auto;
  }
  .hamburger_top_li {
    margin-bottom: 25px;
    text-align: center;
  }
  #header-menu > li > a,
  #header-menu h2 {
    display: block;
    font-size: 16px;
    font-weight: bold;
    padding: 12px 10px 0 10px;
    color: #96745a;
    text-decoration: none;
    margin: 10px 0 0 0;
  }
  /* 2階層目の子リンク（在籍一覧、出勤情報、写メ日記など） */
  #header-menu div a {
    display: block;
    font-size: 14px;
    color: #96745a; /* 子要素は少しトーンを落として見やすく */
    text-decoration: none;
    padding: 12px 20px; /* タップしやすいように上下に十分な余白（44px以上を意識） */
    position: relative;
    transition: all 0.3s ease;
  }
  /* 子リンクの右側にうっすら矢印「＞」を自動で表示（ユーザーを誘導） */
  #header-menu div a::after {
    content: "›";
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    color: #96745a;
    font-size: 18px;
  }
  /* タップ（ホバー）した時のエフェクト */
  #header-menu div a:active,
  #header-menu div a:hover {
    background-color: #96745a;
    color: #fff;
  }
  /* --- ハンバーガーアイコン（三本線） --- */
  .hamburger {
    position: absolute;
    top: 1.2rem;
    left: 1.2rem;
    z-index: 10;
    width: 2rem;
    height: 1rem;
    cursor: pointer;
  }
  .hamburger span {
    position: absolute;
    z-index: 10;
    width: 100%;
    height: 2px;
    background-color: #fff;
    border-radius: 0.2rem;
    transition: all 0.3s;
  }
  .hamburger span:nth-of-type(1) {
    top: 4px;
  }
  .hamburger span:nth-of-type(2) {
    top: 16px;
  }
  .hamburger span:nth-of-type(3) {
    top: 28px;
  }
  .hamburger.open span:nth-of-type(1) {
    top: 10px;
    transform: translateY(6px) rotate(-33deg);
  }
  .hamburger.open span:nth-of-type(2) {
    opacity: 0;
  }
  .hamburger.open span:nth-of-type(3) {
    top: 22px;
    transform: translateY(-6px) rotate(33deg);
  }
  /* --- パンくずリスト --- */
  .aioseo-breadcrumbs {
    margin: 5rem 0 1rem 0;
    padding: 0 1rem;
    color: #666;
    font-size: 14px;
    border: #ddd 1px solid;
    border-width: 0 0 1px 0;
  }
  .aioseo-breadcrumbs a:visited {
    color: #666;
  }
  /* --- ロゴ・システム等 --- */
  .logo {
    position: relative;
    width: 100%;
    height: auto;
  }
  .system {
    position: relative;
    flex-basis: 100%;
    width: 90%;
    height: auto;
    margin: 1rem auto;
  }
  #system {
    width: 100%;
  }
  h1.top_wel {
    margin: 1rem;
    padding: 1rem;
    background-color: #fff;
    border-radius: 0.4rem;
    box-shadow: 1px 1px 2px #333;
    font-size: 1rem;
  }
  /* --- 店舗情報エリア --- */
  .top_info {
    width: 100%;
    height: auto;
    margin: 0;
    padding-top: 0;
  }
  .top_info_bk {
    display: flex;
    flex-wrap: wrap;
    margin: 0;
    padding: 0;
    height: auto;
    background-image: none;
  }
  .top_info_flexbox_left {
    display: flex;
    flex-wrap: wrap;
    flex-basis: 100%;
    width: 100%;
    height: auto;
    margin: 0 auto;
    padding: 0;
  }
  .top_info_flexbox_first {
    display: flex;
    flex-wrap: wrap;
    flex-basis: 100%;
    align-items: baseline;
    width: 100%;
    padding: 0 0 0 0.8rem;
    border-bottom: none;
  }
  .top_info_flexbox_second {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
    padding: 1rem 1rem 0 1rem;
    line-height: 1rem;
  }
  .top_info_flexbox_second .conte {
    display: flex;
    flex-wrap: wrap;
    flex-basis: calc(50% - 0.5rem);
    align-items: center;
    margin: 0 0 1rem 0;
    background-color: #fff;
    border-radius: 0.4rem;
  }
  .top_info_flexbox_second .conte h2 {
    flex-basis: 100%;
    margin: 0;
    padding: 0.2rem 0.4rem;
    background-color: #96745A;
    color: #ffffff;
    font-size: 14px;
    text-align: center;
    border-radius: 0.4rem 0.4rem 0 0;
  }
  .top_info_flexbox_second .conte p {
    flex-basis: 100%;
    margin: 0;
    padding: 0.2rem;
    color: #96745A;
    font-size: 0.9rem;
    line-height: 1rem;
    text-align: center;
  }
  /* --- 非表示要素 --- */
  .pc-menu,
  .pc-menu2 {
    display: none;
  }
  /* ==========================================================================
     フッター (footer.php)
     ========================================================================== */
  footer {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0 0 10rem 0;
    background-color: #393939;
    color: #ddd;
    text-align: center;
  }
  footer h2 {
    margin-bottom: 1rem;
    font-size: 1rem;
    font-weight: 600;
    text-decoration: underline;
  }
  footer h3 {
    width: auto;
    font-size: 1rem;
  }
  footer p {
    margin: 0 auto;
    text-align: center;
  }
  footer p a:visited,
  footer a:link {
    color: #eeeeee;
  }
  /* --- フッターメニュー・ボックス --- */
  .footer_menu {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    padding: 2rem 0;
    color: #eeeeee;
  }
  .footer_box {
    padding: 1rem 0;
    flex-basis: 50%;
  }
  .footer_box:first-child {
    padding: 1rem 0;
    flex-basis: 100%;
  }
  /* --- SNSリンク --- */
  .sns_wrap {
    height: 4rem;
    margin: 0 auto;
  }
  .sns_wrap ul {
    display: flex;
    padding: 0;
  }
  .sns_wrap ul li {
    margin: 0 2rem;
  }
  .sns_wrap ul li img {
    width: auto;
    height: 1.4rem;
  }
  /* --- フッターナビ・検索 --- */
  .footer_about {
    display: flex;
    flex-wrap: wrap;
    height: 6rem;
    margin: 0 auto;
  }
  .footer_about a {
    height: 2rem;
    padding: 0;
    color: #fff;
    font-size: 0.9rem;
    flex-basis: 50%;
  }
  .footer_about a:link {
    color: #ffffff;
    text-decoration: none;
  }
  .footer_about a:visited {
    color: #ffffff;
  }
  .search_footer {
    display: block;
    height: 6rem;
    margin: 0 auto;
    padding: 0 1rem;
  }
  .search_footer button {
    margin: 0.4rem;
  }
  /* ==========================================================================
     フッターアコーディオン
     ========================================================================== */
  .footer_wrap {
    background-color: #fff;
  }
  .footer_cout {
    height: auto;
    margin: 1rem auto;
    position: relative;
    max-width: 760px;
  }
  .footer_cout .faq-button {
    width: 1.2rem;
    height: 1.2rem;
    margin: -1.4rem 0 0 16rem;
    padding: 0.2rem;
    border-radius: 50%;
    background-color: #6a5a4e;
    text-align: center;
  }
  .footer_cout .faq-button:hover {
    cursor: pointer;
  }
  .footer_cout .faq-button.active {
    transform: rotate(180deg);
    transition: 0.3s;
  }
  /* --- アコーディオン矢印アイコン --- */
  .footer_cout .faq-button .dli-chevron-down {
    position: relative;
    display: flex;
    width: 0.8rem;
    height: 0.6rem;
    margin-top: 0.2rem;
    line-height: 1;
    vertical-align: middle;
    cursor: pointer;
  }
  .footer_cout .faq-button .dli-chevron-down::before {
    content: "";
    position: absolute;
    top: 0.1rem;
    left: 0;
    width: 100%;
    height: 0.2rem;
    background-color: #fff;
  }
  .footer_cout .faq-button .dli-chevron-down::after {
    content: "";
    position: absolute;
    top: 0.1rem;
    left: 0;
    width: 100%;
    height: 0.2rem;
    background-color: #fff;
    transform: rotate(-90deg);
  }
  /* --- 開いた状態のスタイル --- */
  .footer_cout .selected .dli-chevron-down {
    position: relative;
    display: flex;
    width: 0.8rem;
    height: 0.6rem;
    margin-top: 0.2rem;
    cursor: pointer;
  }
  .footer_cout .selected .dli-chevron-down::before {
    content: "";
    position: absolute;
    top: 0.1rem;
    left: 0;
    width: 100%;
    height: 0.2rem;
    background-color: #fff;
  }
  .footer_cout .selected .dli-chevron-down::after {
    display: none;
  }
  .footer_cout .faq-content {
    margin: 12px auto;
    border: 1px solid #eee;
  }
  .footer_cout .faq-detail {
    height: auto;
    padding: 0.4rem;
  }
  /* ==========================================================================
     その他コンポーネント (バナー・ページネーション・リンク・メニュー)
     ========================================================================== */
  /* --- フローティングバナー --- */
  .sp-floating-nav {
    display: flex;
    position: fixed; /* 画面に固定 */
    bottom: 0; /* 最下部に配置 */
    left: 0;
    width: 100%;
    height: calc(60px + env(safe-area-inset-bottom)); /* 通常の高さ + iPhoneのセーフエリア */
    padding-bottom: env(safe-area-inset-bottom); /* 下部に安全な余白を作る */
    background-color: rgba(255, 255, 255, 0.9); /* 背景の隙間漏れ防止 */
    z-index: 9999; /* 他の要素より必ず最前面に出す */
    box-shadow: 0 -3px 10px rgba(0, 0, 0, 0.15); /* 上部に薄い影をつけて立体感を出す */
    box-sizing: border-box;
  }
  .sp-floating-nav a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 50%; /* 50%ずつ均等に分ける */
    color: #fff;
    text-decoration: none;
    font-weight: bold;
    font-size: 16px;
    letter-spacing: 0.05em;
  }
  img.nav-icon {
    margin-right: 6px; /* アイコンと文字の間の余白 */
    font-size: 18px;
    width: 18px;
  }
  /* 電話予約ボタン（明るい緑など、一目で発信とわかる色） */
  .nav-btn-tel {
    background-color: #7d8ab4;
  }
  /* WEB予約ボタン（お店のトンマナに合わせたピンク・ゴールド・赤系など） */
  .nav-btn-web {
    background-color: #b7976e;
  }
  /* --- ページネーション --- */
  .pnavi {
    margin: 0 auto;
    padding: 1rem;
    border-bottom: 1px solid #393939;
    text-align: center;
  }
  .pnavi a {
    margin: 0 1rem;
  }
  /* --- パンくずリスト --- */
  .bread_eria {
    width: 60%;
    height: 2rem;
    margin: 1rem auto;
    padding: 0.5rem 2rem;
    border: solid 0.5px #81D8D0;
    border-radius: 0.5rem;
    background-color: #e5fffc;
    font-size: 1rem;
  }
  /* --- サブリンクエリア・テーブル --- */
  .lank_wrap {
    width: 100%;
    padding: 1rem;
  }
  .lank_wrap div {
    width: 100%;
    padding: 1rem 0;
  }
  .lank_wrap img {
    max-width: 240px;
    -o-object-fit: contain;
       object-fit: contain;
  }
  .lank_wrap table {
    width: 100%;
    border: 1px solid #3d0000;
    font-size: 1rem;
    table-layout: fixed;
  }
  .lank_wrap tr {
    width: 100%;
    padding: 0.4rem 1rem;
    border: 1px solid #3d0000;
  }
  .lank_wrap tr td {
    padding: 0.4rem;
  }
  .lank_wrap tr .tdf {
    width: 6rem;
    padding: 0.4rem;
    border: 1px solid #3d0000;
    background-color: #f9f9f9;
    font-size: 1rem;
  }
  /* --- タブ・サブメニュー --- */
  .submenu {
    width: 100%;
    min-width: 80px;
    margin: 1rem auto 0 auto;
    margin-bottom: 0;
  }
  .submenu .menu {
    display: flex;
    margin-bottom: 0;
    padding: 0;
    background-color: transparent; /* "none"から適切な値に修正 */
    font-size: 1rem;
    text-align: center;
    height: 2.4rem;
  }
  .submenu .menu li:first-child {
    border-left: none;
  }
  .submenu .menu-submenu-container .menu li {
    padding: 0.6rem 0;
    border: solid 1px #96745A;
    border-top-left-radius: 1rem;
    border-top-right-radius: 1rem;
    background-color: #fff;
    flex: 1;
  }
  .submenu .menu-submenu-container .menu li a {
    color: #96745A;
    font-weight: 600;
  }
  .submenu .menu-submenu-container .menu .current_page_item, .submenu .menu-submenu-container .menu .current-menu-item {
    background-color: #96745A;
    color: #ffffff;
  }
  .submenu .menu-submenu-container .menu .current_page_item a, .submenu .menu-submenu-container .menu .current-menu-item a {
    color: #ffffff;
    font-weight: 600;
  }
  /* --- 非表示項目 --- */
  .top_search,
  .nosp {
    display: none;
  }
  /* ==========================================================================
     FRONT-PAGE (front-page.php) - 前半
     ========================================================================== */
  /* --- スライダー（Swiper） --- */
  .swiper {
    position: relative;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin-left: auto;
    overflow: hidden;
    box-sizing: border-box;
    margin: 0 auto; /* 追加分 */
  }
  /* 追加分 */
  .swiper-slide:first-child img {
    width: 100%;
    height: auto;
    display: block;
  }
  .swiper-slide {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-shrink: 0; /* 追加分 */
    width: 100%;
    height: 100%;
    background: transparent;
    color: #fff;
    font-size: 18px;
  }
  /* 追加分 */
  .swiper-wrapper {
    display: flex;
    width: 100%;
    height: auto;
  }
  .swiper-slide-next {
    opacity: 1;
  }
  .swiper-slide img {
    width: 100%;
  }
  .swiper-pagination {
    position: absolute;
    bottom: 10px;
    left: 0;
    z-index: 10;
    width: 100%;
    transform: translate3d(0, 0, 0);
    text-align: center;
    transition: 0.3s opacity;
  }
  .swiper-button-next,
  .swiper-button-prev {
    color: #fff;
  }
  /* --- バナーエリア --- */
  .banner {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    margin: 0 auto;
    padding: 0; /* "auto"から適切な"0"に修正 */
    text-align: center;
  }
  .banner a {
    display: block;
    margin: 1rem auto;
    padding: 1rem;
  }
  .spbanner {
    display: inline-block;
  }
  .pcbanner, .side_bar {
    display: none;
  }
  /* --- メインコンテンツ・共通枠 --- */
  .top_main {
    margin: 0 0.6rem;
    padding: 0 0 1rem 0;
    background-color: transparent;
    background-image: none;
    background-size: contain;
    background-attachment: fixed;
  }
  .shopinfo,
  .workinfo,
  .companyinfo,
  .contactinfo {
    width: 100%;
    min-width: 10px;
    margin: 0 auto 1rem auto;
    margin-bottom: 1rem;
    padding: 0;
    position: relative;
    background-color: transparent;
    border-radius: 0.4rem;
  }
  .recruit_banner {
    margin: 0 1rem;
    background-color: #fff9f9;
  }
  .shopinfo h2,
  .workinfo h2,
  .companyinfo h2,
  .contactinfo h2 {
    margin-bottom: 0;
    padding: 1rem;
    background-color: #96745A;
    color: #ffffff;
    font-size: 2rem;
    text-align: center;
  }
  .shopinfo h2 p:first-child,
  .workinfo h2 p:first-child,
  .companyinfo h2 p:first-child {
    font-size: 1rem;
  }
  .shopinfo h2,
  .workinfo h2,
  .shopinfo .therapist_wrap h2 {
    margin: 0;
    padding: 0.4rem;
    font-size: 1.2rem;
  }
  .shopinfo .therapist_wrap h2 p {
    margin: 0;
    font-size: 1.2rem;
  }
  /* --- お知らせ一覧 (news_list_wrap) --- */
  .top_main .shopinfo .news_list_wrap {
    position: relative;
    padding: 1rem;
    color: #3d0000;
    background-color: transparent;
    border-radius: 0 0 0.4rem 0.4rem;
  }
  .news_list_wrap p {
    padding: 0;
    font-weight: 600;
  }
  .top_main .shopinfo .news_list_wrap ul {
    display: flex;
    justify-content: space-evenly;
    width: 100%;
    flex-wrap: wrap;
    margin: 0 0 2rem 0;
    padding: 0 0 30px 0;
  }
  .news_list_wrap ul li {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    flex-basis: 100%;
    width: 100%;
    height: auto;
    margin: 1rem 0 0 0;
    padding: 0 0 30px 0;
    background-color: #fff;
    border-radius: 0.4rem;
    box-shadow: 1px 1px 2px #333;
  }
  .faq-button.threereason {
    right: 50%;
    top: auto;
    bottom: -18px;
  }
  .news_list_wrap ul li:nth-child(2) {
    border-right: none;
    border-left: none;
  }
  .news_list_wrap ul li:nth-child(even) .text p {
    width: 100%;
    word-wrap: normal;
    overflow-wrap: normal;
    word-break: break-all;
    text-align: left;
  }
  .news_list_wrap ul li .thum {
    display: none;
    justify-content: start;
    flex-basis: 15%;
    padding: 1rem 0 0 0;
  }
  .news_list_wrap ul li .thum img {
    width: 100%;
    height: auto;
    padding: 0 1rem 0 0;
    -o-object-fit: scale-down;
       object-fit: scale-down;
  }
  .news_list_wrap ul li .text {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    width: 100%;
    min-height: 0;
    padding: 0;
    font-size: 1rem;
    flex-basis: 100%;
  }
  .news_list_wrap ul li:first-child .text {
    padding: 0;
  }
  .news_list_wrap ul li .single_title {
    flex-basis: 100%;
    padding: 0 0 0 0.4rem;
    color: #3d0000;
    font-size: 1.1rem;
    margin: 0;
  }
  .news_list_wrap ul li .topsingle_wrap .single_text {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 0;
    font-size: 1rem;
    line-height: 1.6rem;
    flex-basis: 100%;
  }
  .news_list_wrap ul li .text .single_text p {
    overflow-wrap: anywhere;
    padding-bottom: 1rem;
  }
  .news_list_wrap ul li .text .single_text_date {
    position: relative;
    width: 100%;
    margin: 0;
    padding-top: 1rem;
    flex-basis: 100%;
  }
  .news_list_wrap ul li .text .single_text_date p {
    padding-top: 0;
  }
  /* --- 特設ニュースエリア (news_wrap) --- */
  .news_wrap {
    position: relative;
    margin: 1rem 1rem 4rem 1rem;
    padding: 0 0 1rem 0;
    color: #3d0000;
    border-radius: 0.4rem;
  }
  .news_wrap ul {
    display: flex;
    justify-content: space-evenly;
    width: 100%;
    flex-wrap: wrap;
    margin: 0;
    padding: 0;
  }
  .news_wrap ul li {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    margin: 0;
    padding: 10px 0;
    background-color: #fff;
    flex-basis: 100%;
    min-height: 110px;
    height: 110px;
    border: 1px solid #ddd;
  }
  .news_wrap ul li .thum {
    padding: 0;
    flex-basis: 0%;
  }
  .news_wrap ul li .thum img {
    width: 100%;
    height: auto;
    -o-object-fit: scale-down;
       object-fit: scale-down;
  }
  .news_wrap ul li .text {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    width: 100%;
    position: relative;
    padding: 0 1rem;
    font-size: 1rem;
    line-height: 1.4rem;
    line-break: anywhere;
    flex-basis: 100%;
  }
  .news_wrap ul li .text .single_title {
    margin: auto;
    color: #943b3b;
    font-size: 1rem;
    flex-basis: 100%;
    font-weight: 600;
  }
  .news_wrap ul li .text .single_text {
    position: relative;
    width: 100%;
    margin: 0;
    padding-bottom: 1rem;
    font-size: 1rem;
    word-break: keep-all;
    line-break: anywhere;
    text-align: right;
    flex-basis: 100%;
    display: none;
  }
  .news_wrap ul li .text .single_text p {
    display: inline-block;
    width: 100%;
    overflow-wrap: anywhere;
    padding-bottom: 1rem;
    font-size: 1rem;
    text-align: left;
    display: none;
  }
  .news_wrap ul li a {
    margin: 0;
    padding: 0rem 0.2rem;
    border: 2px double #884444;
    border-radius: 0.4rem;
    background-color: #844;
    font-size: 14px;
    position: absolute;
    top: 0px;
    width: 6rem;
    right: 10px;
    color: #fff;
    line-height: 1.1rem;
    text-align: center;
  }
  .news_wrap .btn_common {
    width: 240px;
  }
  .topsingle_wrap {
    display: flex;
    flex-wrap: wrap;
    width: 100%; /* flex-basisに合わせるために追加 */
    height: auto;
    flex-basis: 100%;
    padding: 1rem;
    position: relative;
  }
  /* --- セラピスト一覧エリアベース --- */
  .top_main .shopinfo .therapist_wrap {
    padding: 1rem;
    background-color: transparent;
    border-radius: 0.4rem;
  }
  .top_main .shopinfo .therapist_wrap .staff_block {
    padding: 0.6rem;
    border-radius: 0.4rem;
    background-color: rgb(240, 240, 240);
    box-shadow: 1px 1px 2px #000 inset;
  }
  .top_main .shopinfo .therapist_wrap .staff_block li {
    margin: 0.2rem;
    border: none;
    flex-basis: 100%;
  }
  .therapist_wrap ul.staff_block::before,
  .therapist_wrap ul.staff_block::after {
    content: none;
    display: table;
  }
  .therapist_wrap ul.staff_block li .post-info {
    display: flex;
    font-size: 1rem;
    line-height: 1rem;
  }
  .therapist_wrap ul.staff_block li .post-info .attendance {
    margin: 0 1rem;
  }
  /* ==========================================================================
     本日の出勤情報 セクション
     ========================================================================== */
  .today_attend {
    width: 100%;
    margin: 1rem auto;
    padding: 1rem;
  }
  .today_attend h3 {
    font-size: 1.1rem;
    color: #3d0000; /* スタッフページの見出しに合わせた柔らかいピンク */
    border-bottom: 2px solid #3d0000;
    padding-bottom: 8px;
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: bold;
  }
  .today_attend h3 img.emoji {
    width: 1.2em;
    height: 1.2em;
    vertical-align: -0.2em;
  }
  .today_attend ul.staff_block::before, .today_attend ul.staff_block::after {
    content: " ";
    display: none;
  }
  .today_attend ul.staff_block {
    list-style: none;
    padding: 1rem 0.4rem;
    margin: 0 0 2rem 0;
    background-color: #ddd;
    border-radius: 0.4rem;
    justify-content: center;
    display: grid;
    /* 最小160px、最大は画面に収まるよう自動調整 */
    grid-template-columns: repeat(auto-fill, minmax(146px, 1fr));
    gap: 16px; /* 隙間の幅 */
  }
  .today_attend ul.staff_block li {
    background: #ffffff;
    border-radius: 0.4rem; /* カードの角丸 */
    padding: 1rem 10px;
    box-shadow: 1px 1px 2px #333;
    display: flex;
    align-items: center;
    box-sizing: border-box;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    width: 146px;
    flex-wrap: wrap;
    margin: 0 auto;
  }
  .today_attend ul.staff_block li .thumb {
    width: 60px;
    height: 60px;
    margin: 0 auto;
    flex-shrink: 0;
  }
  .today_attend ul.staff_block li .thumb img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    border-radius: 50%; /* 丸型アバター */
    border: 2px solid #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  }
  .today_attend ul.staff_block li .post-info {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex-basis: 160px;
  }
  .today_attend ul.staff_block li .name {
    font-size: 1.1rem;
    font-weight: bold;
    color: #4a4a4a;
    margin: 5px;
  }
  .today_attend ul.staff_block li .attendance {
    font-size: 0.9rem;
    color: #ffffff;
    background-color: #e59bb1;
    padding: 3px 8px;
    border-radius: 20px;
    display: inline-block;
    align-self: flex-start;
    font-weight: 500;
    margin: 0 auto;
    width: 100%;
  }
  .today_attend ul.staff_block li .clear {
    display: none !important;
  }
  /* ==========================================================================
     FRONT-PAGE (front-page.php) - 後半パート1
     ========================================================================== */
  /* --- セラピスト・キャストカード詳細 --- */
  .therapist_wrap .topcast_ul {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    padding: 0;
  }
  .therapist_wrap .topcast_ul li {
    width: 100%;
    margin: 0.2rem 0.4rem 0.2rem 0;
    border-radius: 0.4rem;
    flex-basis: calc(50% - 0.4rem);
  }
  .therapist_wrap .topcast_ul li:nth-child(even) {
    margin: 0.2rem 0 0.2rem 0.4rem;
  }
  .topcast_li {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    height: auto;
    margin: 1rem;
    padding: 0.4rem;
    border-radius: 0.2rem;
    background-image: url(images/defo/thera_bk.webp);
    background-size: contain;
    box-shadow: #000 1px 1px 2px;
    flex-basis: 22%;
  }
  .topcast_li .top_thera_photo_eria {
    width: 100%;
    height: 200px;
    margin: 0;
    padding: 0;
    overflow: hidden;
  }
  .top_thera_photo {
    display: block;
    width: 100%;
    border-radius: 0.2rem;
    -o-object-fit: contain;
       object-fit: contain;
  }
  .topcast_li .top_thera_text_eria {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-start;
    padding: 0;
    color: #3d0000;
    font-size: 1rem;
    flex-basis: 100%;
  }
  .therapist_wrap .topcast_li .top_thera_text_eria {
    font-size: 1rem;
  }
  .topcast_li .top_thera_text_eria h2 {
    padding: 0.4rem;
    font-size: 1rem;
    flex-basis: 100%;
  }
  .topcast_li .top_thera_text_eria p {
    padding: 0.4rem;
    font-size: 1rem;
    flex-basis: 100%;
  }
  .topcast_li .top_thera_text_eria span {
    margin: 0.4rem auto;
    font-size: 1rem;
    text-align: center;
    flex-basis: 100%;
  }
  .top_thera_scu_eria {
    display: block;
    width: 100%;
    height: auto;
    background-color: rgba(250, 250, 250, 0.8);
    flex-basis: 100%;
  }
  .cast_li {
    margin: 1rem 0;
    padding: 1.4rem;
  }
  .threesize {
    padding: 0.6rem;
    flex-basis: 100%;
  }
  /* --- ボタンパーツ --- */
  .btn_common {
    width: 8rem;
    margin: 1rem;
    padding: 0.4rem 1rem;
    border-radius: 0.4rem;
    background-color: #96745A;
    color: #ffffff;
    font-size: 1rem;
    text-align: center;
  }
  .btn_common a:link,
  .btn_common a:visited {
    color: #ffffff;
  }
  .btn_atend {
    display: flex;
    justify-content: space-between;
    margin: 1rem 0 2rem 0;
  }
  .btn_atend p {
    margin: 0;
    padding: 0.2rem;
    border: #3d0000 1px solid;
    border-radius: 0.4rem;
    background-color: #96745A;
    color: #ffffff;
    font-size: 0.9rem;
    text-align: center;
    box-shadow: #fff 0 0 2px inset;
    flex-basis: 9rem;
  }
  .btn_atend p a:link,
  .btn_atend p a:visited {
    color: #ffffff;
  }
  .info_box {
    width: 100%;
    text-align: right;
  }
  /* --- トップ料金表 (topsystem) --- */
  .topsystem {
    display: flex;
    flex-wrap: wrap;
  }
  .topsystem h2 {
    flex-basis: 100%;
  }
  .topsystem .system_info {
    padding: 0 1rem;
    flex-basis: 100%;
  }
  /* 料金表全体のコンテナ */
  .price-card-container {
    display: flex;
    flex-direction: column;
    gap: 24px;
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
    padding: 1rem 0;
    box-sizing: border-box;
    /* font-family: "Noto Serif JP", serif; 高級感を出す明朝系フォント（環境による） */
  }
  /* 各カードの共通スタイル */
  .price-card {
    background: #ffffff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 0.8rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
  }
  .price-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
  }
  /* カードの見出し部分 */
  .card-header {
    border-bottom: 2px solid #f0f0f0;
    padding: 0.8rem;
    margin-bottom: 16px;
  }
  .card-title {
    display: block;
    font-size: 1.1rem;
    font-weight: bold;
    color: #333333;
    position: relative;
    padding-left: 12px;
  }
  /* タイトルの左側にアクセントの縦線を入れる */
  .card-title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 15%;
    height: 70%;
    width: 4px;
    background: #c5a880; /* 上品なゴールド・ベージュ系 */
  }
  /* コース名の下の簡単な説明文 */
  .card-desc {
    font-size: 0.85rem;
    color: #666666;
    margin: 6px 0 0 0;
    line-height: 1.4;
  }
  /* 料金リストのスタイル */
  .price-list {
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .price-list li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px dashed #e5e5e5;
    font-size: 1rem;
    color: #444444;
  }
  .price-list li:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }
  /* 時間・コース名 */
  .price-list .time,
  .price-list .name {
    font-weight: 500;
  }
  /* 金額の強調 */
  .price-list .price {
    font-weight: bold;
    color: #b8860b; /* ダークゴールド */
    font-size: 1.05rem;
  }
  /* 特定のカードに個別のニュアンスを出したい場合（任意で色変更可能） */
  .price-card.type-luxury {
    border-color: #d4af37; /* ラグジュアリーカードのみ枠線をゴールド寄りに */
    background: #fafafa;
  }
  .price-card.type-luxury .card-title::before {
    background: #d4af37;
  }
  .topsystem .shopinfo_wrap {
    width: 100%;
    margin: 0;
    flex-basis: 100%;
  }
  .topsystem .shopinfo_wrap .step {
    margin: 1rem 0;
    padding: 0.6rem;
    border: none;
    border-radius: 0.4rem;
    background-color: rgb(240, 240, 240);
    box-shadow: #000 1px 1px 2px inset;
  }
  .topsystem .shopinfo_wrap .step h3 {
    padding: 1rem 1rem 0.4rem 1rem;
    border-radius: 0.4rem 0.4rem 0 0;
    background-color: #fff;
    text-align: center;
  }
  .topsystem .shopinfo_wrap .step .reserve {
    display: flex;
    flex-wrap: wrap;
    -moz-column-gap: 3%;
         column-gap: 3%;
    padding: 1rem 0.6rem;
    border-radius: 0 0 0.4rem 0.4rem;
    background-color: #fff;
    text-align: left;
    flex-basis: 100%;
  }
  .topsystem .shopinfo_wrap .step .reserve p {
    padding: 0;
    flex-basis: 100%;
  }
  .sidebar-reserve-box-v2 {
    box-sizing: border-box;
    background-color: #ffffff;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    padding: 30px 15px;
    display: flex;
    flex-direction: column;
    align-items: center;
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", sans-serif;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
    justify-content: center;
  }
  .reserve-sub-eng {
    font-size: 14px;
    letter-spacing: 0.2em;
    color: #a89476;
    margin-bottom: 6px;
    font-weight: bold;
  }
  .reserve-sub-txt {
    font-size: 14px;
    color: #666666;
    margin: 0 0 4px 0;
  }
  .reserve-main-ttl {
    font-size: 20px;
    font-weight: 700;
    color: #222222;
    margin: 0 0 20px 0;
    letter-spacing: 0.05em;
  }
  .reserve-btn {
    display: inline-block;
    width: 100%;
    max-width: 250px;
    background: linear-gradient(135deg, #c5a880 0%, #b39369 100%);
    color: #ffffff !important;
    text-decoration: none !important;
    font-size: 16px;
    font-weight: bold;
    padding: 14px 0;
    border-radius: 50px;
    text-align: center;
    box-shadow: 0 4px 12px rgba(197, 168, 128, 0.4);
    transition: all 0.3s ease;
  }
  .reserve-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(197, 168, 128, 0.6);
    opacity: 0.95;
  }
  .reserve-note {
    font-size: 14px;
    color: #888888;
    margin: 12px 0 0 0;
    letter-spacing: 0.05em;
  }
  /* ==========================================================================
     WEB予約関連
     ========================================================================== */
  .sidebar-reserve-box-v2.staffsingle {
    width: calc(100% - 2rem);
    margin: 0 auto;
  }
  .sidebar-reserve-box-v2 {
    box-sizing: border-box;
    background-color: #ffffff;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    padding: 30px 15px; /* 横幅300pxに合わせて余白を少しタイトに */
    display: flex;
    flex-direction: column;
    align-items: center;
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", sans-serif;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
  }
  .reserve-sub-eng {
    font-size: 14px;
    letter-spacing: 0.2em;
    color: #a89476;
    margin-bottom: 6px;
    font-weight: bold;
  }
  .reserve-sub-txt {
    font-size: 14px;
    color: #666666;
    margin: 0 0 4px 0;
  }
  .reserve-main-ttl {
    font-size: 20px;
    font-weight: 700;
    color: #222222;
    margin: 0;
    letter-spacing: 0.05em;
  }
  .reserve-btn {
    display: inline-block;
    width: 100%;
    max-width: 250px;
    background-color: linear-gradient(135deg, #c5a880 0%, #b39369 100%);
    color: #ffffff;
    text-decoration: none;
    font-size: 16px;
    font-weight: bold;
    padding: 14px 0;
    border-radius: 50px;
    text-align: center;
    box-shadow: 0 4px 12px rgba(197, 168, 128, 0.4);
    transition: all 0.3s ease;
  }
  .reserve-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(197, 168, 128, 0.6);
    opacity: 0.95;
  }
  .reserve-note {
    font-size: 14px;
    color: #888888;
    margin: 12px 0 5px 0;
    letter-spacing: 0.05em;
  }
  /* 区切り線 */
  .reserve-divider {
    width: 100%;
    border: 0;
    border-top: 1px dotted #dddddd;
    margin: 25px 0;
  }
  /* ステップ案内エリア */
  .reserve-flow-section {
    width: 100%;
    text-align: left;
    margin-bottom: 20px;
  }
  .section-title {
    font-size: 14px;
    font-weight: bold;
    color: #333333;
    margin: 0 0 12px 0;
    border-bottom: 2px solid #a89476;
    padding-bottom: 5px;
  }
  .flow-list {
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .flow-list li {
    font-size: 14px;
    line-height: 1.6;
    color: #444444;
    margin-bottom: 12px;
    position: relative;
    padding-left: 28px;
  }
  .flow-list li strong {
    color: #b39369;
  }
  .step-num {
    position: absolute;
    left: 0;
    top: 2px;
    width: 18px;
    height: 18px;
    background-color: #a89476;
    color: #ffffff;
    font-size: 14px;
    font-weight: bold;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  /* 注意事項エリア */
  .reserve-alert-section {
    width: 100%;
    background-color: #fff5f5; /* 警告を促す薄いピンク・赤系背景 */
    border: 1px solid #f8d7da;
    border-radius: 6px;
    padding: 12px;
    box-sizing: border-box;
    text-align: left;
  }
  .alert-title {
    font-size: 14px;
    font-weight: bold;
    color: #dc3545; /* 警告の赤 */
    margin: 0 0 6px 0;
  }
  .alert-text {
    font-size: 14px;
    line-height: 1.5;
    color: #555555;
    margin: 0;
  }
  .alert-text strong {
    color: #dc3545;
  }
  .tel-link {
    color: #dc3545;
    font-weight: bold;
    text-decoration: underline;
  }
  /* ==========================================================================
     トップページ クーポンエリア（料金表デザイン追随型）
     ========================================================================== */
  /* 全体コンテナ（料金表のadjusted2やsystem_infoと余白感を統一） */
  .topcoupon_wrap {
    max-width: 760px; /* サイト全体のメインコンテンツ幅に合わせて調整してください */
    margin: 1rem auto;
  }
  /* クーポンセクションの見出し */
  .coupon-main-header {
    text-align: center;
    margin-bottom: 30px;
  }
  .coupon-main-title {
    display: inline-block;
    font-size: 20px;
    font-weight: 700;
    color: #4a3728; /* 料金表のメインの濃いブラウン */
    letter-spacing: 0.1em;
    position: relative;
    padding-bottom: 8px;
    border-bottom: 2px solid #bfa47e; /* 料金表のゴールド・ベージュ */
  }
  .coupon-main-desc {
    font-size: 14px;
    color: #666;
    margin-top: 12px;
    line-height: 1.6;
    text-align: left;
  }
  /* クーポンのグリッドリスト（料金表のカード並びを意識） */
  .coupon-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); /* スマホ1列、PC2〜3列に自動可変 */
    gap: 30px;
  }
  /* クーポンカード単体 */
  .coupon-card {
    background-color: #f7f2ea; /* 淡いベージュ */
    /* 複数の円形グラデーションを重ねて「波目」模様を表現 */
    background-image: radial-gradient(circle at 100% 150%, transparent 24%, rgba(191, 164, 126, 0.12) 24%, rgba(191, 164, 126, 0.12) 28%, transparent 28%, transparent), radial-gradient(circle at 0% 150%, transparent 24%, rgba(191, 164, 126, 0.12) 24%, rgba(191, 164, 126, 0.12) 28%, transparent 28%, transparent), radial-gradient(circle at 50% 100%, rgba(191, 164, 126, 0.1) 12%, transparent 12%), radial-gradient(circle at 100% 50%, transparent 24%, rgba(191, 164, 126, 0.12) 24%, rgba(191, 164, 126, 0.12) 28%, transparent 28%, transparent), radial-gradient(circle at 0% 50%, transparent 24%, rgba(191, 164, 126, 0.12) 24%, rgba(191, 164, 126, 0.12) 28%, transparent 28%, transparent);
    background-size: 24px 20px; /* パターンの細かさ */
    border: 4px solid #dcd3c7;
    border-radius: 12px;
    box-shadow: 0 6px 18px rgba(74, 55, 40, 0.06);
    display: flex;
    flex-direction: column;
    position: relative;
    overflow: hidden;
  }
  /* ★WEBチケット風の左右の「ちぎり凹み」をCSSの擬似要素で作成 */
  .coupon-card::before,
  .coupon-card::after {
    content: "";
    position: absolute;
    width: 16px;
    height: 16px;
    background: #f0f0f0; /* 背景色（サイト全体の背景色が他にある場合はその色に合わせると綺麗にくり抜かれます） */
    border: 8px solid #dcd3c7;
    border-radius: 50%;
    z-index: 10;
    /* 切り取り線（ボタンの上辺）と同じ高さに配置 */
    bottom: 35px; /* アコーディオンを閉じた状態のボタンの中央に合わせる数値 */
  }
  /* 左側の凹み */
  .coupon-card::before {
    left: -9px; /* 半分外にはみ出させて凹みに見せる */
  }
  /* 右側の凹み */
  .coupon-card::after {
    right: -9px;
  }
  /* カード上部の情報エリア */
  .coupon-card-body {
    padding: 28px 24px 20px;
    flex-grow: 1;
  }
  /* メタ情報（タグと有効期限） */
  .coupon-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
  }
  /* クーポンタグ：ちょっと特別感のあるリボン・ラベル風に */
  .coupon-tag {
    background: #4a3728; /* 料金表ブラウン */
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    padding: 3px 12px;
    border-radius: 20px; /* 丸みのある可愛いタグに */
    letter-spacing: 0.05em;
  }
  /* 有効期限 */
  .coupon-expiry {
    font-size: 14px;
    color: #8a7c74;
  }
  /* クーポンタイトル */
  .coupon-title {
    font-size: 1.2rem;
    font-weight: 700;
    color: #4a3728;
    line-height: 1.5;
    margin: 0 0 15px 0;
  }
  /* 金額・時間表示ボックス */
  .coupon-price-box {
    background: rgba(255, 255, 255, 0.85); /* 地紋をうっすら透かす */
    border: 1px dashed #bfa47e; /* ゴールドのミシン目 */
    padding: 12px 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    backdrop-filter: blur(2px);
  }
  .time-label {
    font-size: 14px;
    color: #8a7c74;
    font-weight: 600;
  }
  .price-value {
    font-size: 22px;
    font-weight: 700;
    color: #aa2222; /* 料金より引き立つように少し品のある赤に（お好みで#4a3728に変更可） */
    letter-spacing: -0.02em;
  }
  .price-value .unit {
    font-size: 14px;
    color: #4a3728;
    margin-left: 2px;
    margin-right: 5px;
    font-weight: 600;
  }
  .price-value .unit:last-child {
    margin-right: 0;
  }
  .couponinfo {
    font-size: 0.9rem;
    font-weight: 600;
    color: #6a5a4e;
    margin: 0 0 0 1rem;
    padding: 0 0 0 1rem;
  }
  /* アコーディオン詳細表示エリア */
  .coupon-detail-content {
    background: #fff;
  }
  .coupon-detail-inner {
    padding: 15px 20px;
    font-size: 14px;
    color: #666;
    line-height: 1.6;
    border-top: 1px dashed #e3ded9;
  }
  /* --- セラピスト紹介動画 (new_content / movie) --- */
  .new_content {
    position: relative;
  }
  .new_content img {
    position: absolute;
    top: 0.8rem;
    left: 0.8rem;
    width: 3.2rem;
    height: auto;
  }
  .new_content .new_content_p {
    font-size: 1rem;
  }
  .top_image_movie {
    padding: 0.4rem;
  }
  .movie {
    position: relative;
  }
  .top_image_movie .movie .top_image_movie_text {
    position: absolute;
    top: 1rem;
    left: 1rem;
    display: flex;
    flex-wrap: wrap;
    width: 4rem;
    background-color: rgba(0, 0, 0, 0.5);
    color: #fff;
  }
  .top_image_movie .movie .top_image_movie_text span {
    flex-basis: 100%;
  }
  .top_image_movie .movie .top_image_movie_link {
    position: absolute;
    top: 1rem;
    right: 0.6rem;
    padding: 0.2rem 0.4rem;
    border-radius: 0.4rem;
    background: rgba(255, 255, 255, 0.4);
    color: #fff;
    box-shadow: inset 0 0 4px #fff;
  }
  .top_image_movie .movie .tap {
    position: absolute;
    top: 3.2rem;
    right: 1rem;
    width: 2rem;
    transform: rotate(315deg);
  }
  .top_image_movie_cont {
    display: inline-block;
    padding: 1rem 0 1rem 1rem;
    font-size: 14px;
  }
  /* --- YouTubeギャラリー --- */
  .news_wrap .yt {
    display: block;
    width: 100%;
    margin: 0;
    padding: 1rem 0;
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
    flex-basis: 90%;
  }
  .news_wrap ul .yt_cont {
    display: inline-block;
    width: 440px;
    margin: 0 1rem;
    padding: 1rem;
    height: auto;
  }
  .news_wrap ul .yt_cont a img {
    width: auto;
    height: 200px;
  }
  .news_wrap ul li.yt_cont a {
    margin: 1rem;
    padding: 0;
    border: none;
    border-radius: 0.4rem;
    background-color: #fff;
    font-size: 14px;
    position: initial;
    width: 100%;
    text-align: center;
    height: auto;
    color: #666;
  }
  .news_wrap ul .yt_cont a h3 {
    font-size: 0.9rem;
    margin: 0.6rem 0 0 0;
  }
  /* --- トップ求人 (recruit_banner) --- */
  .recruit_banner .news_wrap {
    display: flex;
    flex-wrap: wrap;
    padding: 1rem 0;
  }
  .recruit_banner .news_wrap .thum {
    flex-basis: 100%;
  }
  .recruit_banner .news_wrap .thum img {
    width: 100%;
    border-radius: 0.4rem;
  }
  .recruit_banner .news_wrap .text {
    margin: 0 0 1rem 0;
    padding: 0;
    flex-basis: 100%;
  }
  .recruit_banner .news_wrap h3 {
    margin: 1rem 0;
    border-bottom: #3d0000 1px solid;
    font-size: 1rem;
    font-weight: 600;
  }
  .recruit_banner .news_wrap .text .btn_common {
    width: 12rem;
    margin: 2rem 0 0 0;
  }
  /* ==========================================================================
     お気に入り
     ========================================================================== */
  /* SPTOP */
  /* 全体の背景（和紙風の質感）と外枠 */
  .top_favorite {
    /* 1. ベースとなる紙の色（グラデーションでムラを作る） */
    background: radial-gradient(circle at 30% 20%, #fdf7eb 0%, #f6e6ca 100%);
    position: relative;
    width: calc(100% - 2rem);
    margin: 2rem 1rem;
    padding: 14px;
    box-sizing: border-box;
  }
  /* かすれた2重線を実現するための疑似要素 */
  .top_favorite::before {
    content: "";
    position: absolute;
    /* 外枠の太い線（4px） */
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border: 4px solid #8c7662;
  }
  /* 内枠（細い線） */
  .top_favorite .inner-line {
    position: relative;
    /* 内枠の細い線（1px） */
    border: 1px solid #8c7662;
    padding: 5px;
    min-height: 40px;
    box-sizing: border-box;
  }
  .top_favorite .favolite_wrap {
    margin: 1rem 0;
    width: 100%;
  }
  .favolite_wrap {
    margin: 2rem 0;
    width: 304px;
  }
  .favorite_thera {
    background-color: #fff;
    border-radius: 0.4rem;
    margin: 1rem 0;
    position: relative;
    display: flex;
    flex-wrap: wrap;
    padding: 1rem;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    box-shadow: 1px 1px 2px #333;
  }
  .favolite_wrap h3 {
    font-size: 1.1rem;
    color: #3d0000;
    border-bottom: 2px solid #3d0000;
    padding-bottom: 8px;
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: bold;
  }
  .favolite_wrap.sidebar .favorite_thera a img {
    width: 60px;
    height: 60px;
    flex-basis: 60px;
    margin: 0 auto;
    flex-shrink: 0;
    -o-object-fit: cover;
       object-fit: cover;
    border-radius: 50%;
    border: 2px solid #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  }
  h2.list_thera_title {
    font-size: 1.1rem;
    font-weight: bold;
    color: #4a4a4a;
    margin: 5px;
  }
  /* お気に入りボタン */
  .favorite_thera .simplefavorite-button {
    position: absolute;
    top: 1rem;
    right: 1rem;
    font-size: 14px;
    padding: 0.2rem;
    border-radius: 0.2rem;
    color: #fff;
    background-color: #96745a;
    border: #fff 2px solid;
    font-weight: 600;
    box-shadow: 1px 1px 1px #3d0000;
  }
  .favorite_thera .simplefavorite-button.active {
    color: #96745a;
    background-color: transparent;
    border: #96745a 2px solid;
  }
  /* --- 出勤スケジュール (テーブル) --- */
  .favorite_thera .top_thera_scu_eria {
    display: block;
    flex-shrink: 0;
    width: 100%;
    max-width: 100%;
    margin: 0.6rem 0;
    background: transparent;
    overflow-x: auto;
    /* scrollbar-width: none; */
    -ms-overflow-style: none;
    -webkit-overflow-scrolling: touch;
    padding: 0 0 10px 0;
  }
  /* .favorite_thera   .top_thera_scu_eria::-webkit-scrollbar {
      display: none;
  } */
  .favorite_thera .attmgr_weekly {
    width: 100%;
    min-width: 700px;
    border: none;
    border-spacing: 5px 0;
    border-collapse: separate !important;
    writing-mode: horizontal-tb !important;
  }
  .favorite_thera .attmgr_weekly th,
  .favorite_thera .attmgr_weekly td {
    padding: 5px;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    background-color: #ffffff;
    font-size: 1rem;
    white-space: nowrap;
  }
  .favorite_thera table.attmgr_weekly .date,
  .favorite_thera table.attmgr_weekly .dow {
    display: inline;
  }
  .favorite_thera .attmgr_weekly th {
    border-radius: 0.4rem 0.4rem 0 0;
    background-color: #96745a;
    color: #fff;
    font-weight: bold;
  }
  .favorite_thera .attmgr_weekly td {
    border-radius: 0 0 0.4rem 0.4rem;
    min-height: 80px;
    height: 80px;
  }
  .favorite_thera .attmgr_weekly th.saturday {
    background-color: #5a7796;
  }
  .favorite_thera .attmgr_weekly th.sunday {
    background-color: #965a60;
  }
  .favorite_thera .attmgr_weekly td.not_working {
    background-color: #f5f5f5;
    color: #b0b0b0;
  }
  /* ==========================================================================
     口コミ関連 (review_form.php)
     ========================================================================== */
  .review_wrap {
    position: relative;
    padding: 5px 10px;
    margin: 10px auto;
    background-color: #fff;
    border-radius: 0.4rem;
    height: auto;
    box-shadow: 1px 1px 2px #333;
    border: 4px solid #96745a;
  }
  .review_wrap h3 {
    font-size: 1.1rem;
    font-weight: 600;
    color: #96745a;
    margin: 10px;
  }
  .review_wrap .wpcf7-quiz-hint {
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
  }
  /* 一覧 */
  h1.archive-title {
    margin: 1rem;
  }
  /* 口コミカード全体 */
  .review-card-full {
    background: #ffffff;
    border: 1px solid #eaeaea;
    border-radius: 12px;
    padding: 24px;
    margin-bottom: 24px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    transition: transform 0.2s ease;
  }
  .review-single-view {
    margin: 1rem;
  }
  /* ヘッダー情報（投稿者・メタ） */
  .review-card-header {
    border-bottom: 1px solid #f0f0f0;
    padding-bottom: 14px;
    margin-bottom: 16px;
  }
  .review-meta-top {
    display: flex;
    justify-content: space-between;
    font-size: 0.875rem;
    color: #666;
    margin-bottom: 10px;
  }
  .reviewer-name {
    font-weight: bold;
    color: #333;
  }
  /* 評価・金額グリッド */
  .review-details-grid {
    display: flex;
    gap: 16px;
  }
  .review-stat-item {
    background: #f9f9f9;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 0.85rem;
  }
  .review-stat-item .stat-label {
    color: #888;
    margin-right: 6px;
    font-size: 0.85rem;
  }
  .review-stat-item .stat-value {
    font-weight: bold;
    color: #e65c00; /* 強調カラー */
    font-size: 1.2rem;
    display: inline-block;
  }
  .review-stat-item.price-item .stat-value {
    font-size: 14px;
  }
  /* 口コミタイトル */
  .review-title {
    font-size: 1.25rem;
    font-weight: bold;
    color: #222;
    margin-bottom: 12px;
    line-height: 1.4;
  }
  /* 口コミ本文 */
  .review-body {
    font-size: 0.95rem;
    color: #444;
    line-height: 1.7;
    margin-bottom: 20px;
  }
  /* セラピストプロフィールボックスへのリンク */
  .therapist-link-wrapper {
    display: block;
    text-decoration: none;
    background: #fdfaf6; /* わずかに温かみのある背景 */
    border: 1px solid #f3ebe1;
    border-radius: 8px;
    padding: 12px;
    transition: background 0.2s;
  }
  .therapist-link-wrapper:hover {
    background: #f7f1e8;
  }
  .therapist-profile-box {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .therapist-avatar {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    background: #eee;
  }
  .therapist-avatar img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
  .thera_q {
    margin: 0;
    font-size: 0.85rem;
    color: #555;
    line-height: 1.4;
  }
  .thera_q span {
    font-size: 0.75rem;
    color: #888;
  }
  .thera_q strong {
    color: #222;
    font-size: 0.95rem;
  }
  /* 1. 全体コンテナ（スマホ基準） */
  .workinfo.review .blog-page-navigation.btn_atend {
    margin: 32px auto 16px;
    padding: 0 12px;
    text-align: center;
  }
  /* 2. 不要なスクリーンリーダー用テキスト（見出し）を非表示化 */
  .workinfo.review .blog-page-navigation .screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
  }
  /* 3. リンクを囲むコンテナ（スマホ：横スクロールや崩れを防ぐフレックス） */
  .workinfo.review .blog-page-navigation .nav-links {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap; /* 画面幅が極端に狭い時に安全に折り返す */
    gap: 6px; /* スマホでのボタン同士の間隔 */
    background: #ffffff;
    padding: 6px 8px;
    border-radius: 30px;
    border: 1px solid #eaeaea;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    display: inline-flex;
  }
  /* 4. 各ボタンの共通スタイル（スマホ基準：タップ領域を広く確保） */
  .workinfo.review .blog-page-navigation .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px; /* スマホで押しやすいサイズ */
    height: 36px;
    padding: 0 4px;
    font-size: 0.85rem;
    font-weight: 600;
    color: #555555;
    text-decoration: none;
    border-radius: 50%;
    transition: background-color 0.2s, color 0.2s;
    -webkit-tap-highlight-color: transparent; /* タップ時の青いハイライトを消す */
  }
  /* 現在のページ（スマホ） */
  .workinfo.review .blog-page-navigation .page-numbers.current {
    background-color: #d4a359; /* ちゅるり様の高級感に合わせたゴールド系ブラウン */
    color: #ffffff;
  }
  /* ドット（…） */
  .workinfo.review .blog-page-navigation .page-numbers.dots {
    min-width: 20px;
    color: #bbbbbb;
    cursor: default;
  }
  /* 前へ・次へボタン（スマホ：文字が入るため、横丸の角丸デザインに変形） */
  .workinfo.review .blog-page-navigation .page-numbers.prev,
  .workinfo.review .blog-page-navigation .page-numbers.next {
    border-radius: 18px;
    padding: 0 12px;
    background-color: #fafafa;
    border: 1px solid #e0e0e0;
    font-size: 14px;
  }
  /* ==========================================================================
     スタッフ詳細：横スクロール口コミセクション
     ========================================================================== */
  .staff-review-scroll-section {
    margin: 40px 0;
  }
  .staff-review-scroll-section .section-title {
    font-size: 1.15rem;
    font-weight: bold;
    margin-bottom: 16px;
    color: #fff;
  }
  /* 横スクロールさせる親ボックス */
  .review-horizontal-scroll {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 12px;
    margin: 0 0 1rem 0;
    background-image: url(images/webp/roombk.webp);
    background-size: cover;
    background-position: center;
    padding: 1rem;
  }
  /* ミニカード（スマホ基準：幅を固定してカード感を出す） */
  .review-card-mini {
    flex: 0 0 260px; /* カードの横幅 */
    scroll-snap-align: start;
    background: #ffffff;
    border: 1px solid #eaeaea;
    border-radius: 10px;
    padding: 16px;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.02);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    margin: 0 0 0 10px;
  }
  .review-card-header-mini {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
    color: #666;
    margin-bottom: 8px;
  }
  .review-card-header-mini .star-rating {
    font-weight: bold;
    color: #d4a359;
    font-size: 1.1rem;
  }
  .review-title-mini {
    font-size: 0.95rem;
    font-weight: bold;
    color: #222;
    margin-bottom: 8px;
    line-height: 1.35;
  }
  .review-body-mini {
    font-size: 14px;
    color: #555;
    line-height: 1.5;
  }
  /* もっと見るボタン */
  .review-more-link-wrap {
    margin-top: 20px;
    text-align: center;
  }
  .more-review-btn, .more-review-btn:link, .more-review-btn:visited {
    display: inline-block;
    width: 100%;
    max-width: 320px;
    padding: 12px;
    background: #f7f1e8;
    color: #c8963e;
    border: 1px solid #f0e4d4;
    border-radius: 25px;
    font-size: 0.85rem;
    font-weight: bold;
    text-decoration: none;
    transition: background 0.2s;
  }
  /* セラピストごとのアーカイブページ */
  .workinfo.review p.archive-title.review_thera_photo {
    font-size: 1.2rem;
    font-weight: 600;
  }
  .archive-title.review_thera_photo .attachment-thumbnail {
    width: 45px;
    height: 45px;
    margin: 0 10px 0 auto;
    -o-object-fit: cover;
       object-fit: cover;
    border-radius: 50%;
    border: 2px solid #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
    -o-object-position: top;
       object-position: top;
  }
  /* TOPページ口コミ横スクロール */
  .therapist-review-section.all {
    padding: 0.6rem 0rem 0.6rem 1rem;
    background-color: #aaa;
    width: 100%;
    margin: 1rem auto 2rem auto;
    border-radius: 0.4rem 0 0 0.4rem;
    background-image: url(images/webp/roombk.webp);
    background-size: cover;
    background-position: center;
    box-sizing: border-box;
  }
  .therapist-review-section.all h3 {
    margin: 0.6rem 0;
    color: #fff;
    font-weight: 600;
    text-shadow: 0 0 4px #000;
  }
  .therapist-review-section.all .review-single-view {
    display: block !important;
    width: 100% !important;
    padding-bottom: 15px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    margin: 1rem 0;
  }
  .therapist-review-section.all .review-single-view .scroll_box {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 15px !important;
    width: -moz-max-content !important;
    width: max-content !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }
  .therapist-review-section.all .review-single-view .review-card-full {
    display: block !important;
    flex-shrink: 0 !important;
    width: 340px;
    margin: 0;
    padding: 0.8rem;
    position: relative;
  }
  .therapist-review-section.all .review-single-view .review-card-full .review-body {
    margin: 0 0 120px 0;
  }
  .therapist-review-section.all .review-single-view .review-card-full .therapist-link-wrapper {
    position: absolute;
    bottom: 10px;
    left: 10px;
  }
  .therapist-review-section.all .btn_common {
    width: 8rem;
    margin: 1rem 1rem 0 auto;
    padding: 0.2rem 0.6rem;
    border-radius: 0.4rem;
    background-color: transparent;
    color: #ffffff;
    font-size: 0.9rem;
    text-align: center;
    border: 1px solid #fff;
  }
  /* ==========================================================================
     システム (page-system.php)
     ========================================================================== */
  /* --- システムおすすめエリア (system_info_reco) --- */
  .system_info_reco {
    margin: 0;
    padding: 0;
  }
  .system_info_reco ul {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 0;
  }
  .system_info_reco ul li {
    display: flex;
    flex-wrap: wrap;
    margin: 1rem;
    padding: 0 0 1rem 0;
    border-radius: 0.4rem;
    background-color: #fff;
    box-shadow: 1px 1px 4px #000 inset;
    flex-basis: 100%;
  }
  .system_info_reco ul li .thum {
    width: 100%;
    margin: 0 auto;
    padding: 0.4rem;
    flex-basis: calc(100% - 10rem);
  }
  .system_info_reco ul li .thum img {
    width: 100%;
    border-radius: 0.4rem;
    box-shadow: 1px 1px 1px #000;
  }
  .system_info_reco ul li h4 {
    display: flex;
    flex-wrap: wrap;
    margin: 2rem 0 0 0;
    padding: 0.4rem;
    flex-basis: 10rem;
  }
  .system_info_reco ul li h4 .coupon_unit {
    height: 1.8rem;
    border-bottom: #3d0000 1px solid;
    flex-basis: 100%;
  }
  .system_info_reco ul li h4 .coupon_unit:last-child {
    margin: -1rem 0 0 0;
  }
  .system_info_reco ul li .single_title {
    width: 100%;
    border-radius: 0.4rem 0.4rem 0 0;
    font-size: 1.2rem;
    flex-basis: 100%;
  }
  .system_info_reco ul li .single_text {
    padding: 0.4rem 1rem;
  }
  .system_info_reco ul li .couponinfo {
    padding: 0 1rem;
  }
  /* --- システム情報共通枠 --- */
  .system_info_wrap {
    position: relative;
    margin: 0 0 6rem 0;
  }
  .system_info_box {
    margin: 1rem;
    padding: 0.4rem;
    border-radius: 0.4rem;
    background-color: #96745A;
    color: #ffffff;
  }
  .system_info_box ul {
    margin-bottom: 0;
  }
  .system_info_box ul li {
    list-style: none;
  }
  .system_coution {
    padding: 1rem;
  }
  /* --- 料金システム案内 (system_info) --- */
  .system_info {
    padding: 1rem;
  }
  .system_info .title {
    padding: 3rem 1rem 2rem 1rem;
  }
  .system_info .title .single_title {
    padding: 0 1rem;
    border-left: solid 0.5rem;
    font-size: 2rem;
  }
  .system_info ul li .title .single_title {
    font-size: 1.2rem;
  }
  /* --- 料金テーブル (pricetable) --- */
  .caution {
    padding: 1rem;
    font-size: 0.9rem;
    background-color: #FFF;
    border-radius: 0.4rem;
    width: calc(100% - 2rem);
    margin: 0 auto;
    line-height: 1.2rem;
  }
  /* --- 特設・おすすめシステムレイアウト (system_reco) --- */
  .system_reco {
    display: flex;
    flex-wrap: wrap;
    padding: 0 1rem;
  }
  .system_reco .step {
    flex-basis: 100%;
  }
  .system_reco .step .reserve {
    display: flex;
  }
  .system_reco .system_info ul {
    padding: 0;
  }
  .system_reco .system_info ul li .title {
    padding: 2rem 0 0 0;
  }
  .system_reco .system_info ul li .pricetable {
    padding: 1rem 0 0 0;
  }
  .system_reco .system_info ul li .pricetable table tbody tr td {
    width: 8rem;
    height: 1.2rem;
    padding: 0.2rem 0;
    font-size: 1rem;
    letter-spacing: 0.1rem;
    text-align: right;
  }
  .system_reco .system_info ul li .pricetable table tbody tr td:last-child {
    width: 10rem;
  }
  /* --- 予約ボタン等のカラー分岐 --- */
  .shopinfo_wrap .step .reserve .web,
  .system_reco .step .reserve .web {
    border: 2px solid #00002d;
    background-color: #00006d;
    text-shadow: #000 0 0 0.1rem;
    box-shadow: #fff 0 0 0.2rem inset;
  }
  .shopinfo_wrap .step .reserve .line,
  .system_reco .step .reserve .line {
    border: 2px solid #002d00;
    background-color: #006b00;
    text-shadow: #000 0 0 0.1rem;
    box-shadow: #fff 0 0 0.2rem inset;
  }
  .xblock {
    width: 90%;
    margin: 0 auto 1rem auto;
  }
  /* ==========================================================================
     クーポン (page-coupon.php)
     ========================================================================== */
  .coupon_wrap {
    position: relative;
    margin: 0;
    line-height: 1rem;
    background-color: rgba(77, 71, 23, 0.3);
    color: #3d0000;
  }
  .coupon_wrap ul {
    padding: 1rem;
  }
  .coupon_wrap ul .coupon_li {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    width: 100%;
    height: auto;
    min-height: 145px;
    margin: 2rem 0;
    padding: 0.8rem;
    background-color: #fffce5;
    color: #3d0000;
    font-size: 1rem;
    box-shadow: #3d0000 0 0.4rem 0.4rem;
  }
  .coupon_wrap ul .coupon_li .text {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    min-height: 240px;
    flex-basis: 60%;
  }
  .coupon_wrap ul .coupon_li .single_title {
    width: 100%;
    margin: 0.2rem;
    font-family: "ヒラギノ角ゴ ProN W6", "HiraKakuProN-W6", "ヒラギノ角ゴ Pro W6", "HiraKakuPro-W6", "メイリオ", "MS Pゴシック", sans-serif;
    font-size: 1rem;
    flex-basis: 100%;
  }
  .coupon_wrap ul .coupon_li .coupon_box {
    width: 2rem;
    height: auto;
    margin: 0.2rem;
    padding: 0.2rem;
    background-color: #943b3b;
  }
  .coupon_wrap ul .coupon_li .coupon_box p {
    color: #ffffff;
    font-size: 1rem;
    text-align: center;
    overflow-wrap: break-word;
  }
  .coupon_wrap ul .coupon_li .coupon_price {
    display: flex;
    align-items: flex-end;
  }
  .coupon_wrap ul .coupon_li .coupon_price h4 {
    width: 100%;
    margin: 0;
    padding: 0 0.8rem;
    border-bottom: #393939 1px solid;
    font-family: "ヒラギノ角ゴ ProN W6", "HiraKakuProN-W6", "ヒラギノ角ゴ Pro W6", "HiraKakuPro-W6", "メイリオ", "MS Pゴシック", sans-serif;
    font-size: 1.6rem;
    text-align: left;
    flex-basis: 100%;
  }
  .coupon_wrap ul .coupon_li .coupon_price h4 .coupon_unit {
    font-size: 1rem;
  }
  .coupon_wrap ul .coupon_li .coupon_textarea {
    width: 100%;
    margin: 0.2rem;
    padding: 0.4rem;
    border: #393939 1px solid;
    font-size: 1rem;
  }
  .coupon_wrap ul .coupon_li .text .single_text a {
    position: absolute;
    right: 1rem;
    margin: 1rem auto;
  }
  /* ==========================================================================
     プライバシーポリシー (page-policy.php)
     ========================================================================== */
  .policy {
    padding: 1rem;
    background-color: #eeeeee;
  }
  .policy h2 {
    margin: 1rem 0 0 0;
    font-size: 1.2rem;
  }
  /* ==========================================================================
     QandA (page-qa.php)
     ========================================================================== */
  .QA_menu {
    margin: 1rem;
    width: calc(100% - 2rem);
  }
  .QA_menu_about_title h2 {
    border-radius: 0.4rem;
  }
  /* 1. リスト全体の背景と上品な区切り線 */
  .page-id-339 .accordion ul li {
    border-radius: 0.4rem;
    background-color: #ffffff;
    margin: 5px;
    box-shadow: 1px 1px 2px #333;
  }
  /* 2. 質問とボタンを包む共通ラッパーの余白調整 */
  .page-id-339 .topsingle_wrap {
    position: relative;
    width: 100%;
  }
  /* 3. 質問（Q）の文字装飾：タップ領域を広げ、ダークブラウンに変更 */
  .page-id-339 .single_title {
    display: block;
    padding: 20px 60px 20px 20px; /* 右側の丸ボタンと重ならないように右余白を確保 */
    font-size: 15px;
    font-weight: bold;
    color: #4a3e3d; /* 店舗イメージのダークブラウン */
    line-height: 1.5;
    margin: 0;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
  }
  /* 4. 既存の丸ボタンの「位置」だけ微調整（質問の縦中央に配置） */
  .page-id-339 .faq-button {
    top: 50%;
    transform: translateY(-50%); /* 縦方向の中央揃え */
    transition: transform 0.3s ease, background-color 0.3s ease;
  }
  /* 5. ボタンがアクティブになった時の回転（縦中央維持しながら180度回す） */
  .page-id-339 .faq-button.active {
    transform: translateY(-50%) rotate(180deg);
    top: 50px;
  }
  /* 6. 回答（A）のエリア装飾：背景に薄いニュアンスベージュを敷く */
  .page-id-339 .faq-detail {
    padding: 20px;
    background-color: #faf8f5;
    border-top: none;
    width: 100%;
  }
  /* 回答テキストの行間と文字色調整 */
  .page-id-339 .faq-detail p {
    font-size: 14px;
    line-height: 1.7;
    color: #444444;
    margin: 0 0 12px 0;
  }
  /* 回答内の関連リンクをゴールドの上品なボタン風に */
  .page-id-339 .faq-detail a {
    display: inline-block;
    font-size: 14px;
    color: #b59a57;
    text-decoration: none;
    border-bottom: 1px dashed #b59a57; /* 上品な破線のアンダーライン */
    font-weight: bold;
    margin-top: 5px;
    transition: opacity 0.3s ease;
  }
  .page-id-339 .faq-detail a:hover {
    opacity: 0.7;
  }
  /* ==========================================================================
     お問い合わせ (page-contact.php)
     ========================================================================== */
  /* 全体のコンテナ */
  .webcontact {
    padding: 40px 15px;
    background-color: #ffffff; /* フォーム周辺は清潔感のある白 */
  }
  /* 見出し（お問い合わせフォーム）のスタイル */
  .webcontact h3 {
    font-size: 20px;
    font-weight: bold;
    color: #4a3e3d; /* 高級感のあるダークブラウン */
    text-align: center;
    margin-bottom: 15px;
    position: relative;
    padding-bottom: 10px;
  }
  /* 見出しの下にさりげないゴールドの線を入れる */
  .webcontact h3::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 40px;
    height: 2px;
    background-color: #b59a57; /* ブランドゴールド */
  }
  /* リード文 */
  .contact > p {
    font-size: 14px;
    color: #666666;
    line-height: 1.6;
    text-align: center;
    margin-bottom: 30px;
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
  }
  /* フォーム全体の最大幅を制限して中央寄せ */
  .contact-form {
    max-width: 500px;
    margin: 0 auto;
  }
  /* -----------------------------------------
     入力項目・ラベルの調整
     ----------------------------------------- */
  .wpcf7-form p {
    margin-bottom: 22px; /* 項目ごとのスキマを広げて誤タップ防止 */
  }
  .wpcf7-form label {
    display: block;
    font-size: 14px;
    font-weight: bold;
    color: #4a3e3d;
    line-height: 1.4;
  }
  /* 入力欄（テキスト・メール・電話番号・テキストエリア）の共通共通装飾 */
  .wpcf7-form input[type=text],
  .wpcf7-form input[type=email],
  .wpcf7-form input[type=tel],
  .wpcf7-form textarea {
    display: block;
    width: 100% !important; /* 横幅いっぱいに広げる */
    max-width: 100%;
    margin-top: 8px; /* ラベルとの隙間 */
    padding: 14px 12px; /* スマホで文字が隠れない余裕のある縦幅 */
    font-size: 16px; /* スマホで入力時に画面が勝手にズームされるのを防ぐ（16px以上が必須） */
    color: #333333;
    background-color: #faf8f5; /* ほんのりベージュの背景で高級感を演出 */
    border: 1px solid #e5dfd5; /* 優しい色味の境界線 */
    border-radius: 6px;
    box-shadow: none;
    -webkit-appearance: none; /* iOS特有のインナーシャドウを消す */
    -moz-appearance: none;
         appearance: none;
    transition: border-color 0.3s ease, background-color 0.3s ease;
  }
  /* 入力エリアをタップ・選択（フォーカス）したときの演出 */
  .wpcf7-form input[type=text]:focus,
  .wpcf7-form input[type=email]:focus,
  .wpcf7-form input[type=tel]:focus,
  .wpcf7-form textarea:focus {
    outline: none;
    border-color: #b59a57; /* 選択されるとゴールドの枠線に変わる */
    background-color: #ffffff; /* 背景を白にして入力中であることを強調 */
  }
  /* テキストエリア（メッセージ本文）の高さ */
  .wpcf7-form textarea {
    height: 150px;
    resize: vertical; /* 縦方向のみリサイズ可能に */
  }
  /* -----------------------------------------
     チェックボックス（プライバシーポリシー同意）
     ----------------------------------------- */
  .wpcf7-acceptance {
    display: block;
    text-align: center;
    margin: 25px 0;
  }
  .wpcf7-acceptance label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: normal;
    font-size: 14px;
    color: #555555;
    cursor: pointer;
  }
  .wpcf7-acceptance input[type=checkbox] {
    width: 18px;
    height: 18px;
    margin-right: 8px;
    cursor: pointer;
    accent-color: #b59a57; /* チェックを入れた時の色をゴールドに（モダンブラウザ対応） */
  }
  /* -----------------------------------------
     送信ボタン（ゴールド＆ブラウンの落ち着いたトーン）
     ----------------------------------------- */
  .wpcf7-submit {
    display: block;
    width: 100%;
    max-width: 28px0;
    margin: 0 auto;
    padding: 16px 20px;
    font-size: 16px;
    font-weight: bold;
    color: #ffffff !important;
    background-color: #4a3e3d; /* 基本は落ち着いたダークブラウン */
    border: none;
    border-radius: 30px; /* 丸みのある上品なボタン */
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(74, 62, 61, 0.15);
    transition: all 0.3s ease;
    -webkit-appearance: none;
    -moz-appearance: none;
         appearance: none;
  }
  /* ボタン有効時（チェックボックス同意後）のホバー効果 */
  .wpcf7-submit:not([disabled]):hover {
    background-color: #b59a57; /* ホバーでブランドゴールドに変化 */
    transform: translateY(-1px);
    box-shadow: 0 6px 15px rgba(181, 154, 87, 0.3);
  }
  /* 同意前（ボタン無効化状態）のグレースケール表示 */
  .wpcf7-submit[disabled] {
    background-color: #cccccc !important;
    color: #ffffff !important;
    cursor: not-allowed;
    box-shadow: none;
    opacity: 0.6;
  }
  /* -----------------------------------------
     エラーメッセージ・完了通知の調整
     ----------------------------------------- */
  /* 送信完了・エラーのアラート全体の枠 */
  .wpcf7-response-output {
    margin: 20px 0 0 0 !important;
    padding: 12px !important;
    font-size: 14px;
    border-radius: 6px;
    text-align: center;
  }
  /* 入力エラー（赤文字） */
  span.wpcf7-not-valid-tip {
    color: #d00000;
    font-size: 14px;
    margin-top: 5px;
    font-weight: bold;
  }
 




  /* ==========================================================================
     店舗情報エリア / 共通パーツ (shopinfo.php)
     ========================================================================== */
  .shopinfo.infomation .shopinfo_wrap table {
    background-color: rgba(255, 255, 255, 0.8);
  }
  .shopinfo_wrap,
  .companyinfo_wrap {
    position: relative;
    margin: 0 0 1rem 0;
    padding: 1rem;
    flex-basis: 100%;
  }
  .shopinfo.infomation .shopinfo_wrap {
    line-height: 1.4rem;
  }
  .shopinfo_wrap table,
  .companyinfo_wrap table {
    width: 100%;
    height: auto;
    border: 1px solid #3d0000;
    color: #3d0000;
    font-size: 1rem;
    table-layout: fixed;
  }
  .shopinfo_wrap td,
  .companyinfo_wrap td {
    border: 1px solid #3d0000;
    background-color: rgba(255, 255, 255, 0.2);
    color: #3d0000;
    padding: 0.4rem;
    font-size: 0.9rem;
  }
  .companyinfo_wrap th {
    width: 6rem; /* 競合は下側を優先・統合 */
    padding: 0.4rem;
    border: 1px solid #3d0000;
    border-bottom: 1px solid #ffffff;
    background-color: #3d0000;
    color: #ffffff;
  }
  .companyinfo_wrap table tbody tr .com_th_last {
    border-bottom: 1px solid #3d0000;
  }
  .companyinfo_wrap thead tr th {
    border: none;
    background-color: rgba(255, 255, 255, 0.2);
    color: #3d0000;
  }
  .tdf {
    width: 6rem;
    min-width: 0;
    font-size: 0.9rem;
  }
  .allshops {
    margin: 0.5rem 0;
  }
  .allshops tr .tdf {
    width: 6rem;
  }
  /* --- トップへ戻るボタン --- */
  #pageTop {
    display: block;
    width: 260px;
    margin: 1rem auto;
    padding: 0.4rem;
    border-radius: 0.4rem;
    background: #96745A;
    color: #fff;
    font-size: 1.2rem;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
  }
  #pageTop:hover {
    opacity: 0.5;
  }
  /* ==========================================================================
     会社概要 (page-company.php)
     ========================================================================== */
  .companyinfo_gree {
    display: flex;
    flex-wrap: wrap;
  }
  .companyinfo_gree .text {
    overflow-wrap: break-word;
    flex-basis: 100%;
  }
  .companyinfo_gree picture {
    padding: 1rem;
    flex-basis: 70%;
  }
  .companyinfo_gree picture img {
    width: 100%;
  }
  .companyinfo_gree p {
    margin: -2rem 1rem 0 auto;
    padding: 0 1rem;
    background-color: rgba(55, 5, 5, 0.4);
    color: #fff;
    text-align: right;
    flex-basis: 70%;
  }
  /* ==========================================================================
     在籍セラピスト (page-therapist.php) - 後半
     ========================================================================== */
  /* --- 在籍ページ出勤情報エリア・非表示制御 --- */
  .top_thera_scu_eria_pc {
    display: none;
  }
  /* --- スケジュールテーブル内フォント設定（重複と長大なセレクタを統合） --- */
  .page_therapist_wrap ul li .top_thera_scu_eria table.attmgr_guide_weekly .date,
  .page_therapist_wrap ul li .top_thera_scu_eria table.attmgr_guide_weekly .dow,
  .page_therapist_wrap ul li .top_thera_scu_eria table.attmgr_monthly_schedule .date,
  .page_therapist_wrap ul li .top_thera_scu_eria table.attmgr_monthly_schedule .dow,
  .page_therapist_wrap ul li .top_thera_scu_eria table.attmgr_admin_scheduler .date,
  .page_therapist_wrap ul li .top_thera_scu_eria table.attmgr_admin_scheduler .dow,
  .page_therapist_wrap ul li .top_thera_scu_eria table.attmgr_weekly .date,
  .page_therapist_wrap ul li .top_thera_scu_eria table.attmgr_weekly .dow,
  .page_therapist_wrap ul li .top_thera_scu_eria table.attmgr_weekly_all .date,
  .page_therapist_wrap ul li .top_thera_scu_eria table.attmgr_weekly_all .dow,
  table.attmgr_weekly .dow {
    display: inline-block;
    font-size: 0.9rem;
    line-height: 1.3em;
  }
  /* --- スケジュールテーブル・セル詳細レイアウト --- */
  .page_therapist_wrap ul .cast_li .top_thera_scu_eria .attmgr_weekly tbody tr td {
    width: 10rem;
    height: 2rem;
    padding: 0 0 0 1rem;
    font-size: 1rem;
    font-weight: 300;
    line-height: 2rem;
    text-align: left;
    writing-mode: horizontal-tb;
  }
  .page_therapist_wrap ul .cast_li .top_thera_scu_eria .attmgr_weekly tbody tr th {
    width: 5rem;
    height: 2rem;
    font-size: 1rem;
    font-weight: 300;
    line-height: 1rem;
    writing-mode: horizontal-tb;
  }
  /* --- 特設曜日・セル上書き指定 --- */
  .cast_li .top_thera_scu_eria .attmgr_weekly tbody tr th {
    width: 4rem;
    height: 2rem;
    line-height: 2rem;
    writing-mode: horizontal-tb;
  }
  .cast_li .top_thera_scu_eria .attmgr_weekly tbody tr td {
    height: 2rem;
    line-height: 2rem;
    writing-mode: horizontal-tb;
  }
  .cast_li .top_thera_scu_eria .attmgr_weekly tbody tr .saturday {
    color: #00006d;
  }
  .cast_li .top_thera_scu_eria .attmgr_weekly tbody tr .sunday {
    color: #6d0000;
  }
  /* --- 出勤予約ボタンパーツ --- */
  .page_therapist_wrap .btn_atend p,
  .scu_wrap .btn_atend p {
    margin: 0;
    padding: 0.2rem;
    border: #3d0000 1px solid;
    border-radius: 0.4rem;
    background-color: #96745A;
    color: #ffffff;
    font-size: 1rem;
    text-align: center;
    box-shadow: #fff 0 0 2px inset;
    flex-basis: 8rem;
  }
  /* --- グリッド・スタッフリストブロック (staff_block) --- */
  /* .therapist_wrap ul.staff_block,
  .therapist_wrap_sp ul.staff_block {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      width: 100%;
      margin: 1rem 0;
      padding: 1rem 0;
  } */
  .therapist_wrap_sp ul.staff_block li {
    float: none;
    height: auto;
    padding: 0.4rem 0.6rem;
    background-color: #ffffff;
    flex-basis: 16%;
  }
  .therapist_wrap ul.staff_block li .clear,
  .therapist_wrap_sp ul.staff_block li .clear {
    display: none;
  }
  .therapist_wrap ul.staff_block li .post-info .name,
  .therapist_wrap_sp ul.staff_block li .post-info .name {
    height: auto;
  }
  /* --- 全キャスト一覧リンクボタン --- */
  .all_sera {
    display: block; /* box-sizingやmargin: autoを効かせるため追加 */
    width: 14rem;
    margin: 1rem auto;
    padding: 0.4rem;
    border-radius: 0.4rem;
    background: #3d0000;
    color: #fff;
    font-size: 1.2rem;
    text-align: center;
    text-decoration: none;
    box-sizing: border-box;
    cursor: pointer;
  }
  ul.therapist-blog-list li.therapist-blog-item .title {
    display: -webkit-box !important;
    overflow: hidden !important;
    font-size: 14px !important;
    font-weight: bold !important;
    line-height: 1.4 !important;
    -webkit-line-clamp: 2 !important;
    line-clamp: 2;
    -webkit-box-orient: vertical !important;
  }
  /* ==========================================================================
     セラピスト詳細ページ (single-staff.php)
     ========================================================================== */
  /* --- 在籍基本レイアウト --- */
  .single_cast_li {
    display: flex;
    flex-wrap: wrap;
    margin: 0 0 1rem 0;
    border-radius: 0.4rem;
    box-shadow: 1px 1px 2px #333;
  }
  .single_cast_li.modal_li {
    display: flex;
    flex-wrap: wrap;
    margin: 0 0 1rem auto;
    border-radius: 0;
    box-shadow: none;
  }
  .single_cast_li.sced {
    background-color: #999;
    box-shadow: inset 0 0 4px #333;
  }
  .single_cast_li.videomovie {
    background: transparent;
    box-shadow: none;
    margin: auto 0 auto auto;
  }
  /* --- ショップ情報・ヘッダー --- */
  .shopinfo h1.castname {
    margin: 0;
    padding: 1rem;
    background-color: #96745A;
    color: #ffffff;
    font-size: 1.2rem;
    text-align: center;
    height: 3.4rem;
  }
  .therapist_wrap .single_cast_li .top_thera_title_eria {
    display: flex;
    border-radius: 0 0 0.4rem 0.4rem;
    background-color: #96745A;
    flex-basis: 100%;
  }
  .therapist_wrap .single_cast_li .top_thera_title_eria h2 {
    padding: 0.4rem 0 0 0.4rem;
    background-color: transparent;
    color: #ffffff;
    font-size: 1.2rem;
    line-height: 2rem;
    text-shadow: #eeeeee 0 0 2rem;
    flex-basis: 100%;
  }
  .therapist_wrap .single_cast_li .top_thera_title_eria h2 span {
    margin: 0 0.2rem;
    font-size: 1rem;
  }
  .therapist_wrap .single_cast_li .top_thera_title_eria .info_box {
    margin: 0.4rem;
    border-radius: 0.2rem;
    background-color: #fff;
    text-align: center;
    flex-basis: 5rem;
  }
  .therapist_wrap .single_cast_li .top_thera_title_eria .info_box a p {
    margin: 0;
    color: #96745A;
    font-size: 0.9rem;
    font-weight: 500;
  }
  /* お気に入りボタン */
  .simplefavorite-button {
    position: absolute;
    top: 0.4rem;
    right: 0.4rem;
    font-size: 14px;
    padding: 0.2rem;
    border-radius: 0.2rem;
    color: #96745a;
    background-color: #fff;
    border: #96745a 2px solid;
    font-weight: 600;
    box-shadow: 1px 1px 1px #3d0000;
  }
  .simplefavorite-button.active {
    color: #fff;
    background-color: transparent;
    border: #fff 2px solid;
  }
  /* --- コンテンツ・写真エリア --- */
  .single_cast_li .content {
    justify-content: space-between;
  }
  .single_cast_li .content a {
    padding: 0;
    flex-basis: calc(50% - 5px);
  }
  .single_cast_li .top_thera_photo_eria {
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
    margin: 0;
    padding: 0;
    aspect-ratio: 4/5;
    flex-basis: 100%;
  }
  .single_cast_li .top_thera_photo_eria img {
    width: 100%;
    height: auto;
    border-radius: 0.4rem 0.4rem 0 0;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: top;
       object-position: top;
    flex-basis: 100%;
  }
  .single_cast_li .content .top_thera_photo {
    border-radius: 0.4rem;
    box-shadow: 1px 1px 2px #333;
  }
  /* --- 出勤スケジュール (テーブル) --- */
  .therapist_wrap .single_cast_li .top_thera_scu_eria {
    display: block;
    flex-shrink: 0;
    width: 100%;
    max-width: 100%;
    margin: 0.6rem 0;
    background: transparent;
    overflow-x: auto;
    -ms-overflow-style: none;
    -webkit-overflow-scrolling: touch;
  }
  .single_cast_li .attmgr_weekly {
    width: 100%;
    min-width: 700px;
    border: none;
    border-spacing: 5px 0;
    border-collapse: separate !important;
    writing-mode: horizontal-tb !important;
    padding: 0 0 0.6rem 0;
  }
  .single_cast_li .attmgr_weekly th,
  .single_cast_li .attmgr_weekly td {
    padding: 5px;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    background-color: #ffffff;
    font-size: 1rem;
    white-space: nowrap;
  }
  .single_cast_li table.attmgr_weekly .date,
  .single_cast_li table.attmgr_weekly .dow {
    display: inline;
  }
  .single_cast_li .attmgr_weekly th {
    border-radius: 0.4rem 0.4rem 0 0;
    background-color: #96745a;
    color: #fff;
    font-weight: bold;
  }
  .single_cast_li .attmgr_weekly td {
    border-radius: 0 0 0.4rem 0.4rem;
  }
  .single_cast_li .attmgr_weekly th.saturday {
    background-color: #5a7796;
  }
  .single_cast_li .attmgr_weekly th.sunday {
    background-color: #965a60;
  }
  .single_cast_li .attmgr_weekly td.not_working {
    background-color: #f5f5f5;
    color: #b0b0b0;
  }
  /* --- Q&A・テキストエリア --- */
  .top_thera_text_eria_de {
    display: flex;
    flex-wrap: wrap;
    margin: 0;
    padding: 0.6rem;
    border-radius: 0.4rem;
    background-color: rgba(255, 255, 255, 0.8);
    color: #333;
    flex-basis: 100%;
  }
  .thera_q {
    margin: 1rem 0 0 0;
    color: #3d1e1e;
    font-weight: 600;
    width: 100%;
  }
  .top_thera_qatext_eria {
    padding: 1rem 0;
    flex-basis: 100%;
  }
  .single_cast_li .top_thera_qatext_eria .thera_q {
    border-radius: 0.4rem 0.4rem 0 0;
    font-size: 1rem;
    text-align: left;
  }
  .top_thera_qaphoto_eria,
  .top_thera_qaphoto_eria_sec {
    margin: 0;
    padding: 0;
    flex-basis: 100%;
  }
  .single_cast_li .top_thera_qaphoto_eria .content a {
    padding: 0.4rem 0.4rem 0.4rem 0;
  }
  .single_cast_li .top_thera_qaphoto_eria .content a:last-child {
    padding: 0.4rem 0 0.4rem 0.4rem;
  }
  /* --- 動画・ギャラリー --- */
  .new-work-gallery-image {
    text-align: center;
  }
  .new-work-gallery-image video,
  .single_cast_li .new-work-gallery-image video {
    width: 380px;
    max-width: 100%;
    margin: 0 auto;
    border-radius: 0.4rem;
    box-shadow: 1px 1px 2px #333;
  }
  /* --- ボタン --- */
  .btn_atend.reserve p {
    margin: 1rem auto 0 auto;
    padding: 0.4rem;
    font-size: 1.1rem;
    font-weight: 600;
    flex-basis: 12rem;
  }
  /* --- ブログセクション (横スクロール) --- */
  .therapist-blog-section.all {
    padding: 0.6rem 0 0.6rem 1rem;
    background-color: #aaa;
    width: 100%;
    margin: 1rem auto 2rem auto;
    border-radius: 0.4rem 0 0 0.4rem;
    background-image: url(images/webp/roombk.webp);
    background-size: cover;
    background-position: center;
  }
  .therapist-blog-section.all h3 {
    margin: 0.6rem 0;
    color: #fff;
    font-weight: 600;
    text-shadow: 0 0 4px #000;
  }
  .therapist-blog-section.all .therapist-blog-item {
    padding: 0.4rem;
    background-color: rgba(255, 255, 255, 0.9);
  }
  .blog.single_cast_li {
    display: block;
    padding: 0.6rem;
    background-color: #fff;
    margin: 1rem auto;
  }
  .therapist-blog-section h3 {
    margin: 0.6rem 0;
    color: #3d1e1e;
    font-weight: 600;
  }
  .therapist-blog-scroll {
    display: block !important;
    width: 100% !important;
    padding-bottom: 15px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
  }
  ul.therapist-blog-list {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 15px !important;
    width: -moz-max-content !important;
    width: max-content !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }
  ul.therapist-blog-list li.therapist-blog-item {
    display: block !important;
    flex-shrink: 0 !important;
    width: 150px;
    margin: 0;
    padding: 0;
  }
  ul.therapist-blog-list li.therapist-blog-item a {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    width: 100% !important;
    color: inherit !important;
    text-decoration: none !important;
  }
  ul.therapist-blog-list li.therapist-blog-item .top_thera_photo_eria {
    width: 100% !important;
    height: auto !important;
    margin-bottom: 8px !important;
  }
  ul.therapist-blog-list li.therapist-blog-item .attachment-thumbnail {
    width: 100% !important;
    aspect-ratio: 4/5;
    border-radius: 8px !important;
    -o-object-fit: cover !important;
       object-fit: cover !important;
  }
  ul.therapist-blog-list li.therapist-blog-item .date {
    display: block !important;
    margin-bottom: 3px !important;
    color: #888 !important;
    font-size: 14px !important;
  }
  ul.therapist-blog-list li.therapist-blog-item .title {
    display: -webkit-box !important;
    overflow: hidden !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    -webkit-line-clamp: 3 !important;
    line-clamp: 3; /* 切れていた箇所：3行で省略する指定を追加 */
    -webkit-box-orient: vertical !important;
  }
  .therapist-blog-section.all .btn_common {
    width: 8rem;
    margin: 1rem 1rem 0 auto;
    padding: 0.2rem 0.6rem;
    border-radius: 0.4rem;
    background-color: transparent;
    color: #ffffff;
    font-size: 0.9rem;
    text-align: center;
    border: 1px solid #fff;
  }
  /* ==========================================================================
     写メ日記個人ページ (archive-therapist_blog.php)
     ========================================================================== */
  /* --- アーカイブコンテナ・カード --- */
  .archive-container {
    margin: 1rem 1rem 4rem 1rem;
  }
  .blog-card-full {
    margin: 0;
    padding: 1rem 1rem 0.2rem 1rem;
    border-radius: 0.4rem;
    background-color: #fff;
    box-shadow: 1px 1px 2px #333;
  }
  .blog-thumbnail {
    text-align: center;
  }
  .therapist-blog-single-view .blog-card-full .blog-thumbnail img {
    width: 100%;
    border-radius: 0.4rem;
    height: auto;
    max-width: 480px;
  }
  /* --- ブログ本文・詳細エリア --- */
  .therapist-blog-single-view .blog-card-full .blog-dis {
    margin: 1rem 0;
  }
  .therapist-blog-single-view .blog-card-full .blog-dis h2 {
    margin: 1rem 0;
    font-size: 1.2rem;
  }
  .therapist-blog-single-view .blog-card-full .blog-dis span {
    display: inline-block;
    width: 100%;
    border-style: solid;
    border-color: #ddd;
    border-width: 0 0 1px 0;
  }
  /* 過去の投稿（バックナンバー） */
  .therapist-blog-section.past {
    padding: 0.6rem 1rem;
    background-color: #aaa;
    width: 100%;
    margin: 1rem auto 2rem auto;
    border-radius: 0.4rem 0 0 0.4rem;
    background-image: url(images/webp/roombk.webp);
    background-size: cover;
    background-position: center;
  }
  .therapist-blog-section.past h3.past-title {
    margin: 0.6rem 0;
    color: #fff;
    font-weight: 600;
    text-shadow: 0 0 4px #000;
  }
  ul.therapist-blog-list {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 15px !important;
    width: -moz-max-content !important;
    width: max-content !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }
  .therapist-blog-section.past .therapist-blog-item {
    padding: 0.4rem;
    background-color: rgba(255, 255, 255, 0.9);
    display: block !important;
    flex-shrink: 0 !important;
    width: 150px;
    margin: 0;
  }
  .therapist-blog-section.past .therapist-blog-item .past-thumbnail {
    width: 100% !important;
    aspect-ratio: 4/5;
    border-radius: 8px !important;
    -o-object-fit: cover !important;
       object-fit: cover !important;
  }
  .therapist-blog-section.past .therapist-blog-item .past-thumbnail img {
    width: 100%;
    aspect-ratio: 4/5;
    border-radius: 8px !important;
    -o-object-fit: cover !important;
       object-fit: cover !important;
  }
  .therapist-blog-section.past .therapist-blog-item .past-date {
    display: block !important;
    margin-bottom: 3px !important;
    color: #888 !important;
    font-size: 14px !important;
  }
  .therapist-blog-section.past .therapist-blog-item .past-card-title {
    display: -webkit-box;
    overflow: hidden;
    font-size: 14px;
    line-height: 1.4;
    -webkit-line-clamp: 3;
    line-clamp: 3; /* 切れていた箇所：3行で省略する指定を追加 */
    -webkit-box-orient: vertical;
  }
  /* --- ページネーション（ナビゲーション） --- */
  .blog-page-navigation {
    display: flex;
    justify-content: space-between;
    margin-top: 30px;
    padding: 0 15px;
  }
  .nav-btn {
    display: inline-block;
    padding: 12px 20px;
    border-radius: 5px;
    background: #96745A; /* サイトのメインカラー */
    color: #fff;
    font-size: 14px;
    font-weight: bold;
    text-decoration: none;
  }
  .blog-page-navigation.btn_atend a:visited, .blog-page-navigation.btn_atend a:link {
    color: #fff;
  }
  .nav-btn.disabled {
    background: #ccc;
    color: #fff;
    cursor: not-allowed;
  }
  /* --- その他 --- */
  .n2_clear {
    display: none;
  }
  .blog-card-full.all {
    margin: 2rem auto;
  }
  .therapist-profile-box {
    display: flex;
    border-radius: 0.4rem;
    box-shadow: 1px 1px 2px #333;
    padding: 5px 10px;
    max-width: 280px;
  }
  .therapist-profile-box .therapist-avatar {
    flex-basis: 60px;
  }
  .therapist-profile-box .thera_q {
    flex-basis: calc(100% - 60px);
    margin: 0 1rem 0 10px;
    line-height: 2rem;
  }
  .therapist-profile-box .thera_q span {
    font-weight: 400;
    font-size: 0.9rem;
    line-height: 1rem;
  }
  .blog-card-full.all .therapist-profile-box img {
    width: 60px;
    height: 60px;
    margin: 0 auto;
    -o-object-fit: cover;
       object-fit: cover;
    border-radius: 50%;
    border: 2px solid #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
    aspect-ratio: 4/5;
    -o-object-position: top;
       object-position: top;
    display: block;
  }
  /* ==========================================================================
     セラピスト一覧ページ (追加：横長リストレイアウト用)
     ========================================================================== */
  /* 全体を囲うコンテナ */
  .therapist_list_container {
    width: 100%;
    padding: 1rem 0.5rem;
    box-sizing: border-box;
  }
  /* 1キャストの横長カード枠（詳細ページのシャドウ・角丸ルールに準拠） */
  .thera_list_row {
    background: #ffffff;
    border-radius: 0.4rem;
    margin: 1rem 0;
    padding: 0.6rem;
    box-sizing: border-box;
    align-items: flex-start;
    box-shadow: 1px 1px 2px #333; /* 詳細ページの .single_cast_li と統一 */
    min-width: 0;
  }
  .thera_list_row .thera_list_top {
    width: 100%;
    display: flex;
  }
  /* 左側：写真エリア（縦横比を詳細ページの 4 / 5 に維持し、一覧用に小さく固定） */
  .thera_list_left {
    width: 110px;
    min-width: 110px;
    margin-right: 10px;
    flex-basis: 110px;
  }
  .list_thera_photo {
    width: 100%;
    aspect-ratio: 4/5; /* 詳細ページの枠線ルールと統一 */
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: top;
       object-position: top;
    border-radius: 0.4rem;
    display: block;
    box-shadow: 1px 1px 2px #333;
  }
  /* 右側：情報エリア */
  .thera_list_right {
    min-width: 0; /* 文字溢れによるレイアウト崩れ防止 */
    display: flex;
    flex-direction: column;
    flex-basis: calc(100% - 120px);
    position: relative;
  }
  /* 名前・年齢・身長（詳細ページのヘッダーデザインをカード内になじませる） */
  .thera_list_right h2.list_thera_title {
    font-size: 1.1rem;
    font-weight: bold;
    margin: 0 0 0.3rem 0;
    line-height: 1.4;
    color: #fff;
    border-radius: 0.4rem;
    text-align: left;
    padding: 0.4rem 0 0.4rem 1rem;
  }
  .thera_list_right h2.list_thera_title a {
    color: #fff;
    text-decoration: none;
  }
  /* 年齢・身長のバッジ（詳細ページの配色と共通化） */
  .list_age, .list_height {
    font-size: 14px;
    font-weight: normal;
    color: #96745a;
    margin-left: 0.3rem;
    background-color: #fff; /* 詳細ページのベースカラー */
    padding: 0.1rem 0.4rem;
    border-radius: 0.2rem;
    display: inline-block;
    border: #96745a 2px solid;
  }
  /* 1行切り出しキャッチコピー（詳細ページの本文に合わせたグレー文字） */
  .list_catch_copy {
    font-size: 14px;
    color: #666;
    margin-bottom: 0.5rem;
    line-height: 1.4;
    white-space: wrap;
    overflow: hidden;
    text-overflow: ellipsis; /* 1行を絶対にはみ出させない処理 */
  }
  /* 出勤スケジュール枠（詳細ページのスクロール設定を継承し、一覧用に極小化） */
  .thera_list_row .single_cast_li.sced {
    margin: 1rem 0;
  }
  .thera_list_row .top_thera_scu_eria {
    display: block;
    flex-shrink: 0;
    width: 100%;
    max-width: 100%;
    margin: 0.6rem 0 0 0;
    background: transparent;
    overflow-x: auto;
    padding: 0 0 10px 0;
  }
  /* ボタングループ（横並びで親指が届きやすい配置） */
  .list_btn_group {
    display: flex;
    gap: 6px;
    margin-top: auto; /* コンテンツが少なくても常に最下部に並ぶ */
    width: 100%;
  }
  .btn_view_profile, .btn_quick_reserve {
    flex: 1;
    text-align: center;
    font-size: 1rem;
    font-weight: 600;
    padding: 0.5rem 0;
    border-radius: 0.4rem;
    text-decoration: none;
    display: block;
    box-sizing: border-box;
    height: calc(2rem + 4px);
  }
  /* プロフィール/日記を見るボタン（控えめなベージュ系） */
  .btn_view_profile {
    background-color: #f7f5f3;
    color: #96745A;
    border: 4px solid #96745A;
    padding: calc(0.5rem - 4px) 0 0 0;
  }
  /* 即予約ボタン（詳細ページのボタン風に目立つゴールド・オレンジ系、あるいはそのまま赤） */
  .btn_quick_reserve {
    background-color: #96745A; /* 予約を促すためのアテンションカラー */
    color: #ffffff;
  }
  a.btn_view_profile:visited, a.btn_view_profile:link {
    color: #96745A;
  }
  a.btn_quick_reserve:visited, a.btn_quick_reserve:link {
    color: #fff;
  }
  /* ==========================================================================
     出勤情報 (page-weekly.php)
     ========================================================================== */
  /* --- 今週の出勤・スクロールコンテナ ---


  /* 1. 外枠（ナビも含めた全体のコンテナ） */
  .today_attend_scroll {
    width: 100%;
    margin: 0 0 2rem 0;
    padding: 0.6rem;
    border-radius: 0.4rem;
    background-color: #ddd;
    box-shadow: 1px 1px 2px #000 inset;
  }
  /* 2. ナビゲーションはそのまま（スクロールしない） */
  #list_pagenavi {
    width: 100%;
    height: 2rem;
  }
  .list_pagenavi .list_datenavi {
    font-weight: 600;
    font-size: 1.1rem;
  }
  .list_pagenavi .list_datenavi a:link, .list_pagenavi .list_datenavi a:visited {
    margin: 1rem;
    color: #3c434a;
    font-size: 1.2rem;
    text-decoration: none;
  }
  /* 3. 【変更】テーブルの周りにスクロール用の箱をCSSで定義する */
  .attmgr_weekly_all {
    display: block;
    width: 100%;
    max-height: 500px; /* 縦スクロールさせたい全体の高さを指定（自由に変更してください） */
    overflow: auto; /* 縦横両方のスクロールを許可 */
    -webkit-overflow-scrolling: touch;
    border-width: 0;
    border-spacing: 5px 0;
    border-collapse: separate !important;
  }
  /* テーブルの中身の最小幅を1000pxに固定 */
  .attmgr_weekly_all tbody {
    display: table;
    width: 100%;
    min-width: 640px;
    border-spacing: 4px 10px;
    border-collapse: separate;
    border-radius: 0.4rem;
    padding-bottom: 15px;
  }
  .today_attend_scroll table.attmgr_weekly_all tbody tr:first-child th {
    border-width: 0;
    font-size: 1rem;
    text-align: center;
    padding: 0;
  }
  .today_attend_scroll table.attmgr_weekly_all tbody tr, .today_attend_scroll table.attmgr_weekly_all tbody tr:nth-of-type(2n) {
    background-color: #ddd;
  }
  .today_attend_scroll table.attmgr_weekly_all tbody th,
  .today_attend_scroll table.attmgr_weekly_all tbody td {
    white-space: nowrap;
    height: 80px;
    min-height: 80px;
    border-width: 0;
    border-radius: 0.4rem;
    font-size: 1rem;
    padding: 0;
    line-height: 1rem;
    box-shadow: 1px 1px 2px #333;
  }
  .today_attend_scroll table.attmgr_weekly_all tbody td.portrait {
    padding: 52px 0 0 0;
  }
  .today_attend_scroll table.attmgr_weekly_all tbody td img {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    position: absolute;
    top: -3px;
    left: 5px;
  }
  .today_attend_scroll table.attmgr_weekly_all tbody td.working {
    background-color: #fff;
  }
  /* ==========================================
     ここから固定（sticky）の設定
     ========================================== */
  /* ① 【上固定】すべての一番上の見出し行（th） */
  .attmgr_weekly_all th {
    position: sticky;
    top: 0;
    z-index: 10; /* データ行より前面へ */
    background-color: #fff; /* 背景が透けないように必須 */
  }
  /* ② 【左固定】左端の列（空のth と 名前のtd） */
  .attmgr_weekly_all tr th:first-child,
  .attmgr_weekly_all td.portrait {
    position: sticky;
    left: 0;
    z-index: 20; /* 上固定のthよりもさらに前面へ */
    background-color: #fff; /* 背景が透けないように必須 */
  }
  /* ③ 【交差点固定】左上の角（空のth）を左上の一箇所に完全固定 */
  .attmgr_weekly_all tr th:first-child {
    top: 0;
    left: 0;
    z-index: 30; /* 最前面に配置 */
  }
  /* --- 店舗メイン / 共通スタッフブロック --- */
  .therapist_wrap.today_attend ul.staff_block li .post-info .attendance {
    margin: 0 auto;
  }
  .workinfo .today_attend ul.staff_block {
    box-shadow: 1px 1px 2px #000 inset;
  }
  /* .workinfo .today_attend ul.staff_block li {
      width: 100%;
      margin: 0.2rem;
      border: none;
      border-radius: 0.4rem;
      background-color: #ffffff;
      flex-basis: 100%;
  } */
  .btn_wrap {
    width: calc(100% - 2rem);
    padding: 1rem 1rem 0 1rem;
    text-align: center;
    background-color: #fff;
    box-shadow: 1px 1px 2px #333;
    border-radius: 0.4rem;
    margin: 1rem auto 2rem auto;
    background-image: url(images/defo/thera_bk.webp);
    background-size: contain;
  }
  .triangle-down {
    width: 100px;
    height: 10px;
    border-left: 50px solid transparent;
    border-right: 50px solid transparent;
    border-top: 10px solid #96745a;
    margin: 0.4rem auto 0 auto;
  }
  .btn_wrap .btn_atend {
    margin: 1rem 0;
  }
  .btn_wrap span {
    font-weight: 500;
    text-shadow: 0 0 4px #fff, 0 0 10px #fff, 0 0 20px #fff, 0 0 40px #fff;
  }
  .workinfo .btn_atend p {
    width: 100%;
    margin: 0 auto 1rem auto;
    padding: 0.2rem;
    border: #3d0000 1px solid;
    border-radius: 0.4rem;
    background-color: #96745A;
    color: #ffffff;
    font-size: 1rem;
    text-align: center;
    box-shadow: #fff 0 0 2px inset;
    flex-basis: 12rem;
  }
  /* --- ウィークリースケジュールセクション (scu_wrap) --- */
  .scu_wrap {
    position: relative;
    margin-bottom: 1rem;
    padding: 0 0 1rem 0;
    background-color: rgba(77, 71, 23, 0.3);
  }
  .scu_wrap ul {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    padding: 0;
  }
  .scu_wrap .btn_atend p {
    margin: 0 auto;
  }
  /* --- キャスト個別カード枠 (cast_li_weekly) --- */
  .cast_li_weekly {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-start;
    width: 100%;
    height: auto;
    margin: 0.5rem auto;
    padding: 2rem 1rem 1rem 1rem;
    background-image: url(images/defo/thera_bk.webp);
    background-size: contain;
    flex-basis: 96%;
  }
  .cast_li_weekly .top_thera_photo_eria {
    width: 100%;
    margin: 1rem 0;
    padding: 0 0.4rem 0 0;
    flex-basis: 40%;
  }
  /* --- カード内スケジュール設定 --- */
  .cast_li_weekly .top_thera_scu_eria {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-start;
    padding: 1rem 0 0 0;
    color: #3d0000;
    flex-basis: 60%;
  }
  .cast_li_weekly .top_thera_scu_eria h2 {
    padding: 0.4rem 0 0.2rem 1.6rem;
    border-radius: 0 0.4rem 0 2rem;
    background-color: #96745A;
    color: #ffffff;
    font-size: 1.2rem;
    box-shadow: #000 1px -1px 2px inset;
    flex-basis: 100%;
  }
  .cast_li_weekly .top_thera_scu_eria h2 span {
    font-size: 1rem;
    font-weight: 300;
  }
  /* --- プロフィール・共通ボタンへの導線 --- */
  .cast_li_weekly .top_thera_scu_eria a {
    margin: 0 0 0 auto;
    padding: 0 0 0 2rem;
  }
  .cast_li_weekly .top_thera_scu_eria a:visited {
    color: #3d0000;
  }
  .cast_li_weekly .top_thera_scu_eria a .btn_common {
    width: auto;
    margin: 0 0 0 auto;
    padding: 0.4rem 0.6rem 0.2rem 2rem;
    border-radius: 0 0 0.4rem 2rem;
    background-color: #fff;
    color: #3d0000;
    text-align: right;
    box-shadow: inset -1px -1px 2px #3d0000;
  }
  .cast_li_weekly .top_thera_scu_eria a .btn_common span {
    display: inline-block;
    width: 0.6rem;
    height: 0.8rem;
    margin: 0 0 0 0.2rem;
    background-color: #96745A;
    color: #3d0000;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
  }
  /* --- 各種情報用ボックス --- */
  .cast_li_weekly .info_box {
    width: 60%; /* 全角"％"を半角"%"に修正 */
    margin: 1rem 1rem 1rem auto;
    padding: 1rem;
    background-color: #B28936;
    color: #3d0000;
    font-size: 1rem;
    text-align: center;
  }
  /* --- SP用週間スケジュールテーブル --- */
  .top_thera_scu_eria_sp {
    display: block;
    width: 100%;
    height: auto;
    background-color: rgba(250, 250, 250, 0.8);
    flex-basis: 100%;
  }
  table.attmgr_weekly {
    writing-mode: vertical-lr;
  }
  .top_thera_scu_eria_sp table.attmgr_weekly .dow {
    display: inline-block;
  }
  .top_thera_scu_eria_sp table.attmgr_weekly .date {
    display: inline;
    width: 100%;
  }
  /* --- 平日セル見出し --- */
  .cast_li_weekly .top_thera_scu_eria_sp .attmgr_weekly tbody tr th.monday,
  .cast_li_weekly .top_thera_scu_eria_sp .attmgr_weekly tbody tr th.tuesday,
  .cast_li_weekly .top_thera_scu_eria_sp .attmgr_weekly tbody tr th.wednesday,
  .cast_li_weekly .top_thera_scu_eria_sp .attmgr_weekly tbody tr th.thursday,
  .cast_li_weekly .top_thera_scu_eria_sp .attmgr_weekly tbody tr th.friday {
    height: 2rem;
    padding: 0.2rem 0;
    background-color: #777777;
    color: #ffffff;
    font-size: 1rem;
    line-height: 1.2rem;
    writing-mode: horizontal-tb;
  }
  /* --- 土曜・日曜セル見出し --- */
  .cast_li_weekly .top_thera_scu_eria_sp .attmgr_weekly tbody tr th.saturday {
    width: 6rem;
    height: 2rem;
    background-color: #444488;
    color: #ffffff;
    font-size: 1rem;
    line-height: 1.2rem;
    writing-mode: horizontal-tb;
  }
  .cast_li_weekly .top_thera_scu_eria_sp .attmgr_weekly tbody tr th.sunday {
    width: 6rem;
    height: 2rem;
    background-color: #884444;
    color: #ffffff;
    font-size: 1rem;
    line-height: 1.2rem;
    writing-mode: horizontal-tb;
  }
  /* --- スケジュール本文セル --- */
  .cast_li_weekly .top_thera_scu_eria_sp .attmgr_weekly tbody tr td {
    width: 10rem;
    height: 2rem;
    padding: 0 0 0 1rem;
    font-size: 1rem;
    font-weight: 300;
    line-height: 2rem;
    text-align: left;
    writing-mode: horizontal-tb;
    overflow-wrap: break-word;
  }
  /* ==========================================================================
     ご利用の流れ (page-usageflow.php)
     ========================================================================== */
  /* 初めてご利用のお客様へ */
  .shopinfo .reserve-first-time-section {
    margin: 2rem 1rem;
    width: calc(100% - 2rem);
  }
  .reserve-first-time-section {
    width: 100%;
    text-align: left;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .intro-text {
    font-size: 14px;
    line-height: 1.6;
    color: #555555;
    margin: 0 0 15px 0;
    width: 100%;
  }
  .intro-text strong {
    color: #b39369;
  }
  /* 3つのお約束 */
  .promise-container {
    width: 100%;
    margin-bottom: 20px;
  }
  .promise-item {
    background-color: #fcfbfa; /* ニュアンスホワイト */
    border: 1px solid #f0ede8;
    border-radius: 6px;
    padding: 12px;
    margin-bottom: 10px;
  }
  .promise-item:last-child {
    margin-bottom: 0;
  }
  .promise-ttl {
    font-size: 14px;
    font-weight: bold;
    color: #333333;
    margin: 0 0 6px 0;
    display: flex;
    align-items: center;
  }
  .promise-num {
    background-color: #a89476;
    color: #ffffff;
    font-size: 11px;
    font-weight: bold;
    width: 18px;
    height: 18px;
    border-radius: 3px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 8px;
  }
  .promise-txt {
    font-size: 14px;
    line-height: 1.6;
    color: #666666;
    margin: 0;
  }
  /* step1 */
  .btn_atend.userflow {
    display: block;
    margin: 1rem auto;
  }
  .reserve-alert-section.treatment {
    margin: 1rem 0;
  }
  .firstuser-notice-box .shopinfo .today_attend li {
    width: 100%;
  }
  .firstuser-notice-box .shopinfo .today_attend li .attendance {
    width: 180px;
  }
  /* step4 */
  .promise-item.treatment img {
    float: left;
    width: 120px;
    height: 120px;
    -o-object-fit: cover;
       object-fit: cover;
    margin: 1rem 1rem 1rem 0;
    border-radius: 0.4rem;
  }
  .promise-item.treatment .promise-txt {
    text-align: left;
  }
  /* 全体の背景やフォント設定（必要に応じて調整） */
  .qa-section {
    background-color: #faf8f5; /* 優しいオフホワイト */
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Segoe UI", sans-serif;
    color: #333333;
    padding: 40px 20px;
    margin: 20px auto;
    width: calc(100% - 2rem);
  }
  .qa-container {
    max-width: 640px; /* スマホ・タブレットで綺麗に見える幅 */
    margin: 0 auto;
  }
  /* 各質問のカードスタイル */
  .qa-item {
    background: #ffffff;
    border: 1px solid #e5dfd5;
    border-radius: 8px;
    margin-bottom: 20px;
    padding: 20px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
  }
  /* 質問（Q）のスタイル */
  .qa-question {
    display: flex;
    align-items: flex-start;
    font-weight: bold;
    font-size: 15px;
    line-height: 1.5;
    color: #4a3e3d;
    margin-bottom: 15px;
  }
  .icon-q {
    background-color: #a89476; /* ブランドカラーのゴールド系 */
    color: #ffffff;
    font-size: 14px;
    font-weight: 900;
    width: 22px;
    height: 22px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 10px;
    flex-shrink: 0; /* アイコンが潰れないように */
  }
  /* 回答（A）のスタイル */
  .qa-answer {
    display: flex;
    align-items: flex-start;
    font-size: 14px;
    line-height: 1.6;
    color: #555555;
  }
  .icon-a {
    background-color: #eae3d2; /* Qより少し控えめなベージュ */
    color: #a89476;
    font-size: 14px;
    font-weight: 900;
    width: 22px;
    height: 22px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 10px;
    flex-shrink: 0;
  }
  /* 強調文字（アンダーライン） */
  .highlight {
    background: linear-gradient(transparent 60%, #fff2cc 60%);
    font-weight: bold;
    color: #111111;
  }
  /* ==========================================================================
     ボタン周辺のデザイン
     ========================================================================== */
  .qa-btn-wrap {
    text-align: center;
    margin: 35px 0;
  }
  .qa-btn-lead {
    font-size: 14px;
    color: #888888;
    margin-bottom: 8px;
    font-weight: bold;
  }
  a.qa-btn {
    display: inline-block;
    width: 100%;
    max-width: 300px;
    background-color: #96745a;
    color: #ffffff;
    font-weight: bold;
    font-size: 15px;
    text-align: center;
    padding: 16px 20px;
    border-radius: 30px;
    text-decoration: none;
    box-shadow: 0 4px 15px rgba(74, 62, 61, 0.2);
    transition: all 0.3s ease;
  }
  /* ホバー・タップ時の演出（PCや親指でのタップ用） */
  .qa-btn:hover, .qa-btn:active {
    background-color: #b59a57;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(181, 154, 87, 0.3);
  }
  .qa-btn:visited, .qa-btn:link {
    color: #fff;
  }
  /* 禁止事項 */
  .rules-section {
    padding: 40px 15px;
    background-color: #f9f9f9;
    margin: 20px auto;
    width: calc(100% - 2rem);
  }
  .rules-container {
    max-width: 600px;
    margin: 0 auto;
  }
  .rules-box {
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 20px;
    font-size: 14px;
    line-height: 1.6;
  }
  /* 注意事項：薄いグレー */
  .attention-box {
    background-color: #eee;
    border: 1px solid #ddd;
  }
  /* 禁止事項：薄い赤 */
  .penalty-box {
    background-color: #fff0f0;
    border: 1px solid #fcc;
    color: #b00;
  }
  .rules-title {
    margin-top: 0;
    font-size: 17px;
    margin-bottom: 12px;
  }
  .title-alert {
    color: #d00;
  }
  .rules-list {
    padding-left: 20px;
    margin: 0;
  }
  .rules-list li {
    margin-bottom: 8px;
  }
  .rules-subtitle {
    font-weight: bold;
    margin: 15px 0 5px;
    font-size: 14px;
  }
  .rules-summary {
    margin: 15px 0 0;
    font-weight: bold;
    font-size: 14px;
    border-top: 1px solid #fcc;
    padding-top: 10px;
  }
  /* --- 各種パーツ・マップ等 --- */
  .sankaku {
    width: -moz-max-content;
    width: max-content;
    margin: 0 auto;
    color: #777777;
    font-size: 3rem;
    text-align: center;
  }
  .step .map_text {
    width: 100%;
    padding: 0;
    flex-basis: 100%;
  }
  .step .map_svg {
    display: none;
  }
  /* サイドバー編集 */
  .page-id-201 .side_bar .today_attend, .page-id-201 .side_bar .reserve-first-time-section {
    display: none;
  }
  /* ==========================================================================
     予約ページ (page-reserve.php)
     ========================================================================== */
  /* サイトの予約ボックスに合わせた外枠のデザイン */
  .firstuser-notice-box {
    background: #fdfcfb; /* 非常に薄い温かみのある背景色 */
    border: 2px solid #5a6e5f; /* サロンのキーカラー：オリーブグリーン */
    padding: 30px 20px;
    border-radius: 12px; /* 予約ボックスと同様の角丸 */
    margin: 20px auto;
    width: calc(100% - 2rem);
    box-sizing: border-box;
    text-align: center;
    font-family: sans-serif;
  }
  /* 英語のサブタイトル */
  .notice-sub-eng {
    display: block;
    font-size: 14px;
    font-weight: bold;
    color: #a4947d; /* ゴールド・ブラウニッシュなアクセントカラー */
    letter-spacing: 0.15em;
    margin-bottom: 4px;
  }
  /* 日本語の補足テキスト */
  .notice-sub-txt {
    font-size: 14px;
    color: #666666;
    margin: 0 0 10px 0;
    font-weight: 500;
  }
  /* メインの見出しタイトル */
  .notice-main-ttl {
    font-size: 20px;
    color: #333333;
    margin: 0 0 20px 0;
    padding: 0;
    font-weight: bold;
    letter-spacing: 0.05em;
  }
  /* 本文エリア */
  .notice-body-content {
    text-align: left; /* 文章は左寄せで読みやすく */
    background: #ffffff;
    border-radius: 8px;
    padding: 18px;
    margin-bottom: 20px;
    border: 1px solid #eae6e1;
  }
  .notice-lead-text {
    font-size: 14px;
    color: #444444;
    line-height: 1.7;
    margin: 0;
  }
  /* サイトのテイストに合わせた緑色の目立たせ線 */
  .notice-lead-text .highlight-green {
    background: linear-gradient(transparent 60%, #e2ece6 60%);
    color: #2b4031;
    font-weight: bold;
    padding: 0 2px;
  }
  /* 区切り線（サイトの仕様に準拠） */
  .notice-divider {
    border: none;
    border-top: 1px dashed #d1c9be; /* ドットまたはダッシュの薄い線 */
    margin: 20px 0;
  }
  /* 具体例セクション */
  .notice-example-section {
    text-align: left;
  }
  /* 例の見出し */
  .example-title {
    font-size: 15px;
    color: #4a5d4e; /* オリーブグリーン */
    margin: 0 0 12px 0;
    font-weight: bold;
    display: flex;
    align-items: center;
  }
  /* 見出し内の絵文字の余白調整 */
  .example-title .emoji {
    width: 1.2em;
    height: 1.2em;
    margin-right: 6px;
    vertical-align: -0.2em;
  }
  /* 例の文章ボックス */
  .example-box {
    background: #f6f5f2; /* 本文より少し濃いめの背景で差別化 */
    border-radius: 6px;
    padding: 15px;
  }
  .example-box p {
    font-size: 13.5px;
    color: #555555;
    line-height: 1.6;
    margin: 0;
  }
  /* 強調太文字 */
  .firstuser-notice-box strong {
    color: #111111;
    font-weight: 700;
  }
  .firstuser-notice-box .today_attend {
    padding: 1rem 0 0 0;
  }
  /* ==========================================================================
     1. 予約方法を選ぶ（セクション全体）
     ========================================================================== */
  .reserve-select-section {
    background: #fdfcfb; /* サイト標準の薄い背景色 */
    border: 2px solid #5a6e5f; /* サロンのキーカラー：オリーブグリーン */
    padding: 30px 15px; /* スマホ用に左右の余白を少しタイトに */
    border-radius: 12px;
    margin: 20px auto;
    width: calc(100% - 2rem);
    box-sizing: border-box;
    text-align: center;
    font-family: sans-serif;
  }
  /* 英語のサブタイトル */
  .select-sub-eng {
    display: block;
    font-size: 14px;
    font-weight: bold;
    color: #a4947d; /* 既存ボックスのゴールド・ブラウン */
    letter-spacing: 0.15em;
    margin-bottom: 4px;
  }
  /* 日本語の補足テキスト */
  .select-sub-txt {
    font-size: 14px;
    color: #666666;
    margin: 0 0 10px 0;
    font-weight: 500;
  }
  /* メインの見出し */
  .select-main-ttl {
    font-size: 20px; /* スマホ向けのサイズ */
    color: #333333;
    margin: 0 0 20px 0;
    padding: 0;
    font-weight: bold;
    letter-spacing: 0.05em;
  }
  /* 導入の文章 */
  .select-intro {
    font-size: 13.5px;
    color: #444444;
    line-height: 1.7;
    margin: 0 0 20px 0;
  }
  /* 「3種類」を目立たせるバッジ */
  .select-intro .count-badge {
    background: #5a6e5f;
    color: #ffffff;
    padding: 2px 10px;
    border-radius: 20px;
    font-weight: bold;
    font-size: 12px;
    margin: 0 4px;
    display: inline-block;
  }
  /* 電話問い合わせの注意文 */
  .alert-phone-txt {
    display: block;
    font-size: 14px;
    color: #555555;
    margin-top: 8px;
  }
  .alert-phone-txt .emoji {
    width: 1.1em;
    height: 1.1em;
    vertical-align: -0.15em;
    margin-right: 2px;
  }
  /* スムーズなご案内のための事前準備ボックス */
  .smooth-guide-box {
    background: #ffffff;
    border: 1px dashed #d1c9be; /* サイト標準のドット・ダッシュ線 */
    border-radius: 8px;
    padding: 15px;
    margin: 0 auto;
    max-width: 480px;
  }
  /* ボックスの上の「＼ 伝えるとスムーズ ／」 */
  .guide-caption {
    font-size: 14px;
    font-weight: bold;
    color: #a4947d;
    margin-bottom: 10px;
    letter-spacing: 0.05em;
  }
  /* チェックポイントのリスト（スマホ：縦並び・左寄せ） */
  .guide-points {
    list-style: none;
    padding: 0;
    margin: 0;
    display: inline-block;
    text-align: left;
  }
  .guide-points li {
    font-size: 13.5px;
    font-weight: bold;
    color: #333333;
    display: flex;
    align-items: center;
    margin-bottom: 8px;
  }
  .guide-points li:last-child {
    margin-bottom: 0;
  }
  /* チェックマークのデザイン */
  .guide-points .check-icon {
    color: #5a6e5f;
    margin-right: 6px;
    font-weight: 900;
  }
  /* ==========================================================================
     3つの予約ボックス配置用（基本：スマホ向け縦並び）
     ========================================================================== */
  .reserve-cards-group {
    display: flex;
    flex-direction: column; /* スマホは縦に積み重ねる */
    gap: 20px; /* ボックス間の余白 */
    width: calc(100% - 2rem);
    margin: 1rem auto;
  }
  /* 既存の共通ボックスのスマホ幅を100%に固定 */
  .reserve-cards-group .sidebar-reserve-box-v2 {
    width: 100%;
    box-sizing: border-box;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  /* --------------------------------------------------------------------------
     電話・LINE 独自の配色カスタム（既存のWEBデザインをベースに色違いを作成）
     -------------------------------------------------------------------------- */
  /* ①WEB予約 */
  .method-web.sidebar-reserve-box-v2 {
    border: 10px double #a4947d; /* 枠線を既存のアクセントカラーに */
  }
  /* ② 電話予約ボックス（ゴールドブラウン系に微調整する場合） */
  .method-tel.sidebar-reserve-box-v2 {
    border: 10px double #7d8ab4; /* 枠線を既存のアクセントカラーに */
  }
  .method-tel .reserve-sub-eng {
    color: #7d8ab4;
  }
  .method-tel .reserve-btn {
    background: #7d8ab4; /* ボタンをゴールドブラウンに */
  }
  .reserve-cards-group .method-tel .step-num {
    background-color: #7d8ab4;
  }
  /* ③ LINE予約ボックス（公式LINEグリーンに調整する場合） */
  .method-line.sidebar-reserve-box-v2 {
    border: 10px double #06c755; /* 枠線をLINEグリーンに */
  }
  .method-line .reserve-sub-eng {
    color: #06c755;
  }
  .method-line .reserve-btn {
    background: #06c755; /* ボタンをLINEグリーンに */
  }
  .reserve-cards-group .method-line .step-num {
    background-color: #06c755;
  }
  .reserve-cards-group .reserve-flow-section {
    margin: 1rem 0;
  }
  /* --- フォーム入力欄レイアウト --- */
  .step .reserve .reserve-form,
  .step .webreserve .reserve-form {
    width: 100%;
    margin: 1rem auto;
    padding: 0;
  }
  .step .reserve .reserve-form label,
  .step .webreserve .reserve-form label,
  .step .webreserve .reserve-form .wpcf7-date {
    width: 100%;
    margin: 0 0 1rem 0;
  }
  .step .webreserve .reserve-form label .wpcf7-form-control-wrap,
  .step .webreserve .reserve-form label .wpcf7-textarea {
    position: relative;
    display: inline-block;
    width: 100%;
  }
  .step .webreserve .reserve-form p .wpcf7-form-control-wrap select {
    width: 6rem;
    padding: 0.2rem;
    background-color: #fff;
    text-align: center;
  }
  /* --- フォーム個別部品（コース選択・バリデーション） --- */
  .step .webreserve .reserve-form .select_course {
    margin: 2rem 0;
  }
  .step .webreserve .reserve-form .select_course p label {
    margin: 0;
  }
  .step .webreserve .reserve-form .select_course p .wpcf7-form-control-wrap select {
    width: 14rem;
    background-color: #fff;
    text-align: center;
  }
  .step .reserve .reserve-form label .wpcf7-form-control-wrap input {
    width: 100%;
  }
  .step .reserve .reserve-form p,
  .step .reserve .reserve-form span {
    display: flex;
    color: #ffffff;
  }
  /* ==========================================================================
     予約確認ページ (page-reserve-confirm.php)
     ========================================================================== */
  .webreserve .reserve .reserve-form {
    margin: 2rem 0;
    padding: 1rem;
    border: 1px solid #ddd;
  }
  .webreserve .reserve .reserve-form p {
    margin: 1rem 0;
  }
  .reservethank {
    padding: 1rem 0;
  }
  /* ==========================================================================
     エリア情報 (map.php)
     ========================================================================== */
  .step .map_text {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    padding: 0;
    text-align: left;
    flex-basis: 100%;
  }
  .step .map_text p {
    width: 100%;
    flex-basis: 100%;
  }
  .step img.step_svg {
    width: 200px;
    height: auto;
    margin: 0 auto 0 0;
    flex-basis: 20%;
  }
  .step .map_svg {
    display: none;
  }
  /* ==========================================================================
     新着情報一覧 (page-news.php)
     ========================================================================== */
  .top_main .shopinfo .newspage_list_wrap {
    position: relative;
    padding: 0.4rem; /* 後から書かれた0.4remを優先・統合 */
    color: #3d0000;
    background-color: #fff;
  }
  .newspage_list_wrap p {
    padding: 0;
  }
  /* --- リストコンテナ --- */
  .top_main .shopinfo .newspage_list_wrap ul {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    padding: 0.6rem;
    border-radius: 0.4rem;
    background-color: rgb(240, 240, 240);
    box-shadow: 1px 1px 2px #000 inset;
  }
  .newspage_list_wrap ul li {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    width: 100%;
    height: auto;
    margin: 1rem 0 0 0;
    padding: 0.8rem;
    border-radius: 0.4rem;
    background-color: #fff;
    flex-basis: 100%;
  }
  .newspage_list_wrap ul li:nth-child(2) {
    border-right: none;
    border-left: none;
  }
  .newspage_list_wrap ul li:nth-child(even) .text p {
    width: 100%;
    word-wrap: normal;
    overflow-wrap: normal;
    word-break: break-all;
    text-align: left;
  }
  /* --- サムネイル・テキストエリア --- */
  .newspage_list_wrap ul li .thum {
    display: initial;
    justify-content: start;
    padding: 1rem 0 0 0;
    flex-basis: 15%;
  }
  .newspage_list_wrap ul li .thum img {
    width: 100%;
    height: auto;
  }
  .newspage_list_wrap ul li .text {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    width: 100%;
    padding: 0;
    font-size: 1rem;
    flex-basis: 100%;
  }
  .newspage_list_wrap ul li .single_title {
    padding: 0.4rem;
    border: 1px solid #3d0000;
    border-width: 1px 0;
    color: #3d0000;
    font-size: 1rem;
    flex-basis: 100%;
  }
  /* --- 本文・日付・ボタン --- */
  .newspage_list_wrap ul li .text .single_text {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 1rem 0 3rem 1rem;
    font-size: 1rem;
    line-height: 1.6rem;
    flex-basis: 85%;
  }
  .newspage_list_wrap ul li .text .single_text p {
    overflow-wrap: anywhere;
    padding-bottom: 1rem;
  }
  .newspage_list_wrap ul li .text .single_text a {
    position: absolute;
    right: 0;
    bottom: 0;
    padding: 0.4rem 0.8rem;
    border: 2px double #884444;
    border-radius: 0.4rem;
    color: #884444;
    font-size: 1rem;
  }
  .newspage_list_wrap ul li .text .single_text_date {
    position: relative;
    width: 100%;
    margin: 0;
    font-size: 14px;
    flex-basis: 100%;
  }
  .newspage_list_wrap ul li .text .single_text_date p {
    padding-top: 0;
  }
  /* ==========================================================================
     新着情報詳細記事 (single.php)
     ========================================================================== */
  .news_single_wrap {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    margin: 0 0 1rem 0;
    padding: 5rem 1rem 4rem 1rem;
    background-color: #fff;
    color: #3d0000;
  }
  .news_single_wrap .title {
    margin: 1rem 0;
    border-bottom: 1px solid #393939;
    flex-basis: 100%;
  }
  .news_single_wrap .title h3.single_title {
    margin: 1rem 0 0.4rem 1rem;
    font-size: 1rem;
  }
  .news_single_wrap .thum {
    width: 100%;
    flex-basis: 100%;
  }
  .news_single_wrap .thum img {
    width: 100%;
    padding: 0 1rem;
  }
  .news_single_wrap .text {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    margin: 1rem;
    padding-bottom: 2rem;
    border-bottom: #3d0000 1px solid;
    flex-basis: 100%;
  }
  .news_single_wrap a.btn_common {
    position: relative;
    margin: 0 0 0 auto;
  }
  /* ==========================================================================
     シフト入力画面 / 管理画面 (admin_scheduler.php)
     ========================================================================== */
  /* --- 管理画面全体コンテナ --- */
  #management_wrap {
    width: 100%;
    margin: 0;
    padding: 0;
    overflow-x: auto;
    color: #3c434a;
  }
  /* --- ページナビゲーション --- */
  #management_wrap #list_pagenavi {
    display: flex;
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    background-color: #ffffff;
    font-size: 1rem;
    letter-spacing: 0.4rem;
  }
  #management_wrap #list_pagenavi div {
    width: 10%;
    margin: 0;
  }
  #management_wrap #list_pagenavi #list_datenavi {
    width: 80%;
  }
  .list_pagenavi .next_page .back_today {
    font-size: 1rem;
  }
  /* --- ホバーエフェクト --- */
  a:hover {
    opacity: 0.7;
    text-decoration: underline;
  }
  input:hover {
    opacity: 0.7;
  }
  /* --- スケジュールテーブル全体枠設定 --- */
  #attmgr_admin_scheduler {
    overflow-y: auto;
    max-height: 80vh; /* 縦幅の最大値を指定 */
  }
  #management_wrap form#attmgr_admin_scheduler table.attmgr_admin_scheduler {
    border: 1.2px solid #444444;
    z-index: 10;
    position: sticky;
    top: 0;
  }
  #management_wrap #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr:first-child {
    z-index: 10;
    position: sticky;
    top: 0;
  }
  #management_wrap #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr th {
    border: 1.2px solid #dddddd;
    border-bottom: #3c434a 2px double;
  }
  /* --- テーブル見出しセル (平日・共通) --- */
  table.attmgr_weekly_all tbody tr th,
  table.attmgr_admin_scheduler tbody tr th,
  #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr th.monday,
  #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr th.tuesday,
  #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr th.wednesday,
  #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr th.thursday,
  #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr th.friday,
  table.attmgr_weekly_all tbody tr th.monday,
  table.attmgr_weekly_all tbody tr th.tuesday,
  table.attmgr_weekly_all tbody tr th.wednesday,
  table.attmgr_weekly_all tbody tr th.thursday,
  table.attmgr_weekly_all tbody tr th.friday {
    padding: 1rem;
    border: 1.2px solid #96745a;
    background-color: #96745a;
    color: #ffffff;
  }
  /* --- テーブル見出しセル (土曜日) --- */
  #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr th.saturday,
  table.attmgr_weekly_all tbody tr th.saturday {
    padding: 1rem;
    border: 1.2px solid #3c434a;
    background-color: #444488;
    color: #ffffff;
  }
  /* --- テーブル見出しセル (日曜日) --- */
  #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr th.sunday,
  table.attmgr_weekly_all tbody tr th.sunday {
    padding: 1rem;
    border: 1.2px solid #3c434a;
    background-color: #884444;
    color: #ffffff;
  }
  /* --- テーブルデータセルレイアウト --- */
  #management_wrap #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr td,
  table.attmgr_weekly_all td.portrait,
  table.attmgr_weekly_all th,
  table.attmgr_weekly_all tbody tr td,
  table.attmgr_weekly_all tbody tr th {
    padding: 1rem 0 0 0;
    border: 1.2px solid #3c434a;
  }
  /* --- 行の背景色 (ストライプ設定) --- */
  #management_wrap #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr,
  table.attmgr_weekly_all tbody tr {
    background-color: #f8f8f8;
  }
  table.attmgr_weekly_all tbody tr:first-child th {
    width: 12.4rem;
  }
  #management_wrap #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr:nth-of-type(2n),
  table.attmgr_weekly_all tbody tr:nth-of-type(2n) {
    background-color: #ffffff;
  }
  /* --- 入力要素・コントロール (セレクト・ラベル) --- */
  #management_wrap #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr td label {
    display: block;
    width: 100%;
    margin: 0.4rem 0 0 0;
  }
  #management_wrap #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr td select {
    width: 45%;
    margin: 0;
    border-radius: 0;
    background-color: #ffffff;
  }
  /* --- 管理フォームボタン類 --- */
  form#attmgr_admin_scheduler input {
    margin: 1rem auto;
    padding: 0.4rem 2rem;
    background-color: #2271b1;
    color: #ffffff;
    font-size: 1rem;
  }
  form#attmgr_admin_scheduler td label input {
    margin: 1rem 0.4rem;
  }
  .workcheck {
    margin: 5rem 0 0 3rem;
  }
  #management_wrap .btn_common {
    display: block;
    width: 10rem;
    margin: 1rem 1rem 1rem auto;
    padding: 0.5rem 1rem;
    background-color: #2271b1;
    color: #ffffff;
    text-align: center;
  }
  /* --- 管理画面用非表示コントロール --- */
  #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr td.portrait img,
  #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr td.portrait br,
  #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr td br {
    display: none;
  }
  .cout_wrap {
    width: calc(100% - 2rem);
    margin: 0 auto;
    color: #fff;
  }
  .cout_wrap .couponinfo {
    color: #fff;
  }
}
@media screen and (min-width: 768px) {
  .spv, .top_wel, .top_favorite, .top_info, .main_cont, .cout_wrap {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
  }
  /* --- Header --- */
  .header_tell {
    display: block;
    position: absolute;
    top: 1rem;
    right: 1.2rem;
    background-color: #fff;
    color: #666;
    border-radius: 0.4rem;
    height: 2.4rem;
    width: 240px;
    font-size: 1.4rem;
    font-weight: 600;
    text-align: center;
    box-shadow: 1px 1px 2px #333;
  }
  header .main_title h1 {
    padding: 0 240px 0 0;
  }
  #header-menu {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    justify-content: center;
  }
  #header-menu li {
    flex-basis: 160px;
    margin: 30px;
  }
  #header-menu li.hamburger_top_li {
    flex-basis: 300px;
    margin: 25px 0;
  }
  /* --- Front-page / General --- */
  .aioseo-breadcrumbs {
    padding: 1rem;
    font-size: 1rem;
    max-width: 760px;
    margin: 5rem auto 1rem auto;
  }
  .top_main {
    max-width: 760px;
    margin: 0 auto;
  }
  .spv, .top_wel, .top_info, .top_main {
    max-width: 760px;
    margin: 0 auto;
  }
  h1.top_wel {
    margin: 1rem auto;
  }
  .today_attend {
    margin: 2rem auto;
    width: 100%;
  }
  /* --- Therapist / Cast --- */
  .top_main .shopinfo .therapist_wrap .staff_block li {
    flex-basis: calc(50% - 1rem);
  }
  .therapist_wrap .topcast_ul {
    justify-content: space-between;
  }
  .therapist_wrap .topcast_ul li {
    flex-basis: calc(25% - 0.6rem);
  }
  .therapist_wrap .topcast_ul li:nth-child(2n) {
    margin: 0.2rem 0;
  }
  .therapist_wrap .cast_li .top_thera_title_eria {
    order: 0;
  }
  .page_therapist_wrap ul .cast_li .top_thera_photo_eria {
    order: 1;
  }
  .therapist_wrap .cast_li .top_thera_text_eria {
    flex-basis: 100%;
    order: 3;
  }
  .cast_li .top_thera_text_eria .sp {
    display: none;
  }
  .cast_li .top_thera_text_eria .pc {
    display: initial;
  }
  /* --- Work Info --- */
  .workinfo .today_attend ul.staff_block li {
    flex-basis: calc(50% - 1rem);
  }
  /* --- System Info Recommendation --- */
  .system_info_reco ul li .thum {
    padding: 1rem;
    flex-basis: 12rem;
  }
  .system_info_reco ul li h4 {
    height: 3rem;
    flex-basis: calc(100% - 12rem);
    flex-wrap: wrap;
  }
  .system_info_reco ul li h4 .coupon_unit {
    text-align: right;
    flex-basis: 50%;
  }
  .system_info_reco ul li h4 .coupon_unit:last-child {
    margin: 0;
    text-align: left;
  }
  .system_info_reco ul li .single_text {
    margin: -7rem 0 0 12rem;
    flex-basis: calc(100% - 12rem);
  }
  .system_info_reco ul li .couponinfo {
    margin: 0 0 0 auto;
  }
  /* --- Step --- */
  .step img.step_svg {
    width: 100%;
    height: 20%;
    margin: 0 auto 0 0;
    flex-basis: 20%;
  }
  .step .text {
    width: 100%;
    padding: 0;
    text-align: left;
    flex-basis: 80%;
    order: 1;
  }
  /* --- News Single --- */
  .news_single_wrap {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    padding: 4rem 1rem 2rem 1rem;
    margin: 0 0 1rem 0;
    background-color: #fff;
    color: #3d0000;
  }
  .news_single_wrap .thum {
    flex-basis: 30%;
  }
  .news_single_wrap .text {
    margin: 1rem 0;
    flex-basis: 70%;
  }
  .news_single_wrap .info_box {
    margin: 5rem 0 0 0;
  }
  .news_single_wrap .info_box .btn_common {
    margin: 0 0 0 auto;
  }
  .news_wrap ul li .text {
    flex-basis: calc(100% - 200px);
  }
  .news_wrap ul li .thum {
    padding: 0;
    flex-basis: 80px;
    height: 80px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
  }
  .news_wrap ul li .thum img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
  .news_wrap ul li {
    justify-content: space-around;
  }
  /* ==========================================================================
     料金表 (price.php)
     ========================================================================== */
  .price-card-container {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .price-card {
    width: calc(50% - 12px);
  }
  /* ==========================================================================
     在籍ページ (single-staff.php)
     ========================================================================== */
  /* --- レイアウト・共通エリア --- */
  .top_main .shopinfo .therapist_wrap {
    display: flex;
    flex-wrap: wrap;
    padding: 1rem 20px;
  }
  .shopinfo h1.castname {
    font-size: 1.8rem;
    height: 4rem;
  }
  /* --- モーダル --- */
  .modal .modal__content {
    width: 50%;
    margin: 0 auto;
  }
  .zoom_icon {
    top: 0.4rem;
    right: 0.4rem;
  }
  /* --- キャストリスト・要素 --- */
  .single_cast_li {
    flex-basis: 450px;
  }
  .single_cast_li.modal_li {
    flex-basis: 220px;
  }
  .single_cast_li.sced {
    width: 100%;
    flex-basis: 720px;
  }
  .single_cast_li.videomovie {
    padding: 0 0 0 20px;
    flex-basis: 220px;
  }
  .blog.single_cast_li {
    padding: 1rem;
    flex-basis: 720px;
    max-width: 680px;
  }
  /* --- キャスト内のコンテンツ --- */
  .single_cast_li .content {
    display: flex;
    flex-wrap: wrap;
  }
  .single_cast_li .content a {
    margin: 0 0 0 auto;
    padding: 0;
    flex-basis: 190px;
  }
  .top_thera_text_eria_de {
    padding: 1rem;
  }
  .thera_q {
    flex-basis: 100%;
  }
  .therapist_wrap .single_cast_li .top_thera_scu_eria {
    order: initial;
    overflow-x: hidden;
    padding: 0;
    flex-basis: 100%;
  }
  /* --- スケジュール・テーブル --- */
  .single_cast_li .attmgr_weekly {
    width: 100%;
    min-width: 300px;
    white-space: wrap;
  }
  .single_cast_li .attmgr_weekly tr {
    width: 700px;
  }
  /* --- ボタン関連 --- */
  .btn_atend {
    flex-basis: 100%;
  }
  .btn_atend p {
    flex-basis: 10rem;
  }
  .btn_atend.reserve {
    padding: 0 200px;
    flex-basis: 720px;
  }
  .btn_atend.reserve p {
    flex-basis: 100%;
  }
  /* --- ブログリスト --- */
  ul.therapist-blog-list {
    margin: 0 auto !important;
  }
  ul.therapist-blog-list li.therapist-blog-item {
    width: 160px !important;
  }
  .side_bar .therapist-blog-section.all {
    width: 100%;
    margin: 1rem 0rem 2rem 0rem;
  }
  /* ==========================================================================
     お気に入り
     ========================================================================== */
  .top_favorite {
    max-width: 760px;
    margin: 1rem auto;
  }
  .top_favorite .inner-line {
    padding: 10px;
  }
  .top_favorite .favorite_thera {
    min-height: 120px;
  }
  .top_favorite .favorite_thera h2.list_thera_title {
    position: absolute;
    top: 80px;
  }
  .top_favorite .favorite_thera .top_thera_scu_eria {
    flex-basis: calc(100% - 130px);
    margin: 0 0 0 auto;
  }
  .favorite_thera .simplefavorite-button {
    top: 115px;
    left: 1rem;
    right: auto;
  }
  /* ==========================================================================
     写メ日記個人ページ (archive-therapist_blog.php)
     ========================================================================== */
  .archive-container {
    margin: 1rem auto 4rem auto;
    max-width: 760px;
  }
  .blog-card-full {
    display: flex;
    flex-wrap: wrap;
  }
  .blog-thumbnail {
    flex-basis: 240px;
  }
  .therapist-blog-single-view .blog-card-full .blog-dis {
    flex-basis: calc(100% - 240px);
    padding: 0 1rem;
  }
  /* ==========================================================================
     予約ページ (page-reserve.php)
     ========================================================================== */
  .reserve-cards-group .reserve-flow-section {
    margin: 2rem auto 0rem 20px;
    position: absolute;
    top: 10px;
    right: 10px;
    width: 350px;
  }
  .method-web.sidebar-reserve-box-v2, .method-tel.sidebar-reserve-box-v2, .method-line.sidebar-reserve-box-v2 {
    padding: 30px 380px 30px 10px;
    position: relative;
  }
  /* ==========================================================================
     ご利用の流れ (page-usageflow.php)
     ========================================================================== */
  /* 既存の共通ボックスのスマホ幅を100%に固定 */
  .page-id-201 .reserve-cards-group .sidebar-reserve-box-v2 .reserve-note, .page-id-201 .reserve-cards-group .sidebar-reserve-box-v2 .reserve-btn {
    position: absolute;
    left: 300px;
    top: 15px;
  }
  .page-id-201 .reserve-cards-group .sidebar-reserve-box-v2 .reserve-btn {
    left: 290px;
    top: 50px;
  }
  .promise-item.treatment .promise-txt {
    text-align: left;
    margin: 1.2rem 0;
    font-size: 14px;
  }
  /* 口コミ関連 */
  .review_wrap {
    width: 720px;
    max-width: 720px;
  }
}
@media screen and (min-width: 1080px) {
  header .main_title h1 {
    flex-basis: 1280px;
    margin: 0 calc(50% - 512px) 0 calc(50% - 512px);
  }
  .hamburger {
    left: calc(50% - 512px + 2rem);
  }
  #header-menu.open {
    height: 400px !important;
  }
  #header-menu > li > .home_top_li {
    margin: 2rem auto;
    font-size: 1.6rem;
  }
  .header_tell {
    right: calc(50% - 512px + 2rem);
  }
  .aioseo-breadcrumbs, h1.top_wel, .top_info {
    max-width: 1024px;
    width: 90%;
  }
  .top_info_flexbox_second .conte {
    flex-basis: calc(25% - 0.5rem);
  }
  /* ==========================================================================
     1280px以上のPCサイズ向けスライダー設定
     ========================================================================== */
  .spv {
    max-width: 100%;
  }
  /* スライダー全体の領域（上下のハミ出し対策と余白） */
  .swiper {
    padding-top: 60px;
    padding-bottom: 80px;
    overflow: visible !important; /* 画面の左右いっぱいにスライドを見せる */
  }
  /* 1. 通常のスライド（左右に隠れる側） */
  .swiper-slide {
    transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.8s ease;
    opacity: 0.35; /* 左右のスライドをかなり薄くして、中央を引き立てる */
    filter: blur(2px); /* 【おしゃれ演出】左右のスライドを少し「ぼかす」 */
    pointer-events: none; /* 左右のスライドは誤クリックを防ぐ */
  }
  /* 2. 中央のアクティブなスライド */
  .swiper-slide-active {
    opacity: 1 !important;
    filter: blur(0px) !important; /* ぼかしを消してくっきり */
    z-index: 10;
    pointer-events: auto; /* 中央だけクリック可能に */
  }
  /* 3. 各スライドの中身（画像やカード）のデザイン */
  .swiper-slide > * {
    background: #ffffff;
    border-radius: 20px; /* 少し大きめの角丸でトレンド感を出す */
    overflow: hidden;
    /* 【超重要】今っぽい、柔らかくて洗練された高級感のある影（シャドウ） */
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.02);
    transition: box-shadow 0.5s ease;
  }
  /* 中央にきたときだけ、さらに影を深くして立体感を強調 */
  .swiper-slide-active > * {
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.12), 0 1px 5px rgba(0, 0, 0, 0.03);
  }
  /* 画像がある場合の調整 */
  .swiper-slide img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    display: block;
  }
  .top_main .shopinfo .therapist_wrap .staff_block li {
    flex-basis: calc(33% - 1rem);
  }
  .topcast_li .top_thera_photo_eria {
    height: 240px;
  }
  .news_wrap ul {
    justify-content: space-between;
  }
  .page-id-26 .news_wrap ul li .text a {
    bottom: 0rem;
  }
  .page-id-26 .news_wrap ul li .text {
    padding: 0;
    flex-basis: 100%;
    align-content: flex-start;
  }
  .page-id-26 .news_wrap ul li {
    height: 180px;
  }
  .news_wrap ul li {
    flex-basis: calc(50% - 2rem);
    height: 290px;
    position: relative;
    padding: 1rem;
    border-radius: 0.4rem;
    box-shadow: 1px 1px 2px #333;
    margin: 1rem;
  }
  .news_wrap ul li .thum {
    padding: 0;
    position: absolute;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    left: 10px;
    top: 16px;
  }
  .news_wrap ul li .thum img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    border-radius: 50%;
  }
  .news_wrap ul li .text {
    padding: 0;
    flex-basis: 100%;
  }
  .news_wrap ul li .text .single_title {
    height: 3rem;
    margin: 0 0 0 90px;
  }
  .news_wrap ul li .text .single_date {
    font-size: 14px;
    margin: 0 0 0 90px;
    height: 1.4rem;
  }
  .news_wrap ul li .text .single_text {
    height: 140px;
    margin: 40px 0 0 0;
  }
  .news_wrap ul li .text .single_text p {
    display: inline-block;
  }
  .news_wrap ul li .text a {
    position: absolute;
    bottom: 1rem;
    right: 1rem;
    top: auto;
  }
  .modal {
    width: 60%;
    left: 20%;
  }
  .workinfo .today_attend ul.staff_block li {
    flex-basis: calc(33% - 1rem);
  }
  .page_therapist_wrap ul .cast_li .top_thera_photo_eria {
    flex-basis: 25%;
  }
  .therapist_wrap .cast_li .top_thera_text_eria {
    order: 2;
    flex-basis: 75%;
    padding: 1rem;
  }
  .top_thera_scu_eria {
    order: 3;
    flex-basis: 100%;
    padding: 1rem;
  }
  table.attmgr_weekly {
    width: 100%;
    writing-mode: horizontal-tb;
  }
  .system_reco .step, .system_reco .system_info {
    flex-basis: 50%;
  }
  .system_reco .step {
    flex-basis: 50%;
    margin: 4rem 0;
    align-content: flex-start;
    height: 30rem;
  }
  .step .reserve p {
    margin: 1rem 0;
    flex-basis: 100%;
  }
  /* サイドバー */
  .main_cont {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-evenly;
    max-width: 1280px;
    margin: 0 auto;
  }
  .side_bar {
    display: block;
    max-width: 304px;
    flex-basis: 304px;
    margin: 0 auto;
  }
  .top_main {
    flex-basis: 720px;
    max-width: 720px;
    margin: 0 0 0 auto;
  }
  /* ==========================================================================
     お気に入り
     ========================================================================== */
  .top_favorite {
    display: none;
  }
  .favolite_wrap.sidebar .favorite_thera .simplefavorite-button {
    top: 1rem;
    left: auto;
    right: 1rem;
  }
  /* ==========================================================================
     本日の出勤情報
     ========================================================================== */
  /* 全体コンテナ */
  .top_main .today_attend {
    display: none;
  }
  .top_main .workinfo .today_attend {
    display: block;
  }
  .side_bar .today_attend {
    max-width: 304px;
    margin: 2em auto;
    padding: 0;
  }
  /* スタッフ一覧の親要素（グリッドレイアウトを採用） */
  .side_bar .today_attend ul.staff_block {
    padding: 1rem;
  }
  /* 各スタッフのカード */
  .side_bar .today_attend ul.staff_block li {
    flex-wrap: nowrap;
    width: 100%;
    padding: 10px;
  }
  /* 出勤時間（attendance） */
  .side_bar .today_attend ul.staff_block li .attendance {
    width: calc(100% - 8px);
  }
  /* ==========================================================================
     写メ日記関連
     ========================================================================== */
  .top_main .therapist-blog-section.all, .post-type-archive .side_bar .therapist-blog-section.all {
    display: none;
  }
  /* ==========================================================================
     WEB予約関連
     ========================================================================== */
  .side_bar.sidebar-reserve-box-v2 {
    width: 304px;
  }
  .sidebar-reserve-box-v2 {
    box-sizing: border-box;
    background-color: #ffffff;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    padding: 30px 15px; /* 横幅300pxに合わせて余白を少しタイトに */
    display: flex;
    flex-direction: column;
    align-items: center;
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", sans-serif;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
  }
  .reserve-sub-eng {
    font-size: 14px;
    letter-spacing: 0.2em;
    color: #a89476;
    margin-bottom: 6px;
    font-weight: bold;
  }
  .reserve-sub-txt {
    font-size: 14px;
    color: #666666;
    margin: 0 0 4px 0;
  }
  .reserve-main-ttl {
    font-size: 20px;
    font-weight: 700;
    color: #222222;
    margin: 0 0 20px 0;
    letter-spacing: 0.05em;
  }
  .reserve-btn {
    display: inline-block;
    width: 100%;
    max-width: 250px;
    background: linear-gradient(135deg, #c5a880 0%, #b39369 100%);
    color: #ffffff !important;
    text-decoration: none !important;
    font-size: 16px;
    font-weight: bold;
    padding: 14px 0;
    border-radius: 50px;
    text-align: center;
    box-shadow: 0 4px 12px rgba(197, 168, 128, 0.4);
    transition: all 0.3s ease;
  }
  .reserve-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(197, 168, 128, 0.6);
    opacity: 0.95;
  }
  .reserve-note {
    font-size: 14px;
    color: #888888;
    margin: 12px 0 0 0;
    letter-spacing: 0.05em;
  }
  /* 区切り線 */
  .reserve-divider {
    width: 100%;
    border: 0;
    border-top: 1px dotted #dddddd;
    margin: 25px 0;
  }
  /* ステップ案内エリア */
  .reserve-flow-section {
    width: 100%;
    text-align: left;
    margin-bottom: 20px;
  }
  .section-title {
    font-size: 14px;
    font-weight: bold;
    color: #333333;
    margin: 0 0 12px 0;
    border-bottom: 2px solid #a89476;
    padding-bottom: 5px;
  }
  .flow-list {
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .flow-list li {
    font-size: 14px;
    line-height: 1.6;
    color: #444444;
    margin-bottom: 12px;
    position: relative;
    padding-left: 28px;
  }
  .flow-list li strong {
    color: #b39369;
  }
  .step-num {
    position: absolute;
    left: 0;
    top: 2px;
    width: 18px;
    height: 18px;
    background-color: #a89476;
    color: #ffffff;
    font-size: 14px;
    font-weight: bold;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  /* 注意事項エリア */
  .reserve-alert-section {
    width: 100%;
    background-color: #fff5f5; /* 警告を促す薄いピンク・赤系背景 */
    border: 1px solid #f8d7da;
    border-radius: 6px;
    padding: 12px;
    box-sizing: border-box;
    text-align: left;
  }
  .alert-title {
    font-size: 14px;
    font-weight: bold;
    color: #dc3545; /* 警告の赤 */
    margin: 0 0 6px 0;
  }
  .alert-text {
    font-size: 14px;
    line-height: 1.5;
    color: #555555;
    margin: 0;
  }
  .alert-text strong {
    color: #dc3545;
  }
  .tel-link {
    color: #dc3545;
    font-weight: bold;
    text-decoration: underline;
  }
  /* ==========================================================================
     予約ページ (page-reserve.php)
     ========================================================================== */
  .reserve-cards-group .reserve-main-ttl {
    margin: 0;
  }
  .reserve-cards-group .reserve-note {
    margin: 12px 0;
  }
  .reserve-cards-group .reserve-flow-section {
    margin: 2rem auto 0rem 20px;
    position: absolute;
    top: 10px;
    right: 10px;
    width: 350px;
  }
  .method-web.sidebar-reserve-box-v2, .method-tel.sidebar-reserve-box-v2, .method-line.sidebar-reserve-box-v2 {
    padding: 30px 380px 30px 10px;
    position: relative;
  }
  /* ==========================================================================
    クーポン
     ========================================================================== */
  .topcoupon_wrap.sidebar {
    width: 304px;
    max-width: 100%;
    margin: 2rem 0;
  }
  .topcoupon_wrap.sidebar .coupon-container {
    width: 100%;
  }
  .topcoupon_wrap.sidebar .coupon-list {
    grid-template-columns: 1fr; /* 横幅を強制的に1列（300px）にする */
    gap: 0;
  }
  .topcoupon_wrap.sidebar .coupon-card {
    border-width: 1px; /* 300px幅に合わせて枠線をスマートに */
    border-color: #eeebe5;
    background-color: #ffffff; /* 白基調のサイドバーに馴染ませる */
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
  }
  .topcoupon_wrap.sidebar .coupon-card-body {
    padding: 20px 15px 15px; /* 内側の余白をタイトに */
  }
  .topcoupon_wrap.sidebar .coupon-title {
    font-size: 15px; /* タイトルが300px幅で綺麗に収まるようフォントサイズを縮小 */
    margin-bottom: 12px;
  }
  .topcoupon_wrap.sidebar .coupon-price-box {
    padding: 10px;
  }
  .topcoupon_wrap.sidebar .price-value {
    font-size: 18px; /* 金額表示をサイドバー用に最適化 */
  }
  /* 切り取り線の左右のくり抜き背景色をサイドバーの周囲に馴染ませる */
  .topcoupon_wrap.sidebar .coupon-card::before,
  .topcoupon_wrap.sidebar .coupon-card::after {
    background: #ffffff; /* サイト全体のベース背景色が白なら#ffffff、グレーならその色に合わせてください */
    border-color: #eeebe5;
    bottom: 30px;
  }
  .topcoupon_wrap.sidebar .couponinfo {
    font-size: 14px;
    margin: 0 0 12px 10px;
  }
  /* ==========================================================================
     初めてご利用のお客様へ
     ========================================================================== */
  .reserve-first-time-section {
    width: 100%;
    text-align: left;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .intro-text {
    font-size: 14px;
    line-height: 1.6;
    color: #555555;
    margin: 0 0 15px 0;
    width: 100%;
  }
  .intro-text strong {
    color: #b39369;
  }
  /* 3つのお約束 */
  .promise-container {
    width: 100%;
    margin-bottom: 20px;
  }
  .promise-item {
    background-color: #fcfbfa; /* ニュアンスホワイト */
    border: 1px solid #f0ede8;
    border-radius: 6px;
    padding: 12px;
    margin-bottom: 10px;
  }
  .promise-item:last-child {
    margin-bottom: 0;
  }
  .promise-ttl {
    font-size: 14px;
    font-weight: bold;
    color: #333333;
    margin: 0 0 6px 0;
    display: flex;
    align-items: center;
  }
  .promise-num {
    background-color: #a89476;
    color: #ffffff;
    font-size: 14px;
    font-weight: bold;
    width: 18px;
    height: 18px;
    border-radius: 3px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 8px;
  }
  .promise-txt {
    font-size: 14px;
    line-height: 1.6;
    color: #666666;
    margin: 0;
  }
  /* よくある質問ボタン */
  .faq-link-btn {
    display: inline-block;
    width: 100%;
    max-width: 250px;
    background-color: #ffffff;
    border: 1px solid #a89476;
    color: #a89476 !important;
    text-decoration: none !important;
    font-size: 14px;
    font-weight: bold;
    padding: 10px 0;
    border-radius: 50px;
    text-align: center;
    transition: all 0.3s ease;
    margin-top: 5px;
  }
  .faq-link-btn:hover {
    background-color: #a89476;
    color: #ffffff !important;
    box-shadow: 0 4px 12px rgba(197, 168, 128, 0.2);
  }
  /* シフト入力画面 */
  h1 {
    font-size: 1.2rem;
  }
  h2 {
    font-size: 1rem;
  }
  h3 {
    font-size: 1rem;
  }
  #management_wrap {
    width: 100%;
    overflow-x: hidden;
    margin: 0;
    padding: 1rem;
    color: #3c434a;
  }
  li {
    list-style: none;
  }
  .list_pagenavi .list_datenavi a:visited {
    color: #3c434a;
    font-size: 3rem;
    margin: auto 3rem;
  }
  .list_pagenavi .list_datenavi a:link {
    text-decoration: none;
    color: #3c434a;
    font-size: 3rem;
    margin: auto 3rem;
  }
  a:hover {
    opacity: 0.7;
    text-decoration: underline;
  }
  input:hover {
    opacity: 0.7;
  }
  #management_wrap #list_pagenavi {
    height: auto;
    padding: 1rem;
    font-size: 1.8rem;
    letter-spacing: 0.4rem;
    display: flex;
    background-color: #ffffff;
    margin: 1rem auto;
  }
  #management_wrap #list_pagenavi div {
    margin: 0 2rem;
  }
  #management_wrap form#attmgr_admin_scheduler table.attmgr_admin_scheduler {
    border: 1.2px solid #444444;
  }
  #management_wrap #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr th {
    border: 1.2px solid #dddddd !important;
    border-bottom: #3c434a 2px double !important;
  }
  table.attmgr_weekly_all tbody tr th,
  table.attmgr_admin_scheduler tbody tr th, #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr th.monday, #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr th.tuesday, #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr th.wednesday, #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr th.thursday, #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr th.friday, table.attmgr_weekly_all tbody tr th.monday, table.attmgr_weekly_all tbody tr th.tuesday, table.attmgr_weekly_all tbody tr th.wednesday, table.attmgr_weekly_all tbody tr th.thursday, table.attmgr_weekly_all tbody tr th.friday {
    background-color: #3c434a;
    color: #ffffff;
    padding: 1rem;
  }
  #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr th.saturday, table.attmgr_weekly_all tbody tr th.saturday {
    background-color: #444488;
    color: #ffffff;
    padding: 1rem;
    border: 1.2px solid #3c434a !important;
  }
  #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr th.sunday, table.attmgr_weekly_all tbody tr th.sunday {
    background-color: #884444;
    color: #ffffff;
    padding: 1rem;
    border: 1.2px solid #3c434a !important;
  }
  /* #management_wrap #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr td,table.attmgr_weekly_all td.portrait,table.attmgr_weekly_all th, table.attmgr_weekly_all tbody tr td,table.attmgr_weekly_all tbody tr th{

      padding: 1rem 0 0 0;  
  } */
  #management_wrap #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr, table.attmgr_weekly_all tbody tr {
    background-color: #f8f8f8;
  }
  table.attmgr_weekly_all tbody tr:first-child th {
    width: 12.4rem;
  }
  #management_wrap #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr:nth-of-type(2n), table.attmgr_weekly_all tbody tr:nth-of-type(2n) {
    background-color: #ffffff;
  }
  #management_wrap #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr td label {
    width: 100%;
    margin: 0.4rem 0 0 0;
  }
  #management_wrap #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr td select {
    width: 45%;
    margin: 0;
    border-radius: 0;
    background-color: #ffffff;
  }
  /* #attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr td.portrait img,#attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr td.portrait br,#attmgr_admin_scheduler table.attmgr_admin_scheduler tbody tr td br,table.attmgr_weekly_all td.portrait img{
     display: none;
  } */
  form#attmgr_admin_scheduler input {
    margin: 1rem auto;
    padding: 0.4rem 2rem;
    font-size: 1rem;
    background-color: #2271b1;
    color: #ffffff;
    z-index: 11;
    position: relative;
  }
  form#attmgr_admin_scheduler td label input {
    margin: 1rem 0.4rem;
  }
  .workcheck {
    margin: 5rem 0 0 3rem;
  }
  .list_pagenavi .next_page .back_today {
    font-size: 1rem;
  }
  #management_wrap .btn_common {
    margin: 1rem 1rem 1rem auto;
    background-color: #2271b1;
    padding: 0.5rem 1rem;
    color: #ffffff;
    width: 12rem;
    text-align: center;
  }
}/*# sourceMappingURL=style.css.map */