* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}
:root {
    --primary-color: #ff3f8c;
    --head_menu-color: #ff3f8c;
    --sub-color: #efefef;
    --accent-color: #4caf50;
    --grean-color: #008247;
    --text-color: #777;
    --error-color: red;
    --sub-color-2: #d9d9d9;
    --background-color: #f1efeb;
    --container-background-color: #fff;
    --border-color: #ddd;
    --link-color: #007bff;
    --font-family: "Noto Sans JP", sans-serif;
    --font-size-large: 16px;
    --font-weight-bold: bold;
    --font-size-normal: 14px;
    --font-size-title: 1.2rem;
    --font-size-error: 1rem;
    --font-size-small: 0.9rem;
    --font-size-tiny: 0.8rem;

    --space-xs: 0.25rem;
    /* 4px assuming the base font-size is 16px */
    --space-sm: 0.5rem;
    /* 8px */
    --space-md: 1rem;
    /* 16px */
    --space-lg: 1.5rem;
    /* 24px */
    --space-xl: 2rem;
    /* 32px */
    --space-2xl: 3rem;
    --space-3xl: 4rem;
    /* etc */
    --box-shadow: 0px 0px 10px -5px #777777;
    --border-radius: 0.5rem;
    --opacity-hover: 0.8;
}

.btn {
    color: #fff;
    display: inline-block;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-large);
    font-weight: var(--font-weight-bold);
    padding: var(--space-sm) var(--space-md);
    border-radius: var(--border-radius);
    background: var(--primary-color);
    border: none;
    box-shadow: var(--box-shadow);
    cursor: pointer;
    text-decoration: none;
}
.btn.premium {
    background: linear-gradient(45deg, #B67B03 0%, #DAAF08 45%, #c9a628 70%, #DAAF08 85%, #fad68c 90% 100%);
    color: #fff;
}
.bt {
    color: #fff;
    padding: var(--space-sm) 15px;
    border-radius: var(--border-radius);
    background: var(--primary-color);
    border: none;
    box-shadow: var(--box-shadow);
    cursor: pointer;
    text-decoration: none;
}
.bt.cancel {
    background: #ccc;
}

.small_bt {
    color: #fff;
    padding: 4px 15px;
    border-radius: var(--border-radius);
    background: var(--primary-color);
    border: none;
    box-shadow: var(--box-shadow);
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
}

a.notice_link {
  display:inline-block;
  width: 39px;
  height: 39px;
  vertical-align: top;
  text-align: center;
  position: relative;
  margin-right: 20px;
}

a.notice_link span {
  margin-top: 5px;
  font-size: 32px;
  color: #ff9225
}

a.logout {
    color: #fff;
    text-decoration: none;
    font-size: 12px;
}
.notice_alert {
  width: 10px;
  position: absolute;
  top: 5px;
  right: 5px;
}

div.notice_setting {
  font-size: 12px;
  position: absolute;
  top: 30px;
  left: 8px;
}

div#bg {
    min-width: 360px;
}

div.search_setting {
    padding: 10px 0px;
    position: relative;
}

div.search_setting_select {
    margin-top: 5px;
}

div.header_menu {
    background: -webkit-gradient(linear, left bottom, left top, to(#f9a), from(#f69));
    background: -moz-linear-gradient( top, #f9a 0%, #f69 100%);
    filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#f9a, EndColorStr=#f69);
    font-weight: bold;
    font-size: 16px;
    line-height: 45px;
    color: #fff;
    text-align: center;
    position: relative;
}

div.header_menu img {
    height: 30px;
    position: absolute;
    top: 8px;
    left: 5px;
}
span.icon_menu {
    position: absolute;
    top: 5px;
    right: 5px;
    font-size: 36px;
}

h2.page_title {
    margin : 10px;
    font-size: 30px;
    text-align: center;
    color: var(--primary-color);
}

span.calendar-date {
    font-size: 24px;
}

div.center {
    text-align: center;
}

input.txt {
    font-size: 24px;
    width: 300px;
    border-color: #ccc;
    padding: 5px;
}

select.select {
    font-size: 24px;
    width: 305px;
    border-color: #ccc;
    text-align: center;
    padding: 5px;
}

div.data_contents {
    margin-top: 20px;
}

table.reservation {
    width: 95%;
    margin: auto;
    border-collapse: collapse;
}

table.reservation td, 
table.reservation th
{
    text-align: center;
    border: 1px solid #ccc;
    height: 50px;
}

td.res_ok {
    background-color: rgb(49, 177, 108); 
    color: rgb(255, 255, 255); 
    font-size: 22px; 
}

td.res_can {
    background: #fafafa;
}

div.images {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 2px;
    margin: 5px;
}

div.frm {
    padding: 3px;
    border: 1px solid #ccc;
}

div.frm img {
    width: 100%;
}

html, body, div, span, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, address, code, em, strong, img, q, dl, dt, dd, ol, ul, li, form, fieldset, legend, label, table, caption, tbody, tfoot, thead, tr, th, td {
    margin: 0;
    padding: 0;
    list-style: none;
}
body {
    font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    font-size: 12px;
    word-break: break-all;
    line-height: 1.6;
    color: #333;
    font-weight: normal;
    position: relative;
}
html {
    height: 100%;
}
body {
    height: 100%;
    margin: 0;
}
form {
    display: inline;
}
select, input, textarea {
    padding: var(--space-sm);
    border-radius: var(--border-radius);
    max-width: calc(100% - 20px);
    color: #5b2f44;
    background: #fff7fb;
    border: 1px solid #f0cfe0;
}
.display_none {
    display: none !important;
}
img.site_logo {
    margin: 10px 10px 10px 10px;
    height: 40px;
}
span.middle {
    vertical-align: middle;
}
div.main {
    height: 100%;
}
div.header_menu {
    height: 40px;
    background: var(--head_menu-color);
    display: flex;
}

div.menu {
    width: calc(100% - 240px);   
}
div.menu ol {
    display: flex;
}
div.menu ol li {
    margin-left: 30px;
}
div.menu ol li a {
    color: #fff;
    text-decoration: none;
    font-size: 12px;
}
div.top_my_reservation div.contents.studio_shift {
  margin-left: 10px;
}
div.top_my_reservation div.studio_shift #reservation_calendar {
  margin: 0;
}

div.studio_shift #reservation_calendar table.reservation_calender_month {
    min-width:auto;
    border-collapse: separate;
}

div.studio_shift #reservation_calendar table.reservation_calender_month tbody tr:nth-child(2n+1) th {
    border-bottom: 1px solid #f6d8e7;
}

div.studio_shift #reservation_calendar table.reservation_calender_month tbody td {
    height: 63px;
    vertical-align: top;
    padding: 0;
    position: relative;
}
div.studio_shift #reservation_calendar table.reservation_calender_month tbody td a {
    text-decoration: none;
}

div.studio_shift #reservation_calendar table.reservation_calender_month tbody td.gray {
    background: #faf7f9;
    border: 1px dashed #ecd8e3;
}
div.studio_shift #reservation_calendar table.reservation_calender_month tbody td.holiday {
    background: #fff5f8;
    border-color: #f4cfe0;
}
div.studio_shift #reservation_calendar table.reservation_calender_month tbody td.saturday {
    background: #f7f6ff;
    border-color: #dfdbff;
}

div.studio_shift #reservation_calendar table.reservation_calender_month tbody td:last-child {
    border-right: 1px solid #dfdbff;
}
div.studio_shift #reservation_calendar table.reservation_calender_month tbody td div.premium_view {
    position: absolute;
    bottom: 0px;
    left: 0px;
    width: 100%;
    background: linear-gradient(45deg, #B67B03 0%, #DAAF08 45%, #c9a628 70%, #DAAF08 85%, #fad68c 90% 100%);
    color: #fff;
    font-size: 11px;
}


/* =========================
   スタジオ紹介文（clean / readable）
========================= */
div.studio_shift #reservation_calendar.studio_list .studio_description{
  margin: 12px 0 14px;
  padding: 8px 8px;

  background: #fafafa;
  color: #333;
  font-size: 0.95rem;
  line-height: 1.4;

  white-space: normal;
  word-break: break-word;
}

/* 空の説明は表示しない */
div.studio_shift #reservation_calendar.studio_list .studio_description:empty{
  display: none;
}

/* 改行が多い文章でも読みやすく */
div.studio_shift #reservation_calendar.studio_list .studio_description br{
  line-height: 2.0;
}

/* 強調は控えめに */
div.studio_shift #reservation_calendar.studio_list .studio_description strong{
  font-weight: 700;
  color: #222;
}










div.account_info {
    width: 200px;
    height: 40px;
    margin-right: 0px;
    margin-left: auto;
    text-align: right;
    padding-top: 5px;
    padding-right: 10px;
    color: #fff;
    font-size: 12px;
    line-height: 16px;
}

header div.reservation_btn_area {
    position: absolute;
    right: 0px;
    top: 0px;
    padding: 5px 10px;
}
header div.reservation_btn_area a {
    font-size: 20px;
}

div.contents {
    padding: 20px;
    display: flex;
    gap: 20px;
    margin: auto;
}

div.top_contents section {
    background: #fafafa;
    border-radius: 5px;
    padding: 10px;
}

section#reservation_calendar {
    width: 850px;
}

span.date_title {
    font-size: 1.35rem;
    font-weight: 700;
    color: #7a3d5a;
    vertical-align: middle;
}

div.top_reservation_calendar {
    display: flex;
    flex-direction: row;
    gap: 20px;
    -webkit-user-select: none; /* Safari / iOS */
    -moz-user-select: none;    /* Firefox */
    -ms-user-select: none;     /* 旧Edge */
    user-select: none;         /* 標準 */
}

div.top_month_calendar {
    outline: none; 
}

div.reservation_mark {
    text-align: center;
}


div#message_box {
    position: fixed;
    width: 100%;
    left: 0px;
    top: 65px;
    z-index: 100000;
    overflow:none;
}

div.message_txt {
    position:relative;
    left: 10px;
    width: 100%;
    top: 0px;
    background: #fff;
    border: 1px solid #c00;
    border-left: #cc0000 solid 5px;
    box-sizing: border-box;
    padding: 10px 20px 10px 5px;
    box-shadow: 2px 2px 2px 0px rgba(0, 0, 0, 0.45);
}


