@charset "UTF-8";

/* --------------------------------------------------------------------------------------------- */
/*	 スライダー
/* --------------------------------------------------------------------------------------------- */

.rslides {
	display: block;
}
/* 2. メインコンテナを画面いっぱいに */
main, #main, .main_box {
    width: 100%;
    height: 100vh; /* 画面の縦幅いっぱい */
    overflow: hidden;
}

/* 3. スライダーのリストと各要素を100%に */
#slider, 
#slider li {
    width: 100%;
    height: 100%;
    list-style: none;
    margin: 0;
    padding: 0;
}
/* 1. 基本設定 */
#slider li {
    overflow: hidden !important;
}

#slider img {
    display: block;
    width: 100%;
    height: 100vh;
    object-fit: cover;
}

/* 3. アニメーション：1.0倍から1.3倍まで大きく動かす */
@keyframes infinity-zoom {
    0% {
        transform: scale(1.0);
    }
    100% {
        transform: scale(1.3);
    }
}

/* 1. 初期状態（隠しておく） */
.vertical-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -60%);
  opacity: 0; /* 透明 */
  z-index: 999;

  /* 縦書きの基本設定 */
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-size: 200%;
	line-height: 1.3;
  color: #fff;
  font-family: 'Noto Serif JP', serif;
  text-shadow: 2px 2px 10px rgba(80,0,0,0.5);

  /* transition: クラスがついた時の変化を滑らかにする */
  /* 1秒(1s)待ってから、2秒かけてふわっと出す */
  transition: opacity 2s ease-out 0.5s, transform 2s ease-out 0.5s;
}

/* 2. 表示中のスライド（クラス名に on が含まれるli）の中のテキスト */
/* responsiveSlidesが自動付与する「rslides1_on」などのクラスに反応させます */
li[class*="_on"] .vertical-text {
  opacity: 1;
  transform: translate(-50%, -50%); /* 本来の位置へスッと上がる */
}
#slider img.award {
  position: absolute;
  bottom: 20px !important;
  left: 20px !important;
  z-index: 998 !important;
  width: 80px !important;
  height: auto !important; /* ★ここを確実に auto に上書きします */
  object-fit: contain !important; 
  top: auto !important;    /* 万が一、他でtopが効いていた時のための除外 */
  transform: none !important; /* 位置ズレ防止 */
}

@media screen and (min-width: 768px) {
.vertical-text {
  top: 30%;
  right: 10%;
	left: auto;
	font-size: 300%;
}
#slider img.award {
    bottom: 25px !important;
    left: 25px !important;
    width: 150px !important;
  }
}
@media screen and (min-width: 1024px) {
.vertical-text {
  top: 40%;
}
}
@media screen and (min-width: 1920px) {
.vertical-text {
  top: 30%;
}
}
/* --------------------------------------------------------------------------------------------- */
/*	 メッセージ
/* --------------------------------------------------------------------------------------------- */

#content {
  scroll-margin-top: 80px; 
}

.m_i_back {
    background: url("../img/top/kira.png") no-repeat right top / 200px var(--themecolor);
    width: 100%;
}
.m_i_back2 {
    background: url("../img/top/ebi.png") no-repeat left bottom / 100px;
    width: 100%;
}
.message {
	margin: 0;
	width: 100%;
	padding: 10% 8% 0% 8%;
  box-sizing:border-box;
}
.me {
	font-weight: normal;
	font-size: 125%;
	line-height: 1.6;
	margin: 0 auto -15px auto;
	display: block;
  text-align: center;
}	
.message p {
	font-weight: normal;
font-size: 80%;
}
@media screen and (min-width: 768px) {
.m_i_back {
    background-size: 400px;
}
.m_i_back2 {
    background-size: 200px;
}
.message {
	width: 100%;
	padding: 6% 0 0 0;
  box-sizing:border-box;
	text-align: center;
   display: flex;
  justify-content: space-between;
}
.message_box {
	margin: auto;
	width: 75%;
}
.me {
	font-size: 160%;
	line-height: 1.6;
	margin: 0 auto 10px auto;
	text-align: left;
}
.message p {
	line-height: 2.5;
	font-weight: normal;
font-size: 90%;
  text-align: left;
  display: inline-block;
	white-space: nowrap;
  box-sizing: border-box;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
	font-fauture-settings:initial !important;
}
}
@media screen and (min-width: 1024px) {
	
.message {
	padding: 6% 0 0 0;
}
.message_box {
	margin: auto;
}
.me {
	font-size: 170%;
	line-height: 1.6;
}	
.message p {
font-size: 100%;
}
}

