@import url('https://fonts.googleapis.com/earlyaccess/notosansjapanese.css');

@charset 'utf-8';
/* Oneplate: ver.202303270000 */
/*
 reset
*/
* {
  box-sizing: border-box;
  border-collapse: collapse;
  overflow-wrap: break-word;
}
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
li,
dl,
dt,
dd {
  margin: 0;
  padding: 0;
  list-style: none;
  font-weight: normal;
}
table {
  border-collapse: collapse;
}
a img {
  border: none;
}
.hotspot {
  cursor: pointer;
}
#tt {
  position: absolute;
  display: block;
  background: url(/img/tooltip/tt_left.gif) top left no-repeat;
}
#tttop {
  display: block;
  height: 5px;
  margin-left: 5px;
  background: url(/img/tooltip/tt_top.gif) top right no-repeat;
  overflow: hidden;
}
#ttcont {
  display: block;
  padding: 2px 12px 3px 7px;
  margin-left: 5px;
  background: #ccc;
  color: #333;
  font-size: 10px;
  line-height: 16px;
}
#ttcont div.schedule_title {
  font-size: 13px;
}
#ttcont div.schedule_body {
  font-size: 11px;
}
#ttbot {
  display: block;
  height: 5px;
  margin-left: 5px;
  background: url(/img/tooltip/tt_bottom.gif) top right no-repeat;
  overflow: hidden;
}
/*
 パーツ表示切替用style
*/
.site_description {
}
.shop_name {
}

.shop_tel {
}

.shop_rss {
  display: none;
}
.today_area {
  display: none;
}
.qr_area {
}
.counter_area {
}
.copyright {
}
.powered {
  display: none;
}

/*
 link(default)
*/
a:link,
a:visited {
  text-decoration: none;
  color: #3a3a3a;
}
a:hover,
a:active {
  text-decoration: none;
  color: #3a3a3a;
}
/*
 html / body / container
*/
html {
  font-size: 62.5%;
  line-height: 1.8;
  font-family: 'Noto Sans Japanese';
}
@media only screen and (max-width: 600px) {
  html {
    font-size: 46.875%;
    line-height: 1.6;
  }
}
body {
  margin: 0;
  padding: 0;
  background: #ffffff;
  font-size: 1.6em;
  color: #3a3a3a;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-y: scroll;
}

@media only screen and (max-width: 600px) {
  body {
    overflow-x: hidden;
  }
}
/*
 header
*/
#header {
  position: relative;
  left: 0;
  top: 0;
  z-index: 1000;
  width: 100%;
  margin: 0 auto;
  padding: 15px 0;
  background: #ffffff;
  box-shadow: 0 1px 10px -4px rgba(0, 0, 0, 0.6);
  -webkit-transition: top .5s;
  transition: top .5s;
}
#header > .inner {
  zoom: 1;
  position: relative;
  width: 100%;
  max-width: 960px;
  min-height: 60px;
  margin: 0 auto;
}
#header > .inner:after {
  content: '';
  display: block;
  clear: both;
}
@media only screen and (max-width: 1000px) {
  #header > .inner {
    padding-left: 20px;
    padding-right: 20px;
  }
}
#header .element {
  text-align: center;
  line-height: 1.2;
}
#header .logo {
  margin: .3em 0 .3em;
  font-weight: normal;
  font-size: 36px;
  font-size: 3.6rem;
}
#header .logo a img {
  max-width: 80%;
}
@media only screen and (max-width: 800px) {
  #header .logo {
    max-width: 80%;
    margin-left: auto;
    margin-right: auto;
  }
  #header .logo a img {
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
}
#header .site_description {
  margin: .3em 0;
  font-size: 13px;
  font-size: 1.3rem;
}
@media only screen and (max-width: 800px) {
  #header .site_description {
    max-width: 80%;
    margin-left: auto;
    margin-right: auto;
  }
}
#header .shop_tel {
  position: relative;
  right: 0;
  top: 0;
  margin: 0;
  text-align: right;
  font-size: 20px;
  font-size: 2rem;
  line-height: 1;
}
#header .shop_tel i {
  font-size: 18px;
  font-size: 1.8rem;
}
@media only screen and (max-width: 800px) {
  #header .shop_tel {
    text-align: center;
  }
}
#header .navi.pc {
  margin: 1.5em 0 0;
  font-size: 15px;
  font-size: 1.5rem;
}
#header .navi.pc li {
  display: inline-block;
  margin: 0 0 0 2px;
}
#header .navi.pc li a {
  display: block;
  padding: .3em .5em;
  -ms-border-radius: 3px;
  border-radius: 3px;
}
#header .navi.pc li a:hover {
  background: #e8e8e8;
}
#header .navi.pc li.active a {
  background: #e8e8e8;
}
#header .navi.pc li.active:hover a {
  -ms-border-radius: 3px 3px 0 0;
  border-radius: 3px 3px 0 0;
}
#header .navi.pc li.active:hover .sub_navi {
  display: block;
}
#header .navi.pc .sub_navi {
  display: none;
  position: absolute;
  background: #e8e8e8;
  -ms-border-radius: 0 3px 3px 3px;
  border-radius: 0 3px 3px 3px;
}
#header .navi.pc .sub_navi li {
  display: block;
  margin: 0;
  padding: .3em;
  text-align: left;
}
#header .navi.pc .sub_navi li a {
  background: none;
}
#header .navi.pc .sub_navi li a:hover {
  background: #dbdbdb;
  -ms-border-radius: 3px;
  border-radius: 3px;
}
@media only screen and (max-width: 800px) {
  #header .navi.pc {
    display: none;
  }
}
#header.is-scroll {
  -webkit-transition: top .5s;
  transition: top .5s;
  position: fixed;
  top: 0;
  padding: 0;
}
#header.is-scroll > .inner {
  min-height: 0;
  margin: 0 auto;
  padding-top: 20px;
  padding-bottom: 20px;
}
@media only screen and (max-width: 800px) {
  #header.is-scroll > .inner {
    padding-top: 0;
    padding-bottom: 0;
  }
}
#header.is-scroll .logo {
  display: none;
}
#header.is-scroll .logo a img {
  max-width: 200px;
  max-height: 60px;
}
@media only screen and (max-width: 800px) {
  #header.is-scroll .logo {
    display: block;
    margin-top: .3em;
  }
}
#header.is-scroll .site_description {
  margin: 0;
}
#header.is-scroll .site_description span {
  display: none;
}
#header.is-scroll .shop_tel {
  display: none;
}
#header.is-scroll .navi.pc {
  margin: 0;
}
#header.hide {
  top: -200px;
}
#header .navi.mobile {
  position: absolute;
  left: 0;
  top: 0;
  display: none;
  width: 100%;
  padding: 3em;
  background: rgba(255, 255, 255, 0.95);
}
#header .navi.mobile ul {
  position: relative;
  width: 85%;
  list-style: none;
  margin: 0 auto;
  padding: 0;
}
#header .navi.mobile ul li {
  display: block;
  max-width: 800px;
  margin: 5px auto 0;
  -ms-border-radius: 3px;
  border-radius: 3px;
  text-align: center;
}
#header .navi.mobile ul li a {
  display: block;
  padding: .5em;
  background: #e8e8e8;
  -ms-border-radius: 3px;
  border-radius: 3px;
  text-decoration: none;
  font-size: 20px;
  font-size: 2rem;
  line-height: 1.1;
  color: #3a3a3a;
}
#header .navi.mobile ul li a:hover {
  background: #d6d6d6;
}
#header .navi.mobile ul li.active {
  background: #d6d6d6;
}
#header .navi.mobile ul li.active > a {
  background: transparent;
  cursor: default;
}
#header .navi.mobile ul li .sub_navi {
  width: 100%;
  margin: 0;
  padding: 5px;
}
#header .navi.mobile ul li .sub_navi li:first-child {
  margin: 0;
}
#header .navi.mobile ul li .sub_navi li a:hover {
  background: #c2c2c2;
}
#header #button_navi {
  position: absolute;
  right: 20px;
  top: 0;
  display: none;
  width: 24px;
  height: 100%;
}
@media only screen and (max-width: 800px) {
  #header #button_navi {
    display: block;
  }
  #header #button_navi div {
    position: absolute;
    left: 0;
    top: 50%;
    height: 30px;
    margin: -15px 0 0;
    font-size: 28px;
    font-size: 2.8rem;
    line-height: 30px;
  }
}
/*
 content, section
*/
#content {
  position: relative;
}
#content > .inner {
  max-width: 960px;
  margin: 0 auto;
  padding: 0;
}
@media only screen and (max-width: 1000px) {
  #content > .inner {
    padding-left: 20px;
    padding-right: 20px;
  }
}
#content h2 {
  font-weight: normal;
  font-size: 30px;
  font-size: 3rem;
  line-height: 1;
}
#content h2.page_title {
  margin: 60px 0;
  text-align: center;
}
@media only screen and (max-width: 600px) {
  #content h2.page_title {
    margin: 40px 0;
  }
}
#content h2.page_title a {
  position: relative;
  padding: .3em .2em;
  background: transparent;
  -ms-border-radius: 3px;
  border-radius: 3px;
  text-decoration: none;
  -webkit-transition: background .15s;
  transition: background .15s;
  left: 0;
}
#content h2.page_title a:hover {
  background: #e8e8e8;
  text-decoration: none;
}
#content h2 a:hover {
  text-decoration: underline;
}
/*
 pager
*/
.pager {
  zoom: 1;
  position: relative;
  margin: 0;
  font-family: 'Noto Sans Japanese';
}
.pager:after {
  content: '';
  display: block;
  clear: both;
}
.pager > .inner {
  max-width: 960px;
  margin: 0 auto;
  padding: 50px 0;
  padding-left: 20px;
  padding-right: 20px;
}
.pager > .inner div {
  zoom: 1;
  position: relative;
  text-align: center;
}
.pager > .inner div:after {
  content: '';
  display: block;
  clear: both;
}
.pager > .inner div a {
  display: inline-block;
  width: 40px;
  height: 40px;
  margin: 3px .15em;
  -ms-border-radius: 3px;
  border-radius: 3px;
  text-decoration: none;
  text-align: center;
  font-size: 22px;
  font-size: 2.2rem;
  line-height: 38px;
  color: #3a3a3a;
}
.pager > .inner div a.chk {
  background: #e8e8e8;
  cursor: default;
}
.pager > .inner div a:hover {
  background: #e8e8e8;
}
@media only screen and (max-width: 800px) {
  .pager .inner {
    position: relative;
    left: 0;
  }
  .pager .inner div {
    position: relative;
    left: 0;
  }
  .pager .inner div a {
    display: none;
    line-height: 42px;
  }
  .pager .inner div a.next,
  .pager .inner div a.prev {
    float: left;
    display: block;
    margin: 0;
    background: #e8e8e8;
    font-size: 24px;
    font-size: 2.4rem;
  }
  .pager .inner div a.next {
    float: right;
  }
  .pager .inner div a.chk {
    display: block;
    position: absolute;
    left: 50%;
    float: none;
    background: transparent;
    margin: 0 0 0 -20px;
    font-size: 30px;
    font-size: 3rem;
  }
}
/*
 gadgets
*/
.gadgets {
  margin: 50px 0 0;
}
.gadgets > .inner {
  max-width: 960px;
  margin: 0 auto;
  padding: 0;
  text-align: center;
  padding-left: 20px;
  padding-right: 20px;
}
.gadgets #navi_parts .navi_parts_detail {
  display: inline-block;
  vertical-align: middle;
  margin: 0 10px 10px;
}
.gadgets #navi_parts .navi_parts_detail img {
  display: block;
}
.gadgets #navi_parts .navi_parts_detail img.goog-te-gadget-icon {
  display: inline;
}
.gadgets #navi_parts .navi_parts_detail .goog-te-menu-value img {
  display: inline;
}
.gadgets #navi_parts .navi_parts_detail img,
.gadgets #navi_parts .navi_parts_detail iframe,
.gadgets #navi_parts .navi_parts_detail object,
.gadgets #navi_parts .navi_parts_detail embed {
  max-width: 100%;
  overflow: hidden;
}
/*
 sidebar
*/
.sidebar {
  margin: 50px 0 0;
}
.sidebar > .inner {
  max-width: 960px;
  margin: 0 auto;
  text-align: center;
}
@media only screen and (max-width: 1000px) {
  .sidebar > .inner {
    padding-left: 20px;
    padding-right: 20px;
  }
}
@media only screen and (max-width: 600px) {
  .sidebar > .inner {
    margin-bottom: -50px;
    border-top: 1px dotted #a9a9a9;
  }
}
.sidebar .block {
  width: 33%;
  vertical-align: top;
  margin: 0;
  padding: 0 3%;
  border-left: 1px dotted #a9a9a9;
  text-align: center;
}
.sidebar .block:first-child {
  margin: 0;
  border: none;
}
.sidebar .block h3 {
  margin: 0 0 10px;
  font-size: 26px;
  font-size: 2.6rem;
  line-height: 1;
}
@media only screen and (max-width: 800px) {
  .sidebar .block {
    width: 25%;
  }
}
@media only screen and (max-width: 600px) {
  .sidebar .block {
    width: 100%;
    margin: 0;
    padding: 20px 0;
    border-left: none;
    border-top: 1px dotted #a9a9a9;
    text-align: center;
  }
  .sidebar .block.qr_area {
    display: none !important;
  }
}
/*
 social
*/
.social {
  margin: 50px 0 0;
  padding: 40px 0 0;
  border-top: 1px dotted #a9a9a9;
}
.social > .inner {
  max-width: 960px;
  margin: 0 auto;
  text-align: center;
}
@media only screen and (max-width: 1000px) {
  .social > .inner {
    padding-left: 20px;
    padding-right: 20px;
  }
}
.social #social_widgets .social_widget {
  display: inline-block;
  height: 20px;
  margin: 10px 0 0 10px;
  vertical-align: middle;
}
.social #social_widgets .social_widget:first-child {
  margin-left: 0;
}
.social #social_widgets .social_widget#widget_facebook_like {
  width: 180px;
}
.social #social_widgets .social_widget#widget_facebook_like iframe {
  width: 180px;
}
.social #social_widgets .social_widget#widget_facebook_follow {
  width: 148px;
}
.social #social_widgets .social_widget#widget_facebook_follow.social_widget_facebook_follow iframe {
  width: 148px;
}
.social #social_widgets .social_widget#widget_facebook_follow.social_widget_facebook_likebox {
  width: 340px;
  height: 72px;
  overflow: hidden;
}
.social #social_widgets .social_widget#widget_facebook_follow.social_widget_facebook_likebox > div {
  display: inline-block;
  width: 340px;
}
@media only screen and (max-width: 600px) {
  .social #social_widgets .social_widget#widget_facebook_follow.social_widget_facebook_likebox {
    width: 100%;
    margin-left: 0;
  }
}
/*
 footer
*/
#footer {
  position: relative;
  z-index: 2;
  margin: 50px 0 0;
  padding: 0;
  border-top: 1px dotted #a9a9a9;
  text-align: center;
  color: #3a3a3a;
}
#footer > .inner {
  zoom: 1;
  max-width: 960px;
  margin: 0 auto;
  padding: 40px 0 70px;
}
#footer > .inner:after {
  content: '';
  display: block;
  clear: both;
}
#footer > .inner a {
  color: #3a3a3a;
}
#footer > .inner a:hover {
  text-decoration: underline;
}
@media only screen and (max-width: 1000px) {
  #footer > .inner {
    padding-left: 20px;
    padding-right: 20px;
  }
}
#footer .social_icons {
  font-size: 29px;
  font-size: 2.9rem;
  line-height: 1;
}
#footer .social_icons a {
  display: inline-block;
  margin: 0;
  padding: .3em;
  -ms-border-radius: 3px;
  border-radius: 3px;
  vertical-align: bottom;
}
#footer .social_icons a:hover,
#footer .social_icons a:active {
  background: #e8e8e8;
  text-decoration: none;
}
#footer .social_icons a span {
  display: block;
}
#footer .shop_name {
  font-size: 30px;
  font-size: 3rem;
}
#footer .shop_name a {
  position: relative;
  padding: .3em .2em;
  background: transparent;
  -ms-border-radius: 3px;
  border-radius: 3px;
  text-decoration: none;
  -webkit-transition: background .15s;
  transition: background .15s;
}
#footer .shop_name a:hover {
  background: #e8e8e8;
  text-decoration: none;
}
/*
 totopボタン
*/
.totop {
  position: fixed;
  right: 15px;
  bottom: 15px;
  z-index: 10000;
  display: block;
  width: 44px;
  height: 44px;
}
.totop .button {
  visibility: hidden;
  display: block;
  width: 44px;
  height: 44px;
  margin: 0 0 0 auto;
  background: rgba(232, 232, 232, 0.7);
  -ms-border-radius: 3px;
  border-radius: 3px;
  text-align: center;
  font-size: 30px;
  font-size: 3rem;
  line-height: 44px;
  color: #3a3a3a;
}
.totop .button.is-visible {
  visibility: visible;
}
.totop .button:hover {
  background: #e8e8e8;
  cursor: pointer;
}
body.modal-open .totop,
body.navi-open .totop {
  display: none;
}
@font-face {
  font-family: 'icomoon';
  src: url('/css/social-icon-fonts/social-icon.eot?3koa62');
  src: url('/css/social-icon-fonts/social-icon.eot?3koa62#iefix') format('embedded-opentype'), url('/css/social-icon-fonts/social-icon.ttf?3koa62') format('truetype'), url('/css/social-icon-fonts/social-icon.woff?3koa62') format('woff'), url('/css/social-icon-fonts/social-icon.svg?3koa62#icomoon') format('svg');
  font-weight: normal;
  font-style: normal;
}
[class^='icon-'],
[class*='icon-'] {
  font-family: 'icomoon' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.icon-instagram:before {
  content: '\e900';
}
.icon-facebook:before {
  content: '\e901';
}
.icon-twitter:before {
  content: '\e902';
}
/*
 WYSIWYGフィールド表示制御
*/
.textfield {
  zoom: 1;
}
.textfield:after {
  content: '';
  display: block;
  clear: both;
}
.textfield img {
  max-width: 100% !important;
  height: auto !important;
}
.textfield p {
  margin: .5em 0 0 !important;
}
.textfield p:first-child {
  margin: 0 !important;
}
@media only screen and (max-width: 800px) {
  .textfield table {
    width: 100% !important;
    height: auto !important;
  }
}
.textfield iframe {
  max-width: 100% !important;
}
.textfield ul li {
  list-style-type: disc;
  list-style-position: inside;
}
.textfield ol li {
  list-style-type: decimal;
  list-style-position: inside;
}
@media only screen and (max-width: 600px) {
  .wysiwyg_template_profile1,
  .wysiwyg_template_profile2 {
    display: block;
  }
}
@media only screen and (max-width: 600px) {
  .wysiwyg_template_profile1 tr,
  .wysiwyg_template_profile2 tr,
  .wysiwyg_template_profile1 td,
  .wysiwyg_template_profile2 td {
    display: block;
  }
}
body#top #content > .inner {
  max-width: 960px;
  margin: 0 auto;
}
body#top .section {
  margin: 3.1em 0 0;
  padding: 0 0 3.1em;
  border-top: 1px dotted #a9a9a9;
}
body#top .section > .inner {
  max-width: 960px;
  margin: 0 auto;
}
@media only screen and (max-width: 1000px) {
  body#top .section > .inner {
    padding-left: 20px;
    padding-right: 20px;
  }
}
body#top .section_title {
  position: relative;
  top: -.5em;
  display: block;
  width: 100%;
  max-width: 960px;
  margin: 0 auto 2em;
  text-align: center;
}
body#top .section_title a,
body#top .section_title span {
  display: inline-block;
  padding: 0 1em;
  background: #ffffff;
  font-size: 30px;
  font-size: 3rem;
}
body#top .btn_details {
  margin: 10px 0 -22px;
  text-align: right;
  font-size: 18px;
  font-size: 1.8rem;
}
body#top .btn_details a {
  display: inline-block;
  padding: .7em 1em;
  -ms-border-radius: 3px;
  border-radius: 3px;
  line-height: 1;
  color: #3a3a3a;
}
body#top .btn_details a:hover {
  background: rgba(232, 232, 232, 0.5);
}
body#top #wrap_slider {
  position: relative;
  width: 100%;
  height: 500px;
}
@media only screen and (max-width: 800px) {
  body#top #wrap_slider {
    height: 400px;
  }
}
@media only screen and (max-width: 600px) {
  body#top #wrap_slider {
    height: 300px;
  }
}
@-webkit-keyframes scaleImage {
  0% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
  100% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}