/* ===== 予約カレンダー全体 ===== */
@media (max-width: 1365px){
    div.top_contents section {
        min-width: calc(100% - 48px);
    }
    #reservation_calendar{
        min-width: calc(100% - 48px);
    }

    div.contents {
        flex-flow: column;
    }
}
div section.basic,
#reservation_calendar,
#reserved_info {
  max-width: 980px;
  min-width: 850px;
  padding: 24px;
  background: linear-gradient(180deg, #fff7fb 0%, #ffffff 100%);
  border: 1px solid #f4dbe8;
  border-radius: 18px;
  box-shadow: 0 10px 30px rgba(231, 143, 185, 0.12);
  font-family: system-ui, -apple-system, "Hiragino Kaku Gothic ProN",
               "Noto Sans JP", "Yu Gothic", sans-serif;
  color: #3a2e35;
}

/* セクション見出し */
section.basic h3,
#reservation_calendar h3,
#reserved_info h3{
  margin: 0 0 5px;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: .04em;
  color: #7a3d5a;
  position: relative;
  padding-left: 38px;
}

/* 見出しの左にアクセント */
section.basic h3::before,
#reservation_calendar h3::before,
#reserved_info h3::before{
  content: "\273F";
  position: absolute;
  left: 0;
  top: 0;
  width: 28px;
  height: 28px;
  display:grid;
  place-items:center;
  background:#ffe3ef;
  color:#b34b79;
  border-radius: 999px;
  font-size: 1rem;
  box-shadow: 0 2px 8px rgba(179, 75, 121, .18);
}

/* ===== 月カレンダーの並び ===== */
#reservation_calendar .top_reservation_calendar{
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 16px;
}

/* 月ごとのカード */
#reservation_calendar .top_month_calendar{
  background: #ffffff;
  border: 1px solid #f6e1eb;
  border-radius: 14px;
  padding: 10px;
  box-shadow: 0 6px 16px rgba(160, 93, 126, 0.08);
}

/* ===== テーブル全体 ===== */
#reservation_calendar table,
#reserved_info table{
  width: 100%;
  border-collapse: separate;
  border-spacing: 6px;          /* セル間のゆとり */
  table-layout: fixed;
}

/* 月タイトル行 */
#reservation_calendar table th[colspan="7"]{
  text-align:center;
  font-size: 1.05rem;
  font-weight: 700;
  color: #5b2f44;
  padding: 10px 0 8px;
  background: #fff0f7;
  border-radius: 3px;
  border: 1px solid #f6d8e7;
  letter-spacing: .06em;
}

/* 曜日ヘッダー */
#reservation_calendar table tr:nth-child(2) th
#reserved_info table tr:nth-child(2) th,{
  font-size: .9rem;
  font-weight: 700;
  color: #6a4a58;
  padding: 6px 0;
  background: #fff9fc;
  border-radius: 3px;
  border: 1px solid #f6e1eb;
}

/* 土曜/日曜ヘッダ色 */
#reservation_calendar th.holiday{ color:#c45a82; background:#fff1f6; }
#reservation_calendar th.saturday{ color:#6a62b8; background:#f4f2ff; }

/* ===== 日付セル ===== */
#reservation_calendar td,
#reserved_info td{
  background: #ffffff;
  height: 53px;
  vertical-align: top;
  padding: 0;
  overflow: hidden;
}

#reservation_calendar div.top_reservation_calendar td {
  border: 1px solid #f6e1eb;
  border-radius: 3px;
}

/* クリックできる日（dayset） */
#reservation_calendar .dayset{
  height: 100%;
  cursor: pointer;
}

/* ふわっとホバー */
#reservation_calendar td:not(.gray) .dayset:hover{
  background: #fff6fb;
  transform: translateY(-1px);
}

/* 日付数字 */
#reservation_calendar .day{
  font-weight: 700;
  font-size: 1rem;
  text-align: right;
  padding-right: 3px;
  color: #4a2f3a;
}

/* 予約マーク領域 */
#reservation_calendar .reservation_mark{
  color: #8a6b78;
}

/* close(×)等の記号を丸背景に */
#reservation_calendar .reservation_mark .material-symbols-outlined{
  font-size: 22px;
  color: #b34b79;
}

/* オレンジ系マーク（change_history等） */
#reservation_calendar .reservation_mark .mark_green{
  color:#1bc137;
}


/* オレンジ系マーク（change_history等） */
#reservation_calendar .reservation_mark .mark_orange{
  color:#d97918;
}

/* グレー系マーク（check_indeterminate_small等） */
#reservation_calendar .reservation_mark .mark_gray{
  color:#dddde4;
}

/* ===== 休日/土曜のセル色 ===== */
#reservation_calendar td.holiday{
  background: #fff5f8;
  border-color: #f4cfe0;
}
#reservation_calendar td.holiday .day{
  color:#b34b79;
}

#reservation_calendar td.saturday{
  background: #f7f6ff;
  border-color: #dfdbff;
}
#reservation_calendar td.saturday .day{
  color:#6a62b8;
}

/* ===== 無効日(gray / noset) ===== */
#reservation_calendar td.gray{
  background: #faf7f9;
  border: 1px dashed #ecd8e3;
}
#reservation_calendar td.gray .noset{
  height: 30px;
}

/* ===== ヘルプページ ===== */
#help_page{
    margin: 10px;
    max-width: 820px;
    padding: 24px;
    border: 1px solid #f4dbe8;
    border-radius: 18px;
    box-shadow: 0 10px 30px rgba(231, 143, 185, 0.12);
    font-family: system-ui, -apple-system, "Hiragino Kaku Gothic ProN",
            "Noto Sans JP", "Yu Gothic", sans-serif;
    color: #3a2e35;
}

/* セクション見出し */
#help_page h3{
    margin: 0 0 18px;
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: .04em;
    color: #7a3d5a;
    position: relative;
    padding-left: 38px;
}

/* 見出しの左にアイコン風アクセント */
#help_page h3::before{
    content: "\273F";
    position: absolute;
    left: 0;
    top: 0;
    width: 28px;
    height: 28px;
    display:grid;
    place-items:center;
    color:#b34b79;
    border-radius: 999px;
    font-size: 1rem;
    box-shadow: 0 2px 8px rgba(179, 75, 121, .18);
}

#help_page ol{
    list-style: none;   /* デフォ番号を消す */
    padding: 0;
    margin: 0;
    display: grid;
    gap: 14px;
    counter-reset: info-num;
}


/* ===== 各項目カード ===== */
#help_page ol > li{
    padding: 10px 0px;
    border-bottom: 3px dotted #7a3d5a;
    position: relative;
    font-size: 16px;
}

#help_page p.ql-indent-1 {
    padding-left: 20px;
    margin-top: 5px;
    font-size: 14px;
}
#help_page p.ql-indent-2 {
    padding-left: 40px;
    margin-top: 5px;
    font-size: 14px;
}
#help_page p.ql-indent-3 {
    padding-left: 60px;
    margin-top: 5px;
    font-size: 14px;
}
#help_page p.ql-indent-4 {
    padding-left: 80px;
    margin-top: 5px;
    font-size: 14px;
}
#help_page p.ql-indent-5 {
    padding-left: 100px;
    margin-top: 5px;
    font-size: 14px;
}
#help_page p.ql-indent-6 {
    padding-left: 120px;
    margin-top: 5px;
    font-size: 14px;
}


/* ===== お知らせプレビュー ===== */
#information_preview_section{
    margin: 10px;
    max-width: 820px;
    padding: 24px;
    border: 1px solid #f4dbe8;
    border-radius: 18px;
    box-shadow: 0 10px 30px rgba(231, 143, 185, 0.12);
    font-family: system-ui, -apple-system, "Hiragino Kaku Gothic ProN",
            "Noto Sans JP", "Yu Gothic", sans-serif;
    color: #3a2e35;
}

/* セクション見出し */
#information_preview_section h3{
    margin: 0 0 18px;
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: .04em;
    color: #7a3d5a;
    position: relative;
    padding-left: 38px;
}

/* 見出しの左にアイコン風アクセント */
#information_preview_section h3::before{
    content: "\273F";
    position: absolute;
    left: 0;
    top: 0;
    width: 28px;
    height: 28px;
    display:grid;
    place-items:center;
    color:#b34b79;
    border-radius: 999px;
    font-size: 1rem;
    box-shadow: 0 2px 8px rgba(179, 75, 121, .18);
}

#information_preview_section ol{
    list-style: none;   /* デフォ番号を消す */
    padding: 0;
    margin: 0;
    display: grid;
    gap: 14px;
    counter-reset: info-num;
}


/* ===== 各項目カード ===== */
#information_preview_section ol > li{
    padding: 10px 0px;
    border-bottom: 3px dotted #7a3d5a;
    position: relative;
    font-size: 16px;
}

#information_preview_section p.ql-indent-1 {
    padding-left: 20px;
    margin-top: 5px;
    font-size: 14px;
}
#information_preview_section p.ql-indent-2 {
    padding-left: 40px;
    margin-top: 5px;
    font-size: 14px;
}
#information_preview_section p.ql-indent-3 {
    padding-left: 60px;
    margin-top: 5px;
    font-size: 14px;
}
#information_preview_section p.ql-indent-4 {
    padding-left: 80px;
    margin-top: 5px;
    font-size: 14px;
}
#information_preview_section p.ql-indent-5 {
    padding-left: 100px;
    margin-top: 5px;
    font-size: 14px;
}
#information_preview_section p.ql-indent-6 {
    padding-left: 120px;
    margin-top: 5px;
    font-size: 14px;
}
























/* ===== お知らせセクション全体 ===== */
#information{
    max-width: 980px;
    width: 100%;
    min-width: 0;
    padding: 12px;
    background: #ffffff;
    border: 1px solid #f4dbe8;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(231, 143, 185, 0.08);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: auto;
}

/* セクション見出し */
#information h3{
  margin: 0 0 18px;
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: .04em;
  color: #7a3d5a;
  position: relative;
  padding-left: 38px;
}

/* 見出しの左にアイコン風アクセント */
#information h3::before{
  content: "\273F";
  position: absolute;
  left: 0;
  top: 0;
  width: 28px;
  height: 28px;
  display:grid;
  place-items:center;
  background:#ffe3ef;
  color:#b34b79;
  border-radius: 999px;
  font-size: 1rem;
  box-shadow: 0 2px 8px rgba(179, 75, 121, .18);
}

/* ===== リスト全体 ===== */
#information ol{
  list-style: none;   /* デフォ番号を消す */
  padding: 0;
  margin: 0;
  display: grid;
  gap: 14px;
  counter-reset: info-num;
}

