/*###################################################
#     メイン
###################################################*/

html,body {
  min-height: 100vh;
  position: relative;
}

p {
  margin-bottom: 0.7em;
}

body .card {
  margin-bottom: 15px;
}

.clear {
  clear: both;
}

h1.page-header {
  margin-top: 0;
}

/*###################################################
#     編集画面
###################################################*/

.page-node-type-schedule #content-top h1.page-header strong {
  display: block;
  padding-bottom: 15px;
}

.node-schedule-form input#edit-field-welcome-message-0-value {
  height: 42px;
}

.field--name-field-user label.control-label {
  padding:0px 0px  15px 20px;
  width: 48%;
  display: block;
  float: left;
}

.field--name-field-user .field--name-field-user .form-checkboxes input[type=checkbox] {
  margin-right: 10px;
  position: relative;
  top: 0px;
}

div.field--name-field-user {
  padding-top: 1em;
  clear: both;
}

#edit-body-0-format-help {
  display: none;
}

.view-schedule {
  position: relative;
}

body .view-schedule h4 {
  padding-top: 5px;
  padding-bottom: 5px;
}

body .view-grouping-header {
  padding-bottom: 1em;
}

.schedule-edit {
  position: fixed;
  bottom: 20px;
  left: 20px;
  padding: 10px 20px;
  z-index: 1000;
}

.pickup-edit {
  position: absolute;
  top: 0px;
  right: 0px;
}

/*###################################################
#     色指定
###################################################*/

/* メインカラー　#3f1b2c */

/* 薄いメインカラー #6a4b5a */

/* 背景色 #f3f4f8 */

/* ナビバーの茶色 #a36b46 */

/* ナビバー */

/* 電話番号 */

/*###################################################
#     メインコンテナ main container
###################################################*/

.main-container:after {
  height: 10em;
  display: block;
}

.main-container {
  margin-bottom: -10em;
}

/*###################################################
#     フッター footer
###################################################*/

footer, footer.footer {
  width: 100%;
  padding: 0px;
  padding-top: 20px;
  padding-bottom: 30px;
}

footer.footer .field {
  clear: both;
  padding: 1em;
  width: 100%;
}

footer.footer ul.menu {
  width: 100%;
  margin: 0px;
}

footer ul.caution {
  padding: 0px;
  margin: 0px;
}

footer ul.caution li  {
  margin-left: 1.0em;
}

footer ul.caution li:before  {
  display: inline;
  padding-right: 0.3em;
  padding-left: 0.2em;
}

/*###################################################
#    ナビバー navbar
###################################################*/

.navbar-brand {
    padding-left: 0px;
    padding-right: 50px;
    display: block;
}

a.site-title,
a:hover.site-title {
  display: none;
}

#block-telnumber-b5 {
  float: right;
}

#telnumber {
    margin-top: 6px;
    padding: 0px;
}

#telnumber a {
    display: inline-block;
    float: none;
}

#telnumber span {
    padding: 0px 1em 0px 0px;
    margin: 0px;
    display: block;
    float:left;
}

@media (max-width: 767px) {
    #telnumber {
    }
    #telnumber > span {
        display: block;
        float: none;
        padding: 0;
    }
    #telnumber span.bi-earphone {
        display: block;
        float: none;
        padding: 0;
        margin-bottom: 5px;
    }
    #telnumber a {
        display: block;
        float: none;
    }
}

a.site-logo img {
    width: 140px;
    height: auto;
    margin: 0px;
    padding: 0px;
}

a.site-logo {
    padding: 9px 10px 4px 0px;
    margin: 0px;
    display: block;
}

header.navbar-static-top {
  margin: 0px;
}

#navbar {
    padding-bottom: 0px;
}

#navbar .navbar-nav .nav-item {
    padding: 0px 10px 12px 10px;
}

#navbar .navbar-nav .nav-item .nav-link {
    padding: 15px 0px 0px 0px;
}

/* Navbar flexible wrapping layout */

/* Hamburger Button Animation */

.animated-toggler {
  width: 40px;
  height: 40px;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.toggler-line {
  display: block;
  width: 18px;
  height: 2px;
  margin: 4px 0;
}

/* X state when opened (not collapsed) */

body .animated-toggler .middle-line {
  display: none;
}

@media (max-width: 991px) {
  body #navbar {
    position: relative;
    z-index: 100;
  }
  
  /* Make header elements white on the theme color background */
  
  /* Full screen animated overlay */
  body #navbarSupportedContent {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    z-index: -1;
    padding: 20px;
    height: 100vh;
    overflow-y: auto;
    display: block;
  }
  
  body #navbarSupportedContent.show,
  body #navbarSupportedContent.collapsing {
    height: 100vh !important;
    overflow-y: auto;
  }
  
  /* Enlarge menu text */
  #navbarSupportedContent .nav-link {
    padding: 15px 10px;
  }
}