/* --------------------------------------------------------------------------------------------- */
/*	 こだわり
/* --------------------------------------------------------------------------------------------- */
.top01 {
	background: linear-gradient(
    to bottom, 
    var(--themecolor) 0px,
    var(--themecolor) 100px,
    #ffffff 100px,
    #ffffff 100%
);
    background-repeat: no-repeat;
	padding: 7% 0 0 0;
}
.top01::after,
.top02::after {
    content: "";
    display: block;
    clear: both;
}

.top01_r,
.top02_r {
    width: 92%;
    float: right;
  }
.top01_l,
.top02_l {
	  display: none;
  }
	
.top01_p,
.top02_p {
	width: 100%;
}
.top01_r img,
.top02_l img {
	width: 100%;
	border-top-left-radius: 25px;
    border-bottom-left-radius: 25px;
}
.top01_l img,
.top02_r img {
	width: 100%;
	border-top-right-radius: 25px;
    border-bottom-right-radius: 25px;
}
.top01 h4,
.top02 h4 {
	font-weight: normal;
	font-size: 100%;
	line-height: 1.6;
	margin: 20px 0 0 0;
}
.top01 p,
.top02 p {
	font-weight: normal;
font-size: 80%;
	margin: 10px 8% 0 0;
	text-align: justify;
}
/*	 button
/* ------------------------------------- */
	
button {
  position: relative;
  display: inline-block;
  cursor: pointer;
  outline: none;
  border: 0;
  vertical-align: middle;
  text-decoration: none;
  background: transparent;
  padding: 0;
  font-size: 90%;
  font-family: inherit;
  margin: 20px 0 0 0;
}
button.learn-more {
  width: 7rem; 
  height: auto;
}
button.learn-more .circle {
  transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
  position: relative;
  display: block;
  margin: 0;
  width: 2rem; 
  height: 2rem; 
  background: transparent;  
  
  /* ★メインカラーの枠線 */
  border: 1px solid var(--maincolor); 
  
  border-radius: 1.625rem;
  box-sizing: border-box;
}
button.learn-more .circle .icon_b {
  transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  background: var(--maincolor); 
}
button.learn-more .circle .icon_b.arrow {
  transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
  left: 0.5rem; 
  width: 0rem;
  height: 0.0625rem; 
  background: none;
}
button.learn-more .circle .icon_b.arrow::before {
  position: absolute;
  content: "";
  top: -0.22rem; 
  right: -0.6rem; 
  width: 0.4rem; 
  height: 0.4rem; 
  border-top: 0.0625rem solid var(--maincolor);
  border-right: 0.0625rem solid var(--maincolor);
  transform: rotate(45deg);
}
button.learn-more .button-text {
  transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 0.15rem 0; /* ★ここを修正：少し数値を減らして文字を上に上げました */
  margin: 0 0 0 20px; /* ★ここを修正：丸との間隔を10pxから20pxに広げました */
  color: var(--maincolor);
  font-weight: 300;
  line-height: 1.8;
  text-align: center;
  text-transform: uppercase;
}

/* --- ホバー（マウスを載せたとき）の動き --- */

button:hover .circle {
  width: 100%;
  background: transparent;
  border-color: var(--maincolor); 
}
button:hover .circle .icon_b.arrow {
  background: var(--maincolor);
}
	


@media screen and (min-width: 768px) {
.top01 {
        background: linear-gradient(
    to bottom, 
    var(--themecolor) 0px,
    var(--themecolor) 200px,
    #ffffff 200px,
    #ffffff 100%
);
        background-repeat: no-repeat;
        padding: 6% 0 0 0;
        display: block;
    }
.top01 h4,
.top02 h4 {
	margin: 40px 0 0 0;
	font-size: 120%;
	line-height: 1.6;
}
.top01 p,
.top02 p {
	line-height: 2.5;
font-size: 90%;
}
}

@media screen and (min-width: 1024px) {
  .top01 {
    background: linear-gradient(
      to bottom, 
      var(--themecolor) 0px,
      var(--themecolor) 40%,
      #ffffff 40%,
      #ffffff 100%
    );
    background-repeat: no-repeat;
    padding: 6% 0 0 0;
    position: relative;
    display: block !important; 
  }
  .top01_r {
    width: 67%;
    float: right;
  }
  .top01_l {
	  display: block;
    width: 30%;
    position: absolute;
    left: 0; 
    bottom: 0;
  }
  .top01_l img {
    width: 100%;
    display: block;
  }
.top01 h4,
.top02 h4 {
	font-size: 140%;
}
  .top01 p,
  .top02 p {
    font-size: 100%;
  }	
}