/* ===== 各項目カード ===== */
#information ol > li{
  counter-increment: info-num;
  background: #ffffff;
  border: 1px solid #f6e1eb;
  border-radius: 14px;
  padding: 16px 18px 16px 56px;
  position: relative;
  box-shadow: 0 6px 16px rgba(160, 93, 126, 0.08);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

/* ふわっと浮くホバー */
#information ol > li:hover{
  transform: translateY(-2px);
  border-color: #efb7d2;
  box-shadow: 0 10px 22px rgba(160, 93, 126, 0.14);
}

/* 左上に丸い番号バッジ */
#information ol > li::before{
  content: counter(info-num);
  position: absolute;
  left: 14px;
  top: 14px;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg,#ffb6d3,#d8c4ff);
  color: #fff;
  font-weight: 700;
  font-size: .95rem;
  border-radius: 999px;
  box-shadow: 0 4px 10px rgba(198, 119, 164, .35);
}

/* ===== 項目タイトル ===== */
#information h4{
  margin: 0 0 8px;
  font-size: 1.05rem;
  font-weight: 700;
  color: #5b2f44;
  line-height: 1.5;
}

/* ===== 本文テキスト ===== */
/* infromation_text / information_text どちらでもOK */
#information .infromation_text,
#information .information_text{
  font-size: .96rem;
  line-height: 1.9;
  color: #4b3a41;
}

/* 本文内の■や※などが読みやすいように */
#information .infromation_text br,
#information .information_text br{
  line-height: 2.1;
}

/* ===== 重要文・注意文の雰囲気を出す（任意） ===== */
#information .infromation_text strong,
#information .information_text strong{
  color: #b34b79;
  font-weight: 700;
  background: linear-gradient(transparent 60%, #ffe1ee 60%);
}

/* =========================
   ヘッダー（単色・省padding）
========================= */
header{
  position: sticky;
  top: 0;
  z-index: 50000;

  background: #ffffff;
  box-shadow: 0 2px 8px rgba(231, 143, 185, 0.08); 

  padding: 6px 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ロゴ（フラット） */
header .site_logo{
  margin: 0;
  height: 38px;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}

/* 予約ボタンエリア */
header .reservation_btn_area{
  position: static;
  margin-left: auto;
  padding: 0;
}

/* 予約ボタン（単色 / 直線的 / コンパクト） */
header .reservation_btn_area .btn{
  display: inline-flex;
  align-items: center;
  gap: 6px;

  font-size: .98rem;
  padding: 7px 12px;                  /* コンパクト */
  border-radius: 2px;

  background: #ff3f8c;                /* 単色 */
  border: 1px solid #ff6aa7;
  box-shadow: 0 4px 10px rgba(240, 92, 160, 0.22);

  transition: transform .12s ease, box-shadow .12s ease, opacity .12s ease;
}
header .reservation_btn_area .btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(240, 92, 160, 0.28);
  opacity: .95;
}
header .reservation_btn_area .btn .material-symbols-outlined{
  font-size: 18px;
  line-height: 1;
}


/* =========================
   グローバルメニュー帯（単色）
========================= */
div.header_menu{
  position: sticky;
  top: 56.188px;
  z-index: 200;

  padding: 5px 10px;                  /* 省padding */
  background: #ff3f8c;                /* 単色 */
  border-bottom: 1px solid rgba(255,255,255,.35);
  box-shadow: 0 2px 8px rgba(231, 143, 185, 0.18);

  border-radius: 0;
  height: auto;
}

/* メニュー横並び */
div.menu{
  width: auto;
}
div.menu ol{
  display: flex;
  flex-wrap: wrap;
  gap: 2px 10px;
  align-items: center;
}
div.menu ol li{ margin-left: 0; }

/* メニューリンク（フラット＋細い下線） */
div.menu ol li a{
  display: inline-flex;
  align-items: center;

  padding: 4px 2px;                   /* 小さめ */
  font-size: .92rem;
  color: #fff;
  text-decoration: none;
  letter-spacing: .02em;

  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  transition: opacity .12s ease, border-color .12s ease;
}
div.menu ol li a:hover{
  opacity: .9;
  border-color: rgba(255,255,255,.9);
}

/* 右側ユーザー情報（フラットで区切り線のみ） */
div.account_info{
  width: auto;
  min-width: 150px;
  height: auto;
  margin-left: auto;

  padding: 10px 0 0 10px;
  text-align: right;
  font-size: .82rem;
  line-height: 1.35;
  color: #fff;

  background: transparent;
  border: none;
  border-left: 1px solid rgba(255,255,255,.6);
  border-radius: 0;
}






div.studio_shift{
  font-family: system-ui, -apple-system, "Hiragino Kaku Gothic ProN",
               "Noto Sans JP", "Yu Gothic", sans-serif;
  color: #3a2e35;
  display: block;
}

/* ===== セクション外枠（カード） ===== */
div.studio_shift #reservation_calendar,
div.studio_shift #reserved_info
{
  max-width: 980px;
  width: 100%;
  min-width: 0;
  padding: 12px;                 /* 省padding */
  background: #ffffff;           /* 単色 */
  border: 1px solid #f4dbe8;
  border-radius: 8px;            /* ほんの少しだけ。完全0でもOK */
  box-shadow: 0 4px 12px rgba(231, 143, 185, 0.08);
  overflow-x: auto;              /* 列が多いので横スクロール */
  -webkit-overflow-scrolling: touch;
  margin: auto;
}

div.studio_shift #reservation_calendar.no_scroll {
    overflow-x:inherit;
}

/* ===== 見出し ===== */
div.studio_shift #reservation_calendar h3
div.studio_shift #reserved_info h3{
  margin: 0 0 8px;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: .03em;
  color: #7a3d5a;
  position: relative;
  padding-left: 34px;
}

div.studio_shift #reservation_calendar h3::before,
div.studio_shift #reserved_info h3::before{
  content: "\273F";
  position: absolute;
  left: 0;
  top: 0px;
  width: 28px;
  height: 28px;
  display:grid;
  place-items:center;
  background:#ffe3ef;
  color:#b34b79;
  border-radius: 999px;
  box-shadow: 0 1px 4px rgba(179, 75, 121, .14);
}

/* ===== テーブル全体 ===== */
div.studio_shift #reservation_calendar table,
div.studio_shift #reserved_info table{
  width: 100%;
  min-width: 860px;              /* 列が潰れない最低幅 */
  border-collapse: collapse;
  table-layout: fixed;
  font-size: .88rem;            /* コンパクト */
  line-height: 1.2;
  background: #fff;
}

div.studio_shift #reservation_calendar table.studio_shift {
    width: auto;
    min-width: auto;
    border-collapse: separate;
    border-spacing: 0;
}
div.studio_shift #reservation_calendar table.studio_shift td {
    min-width: 80px;
    white-space: nowrap;
}

/* ===== ヘッダー（固定） ===== */
div.studio_shift #reservation_calendar thead th,
div.studio_shift #reserved_info thead th{
  position: sticky;
  top: 0;
  z-index: 2;

  background: #fff0f7;          /* 淡いピンク単色 */
  color: #5b2f44;
  font-weight: 700;

  border-bottom: 1px solid #f4cfe0;
  padding: 5px 4px;             /* 省paddingで高さ縮小 */
  text-align: center;
  white-space: nowrap;
}

/* 日付列だけ少し広め＆左寄せ */
div.studio_shift #reservation_calendar thead th:first-child,
div.studio_shift #reserved_info thead th:first-child{
  width: 165px;
  text-align: left;
  padding-left: 8px;
}

/* ===== 本体セル ===== */
div.studio_shift #reservation_calendar tbody td, 
div.studio_shift #reserved_info tbody td{
  background: #fff;
  border-bottom: 1px solid #f1e3ea;
  border-right: 1px solid #f7edf2;

  padding: 5px 4px;             /* 省paddingで高さ縮小 */
  height: 34px;                 /* 行の高さを固定で短く */
  text-align: center;
  vertical-align: middle;
  line-height: 1.15;
}

/* 休日行（holiday1）を薄く色分け */
div.studio_shift #reservation_calendar tbody tr.holiday1 td{
  background: #fff5f8;
}

/* ===== 日付セル ===== */
div.studio_shift #reservation_calendar .calendar_date{
  font-weight: 600;
  color: #4a2f3a;
  text-align: left;
  padding-left: 8px;
  white-space: nowrap;
  line-height: 1.15;
}

/* 曜日色 */
div.studio_shift #reservation_calendar .calendar_date .is_holiday{
  color: #c45a82;
  font-weight: 700;
}
div.studio_shift #reservation_calendar .calendar_date .wday6{
  color: #6a62b8;               /* 土 */
  font-weight: 700;
}

/* ===== 担当ありセル（isset）だけ軽く強調 ===== */
div.studio_shift #reservation_calendar td.isset{
  font-weight: 700;
  color: #3a2e35;
}

/* 空欄セルは薄め表示 */
div.studio_shift #reservation_calendar td.set_shift:not(.isset){
  color: #bbb;
}

/* 担当名は1行固定で高さ暴れ防止 */
div.studio_shift #reservation_calendar td.set_shift span{
  display: inline-block;
  white-space: nowrap;
  font-size: .9em;
}

/* ホバーでどこを触ってるか分かるように */
div.studio_shift #reservation_calendar td.set_shift{
  cursor: pointer;
  transition: background .12s ease;
}
/* ===== 右端の罫線をきれいに ===== */
div.studio_shift #reservation_calendar tbody td:last-child,
div.studio_shift #reservation_calendar thead th:last-child{
  border-right: none;
}

table.studio_shift tbody td a {
    text-decoration: none;
    color: var(--text-color);
}

table.studio_shift tbody td a:hover, 
table.studio_shift tbody td a:active {
    color: var(--primary-color);
}

/* =========================================================
   thead おしゃれ化 + スクロール追随（上書き）
   ※div.studio_shift 配下のみ
========================================================= */

/* stickyが確実に効くよう、テーブルを新しいスタッキング文脈に */
div div.studio_shift #reservation_calendar table.reservation_schedule_day{
  position: relative;
  border-collapse: separate;
  border-spacing: 0;
}

/* ===== ヘッダー全体 ===== */
div.studio_shift #reservation_calendar thead th,
div.studio_shift #reserved_info thead th{
  position: sticky;
  top: 0;                  /* 追随させる基準 */
  z-index: 5;              /* 本文より上に */

  background: #fff7fb;     /* 単色・やさしいピンク */
  color: #5b2f44;
  font-weight: 700;

  padding: 6px 5px;        /* 省paddingは維持 */
  text-align: center;
  white-space: nowrap;
}

