@charset "euc-jp";

body {
  background-color: #fff;
  background-image: url(https://img.shop-pro.jp/tmpl_img/73/bg.gif);
  color: #464e54;
}
a {
  color: #464e54;
}
a:hover {
  color: #5e5e5e;
}

/* Layout */
#wrapper {
  max-width: 1140px;
}

/* Topic Path */
#contents .topicpath-nav {
  margin-bottom: 5px;
  font-size: 0.9em;
}
#contents .topicpath-nav li {
  padding: 0;
  display: inline;
}
#contents .topicpath-nav li:not(:last-child)::after {
  content: ">";
  margin: 0 5px;
}
#contents .topicpath-nav a {
  margin-left: 0;
}

/* General H3 heading style */
h3 {
  border-bottom: 2px solid #861515; /* 下線の色をフォントカラーと統一 */
  padding-bottom: 0.3em;         
  margin-bottom: 0.8em;
  color: #861515; /* 見出し色を指定 */
}

/* Utility classes (font, bg, border, va) - existing */
.txt_l { text-align: left; }
.txt_c { text-align: center; }
.txt_r { text-align: right; }
.txt_fwn { font-weight: normal; }
.txt_fwb { font-weight: bold; }
.txt_10 { font-size: 0.625rem; }
.txt_12 { font-size: 0.75rem; }
.txt_14 { font-size: 0.875rem; }
.txt_16 { font-size: 1rem; }
.txt_18 { font-size: 1.125rem; }
.txt_20 { font-size: 1.25rem; }
.txt_24 { font-size: 1.5rem; }
.txt_28 { font-size: 1.75rem; }
.txt_c_333 {color: #333;}
.bgc_gray { background-color: #f1f1f1; }
.bor_t_1 { border-top: 1px solid #eee; }
.bor_r_1 { border-right: 1px solid #eee; }
.bor_b_1 { border-bottom: 1px solid #eee; }
.bor_l_1 { border-left: 1px solid #eee; }
.va-10 { vertical-align: -10%; }
.va-20 { vertical-align: -20%; }
.va-30 { vertical-align: -30%; }
.va-35 { vertical-align: -35%; }
.va-40 { vertical-align: -40%; }

/* Header Navigation Menu Styling */
.top-nav-menu {
  padding-top: 15px;
  padding-bottom: 15px;
  text-align: center; 
}
.top-nav-menu li {
  display: inline-block; 
}
.top-nav-menu li a {
  position: relative;
  padding: 8px 15px;
  text-decoration: none;
  border-radius: 25px;
  transition: background-color 0.3s ease, box-shadow 0.3s ease, color 0.3s ease;
  display: inline-flex;
  align-items: center;
}
.top-nav-menu li a:hover,
.top-nav-menu li a:focus {
  color: #5e5e5e;
  background-color: #e9e9e9;
  box-shadow: 0 0 0 2px #464e54;
  outline: none;
}
.top-nav-menu li a i {
  margin-right: 8px;
}

/* Sidebar General */
#side .unstyled img {
  display: block;
  margin-bottom: 5px;
  max-width: 100%;
  height: auto;
}
.side-item h3 { /* This will inherit the new h3 color and border */
  font-size: 1.1em; 
  line-height: 1.3;
}

.hidden-content-section {
  display: none !important;
}

/* Sidebar 2-Column Structure */
.new-sidebar-section {
  margin-left: -15px;
  margin-right: -15px;
}
.new-sidebar-section::before,
.new-sidebar-section::after {
  display: table;
  content: " ";
}
.new-sidebar-section::after {
  clear: both;
}

.sidebar-left-column, .sidebar-right-column {
  position: relative;
  min-height: 1px;
  padding-left: 15px;
  padding-right: 15px;
  box-sizing: border-box;
  width: 100%;
  float: none;
  margin-bottom: 20px;
}

@media (min-width: 992px) { /* Bootstrap 'md' breakpoint */
  .sidebar-left-column, .sidebar-right-column {
    float: left;
    width: 50%;
  }
}

.sidebar-section {
  margin-bottom: 30px; 
  font-size: 0.9em; 
  line-height: 1.6;
}

.sidebar-section-title { /* This class is applied to h3 in the sidebar sections */
  font-size: 1.25em;   
  font-weight: bold;
  color: #861515; /* 見出し色を指定 */
  text-align: left !important; 
  /* General h3 style (border-bottom, padding-bottom, margin-bottom) will also apply */
}
.sidebar-section-title.pad_l_10 { 
    padding-left: 10px; 
}


/* Shop Info & Access Section dt/dd styling */
.shop-details-list dt,
.hours-sub-details dt,
.period-sub-details dt,
.access-details-list dt {
  font-weight: normal; 
  margin-top: 0.5em;
}
.shop-details-list dd,
.hours-sub-details dd,
.period-sub-details dd,
.access-details-list dd {
  margin-left: 1.5em; 
  margin-bottom: 0.5em;
}
.hours-sub-details, .period-sub-details {
  margin-left: 0; 
}
.hours-sub-details dt, .period-sub-details dt {
  margin-top: 0.2em;
}
.period-sub-details dt:first-child {
    margin-top:0; 
}
.shop-info-section p {
  margin-bottom: 0.8em;
}
.shop-info-section p strong:first-child { 
    font-size: 1.1em; 
}
.shop-info-section p small {
  font-size: 0.9em;
  color: #555;
  display: block; 
  margin-top: 0.3em;
}

/* Access Section */
.access-section .map-container {
  margin-top: 10px;
  position: relative;
  width: 100%;
  padding-bottom: 75%; 
  height: 0;
  overflow: hidden;
  border: 1px solid #ccc; 
}
.access-section .map-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0; 
}

/* QR Code centering (content only) */
.sidebar-section .txt_c { 
    text-align: center;
}

/* External Links Section */
.external-links-section h3.sidebar-section-title {
    text-align: left !important; 
}
.external-links-section .txt_c .btn-tabelog { 
}
.btn-tabelog {
  display: inline-block;
  padding: 10px 20px;
  background-color: #f08000; 
  color: #fff !important;
  text-decoration: none;
  font-weight: bold;
  border-radius: 5px;
  text-align: center;
  transition: background-color 0.3s ease;
  border: none;
}
.btn-tabelog:hover {
  background-color: #e07000; 
  color: #fff !important;
}

/* Shop Owner Info Section (Restored from template) */
.shop-owner-info-section {
}
.shop-owner-info-section h3.sidebar-section-title {
}
.shop-owner-info-section img.mar_auto { 
    margin-left: auto;
    margin-right: auto;
}
.shop-owner-info-section .txt_c {
    text-align: center;
}
.shop-owner-info-section .mar_t_10 {
    margin-top: 10px;
}
.shop-owner-info-section .mar_b_10 {
    margin-bottom: 10px;
}


/* Calendar Styles - Reverted to previous state (before component instructions) */
.calendar-section-container h3.sidebar-section-title { 
  /* This h3 will now use the general h3 and .sidebar-section-title styles */
}

div.side_cal { 
  font-family: sans-serif; 
}

div.side_cal > table.tbl_calendar {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  margin-bottom: 20px; 
  background-color: #fff; 
  padding: 0;      
  border-radius: 4px;     
  box-shadow: 0 1px 3px rgba(0,0,0,0.1); 
  border: 1px solid #ddd; 
}

div.side_cal > table.tbl_calendar caption {
  font-size: 1.2em; 
  font-weight: bold;
  /* color property removed, will inherit from body */
  text-align: center;
  padding: 10px 0; 
  border-bottom: 1px solid #eee; 
}

div.side_cal > table.tbl_calendar th {
  background-color: #f7f7f7 !important; 
  font-weight: normal;
  color: #333 !important; 
  font-size: 0.85em; 
  padding: 8px 0; 
  text-align: center;
  border-bottom: 1px solid #ddd;
  border-left: 1px solid #eee; 
}
div.side_cal > table.tbl_calendar th:first-child {
  border-left: none;
}
div.side_cal > table.tbl_calendar th.sun {
  color: #d9534f !important; 
}
div.side_cal > table.tbl_calendar th.sat {
  color: #333 !important; 
}

div.side_cal > table.tbl_calendar td {
  border: 1px solid #eee; 
  padding: 5px 0;      
  text-align: center;
  box-sizing: border-box;
  font-size: 0.9em; 
  height: auto; 
  min-height: 35px; 
  vertical-align: top; 
  padding-top: 8px; 
  background-color: #fff !important; 
  color: #333 !important;          
}

div.side_cal > table.tbl_calendar td[style*="background-color: #FFF2F2"],
div.side_cal > table.tbl_calendar td[style*="background-color: #fff2f2"],
div.side_cal > table.tbl_calendar td.holiday { 
  background-color: #FFF2F2 !important;
  color: #DB5656 !important;
}

div.side_cal > table.tbl_calendar td.sun {
  color: #d9534f !important; 
}

div.side_cal > table.tbl_calendar td.sat {
  /* No specific color for Saturday dates unless it's a holiday */
}


div.side_cal > table.tbl_calendar td:empty { 
  background-color: #f9f9f9 !important; 
  visibility: visible; 
  border-color: #f0f0f0; 
}

.side_cal_memo {
  margin-top: 15px;
  padding-left: 0; 
  font-size: 0.9em;
  color: #555;
  line-height: 1.5;
}

/* Responsive styles for calendar text, etc. */
@media (max-width: 767px) { 
  div.side_cal > table.tbl_calendar caption { font-size: 1.1em; padding: 8px 0; }
  div.side_cal > table.tbl_calendar th { font-size: 0.8em; padding: 6px 0; }
  div.side_cal > table.tbl_calendar td { font-size: 0.85em; min-height: 30px; padding-top: 6px;}
  h3, .side-item h3, .sidebar-section-title { font-size: 1.15em; } 
}
@media (max-width: 480px) { 
  div.side_cal > table.tbl_calendar caption { font-size: 1em; padding: 6px 0; }
  div.side_cal > table.tbl_calendar th { font-size: 0.75em; padding: 5px 0;}
  div.side_cal > table.tbl_calendar td { min-height: 28px; padding-top: 5px; font-size: 0.8em;}
  h3, .side-item h3, .sidebar-section-title { font-size: 1.1em; }
  .btn-tabelog { padding: 8px 15px; font-size: 0.9em;}
  .shop-details-list dd,
  .hours-sub-details dd,
  .period-sub-details dd,
  .access-details-list dd {
    margin-left: 1em; 
  }
}

/* Icons and Slideshow styles (existing) */
/* ... (icon styles) ... */
/* ... (slideshow styles) ... */