/* --------------------------------------------------------------------------------------------- */
/*	 白えび寿し
/* --------------------------------------------------------------------------------------------- */
.top02 {
	background: url(../img/top/shiroebi_s.jpg) no-repeat;
	background-size: 100%;
	color: var(--sub01);
	padding: 30% 0 6% 0;
}
.top02_r {
    width: 92%;
    float: left;
  }
.top02_p {
	margin: 40px 0 0 0;
}
.top02 h4 {
	margin: 20px 0 0 8% !important;
}
.top02 p {
	margin: 10px 0 0 8% !important;
}
/*	 button2
/* ------------------------------------- */
	
button2 {
  position: relative;
  display: inline-block;
  cursor: pointer;
  outline: none;
  border: 0;
  vertical-align: middle;
  text-decoration: none;
  background: transparent;
  padding: 0;
  font-size: 90%;
  font-family: inherit;
  margin: 20px 0 0 8%;
}
button2.learn-more {
  width: 7rem; 
  height: auto;
}
button2.learn-more .circle {
  transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
  position: relative;
  display: block;
  margin: 0;
  width: 2rem; 
  height: 2rem; 
  background: transparent;  
  
  /* ★メインカラーの枠線 */
  border: 1px solid var(--sub01); 
  
  border-radius: 1.625rem;
  box-sizing: border-box;
}
button2.learn-more .circle .icon_b {
  transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  background: var(--sub01); 
}
button2.learn-more .circle .icon_b.arrow {
  transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
  left: 0.5rem; 
  width: 0rem;
  height: 0.0625rem; 
  background: none;
}
button2.learn-more .circle .icon_b.arrow::before {
  position: absolute;
  content: "";
  top: -0.22rem; 
  right: -0.6rem; 
  width: 0.4rem; 
  height: 0.4rem; 
  border-top: 0.0625rem solid var(--sub01);
  border-right: 0.0625rem solid var(--sub01);
  transform: rotate(45deg);
}
button2.learn-more .button-text {
  transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 0.15rem 0; /* ★ここを修正：少し数値を減らして文字を上に上げました */
  margin: 0 0 0 20px; /* ★ここを修正：丸との間隔を10pxから20pxに広げました */
  color: var(--sub01);
  font-weight: 300;
  line-height: 1.8;
  text-align: center;
  text-transform: uppercase;
}

/* --- ホバー（マウスを載せたとき）の動き --- */

button2:hover .circle {
  width: 100%;
  background: transparent;
  border-color: var(--sub01); 
}
button2:hover .circle .icon_b.arrow {
  background: var(--sub01);
}
	


@media screen and (min-width: 768px) {
.top02 {
	background: url(../img/top/shiroebi.jpg) no-repeat;
	background-size: 100%;
	color: var(--sub01);
	padding: 20% 0 4% 0;
}
.top02 h4 {
	margin: 40px 0 0 8% !important;
}
.top02 p {
	margin: 10px 0 0 8% !important;
}
}

@media screen and (min-width: 1024px) {
.top02 {
	padding: 15% 0 4% 0;
}

.top02_r {
    width: 67%;
    float: left;
  }
.top02_l {
	display: block;
    width: 30%;
	  float: right;
  }
.top02 h4 {
	margin: 13% 0 0 8% !important;
}

}




/* --------------------------------------------------------------------------------------------- */
/*	 寿々屋のお寿し・おすすめ商品
/* --------------------------------------------------------------------------------------------- */
.sushi {
  font-weight: normal;
  font-size: 120%;
  line-height: 1.6;
  margin: 20px auto;
  text-align: center;
  position: relative;
  padding-bottom: 7px;
}
.sushi::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 40px; 
  height: 1px; 
  background-color: var(--maincolor);
}
.sushi_box img {
	border-radius: 20px;
}
.sushi_box h4 {
	font-weight: normal;
font-size: 80%;
	margin: 5px 0 0 0;
	text-align: center;
}
.sushi_box a {
	color: var(--maincolor);
	-webkit-filter: opacity(100%);
	filter: opacity(100%);
	-webkit-transition: .3s ease-in-out;
	transition: .3s ease-in-out;
}
.sushi_box a:hover {
	-webkit-filter: opacity(50%);
	filter: opacity(50%);
	text-decoration: none;
}
.osusume {
	background:  var(--themecolor);
	margin: 8% 0 0 0;
	padding: 8% 0;
}
@media screen and (min-width: 768px) {
.sushi {
  font-size: 140%;
}
.sushi_box h4 {
font-size: 90%;
}
.osusume {
	margin: 6% 0 0 0;
	}
}
@media screen and (min-width: 1024px) {
.sushi {
  font-size: 170%;
}
.sushi_box h4 {
font-size: 100%;
}
}
.swiper-custom-parent {
  width: 100%;
  overflow: hidden;
  position: relative;
}