@keyframes scaleImage {
  0% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
  100% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}
@-webkit-keyframes scaleImageMove {
  0% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
  100% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1);
  }
}
@keyframes scaleImageMove {
  0% {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
  100% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1);
  }
}
@-webkit-keyframes textFadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes textFadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
body#top #slider {
  position: relative;
  width: 100%;
  height: 500px;
  margin: 0;
  overflow: hidden;
}
body#top #slider .article {
  width: 100%;
  height: 500px;
  background-size: cover;
  background-position: 50%;
  overflow: hidden;
}
body#top #slider .article .slide_image_wrap {
  -webkit-animation-duration: 20s;
  animation-duration: 20s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  display: inline-block;
}
body#top #slider .article img {
  visibility: hidden;
  display: block;
  width: 100%;
  height: auto;
}
body#top #slider .article.move .slide_image_wrap {
  -webkit-animation-name: scaleImageMove;
  animation-name: scaleImageMove;
}
body#top #slider .article.move .caption_txt {
  -webkit-animation-duration: 5s;
  animation-duration: 5s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-animation-name: textFadeIn;
  animation-name: textFadeIn;
}
body#top #slider .article .caption {
  position: absolute;
  left: 0;
  top: 50%;
  width: 100%;
  margin: 0;
  padding: 0 30px;
  text-align: center;
  font-size: 26px;
  font-size: 2.6rem;
  color: #ffffff;
}
body#top #slider .article .caption > div {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  opacity: 0;
  padding: .5em;
  text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
}
body#top #slider .article .caption .caption_txt a {
  color: #ffffff;
}
body#top #slider .article.move .caption div {
  opacity: 1;
}
@media only screen and (max-width: 800px) {
  body#top #slider {
    height: 400px;
  }
  body#top #slider .article {
    height: 400px;
  }
}
@media only screen and (max-width: 600px) {
  body#top #slider {
    height: 300px;
  }
  body#top #slider .article {
    height: 300px;
  }
}
body#top .ie #slider .article img,
body#top .ie #slider .article .caption div {
  transition: none 0s;
  transform: none;
}
body#top .ie #slider .article.move img,
body#top .ie #slider .article.move .caption div {
  transform: none;
}
body#top .slick-track {
  z-index: 1 !important;
}
body#top .slick-dots {
  bottom: 10px;
}
body#top .slick-dots li button:before {
  font-size: 14px;
  font-size: 1.4rem;
  color: #ffffff;
}
body#top .welcomemessage {
  margin-top: 1.5em;
  padding-top: 3em;
  border: none;
  text-align: center;
}
body#top .information .list {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: stretch;
  align-content: stretch;
  margin-top: -20px;
  text-align: center;
}
body#top .information .list.is-float .article {
  order: 0;
  flex-grow: 0;
  flex-shrink: 1;
  flex-basis: auto;
  align-self: auto;
  box-sizing: border-box;
  position: relative;
  width: calc(33.33333333%);
}
@media only screen and (max-width: 800px) {
  body#top .information .list.is-float .article {
    width: calc(50%);
  }
}
@media only screen and (max-width: 600px) {
  body#top .information .list.is-float .article {
    width: 100%;
  }
  body#top .information .list.is-float .article .summary {
    padding: 0;
  }
}
body#top .information .article {
  margin: 20px 0 0;
  text-align: left;
  -webkit-transition: opacity .15s;
  transition: opacity .15s;
  opacity: 1;
}
body#top .information .article:hover {
  opacity: 0.7;
}
body#top .information .article .photo {
  float: left;
  display: block;
  width: 120px;
  height: 120px;
  margin: 0 -140px 0 0;
  background: rgba(232, 232, 232, 0.5);
  -ms-border-radius: 3px;
  border-radius: 3px;
}
body#top .information .article .photo img {
  opacity: 0;
  -webkit-transition: opacity .3s;
  transition: opacity .3s;
}
body#top .information .article .photo img.show {
  opacity: 1;
}
body#top .information .article .summary {
  float: right;
  display: block;
  width: 100%;
  padding: 0 10px 0 0;
}
body#top .information .article .summary > .inner {
  display: block;
  margin-left: 130px;
}
body#top .information .article .summary .date {
  display: block;
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1;
  font-family: 'Noto Sans Japanese';
}
body#top .information .article .summary .date span {
  vertical-align: .15em;
  font-size: 12px;
  font-size: 1.2rem;
}
body#top .information .article .summary .title {
  display: inline-block;
}
body#top .section_photo .slick-slider {
  margin: 0;
}
body#top .section_photo .list {
  display: block;
  width: 100%;
  height: 184px;
}
body#top .section_photo .list.float {
  text-align: center;
  letter-spacing: -.25em;
}
body#top .section_photo .list.float li {
  display: inline-block !important;
  letter-spacing: normal;
}
body#top .section_photo .list li {
  display: block;
  width: 184px;
  height: 184px;
  overflow: hidden;
  margin-left: 10px;
  -ms-border-radius: 3px;
  border-radius: 3px;
}
body#top .section_photo .list li:first-child {
  margin: 0;
}
body#top .section_photo .list li a,
body#top .section_photo .list li span {
  display: block;
  width: 100%;
  height: 100%;
  background: #ccc;
}
body#top .section_photo .list li a img,
body#top .section_photo .list li span img {
  opacity: 0;
  -webkit-transition: opacity .5s;
  transition: opacity .5s;
}
body#top .section_photo .list li a img.show,
body#top .section_photo .list li span img.show {
  opacity: 1;
}
body#top .section_photo .arrow-prev,
body#top .section_photo .arrow-next {
  cursor: pointer;
  outline: none;
  position: absolute;
  top: 50%;
  z-index: 1;
  display: block;
  width: 40px;
  height: 40px;
  margin-top: -20px;
  padding: 0;
  background: rgba(102, 102, 102, 0.5);
  -ms-border-radius: 3px;
  border-radius: 3px;
  text-align: center;
  font-size: 44px;
  font-size: 4.4rem;
  line-height: 40px;
  color: #ffffff;
}
body#top .section_photo .arrow-prev:hover,
body#top .section_photo .arrow-next:hover {
  background: rgba(102, 102, 102, 0.8);
}
body#top .section_photo .arrow-prev {
  left: -20px;
  left: 10px;
}
body#top .section_photo .arrow-next {
  right: -20px;
  right: 10px;
}
body#top .about {
  position: relative;
  padding-top: 0;
}
body#top .about .section_title {
  max-width: none;
}
body#top .about > .inner {
  zoom: 1;
  width: 100%;
}
body#top .about > .inner:after {
  content: '';
  display: block;
  clear: both;
}
body#top .about .block {
  float: none;
  width: 100%;
}
body#top .about .block.map iframe {
  height: 470px;
}
body#top .about .block.summary {
  width: 100%;
  max-width: 960px;
  margin: 50px auto 0;
}
body#top .about .block.summary table {
  width: 65%;
  margin: 0 auto;
}
body#top .about .block.summary tr {
  display: table-row;
  margin: 0;
}
body#top .about .block.summary tr:first-child th,
body#top .about .block.summary tr:first-child td {
  border-top: none;
}
body#top .about .block.summary th,
body#top .about .block.summary td {
  display: table-cell;
  padding: 1em;
  border: 1px dotted #a9a9a9;
  border-bottom: none;
  border-left: none;
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 1.6;
}
body#top .about .block.summary th {
  width: 35%;
}
body#top .about .block.summary td {
  width: 65%;
  border-right: none;
}
@media only screen and (max-width: 800px) {
  body#top .about .block.map iframe {
    height: 300px;
  }
  body#top .about .block.summary table {
    width: 80%;
  }
}
@media only screen and (max-width: 600px) {
  body#top .about .block.summary table {
    width: 100%;
  }
}
body#top .contact input[type=text],
body#top .contact input[type=tel],
body#top .contact input[type=email],
body#top .contact textarea {
  width: 100%;
  background: #ffffff;
  border: 1px solid #e4e2e1;
  -ms-border-radius: 2px;
  border-radius: 2px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
body#top .contact input[type=text],
body#top .contact input[type=tel],
body#top .contact input[type=email] {
  padding: 8px;
  font-size: 20px;
  font-size: 2rem;
}
body#top .contact input[type=text] {
  width: 100%;
}
body#top .contact input[type=text].contact_small {
  width: 60% !important;
}
body#top .contact textarea {
  width: 100%;
  height: 180px;
  padding: 5px;
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.6;
}
body#top .contact input[type=text]:focus,
body#top .contact input[type=tel]:focus,
body#top .contact input[type=email]:focus,
body#top .contact textarea:focus {
  background: #ffffff;
  border: 1px solid #ffbfbf;
  outline: none;
}
body#top .contact label {
  font-size: 20px;
  font-size: 2rem;
}
body#top .contact label .requier {
  color: #993737;
}
body#top .contact .checkbox,
body#top .contact .radio {
  display: block;
}
body#top .contact .checkbox label,
body#top .contact .radio label {
  margin-right: 10px;
  font-size: 18px;
  font-size: 1.8rem;
}
body#top .contact select {
  padding: 7px;
  background: #ffffff;
  border: 1px solid #eeeeee;
  -ms-border-radius: 3px;
  border-radius: 3px;
  font-size: 18px;
  font-size: 1.8rem;
}
body#top .contact select:focus {
  outline: none;
}
body#top .contact input[type=submit]:focus {
  outline: none;
}
body#top .contact .wrap_select {
  position: relative;
  display: inline;
}
body#top .contact .select_arrow {
  position: absolute;
  right: 10px;
  bottom: 12px;
  line-height: 0;
  font-size: 12px;
  font-size: 1.2rem;
  color: #3a3a3a;
}
body#top .contact .button {
  position: relative;
  display: block;
  width: 100%;
  padding: 18px 10px;
  background: rgba(232, 232, 232, 0.5);
  border: none;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  font-size: 20px;
  font-size: 2rem;
  color: #3a3a3a;
  -ms-border-radius: 4px;
  border-radius: 4px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
body#top .contact .button:hover,
body#top .contact .button:active {
  cursor: pointer;
  background: #ffbfbf;
  color: #5e0808;
}
body#top .contact input[type=text],
body#top .contact input[type=tel],
body#top .contact input[type=email],
body#top .contact select,
body#top .contact textarea {
  background: #ffffff;
  border-color: #dcdbdb;
}
body#top .contact .contact_area {
  display: block;
  margin-top: 2.5em;
}
body#top .contact .contact_area:first-child {
  margin-top: 0;
}
body#top .contact .button {
  margin: 1em 0 0;
}
body#top .contact .checkbox,
body#top .contact .radio {
  display: inline-block;
}
body#top .contact label {
  font-size: 18px;
  font-size: 1.8rem;
}
body#top .contact input[type=submit] {
  background: #e6e6e6;
}
body#top .contact form {
  width: 65%;
  margin: 0 auto;
}
@media only screen and (max-width: 800px) {
  body#top .contact form {
    width: 80%;
  }
}
@media only screen and (max-width: 600px) {
  body#top .contact form {
    width: 100%;
  }
}
.ie9 body#top .information .list {
  zoom: 1;
  display: block;
}
.ie9 body#top .information .list:after {
  content: '';
  display: block;
  clear: both;
}
.ie9 body#top .information .list.is-float .article {
  float: left;
}
@media only screen and (max-width: 600px) {
  .ie9 body#top .information .list.is-float .article {
    float: none;
  }
}
body#info .navi.mobile .sub_navi li {
  background: transparent;
}
body#info .navi.mobile .sub_navi li a {
  font-size: 16px;
  font-size: 1.6rem;
}
body#info .navi.mobile .sub_navi li.year {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1;
  color: rgba(58, 58, 58, 0.7);
  color: #8b8b8b;
}
body#info .navi.mobile .sub_navi li.year div {
  margin: 0 0 10px;
}
body#info .navi.mobile .sub_navi li.year div.month {
  margin: 0;
}
body#info .navi.mobile .sub_navi li.year div.month a {
  display: inline-block;
  padding: .2em;
  margin: 0 5px 10px;
  font-size: 16px;
  font-size: 1.6rem;
}
body#info .article {
  margin: 4em 0 0;
}
body#info .article:first-child {
  margin: 0;
}
body#info .article .date {
  margin: 0;
  padding: 0;
  font-size: 20px;
  font-size: 2rem;
  line-height: 1;
  font-family: 'Noto Sans Japanese';
}
body#info .article .date span {
  vertical-align: 2px;
  font-weight: bold;
  font-size: 16px;
  font-size: 1.6rem;
}
body#info .article .body .article_title {
  margin: 10px 0 0;
  font-weight: normal;
  font-size: 26px;
  font-size: 2.6rem;
  line-height: 1.2;
}
body#info .article .body .article_title a {
  position: relative;
  padding: .3em .2em;
  background: transparent;
  -ms-border-radius: 3px;
  border-radius: 3px;
  text-decoration: none;
  -webkit-transition: background .15s;
  transition: background .15s;
}
body#info .article .body .article_title a:hover {
  background: #e8e8e8;
  text-decoration: none;
}
body#info .article .body .photo {
  float: right;
  max-width: 50%;
  margin: 20px 0 1.2em 1.5em;
}
body#info .article .body .photo img {
  max-width: 100%;
  -ms-border-radius: 3px;
  border-radius: 3px;
}
body#info .article .body .textfield {
  margin: 20px 0 0;
}
body#info .article .body .textfield p:first-child {
  margin: 0 !important;
}
@media only screen and (max-width: 600px) {
  body#info .article .date {
    float: none;
    width: 100%;
    margin: 0 0 5px;
  }
  body#info .article .date div {
    display: inline;
  }
  body#info .article .date div.month {
    margin-right: 5px;
    font-size: 22px;
    font-size: 2.2rem;
  }
  body#info .article .body {
    float: none;
  }
  body#info .article .body .inner {
    margin: 0;
  }
  body#info .article .body h3 {
    margin: 0 0 20px;
  }
  body#info .article .body .photo {
    float: none;
    max-width: 100%;
    margin: 10px 0 0;
  }
  body#info .article .body .textfield {
    margin: 10px 0 0;
  }
}
body#photo #index {
  margin: 0;
}
body#photo #index .album {
  zoom: 1;
  margin: 30px 0 0;
}
body#photo #index .album:after {
  content: '';
  display: block;
  clear: both;
}
body#photo #index .album:first-child {
  margin: 0;
}
body#photo #index .album .album_title {
  margin: 0 0 10px;
  border-top: 1px dotted #a9a9a9;
  font-weight: normal;
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1.2;
}
body#photo #index .album .album_title > span {
  position: relative;
  top: -.6em;
  padding-right: 1em;
  background-color: #ffffff;
}
body#photo #index .album .album_title a {
  position: relative;
  padding: .3em .2em;
  background: transparent;
  -ms-border-radius: 3px;
  border-radius: 3px;
  text-decoration: none;
  -webkit-transition: background .15s;
  transition: background .15s;
}
body#photo #index .album .album_title a:hover {
  background: #e8e8e8;
  text-decoration: none;
}
body#photo #index .album .thumb {
  visibility: hidden;
  float: left;
  width: 20%;
  height: 152px;
  margin-right: 10px;
  margin-bottom: 10px;
  padding: 0;
}
body#photo #index .album .thumb a {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  -ms-border-radius: 3px;
  border-radius: 3px;
  -webkit-transition: opacity .15s;
  transition: opacity .15s;
  opacity: 1;
}
body#photo #index .album .thumb a:hover {
  opacity: 0.7;
}
body#photo #index .album .thumb a:focus {
  outline: none;
}
body#photo #index .album .thumb a img {
  position: absolute;
  display: block;
  opacity: 0;
  -webkit-transition: opacity .3s;
  transition: opacity .3s;
}
body#photo #index .album .thumb a img.show {
  opacity: 1;
}
@media only screen and (max-width: 800px) {
  body#photo #index .album .thumb {
    margin-right: 5px;
    margin-bottom: 5px;
  }
}
body#photo #entries {
  position: relative;
}
body#photo #entries h3 {
  margin: 0 0 15px;
  font-weight: normal;
  font-size: 22px;
  font-size: 2.2rem;
  line-height: 1.2;
}
body#photo #entries .article {
  position: relative;
  margin: 4em 0 0;
}
body#photo #entries .article:first-child {
  margin: 0;
}
body#photo #entries .article h4 {
  margin: 1em 0 0;
  font-weight: normal;
  font-size: 22px;
  font-size: 2.2rem;
  line-height: 1.2;
}
body#photo #entries .article .textfield {
  margin: .5em 0 0;
}
body#photo #entries .article .photo {
  width: 100%;
}
body#photo #entries .article .photo img {
  display: block;
  max-width: 100%;
  -ms-border-radius: 3px;
  border-radius: 3px;
}
body#photo #navi li .sub_navi li a {
  display: block;
}
body#menu .list {
  margin: 3.5em 0 0;
}
body#menu .page_title + .list {
  margin: 0;
}
body#menu .article {
  zoom: 1;
  margin: 60px 0 0;
}
body#menu .article:after {
  content: '';
  display: block;
  clear: both;
}
body#menu .category_title {
  position: relative;
  border-top: 1px dotted #a9a9a9;
  font-size: 24px;
  font-size: 2.4rem;
  line-height: 1.2;
}
body#menu .category_title span {
  position: relative;
  top: -.6em;
  padding-right: 1em;
  background: #ffffff;
}
body#menu .category_title + .article {
  margin-top: 30px;
}
body#menu .article_title {
  margin: 10px 0 0;
  font-weight: normal;
  font-size: 26px;
  font-size: 2.6rem;
  line-height: 1.2;
}
body#menu .article_title .recommend {
  color: #f5f201;
}
body#menu .article_title a {
  position: relative;
  padding: .3em .2em;
  background: transparent;
  -ms-border-radius: 3px;
  border-radius: 3px;
  text-decoration: none;
  -webkit-transition: background .15s;
  transition: background .15s;
}
body#menu .article_title a:hover {
  background: #e8e8e8;
  text-decoration: none;
}
body#menu .photo {
  float: right;
  max-width: 50%;
  margin: 20px 0 1.2em 1.5em;
}
body#menu .photo img {
  display: block;
  max-width: 100%;
  -ms-border-radius: 3px;
  border-radius: 3px;
}
@media only screen and (max-width: 600px) {
  body#menu .photo {
    float: none;
    max-width: 100%;
    margin: 0 auto 1.5em;
  }
}
body#menu .price {
  margin: 1em 0 0;
  font-size: 20px;
  font-size: 2rem;
  line-height: 1;
}
body#menu .text {
  margin: 1em 0 0;
}
body#calendar .wrap_calendar .navi {
  margin: 0;
  text-align: center;
  font-size: 16px;
  font-size: 1.6rem;
}
body#calendar .table_calendar {
  margin: 2em 0 0;
}
body#calendar .table_calendar th {
  padding: 3px 0;
  font-size: 16px;
  font-size: 1.6rem;
  color: #3a3a3a;
}
body#calendar .table_calendar th.sun {
  color: #ffa5a5;
}
body#calendar .table_calendar td {
  position: relative;
  height: 112px;
  padding: 5px;
}
body#calendar .table_calendar td p.day {
  height: 110px;
  margin: 0;
  padding: 10px;
  background: #e8e8e8;
  -ms-border-radius: 3px;
  border-radius: 3px;
  text-align: right;
  font-family: 'Noto Sans Japanese';
  font-size: 30px;
  font-size: 3rem;
  line-height: 146px;
}
body#calendar .table_calendar td.sun p.day,
body#calendar .table_calendar td.holiday p.day {
  background: #ffbfbf;
}
body#calendar .table_calendar td a {
  position: absolute;
  left: 10px;
  top: 10px;
}
@media only screen and (max-width: 800px) {
  body#calendar .table_calendar th {
    padding: 3px 0;
  }
  body#calendar .table_calendar td {
    height: 70px;
    padding: 5px;
  }
  body#calendar .table_calendar td p.day {
    height: 70px;
    padding: .35em;
    font-size: 20px;
    font-size: 2rem;
    line-height: 102px;
  }
  body#calendar .table_calendar td a {
    left: 5px;
    top: 8px;
  }
}
@media only screen and (max-width: 800px) {
  body#calendar .table_calendar td {
    padding: 2px;
  }
  body#calendar .table_calendar td p.day {
    padding: .25em;
  }
}
@media only screen and (max-width: 600px) {
  body#calendar .table_calendar td p.day {
    padding: .4em;
  }
}
body#calendar .schedule {
  padding: 0 0 1.5em;
}
body#calendar .schedule dl.article {
  margin: 1.5em 0 0;
  padding: 1.5em 0 0;
  border-top: 1px dotted #a9a9a9;
  border-top-style: dotted;
}
body#calendar .schedule dl.article:last-of-type {
  border-bottom: 1px dotted #a9a9a9;
  border-bottom-style: dotted;
  padding-bottom: 1.5em;
}
body#calendar .schedule dl.article dt.date {
  margin: 0 0 1em;
  padding: 0 0 0.2em;
  border: none;
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1;
  color: #3a3a3a;
}
body#calendar .schedule dl.article dd {
  zoom: 1;
  margin: 1em 0 0;
  font-size: 16px;
  font-size: 1.6rem;
}
body#calendar .schedule dl.article dd:after {
  content: '';
  display: block;
  clear: both;
}
body#calendar .schedule dl.article dd .category {
  float: left;
  margin-right: 1em;
  padding: .22em .43em;
  background: #e8e8e8;
  -ms-border-radius: 2px;
  border-radius: 2px;
  font-size: 14px;
  font-size: 1.4rem;
  font-weight: bold;
}
body#calendar .schedule dl.article dd a:link,
body#calendar .schedule dl.article dd a:visited {
  text-decoration: none;
}
body#calendar .schedule dl.article dd a:hover,
body#calendar .schedule dl.article dd a:active {
  text-decoration: underline;
}
body#calendar .details > div {
  zoom: 1;
}
body#calendar .details > div:after {
  content: '';
  display: block;
  clear: both;
}
body#calendar .details .category {
  float: left;
  margin-right: 1em;
  padding: .22em .43em;
  background: #e8e8e8;
  -ms-border-radius: 2px;
  border-radius: 2px;
  font-size: 14px;
  font-size: 1.4rem;
  font-weight: bold;
}
body#calendar .details .date {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1;
  vertical-align: bottom;
}
body#calendar .details h3 {
  margin: .5em 0;
  font-size: 22px;
  font-size: 2.2rem;
}
body#calendar .details img {
  max-width: 100%;
  -ms-border-radius: 2px;
  border-radius: 2px;
}
body#about .map,
body#about .summary {
  width: 100%;
}
body#about .map iframe {
  height: 470px;
}
body#about .summary {
  width: 100%;
  max-width: 960px;
  margin: 50px auto 0;
}
body#about .summary table {
  width: 65%;
  margin: 0 auto;
}
body#about .summary tr {
  display: table-row;
  margin: 0;
}
body#about .summary tr:first-child th,
body#about .summary tr:first-child td {
  border-top: none;
}
body#about .summary th,
body#about .summary td {
  display: table-cell;
  padding: 1em;
  line-height: 1.2;
  border: 1px dotted #a9a9a9;
  border-bottom: none;
  border-left: none;
  font-size: 16px;
  font-size: 1.6rem;
}
body#about .summary th {
  width: 35%;
}
body#about .summary td {
  width: 65%;
  border-right: none;
}
@media only screen and (max-width: 800px) {
  body#about .summary table {
    width: 80%;
  }
}
@media only screen and (max-width: 600px) {
  body#about .summary table {
    width: 100%;
  }
}
body#contact .message {
  margin: 0 0 40px;
  padding: 1em;
  background: #ffecec;
  -ms-border-radius: 2px;
  border-radius: 2px;
  font-size: 16px;
  font-size: 1.6rem;
  color: #5e0808;
}
body#contact form {
  position: relative;
  width: 65%;
  margin: 0 auto;
}
body#contact form .contact_area,
body#contact form .button_area {
  margin: 2.5em 0 0;
}
body#contact form .contact_area:first-child,
body#contact form .button_area:first-child {
  margin: 0;
}
body#contact form .contact_area br {
  display: none;
}
body#contact form .contact_area > label {
  display: block;
  font-size: 18px;
  font-size: 1.8rem;
}
body#contact form .contact_area .checkbox label,
body#contact form .contact_area .radio label {
  position: static;
  display: inline;
  width: auto;
  padding: 0;
  background: none;
  border: none;
  -ms-border-radius: 0;
  border-radius: 0;
  font-weight: normal;
  color: #3a3a3a;
}
body#contact form input[type=text],
body#contact form input[type=tel],
body#contact form input[type=email],
body#contact form textarea {
  width: 100%;
  background: #ffffff;
  border: 1px solid #e4e2e1;
  -ms-border-radius: 2px;
  border-radius: 2px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