div.studio_shift #reservation_calendar table.reservation_schedule_day thead th:first-child, 
div.studio_shift #reservation_calendar table.reservation_schedule_week thead th:first-child {
    left: 0;
    z-index: 10;
}

div.studio_shift #reservation_calendar table.studio_shift thead th:first-child {
    left: 0px;
    z-index: 10;
}

/* ヘッダーセルの縦罫線を上品に */
div.studio_shift #reservation_calendar thead th:not(:last-child),
div.studio_shift #reserved_info thead th:not(:last-child){
  border-right: 1px solid #f4dbe8;
}

/* 日付列ヘッダーだけ“ラベル感”を出す */
div.studio_shift #reservation_calendar thead th:first-child{
  text-align: left;
  padding-left: 10px;
  letter-spacing: .02em;
  background: #fff3f8;     /* 少しだけ濃い単色 */
}

/* スタジオ名セルの文字バランス */
div.studio_shift #reservation_calendar thead th.studio-nm div{
  font-size: .92em;
  letter-spacing: .02em;
}

/* ホバーでちょい反応（派手じゃない） */
div.studio_shift #reservation_calendar thead th:hover{
  background: #fff1f7;
}

/* =========================================================
   追随の安定化（Safari等で効きにくい時用）
========================================================= */
div.studio_shift  div.auto_height{
  position: relative;
  overflow-x: auto;
  overflow-y: auto;
  max-height: max(100vh - 230px);
}

div.auto_height.with_border {
    border: 1px solid #f4dbe8;
}

/* (任意) 表の上端がスクロール中チラつくのを抑える */
div.studio_shift #reservation_calendar thead{
  position: sticky;
  top: 0;
  z-index: 101;
}


select.change_form {
  color: #5b2f44;
  background:#fff7fb;
  border: 1px solid #f0cfe0;
  margin-right: 5px;
  cursor: pointer;
}

select#change_view {
  color: #5b2f44;
  background:#fff7fb;
  border: 1px solid #f0cfe0;
  margin-right: 5px;
  cursor: pointer;
  position: absolute;
  right: 2px;
  top: 0px;
}

/* =========================================================
   スタジオ一覧（map付き）専用CSS
   scope: .contents.studio_shift #reservation_calendar.studio_list
========================================================= */

/* flex解除（一覧ページは1カラムで流す） */
div.contents.studio_shift{
  display: block;
  padding: 14px;
  margin: 0 auto;
}

/* 一覧セクションの外枠 */
div.studio_shift #reservation_calendar.studio_list{
  width: 100%;
  max-width: 980px;
  min-width: 0;

  margin: 0 auto;
  padding: 14px;

  background: #fff;
  border: 1px solid #f4dbe8;
  border-radius: 8px;
  box-shadow: 0 6px 18px rgba(231, 143, 185, 0.10);
  color: #3a2e35;
  font-family: system-ui, -apple-system, "Hiragino Kaku Gothic ProN",
               "Noto Sans JP", "Yu Gothic", sans-serif;
}

/* -------------------------
   上部フォーム見出し（h3内にformがいる想定）
------------------------- */
div.studio_shift #reservation_calendar.studio_list > h3{
  margin: 0 0 12px;
  padding-left: 35px;
  padding-bottom: 4px;
  border-bottom: 1px solid #f4dbe8;
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: .02em;
  color: #7a3d5a;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* フォーム自体を整える */
div.studio_shift #reservation_calendar.studio_list > h3 form{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

/* セレクト */
div.studio_shift #reservation_calendar.studio_list select.change_form{
  padding: 7px 10px;
  border: 1px solid #f0cfe0;
  background: #fff7fb;
  color: #5b2f44;
  border-radius: 8px;
  cursor: pointer;
  font-size: .92rem;
}

/* -------------------------
   スタジオ一覧
------------------------- */
div.studio_shift #reservation_calendar.studio_list .studio_items{
  list-style: none;
  margin: 0;
  padding: 0;

  display: grid;
  gap: 12px;
}

/* 1スタジオカード */
div.studio_shift #reservation_calendar.studio_list .studio_item{
  border: 1px solid #f4dbe8;
  background: #fff;
  border-radius: 10px;
  padding: 12px;
  box-shadow: 0 4px 12px rgba(160, 93, 126, 0.06);
}

/* スタジオ名（h3） */
div.studio_shift #reservation_calendar.studio_list .studio_item > h3{
  margin: 0 0 6px;
  font-size: 1.02rem;
  font-weight: 900;
  color: #5b2f44;
  letter-spacing: .02em;
  padding: 0;
  padding-left: 25px;
}

/* 住所 */
div.studio_shift #reservation_calendar.studio_list .studio_item > address{
  margin: 0 0 10px;
  font-style: normal;
  font-size: .88rem;
  color: #6b5a63;
  line-height: 1.45;
}

/* -------------------------
   map（<map> + iframe）
   ※<map>は本来画像マップ用要素なので、見た目安定のためブロック化
------------------------- */
div.studio_shift #reservation_calendar.studio_list .studio_item > map{
  display: block;
  margin: 10px 0 12px;
  border: 1px solid #f2dbe6;
  border-radius: 10px;
  overflow: hidden;
  background: #faf7f9;
}

/* mapが空なら表示しない */
div.studio_shift #reservation_calendar.studio_list .studio_item > map:empty{
  display: none;
}

/* iframeをレスポンシブ化 */
div.studio_shift #reservation_calendar.studio_list .studio_item > map iframe{
  display: block;
  width: 100% !important;
  height: 260px !important;   /* 好みで調整 */
  border: 0 !important;
}

/* -------------------------
   部屋（画像カード）
------------------------- */
ol.rooms{
  list-style: none;
  padding: 0;
  margin: 0;

  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

/* 画像カード */
ol.rooms .room_card{
  border: 1px solid #f2dbe6;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 3px 10px rgba(160, 93, 126, 0.05);
}

/* 画像 */
ol.rooms .room_img{
  width: 100%;
  height: 120px;
  object-fit: cover;
  display: block;
  background: #faf7f9;
  cursor: pointer;
}

/* キャプション */
ol.rooms .room_cap{
  padding: 7px 9px;
  font-size: .84rem;
  color: #5b2f44;
  border-top: 1px solid #f7e6ef;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}





/* =========================
   画像モーダル
========================= */
.img_modal{
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
}

/* 背景 */
.img_modal_bg{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.75);
  cursor: pointer;
}

/* 中央コンテナ */
.img_modal_inner{
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
  cursor: pointer;
}

/* 表示画像 */
.img_modal_inner img{
  max-width: 95vw;
  max-height: 90vh;
  object-fit: contain;          /* ★ 全体像を必ず表示 */
  background: #111;
  border-radius: 6px;
  box-shadow: 0 20px 60px rgba(0,0,0,.45);
}

/* 閉じるボタン */
.img_modal_close{
  position: absolute;
  top: 14px;
  right: 18px;
  font-size: 28px;
  color: #fff;
  background: transparent;
  border: none;
  cursor: pointer;
  line-height: 1;
  cursor: pointer;
}



/* =========================
    ② 各スタジオ名：selectと被らないデザイン（下線アクセント）
========================= */
div.studio_shift #reservation_calendar.studio_list .studio_item > h3{
    position: relative;
    display: block;

    margin: 0 0 8px;
    padding: 0 0 6px;

    font-size: 1.05rem;
    font-weight: 900;
    color: #5b2f44;

    background: transparent;
    border: none;
    border-radius: 0;

    letter-spacing: .02em;
}

/* 下線（アクセント） */
div.studio_shift #reservation_calendar.studio_list .studio_item > h3::after{
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;

    width: 250px;
    height: 5px;
    border-radius: 999px;

    background: linear-gradient(90deg, #ff3f8c, #ffd0e3);
    opacity: 0.9;
}

/* 以前のドット/花などが残ってたら無効化 */
div.studio_shift #reservation_calendar.studio_list .studio_item > h3::before{
    content: none !important;
}


.modal-overlay, .modal-overlay-dontclose {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    /* display: none; */
    justify-content: center;
    align-items: center;
    z-index: 99999;
}
#modalConfirm div.modal-window {
    min-width: 500px;
}
#modalConfirm div.attention {
    margin-top: 15px;
    font-size: 11px;
    color: #777;
}

.modal-window {
    width: auto;
    max-width: 1200px;
    height: auto;
    max-height: 95vh;
    padding: var(--space-lg);
    display: grid;
    grid-template-rows: auto 1fr auto;
    gap: var(--space-md);
    background-color: var(--container-background-color);
    border-radius: var(--border-radius);
    overflow-y: auto;
}
.modal-header {
    width: 100%;
    display: flex;
    position: relative;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}
.modal-window h1 {
    padding: 0px;
}
.modal-window div.btn_area {
    display: grid;
    grid-template-rows: 1fr;
    grid-template-columns: 50% 50%;
    margin-top: 30px;
}
.modal-window div.btn_area div {
    text-align: center;
}
.modal-window div.btn_area div .btn {
    display: inline-block;
    width: 140px;
}

/* =========================
   予約フォームモーダル
   target: #modalReservationForm
========================= */
#modalReservationForm.modal-overlay2{
    position: fixed;
    inset: 0;
    z-index: 60000;
    display: none; /* JSで display:flex にする前提 */
    align-items: center;
    justify-content: center;
    padding: 18px;
    box-sizing: border-box;
    background: rgba(0, 0, 0, 0.55);
}

div.checking_input,
div.checking_input input,
div.checking_input label {
  cursor: pointer;
}

div.submit_button_area {
  text-align: center;
  padding: 10px;
}

div.submit_button_area > button {
  padding: 5px 50px;
}

/* 中身 */
#modalReservationForm .modal-window{
    max-height: 88vh;
    overflow-y: auto;
    box-sizing: border-box;

    background: #fff;
    border: 1px solid #f2dbe6;
    border-radius: 12px;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
}

/* ヘッダー */
#modalReservationForm .modal-header{
    position: sticky;
    top: 0;
    z-index: 1;

    display: flex;
    align-items: center;
    gap: 10px;

    padding: 12px 0px 12px 14px;
    background: #fff;
    border-bottom: 1px solid #f2dbe6;
}

#modalReservationForm .modal-header.right{
    justify-content: space-between;
}

#modalReservationForm .modal-title{
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
    color: #5b2f44;
    letter-spacing: 0.02em;
}

/* 閉じるボタン */
#modalReservationForm .modal_close_btn{
    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 10px;

    cursor: pointer;
    color: #5b2f44;
    background: #fff7fb;
    border: 1px solid #f2dbe6;
    transition: transform 0.12s ease, background 0.12s ease, opacity 0.12s ease;
}