/* 巨大化を防ぎ、横一列の土台を強制する設定 */
.swiper {
  width: 100%;
  padding: 20px 0;
  position: relative;
  display: block; /* ブロック要素に固定 */
}

.swiper-wrapper {
  display: flex !important; /* 絶対に縦並びにさせない */
  flex-direction: row !important;
  box-sizing: content-box;
}

/* 既存の .sushi_box の width: 100% などの古い設定を無効化する */
.swiper-slide.sushi_box {
  flex-shrink: 0 !important; /* 横に縮んだり潰れたりするのを防ぐ */
  height: auto !important;
  width: auto; /* スペース計算はSwiperのJSに任せる */
}

/* 画像が飛び出さないように制御 */
.swiper-slide.sushi_box img {
  width: 100% !important;
  height: auto !important;
  display: block;
}

/* --- 「くの字」矢印のカスタムCSS --- */
.swiper-button-prev,
.swiper-button-next {
  width: 30px !important;
  height: 30px !important;
  --swiper-navigation-size: 30px !important; 
  width: 40px;
  height: 40px;
  z-index: 10;       
  color: #000000 !important; 
  top: 40% !important;
}

.swiper-button-prev::after,
.swiper-button-next::after {
  font-family: swiper-icons; 
  font-size: 30px !important; 
}
.swiper-button-prev {
  left: 20px !important;
  --swiper-navigation-sides-offset: 20px !important;
}

.swiper-button-next {
  right: 20px !important;
  --swiper-navigation-sides-offset: 20px !important;
}

.osusume {
margin: 4% auto 0 auto;
padding: 60px 0;
}

/* --------------------------------------------------------------------------------------------- */
/*	 お知らせ
/* --------------------------------------------------------------------------------------------- */
.news {
	background:  var(--themecolor);
	margin: 8% 0;
	padding: 8%;
}
.news h4 {
  font-weight: normal;
  font-size: 120%;
  line-height: 1.6;
  margin: 0px auto 20px auto;
  text-align: center;
  position: relative;
  padding-bottom: 7px;
}
.news h4::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 40px; 
  height: 1px; 
  background-color: var(--maincolor);
}
.news_box {
 line-height:1.4em;
 font-size:100%;
	text-align: left;
	width: 100%;
	margin: 0 0 4% 0;
	display: flex;
}
.news_box a {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
}
.news_box a span {
 color: var(--maincolor);
 font-weight: normal;
 font-size:80%;
	-webkit-filter: opacity(100%);
	filter: opacity(100%);
	-webkit-transition: .3s ease-in-out;
	transition: .3s ease-in-out;
}
.news_box a h5 {
 color: var(--maincolor);
 margin: 0px 3px 0px 0px;
 font-weight: normal;
	-webkit-filter: opacity(100%);
	filter: opacity(100%);
	-webkit-transition: .3s ease-in-out;
	transition: .3s ease-in-out;
}
.news_box a:hover h5,
.news_box a:hover span {
	-webkit-filter: opacity(50%);
	filter: opacity(50%);
	text-decoration: none;
}

@media screen and (min-width: 768px) {
.news {
	margin: 6% 0;
	}
.news h4 {
	font-weight: normal;
	writing-mode: vertical-rl;
	font-size: 150%;
	padding: 0 2% 0 0;
	border-right: 1px solid var(--maincolor);
	float: left;
	width:8%;
	box-sizing: border-box;
}
.news h4::after {
  display: none;
}
.news_box0 {
	width:88%;
    display: flex;
    flex-wrap: wrap; /* 折り返しを許可 */
    justify-content: flex-start;
    padding-left: 4%;
}
.news_box {
	margin: 0 0 2% 0;
	width: 100%;
 line-height:1.4em;
 font-size:110%;
}
.news_box a {
    flex-direction: row;
    align-items: center;
  }
  .news_box a h5 {
    margin-left: 20px; 
  }
.right_b {
	width: 100%;
  display: flex;
  justify-content: flex-end;
	}
}
@media screen and (min-width: 1024px) {
.news {
margin: 4% auto;
padding: 60px 8% 40px 8%;
}
.news h4 {
	font-size: 170%;
}
.news_box0 {
	width:88%;
    padding-left: 3%;
}
.news_box {
	margin: 0 0 1.5% 0;
	width: 100%;
 line-height:1.4em;
 font-size:110%;
}
}	