body#contact form input[type=text],
body#contact form input[type=tel],
body#contact form input[type=email] {
  padding: 8px;
  font-size: 20px;
  font-size: 2rem;
}
body#contact form input[type=text] {
  width: 100%;
}
body#contact form input[type=text].contact_small {
  width: 60% !important;
}
body#contact form textarea {
  width: 100%;
  height: 180px;
  padding: 5px;
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.6;
}
body#contact form input[type=text]:focus,
body#contact form input[type=tel]:focus,
body#contact form input[type=email]:focus,
body#contact form textarea:focus {
  background: #ffffff;
  border: 1px solid #ffbfbf;
  outline: none;
}
body#contact form label {
  font-size: 20px;
  font-size: 2rem;
}
body#contact form label .requier {
  color: #993737;
}
body#contact form .checkbox,
body#contact form .radio {
  display: block;
}
body#contact form .checkbox label,
body#contact form .radio label {
  margin-right: 10px;
  font-size: 18px;
  font-size: 1.8rem;
}
body#contact form select {
  padding: 7px;
  background: #ffffff;
  border: 1px solid #eeeeee;
  -ms-border-radius: 3px;
  border-radius: 3px;
  font-size: 18px;
  font-size: 1.8rem;
}
body#contact form select:focus {
  outline: none;
}
body#contact form input[type=submit]:focus {
  outline: none;
}
body#contact form .wrap_select {
  position: relative;
  display: inline;
}
body#contact form .select_arrow {
  position: absolute;
  right: 10px;
  bottom: 12px;
  line-height: 0;
  font-size: 12px;
  font-size: 1.2rem;
  color: #3a3a3a;
}
body#contact form .button {
  position: relative;
  display: block;
  width: 100%;
  padding: 18px 10px;
  background: rgba(232, 232, 232, 0.5);
  border: none;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  font-size: 20px;
  font-size: 2rem;
  color: #3a3a3a;
  -ms-border-radius: 4px;
  border-radius: 4px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
body#contact form .button:hover,
body#contact form .button:active {
  cursor: pointer;
  background: #ffbfbf;
  color: #5e0808;
}
body#contact form input[type=text],
body#contact form input[type=tel],
body#contact form input[type=email],
body#contact form select,
body#contact form textarea {
  background: #ffffff;
  border-color: #dcdbdb;
}
body#contact form select {
  width: 100% !important;
}
body#contact form input[type=submit] {
  margin: 2em 0 0;
  background: #e6e6e6;
}
@media only screen and (max-width: 800px) {
  body#contact form {
    width: 80%;
  }
}
@media only screen and (max-width: 600px) {
  body#contact form {
    width: 100%;
  }
}
body#contact .personal_info {
  margin: 2.5em 0 0;
}
body#contact .personal_info p {
  margin-bottom: 0;
}
body#coupon .autopagerize_page_element {
  display: flex;
  flex-wrap: wrap;
  margin: -30px -15px 0;
}
body#coupon .article {
  box-sizing: border-box;
  flex: 0 1 calc((100% - 60px) / 2);
  margin: 30px 15px 0;
  padding: 8px;
  background: #e8e8e8;
  -ms-border-radius: 2px;
  border-radius: 2px;
}
@media only screen and (max-width: 600px) {
  body#coupon .article {
    flex-basis: 100%;
  }
}
body#coupon .article .image a {
  position: relative;
  display: block;
  margin: 0 0 1.5em;
  padding: 75% 0 0;
}
@media only screen and (max-width: 600px) {
  body#coupon .article .image a {
    padding-top: 0;
  }
}
body#coupon .article .image img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: block;
  max-width: 100%;
  max-height: 100%;
  margin: 0 auto;
}
@media only screen and (max-width: 600px) {
  body#coupon .article .image img {
    position: static;
    transform: none;
  }
}
body#coupon .article .summary {
  display: grid;
  grid-template-columns: 1fr 100px;
  grid-template-rows: auto 1fr;
  gap: 0 12px;
  grid-template-areas: 'article_title qrcode' 'text qrcode';
  overflow-wrap: anywhere;
}
body#coupon .article .article_title {
  grid-area: article_title;
  margin: 0;
  font-size: 26px;
  font-size: 2.6rem;
  line-height: 1.3;
}
body#coupon .article .text {
  grid-area: text;
  margin: 0.5em 0 0;
  padding: 0;
  list-style: none;
}
body#coupon .article .text li {
  padding-left: 5em;
  text-indent: -5em;
  font-weight: bold;
}
body#coupon .article .text li span {
  font-weight: normal;
}
body#coupon .article .qrcode {
  grid-area: qrcode;
}
body#coupon .article .qrcode img {
  display: block;
}
body#coupon .print {
  margin: 30px 0 0;
  text-align: right;
}
body#coupon .print a {
  display: inline-block;
  padding: .5em;
  background: rgba(232, 232, 232, 0.7);
  -ms-border-radius: 3px;
  border-radius: 3px;
  line-height: 1;
}
body#coupon .print a:hover {
  background: #e8e8e8;
}
body#reservation .message {
  margin: 0 0 40px;
  padding: 1em;
  background: #ffecec;
  -ms-border-radius: 2px;
  border-radius: 2px;
  font-size: 16px;
  font-size: 1.6rem;
  color: #5e0808;
}
body#reservation form {
  position: relative;
  width: 65%;
  margin: 0 auto;
}
body#reservation form .reservation_area {
  margin: 40px 0 0;
}
body#reservation form .reservation_area:first-child {
  margin: 0;
}
body#reservation form .reservation_area > label {
  font-size: 18px;
  font-size: 1.8rem;
}
body#reservation form .reservation_area .radio {
  display: block;
}
body#reservation form .reservation_area .reservation_course_body img {
  display: block;
  max-width: 100%;
}
body#reservation form input[type=text],
body#reservation form input[type=tel],
body#reservation form input[type=email],
body#reservation form textarea {
  width: 100%;
  background: #ffffff;
  border: 1px solid #e4e2e1;
  -ms-border-radius: 2px;
  border-radius: 2px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
body#reservation form input[type=text],
body#reservation form input[type=tel],
body#reservation form input[type=email] {
  padding: 8px;
  font-size: 20px;
  font-size: 2rem;
}
body#reservation form input[type=text] {
  width: 100%;
}
body#reservation form input[type=text].contact_small {
  width: 60% !important;
}
body#reservation form textarea {
  width: 100%;
  height: 180px;
  padding: 5px;
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 1.6;
}
body#reservation form input[type=text]:focus,
body#reservation form input[type=tel]:focus,
body#reservation form input[type=email]:focus,
body#reservation form textarea:focus {
  background: #ffffff;
  border: 1px solid #ffbfbf;
  outline: none;
}
body#reservation form label {
  font-size: 20px;
  font-size: 2rem;
}
body#reservation form label .requier {
  color: #993737;
}
body#reservation form .checkbox,
body#reservation form .radio {
  display: block;
}
body#reservation form .checkbox label,
body#reservation form .radio label {
  margin-right: 10px;
  font-size: 18px;
  font-size: 1.8rem;
}
body#reservation form select {
  padding: 7px;
  background: #ffffff;
  border: 1px solid #eeeeee;
  -ms-border-radius: 3px;
  border-radius: 3px;
  font-size: 18px;
  font-size: 1.8rem;
}
body#reservation form select:focus {
  outline: none;
}
body#reservation form input[type=submit]:focus {
  outline: none;
}
body#reservation form .wrap_select {
  position: relative;
  display: inline;
}
body#reservation form .select_arrow {
  position: absolute;
  right: 10px;
  bottom: 12px;
  line-height: 0;
  font-size: 12px;
  font-size: 1.2rem;
  color: #3a3a3a;
}
body#reservation form .button {
  position: relative;
  display: block;
  width: 100%;
  padding: 18px 10px;
  background: rgba(232, 232, 232, 0.5);
  border: none;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  font-size: 20px;
  font-size: 2rem;
  color: #3a3a3a;
  -ms-border-radius: 4px;
  border-radius: 4px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
body#reservation form .button:hover,
body#reservation form .button:active {
  cursor: pointer;
  background: #ffbfbf;
  color: #5e0808;
}
body#reservation form input[type=text],
body#reservation form input[type=tel],
body#reservation form input[type=email],
body#reservation form select,
body#reservation form textarea {
  background: #ffffff;
  border-color: #dcdbdb;
}
body#reservation form input[type=submit] {
  margin: 2em 0 0;
  background: #e6e6e6;
}
@media only screen and (max-width: 800px) {
  body#reservation form {
    width: 80%;
  }
}
@media only screen and (max-width: 600px) {
  body#reservation form {
    width: 100%;
  }
}
body#reservation .list {
  zoom: 1;
  overflow: hidden;
}
body#reservation .list:after {
  content: '';
  display: block;
  clear: both;
}
body#reservation .list .info {
  margin-top: 0;
}
body#reservation .list .info .note {
  margin: 0 0 1em;
  text-align: center;
}
body#reservation .list .info .summary {
  margin: 0 0 1em;
  padding: 1em;
  background: #e8e8e8;
  -ms-border-radius: 2px;
  border-radius: 2px;
  text-align: center;
  font-size: 26px;
  font-size: 2.6rem;
}
body#reservation .articles {
  margin-top: -30px;
}
body#reservation .articles .article {
  float: left;
  width: 31%;
  margin: 30px 0 0 20px;
  padding: 0;
  background: #e8e8e8;
  -ms-border-radius: 2px;
  border-radius: 2px;
}
@media screen and (max-width: 600px) {
  body#reservation .articles .article {
    margin-left: 0;
  }
}
body#reservation .articles .article .summary {
  padding: 10px;
}
body#reservation .articles .article h4 {
  margin: 10px 0;
  font-weight: normal;
  font-size: 22px;
  font-size: 2.2rem;
  line-height: 1.2;
}
body#reservation .articles .article .image {
  display: none;
  height: 200px;
  overflow: hidden;
  background-size: cover;
  background-position: 50%;
  -ms-border-radius: 2px 2px 0 0;
  border-radius: 2px 2px 0 0;
}
body#reservation .articles .article .image img {
  display: block;
  max-width: 100%;
}
body#reservation .articles .article .text {
  margin: 12px 0 0;
}
body#reservation .articles .article:nth-child(odd) {
  margin-left: 0;
}
body#reservation .articles .article .article_title {
  margin: .2em 0 0;
  font-size: 26px;
  font-size: 2.6rem;
  line-height: 1.2;
}
body#reservation .articles .article .text {
  margin: .5em 0 0;
}
body#calendar .table_calendar th.sun {
  color: #ffbfbf;
}
body#calendar .table_calendar td.sun p.day {
  background: #ffbfbf;
}
#cboxOverlay {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  overflow: visible;
  width: 100%;
  height: 100%;
  background: #000;
}
#colorbox {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 9999;
  overflow: visible;
  box-sizing: content-box;
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  outline: 0;
}
#cboxWrapper {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 9999;
  overflow: visible;
}
#cboxMiddleLeft,
#cboxBottomLeft {
  clear: left;
}
#cboxContent {
  box-sizing: content-box;
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  position: relative;
  overflow: visible;
  margin-top: 0;
  background: transparent;
}
#cboxLoadedContent {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  margin: auto;
  padding: 0;
  background: transparent;
}
#cboxTitle {
  margin: 0;
  position: absolute;
  top: -22px;
  left: 0;
  color: #333;
}
#cboxCurrent {
  position: absolute;
  top: -28px;
  right: auto;
  left: 50%;
  transform: translateX(-50%);
  text-indent: 0;
  font-size: 16px;
  line-height: 1;
  font-family: 'Noto Sans Japanese';
  color: #fff;
}
#cboxPrevious,
#cboxNext,
#cboxClose {
  position: absolute;
  overflow: visible;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  border-radius: 2px;
  text-indent: 0;
  transition: all 0.2s;
  cursor: pointer;
  outline: 0;
}
#cboxPrevious {
  top: calc(50% - 18px);
  right: auto;
  left: -40px;
  text-indent: -0.07em;
  font-weight: bold;
  font-size: 30px;
  line-height: 1;
}
#cboxNext {
  top: calc(50% - 18px);
  right: -40px;
  text-indent: 0.07em;
  font-weight: bold;
  font-size: 30px;
  line-height: 1;
}
#cboxClose {
  top: -40px;
  right: -40px;
}
@media only screen and (min-width: 769px) {
  #cboxClose {
    right: -36px;
  }
  #cboxPrevious:hover,
  #cboxNext:hover,
  #cboxClose:hover {
    background: rgba(255, 255, 255, 0.5);
  }
}
#cboxPrevious .fa,
#cboxNext .fa {
  color: #fff;
}
#cboxClose .fa {
  font-size: 20px;
  color: #fff;
}
#cboxSlideshow {
  position: absolute;
  top: -20px;
  overflow: visible;
  width: 20px;
  height: 20px;
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  text-indent: 0;
  outline: 0;
}
#cboxLoadingOverlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: transparent;
}
#cboxLoadingGraphic {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: none;
}
.cboxPhoto {
  float: left;
  margin: auto;
  border: 0;
  display: block;
  max-width: none;
}
@media only screen and (max-width: 800px) {
  #cboxLoadedContent table {
    width: 100%;
    height: auto;
  }
}
@media only screen and (max-width: 800px) {
  #cboxLoadedContent [class^="wysiwyg_template_profile"],
  #cboxLoadedContent [class^="wysiwyg_template_profile"] td,
  #cboxLoadedContent [class^="wysiwyg_template_profile"] img {
    display: block;
    max-width: 100%;
    height: auto;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
.photo-modal__image img {
  display: block;
  max-width: 100%;
  max-height: 76vh;
  margin: auto;
}
.photo-modal-body {
  box-sizing: border-box;
  margin: 0 auto;
  padding: 16px;
  background: #fff;
  color: #000;
}
.photo-modal--photo .photo-modal-body {
  display: none;
}
.photo-modal-body__item:empty {
  display: none;
}
.photo-modal-body__item + .photo-modal-body__item {
  margin: 1em 0 0;
}
.photo-modal-body__item--title {
  font-weight: bold;
  font-size: 15px;
}
.web-font {
  font-family: 'Noto Sans Japanese';
}
.shop_sitename {
  font-size: 116%;
}







/* ==================================================
   そよかぜレンタカー TOP専用 最終CSS
   ※このCSSは元CSSの一番下に追加
================================================== */


/* ==================================================
   TOP共通：横スクロール防止
================================================== */

html,
body {
  max-width: 100%;
  overflow-x: hidden !important;
}

body#top #container,
body#top #content {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}


/* ==================================================
   ヘッダー調整
================================================== */

body#top #header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  width: 100%;
  padding: 18px 0;
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: 0 10px 35px rgba(0, 0, 0, 0.06);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  transition: all 0.35s ease;
}

body#top #header.is-scroll {
  position: fixed;
  top: 0;
  padding: 10px 0;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 12px 35px rgba(0, 0, 0, 0.10);
}

body#top #header > .inner {
  max-width: 1180px;
  min-height: 64px;
  padding-left: 32px;
  padding-right: 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

body#top #header > .inner:after {
  display: none;
}

body#top #header .logo {
  margin: 0;
  line-height: 1;
  text-align: left;
}

body#top #header .logo a img {
  max-width: 220px;
  max-height: 56px;
}

body#top #header .site_description,
body#top #header .shop_tel {
  display: none;
}

body#top #header .navi.pc {
  margin: 0;
  font-size: 14px;
  font-size: 1.4rem;
  letter-spacing: 0.08em;
}