#modalReservationForm .modal_close_btn:hover{
    transform: translateY(-1px);
    background: #fff0f7;
    opacity: 0.95;
}

/* テーブル */
#modalReservationForm table{
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

#modalReservationForm tr:not(:last-child) th,
#modalReservationForm tr:not(:last-child) td{
    border-bottom: 1px solid #f7e6ef;
}

#modalReservationForm th,
#modalReservationForm td{
    padding: 12px 14px;
    vertical-align: top;
    text-align: left;
    font-size: 0.92rem;
}

/* th側 */
#modalReservationForm th{
    width: 240px;
    background: #fff7fb;
    color: #5b2f44;
    font-weight: 800;
}

#modalReservationForm th.th-width-s{
    width: 160px;
}

/* td側 */
#modalReservationForm td{
    background: #fff;
    color: #3a2e35;
}

/* ラジオ/チェックの並び */
#modalReservationForm td div{
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 6px 0;
    line-height: 1.5;
}

#modalReservationForm input[type="radio"],
#modalReservationForm input[type="checkbox"]{
    transform: translateY(2px);
}

/* 入力・テキストエリア */
#modalReservationForm input[type="text"],
#modalReservationForm textarea.reservation_edit_textarea{
    width: 100%;
    box-sizing: border-box;

    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid #e7d6df;
    background: #fff;

    font-size: 0.95rem;
    color: #3a2e35;
}

#modalReservationForm textarea.reservation_edit_textarea{
    min-height: 110px;
    resize: vertical;
}

#modalReservationForm input[type="text"]:focus,
#modalReservationForm textarea.reservation_edit_textarea:focus{
    outline: none;
    border-color: #ff6aa7;
    box-shadow: 0 0 0 3px rgba(255, 63, 140, 0.14);
}

/* エラーログ */
#modalReservationForm #file_delivery_error_log{
    padding: 10px 14px 14px;
    color: #c62828;
    font-size: 0.9rem;
}

span.annotation {
  font-size: 11px;
}

div.main div.studio_shift #reservation_calendar table.reservation_schedule_week {
  border-collapse: separate;
  border-spacing: 0;
}

div.studio_shift #reservation_calendar table.reservation_schedule_day,
div.studio_shift #reservation_calendar table.reservation_schedule_week
 {
    border-collapse: collapse;
    width: 100%;
    table-layout: fixed;
    border-right: 1px solid #f7edf2;
}

div.studio_shift #reservation_calendar table.reservation_schedule_day thead tr th:nth-child(1),
div.studio_shift #reservation_calendar table.reservation_schedule_week thead tr th:nth-child(1) {
  width: 60px;
}

div.studio_shift #reservation_calendar table.reservation_schedule_day thead th, 
div.studio_shift #reservation_calendar table.reservation_schedule_week thead th {
  text-align: center;
  font-size: clamp(8px, 160px, 12px);
  padding: 5px 0px;
}
div.studio_shift #reservation_calendar table.reservation_schedule_day tbody tr td {
  padding: 0px;
  position: relative;
  border-radius: 0px;
}
div.studio_shift #reservation_calendar table.reservation_schedule_day tbody tr th,
div.studio_shift #reservation_calendar table.reservation_schedule_week tbody tr th {
  background: #fff7fb
}
div.studio_shift #reservation_calendar table.reservation_schedule_day tbody tr td:last-child,
div.studio_shift #reservation_calendar table.reservation_schedule_week tbody tr td:last-child
 {
  border-right: 1px solid #f7edf2;
  z-index: 100;
}

div.studio_shift #reservation_calendar table.reservation_schedule_day tbody tr th:nth-child(1),
div.studio_shift #reservation_calendar table.reservation_schedule_week tbody tr th:nth-child(1) {
    position: sticky;
    left: 0px;
    z-index: 100 !important;
    border:none;
    border-radius: 0px;
    border-bottom: 1px solid #f6e1eb;
}

div.studio_shift #reservation_calendar table.reservation_schedule_day tbody tr:nth-child(2n+1) th:nth-child(1),
div.studio_shift #reservation_calendar table.reservation_schedule_week tbody tr:nth-child(2n+1) th:nth-child(1) {
    border:none;
}

div.studio_shift #reservation_calendar table.reservation_schedule_day tbody tr th:nth-child(1),
div.studio_shift #reservation_calendar table.reservation_schedule_week tbody tr th:nth-child(1) {
    z-index: 1;
}

div.studio_shift #reservation_calendar table.reservation_schedule_day tbody tr:nth-child(2n+1) td,
div.studio_shift #reservation_calendar table.reservation_schedule_week tbody tr:nth-child(2n+1) td
 {
  border-bottom: 1px dotted #f4eff2ff;
}
div.studio_shift #reservation_calendar table.reservation_schedule_day tbody tr:nth-child(2n) td,
div.studio_shift #reservation_calendar table.reservation_schedule_week tbody tr:nth-child(2n) td {
  border-top: none;
}

div.studio_shift #reservation_calendar table.reservation_schedule_day tbody tr td.set_reservation,
div.studio_shift #reservation_calendar table.reservation_schedule_week tbody tr td.set_reservation {
  color: #fff;
  position: relative;
  padding: 2px;
  cursor: pointer;
}

div.studio_shift #reservation_calendar table.reservation_schedule_day tbody tr td.set_reservation div.bg
 {
  background: var(--primary-color);
  width: calc(100% - 6px);
  height: calc(100% - 4px);
  position: absolute;
  top: 2px;
  left: 4px;
  z-index: 1;
  border-radius: 8px;
  cursor: pointer;
}

div.studio_shift #reservation_calendar table.reservation_schedule_week tbody tr td.set_reservation div.bg
 {
  background: var(--primary-color);
  width: calc(100% - 8px);
  height: calc(100% - 4px);
  position: absolute;
  top: 2px;
  left: 4px;
  z-index: 1;
  border-radius: 8px;
  cursor: pointer;
}

div.studio_shift #reservation_calendar table.reservation_schedule_day tbody tr td.set_reservation span.start_time,
div.studio_shift #reservation_calendar table.reservation_schedule_week tbody tr td.set_reservation span.start_time{
  position: absolute;
  top: 4px;
  left: 8px;
  font-size: 11px;
  z-index: 2;
  cursor: pointer;
}

div.studio_shift #reservation_calendar table.reservation_schedule_day tbody tr td.set_reservation div.icon,
div.studio_shift #reservation_calendar table.reservation_schedule_week tbody tr td.set_reservation div.icon {
  z-index: 3;
  position: absolute;
  width: 100%;
  height: 100%;
  text-align: center;
  top: 0px;
  left:  0px;
  cursor: pointer;
  display: flex;
  align-items: center;      /* 縦中央 */
  justify-content: center;  /* 横中央 */
}

div.studio_shift #reservation_calendar table.reservation_schedule_day tbody tr td.set_reservation div.premium_view,
div.studio_shift #reservation_calendar table.reservation_schedule_week tbody tr td.set_reservation div.premium_view {
    position: absolute;
    bottom: 0px;
    left: 4px;
    width: 100%;
    background: linear-gradient(45deg, #B67B03 0%, #DAAF08 40%, #c9a628 70%, #DAAF08 85%, #fad68c 90% 100%);
    color: #fff;
    font-size: 11px;
    z-index: 4;
    border-bottom-right-radius: 8px;
    border-bottom-left-radius: 8px;
    width: calc(100% - 6px);
}
div.studio_shift #reservation_calendar table.reservation_schedule_week tbody tr td.set_reservation div.premium_view {
    width: calc(100% - 8px);
}
@media (max-height: 900px){
  div.studio_shift #reservation_calendar table.reservation_schedule_day tbody tr td.set_reservation div.icon,
  div.studio_shift #reservation_calendar table.reservation_schedule_week tbody tr td.set_reservation div.icon{
    padding-top: 5px;
  }
  div.studio_shift #reservation_calendar table.reservation_schedule_day tbody tr td.set_reservation div.icon span,
  div.studio_shift #reservation_calendar table.reservation_schedule_week tbody tr td.set_reservation div.icon span{
    font-size: 16px;
  }
}

#reservation_calendar table.reservation_schedule_day tbody tr th,
#reservation_calendar table.reservation_schedule_week tbody tr th
 {
    font-weight: 700;
    color: #a18f97ff;
    background: #fff;
    border-radius: 3px;
    border-top: none;
    border: 1px solid #f6e1eb;
    text-align: right;
    vertical-align: top;
    padding-right: 4px;
}

div.studio_shift #reservation_calendar table tbody tr:nth-child(2n+1) th{
  border-bottom: none;
}
div.studio_shift #reservation_calendar table tbody tr:nth-child(2n) th {
   border-top: none;
}

option.close_slot {
  color: #ddd;
}

span.date_move_arrow {
  vertical-align: middle;
  cursor: pointer;
}

div.day_title {
  font-size: 24px;
}
div.day_week {
  font-weight: 400;
}

div.studio_shift #reservation_calendar table.reservation_schedule_week tbody tr td {
  padding: 0px;
  position: relative;
}




/* =========================
    予約情報詳細 (#reservation_detail)
========================= */
#reservation_detail{
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
    padding: 14px;

    background: #fff;
    border: 1px solid #f4dbe8;
    border-radius: 10px;
    box-shadow: 0 6px 18px rgba(231, 143, 185, 0.10);

    color: #3a2e35;
    font-family: system-ui, -apple-system, "Hiragino Kaku Gothic ProN",
                 "Noto Sans JP", "Yu Gothic", sans-serif;
}

/* 見出し（シンプル＋アクセントライン） */
#reservation_detail h3{
  margin: 0 0 18px;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: .04em;
  color: #7a3d5a;
  position: relative;
  padding-left: 38px;
}

/* 見出しの左にアクセント */
#reservation_detail h3::before{
  content: "\273F";
  position: absolute;
  left: 0;
  top: 0;
  width: 28px;
  height: 28px;
  display:grid;
  place-items:center;
  background:#ffe3ef;
  color:#b34b79;
  border-radius: 999px;
  font-size: 1rem;
  box-shadow: 0 2px 8px rgba(179, 75, 121, .18);
}

/* スクロール領域 */
#reservation_detail .auto_height{
    overflow: auto;
    max-height: max(60vh, 320px);
    -webkit-overflow-scrolling: touch;
}


/* テーブル */
#reservation_detail table{
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid #f7e6ef;
}