@media (min-width: 992px) {
  #navbarSupportedContent {
    flex-wrap: wrap;
  }
  
  .region-nav-main {
    margin-right: auto;
  }
  
  body .region-nav-main .navbar-nav {
    justify-content: flex-start;
    flex-wrap: nowrap;
  }
  
  .region-nav-additional {
    margin-left: auto;
  }
}

.navbar-header {
    width: 100%;
    min-height: 50px;
}

.navbar-is-fixed-top .main-container {
  padding-top: 50px;
}

button.navbar-toggler {
    margin-right: 0px;
}

/*###################################################
#     サイドバー
###################################################*/

.region-sidebar-second .container-fluid {
  padding: 0px;
}

.region-sidebar-second h2.block-title {
  margin-top: 0px;
}

.well .region-sidebar-second h2.block-title {
  padding-top: 0px;
}

body .region-sidebar-first .block,
body .region-sidebar-second .block {
  margin-bottom: 15px;
}

.view-new-face .row {
  justify-content: center;
}

/* 以下サイドバーの個別設定 */

.region-sidebar-second .well.cosplay .inner {
  display: block;
  padding: 30px 0px;
  margin: 0px;
}

.region-sidebar-second .well.cosplay span.lead {
  width: 100%;
  display: block;
  margin: 0px;
}

.region-sidebar-second .well.video {
  padding: 10px 0px 110px 0px;
}

/*###################################################
#     画像
###################################################*/

img {
  display: block;
  height: auto;
  max-width: 100%;
}

.view-schedule img {
  display: block;
  height: auto;
  max-width: 100%;
}

/*###################################################
#     コンテンツトップ content top　（ページタイトルのデフォルト設定）
###################################################*/

body:not(.path-frontpage) #content-top {
    width: 100%;
    height: 100px;
    margin-bottom:1em;
    padding-top:1em;
    }

#content-top .container {
  padding-top: 1em;
}

/*###################################################
#
#   個別のページ設定
#
###################################################*/

/*###################################################
#     フロントページ Front Page
###################################################*/

.path-frontpage #content-top {
  padding-top:1.5em;
  position: relative;
}

.path-frontpage #content-top .container {
  display: block;
  padding-top: 250px;
}

/*###################################################
#     スケジュール編集
###################################################*/

.page-node-type-pickup-user #content-top,
.page-node-type-schedule #content-top {
  height: 150px;
  padding-top:1.5em;
  position: relative;
}

.page-node-type-pickup-user .field--label,
.page-node-type-schedule .field--label {
  padding: 0.4em 0 1em 0;
  width: 100%;
}

/*###################################################
#     スタッフ紹介（個別）
###################################################*/

.path-user #content-top.nodeid-,
.path-profile #content-top.nodeid- {
  padding-top:0px;
  height: 40px;
}

.path-user #content-top.nodeid- .container,
.path-profile #content-top.nodeid- .container {
  padding-top: 14px;
}

body.path-profile h1 {
  padding-left: 20px;
  padding-right: 20px;
  margin-bottom: 1em;
}

.user-photo {
  float: left;
  padding: 0px 2em 1em 0px;
  width: 290px;
}

@media screen and (max-width: 800px) {
  .user-photo {
    padding: 0px 0px 1em 0px;
    width: 100%;
  }
  body.path-profile .user-photo img {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    display: block;
  }
}

.user-profile-text {
  padding-bottom: 1em;
}

.user-block span {
  position: relative;
}

/*###################################################
#     スタッフ紹介（一覧）
###################################################*/

.path-stuff-list #content-top.nodeid- .container {
  padding-top: 1em;
}

.view-stuff-list .col-sm-4,
.view-stuff-list .col-sm-5 {
  padding: 5px;
}

.view-stuff-list .col-xs-6,
.view-stuff-list .col-6 {
  padding: 5px;
}

.view-stuff-list .view-content {
  margin-top: 1em;
}

.path-frontpage .view-content .col-6 {
  margin-bottom: 1em;
}

.view-stuff-list .view-content img {
    width: 100%;
    padding: 5px 5px 0px 5px;
}

.view-stuff-list span.field-content {
  display: block;
  width: 100%;
  position: relative;
}

.view-stuff-list .view-content .views-row p {
  position: relative;
}

.user-block {
  position: relative;
}

.user-block .recommend
 {
  display: block;
  width: 100%;
  height: 1em;
  position: absolute;
  bottom: -8px;
}

.view-stuff-list .recommend
 {
  display: block;
  width: 100%;
  height: 1em;
  bottom: -8px;
}

/* Schedule view small tag size */

/* Sidebar Custom Block Margin */

