@charset "utf-8";
/* ==================================================
   目次
   1. WordPress側の調整 / ベース
   2. ページ全体
   3. アニメーション
   4. FV(ファーストビュー)
   5. コンテナ / ナビ / ブランドコンセプト
   6. 商品エリア
   7. ページトップボタン / 動画・SDGsエリア
   8. レスポンシブ
      8-1. PC (min-width)   : 990px〜 / 769px〜
      8-2. 以下 (max-width) : 1199 → 1025 → 989 → 768 → 520 → 440 → 340
================================================== */
/* ==================================================
   1. WordPress側の調整 / ベース
================================================== */
html {
  margin-top: 0 !important;
  overflow-x: clip;
}
body {
  overflow-x: clip;
}
dfn, cite, em, i {
  font-style: italic;
}
#contsArea, #contsArea * {
  font-family: "Noto Serif JP", serif;
}
#pagetop {
  margin: 0 auto;
}
.clearfix:after {
  content: " ";
}
br.br {
  display: none; /* PCのみ表示(8-1で上書き) */
}
/* 非表示にするWP要素 */
a:has(> img[src*="pagetop.png"]), .edit-link, .post-edit-link, .entry-header, html #wpadminbar {
  display: none !important;
}
/* ヘッダー・フッター(FVのfixedより前面に出す) */
.header-top_bar, .header, .footer {
  position: relative;
  z-index: 995;
}
.footer {
  background-color: #fff;
}
footer, #colophon, .site-footer {
  position: relative !important;
  z-index: 2 !important;
  background: #fff !important;
}
/* ==================================================
   2. ページ全体
================================================== */
#ruban-2026ss-page {
  --fv-h: 100vh; /* FVの高さ(SPは8-2で上書き) */
  position: relative;
  width: 100% !important;
  max-width: none;
  margin: 0;
  padding: 0;
}
#ruban-2026ss-page *, #ruban-2026ss-page *::before, #ruban-2026ss-page *::after {
  box-sizing: border-box;
}
#ruban-2026ss-page img {
  width: 100%;
  max-width: 100%;
  height: auto;
}
/* ==================================================
   3. アニメーション
================================================== */
#ruban-2026ss-page .lateDisplay {
  opacity: 0;
}
#ruban-2026ss-page .opFadeIn {
  opacity: 1;
  transition: .8s opacity ease-in;
}
#ruban-2026ss-page .slideOut {
  opacity: 0;
  transition: .6s all ease-in;
}
#ruban-2026ss-page .siTop {
  transform: translate(0, 80px);
}
#ruban-2026ss-page .slideIn {
  opacity: 1;
  filter: blur(0);
  transform: translate(0, 0);
  transition: .9s all ease-in;
}
@media (prefers-reduced-motion: reduce) {
  #ruban-2026ss-page .slideOut {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
/* ==================================================
   4. FV(ファーストビュー)
================================================== */
.fv-area {
  width: 100%;
  height: 0;
  position: relative;
}
.fv-area .core {
  background: url("../image/2026aw_top.webp") center center no-repeat; /* PC用 */
  background-size: cover;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--fv-h);
  overflow: hidden;
  display: table;
  text-align: center;
}
/* FVが白く消えるのを防ぐ */
#ruban-2026ss-page .fv-area .core.keyvisual {
  visibility: visible !important;
}
/* キャプション画像 */
.fv-area .core .caption-area {
  position: absolute;
  width: 27%;
  top: min(calc(99vw / 3), 20%);
  left: 22%;
  z-index: 1;
}
.fv-area .core .caption-area img {
  width: 100%;
}
/* スクロール誘導ボタン */
.keyvisual {
  position: relative;
  width: 100%;
}
.keyvisual a {
  position: absolute;
  bottom: 60px;
  left: 50%;
  z-index: 2;
  display: inline-block;
  padding-top: 60px;
  transform: translate(0, -50%);
  text-decoration: none;
  transition: opacity .3s;
  overflow: visible;
}
.keyvisual a:hover {
  opacity: .5;
}
.keyvisual a span {
  position: absolute;
  left: 50%;
  width: 46px;
  height: 46px;
  margin-left: -23px;
  border: 1px solid #fff;
  border-radius: 100%;
  box-sizing: border-box;
}
.keyvisual a span::after {
  position: absolute;
  top: 50%;
  left: 50%;
  content: "";
  width: 16px;
  height: 16px;
  margin: -12px 0 0 -8px;
  border-left: 1px solid #fff;
  border-bottom: 1px solid #fff;
  transform: rotate(-45deg);
  box-sizing: border-box;
}
.keyvisual a span::before {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  content: "";
  width: 44px;
  height: 44px;
  box-shadow: 0 0 0 0 rgba(255, 255, 255, .1);
  border-radius: 100%;
  opacity: 0;
  animation: sdb03 3s infinite;
  box-sizing: border-box;
}
@keyframes sdb03 {
  0% {
    opacity: 0;
  }
  30% {
    opacity: 1;
  }
  60% {
    box-shadow: 0 0 0 60px rgba(255, 255, 255, .1);
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
/* ==================================================
   5. コンテナ / ナビ / ブランドコンセプト
================================================== */
.container {
  padding: 0;
  background-color: #f9f4ed;
  position: relative;
  z-index: 1;
}
.topConts {
  margin-top: var(--fv-h);
}
/* グローバルナビ */
.g-nav {
  width: 100%;
  background: #74372d;
  padding: 26px 0;
}
p.sp-menu, .g-nav button {
  display: none;
}
.g-nav ul {
  display: block;
  text-align: center;
  line-height: 0;
  background: #292929;
  border-bottom: solid 1px #000;
}
.g-nav ul li {
  display: inline-block;
  font-weight: 900;
  letter-spacing: 0.1em;
  border-right: solid 1px #fff;
  line-height: 1;
}
.g-nav ul li:last-child {
  border-right: none;
}
.g-nav ul li a {
  color: #fff;
  padding: 9px 18px;
  display: block;
  overflow: visible;
}
.g-nav ul li a span {
  position: relative;
  display: inline-block;
  text-decoration: none;
}
.g-nav ul li a span i {
  display: block;
  margin-top: 5px;
  font-size: 9px !important;
  font-style: italic !important;
}
.g-nav ul li a span::after {
  position: absolute;
  bottom: -8px;
  left: 0;
  content: "";
  width: 100%;
  height: 1px;
  background: #fff;
  transform: scale(0, 1);
  transform-origin: center top;
  transition: transform .3s;
}
.g-nav ul li a span:hover::after {
  transform: scale(1, 1);
}
/* ブランドコンセプト */
.brand-concept-area {
  width: 80%;
  max-width: 1080px;
  margin: 5% auto 0;
  text-align: center;
  line-height: 2.5;
  font-weight: 900;
}
.brand-concept-area p span {
  display: block;
}
.catch_copy {
  font-size: 26px;
}
.bold {
  font-size: 22px;
  margin-top: 3%;
}
/* ==================================================
   6. 商品エリア
================================================== */
#ruban-2026ss-page .contents-area {
  width: 100%;
  max-width: none;
  margin: 7% 0 0;
  background: #f9f4ed;
}
/* セクションタイトル */
#ruban-2026ss-page .contents-area .title-area {
  background: #964e1d;
  letter-spacing: 0.1em;
  margin-bottom: 5%;
}
#ruban-2026ss-page .contents-area .title-area .core {
  max-width: 1080px;
  width: 95%;
  margin: 0 auto;
  display: table;
}
#ruban-2026ss-page .contents-area .title-area .core h2 span {
  display: table-cell;
  vertical-align: middle;
  padding: 0 15px 0 30px;
  font-size: 18px;
  font-weight: normal;
  color: #fff;
}
#ruban-2026ss-page .contents-area .title-area .core h2::before {
  content: attr(data-en);
  background: #74372d;
  color: #fff;
  display: table-cell;
  vertical-align: middle;
  font-size: 16px;
  font-weight: normal;
  font-style: italic !important;
  min-width: 220px;
  text-align: center;
  padding: 20px;
}
/* 商品ボックス */
#ruban-2026ss-page .contents-area .box {
  width: 90%;
  max-width: 1080px;
  margin: 0 auto;
}
#ruban-2026ss-page .contents-area .box .core {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  width: 100%;
  margin-top: 10%;
}
#ruban-2026ss-page .contents-area .box .core :is(.left-area, .right-area) {
  width: 50%;
}
#ruban-2026ss-page .contents-area .box .core .left-area {
  padding-right: 2.5%;
}
#ruban-2026ss-page .contents-area .box .core .right-area {
  padding-left: 2.5%;
}
#ruban-2026ss-page .contents-area .box .core dl dt {
  position: relative;
  line-height: 0;
  margin-top: 0;
}
#ruban-2026ss-page .contents-area .box .core :is(.left-area, .right-area) dl dt h2 {
  letter-spacing: 0.03em;
  line-height: 1.5;
  margin: 0;
}
#ruban-2026ss-page h2.bag_sort.under_bar {
  padding: 2% 0;
}
#ruban-2026ss-page .contents-area .box .core :is(.left-area, .right-area) dl dd p.txt {
  line-height: 1.6;
  word-break: normal;
  font-size: 13px;
  font-weight: 900;
  margin: 15px 0;
}
/* 見出しの強調・ランキング */
#ruban-2026ss-page .contents-area .box .core h2 strong {
  font-size: 0.8em;
  background-color: #512507;
  color: #fff;
  padding: 10px;
  margin-right: 10px;
}
.ranking-left {
  display: flex !important;
}
.ranking_no strong {
  width: 70px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* 価格・ボタン */
#ruban-2026ss-page .cart-area p.price, #ruban-2026ss-page .cart-area p.material {
  font-size: 14px;
}
#ruban-2026ss-page .cart-area p.price span {
  font-size: 14px;
  margin: 0 5px;
}
#ruban-2026ss-page .contents-area .box .core .cart-area p.btn {
  width: 60%;
  margin-top: 4%;
  margin-bottom: 22%;
  font-size: 14px;
}
#ruban-2026ss-page .contents-area .box .core .cart-area p.btn a {
  display: block;
  color: #808080;
  border: solid 1px #808080;
  padding: 8% 4% 8% 6% !important;
  position: relative;
  overflow: visible;
  transition-duration: 0.3s;
  font-size: 14px;
  text-decoration: none;
}
#ruban-2026ss-page .contents-area .box .core .cart-area p.btn a span {
  padding: 0 10px 0 0;
  display: block;
  position: relative;
  background: none;
  color: #666666;
  font-weight: 900;
}
#ruban-2026ss-page .contents-area .box .core .cart-area p.btn a:before {
  content: "";
  background: url(https://efffy.com/efffy-manage/wp-content/uploads/2022/03/efffy_2022ss_anker.png) no-repeat;
  background-size: 100% 100%;
  background-color: transparent;
  position: absolute;
  width: 100px;
  height: 15px;
  top: calc(50% - 16.5px);
  right: -20%;
  transition-duration: 0.3s;
}
#ruban-2026ss-page .contents-area .box .core .cart-area p.btn a:hover:before {
  right: -30%;
}
dt.gap {
  padding-bottom: 2%;
}
h2.bag_sort.number {
  font-size: 14px;
}
/* ==================================================
   7. ページトップボタン / 動画・SDGsエリア
================================================== */
/* ページトップボタン */
#ruban-2026ss-page #ruban-scroller {
  position: fixed;
  right: 23px;
  bottom: 23px;
  z-index: 999;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  opacity: 0.7;
}
#ruban-2026ss-page #ruban-scroller a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
#ruban-2026ss-page #ruban-scroller img {
  width: 53px;
  height: auto;
}
/* 動画・SDGsエリア */
.flexbox {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10%;
}
.flexbox a {
  flex-basis: 45%;
}
.movie-area {
  background: #9a7867;
  padding: 7% 0;
}
.movie-lineup {
  width: 95%;
  max-width: 1080px;
  margin: 0 auto;
  text-align: center;
}
.movie-lineup dl {
  width: 90%;
  margin: auto;
}
.movie-lineup dl dt {
  margin-bottom: 30px;
}
.movie-lineup dl dt img {
  width: 100%;
}
.movie-lineup dl dd {
  color: #fff;
  font-size: 15px;
  letter-spacing: 0.1em;
  font-weight: 900;
  line-height: 1.6em;
}
.movie-lineup dl dd.last-title span {
  display: inline-block;
}
.movie-lineup dl dd.movie-title {
  margin-bottom: 20px;
}
/* FVが固定表示なので、動画エリアを前面に出す */
#ruban-2026ss-page .movie-area {
  position: relative;
  z-index: 2;
}
.movie-lineup .flexbox a {
  text-decoration: none;
  transition: opacity .3s;
}
.movie-lineup .flexbox a:hover {
  opacity: .7;
}
/* ==================================================
   8. レスポンシブ
================================================== */
/* --------------------------------------------------
   8-1. PC(min-width)
-------------------------------------------------- */
@media only screen and (min-width: 990px) {
  .fv-area .core .caption-area {
    transform: translate(-50%, -50%);
  }
}
@media only screen and (min-width: 769px) {
  .g-nav ul {
    background: #74372d;
    border-bottom: solid 1px #74372d;
  }
  .final_section {
    padding-bottom: 12%;
  }
  .logo {
    width: 70%;
  }
  #ruban-2026ss-page .contents-area .box .core dl dt.top-space {
    padding-top: 2%;
  }
  .sp_block {
    display: none;
  }
  h2.bag_sort.under-bar {
    font-size: 17px;
  }
  #ruban-2026ss-page h2.bag_section.under_bar {
    padding-top: 12%;
  }
  br.br {
    display: block;
  }
  .g-nav ul {
    display: block !important;
  }
  /* 本番(WordPress)のテーマCSSに負けないよう !important で固定 */
  #ruban-2026ss-page .g-nav ul li {
    font-size: 12px !important;
  }
  #ruban-2026ss-page .brand-concept-area p {
    font-size: 14px !important;
    line-height: 2.5 !important;
    margin-top: 3%;
  }
  #ruban-2026ss-page .brand-concept-area p.phrase {
    font-size: 18px !important;
    margin-bottom: 30px;
  }
  #ruban-2026ss-page .brand-concept-area p.sub_phrase {
    font-size: 11px !important;
  }
  #ruban-2026ss-page .contents-area .title-area .core h2 span {
    font-size: 18px !important;
  }
  #ruban-2026ss-page .contents-area .title-area .core h2::before {
    font-size: 16px !important;
  }
  #ruban-2026ss-page .contents-area .box .core :is(.left-area, .right-area) dl dd p.txt {
    font-size: 13px !important;
  }
  h2.bag_section {
    color: #656464;
    font-weight: 900;
    font-size: 12px;
  }
        #ruban-2026ss-page .contents-area .box .core dl dt.pc-space-none {
        padding-top: 0%;
    }
}
/* --------------------------------------------------
   8-2. max-width(大きい順)
-------------------------------------------------- */
@media only screen and (max-width: 1199px) {
  article.container {
    width: 100%;
  }
}
@media only screen and (max-width: 1025px) {
  #ruban-2026ss-page .contents-area .box .core .cart-area p.btn {
    width: 70%;
  }
}
@media only screen and (max-width: 989px) {
  .fv-area .core .caption-area img {
    width: 38%;
    display: block;
    margin: auto auto auto 5%;
  }
}
@media only screen and (max-width: 768px) {
  #ruban-2026ss-page h2.bag_section.under_bar {
    padding-top: 12%;
  }
  .logo {
    width: 50%;
    padding-bottom: 2%;
  }
  #ruban-2026ss-page .contents-area .box .core :is(.left-area, .right-area).top-space {
    padding-top: 2%;
  }
  #ruban-2026ss-page .contents-area .box .core dl dt.top-space {
    padding-top: 2%;
  }
  .sp-none {
    display: none;
  }
  #ruban-2026ss-page {
    --fv-h: calc(100vw * 3587 / 2723);
  }
  .fv-area .core {
    background-image: url("../image/sp_top.webp");
    background-size: cover;
    background-position: center top;
  }
  .fv-area .core .caption-area {
    top: 5%;
  }
  .fv-area .core .caption-area img {
    width: 46%;
  }
  /* FV下の余白調整(暫定。原因が分かったら削除) */
  #ruban-2026ss-page .topConts {
    margin-top: calc(var(--fv-h) - 16px);
  }
  /* ナビ */
  .g-nav {
    padding: 27px 0 0;
    position: relative;
  }
  p.sp-menu {
    display: block;
    cursor: pointer;
    text-align: center;
    color: #fff;
    font-weight: 900;
    margin: 0;
    padding-bottom: 30px;
    position: relative;
    z-index: 1;
  }
  .g-nav ul {
    display: none;
    position: absolute;
    width: 100%;
    z-index: 1;
  }
  .g-nav ul li {
    display: block;
    border-right: 0;
  }
  .g-nav button {
    position: absolute;
    top: 31px;
    right: 18px;
    display: block;
    width: 30px;
    padding: 0;
    background: none;
    border: none;
  }
  .g-nav button span {
    display: block;
    width: 100%;
    height: 1px;
    background: #fff;
    margin-bottom: 7px;
    transition: 0.3s;
  }
  .g-nav button span:last-child {
    margin-bottom: 0;
  }
  .g-nav.open button span {
    height: 1.5px;
  }
  .g-nav.open button span:first-child {
    transform: rotate(45deg);
    position: relative;
    top: 9px;
  }
  .g-nav.open button span:nth-child(2) {
    display: none;
  }
  .g-nav.open button span:last-child {
    transform: rotate(-45deg);
  }
  /* ブランドコンセプト */
  .brand-concept-area {
    margin: 15% auto;
    text-align: center;
  }
  .brand-concept-area p {
    display: block;
    font-size: 16px;
    margin-top: 10%;
    text-align: center;
  }
  .brand-concept-area p span {
    display: inline;
  }
  .brand-concept-area p.phrase {
    text-align: center;
    line-height: 1.6;
    font-size: 17px;
    margin-bottom: 15%;
  }
  .brand-concept-area p.sub_phrase {
    font-size: 11px;
    text-align: left;
  }
  .bold {
    font-size: 18px;
  }
  /* 商品エリア */
  #ruban-2026ss-page .contents-area {
    margin: 0;
  }
  #ruban-2026ss-page .contents-area .title-area {
    margin-bottom: 5%;
  }
  #ruban-2026ss-page .contents-area .title-area .core {
    width: 100%;
    display: block;
  }
  #ruban-2026ss-page .contents-area .title-area .core h2 {
    padding-bottom: 10px;
    width: 100%;
  }
  #ruban-2026ss-page .contents-area .title-area .core h2::before {
    display: inline-block;
    text-align: center;
    padding: 10px 40px;
    line-height: 1;
    width: 100%;
  }
  #ruban-2026ss-page .contents-area .title-area .core h2 span {
    font-size: 14px;
    padding: 10px 15px 0 15px;
    text-align: center;
    display: block;
  }
  #ruban-2026ss-page .contents-area .box .core {
    flex-flow: column nowrap;
    margin-top: 0;
    margin-bottom: 0;
  }
  #ruban-2026ss-page .contents-area .box .core02 {
    flex-flow: column-reverse;
  }
  /* ラベルの上余白 */
  #ruban-2026ss-page h2.bag_section.under_bar {
    padding-top: 12%;
  }
  #ruban-2026ss-page .contents-area .box .core :is(.left-area, .right-area) {
    width: 100%;
    padding: 0;
    margin: 0%;
  }
  #ruban-2026ss-page .cart-area p.price span {
    line-height: 0;
  }
  .ranking-left {
    flex-direction: column;
    gap: 20px;
  }
  h2.bag_section {
    color: #656464;
    font-weight: 900;
    font-size: 12px;
  }
  h2.bag_sort {
    font-size: 16px;
    color: #333;
  }
  /* 動画・SDGsエリア */
  .movie-area {
    padding: 13% 0;
  }
  .flexbox {
    display: block;
  }
  .flexbox a + a {
    display: block;
    margin-top: 20%;
  }
  .last-title {
    font-size: 11px;
  }
}
@media only screen and (max-width: 520px) {
  .movie-lineup dl dd {
    font-size: 13px;
  }
}
@media only screen and (max-width: 440px) {
  #ruban-2026ss-page .contents-area .title-area .core h2::before, #ruban-2026ss-page .contents-area .title-area .core h2 span {
    font-size: 12px;
  }
  #ruban-2026ss-page .contents-area .box .core :is(.left-area, .right-area) dl dd p.txt {
    font-size: 12px;
    line-height: 1.8em;
  }
  #ruban-2026ss-page .cart-area p.price, #ruban-2026ss-page .cart-area p.material {
    font-size: 12px;
  }
  #ruban-2026ss-page .cart-area p.price span {
    font-size: 16px;
  }
  #ruban-2026ss-page .contents-area .box .core .cart-area p.btn a:before {
    width: 110px;
    top: calc(50% - 15px);
    right: -20%;
  }
}
@media only screen and (max-width: 340px) {
  #ruban-2026ss-page .contents-area .box .core .cart-area p.btn a span {
    font-size: 12px;
  }
}