/* 行の区切り */
#reservation_detail tbody tr:not(:last-child) th,
#reservation_detail tbody tr:not(:last-child) td{
    border-bottom: 1px dotted #f7e6ef;
}

/* セル */
#reservation_detail th,
#reservation_detail td{
    padding: 12px 14px;
    vertical-align: top;
    text-align: left;
    font-size: 0.92rem;
}

/* th：ラベル */
#reservation_detail th{
    width: 210px;
    background: #fff7fb;
    color: #5b2f44;
    font-weight: 800;
}

/* td：値 */
#reservation_detail td{
    background: #fff;
    color: #3a2e35;
}

/* 入力系 */
#reservation_detail select,
#reservation_detail input[type="text"],
#reservation_detail input[type="number"],
#reservation_detail textarea.reservation_edit_textarea{
    width: 100%;
    box-sizing: border-box;

    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid #e7d6df;
    background: #fff;

    font-size: 0.95rem;
    color: #3a2e35;
}
#reservation_detail input[type="number"] {
  width: 100px;
}

/* selectは「モーダルと同じに見えすぎ」防止で矢印＋薄い影 */
#reservation_detail select{
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;

    padding-right: 42px;
    background-image:
        linear-gradient(45deg, transparent 50%, #ff3f8c 50%),
        linear-gradient(135deg, #ff3f8c 50%, transparent 50%),
        linear-gradient(to right, #f7e6ef, #f7e6ef);
    background-position:
        calc(100% - 18px) 50%,
        calc(100% - 12px) 50%,
        calc(100% - 36px) 50%;
    background-size:
        6px 6px,
        6px 6px,
        1px 18px;
    background-repeat: no-repeat;

    box-shadow: 0 2px 10px rgba(160, 93, 126, 0.06);
}

/* フォーカス */
#reservation_detail select:focus,
#reservation_detail input[type="text"]:focus,
#reservation_detail textarea.reservation_edit_textarea:focus{
    outline: none;
    border-color: #ff6aa7;
    box-shadow: 0 0 0 3px rgba(255, 63, 140, 0.14);
}

/* textarea */
#reservation_detail textarea.reservation_edit_textarea{
    min-height: 110px;
    resize: vertical;
}

/* チェックボックスの行間 */
#reservation_detail .edit_photo_shoot_details{
    margin-right: 6px;
    transform: translateY(2px);
}







/* =========================
    スタジオ詳細 (#studio_detail)
========================= */
#studio_detail{
    width: 100%;
    max-width: 980px;
    margin: 20px auto;
    padding: 14px;

    background: #fff;
    border: 1px solid #f4dbe8;
    border-radius: 10px;
    box-shadow: 0 6px 18px rgba(231, 143, 185, 0.10);

    color: #3a2e35;
    font-family: system-ui, -apple-system, "Hiragino Kaku Gothic ProN",
                 "Noto Sans JP", "Yu Gothic", sans-serif;
}

#studio_detail h3{
  margin: 0 0 18px;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: .04em;
  color: #7a3d5a;
  position: relative;
  padding-left: 38px;
}

/* 見出しの左にアクセント */
#studio_detail h3::before{
  content: "\273F";
  position: absolute;
  left: 0;
  top: 0;
  width: 28px;
  height: 28px;
  display:grid;
  place-items:center;
  background:#ffe3ef;
  color:#b34b79;
  border-radius: 999px;
  font-size: 1rem;
  box-shadow: 0 2px 8px rgba(179, 75, 121, .18);
}

/* スクロール領域 */
#studio_detail .auto_height{
    overflow: auto;
    max-height: max(60vh, 320px);
    -webkit-overflow-scrolling: touch;
}

/* テーブル */
#studio_detail table{
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid #f7e6ef;
}

/* 行の区切り */
#studio_detail tbody tr:not(:last-child) th,
#studio_detail tbody tr:not(:last-child) td{
    border-bottom: 1px dotted #f7e6ef;
}

/* セル */
#studio_detail th,
#studio_detail td{
    padding: 12px 14px;
    vertical-align: top;
    text-align: left;
    font-size: 0.92rem;
}

/* th：ラベル */
#studio_detail th{
    width: 210px;
    background: #fff7fb;
    color: #5b2f44;
    font-weight: 800;
}

/* td：内容 */
#studio_detail td{
    background: #fff;
    color: #3a2e35;
}

/* 住所（※HTMLは <adress> になってるので両方対応） */
#studio_detail address,
#studio_detail adress{
    display: inline-block;
    font-style: normal;
    color: #3a2e35;
    line-height: 1.7;
}

/* 地図 <map> はブロック化してカードっぽく */
#studio_detail map{
    display: block;
    border: 1px solid #f2dbe6;
    border-radius: 10px;
    overflow: hidden;
    background: #faf7f9;
}

/* map が空なら消す */
#studio_detail map:empty{
    display: none;
}

/* iframe レスポンシブ */
#studio_detail map iframe{
    display: block;
    width: 100% !important;
    height: 280px !important;
    border: 0 !important;
}

#cancel_btn {
  margin-left: 50px;
  background:var(--error-color);
}

#cancel_btn span{
  vertical-align: middle;
  font-size: 20px;
}

#notice_setting {
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
    padding: 14px;
    background: #fff;
    border: 1px solid #f4dbe8;
    border-radius: 10px;
    box-shadow: 0 6px 18px rgba(231, 143, 185, 0.10);
    color: #3a2e35;
    font-family: system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", sans-serif;
}

#notice_setting h3 {
    margin: 0 0 18px;
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: .04em;
    color: #7a3d5a;
    position: relative;
    padding-left: 38px;
}
#notice_setting h3::before {
    content: "\273F";
    position: absolute;
    left: 0;
    top: 0;
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    background: #ffe3ef;
    color: #b34b79;
    border-radius: 999px;
    font-size: 1rem;
    box-shadow: 0 2px 8px rgba(179, 75, 121, .18);
}

#notice_setting table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid #f7e6ef;
}

#notice_setting tbody tr:not(:last-child) th, #notice_setting tbody tr:not(:last-child) td {
    border-bottom: 1px dotted #f7e6ef;
}

#notice_setting th {
    width: 210px;
    background: #fff7fb;
    color: #5b2f44;
    font-weight: 800;
    padding: 12px 14px;
    vertical-align: top;
    text-align: left;
    font-size: 0.92rem;
}

#notice_setting tbody tr:not(:last-child) th, #notice_setting tbody tr:not(:last-child) td {
    border-bottom: 1px dotted #f7e6ef;
}

#notice_setting td {
    background: #fff;
    color: #3a2e35;
}

#notice_setting th, #notice_setting td {
    padding: 12px 14px;
    vertical-align: top;
    text-align: left;
    font-size: 0.92rem;
}

#notice_setting select, 
#notice_setting input[type="text"], 
#notice_setting input[type="text"], 
#notice_setting textarea.reservation_edit_textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid #e7d6df;
    background: #fff;
    font-size: 0.95rem;
    color: #3a2e35;
}

#notice_setting label {
  display: flex;
  align-items: center;
  column-gap: 4px;
  width: fit-content;
  line-height: 1;
  cursor: pointer;
}

#notice_setting label:not(:last-of-type) {
  margin-bottom: 16px;
}

#notice_setting label input[type=radio]{
  appearance: none;
  position: relative;
  width: 20px;
  height: 20px;
  border: 1px solid #fd7676;
  border-radius: 9999px;
  cursor: pointer;
}

#notice_setting label input[type=radio]:checked::after {
  content: "";
  position: absolute;
  inset: 0;
  width: 12px;
  height: 12px;
  margin: auto;
  border-radius: 9999px;
  background-color: #ff8484;
}


div.studio_shift #download_files {
    max-width: 980px;
    width: 100%;
    min-width: 0;
    padding: 12px;
    background: #ffffff;
    border: 1px solid #f4dbe8;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(231, 143, 185, 0.08);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: auto;
}

#delivery_files {
    column-width: 200px;
    column-gap: 5px;
    padding: 10px;
}

#delivery_files span.is_movie {
    position: absolute;
    left: 5px;
    top: 5px;
    color: #fff;
    text-shadow:
        1px 1px 0 #000,
        -1px 1px 0 #000,
        -1px -1px 0 #000,
        1px -1px 0 #000;
}

#download_files h3 {
    margin: 0 0 18px;
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: .04em;
    color: #7a3d5a;
    position: relative;
    padding-left: 38px;
}
#download_files h3::before {
    content: "\273F";
    position: absolute;
    left: 0;
    top: 0;
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    background: #ffe3ef;
    color: #b34b79;
    border-radius: 999px;
    font-size: 1rem;
    box-shadow: 0 2px 8px rgba(179, 75, 121, .18);
}


#delivery_files > div {
    break-inside: avoid;
    margin-bottom: 5px;
    position: relative;
}

#delivery_files div img.upload_file_delete_btn {
    width: 20px;
    height: 20px;
    position: absolute;
    top: 3px;
    right: 3px;
    cursor: pointer;
}

#delivery_files div img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}





/* 選択できるように（リンクのタップハイライト軽減） */
#download_files #delivery_files .upload_file a{
    -webkit-tap-highlight-color: transparent;
}

#download_files div.actions {
  position: absolute;
  right: 0px;
  top: 0px;
}

/* カード基準（オーバーレイ/バッジ用） */
#download_files #delivery_files .upload_file{
    position: relative; /* 既に付いててもOK */
}

/* 選択時の薄いオーバーレイ（既存img等に干渉しない） */
#download_files #delivery_files .upload_file::after{
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity .12s ease;
    pointer-events: none;
    z-index: 1;
}
#download_files #delivery_files .upload_file.is-selected::after{
    opacity: 1;
}

/* 左上のチェックバッジ（JSで要素をprepend） */
#download_files #delivery_files .upload_file .select_badge{
    position: absolute;
    top: 8px;
    left: 8px;
    width: 26px;
    height: 26px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.0);
    border: 2px solid rgba(255, 255, 255, 0.0);
    display: grid;
    place-items: center;
    z-index: 3; /* delete_btn(右上)より上でも下でもOK。右上は別位置 */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12);
    cursor: pointer;
}

/* チェックマーク（未選択は非表示） */
#download_files #delivery_files .upload_file .select_badge::before{
    content: "";
    width: 10px;
    height: 6px;
    border-left: 3px solid var(--primary-color);
    border-bottom: 3px solid var(--primary-color);
    transform: rotate(-45deg);
    opacity: 0;
}