body#top #header .navi.pc .navi_list {
  display: flex;
  align-items: center;
  gap: 8px;
}

body#top #header .navi.pc li {
  display: block;
  margin: 0;
}

body#top #header .navi.pc li a {
  position: relative;
  display: block;
  padding: 10px 15px;
  border-radius: 999px;
  color: #222222;
  background: transparent;
  transition: all 0.25s ease;
}

body#top #header .navi.pc li a::after {
  content: "";
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 6px;
  height: 1px;
  background: linear-gradient(90deg, transparent, #111111, transparent);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.25s ease;
  opacity: 0.75;
}

body#top #header .navi.pc li a:hover {
  color: #000000;
  background: rgba(0, 0, 0, 0.045);
}

body#top #header .navi.pc li a:hover::after {
  transform: scaleX(1);
}

body#top #header .navi.pc li.active a {
  color: #000000;
  background: rgba(0, 0, 0, 0.07);
}


/* ==================================================
   FV：スライダー白画面対策込み
================================================== */

body#top #content {
  padding-top: 0;
}

body#top #wrap_slider {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 720px;
  max-height: 980px;
  overflow: hidden;
  background: #ffffff;
}

body#top #slider {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 720px;
  max-height: 980px;
  margin: 0;
  overflow: hidden;
}

body#top #slider .article {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 720px;
  max-height: 980px;
  background-size: cover !important;
  background-position: center center !important;
  overflow: hidden;
}

body#top #slider .article::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.40) 0%,
      rgba(255, 255, 255, 0.16) 38%,
      rgba(255, 255, 255, 0.02) 100%
    ),
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.22) 0%,
      rgba(255, 255, 255, 0.00) 45%,
      rgba(255, 255, 255, 0.10) 100%
    );
  pointer-events: none;
}

body#top #slider .article .slide_image_wrap {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
}

body#top #slider .article.move .slide_image_wrap {
  animation-name: scaleImageMove;
  animation-duration: 18s;
  animation-fill-mode: both;
}

body#top #slider .article img {
  visibility: visible !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  opacity: 1 !important;
}

body#top #slider .article .caption {
  display: none !important;
}

body#top .slick-track {
  z-index: 1 !important;
}

body#top .slick-dots {
  bottom: 34px;
  z-index: 5;
}

body#top .slick-dots li button:before {
  color: #111111;
  opacity: 0.35;
  font-size: 11px;
}

body#top .slick-dots li.slick-active button:before {
  opacity: 0.85;
}


/* ==================================================
   FVコピー
================================================== */

body#top .fv_copy {
  position: absolute;
  left: 7%;
  top: 55%;
  z-index: 10;
  width: min(86%, 680px);
  transform: translateY(-50%);
  padding: 34px 38px;
  background: rgba(255, 255, 255, 0.68);
  color: #111111;
  text-align: left;
  pointer-events: none;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.08);
}

body#top .fv_copy_sub {
  display: inline-block;
  margin: 0 0 16px;
  padding: 0;
  background: none;
  border: none;
  box-shadow: none;
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.8;
  letter-spacing: 0.07em;
  color: #333333;
}

body#top .fv_copy h2 {
  margin: 0;
  font-size: clamp(34px, 4.2vw, 58px);
  font-weight: 500;
  line-height: 1.32;
  letter-spacing: 0.05em;
  color: #111111;
  text-shadow: none;
}

body#top .fv_copy_text {
  max-width: 560px;
  margin: 22px 0 0;
  font-size: clamp(14px, 1.3vw, 17px);
  font-weight: 400;
  line-height: 2.05;
  letter-spacing: 0.045em;
  color: #222222;
  text-shadow: none;
}

body#top .fv_cta_area {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 30px 0 0;
  pointer-events: auto;
}

body#top .fv_cta_btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 210px;
  min-height: 56px;
  padding: 14px 42px 14px 24px;
  border: 1px solid rgba(20, 54, 58, 0.18);
  text-decoration: none;
  font-size: 15px;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.06em;
  transition: all 0.25s ease;
}

body#top .fv_cta_btn::after {
  content: "→";
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 18px;
  line-height: 1;
  transition: right 0.25s ease;
}

body#top .fv_cta_btn:hover {
  transform: translateY(-2px);
}

body#top .fv_cta_btn:hover::after {
  right: 16px;
}

body#top .fv_cta_reserve {
  background: #d9911b;
  border-color: #d9911b;
  color: #ffffff;
}

body#top .fv_cta_reserve:hover {
  background: #c98212;
  border-color: #c98212;
  color: #ffffff;
}

body#top .fv_cta_price {
  background: rgba(255, 255, 255, 0.82);
  color: #6f4700;
  border-color: rgba(217, 145, 27, 0.32);
}

body#top .fv_cta_price:hover {
  background: #fff0d2;
  color: #6f4700;
}


/* ==================================================
   TOPセクション共通：左右余白120px
================================================== */

body#top .rental_info_inner,
body#top .safety_inner,
body#top .access_inner,
body#top .iheya_nature_inner,
body#top .top_service_intro_inner {
  max-width: none !important;
  width: 100% !important;
  padding-left: 120px !important;
  padding-right: 120px !important;
}


/* ==================================================
   セクション1：レンタカー案内
================================================== */

body#top .welcomemessage.rental_info_section {
  margin-top: 0;
  padding: 105px 20px 100px;
  border: none;
  background: #ffffff;
  overflow: hidden;
  text-align: left;
}

body#top .rental_info_inner {
  position: relative;
  z-index: 1;
  margin: 0 auto;
}

body#top .rental_intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: 70px;
  align-items: center;
  padding-bottom: 56px;
  border-bottom: 1px solid rgba(20, 54, 58, 0.12);
}

body#top .rental_kicker {
  margin: 0 0 18px;
  color: #2f7f86;
  font-size: 14px;
  font-size: 1.4rem;
  letter-spacing: 0.1em;
  line-height: 1.8;
}

body#top .rental_intro h2 {
  margin: 0;
  color: #14363a;
  font-size: clamp(34px, 4.2vw, 56px);
  font-weight: 500;
  line-height: 1.38;
  letter-spacing: 0.05em;
}

body#top .rental_lead {
  max-width: 680px;
  margin: 30px 0 0;
  color: #41595c;
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 2.15;
  letter-spacing: 0.04em;
}

body#top .rental_intro_point {
  padding: 34px 28px;
  background: #f5fbfb;
  border-left: 3px solid #2f7f86;
}

body#top .point_number {
  margin: 0;
  color: #14363a;
  font-size: 64px;
  font-size: 6.4rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.02em;
}

body#top .point_number span {
  margin-left: 6px;
  color: #6f8c90;
  font-size: 18px;
  font-size: 1.8rem;
}

body#top .point_text {
  margin: 18px 0 0;
  color: #41595c;
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.9;
  letter-spacing: 0.05em;
}

body#top .rental_simple_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin: 48px 0 0;
  border-top: 1px solid rgba(20, 54, 58, 0.12);
  border-bottom: 1px solid rgba(20, 54, 58, 0.12);
}

body#top .rental_simple_item {
  padding: 30px 28px;
  border-left: 1px solid rgba(20, 54, 58, 0.12);
}

body#top .rental_simple_item:first-child {
  border-left: none;
}

body#top .rental_simple_item span {
  display: block;
  margin: 0 0 14px;
  color: #2f7f86;
  font-size: 13px;
  font-size: 1.3rem;
  letter-spacing: 0.12em;
}

body#top .rental_simple_item p {
  margin: 0;
  color: #253f42;
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.9;
  letter-spacing: 0.04em;
}

body#top .rental_notice_simple {
  margin: 42px 0 0;
  padding: 30px 34px;
  background: #fbf8f1;
  border-left: 3px solid #c39439;
}

body#top .rental_notice_simple p {
  margin: 12px 0 0;
  color: #5a4b2f;
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.035em;
}

body#top .rental_notice_simple p:first-child {
  margin-top: 0;
}

body#top .rental_notice_simple strong {
  color: #8a5a08;
  font-weight: 600;
}

body#top .rental_bottom {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  margin: 34px 0 0;
}

body#top .rental_tel,
body#top .rental_instagram {
  min-height: 116px;
  padding: 28px 30px;
  background: #ffffff;
  border: 1px solid rgba(20, 54, 58, 0.12);
  text-decoration: none;
  transition: all 0.25s ease;
  border-radius: 0 !important;
}

body#top .rental_tel:hover,
body#top .rental_instagram:hover {
  border-color: rgba(47, 127, 134, 0.35);
  background: #fbfefe;
}

body#top .rental_tel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: #14363a;
  font-size: clamp(28px, 3vw, 36px);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: 0.04em;
}

body#top .rental_tel span {
  display: block;
  margin: 0 0 10px;
  color: #6a8083;
  font-size: 14px;
  font-size: 1.4rem;
  letter-spacing: 0.06em;
}

body#top .rental_instagram {
  position: relative;
  display: flex;
  align-items: center;
  gap: 18px;
  color: #14363a;
}

body#top .rental_instagram .instagram_mark {
  flex: 0 0 52px;
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #ffffff;
  font-size: 27px;
  background: radial-gradient(circle at 30% 110%, #fdf497 0%, #fdf497 18%, #fd5949 42%, #d6249f 68%, #285AEB 100%);
}

body#top .rental_instagram p {
  margin: 0 0 8px;
  color: #14363a;
  font-size: 18px;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.04em;
}

body#top .rental_instagram span {
  display: block;
  color: #6a8083;
  font-size: 14px;
  font-size: 1.4rem;
  letter-spacing: 0.04em;
}


/* ==================================================
   共通CTA
================================================== */

body#top .rental_cta_area,
body#top .safety_cta_area,
body#top .access_cta_area {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin: 34px 0 0;
}

body#top .safety_cta_area {
  justify-content: center;
  margin-top: 54px;
}

body#top .rental_cta_btn {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  min-width: 245px;
  min-height: 74px;
  padding: 16px 54px 16px 24px;
  border: 1px solid rgba(20, 54, 58, 0.18);
  text-decoration: none;
  transition: all 0.25s ease;
}

body#top .rental_cta_btn::after {
  content: "→";
  position: absolute;
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  line-height: 1;
  transition: right 0.25s ease;
}

body#top .rental_cta_btn span {
  display: block;
  font-size: 18px;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0.06em;
}

body#top .rental_cta_btn small {
  display: block;
  margin: 5px 0 0;
  font-size: 12px;
  font-size: 1.2rem;
  line-height: 1.4;
  letter-spacing: 0.05em;
}

body#top .rental_cta_btn:hover {
  transform: translateY(-2px);
}

body#top .rental_cta_btn:hover::after {
  right: 18px;
}

body#top .rental_cta_reserve {
  background: linear-gradient(135deg, #ffb347 0%, #ff8a00 100%);
  color: #ffffff;
  border-color: #ff9a1f;
  box-shadow: 0 14px 34px rgba(255, 138, 0, 0.24);
}

body#top .rental_cta_reserve span,
body#top .rental_cta_reserve small {
  color: #ffffff;
}

body#top .rental_cta_reserve small {
  opacity: 0.9;
}

body#top .rental_cta_price {
  background: #fffaf0;
  color: #7a4a00;
  border-color: rgba(255, 138, 0, 0.28);
}

body#top .rental_cta_price span,
body#top .rental_cta_price small {
  color: #7a4a00;
}

body#top .rental_cta_reserve:hover {
  background: linear-gradient(135deg, #ffc35c 0%, #ff9500 100%);
  border-color: #ff9500;
  box-shadow: 0 18px 42px rgba(255, 138, 0, 0.32);
}

body#top .rental_cta_price:hover {
  background: #fff3d8;
  border-color: rgba(255, 138, 0, 0.42);
}


/* ==================================================
   安全セクション
================================================== */

body#top .safety_section {
  padding: 110px 20px;
  background: #f8fbfb;
}

body#top .safety_inner {
  margin: 0 auto;
}

body#top .safety_text {
  max-width: 900px;
}

body#top .safety_kicker {
  margin: 0 0 18px;
  color: #d9911b;
  font-size: 13px;
  font-size: 1.3rem;
  letter-spacing: 0.16em;
  line-height: 1;
}

body#top .safety_text h2 {
  margin: 0;
  color: #14363a;
  font-size: clamp(32px, 4vw, 54px);
  font-weight: 500;
  line-height: 1.38;
  letter-spacing: 0.05em;
}

body#top .safety_photo_under_title {
  width: min(100%, 620px);
  margin: 32px 0 0;
}

body#top .safety_photo_under_title::before {
  display: none;
}

body#top .safety_photo_under_title img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  box-shadow: 0 14px 36px rgba(20, 54, 58, 0.12);
}

body#top .safety_lead {
  max-width: 760px;
  margin: 38px 0 0;
  color: #41595c;
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 2.05;
  letter-spacing: 0.04em;
}

body#top .safety_points {
  margin: 44px 0 0;
  border-top: 1px solid rgba(20, 54, 58, 0.13);
}

body#top .safety_point {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 18px;
  padding: 24px 0;
  border-bottom: 1px solid rgba(20, 54, 58, 0.13);
}

body#top .safety_point span {
  color: #d9911b;
  font-size: 14px;
  font-size: 1.4rem;
  letter-spacing: 0.08em;
  line-height: 1.8;
}

body#top .safety_point h3 {
  margin: 0 0 8px;
  color: #14363a;
  font-size: 20px;
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.04em;
}

body#top .safety_point p {
  margin: 0;
  color: #4d6669;
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.9;
  letter-spacing: 0.035em;
}


/* ==================================================
   アクセスセクション
================================================== */

body#top .access_section {
  padding: 110px 20px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbfb 100%);
}

body#top .access_inner {
  margin: 0 auto;
}

body#top .access_head {
  max-width: 820px;
  margin: 0 0 54px;
}

body#top .access_kicker {
  margin: 0 0 18px;
  color: #2f7f86;
  font-size: 13px;
  font-size: 1.3rem;
  letter-spacing: 0.16em;
  line-height: 1;
}

body#top .access_head h2 {
  margin: 0;
  color: #14363a;
  font-size: clamp(32px, 4vw, 54px);
  font-weight: 500;
  line-height: 1.38;
  letter-spacing: 0.05em;
}

body#top .access_lead {
  max-width: 760px;
  margin: 28px 0 0;
  color: #41595c;
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 2.05;
  letter-spacing: 0.04em;
}

body#top .access_layout {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: 38px;
  align-items: stretch;
}

body#top .access_info_box {
  padding: 38px 36px;
  background: #ffffff;
  border: 1px solid rgba(20, 54, 58, 0.12);
  box-shadow: 0 18px 45px rgba(20, 54, 58, 0.07);
}

body#top .access_table {
  margin: 0;
}

body#top .access_table div {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 18px;
  padding: 18px 0;
  border-bottom: 1px solid rgba(20, 54, 58, 0.12);
}

body#top .access_table div:first-child {
  padding-top: 0;
}

body#top .access_table dt {
  color: #2f7f86;
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.8;
  letter-spacing: 0.08em;
}

body#top .access_table dd {
  margin: 0;
  color: #253f42;
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 1.9;
  letter-spacing: 0.04em;
}

body#top .access_table dd a {
  color: #14363a;
  font-size: 22px;
  font-size: 2.2rem;
  letter-spacing: 0.04em;
}

body#top .access_map_box {
  min-height: 460px;
  background: #eef6f6;
  border: 1px solid rgba(20, 54, 58, 0.12);
  overflow: hidden;
  box-shadow: 0 18px 45px rgba(20, 54, 58, 0.07);
}

body#top .access_map_box iframe {
  display: block;
  width: 100% !important;
  height: 100% !important;
  min-height: 460px;
  border: none;
}


/* ==================================================
   伊平屋の自然セクション
================================================== */

body#top .iheya_nature_section {
  position: relative;
  padding: 110px 20px 120px;
  background: #f8fbfb;
  overflow: hidden;
}

body#top .iheya_nature_section::before {
  content: "";
  position: absolute;
  right: -140px;
  top: 90px;
  width: 360px;
  height: 360px;
  background: rgba(47, 127, 134, 0.10);
  border-radius: 50%;
}

body#top .iheya_nature_section::after {
  content: "";
  position: absolute;
  left: -150px;
  bottom: 90px;
  width: 340px;
  height: 340px;
  background: rgba(217, 145, 27, 0.12);
  border-radius: 50%;
}

body#top .iheya_nature_inner {
  position: relative;
  z-index: 1;
  margin: 0 auto;
}

body#top .iheya_nature_head {
  max-width: 780px;
  margin: 0 0 54px;
}

body#top .iheya_nature_kicker {
  margin: 0 0 18px;
  color: #2f7f86;
  font-size: 13px;
  font-size: 1.3rem;
  letter-spacing: 0.16em;
  line-height: 1;
}

body#top .iheya_nature_head h2 {
  margin: 0;
  color: #14363a;
  font-size: clamp(32px, 4.2vw, 56px);
  font-weight: 500;
  line-height: 1.38;
  letter-spacing: 0.05em;
}

body#top .iheya_nature_head p {
  max-width: 720px;
  margin: 28px 0 0;
  color: #41595c;
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 2.05;
  letter-spacing: 0.04em;
}

body#top .iheya_nature_gallery {
  display: grid;
  grid-template-columns: 1.35fr 0.9fr;
  grid-template-rows: 250px 250px;
  gap: 18px;
}

body#top .iheya_nature_photo {
  position: relative;
  overflow: hidden;
  background: #e8f2f2;
  box-shadow: 0 18px 45px rgba(20, 54, 58, 0.10);
}

body#top .iheya_nature_photo.large {
  grid-row: span 2;
}

body#top .iheya_nature_slideshow {
  position: relative;
}

body#top .iheya_nature_slideshow img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  animation: iheyaNatureFade 15s infinite;
}

body#top .iheya_nature_slideshow img:nth-child(1) {
  animation-delay: 0s;
}

body#top .iheya_nature_slideshow img:nth-child(2) {
  animation-delay: 5s;
}

body#top .iheya_nature_slideshow img:nth-child(3) {
  animation-delay: 10s;
}

@keyframes iheyaNatureFade {
  0% {
    opacity: 0;
    transform: scale(1.04);
  }

  8% {
    opacity: 1;
  }

  30% {
    opacity: 1;
  }

  42% {
    opacity: 0;
    transform: scale(1.10);
  }

  100% {
    opacity: 0;
    transform: scale(1.10);
  }
}

body#top .iheya_nature_message {
  position: relative;
  z-index: 5;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 28px;
  align-items: center;
  margin: 42px 0 0;
  padding: 34px 38px;
  background: #ffffff;
  border: 1px solid rgba(20, 54, 58, 0.10);
  box-shadow: 0 18px 45px rgba(20, 54, 58, 0.07);
}

body#top .iheya_nature_message p {
  margin: 0;
  color: #41595c;
  font-size: 15px;
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.04em;
}

body#top .iheya_nature_btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 230px;
  min-height: 58px;
  padding: 14px 46px 14px 24px;
  background: linear-gradient(135deg, #ffb347 0%, #ff8a00 100%);
  border: 1px solid #ff9a1f;
  color: #ffffff !important;
  text-decoration: none;
  font-size: 15px;
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  box-shadow: 0 14px 34px rgba(255, 138, 0, 0.24);
  transition: all 0.25s ease;
}

body#top .iheya_nature_btn::after {
  content: "→";
  position: absolute;
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
  transition: right 0.25s ease;
}

body#top .iheya_nature_btn:hover {
  transform: translateY(-2px);
  background: linear-gradient(135deg, #ffc35c 0%, #ff9500 100%);
  box-shadow: 0 18px 42px rgba(255, 138, 0, 0.32);
}

body#top .iheya_nature_btn:hover::after {
  right: 17px;
}


/* ==================================================
   伊平屋トラベルサービス導線
================================================== */

body#top .top_service_intro_section {
  position: relative;
  padding: 130px 20px;
  margin-top: 70px;
  background: linear-gradient(180deg, #f8fbfb 0%, #ffffff 100%);
  overflow: hidden;
}

body#top .top_service_intro_section.no_photo {
  background:
    linear-gradient(135deg, rgba(20, 54, 58, 0.95), rgba(47, 127, 134, 0.92)) !important;
}