.order-lg-1.col-lg-3 .block-block-content,
.order-3.col-lg-3 .block-block-content,
.order-4.col-lg-3 .block-block-content {
  margin-bottom: 15px;
}

/* Remove padding from pickup block card body */

body .block-block-content:has(.list-group-item) .card-body {
  padding: 0;
}

/* Remove underlines from all links */

/* stuff-list2 styling */

.path-stuff-list .views-row,
.path-stuff-list .user-data {
  position: relative;
}

.path-stuff-list .col-6 {
  margin-bottom: 1em;
}

.path-stuff-list .recommend {
  display: block;
  width: 100%;
  height: 1em;
  position: absolute;
  bottom: -8px;
}

/* User data styling (global defaults, may be overridden) */

.user-data {
  display: block;
  margin-bottom: 1em;
}

.user-data p {
  margin-bottom: 0;
}

/*###################################################
#     求人情報
###################################################*/

body:not(.path-frontpage) #content-top.nodeid-4 {
  height: 500px;
  padding-top: 1em;
}

/*###################################################
#     店内風景
###################################################*/

body:not(.path-frontpage) #content-top.nodeid-2 {
  height: 400px;
  padding-top: 1em;
}

/* Mobile full-width blocks */

/* /system page table padding */

body article[data-history-node-id="1"] table th,
body article[data-history-node-id="1"] table td {
  padding-left: 20px;
  padding-right: 20px;
}

/* node page content wrapper padding (covers /system, /room, /access, /recruit) */

body article.node--type-page .node__content {
  padding-left: 20px;
  padding-right: 20px;
}

/* profile page text content padding */

body.path-profile .user-profile-text,
body.path-profile .user-data {
  padding-left: 20px;
  padding-right: 20px;
}

/* /room & /access page mobile full-width images and iframes */

@media (max-width: 991px) {
  body article.node--type-page img,
  body article.node--type-page iframe,
  body article[data-history-node-id="2"] .node__content img,
    body article[data-history-node-id="3"] .node__content img,
    body article[data-history-node-id="3"] .node__content iframe {
      margin-left: -20px;
      margin-right: -20px;
      max-width: calc(100% + 40px);
      width: calc(100% + 40px);
    }
    body .navbar-header {
      padding-top: 2px;
      padding-bottom: 2px;
    }
  body main > .container {
      max-width: 100%;
      width: 100%;
      padding-left: 0;
      padding-right: 0;
    }
    
    body .region-sidebar-first,
    body .region-sidebar-second,
    body .region-footer,
    body .region-content {
      padding-left: 0;
      padding-right: 0;
      margin-left: 0;
      margin-right: 0;
    }
    
    

    body .block-block-content:has(.list-group-item) {
      margin-left: 25px;
      margin-right: 25px;
      margin-bottom: 15px;
    }
    
    /* /profile page mobile layout: photo at top, h1 below it */
    .path-profile main {
      position: relative;
    }
    body.path-profile #content-top {
      position: absolute;
      top: calc(100vw - 30px);
      left: 0;
      width: 100%;
      margin-top: 0;
      height: auto;
      z-index: 2;
    }
    body.path-profile #content-top .container {
      padding-left: 0;
      padding-right: 0;
    }
    body.path-profile .user-photo {
      position: static;
      float: none;
      width: calc(100vw - 50px);
      height: calc(100vw - 50px);
      margin: 20px auto 80px auto;
      padding: 0;
      z-index: 1;
    }
    body.path-profile .user-photo img {
      width: 100%;
      height: 100%;
      max-width: 100%;
      margin: 0;
      display: block;
    }
    body main .campaign-box {
      padding-top: 25px;
      padding-bottom: 25px;
      padding-left: 25px;
      padding-right: 25px;
    }
    body .campaign-box table {
      margin-bottom: 0;
    }
    body .user-block {
      margin-bottom: 15px;
    }
  body #navbar {
      position: relative;
      z-index: 100;
    }
    
    /* Make header elements white on the theme color background */
    
    body .navbar-brand,
    body .navbar-toggler {
      position: relative;
      z-index: 1060;
    }
    
    /* Full screen animated overlay */
    body #navbarSupportedContent {
      position: absolute;
      top: 100%;
      left: 0;
      width: 100%;
      z-index: -1;
      padding: 20px;
      height: 100vh;
      overflow-y: auto;
      display: block;
    }
    
    body #navbarSupportedContent.show,
    body #navbarSupportedContent.collapsing {
      height: 100vh !important;
      overflow-y: auto;
    }
    
    /* Enlarge menu text */
    #navbarSupportedContent .nav-link {
      padding: 15px 10px;
    }
}