/* 選択時：バッジをピンク＋チェック白 */
#download_files #delivery_files .upload_file.is-selected .select_badge{
    background: var(--primary-color);
    border-color: var(--primary-color);
}
#download_files #delivery_files .upload_file.is-selected .select_badge::before{
    border-left-color: #fff;
    border-bottom-color: #fff;
    opacity: 1;
}

#download_files .select_btn{
    appearance: none;
    border: 1px solid #f0cfe0;
    background: #fff7fb;
    color: #5b2f44;
    border-radius: 10px;
    padding: 8px 10px;
    font-size: .92rem;
    font-weight: 700;
    cursor: pointer;
}

/* 下部アクションバー（JSで挿入） */
.select_bottombar{
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 99999;
    padding: 10px 12px;
    background: rgba(255,255,255,0.96);
    border-top: 1px solid #f4dbe8;
    box-shadow: 0 -6px 18px rgba(231, 143, 185, 0.12);
    display: none;
    backdrop-filter: blur(8px);
}

.select_bottombar.is-show{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.select_bottombar .count{
    font-weight: 800;
    color: #5b2f44;
    font-size: .95rem;
}

.download_btn{
    appearance: none;
    border: 1px solid #ff6aa7;
    background: #ff3f8c;
    color: #fff;
    border-radius: 12px;
    padding: 10px 14px;
    font-size: .95rem;
    font-weight: 900;
    cursor: pointer;
    box-shadow: 0 6px 14px rgba(240, 92, 160, 0.22);
}

.js-hm-toggle {
    color: var(--primary-color);
}

#reservation_form_step2 {
    display: none;
}

textarea.check_text {
    width: 600px;
    font-size: 12px;
}

#reservation_calendar tr.cameraman_shift td {
    background: #fff3f8;
}

#reservation_calendar tr.cameraman_shift div {
    padding: 4px;
    text-align: center;
}

#information_preview_section  {
    font-size: .96rem;
    line-height: 1.9;
    color: #4b3a41;
}

#information_preview_section h4{
  margin: 0 0 8px;
  font-size: 1.05rem;
  font-weight: 700;
  color: #5b2f44;
  line-height: 1.5;
  position: relative;
  padding-left:40px;

}
#information_preview_section h4::before {
    content: "1";
    position: absolute;
    left: 0px;
    top: 0px;
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, #ffb6d3, #d8c4ff);
    color: #fff;
    font-weight: 700;
    font-size: .95rem;
    border-radius: 999px;
    box-shadow: 0 4px 10px rgba(198, 119, 164, .35);
}

#information_preview_section p {
    padding-left: 40px;
}













/* =========================
   ページ項目セクション（下線のみ）
========================= */
section.page_items {
    background: #fff7fb;
    padding: 8px 0;
    margin: 20px auto;
    max-width: 420px;
}

/* リスト全体 */
section.page_items ol {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* 各項目 */
section.page_items li.page_item a {
    display: block;

    padding: 14px 16px;
    background: transparent;

    border-bottom: 1px solid #f0cfe0;

    font-size: 15px;
    font-weight: 600;
    color: #7a3d5a;
    text-decoration: none;

    transition: background 0.15s ease, color 0.15s ease;
}

/* 最後だけ線を消す場合（任意） */
section.page_items li.page_item:last-child a {
    border-bottom: none;
}

/* ホバー：背景だけ薄く */
section.page_items li.page_item a:hover {
    background: #fff0f7;
}

div.page_contents {
  font-size: .96rem;
  line-height: 1.9;
  padding: 5px;
}
div.page_category {
    text-align: right;
}
div.page_category a {
    font-size: 16px;
    text-decoration: none;
    color: var(--primary-color);
}

/* スマホ */
@media (max-width: 480px) {
    section.page_items {
        max-width: 100%;
        margin: 10px 0;
    }

    section.page_items li.page_item a {
        font-size: 14px;
        padding: 12px 14px;
    }
}

div.search_and_paging {
    padding: 15px 5px;
    display: grid;
    grid-template-columns: auto 400px;
    position: relative;
    height: 30px;
}

div.search_and_paging_relative {
    position: relative;
    height: 60px;
}

.pagination {
    display: flex;
    justify-content: start;
    align-items: center;
    gap: 5px;
    position: absolute;
    top: 15px;
    right: 10px;
}
.pagination-btn {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 30px;
    height: 30px;
    border-radius: var(--border-radius);
    border: none;
    cursor: pointer;
    background: #ddd;
    white-space: nowrap;
    overflow:hidden;
}
.pagination-btn[data-len="3"]{
    font-size:12px;
}
.pagination-btn[data-len="4"]{
    font-size:10px;
}
.pagination-btn[data-len="5"]{
    font-size:10px;
}

.pagination-btn.active {
    background-color: var(--primary-color);
    color: white;
    font-weight: var(--font-weight-bold);
}

#modalReservationForm #reservation_form_step1,
#modalReservationForm #reservation_form_step2
 {
    padding-top: 0px;
}

#modalReservationForm #reservation_form_step1 div.modal-header,
#modalReservationForm #reservation_form_step2 div.modal-header
{
    padding-top: 10px;
}

#reservation_form_step1 label,
#reservation_detail label{
    margin-right: 10px;
}

#modalReservationForm div.hissu,
#reservation_detail div.hissu {
    color: #c00;
}

#modalReservationForm div#background_mood_3 {
    display: block;
}
#modalReservationForm div#background_mood_3 div {
    display: block;
}

#modalReservationForm div.form_description,
#reservation_detail div.form_description
 {
    margin-top: 20px;
    font-size: 11px;
    color: #888;
}

#modalReservationForm #edit_photo_clothing {
    width: 80px;
}
#modalReservationForm textarea.request_text,
#reservation_detail textarea.request_text{
    width: 100%;
    height: 100px;
}

div#upload_images {
    text-align: center;
    margin: 10px;
}

div#upload_images .drop-area {
    border: 3px dashed #ddd !important;
    border-radius: 5px;
    text-align: center;
    background-color: rgb(249, 249, 249) !important;
    background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19.479 10.092c-.212-3.951-3.473-7.092-7.479-7.092-4.005 0-7.267 3.141-7.479 7.092-2.57.463-4.521 2.706-4.521 5.408 0 3.037 2.463 5.5 5.5 5.5h13c3.037 0 5.5-2.463 5.5-5.5 0-2.702-1.951-4.945-4.521-5.408zm-7.479-1.092l4 4h-3v4h-2v-4h-3l4-4z" fill="gray"/></svg>');
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 50px 50px;
}

div#upload_images .drop-area label {
    width: 110px;
    height: 110px;
    display: inline-block;
}

div#upload_images .drop-area input[type=file] {
    display: none;
}

div#modalReservationForm div#sample_images {
    display: block;
}

div#sample_images div.upload_image {
    max-width: 150px;
    max-height: 300px;
    border: 1px solid var(--border-color);
    padding: 4px;
    position: relative;
    display: inline-block;
    margin-right: 5px;
}

span.atension {
    font-size: 11px;
    color: #aaa;
}

div#sample_images div.upload_image .img_upload_delete_btn {
    position: absolute;
    top: 0px;
    right: 0px;
    cursor: pointer;
}

div#sample_images div.upload_image img{
    max-width: 100%;
}

div.qr_image img {
    width: 100%;
}
div.onetime_pass_area {
    width: 280px;
    margin: auto;
}
div.onetime_pass_area input {
    font-size: 22px;
    width: 178px;
    padding-left:10px;
}

#reservation_counter {
    border: 1px solid #f4dbe8;
    border-radius: 10px;
    padding: 5px 20px;
    width: fit-content;
    min-width: 280px;
    margin: 10px auto;
}

#reservation_counter div {
    font-size: 16px;
    font-weight: bold;
    margin: 10px 0;
    padding-left: 30px;
    position: relative;
    letter-spacing: 0.05em;
}

/* アイコンっぽく見せる装飾 */
#reservation_counter div::before {
    content: '🗓️';
    position: absolute;
    left: 0;
    font-size: 18px;
}

/* 予約数0のときはちょっと残念な感じに */
#reservation_counter div:first-child {
    opacity: 0.8;
}

/* 予約できるときはキラキラさせる */
#reservation_counter div:last-child {
    color: var(--primary-color);
    font-size: 18px;
    text-shadow: 1px 1px 0px #fff;
}

#reservation_counter div:last-child::after {
    content: ' ✨';
}
section#privacy,
section#terms {
    max-width: 98%;
    margin: 20px auto;
    min-width: auto;
    background: #fff;
}

#privacy h5,
#terms h5 {
    margin-top: 20px;
    font-size: 16px;
}

#privacy ol,
#terms ol {
    margin-top: 20px;
}
#terms ol li{
    list-style-type: decimal;
    margin-left: 20px;
    font-size: 14px;
    margin-top: 5px;
}
#privacy ol li {
    list-style: none;
    margin-left: 20px;
    font-size: 14px;
    margin-top: 5px;
}
#privacy hr,
#terms hr {
    margin-top: 40px;
    border: 1px solid #eee;
}

#terms ul li {
    list-style: none;
}
#privacy ul li {
    list-style: disc;
}

#privacy ul.supplementary li,
#terms ul.supplementary li {
    list-style-type: none;
    text-align: right;
    font-size: 14px;
    font-weight: 500;
}

#company dl  {
    margin-top: 50px;
}
#company dl dt {
    font-size: 18px;
    font-weight: 700;
    margin-top: 20px;
}

#company dl dd {
    font-size: 18px;
}

/* フッター全体のスタイル */
.footer {
    background-color: #f9f9f9; /* スクリーンショットの背景に近い薄いグレー */
    padding: 40px 20px;
    border-top: 1px solid #eee;
    text-align: center;
}

/* メニューリストのスタイル */
.footer_menu {
    list-style: none;
    padding: 0;
    margin: 0 0 20px 0;
    display: flex;
    justify-content: center;
    flex-wrap: wrap; /* スマホで折り返せるように */
    gap: 15px 25px; /* メニュー間の間隔 */
}

/* リンクテキストのスタイル */
.footer_menu li a {
    color: #e91e63; /* ヘッダーのボタンに近いピンク色 */
    text-decoration: none;
    font-size: 14px;
    font-weight: bold;
    transition: opacity 0.3s;
}

/* ホバー（マウスを乗せた時）の演出 */
.footer_menu li a:hover {
    opacity: 0.7;
    text-decoration: underline;
}

/* コピーライト（著作権表示） */
.copyright {
    color: #888;
    font-size: 12px;
    margin: 0;
}