body#top .top_service_intro_inner {
  position: relative;
  z-index: 1;
  margin: 0 auto;
}

body#top .top_service_intro_section.no_photo .top_service_intro_inner {
  display: block !important;
  text-align: center;
}

body#top .top_service_intro_content {
  padding: 24px 0;
}

body#top .top_service_intro_kicker {
  margin: 0 0 18px;
  color: #ffd28a;
  font-size: 13px;
  font-size: 1.3rem;
  letter-spacing: 0.16em;
  line-height: 1;
}

body#top .top_service_intro_content h2 {
  margin: 0;
  color: #ffffff;
  font-size: clamp(34px, 4.4vw, 58px);
  font-weight: 500;
  line-height: 1.36;
  letter-spacing: 0.06em;
}

body#top .top_service_intro_text {
  max-width: 760px;
  margin: 28px auto 0;
  color: rgba(255, 255, 255, 0.88);
  font-size: 16px;
  font-size: 1.6rem;
  line-height: 2.05;
  letter-spacing: 0.04em;
}

body#top .top_service_intro_btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  min-height: 58px;
  margin: 36px 0 0;
  padding: 14px 46px 14px 24px;
  background: linear-gradient(135deg, #ffb347 0%, #ff8a00 100%);
  border: 1px solid #ff9a1f;
  color: #ffffff !important;
  text-decoration: none;
  font-size: 15px;
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  box-shadow: 0 14px 34px rgba(255, 138, 0, 0.24);
  transition: all 0.25s ease;
}

body#top .top_service_intro_btn::after {
  content: "→";
  position: absolute;
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
  transition: right 0.25s ease;
}

body#top .top_service_intro_btn:hover {
  transform: translateY(-2px);
  background: linear-gradient(135deg, #ffc35c 0%, #ff9500 100%);
  box-shadow: 0 18px 42px rgba(255, 138, 0, 0.32);
}

body#top .top_service_intro_btn:hover::after {
  right: 17px;
}


/* ==================================================
   タブレット・スマホ
================================================== */

@media only screen and (max-width: 1000px) {
  body#top .rental_info_inner,
  body#top .safety_inner,
  body#top .access_inner,
  body#top .iheya_nature_inner,
  body#top .top_service_intro_inner {
    padding-left: 40px !important;
    padding-right: 40px !important;
  }
}

@media only screen and (max-width: 800px) {
  body#top #header {
    padding: 12px 0;
    background: rgba(255, 255, 255, 0.92);
  }

  body#top #header > .inner {
    min-height: 56px;
    padding-left: 20px;
    padding-right: 58px;
    display: flex;
    justify-content: center;
  }

  body#top #header .logo {
    max-width: 100%;
    text-align: center;
  }

  body#top #header .logo a img {
    max-width: 180px;
    max-height: 48px;
  }

  body#top #header.is-scroll .logo {
    display: block;
    margin: 0;
  }

  body#top #header #button_navi {
    right: 20px;
    width: 30px;
  }

  body#top #header #button_navi div {
    color: #111111;
  }

  body#top #header .navi.mobile {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9998;
    min-height: 100vh;
    padding: 100px 24px 40px;
    background: rgba(255, 255, 255, 0.97);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
  }

  body#top #header .navi.mobile ul {
    width: 100%;
  }

  body#top #header .navi.mobile ul li {
    margin: 10px auto 0;
  }

  body#top #header .navi.mobile ul li a {
    padding: 16px 14px;
    background: rgba(0, 0, 0, 0.045);
    color: #111111;
    border-radius: 12px;
    font-size: 18px;
    font-size: 1.8rem;
    letter-spacing: 0.08em;
  }

  body#top #wrap_slider,
  body#top #slider,
  body#top #slider .article {
    height: 100svh;
    min-height: 640px;
    max-height: none;
  }

  body#top .welcomemessage.rental_info_section,
  body#top .safety_section,
  body#top .access_section,
  body#top .iheya_nature_section {
    padding-top: 82px;
    padding-bottom: 82px;
  }

  body#top .rental_intro {
    grid-template-columns: 1fr;
    gap: 34px;
    padding-bottom: 42px;
  }

  body#top .rental_intro_point {
    max-width: 280px;
  }

  body#top .rental_simple_list {
    grid-template-columns: 1fr;
  }

  body#top .rental_simple_item {
    border-left: none;
    border-top: 1px solid rgba(20, 54, 58, 0.12);
  }

  body#top .rental_simple_item:first-child {
    border-top: none;
  }

  body#top .rental_bottom {
    grid-template-columns: 1fr;
  }

  body#top .access_layout {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  body#top .access_map_box,
  body#top .access_map_box iframe {
    min-height: 360px;
  }

  body#top .iheya_nature_gallery {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }

  body#top .iheya_nature_photo,
  body#top .iheya_nature_photo.large {
    grid-row: auto;
    height: 280px;
  }

  body#top .iheya_nature_photo.large {
    height: 360px;
  }

  body#top .iheya_nature_message {
    grid-template-columns: 1fr;
    padding: 30px 26px;
  }

  body#top .top_service_intro_section {
    padding: 92px 20px;
    margin-top: 46px;
  }

  body#top .top_service_intro_section.no_photo .top_service_intro_inner {
    text-align: left;
  }
}

@media only screen and (max-width: 600px) {
  body#top .rental_info_inner,
  body#top .safety_inner,
  body#top .access_inner,
  body#top .iheya_nature_inner,
  body#top .top_service_intro_inner {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  body#top #wrap_slider,
  body#top #slider,
  body#top #slider .article {
    height: 100svh;
    min-height: 600px;
  }

  body#top #slider .article::before {
    background:
      linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.36) 0%,
        rgba(255, 255, 255, 0.08) 40%,
        rgba(255, 255, 255, 0.18) 100%
      );
  }

  body#top .fv_copy {
    left: 20px;
    top: 56%;
    width: calc(100% - 40px);
    padding: 26px 22px;
    background: rgba(255, 255, 255, 0.74);
  }

  body#top .fv_copy_sub {
    margin-bottom: 13px;
    font-size: 13px;
    font-size: 1.3rem;
    line-height: 1.7;
    letter-spacing: 0.04em;
  }

  body#top .fv_copy h2 {
    font-size: clamp(30px, 8.2vw, 42px);
    line-height: 1.34;
    letter-spacing: 0.04em;
  }

  body#top .fv_copy_text {
    margin-top: 17px;
    font-size: 14px;
    font-size: 1.4rem;
    line-height: 1.9;
  }

  body#top .fv_copy_text br,
  body#top .access_lead br,
  body#top .iheya_nature_head p br,
  body#top .iheya_nature_message p br,
  body#top .top_service_intro_text br {
    display: none;
  }

  body#top .fv_cta_area,
  body#top .rental_cta_area,
  body#top .safety_cta_area,
  body#top .access_cta_area {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
  }

  body#top .fv_cta_btn,
  body#top .rental_cta_btn,
  body#top .iheya_nature_btn,
  body#top .top_service_intro_btn {
    width: 100%;
    min-width: 0;
  }

  body#top .welcomemessage.rental_info_section,
  body#top .safety_section,
  body#top .access_section,
  body#top .iheya_nature_section {
    padding: 68px 18px;
  }

  body#top .rental_intro h2,
  body#top .safety_text h2,
  body#top .access_head h2,
  body#top .iheya_nature_head h2,
  body#top .top_service_intro_content h2 {
    font-size: clamp(29px, 8vw, 40px);
  }

  body#top .rental_lead,
  body#top .safety_lead,
  body#top .access_lead,
  body#top .iheya_nature_head p,
  body#top .top_service_intro_text {
    font-size: 15px;
    font-size: 1.5rem;
    line-height: 2;
  }

  body#top .rental_intro_point,
  body#top .rental_notice_simple,
  body#top .rental_tel,
  body#top .rental_instagram,
  body#top .access_info_box,
  body#top .iheya_nature_message {
    padding: 24px 22px;
  }

  body#top .point_number {
    font-size: 54px;
    font-size: 5.4rem;
  }

  body#top .rental_simple_item {
    padding: 24px 0;
  }

  body#top .safety_photo_under_title {
    width: 100%;
    margin-top: 26px;
  }

  body#top .safety_point {
    grid-template-columns: 38px 1fr;
    gap: 14px;
    padding: 22px 0;
  }

  body#top .access_table div {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 16px 0;
  }

  body#top .access_table dd a {
    font-size: 20px;
    font-size: 2rem;
  }

  body#top .access_map_box,
  body#top .access_map_box iframe {
    min-height: 300px;
  }

  body#top .iheya_nature_photo {
    height: 220px;
  }

  body#top .iheya_nature_photo.large {
    height: 300px;
  }

  body#top .top_service_intro_section {
    padding: 76px 18px;
    margin-top: 34px;
  }
}






/* ==================================================
   共通ヘッダー：TOP / フリーページ共通
================================================== */

#header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  z-index: 9999 !important;
  width: 100% !important;
  padding: 18px 0 !important;
  background: rgba(255, 255, 255, 0.88) !important;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: 0 10px 35px rgba(0, 0, 0, 0.06) !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

#header.is-scroll {
  position: fixed !important;
  top: 0 !important;
  padding: 10px 0 !important;
  background: rgba(255, 255, 255, 0.96) !important;
  box-shadow: 0 12px 35px rgba(0, 0, 0, 0.10) !important;
}

#header > .inner {
  max-width: 1180px !important;
  min-height: 64px !important;
  margin: 0 auto !important;
  padding-left: 32px !important;
  padding-right: 32px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

#header > .inner:after {
  display: none !important;
}

#header .logo {
  margin: 0 !important;
  max-width: none !important;
  text-align: left !important;
  line-height: 1 !important;
}

#header .logo a {
  display: inline-flex !important;
  align-items: center !important;
  color: #111111 !important;
  font-size: 24px !important;
  font-weight: 500 !important;
  letter-spacing: 0.05em !important;
}

#header .logo a img {
  display: block !important;
  max-width: 220px !important;
  max-height: 56px !important;
  width: auto !important;
  height: auto !important;
}

#header .site_description,
#header .shop_tel {
  display: none !important;
}

/* PCナビ */
#header .navi.pc {
  display: block !important;
  margin: 0 !important;
  font-size: 14px !important;
  letter-spacing: 0.08em;
}

#header .navi.pc .navi_list {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

#header .navi.pc li {
  display: block !important;
  margin: 0 !important;
}

#header .navi.pc li a {
  position: relative !important;
  display: block !important;
  padding: 10px 15px !important;
  border-radius: 999px !important;
  color: #222222 !important;
  background: transparent !important;
  transition: all 0.25s ease !important;
}

#header .navi.pc li a:hover {
  color: #000000 !important;
  background: rgba(0, 0, 0, 0.045) !important;
}

#header .navi.pc li.active a {
  color: #000000 !important;
  background: rgba(0, 0, 0, 0.07) !important;
}

/* サブナビ */
#header .navi.pc .sub_navi {
  background: rgba(255, 255, 255, 0.96) !important;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-radius: 14px !important;
  padding: 8px !important;
  margin-top: 8px !important;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.12) !important;
}

#header .navi.pc .sub_navi li a {
  color: #222222 !important;
  border-radius: 10px !important;
}

/* 固定ヘッダー分、下層ページの上余白を確保 */
body:not(#top) #content {
  padding-top: 110px !important;
}

/* TOPはFVがあるので余白なし */
body#top #content {
  padding-top: 0 !important;
}

/* スマホ */
@media only screen and (max-width: 800px) {
  #header {
    padding: 12px 0 !important;
    background: rgba(255, 255, 255, 0.94) !important;
  }

  #header > .inner {
    min-height: 56px !important;
    padding-left: 20px !important;
    padding-right: 58px !important;
    justify-content: center !important;
  }

  #header .logo {
    text-align: center !important;
  }

  #header .logo a img {
    max-width: 180px !important;
    max-height: 48px !important;
  }

  #header.is-scroll .logo {
    display: block !important;
    margin: 0 !important;
  }

  #header .navi.pc {
    display: none !important;
  }

  #header #button_navi {
    display: block !important;
    right: 20px !important;
    width: 30px !important;
  }

  #header #button_navi div {
    color: #111111 !important;
  }

  #header .navi.mobile {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    z-index: 9998 !important;
    min-height: 100vh !important;
    padding: 100px 24px 40px !important;
    background: rgba(255, 255, 255, 0.97) !important;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
  }

  #header .navi.mobile ul {
    width: 100% !important;
  }

  #header .navi.mobile ul li {
    margin: 10px auto 0 !important;
  }

  #header .navi.mobile ul li a {
    padding: 16px 14px !important;
    background: rgba(0, 0, 0, 0.045) !important;
    color: #111111 !important;
    border-radius: 12px !important;
    font-size: 18px !important;
    letter-spacing: 0.08em !important;
  }

  body:not(#top) #content {
    padding-top: 92px !important;
  }
}


/* ==================================================
   フリーページ共通テンプレート
================================================== */

body#free #content > .inner {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
}

.free_template_page {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  background: #ffffff;
  overflow-x: hidden;
}

.free_template_inner {
  width: 100%;
  max-width: none;
  margin: 0 auto;
  padding: 0;
}

.free_template_body {
  width: 100%;
  margin: 0;
  padding: 0;
}

body#free .textfield {
  margin: 0;
  padding: 0;
}

body#free .textfield ul,
body#free .textfield ol {
  padding-left: 0;
}

body#free .textfield ul li,
body#free .textfield ol li {
  list-style: none;
}

body#free .textfield img,
body#free .textfield iframe {
  max-width: 100% !important;
}

body#free,
body#free #container,
body#free #content,
body#free .free_template_page {
  max-width: 100%;
  overflow-x: hidden;
}


/* ==================================================
   フリーページ共通デザイン
================================================== */

.free_page {
  width: 100%;
  padding: 110px 20px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbfb 48%, #ffffff 100%);
  box-sizing: border-box;
  font-family: 'Noto Sans Japanese', 'Questrial', 'ヒラギノ角ゴ Pro', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, sans-serif;
}

.free_page * {
  box-sizing: border-box;
}

.free_page_inner,
.price_inner,
.booking_inner,
.service_inner,
.coverage_inner,
.access_free_inner {
  width: 100%;
  max-width: none;
  margin: 0 auto;
  padding-left: 120px;
  padding-right: 120px;
}

.free_page_head {
  max-width: 860px;
  margin: 0 auto 64px;
  text-align: center;
}

.free_page_kicker {
  margin: 0 0 18px;
  color: #2f7f86;
  font-size: 13px;
  letter-spacing: 0.16em;
  line-height: 1;
}

.free_page_head h1 {
  margin: 0;
  color: #14363a;
  font-size: clamp(36px, 4.8vw, 64px);
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0.06em;
}

.free_page_head p {
  margin: 28px 0 0;
  color: #41595c;
  font-size: 16px;
  line-height: 2.05;
  letter-spacing: 0.04em;
}

@media only screen and (max-width: 1000px) {
  .free_page_inner,
  .price_inner,
  .booking_inner,
  .service_inner,
  .coverage_inner,
  .access_free_inner {
    padding-left: 40px;
    padding-right: 40px;
  }
}

@media only screen and (max-width: 800px) {
  .free_page {
    padding: 82px 20px;
  }

  .free_page_head {
    text-align: left;
    margin-bottom: 48px;
  }
}

@media only screen and (max-width: 600px) {
  .free_page {
    padding: 68px 18px;
  }

  .free_page_inner,
  .price_inner,
  .booking_inner,
  .service_inner,
  .coverage_inner,
  .access_free_inner {
    padding-left: 0;
    padding-right: 0;
  }

  .free_page_head h1 {
    font-size: clamp(31px, 8vw, 43px);
  }

  .free_page_head p br {
    display: none;
  }
}


/* ==================================================
   料金ページ専用CSS
================================================== */

.price_section_title {
  margin: 70px 0 28px;
  padding-left: 18px;
  border-left: 4px solid #2f7f86;
}

.price_section_title:first-of-type {
  margin-top: 0;
}

.price_section_title span {
  display: block;
  margin-bottom: 8px;
  color: #2f7f86;
  font-size: 12px;
  letter-spacing: 0.16em;
}

.price_section_title h2 {
  margin: 0;
  color: #14363a;
  font-size: clamp(28px, 3.6vw, 44px);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.05em;
}

.price_grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}

.price_card {
  background: #ffffff;
  border: 1px solid rgba(20, 54, 58, 0.12);
  box-shadow: 0 20px 56px rgba(20, 54, 58, 0.08);
  overflow: hidden;
}

.price_card_image {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: #eef6f6;
}

.price_card_image.single {
  display: block;
}

.price_card_image img {
  display: block;
  width: 100%;
  height: 240px;
  object-fit: cover;
}

.price_card_body {
  padding: 34px 32px 38px;
}

.price_card_body h3 {
  margin: 0;
  color: #14363a;
  font-size: 28px;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.05em;
}

.price_sub {
  margin: 12px 0 0;
  color: #2f7f86;
  font-size: 15px;
  line-height: 1.8;
  letter-spacing: 0.04em;
}

.price_note {
  margin: 20px 0 0;
  color: #41595c;
  font-size: 14px;
  line-height: 1.9;
  letter-spacing: 0.035em;
}

.price_list {
  margin: 26px 0 0;
  padding: 0;
  list-style: none !important;
  border-top: 1px solid rgba(20, 54, 58, 0.12);
}

.price_list li {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 15px 0;
  border-bottom: 1px solid rgba(20, 54, 58, 0.12);
  color: #41595c;
  font-size: 15px;
  line-height: 1.6;
  letter-spacing: 0.035em;
  list-style: none !important;
}

.price_list strong {
  color: #14363a;
  font-weight: 600;
  white-space: nowrap;
}

.price_caution {
  margin: 26px 0 0;
  padding: 20px 22px;
  background: #fbf8f1;
  border-left: 3px solid #c39439;
  color: #5a4b2f;
  font-size: 14px;
  line-height: 1.9;
  letter-spacing: 0.035em;
}

.price_business,
.price_goods {
  margin: 28px 0 0;
  padding: 38px 42px;
  background: #ffffff;
  border: 1px solid rgba(20, 54, 58, 0.12);
  box-shadow: 0 20px 56px rgba(20, 54, 58, 0.08);
}

.price_business h3,
.price_goods h3 {
  margin: 0;
  color: #14363a;
  font-size: 28px;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.05em;
}

.price_business p,
.price_goods p {
  margin: 20px 0 0;
  color: #41595c;
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.035em;
}

.price_bottom_cta {
  margin: 90px auto 0;
  padding: 58px 32px;
  background: linear-gradient(135deg, rgba(20, 54, 58, 0.94), rgba(47, 127, 134, 0.92));
  text-align: center;
  color: #ffffff;
  box-shadow: 0 24px 60px rgba(20, 54, 58, 0.18);
}

.price_bottom_cta_kicker {
  margin: 0 0 18px;
  color: #ffd28a;
  font-size: 13px;
  letter-spacing: 0.16em;
  line-height: 1;
}

.price_bottom_cta h3 {
  margin: 0;
  color: #ffffff;
  font-size: clamp(30px, 4vw, 50px);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.06em;
}

.price_bottom_cta p {
  margin: 24px 0 0;
  color: rgba(255, 255, 255, 0.88);
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.04em;
}

.price_bottom_cta_buttons {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
  margin: 34px 0 0;
}

.price_bottom_cta_btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 230px;
  min-height: 60px;
  padding: 15px 46px 15px 26px;
  border: 1px solid rgba(255, 255, 255, 0.26);
  color: #ffffff !important;
  text-decoration: none;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.06em;
}

.price_bottom_cta_btn::after {
  content: "→";
  position: absolute;
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
}