@media (max-width: 767px) {
    body.path-stuff-list .views-row.row {
      margin-left: 0;
      margin-right: 0;
    }
    body.path-stuff-list .col-6 {
      padding-left: 10px;
      padding-right: 10px;
      margin-bottom: 1em;
    }
    body.path-stuff-list .region-content {
      padding-left: 0;
      padding-right: 0;
      margin-left: 0;
      margin-right: 0;
    }
    body .user-data {
      margin-bottom: 1em;
    }
  #telnumber {
      }
      #telnumber > span {
          display: block;
          float: none;
          padding: 0;
      }
      #telnumber span.bi-earphone {
          display: block;
          float: none;
          padding: 0;
          margin-bottom: 5px;
      }
      #telnumber a {
          display: block;
          float: none;
      }
      .region-footer #telnumber {
          margin-bottom: 1em;
      }
}

@media (max-width: 800px) {
  .user-photo {
      padding: 0px 0px 1em 0px;
      width: 100%;
    }
}

@media (min-width: 992px) {
  #navbarSupportedContent {
      flex-wrap: wrap;
    }
    
    .region-nav-main {
      margin-right: auto;
    }
    
    body .region-nav-main .navbar-nav {
      justify-content: flex-start;
      flex-wrap: nowrap;
    }
    
    .region-nav-additional {
      margin-left: auto;
    }
}

/* Add padding to text content on /user pages (excluding the profile picture) for mobile */

@media screen and (max-width: 800px) {
  body.path-user article.profile > div.field:not(.field--name-user-picture) {
    padding-left: 1rem;
    padding-right: 1rem;
  }
  
  /* Center profile picture on mobile */
  body.path-user .field--name-user-picture img {
    margin: 0 auto;
    display: block;
  }
  
  /* Profile mobile overrides for .personal-info */
  body.path-profile .personal-info p,
  body.path-user .personal-info p {
    margin: 0;
  }
  body.path-profile .personal-info,
  body.path-user .personal-info {
    margin-bottom: 0.5em;
  }
  
  /* Mobile overrides for schedule (勤務管理) content type */
  
  body.page-node-type-schedule #content-top {
    height: auto;
    padding-bottom: 1rem;
  }
  
  body.page-node-type-schedule .region-content,
  body.path-staff-management .region-content,
  body.path-user .region-content {
    padding-left: 25px;
    padding-right: 25px;
  }
  
  body.page-node-type-schedule .region-content table,
  body.path-staff-management .region-content table,
  body.path-user .region-content table {
    margin-left: -25px;
    margin-right: -25px;
    width: calc(100% + 50px);
    max-width: none;
  }
  
  /* Prevent content from hiding behind fixed navbar */
  body {
    padding-top: 60px;
  }
  
  /* Make navbar transparent and smart on mobile */

  body #navbar.navbar {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1030;
  }
}

/* Remove block (card) styling for edit link views blocks to show only the button */
body .block-block-content:has(.list-group-item) {
  padding: 0;
  margin: 0;
}
body .block-block-content:has(.list-group-item) .card-body {
  padding: 0;
}

/* .slideview */

.slideview img { width: 100%; height: auto; }

/* ====== Restored Missing Fixes ====== */

/* 1. Access Map Button */

.access-map.btn {
  padding: 10px 20px;
}

/* 2. Schedule Edit Button */

/* 3. System Page Table on Mobile */

@media (max-width: 800px) {
  body article[data-history-node-id="1"] table {
    display: table;
    width: calc(100% + 40px);
    margin-left: -20px;
    margin-right: -20px;
  }
  body article[data-history-node-id="1"] table th:first-child,
  body article[data-history-node-id="1"] table td:first-child {
    padding-left: 20px;
  }
  body article[data-history-node-id="1"] table th:last-child,
  body article[data-history-node-id="1"] table td:last-child {
    padding-right: 20px;
  }
}

/* 4. Room (2) and Recruit (4) Contents Top */

body #content-top.nodeid-2,
body #content-top.nodeid-4 {
  height: 400px;
}

@media (max-width: 767px) {
  body #content-top.nodeid-2,
  body #content-top.nodeid-4 {
    height: 400px;
  }
}

.spacer {
  padding: 0 1em;
}

/* User Photo Swipe Slider (Responsive) */

.user-photo-swipe {
  display: flex;
  overflow-x: auto;
  gap: 15px;
  padding-bottom: 15px;
}

.user-photo-swipe::-webkit-scrollbar {
  display: none;
}

.user-photo-swipe img {
  max-width: 100%;
  height: auto;
}

@media screen and (max-width: 800px) {
  .user-photo-swipe {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: 7.5vw;
    padding-right: 7.5vw;
  }
  .user-photo-swipe img {
    flex: 0 0 85vw;
  }
}

@media screen and (min-width: 801px) {
  .user-photo-swipe {
    width: 100%;
  }
  .user-photo-swipe img {
    flex: 0 0 100%;
  }
}