@media (max-width: 500px){
    .is_pc {
        display: none !important;
    }
    a.notice_link {
        margin-right: 5px;
    }

    div#bg div.contents {
        padding: 0px;
        margin-bottom: 10px;
    }
    div.top_my_reservation div.contents.studio_shift {
        margin-left: 0px;
    }

    #reservation_calendar, #reserved_info {
        padding: 5px;
        border-radius: 0px;
        max-width: 100%;
        min-width: 100%;
    }

    div.header_menu {
        position: sticky;
        top: 56px;                          /* headerがコンパクトになった分 */
        display: block;
        padding: 0px 0px 10px 0px;
    }

    div.header_menu div.menu {
        width: 100%;
        display: none;
    }
    div.header_menu ol {
        width: 100%;
        display: flex;
        flex-flow: column;
        align-items: start;
    }
    div.header_menu ol li {
        text-align: left;
        background: #fff;
        width: 100%;
        padding-left: 20px;
        border: 3px solid var(--primary-color);
        margin-bottom: -3px;
    }
    div.header_menu ol li a{
        color: var(--primary-color);
    }
    div.account_info {
        border-left: none;
    }

    div.studio_shift #reserved_info table {
        min-width: auto;
        border-collapse: collapse;
    }
    div.studio_shift #reserved_info tbody td {
        text-align: left;
        position: relative;
        padding-left: 140px;
        height: 45px;
        display: flex;
        align-items: center;
        gap: 8px;
        min-height: 44px;
    }
    span.table_th {
        display: block;
        position: absolute;
        top: 0px;
        left: 0px;
        background: var(--primary-color);
        color: #fff;
        width: 100px;
        height: 100%;
        padding: 5px;
        text-align: center;
        padding-top: 10px;
    }
    div.studio_shift #reserved_info tbody td:last-child, div.studio_shift #reserved_info thead th:last-child {
        border-right: 1px solid #f1e3ea;
    }
    #reserved_info table {
        width: 100%;
    }
    #reserved_info table thead {
        display: none;
    }
    #reserved_info table tr {
        display: flex;
        flex-flow: column;
    }

    /*
        トップページ
    */
    #reservation_calendar .top_reservation_calendar {
        display: block;
    }

    #reservation_calendar .top_month_calendar {
        margin-bottom: 10px;
    }

    #information {
        padding: 5px;
        border-radius: 0px;
        max-width: 100%;
        min-width: 100%;
    }


    /*
        撮影予約
    */
    div.studio_shift #reservation_calendar, div.studio_shift #reserved_info {
        border-radius: 0px;
    }
    div.studio_shift #reservation_calendar table.reservation_search {
        width: 100%;
        min-width: 100%;

    }

    div.studio_shift #reservation_calendar table.reservation_schedule_day thead tr th:nth-child(1), 
    div.studio_shift #reservation_calendar table.reservation_schedule_week thead tr th:nth-child(1) {
        width: 50px;
    }

    table.reservation_search thead {
        display: none;
    }

    table.reservation_search tbody tr {
        display: grid;
        grid-template-columns: 1fr 1fr; /* 左=本文, 右=ボタン */
        grid-template-rows: auto auto auto;
        grid-template-areas:
        "date   action"
        "time   action"
        "studio action";
        gap: 8px 12px;
        align-items: center;

        padding: 12px;
        border: 1px solid #f4dbe8;
        border-radius: 10px;
        background: #fff;
        box-shadow: 0 3px 10px rgba(160, 93, 126, 0.06);
        margin-bottom: 10px;
    }
    table.reservation_search tbody tr.no_grid {
        display: table-row;
    }
    div.studio_shift #reservation_calendar table.reservation_search tbody tr.no_grid td:nth-child(1) {
        display:table-cell;
        border: 1px solid #f7edf2;
    }

    div.studio_shift #reservation_calendar table.reservation_search tbody,
    div.studio_shift #reservation_calendar table.reservation_search tr,
    div.studio_shift #reservation_calendar table.reservation_search td
    {
        width: 100%;
    }

    div.studio_shift #reservation_calendar table.reservation_search tbody td {
        height: 60px;
    }

    div.studio_shift #reservation_calendar table.reservation_search tbody tr td:nth-child(1) {
        border-bottom: none;
        padding: 0;
        display: flex;
        align-items: flex-end;
        grid-area: date;
        grid-row: 1 / 2;
        grid-column: 1 / 2;
    }
    div.studio_shift #reservation_calendar table.reservation_search tbody tr td:nth-child(2) {
        border-top: none;
        grid-area: time;
        display: flex;
        align-items: flex-end;
        grid-row: 2 / 3;
        grid-column: 1 / 2;
    }
    div.studio_shift #reservation_calendar table.reservation_search tbody tr td:nth-child(3) {
        border-bottom: none;
        padding: 5px;
        display: flex;
        align-items: center;
        justify-content: center;
        grid-area: studio;
        background: #fff7fb;
        border: 1px dotted #f0cfe0;
        grid-row: 3 / 4;
        grid-column: 1 / 2;
    }
    div.studio_shift #reservation_calendar table.reservation_search tbody tr td:nth-child(4) {
        text-align: center;
        grid-row: 1 / 3;
        grid-column: 2 / 3;
    }
    div.studio_shift #reservation_calendar table.reservation_search tbody tr td:nth-child(4):before {
        content: "カメラマン：";
    }
    div.studio_shift #reservation_calendar table.reservation_search tbody tr td:nth-child(5) {
        grid-row: 3 / 4;
        grid-column: 2 / 3;
        text-align: center;
    }

    /* td内の余計なテーブルっぽさを消す（任意） */
    .contents.studio_shift #reservation_calendar table tbody tr[id^="rid_"] > td{
        padding: 0;
        border: none;
        background: transparent;
        height: auto;
        text-align: left;
    }

    /* ボタンが大きすぎる場合の保険（任意） */
    .contents.studio_shift #reservation_calendar table tbody tr[id^="rid_"] > td:nth-child(4) .btn{
        white-space: nowrap;
    }


    div.informatoin_auto_height {
        max-height: 100%;
    }

    /*
        通知設定
    */

    #notice_setting {
        border-radius: 0px;
    }
    #notice_setting th {
        width: 100px;
        font-size: 12px;
    }

    /*
        スタジオ担当表
    */
    div.studio_shift #reservation_calendar thead th:first-child, div.studio_shift #reserved_info thead th:first-child {
        width: 100px;
    }
    div.studio_shift #reservation_calendar .calendar_date {
        width: 100px;
        position: sticky;
        left:0px;
        z-index: 2;
        background: #fff;
    }

    /*
        予約詳細
    */
    #reservation_detail, #studio_detail {
        border-radius: 0px;
    }
    #reservation_detail th, #studio_detail th {
        width: 80px;
        font-size: 12px;
    }

    select, input, textarea {
        padding: 5px 3px;
        font-size: 14px;
    }
    select.change_form {
        margin-right: 0px;
    }
    span.end_datetime {
        display: none;
    }
    #modalConfirm div.modal-window {
        min-width: 10px;
    }

    .modal-window div.btn_area div .btn {
        width: 100px;
        font-size: 12px;
    }

    #modalReservationForm.modal-overlay2 {
        padding: 3px;
    }
    #modalReservationForm .modal-header {
        padding: 0px;
    }
    #modalReservationForm .modal-title {
        font-size: 12px;
    }
    .modal-window {
        padding: 10px;
        max-width: 99%;
    }
    #modalReservationForm .modal-window {
        border-radius: 5px;
    }
    #modalReservationForm th {
        width: 100px;
        max-width: 70px;
        font-size: 12px;
        padding: 5px 2px;
    }

    #modalReservationForm td {
        font-size: 12px;
    }
    #modalReservationForm td div {
        line-height: 1.2;
    }
    #modalReservationForm textarea.check_text {
        width: 100%;
        max-height: 70px;
    }
    div.studio_shift #reservation_calendar table.reservation_calender_month tbody td div.premium_view {
        font-size: 9px;
        padding: 4px 0px;
        white-space: nowrap;
    }

    #reservation_form_step1 th,
    #reservation_form_step1 td {
        display: block;
        width: 100%;
        max-width: 100%;
    }

    #reservation_detail .submit_button_area {
        text-align: center;
    }
    #reservation_detail .submit_button_area button {
        margin-bottom: 20px;
    }
    #reservation_detail .submit_button_area #cancel_btn{
        margin-left: 0px;
    }

    #reservation_detail th,
    #reservation_detail td,
    #studio_detail th,
    #studio_detail td {
        display: block;
        width: 100%;
        max-width: 100%;
    }
}

@media screen and (min-width: 501px) and (max-width: 900px){
    #reserved_info table thead {
        display: none;
    }
    div.menu ol li a {
        font-size: 12px;
    }
    div.account_info {
        font-size: 12px;
    }
    div.contents section#reserved_info table {
        width: 100%;
        min-width: 100%;
    }
    div.contents section#reserved_info table tbody tr {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-auto-rows: auto;
        gap: 12px;            /* 好みで */
    }

    div.contents section#reserved_info table tbody td {
        position: relative;
        padding-top: 20px;
        height: 60px;
    }
    span.table_th {
        display: inline !important;
        position: absolute;
        top: 0px;
        left: 0px;
        background: var(--primary-color);
        color: #fff;
        text-align: center;
        padding: 3px;
    }


    /*
        トップページ
    */

    div.top_contents #reservation_calendar {
        max-width: 100%;
        min-width: 100%;
    }

    #reservation_calendar .top_reservation_calendar {
        display: block;
    }

    #reservation_calendar .top_month_calendar {
        margin-bottom: 10px;
    }

    #information {
        padding: 5px;
        border-radius: 0px;
        max-width: 100%;
        min-width: 100%;
    }


    /*
        撮影予約
    */
    div.studio_shift #reservation_calendar, div.studio_shift #reserved_info {
        border-radius: 0px;
    }
    div.studio_shift #reservation_calendar table.reservation_search {
        width: 100%;
        min-width: 100%;
    }

    div.studio_shift #reservation_calendar table.reservation_schedule_day thead tr th:nth-child(1), 
    div.studio_shift #reservation_calendar table.reservation_schedule_week thead tr th:nth-child(1) {
        width: 40px;
    }
    span.end_datetime {
        display: none;
    }

}

@media screen and (min-width: 901px) and (max-width: 1365px){
    section#reservation_calendar, section#information {
        max-width: 100%;
        width: 100%;
    }

}

@media  (min-width: 501px){
    .is_mobile {
        display: none !important;
    }
    .js-hm-toggle {
        display: none !important;
    }
}