.price_bottom_cta_btn.main {
  background: linear-gradient(135deg, #ffb347 0%, #ff8a00 100%);
  border-color: #ff9a1f;
}

.price_bottom_cta_btn.sub {
  background: rgba(255, 255, 255, 0.08);
}

@media only screen and (max-width: 800px) {
  .price_grid {
    grid-template-columns: 1fr;
  }

  .price_business,
  .price_goods {
    padding: 34px 28px;
  }
}

@media only screen and (max-width: 600px) {
  .price_card_body {
    padding: 28px 22px 32px;
  }

  .price_card_image img {
    height: 210px;
  }

  .price_list li {
    flex-direction: column;
    gap: 4px;
  }

  .price_business,
  .price_goods {
    padding: 30px 22px;
  }

  .price_bottom_cta {
    margin-top: 70px;
    padding: 44px 22px;
  }

  .price_bottom_cta p br {
    display: none;
  }

  .price_bottom_cta_buttons {
    display: grid;
    grid-template-columns: 1fr;
  }

  .price_bottom_cta_btn {
    width: 100%;
    min-width: 0;
  }
}


/* ==================================================
   予約ページ専用CSS
================================================== */

.booking_page {
  background: linear-gradient(180deg, #ffffff 0%, #f8fbfb 100%);
}

.booking_box {
  padding: 42px;
  background: #ffffff;
  border: 1px solid rgba(20, 54, 58, 0.12);
  box-shadow: 0 20px 56px rgba(20, 54, 58, 0.08);
}

.booking_box h2 {
  margin: 0 0 20px;
  color: #14363a;
  font-size: clamp(26px, 3vw, 38px);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.05em;
}

.booking_box p {
  margin: 0;
  color: #41595c;
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.035em;
}

.iheya_service_page {

  position: relative;

  width: 100vw;

  margin-left: calc(50% - 50vw);

  margin-right: calc(50% - 50vw);

  padding: 110px 20px;

  background: linear-gradient(180deg, #ffffff 0%, #f8fbfb 48%, #ffffff 100%);

  overflow: hidden;

  box-sizing: border-box;

}

.iheya_service_page * {

  box-sizing: border-box;

}

.iheya_service_page::before {

  content: "";

  position: absolute;

  right: -140px;

  top: 80px;

  width: 380px;

  height: 380px;

  background: rgba(47, 127, 134, 0.10);

  border-radius: 50%;

}

.iheya_service_page::after {

  content: "";

  position: absolute;

  left: -150px;

  bottom: 90px;

  width: 340px;

  height: 340px;

  background: rgba(217, 145, 27, 0.12);

  border-radius: 50%;

}

.iheya_service_inner {

  position: relative;

  z-index: 1;

  max-width: 1080px;

  margin: 0 auto;

}

.iheya_service_head {

  max-width: 860px;

  margin: 0 auto 64px;

  text-align: center;

}

.iheya_service_kicker {

  margin: 0 0 18px;

  color: #2f7f86;

  font-size: 13px;

  letter-spacing: 0.16em;

  line-height: 1;

}

.iheya_service_head h1 {

  margin: 0;

  color: #14363a;

  font-size: clamp(36px, 4.8vw, 64px);

  font-weight: 500;

  line-height: 1.35;

  letter-spacing: 0.06em;

}

.iheya_service_head p {

  margin: 28px 0 0;

  color: #41595c;

  font-size: 16px;

  line-height: 2.05;

  letter-spacing: 0.04em;

}

.iheya_service_cards {

  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 28px;

}

.iheya_service_card {

  background: #ffffff;

  border: 1px solid rgba(20, 54, 58, 0.12);

  box-shadow: 0 22px 58px rgba(20, 54, 58, 0.09);

  overflow: hidden;

}

.iheya_service_image {

  height: 320px;

  background: #eef6f6;

  overflow: hidden;

}

.iheya_service_image img {

  display: block;

  width: 100%;

  height: 100%;

  object-fit: cover;

  transition: transform 0.6s ease;

}

.iheya_service_card:hover .iheya_service_image img {

  transform: scale(1.05);

}

.iheya_service_body {

  padding: 34px 32px 38px;

}

.iheya_service_label {

  margin: 0 0 12px;

  color: #d9911b;

  font-size: 13px;

  letter-spacing: 0.14em;

  line-height: 1;

}

.iheya_service_body h2 {

  margin: 0;

  color: #14363a;

  font-size: 30px;

  font-weight: 500;

  line-height: 1.4;

  letter-spacing: 0.05em;

}

.iheya_service_sub {

  margin: 12px 0 0;

  color: #2f7f86;

  font-size: 16px;

  line-height: 1.7;

  letter-spacing: 0.05em;

}

.iheya_service_text {

  margin: 22px 0 0;

  color: #41595c;

  font-size: 15px;

  line-height: 2;

  letter-spacing: 0.035em;

}

.iheya_service_btn {

  position: relative;

  display: inline-flex;

  align-items: center;

  justify-content: center;

  min-width: 220px;

  min-height: 58px;

  margin: 30px 0 0;

  padding: 14px 46px 14px 24px;

  background: #14363a;

  border: 1px solid #14363a;

  color: #ffffff !important;

  text-decoration: none;

  font-size: 15px;

  font-weight: 500;

  letter-spacing: 0.06em;

}

.iheya_service_btn::after {

  content: "→";

  position: absolute;

  right: 22px;

  top: 50%;

  transform: translateY(-50%);

}

.iheya_service_bottom {

  max-width: 880px;

  margin: 72px auto 0;

  padding: 56px 34px;

  background: linear-gradient(135deg, rgba(20, 54, 58, 0.95), rgba(47, 127, 134, 0.92));

  text-align: center;

  color: #ffffff;

  box-shadow: 0 24px 60px rgba(20, 54, 58, 0.18);

}

.iheya_service_bottom h2 {

  margin: 0;

  color: #ffffff;

  font-size: clamp(30px, 4vw, 50px);

  font-weight: 500;

  line-height: 1.42;

  letter-spacing: 0.06em;

}

.iheya_service_bottom p {

  margin: 24px 0 0;

  color: rgba(255, 255, 255, 0.88);

  font-size: 16px;

  line-height: 2;

  letter-spacing: 0.04em;

}

.iheya_service_main_cta {

  position: relative;

  display: inline-flex;

  align-items: center;

  justify-content: center;

  min-width: 250px;

  min-height: 62px;

  margin: 34px 0 0;

  padding: 15px 50px 15px 28px;

  background: linear-gradient(135deg, #ffb347 0%, #ff8a00 100%);

  color: #ffffff !important;

  text-decoration: none;

  font-size: 16px;

  font-weight: 500;

  letter-spacing: 0.07em;

}

.iheya_service_main_cta::after {

  content: "→";

  position: absolute;

  right: 24px;

  top: 50%;

  transform: translateY(-50%);

}

@media only screen and (max-width: 800px) {

  .iheya_service_page {

    padding: 82px 20px;

  }

  .iheya_service_head {

    text-align: left;

    margin-bottom: 44px;

  }

  .iheya_service_cards {

    grid-template-columns: 1fr;

  }

  .iheya_service_image {

    height: 280px;

  }

}

@media only screen and (max-width: 600px) {

  .iheya_service_page {

    padding: 68px 18px;

  }

  .iheya_service_head h1 {

    font-size: clamp(31px, 8vw, 43px);

  }

  .iheya_service_head p br,

  .iheya_service_bottom p br {

    display: none;

  }

  .iheya_service_image {

    height: 230px;

  }

  .iheya_service_body {

    padding: 28px 22px 32px;

  }

  .iheya_service_btn,

  .iheya_service_main_cta {

    width: 100%;

    min-width: 0;

  }

  .iheya_service_bottom {

    padding: 42px 22px;

  }

}





.confirm_page {

  width: 100vw;

  margin-left: calc(50% - 50vw);

  margin-right: calc(50% - 50vw);

  padding: 110px 20px;

  background: linear-gradient(180deg, #ffffff 0%, #f8fbfb 46%, #ffffff 100%);

  box-sizing: border-box;

  overflow: hidden;

}

.confirm_page * {

  box-sizing: border-box;

}

.confirm_inner {

  max-width: 980px;

  margin: 0 auto;

}

.confirm_head {

  max-width: 820px;

  margin: 0 auto 64px;

  text-align: center;

}

.confirm_kicker {

  margin: 0 0 18px;

  color: #2f7f86;

  font-size: 13px;

  letter-spacing: 0.16em;

  line-height: 1;

}

.confirm_head h1 {

  margin: 0;

  color: #14363a;

  font-size: clamp(34px, 4.6vw, 60px);

  font-weight: 500;

  line-height: 1.35;

  letter-spacing: 0.06em;

}

.confirm_head p {

  margin: 26px 0 0;

  color: #41595c;

  font-size: 16px;

  line-height: 2;

  letter-spacing: 0.04em;

}

.confirm_block {

  margin: 42px 0 0;

  padding: 42px 42px;

  background: #ffffff;

  border: 1px solid rgba(20, 54, 58, 0.12);

  box-shadow: 0 20px 56px rgba(20, 54, 58, 0.08);

}

.confirm_block:first-of-type {

  margin-top: 0;

}

.confirm_block_head {

  margin: 0 0 28px;

  padding-left: 18px;

  border-left: 4px solid #2f7f86;

}

.confirm_block_head span {

  display: block;

  margin: 0 0 8px;

  color: #2f7f86;

  font-size: 12px;

  letter-spacing: 0.16em;

  line-height: 1;

}

.confirm_block_head h2 {

  margin: 0;

  color: #14363a;

  font-size: clamp(26px, 3vw, 36px);

  font-weight: 500;

  line-height: 1.45;

  letter-spacing: 0.05em;

}

.confirm_list {

  margin: 0;

  padding: 0;

  list-style: none !important;

}

.confirm_list li {

  position: relative;

  margin: 18px 0 0;

  padding: 0 0 0 34px;

  color: #41595c;

  font-size: 15px;

  line-height: 1.95;

  letter-spacing: 0.035em;

  list-style: none !important;

}

.confirm_list li:first-child {

  margin-top: 0;

}

.confirm_list li::before {

  content: "◎";

  position: absolute;

  left: 0;

  top: 0;

  color: #2f7f86;

  font-weight: 600;

}

.confirm_list strong {

  color: #14363a;

  font-weight: 600;

}

.confirm_sub_note {

  display: block;

  margin-top: 6px;

  color: #6a5a3a;

  font-size: 14px;

  line-height: 1.85;

}

.confirm_text {

  margin: 0;

  color: #41595c;

  font-size: 15px;

  line-height: 2;

  letter-spacing: 0.035em;

}

.confirm_text + .confirm_text {

  margin-top: 18px;

}

.confirm_alert {

  margin: 26px 0 0;

  padding: 22px 24px;

  background: #fbf8f1;

  border-left: 3px solid #c39439;

  color: #5a4b2f;

  font-size: 14px;

  line-height: 1.9;

  letter-spacing: 0.035em;

}

.confirm_alert strong {

  color: #8a5a08;

  font-weight: 600;

}

.confirm_table_wrap {

  margin: 28px 0 0;

  overflow-x: auto;

}

.confirm_table {

  width: 100%;

  min-width: 620px;

  border-collapse: collapse;

  background: #ffffff;

}

.confirm_table th,

.confirm_table td {

  padding: 18px 16px;

  border: 1px solid rgba(20, 54, 58, 0.12);

  color: #253f42;

  font-size: 15px;

  line-height: 1.7;

  letter-spacing: 0.035em;

  text-align: left;

}

.confirm_table th {

  background: #f5fbfb;

  color: #14363a;

  font-weight: 500;

}

.confirm_table td strong {

  color: #14363a;

  font-weight: 600;

}

.noc_grid {

  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 18px;

  margin: 30px 0 0;

}

.noc_card {

  padding: 28px 26px;

  background: #f8fbfb;

  border: 1px solid rgba(20, 54, 58, 0.12);

}

.noc_card span {

  display: block;

  margin: 0 0 10px;

  color: #51696c;

  font-size: 14px;

  line-height: 1.8;

  letter-spacing: 0.04em;

}

.noc_card strong {

  display: block;

  color: #14363a;

  font-size: 30px;

  font-weight: 500;

  line-height: 1.2;

  letter-spacing: 0.04em;

}

.exemption_box {

  margin: 30px 0 0;

  padding: 34px 32px;

  background: linear-gradient(135deg, rgba(20, 54, 58, 0.95), rgba(47, 127, 134, 0.92));

  color: #ffffff;

}

.exemption_box p {

  margin: 0;

  color: rgba(255, 255, 255, 0.9);

  font-size: 15px;

  line-height: 2;

  letter-spacing: 0.035em;

}

.exemption_price {

  margin: 26px 0 0;

  padding: 20px 24px;

  background: rgba(255, 255, 255, 0.12);

  border: 1px solid rgba(255, 255, 255, 0.22);

}

.exemption_price span {

  display: block;

  margin: 0 0 8px;

  color: #ffd28a;

  font-size: 13px;

  letter-spacing: 0.14em;

}

.exemption_price strong {

  display: block;

  color: #ffffff;

  font-size: 32px;

  font-weight: 500;

  line-height: 1.2;

}

.confirm_bottom_cta {

  margin: 64px 0 0;

  padding: 52px 34px;

  background: #ffffff;

  border: 1px solid rgba(20, 54, 58, 0.12);

  box-shadow: 0 20px 56px rgba(20, 54, 58, 0.08);

  text-align: center;

}

.confirm_bottom_cta h2 {

  margin: 0;

  color: #14363a;

  font-size: clamp(28px, 3.8vw, 46px);

  font-weight: 500;

  line-height: 1.45;

  letter-spacing: 0.06em;

}

.confirm_bottom_cta p {

  margin: 22px 0 0;

  color: #41595c;

  font-size: 15px;

  line-height: 2;

  letter-spacing: 0.04em;

}

.confirm_cta_buttons {

  display: flex;

  justify-content: center;

  flex-wrap: wrap;

  gap: 14px;

  margin: 32px 0 0;

}

.confirm_cta_btn {

  position: relative;

  display: inline-flex;

  align-items: center;

  justify-content: center;

  min-width: 230px;

  min-height: 60px;

  padding: 15px 46px 15px 26px;

  text-decoration: none;

  font-size: 15px;

  font-weight: 500;

  letter-spacing: 0.06em;

}

.confirm_cta_btn::after {

  content: "→";

  position: absolute;

  right: 22px;

  top: 50%;

  transform: translateY(-50%);

}

.confirm_cta_btn.main {

  background: linear-gradient(135deg, #ffb347 0%, #ff8a00 100%);

  border: 1px solid #ff9a1f;

  color: #ffffff !important;

  box-shadow: 0 14px 34px rgba(255, 138, 0, 0.24);

}

.confirm_cta_btn.sub {

  background: #f5fbfb;

  border: 1px solid rgba(47, 127, 134, 0.22);

  color: #14363a !important;

}

@media only screen and (max-width: 800px) {

  .confirm_page {

    padding: 82px 20px;

  }

  .confirm_head {

    text-align: left;

    margin-bottom: 48px;

  }

  .confirm_block {

    padding: 34px 28px;

  }

  .noc_grid {

    grid-template-columns: 1fr;

  }

}

@media only screen and (max-width: 600px) {

  .confirm_page {

    padding: 68px 18px;

  }

  .confirm_head h1 {

    font-size: clamp(31px, 8vw, 43px);

  }

  .confirm_head p br,

  .confirm_bottom_cta p br {

    display: none;

  }

  .confirm_block {

    padding: 30px 22px;

  }

  .confirm_list li {

    padding-left: 30px;

  }

  .noc_card strong,

  .exemption_price strong {

    font-size: 28px;

  }

  .exemption_box {

    padding: 30px 22px;

  }

  .confirm_bottom_cta {

    padding: 42px 22px;

  }

  .confirm_cta_buttons {

    display: grid;

    grid-template-columns: 1fr;

  }

  .confirm_cta_btn {

    width: 100%;

    min-width: 0;

  }

}



/* ==================================================
   フリーページ：自動タイトルを非表示
   「サービス・料金・ご利用案内」などを消す
================================================== */

body#free h2.page_title,
body#free .page_title,
body[id^="free"] h2.page_title,
body[id^="free"] .page_title {
  display: none !important;
}



/* ==================================================
   フリーページ：サービス紹介 / MIUマリン
================================================== */

.service_page {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 110px 20px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbfb 48%, #ffffff 100%);
  box-sizing: border-box;
  overflow: hidden;
  font-family: 'Noto Sans Japanese', 'Questrial', 'ヒラギノ角ゴ Pro', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, sans-serif;
}

.service_page * {
  box-sizing: border-box;
}

.service_inner {
  max-width: none;
  width: 100%;
  padding-left: 120px;
  padding-right: 120px;
  margin: 0 auto;
}

.service_head {
  max-width: 860px;
  margin: 0 auto 70px;
  text-align: center;
}

.service_kicker {
  margin: 0 0 18px;
  color: #2f7f86;
  font-size: 13px;
  letter-spacing: 0.16em;
  line-height: 1;
}

.service_head h1 {
  margin: 0;
  color: #14363a;
  font-size: clamp(36px, 4.8vw, 64px);
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0.06em;
}

.service_head p {
  margin: 28px 0 0;
  color: #41595c;
  font-size: 16px;
  line-height: 2.05;
  letter-spacing: 0.04em;
}

.service_section_title {
  margin: 0 0 30px;
  padding-left: 18px;
  border-left: 4px solid #2f7f86;
}

.service_section_title span {
  display: block;
  margin-bottom: 8px;
  color: #2f7f86;
  font-size: 12px;
  letter-spacing: 0.16em;
}

.service_section_title h2 {
  margin: 0;
  color: #14363a;
  font-size: clamp(28px, 3.6vw, 44px);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.05em;
}

.service_card {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 0;
  background: #ffffff;
  border: 1px solid rgba(20, 54, 58, 0.12);
  box-shadow: 0 22px 60px rgba(20, 54, 58, 0.10);
  overflow: hidden;
}

.service_card_image {
  min-height: 520px;
  background: #eef6f6;
  overflow: hidden;
}

.service_card_image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 520px;
  object-fit: cover;
  transition: transform 0.7s ease;
}

.service_card:hover .service_card_image img {
  transform: scale(1.04);
}

.service_card_body {
  padding: 58px 54px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.service_card_kicker {
  margin: 0 0 18px;
  color: #d9911b;
  font-size: 13px;
  letter-spacing: 0.16em;
  line-height: 1;
}

.service_card_body h3 {
  margin: 0;
  color: #14363a;
  font-size: clamp(30px, 3.8vw, 52px);
  font-weight: 500;
  line-height: 1.38;
  letter-spacing: 0.05em;
}

.service_text {
  margin: 28px 0 0;
  color: #41595c;
  font-size: 15px;
  line-height: 2.05;
  letter-spacing: 0.04em;
}

.service_note {
  margin: 22px 0 0;
  padding: 20px 22px;
  background: #fbf8f1;
  border-left: 3px solid #c39439;
  color: #5a4b2f;
  font-size: 14px;
  line-height: 1.9;
  letter-spacing: 0.035em;
}

.service_btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-width: 220px;
  min-height: 58px;
  margin: 34px 0 0;
  padding: 14px 46px 14px 24px;
  background: linear-gradient(135deg, #ffb347 0%, #ff8a00 100%);
  border: 1px solid #ff9a1f;
  color: #ffffff !important;
  text-decoration: none;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.06em;
  box-shadow: 0 14px 34px rgba(255, 138, 0, 0.24);
  transition: all 0.25s ease;
}

.service_btn::after {
  content: "→";
  position: absolute;
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
  transition: right 0.25s ease;
}

.service_btn:hover {
  transform: translateY(-2px);
  background: linear-gradient(135deg, #ffc35c 0%, #ff9500 100%);
  box-shadow: 0 18px 42px rgba(255, 138, 0, 0.32);
}

.service_btn:hover::after {
  right: 17px;
}

.service_bottom_cta {
  margin: 90px auto 0;
  padding: 58px 32px;
  background: linear-gradient(135deg, rgba(20, 54, 58, 0.94), rgba(47, 127, 134, 0.92));
  text-align: center;
  color: #ffffff;
  box-shadow: 0 24px 60px rgba(20, 54, 58, 0.18);
}

.service_bottom_kicker {
  margin: 0 0 18px;
  color: #ffd28a;
  font-size: 13px;
  letter-spacing: 0.16em;
  line-height: 1;
}

.service_bottom_cta h3 {
  margin: 0;
  color: #ffffff;
  font-size: clamp(30px, 4vw, 50px);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.06em;
}

.service_bottom_cta p {
  margin: 24px 0 0;
  color: rgba(255, 255, 255, 0.88);
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.04em;
}

.service_bottom_buttons {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
  margin: 34px 0 0;
}

.service_bottom_btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 230px;
  min-height: 60px;
  padding: 15px 46px 15px 26px;
  border: 1px solid rgba(255, 255, 255, 0.26);
  color: #ffffff !important;
  text-decoration: none;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.06em;
  transition: all 0.25s ease;
}

.service_bottom_btn::after {
  content: "→";
  position: absolute;
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
}

.service_bottom_btn.main {
  background: linear-gradient(135deg, #ffb347 0%, #ff8a00 100%);
  border-color: #ff9a1f;
}

.service_bottom_btn.sub {
  background: rgba(255, 255, 255, 0.08);
}

.service_bottom_btn:hover {
  transform: translateY(-2px);
}

/* タブレット */
@media only screen and (max-width: 1000px) {
  .service_inner {
    padding-left: 40px;
    padding-right: 40px;
  }

  .service_card {
    grid-template-columns: 1fr;
  }

  .service_card_image,
  .service_card_image img {
    min-height: 420px;
  }

  .service_card_body {
    padding: 44px 38px;
  }
}

/* スマホ */
@media only screen and (max-width: 600px) {
  .service_page {
    padding: 68px 18px;
  }

  .service_inner {
    padding-left: 0;
    padding-right: 0;
  }

  .service_head {
    text-align: left;
    margin-bottom: 48px;
  }

  .service_head h1 {
    font-size: clamp(31px, 8vw, 43px);
  }

  .service_head p br,
  .service_bottom_cta p br {
    display: none;
  }

  .service_card_image,
  .service_card_image img {
    min-height: 280px;
  }

  .service_card_body {
    padding: 34px 24px 38px;
  }

  .service_card_body h3 {
    font-size: clamp(28px, 7.8vw, 40px);
  }

  .service_btn {
    width: 100%;
    min-width: 0;
  }

  .service_bottom_cta {
    margin-top: 70px;
    padding: 44px 22px;
    text-align: left;
  }

  .service_bottom_buttons {
    display: grid;
    grid-template-columns: 1fr;
  }

  .service_bottom_btn {
    width: 100%;
    min-width: 0;
  }
}



.service_head h1 {
  word-break: keep-all;
  overflow-wrap: normal;
}

.service_head h1 br {
  display: none;
}

@media only screen and (max-width: 600px) {
  .service_head h1 {
    font-size: clamp(29px, 7.2vw, 39px);
    line-height: 1.35;
    letter-spacing: 0.04em;
  }
}


.service_head h1 {
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
  font-size: clamp(24px, 5.6vw, 56px);
  letter-spacing: 0.03em;
}




.insurance_box {
  margin: 34px 0 0;
  padding: 34px 32px;
  background: #ffffff;
  border: 1px solid rgba(20, 54, 58, 0.12);
  box-shadow: 0 20px 56px rgba(20, 54, 58, 0.08);
}

.insurance_box h3 {
  margin: 0 0 22px;
  color: #14363a;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.05em;
}

.insurance_table {
  width: 100%;
  border-collapse: collapse;
}

.insurance_table th,
.insurance_table td {
  padding: 15px 14px;
  border-bottom: 1px solid rgba(20, 54, 58, 0.12);
  color: #41595c;
  font-size: 14px;
  line-height: 1.7;
  letter-spacing: 0.035em;
  text-align: left;
}

.insurance_table th {
  color: #14363a;
  background: #f5fbfb;
  font-weight: 600;
}

.insurance_table td:nth-child(2) {
  color: #14363a;
  font-weight: 600;
}

.insurance_note {
  margin: 22px 0 0;
  padding: 18px 20px;
  background: #fbf8f1;
  border-left: 3px solid #c39439;
  color: #5a4b2f;
  font-size: 14px;
  line-height: 1.9;
  letter-spacing: 0.035em;
}

@media only screen and (max-width: 600px) {
  .insurance_box {
    padding: 28px 20px;
  }

  .insurance_table th,
  .insurance_table td {
    padding: 12px 8px;
    font-size: 13px;
  }
}



/* ==================================================
   料金・ご利用案内：カード縦並び
================================================== */

.price_grid {
  grid-template-columns: 1fr !important;
  gap: 32px !important;
}

.price_card {
  width: 100% !important;
}

/* カード内の写真が横に広がりすぎる場合の調整 */
.price_card_image img {
  height: 280px;
  object-fit: cover;
}

/* 軽自動車の2枚画像も横2分割のまま維持 */
.price_card_image {
  grid-template-columns: 1fr 1fr;
}

/* スマホ */
@media only screen and (max-width: 600px) {
  .price_grid {
    gap: 24px !important;
  }

  .price_card_image {
    grid-template-columns: 1fr;
  }

  .price_card_image img {
    height: 220px;
  }
}




/* ==================================================
   SP時：左右余白をしっかり確保
================================================== */
@media only screen and (max-width: 600px) {
  .price_page {
    padding-left: 22px !important;
    padding-right: 22px !important;
  }

  .price_inner {
    width: 100% !important;
    max-width: 100% !important;
  }

  .price_card,
  .price_business,
  .price_goods,
  .price_bottom_cta {
    width: 100% !important;
  }

  .price_card_body {
    padding-left: 22px !important;
    padding-right: 22px !important;
  }
}



.price_section_cta {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
  margin: 36px 0 0;
}

.price_section_cta_btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 230px;
  min-height: 58px;
  padding: 14px 46px 14px 24px;
  border: 1px solid rgba(20, 54, 58, 0.18);
  text-decoration: none !important;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.06em;
  transition: all 0.25s ease;
}

.price_section_cta_btn::after {
  content: "→";
  position: absolute;
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
}

.price_section_cta_btn.main {
  background: linear-gradient(135deg, #ffb347 0%, #ff8a00 100%);
  border-color: #ff9a1f;
  color: #ffffff !important;
  box-shadow: 0 14px 34px rgba(255, 138, 0, 0.24);
}

.price_section_cta_btn.sub {
  background: #fffaf0;
  border-color: rgba(255, 138, 0, 0.28);
  color: #7a4a00 !important;
}

@media only screen and (max-width: 600px) {
  .price_section_cta {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 28px;
  }

  .price_section_cta_btn {
    width: 100%;
    min-width: 0;
  }
}

/* PC：料金カードを少し小さく整える */
@media only screen and (min-width: 801px) {
  .price_inner {
    max-width: 980px;
  }

  .price_grid {
    gap: 22px;
  }

  .price_card {
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
  }

  .price_card_image img {
    height: 200px;
  }

  .price_card_body {
    padding: 28px 28px 32px;
  }

  .price_card_body h3 {
    font-size: 24px;
  }

  .price_sub {
    font-size: 14px;
  }

  .price_list li {
    padding: 13px 0;
    font-size: 14px;
  }

  .price_note,
  .price_caution {
    font-size: 13px;
  }

  .price_business,
  .price_goods {
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
    padding: 32px 34px;
  }

  .price_section_cta,
  .price_bottom_cta {
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
  }
}









.old-reserve-page {
  max-width: 1080px;
  margin: 0 auto;
  padding: 40px 20px 80px;
  color: #2f2a24;
}

/* 上部メイン */
.old-reserve-hero {
  margin-bottom: 34px;
  padding: 52px 24px;
  text-align: center;
  background: linear-gradient(135deg, #fff8eb 0%, #f4ead9 100%);
  border-radius: 26px;
  border: 1px solid #eadcc8;
}

.old-reserve-hero__label {
  margin: 0 0 10px;
  font-size: 12px;
  letter-spacing: 0.22em;
  font-weight: 700;
  color: #b4874f;
}

.old-reserve-hero__title {
  margin: 0 0 18px;
}

.old-reserve-hero__title span {
  font-size: 32px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #2f2a24;
}

.old-reserve-hero__text {
  margin: 0;
  font-size: 16px;
  line-height: 2;
  color: #5f5245;
}

/* 予約フロー */
.old-reserve-flow {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 14px;
  margin-bottom: 34px;
}

.old-reserve-flow__item {
  flex: 1;
  max-width: 220px;
  padding: 20px 14px;
  text-align: center;
  background: #ffffff;
  border: 1px solid #eadcc8;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(68, 48, 28, 0.07);
}

.old-reserve-flow__item span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  margin-bottom: 10px;
  border-radius: 50%;
  background: #9a6733;
  color: #ffffff;
  font-weight: 700;
  font-size: 14px;
}

.old-reserve-flow__item p {
  margin: 0;
  font-weight: 700;
  color: #3d342b;
}

.old-reserve-flow__arrow {
  display: flex;
  align-items: center;
  color: #b4874f;
  font-size: 22px;
  font-weight: 700;
}

/* フォーム前の注意 */
.old-reserve-before {
  margin-bottom: 34px;
  padding: 28px 30px;
  background: #ffffff;
  border: 1px solid #eadcc8;
  border-left: 6px solid #b4874f;
  border-radius: 20px;
  box-shadow: 0 8px 24px rgba(68, 48, 28, 0.06);
}

.old-reserve-before h3 {
  margin: 0 0 16px;
  font-size: 21px;
  font-weight: 700;
  color: #8a5a2b;
}

.old-reserve-before ul {
  margin: 0;
  padding-left: 1.3em;
  line-height: 1.9;
}

.old-reserve-before li {
  margin-bottom: 6px;
}

.old-reserve-before strong {
  color: #b06b26;
}

/* フォーム全体カード */
.old-reserve-form-card {
  margin-bottom: 44px;
  padding: 34px;
  background: #ffffff;
  border: 1px solid #eadcc8;
  border-radius: 26px;
  box-shadow: 0 14px 36px rgba(68, 48, 28, 0.1);
}

.old-reserve-form-card__head {
  margin-bottom: 26px;
  text-align: center;
}

.old-reserve-form-card__head p {
  display: inline-block;
  margin: 0 0 10px;
  padding: 5px 14px;
  border-radius: 999px;
  background: #f4ead9;
  color: #8a5a2b;
  font-size: 13px;
  font-weight: 700;
}

.old-reserve-form-card__head h3 {
  margin: 0;
  font-size: 24px;
  font-weight: 700;
  color: #2f2a24;
}

/* グーペ旧予約フォーム本体 */
.old-reserve-form {
  margin: 0;
}

.old-reserve-message {
  margin-bottom: 22px;
  padding: 16px 18px;
  background: #fff7e8;
  border: 1px solid #eadcc8;
  border-radius: 14px;
  line-height: 1.8;
}

.old-reserve-form__body {
  margin-bottom: 28px;
}

/* 旧予約フォームのtable出力に対応 */
.old-reserve-form__body table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 18px;
}

.old-reserve-form__body th,
.old-reserve-form__body td {
  display: block;
  width: 100%;
  padding: 0 !important;
  border: none !important;
  text-align: left;
}

.old-reserve-form__body th {
  margin-bottom: 8px;
  font-size: 15px;
  font-weight: 700;
  color: #3d342b;
}

.old-reserve-form__body td {
  margin-bottom: 18px;
}

/* セレクト・入力欄 */
.old-reserve-form__body input[type="text"],
.old-reserve-form__body input[type="email"],
.old-reserve-form__body input[type="tel"],
.old-reserve-form__body input[type="number"],
.old-reserve-form__body input[type="date"],
.old-reserve-form__body input[type="time"],
.old-reserve-form__body select,
.old-reserve-form__body textarea {
  width: 100%;
  max-width: 100%;
  padding: 14px 15px;
  border: 1px solid #d8c6ae;
  border-radius: 12px;
  background: #fffdf9;
  font-size: 16px;
  line-height: 1.6;
  box-sizing: border-box;
}

.old-reserve-form__body textarea {
  min-height: 160px;
  resize: vertical;
}

.old-reserve-form__body input:focus,
.old-reserve-form__body select:focus,
.old-reserve-form__body textarea:focus {
  outline: none;
  border-color: #b4874f;
  background: #ffffff;
  box-shadow: 0 0 0 3px rgba(180, 135, 79, 0.18);
}

/* コース選択がselectの場合 */
.old-reserve-form__body select {
  cursor: pointer;
}

/* 送信ボタン */
.old-reserve-form__button {
  text-align: center;
}

.old-reserve-form__button input,
.old-reserve-form__button button,
.old-reserve-form__button a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 280px;
  min-height: 58px;
  padding: 15px 36px;
  border: none;
  border-radius: 999px;
  background: #9a6733;
  color: #ffffff !important;
  font-size: 17px;
  font-weight: 700;
  text-decoration: none;
  line-height: 1.4;
  cursor: pointer;
  transition: opacity 0.2s ease, transform 0.2s ease;
  box-sizing: border-box;
}

.old-reserve-form__button input:hover,
.old-reserve-form__button button:hover,
.old-reserve-form__button a:hover {
  opacity: 0.88;
  transform: translateY(-2px);
}

/* フォーム下の説明 */
.old-reserve-after {
  margin-bottom: 42px;
  padding: 34px;
  background: #f8f2e9;
  border-radius: 26px;
  line-height: 1.9;
}

.old-reserve-after h3 {
  margin: 0 0 24px;
  text-align: center;
  font-size: 24px;
  font-weight: 700;
  color: #2f2a24;
}

.old-reserve-after__box {
  margin-bottom: 18px;
  padding: 22px 24px;
  background: #ffffff;
  border: 1px solid #eadcc8;
  border-radius: 18px;
}

.old-reserve-after__box h4 {
  margin: 0 0 10px;
  font-size: 18px;
  font-weight: 700;
  color: #8a5a2b;
}

.old-reserve-after__box p {
  margin: 0;
}

.old-reserve-after__note {
  margin: 24px 0 0;
  padding: 20px 22px;
  background: #fffaf1;
  border: 1px solid #eadcc8;
  border-radius: 16px;
  font-weight: 700;
}

/* 下部の既存情報 */
.old-reserve-info-list {
  margin-top: 40px;
}

.old-reserve-info {
  padding: 24px;
  background: #ffffff;
  border: 1px solid #eadcc8;
  border-radius: 18px;
}

/* SP */
@media screen and (max-width: 768px) {
  .old-reserve-page {
    padding: 28px 16px 56px;
  }

  .old-reserve-hero {
    padding: 38px 20px;
    border-radius: 22px;
  }

  .old-reserve-hero__title span {
    font-size: 25px;
  }

  .old-reserve-hero__text {
    text-align: left;
    font-size: 15px;
  }

  .old-reserve-flow {
    display: block;
  }

  .old-reserve-flow__item {
    max-width: none;
    margin-bottom: 12px;
  }

  .old-reserve-flow__arrow {
    justify-content: center;
    margin-bottom: 12px;
    transform: rotate(90deg);
  }

  .old-reserve-before {
    padding: 24px 20px;
  }

  .old-reserve-form-card {
    padding: 26px 18px;
    border-radius: 22px;
  }

  .old-reserve-form-card__head h3 {
    font-size: 21px;
  }

  .old-reserve-form__button input,
  .old-reserve-form__button button,
  .old-reserve-form__button a {
    width: 100%;
    min-width: 0;
  }

  .old-reserve-after {
    padding: 26px 18px;
  }

  .old-reserve-after h3 {
    font-size: 21px;
  }

  .old-reserve-after__box {
    padding: 20px 18px;
  }
}







/* ==================================================
   予約ページ：サイトカラー統一 上書きCSS
   ネイビーグリーン × オレンジ
================================================== */

body#reservation .old-reserve-page {
  color: #14363a;
}

/* ヒーロー */
body#reservation .old-reserve-hero {
  background: linear-gradient(135deg, #ffffff 0%, #f8fbfb 100%) !important;
  border: 1px solid rgba(20, 54, 58, 0.12) !important;
  box-shadow: 0 20px 56px rgba(20, 54, 58, 0.08);
}

body#reservation .old-reserve-hero__label {
  color: #2f7f86 !important;
}

body#reservation .old-reserve-hero__title span {
  color: #14363a !important;
}

body#reservation .old-reserve-hero__text {
  color: #41595c !important;
}

/* 予約フロー */
body#reservation .old-reserve-flow__item {
  background: #ffffff !important;
  border: 1px solid rgba(20, 54, 58, 0.12) !important;
  box-shadow: 0 16px 42px rgba(20, 54, 58, 0.08);
}

body#reservation .old-reserve-flow__item span {
  background: #2f7f86 !important;
  color: #ffffff !important;
}

body#reservation .old-reserve-flow__item p {
  color: #14363a !important;
}

body#reservation .old-reserve-flow__arrow {
  color: #d9911b !important;
}

/* ご予約前にご確認ください */
body#reservation .old-reserve-before {
  background: #ffffff !important;
  border: 1px solid rgba(20, 54, 58, 0.12) !important;
  border-left: 4px solid #2f7f86 !important;
  box-shadow: 0 16px 42px rgba(20, 54, 58, 0.07);
}

body#reservation .old-reserve-before h3 {
  color: #14363a !important;
}

body#reservation .old-reserve-before li {
  color: #41595c !important;
}

body#reservation .old-reserve-before strong {
  color: #d9911b !important;
}

/* フォームカード */
body#reservation .old-reserve-form-card {
  background: #ffffff !important;
  border: 1px solid rgba(20, 54, 58, 0.12) !important;
  box-shadow: 0 20px 56px rgba(20, 54, 58, 0.08);
}

body#reservation .old-reserve-form-card__head p {
  background: #f5fbfb !important;
  color: #2f7f86 !important;
}

body#reservation .old-reserve-form-card__head h3 {
  color: #14363a !important;
}

/* メッセージ */
body#reservation .old-reserve-message,
body#reservation .message {
  background: #fbf8f1 !important;
  border: 1px solid rgba(217, 145, 27, 0.22) !important;
  color: #5a4b2f !important;
  border-radius: 14px !important;
}

/* フォーム項目 */
body#reservation .old-reserve-form__body th,
body#reservation .old-reserve-form__body label,
body#reservation form .reservation_area > label,
body#reservation form label {
  color: #14363a !important;
  font-weight: 600;
}

body#reservation .old-reserve-form__body input[type="text"],
body#reservation .old-reserve-form__body input[type="email"],
body#reservation .old-reserve-form__body input[type="tel"],
body#reservation .old-reserve-form__body input[type="number"],
body#reservation .old-reserve-form__body input[type="date"],
body#reservation .old-reserve-form__body input[type="time"],
body#reservation .old-reserve-form__body select,
body#reservation .old-reserve-form__body textarea,
body#reservation form input[type="text"],
body#reservation form input[type="email"],
body#reservation form input[type="tel"],
body#reservation form select,
body#reservation form textarea {
  background: #ffffff !important;
  border: 1px solid rgba(20, 54, 58, 0.18) !important;
  color: #14363a !important;
  border-radius: 10px !important;
}

body#reservation .old-reserve-form__body input:focus,
body#reservation .old-reserve-form__body select:focus,
body#reservation .old-reserve-form__body textarea:focus,
body#reservation form input:focus,
body#reservation form select:focus,
body#reservation form textarea:focus {
  border-color: #2f7f86 !important;
  box-shadow: 0 0 0 3px rgba(47, 127, 134, 0.18) !important;
  outline: none !important;
}

/* 必須マーク */
body#reservation label .requier,
body#reservation .requier,
body#reservation .required {
  color: #d9911b !important;
}

/* 送信ボタン */
body#reservation .old-reserve-form__button input,
body#reservation .old-reserve-form__button button,
body#reservation .old-reserve-form__button a,
body#reservation form input[type="submit"],
body#reservation form .button {
  background: linear-gradient(135deg, #ffb347 0%, #ff8a00 100%) !important;
  border: 1px solid #ff9a1f !important;
  color: #ffffff !important;
  box-shadow: 0 14px 34px rgba(255, 138, 0, 0.24);
}

body#reservation .old-reserve-form__button input:hover,
body#reservation .old-reserve-form__button button:hover,
body#reservation .old-reserve-form__button a:hover,
body#reservation form input[type="submit"]:hover,
body#reservation form .button:hover {
  background: linear-gradient(135deg, #ffc35c 0%, #ff9500 100%) !important;
  color: #ffffff !important;
  box-shadow: 0 18px 42px rgba(255, 138, 0, 0.32);
}

/* フォーム下説明 */
body#reservation .old-reserve-after {
  background: #f8fbfb !important;
  color: #41595c !important;
}

body#reservation .old-reserve-after h3 {
  color: #14363a !important;
}

body#reservation .old-reserve-after__box {
  background: #ffffff !important;
  border: 1px solid rgba(20, 54, 58, 0.12) !important;
  box-shadow: 0 12px 32px rgba(20, 54, 58, 0.06);
}

body#reservation .old-reserve-after__box h4 {
  color: #2f7f86 !important;
}

body#reservation .old-reserve-after__box p {
  color: #41595c !important;
}

body#reservation .old-reserve-after__note {
  background: #fbf8f1 !important;
  border: 1px solid rgba(217, 145, 27, 0.22) !important;
  color: #5a4b2f !important;
}

/* ラジオ・チェック周り */
body#reservation .old-reserve-form__body .radio,
body#reservation .old-reserve-form__body .checkbox,
body#reservation form .radio,
body#reservation form .checkbox {
  color: #41595c !important;
}

/* コース説明テキスト */
body#reservation .reservation_course_body,
body#reservation .old-reserve-form__body p,
body#reservation .old-reserve-form__body div {
  color: #41595c;
}

/* スマホ微調整 */
@media screen and (max-width: 768px) {
  body#reservation .old-reserve-hero {
    box-shadow: 0 14px 34px rgba(20, 54, 58, 0.07);
  }

  body#reservation .old-reserve-flow__item {
    box-shadow: 0 12px 30px rgba(20, 54, 58, 0.07);
  }

  body#reservation .old-reserve-form-card {
    box-shadow: 0 16px 40px rgba(20, 54, 58, 0.08);
  }
}





/* ==================================================
   予約ページ：料金プランカード
================================================== */

body#reservation .reserve-course-guide {
  margin: 0 0 34px;
  padding: 34px;
  background: #f8fbfb;
  border: 1px solid rgba(20, 54, 58, 0.12);
  border-radius: 22px;
}

body#reservation .reserve-course-guide__head {
  margin: 0 0 26px;
  text-align: center;
}

body#reservation .reserve-course-guide__head p {
  margin: 0 0 10px;
  color: #2f7f86;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.16em;
}

body#reservation .reserve-course-guide__head h4 {
  margin: 0;
  color: #14363a;
  font-size: 26px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.05em;
}

body#reservation .reserve-course-guide__head span {
  display: block;
  margin: 12px 0 0;
  color: #41595c;
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.035em;
}

body#reservation .reserve-course-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

body#reservation .reserve-course-card {
  padding: 24px 24px 22px;
  background: #ffffff;
  border: 1px solid rgba(20, 54, 58, 0.12);
  border-radius: 18px;
  box-shadow: 0 14px 34px rgba(20, 54, 58, 0.06);
}

body#reservation .reserve-course-card--wide {
  grid-column: 1 / -1;
}

body#reservation .reserve-course-card__head {
  margin: 0 0 16px;
  padding: 0 0 14px;
  border-bottom: 1px solid rgba(20, 54, 58, 0.12);
}

body#reservation .reserve-course-card__head span {
  display: block;
  margin: 0 0 8px;
  color: #2f7f86;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.14em;
}

body#reservation .reserve-course-card__head h4 {
  margin: 0;
  color: #14363a;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.04em;
}

body#reservation .reserve-course-list {
  margin: 0;
  padding: 0;
  list-style: none !important;
}

body#reservation .reserve-course-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(20, 54, 58, 0.1);
  list-style: none !important;
}

body#reservation .reserve-course-list li:first-child {
  padding-top: 0;
}

body#reservation .reserve-course-list li:last-child {
  padding-bottom: 0;
  border-bottom: none;
}

body#reservation .reserve-course-list span {
  color: #41595c;
  font-size: 15px;
  line-height: 1.6;
  letter-spacing: 0.035em;
}

body#reservation .reserve-course-list strong {
  color: #14363a;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}

@media screen and (max-width: 768px) {
  body#reservation .reserve-course-guide {
    padding: 24px 18px;
    border-radius: 18px;
  }

  body#reservation .reserve-course-guide__head {
    text-align: left;
  }

  body#reservation .reserve-course-guide__head h4 {
    font-size: 22px;
  }

  body#reservation .reserve-course-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  body#reservation .reserve-course-card--wide {
    grid-column: auto;
  }

  body#reservation .reserve-course-card {
    padding: 20px 18px;
  }

  body#reservation .reserve-course-card__head h4 {
    font-size: 18px;
  }

  body#reservation .reserve-course-list span {
    font-size: 14px;
  }

  body#reservation .reserve-course-list strong {
    font-size: 16px;
  }
}




/* ==================================================
   予約ページ：料金プランカード 固定表示版
================================================== */

body#reservation .reserve-course-guide,
.old-reserve-page .reserve-course-guide {
  margin: 0 0 34px !important;
  padding: 34px !important;
  background: #f8fbfb !important;
  border: 1px solid rgba(20, 54, 58, 0.12) !important;
  border-radius: 22px !important;
  box-shadow: 0 16px 42px rgba(20, 54, 58, 0.07) !important;
}

body#reservation .reserve-course-guide__head,
.old-reserve-page .reserve-course-guide__head {
  margin: 0 0 26px !important;
  text-align: center !important;
}

body#reservation .reserve-course-guide__head p,
.old-reserve-page .reserve-course-guide__head p {
  margin: 0 0 10px !important;
  color: #2f7f86 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: 0.16em !important;
}

body#reservation .reserve-course-guide__head h4,
.old-reserve-page .reserve-course-guide__head h4 {
  margin: 0 !important;
  color: #14363a !important;
  font-size: 26px !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
  letter-spacing: 0.05em !important;
}

body#reservation .reserve-course-guide__head span,
.old-reserve-page .reserve-course-guide__head span {
  display: block !important;
  margin: 12px 0 0 !important;
  color: #41595c !important;
  font-size: 14px !important;
  line-height: 1.8 !important;
  letter-spacing: 0.035em !important;
}

body#reservation .reserve-course-grid,
.old-reserve-page .reserve-course-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;
}

body#reservation .reserve-course-card,
.old-reserve-page .reserve-course-card {
  padding: 24px 24px 22px !important;
  background: #ffffff !important;
  border: 1px solid rgba(20, 54, 58, 0.12) !important;
  border-radius: 18px !important;
  box-shadow: 0 14px 34px rgba(20, 54, 58, 0.06) !important;
}

body#reservation .reserve-course-card--wide,
.old-reserve-page .reserve-course-card--wide {
  grid-column: 1 / -1 !important;
}

body#reservation .reserve-course-card__head,
.old-reserve-page .reserve-course-card__head {
  margin: 0 0 16px !important;
  padding: 0 0 14px !important;
  border-bottom: 1px solid rgba(20, 54, 58, 0.12) !important;
}

body#reservation .reserve-course-card__head span,
.old-reserve-page .reserve-course-card__head span {
  display: block !important;
  margin: 0 0 8px !important;
  color: #2f7f86 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: 0.14em !important;
}

body#reservation .reserve-course-card__head h4,
.old-reserve-page .reserve-course-card__head h4 {
  margin: 0 !important;
  color: #14363a !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
  letter-spacing: 0.04em !important;
}

body#reservation .reserve-course-list,
.old-reserve-page .reserve-course-list {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

body#reservation .reserve-course-list li,
.old-reserve-page .reserve-course-list li {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
  padding: 12px 0 !important;
  border-bottom: 1px solid rgba(20, 54, 58, 0.1) !important;
  list-style: none !important;
}

body#reservation .reserve-course-list li:first-child,
.old-reserve-page .reserve-course-list li:first-child {
  padding-top: 0 !important;
}

body#reservation .reserve-course-list li:last-child,
.old-reserve-page .reserve-course-list li:last-child {
  padding-bottom: 0 !important;
  border-bottom: none !important;
}

body#reservation .reserve-course-list span,
.old-reserve-page .reserve-course-list span {
  color: #41595c !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
  letter-spacing: 0.035em !important;
}

body#reservation .reserve-course-list strong,
.old-reserve-page .reserve-course-list strong {
  color: #d9911b !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  white-space: nowrap !important;
}

/* スマホ */
@media screen and (max-width: 768px) {
  body#reservation .reserve-course-guide,
  .old-reserve-page .reserve-course-guide {
    padding: 24px 18px !important;
    border-radius: 18px !important;
  }

  body#reservation .reserve-course-guide__head,
  .old-reserve-page .reserve-course-guide__head {
    text-align: left !important;
  }

  body#reservation .reserve-course-guide__head h4,
  .old-reserve-page .reserve-course-guide__head h4 {
    font-size: 22px !important;
  }

  body#reservation .reserve-course-grid,
  .old-reserve-page .reserve-course-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  body#reservation .reserve-course-card--wide,
  .old-reserve-page .reserve-course-card--wide {
    grid-column: auto !important;
  }

  body#reservation .reserve-course-card,
  .old-reserve-page .reserve-course-card {
    padding: 20px 18px !important;
  }

  body#reservation .reserve-course-card__head h4,
  .old-reserve-page .reserve-course-card__head h4 {
    font-size: 18px !important;
  }

  body#reservation .reserve-course-list span,
  .old-reserve-page .reserve-course-list span {
    font-size: 14px !important;
  }

  body#reservation .reserve-course-list strong,
  .old-reserve-page .reserve-course-list strong {
    font-size: 16px !important;
  }
}





/* ==================================================
   予約ページ：料金プラン見出し＋ボタン
================================================== */

.old-reserve-page .reserve-course-guide--button-only {
  margin: 0 0 32px !important;
  padding: 30px 24px !important;
  background: #f8fbfb !important;
  border: 1px solid rgba(20, 54, 58, 0.12) !important;
  border-radius: 22px !important;
  box-shadow: 0 16px 42px rgba(20, 54, 58, 0.07) !important;
  text-align: center !important;
}

.old-reserve-page .reserve-course-guide__head {
  margin: 0 0 22px !important;
  text-align: center !important;
}

.old-reserve-page .reserve-course-guide__head p {
  margin: 0 0 10px !important;
  color: #2f7f86 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: 0.16em !important;
}

.old-reserve-page .reserve-course-guide__head h4 {
  margin: 0 !important;
  color: #14363a !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
  letter-spacing: 0.05em !important;
}

.old-reserve-page .reserve-course-guide__btn-area {
  text-align: center !important;
}

.old-reserve-page .reserve-course-guide__btn {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 260px !important;
  min-height: 58px !important;
  padding: 15px 48px 15px 26px !important;
  background: linear-gradient(135deg, #ffb347 0%, #ff8a00 100%) !important;
  border: 1px solid #ff9a1f !important;
  border-radius: 99px !important;
  color: #ffffff !important;
  text-decoration: none !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.06em !important;
  box-shadow: 0 14px 34px rgba(255, 138, 0, 0.24) !important;
  transition: all 0.25s ease !important;
}

.old-reserve-page .reserve-course-guide__btn::after {
  content: "→" !important;
  position: absolute !important;
  right: 24px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  font-size: 18px !important;
  line-height: 1 !important;
  transition: right 0.25s ease !important;
}

.old-reserve-page .reserve-course-guide__btn:hover {
  transform: translateY(-2px) !important;
  background: linear-gradient(135deg, #ffc35c 0%, #ff9500 100%) !important;
  color: #ffffff !important;
  box-shadow: 0 18px 42px rgba(255, 138, 0, 0.32) !important;
}

.old-reserve-page .reserve-course-guide__btn:hover::after {
  right: 19px !important;
}

@media screen and (max-width: 768px) {
  .old-reserve-page .reserve-course-guide--button-only {
    padding: 24px 18px !important;
    border-radius: 18px !important;
  }

  .old-reserve-page .reserve-course-guide__head h4 {
    font-size: 21px !important;
  }

  .old-reserve-page .reserve-course-guide__btn {
    width: 100% !important;
    min-width: 0 !important;
  }
}





/* ==================================================
   header：Google翻訳
================================================== */

#header .header_translate {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-left: 14px;
  line-height: 1;
}

#google_translate_element {
  display: inline-flex;
  align-items: center;
  max-width: 180px;
  overflow: hidden;
}

#google_translate_element .goog-te-gadget {
  font-size: 0 !important;
  line-height: 1 !important;
}

#google_translate_element .goog-te-gadget-simple {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 38px !important;
  padding: 8px 12px !important;
  background: #ffffff !important;
  border: 1px solid rgba(20, 54, 58, 0.16) !important;
  border-radius: 999px !important;
  color: #14363a !important;
  box-shadow: 0 8px 22px rgba(20, 54, 58, 0.08) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
}

#google_translate_element .goog-te-gadget-simple span {
  color: #14363a !important;
  font-size: 12px !important;
}

#google_translate_element .goog-te-gadget-icon {
  display: none !important;
}

#google_translate_element a {
  color: #14363a !important;
  text-decoration: none !important;
}

/* Google翻訳バー対策 */
body {
  top: 0 !important;
}

.goog-te-banner-frame,
.skiptranslate iframe {
  display: none !important;
}

/* スマホ時は右下固定にする */
@media only screen and (max-width: 800px) {
  #header .header_translate {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 99999;
    margin-left: 0;
  }

  #google_translate_element .goog-te-gadget-simple {
    min-height: 42px !important;
    padding: 9px 14px !important;
    box-shadow: 0 12px 30px rgba(20, 54, 58, 0.16) !important;
  }
}




/* 日本語に戻るボタン */
#header .header_translate_jp {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 38px !important;
  padding: 8px 13px !important;
  margin-right: 8px !important;
  background: #14363a !important;
  border: 1px solid #14363a !important;
  border-radius: 999px !important;
  color: #ffffff !important;
  text-decoration: none !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: 0.06em !important;
}

#header .header_translate_jp:hover {
  background: #2f7f86 !important;
  border-color: #2f7f86 !important;
  color: #ffffff !important;
}




/* ==================================================
   ヘッダー全体幅を広げる
================================================== */

#header > .inner {
  max-width: 1480px !important;
  width: 100% !important;
  padding-left: 40px !important;
  padding-right: 40px !important;
}

/* ナビと翻訳ボタンの間隔を少し調整 */
#header .navi.pc .navi_list {
  gap: 6px !important;
}

#header .navi.pc li a {
  padding: 10px 12px !important;
  font-size: 13px !important;
  white-space: nowrap !important;
}

/* 翻訳部分を横並びで固定 */
#header .header_translate {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-shrink: 0 !important;
  margin-left: 16px !important;
}

/* ロゴが大きすぎる場合の調整 */
#header .logo {
  flex-shrink: 0 !important;
}

#header .logo a img {
  max-width: 210px !important;
  height: auto !important;
}

/* PC時だけ横並びを安定させる */
@media only screen and (min-width: 801px) {
  #header > .inner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 18px !important;
  }

  #header .navi.pc {
    flex: 1 1 auto !important;
  }

  #header .navi.pc .navi_list {
    justify-content: flex-end !important;
    flex-wrap: nowrap !important;
  }
}




/* ==================================================
   スクロール時もロゴを表示
================================================== */

#header.is-scroll .logo {
  display: block !important;
  margin: 0 !important;
}

#header.is-scroll .logo a,
#header.is-scroll .logo .shop_sitename {
  display: inline-flex !important;
  align-items: center !important;
}

#header.is-scroll .logo a img {
  display: block !important;
  max-width: 210px !important;
  max-height: 56px !important;
  width: auto !important;
  height: auto !important;
}

/* スクロール時のヘッダー高さを安定させる */
#header.is-scroll > .inner {
  min-height: 64px !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}



/* ==================================================
   Google翻訳：「言語を選択」を Language に変更
================================================== */

#google_translate_element .goog-te-gadget {
  font-size: 0 !important;
  line-height: 1 !important;
}

/* Google翻訳ボタン本体 */
#google_translate_element .goog-te-gadget-simple {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 38px !important;
  padding: 8px 34px 8px 14px !important;
  background: #ffffff !important;
  border: 1px solid rgba(20, 54, 58, 0.16) !important;
  border-radius: 999px !important;
  color: transparent !important;
  overflow: hidden !important;
}

/* 「Language」を表示 */
#google_translate_element .goog-te-gadget-simple::before {
  content: "Language" !important;
  color: #14363a !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  line-height: 1 !important;
}

/* 矢印 */
#google_translate_element .goog-te-gadget-simple::after {
  content: "▼" !important;
  position: absolute !important;
  right: 13px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  color: #14363a !important;
  font-size: 10px !important;
}

/* 元の「言語を選択」テキストとGoogleアイコンを非表示 */
#google_translate_element .goog-te-gadget-simple span,
#google_translate_element .goog-te-gadget-icon {
  display: none !important;
}



/* ==================================================
   SP時：ロゴ・翻訳・ハンバーガー被り修正版
   2段ヘッダー化
================================================== */

@media only screen and (max-width: 800px) {

  /* ヘッダー全体を縦積みにする */
  #header,
  body#top #header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    min-height: auto !important;
    padding: 8px 0 10px !important;
    background: rgba(255, 255, 255, 0.96) !important;
    z-index: 99999 !important;
  }

  /* ヘッダー内を折り返し可能にする */
  #header > .inner,
  body#top #header > .inner {
    position: relative !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: auto !important;
    padding: 0 58px 0 16px !important;
    gap: 0 !important;
  }

  /* 電話・説明文・PCナビは非表示 */
  #header .shop_tel,
  #header .site_description,
  #header .navi.pc {
    display: none !important;
  }

  /* ロゴエリア */
  #header .logo,
  body#top #header .logo,
  #header.is-scroll .logo {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    order: 1 !important;
    width: 100% !important;
    max-width: none !important;
    height: 48px !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center !important;
    line-height: 1 !important;
  }

  #header .logo a,
  #header .logo .shop_sitename,
  #header.is-scroll .logo a,
  #header.is-scroll .logo .shop_sitename {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 48px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #header .logo a img,
  body#top #header .logo a img,
  #header.is-scroll .logo a img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 150px !important;
    max-height: 42px !important;
    margin: 0 auto !important;
  }

  /* ハンバーガー */
  #header #button_navi,
  body#top #header #button_navi {
    position: absolute !important;
    right: 16px !important;
    top: 7px !important;
    display: block !important;
    width: 40px !important;
    height: 48px !important;
    z-index: 100001 !important;
  }

  #header #button_navi .navi_trigger,
  #header #button_navi div,
  body#top #header #button_navi .navi_trigger,
  body#top #header #button_navi div {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 40px !important;
    height: 48px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #111111 !important;
    font-size: 28px !important;
    line-height: 1 !important;
  }

  /* 翻訳エリア：ロゴの下に配置 */
  #header .header_translate,
  body#top #header .header_translate {
    position: static !important;
    order: 2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 6px 0 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    transform: none !important;
  }

  /* 日本語ボタン */
  #header .header_translate_jp {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 72px !important;
    min-height: 32px !important;
    padding: 7px 12px !important;
    margin: 0 !important;
    background: #14363a !important;
    border: 1px solid #14363a !important;
    border-radius: 999px !important;
    color: #ffffff !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  /* Google翻訳ボタン */
  #google_translate_element {
    display: inline-flex !important;
    align-items: center !important;
    width: auto !important;
    max-width: 120px !important;
    overflow: hidden !important;
  }

  #google_translate_element .goog-te-gadget {
    font-size: 0 !important;
    line-height: 1 !important;
  }

  #google_translate_element .goog-te-gadget-simple {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 104px !important;
    min-height: 32px !important;
    padding: 7px 24px 7px 10px !important;
    background: #ffffff !important;
    border: 1px solid rgba(20, 54, 58, 0.18) !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    overflow: hidden !important;
    color: transparent !important;
    white-space: nowrap !important;
  }

  #google_translate_element .goog-te-gadget-simple::before {
    content: "Language" !important;
    color: #14363a !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: 0.04em !important;
  }

  #google_translate_element .goog-te-gadget-simple::after {
    content: "▼" !important;
    position: absolute !important;
    right: 9px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    color: #14363a !important;
    font-size: 8px !important;
  }

  #google_translate_element .goog-te-gadget-simple span,
  #google_translate_element .goog-te-gadget-icon {
    display: none !important;
  }

  /* 固定ヘッダー分、本文を下げる */
  body:not(#top) #content {
    padding-top: 118px !important;
  }

  body#top #content {
    padding-top: 0 !important;
  }

  /* スマホメニューが開いた時 */
  #header .navi.mobile {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    z-index: 99998 !important;
    width: 100% !important;
    min-height: 100vh !important;
    padding: 118px 24px 40px !important;
    background: rgba(255, 255, 255, 0.98) !important;
  }
}