@charset "utf-8";
div#hawaii_cp .sr-only {
  display: none;
}
div#hawaii_cp dl > div {
  display: flex;
  gap: 10px
}
/*/div#hawaii_cp a:hover {
  text-decoration: none;
}*/
div#hawaii_cp dt {
  font-weight: 600;
  flex-shrink: 0;
  flex-basis: 5em; /* ★追加：dtの幅を「約文字分」に固定する */
}
div#hawaii_cp .com {
  position: relative;
  width: 100%;
  border: 0;
  border-radius: 10px;
  background: #737373;
  color: #fff;
  text-align: center;
  padding: 12px 10px;
  font-size: 1.0rem;
  margin: 15px auto 0;
  box-sizing: border-box;
}
div#hawaii_cp .btn-fmo {
  position: relative;
  width: 100%;
  border: 0;
  border-radius: 10px;
  background: #058735;
  color: #fff;
  text-align: center;
  padding: 12px 10px;
  font-size: 1.0rem;
  margin: 15px auto 0;
  box-sizing: border-box;
}
div#hawaii_cp .btn-fmo:after {
  position: absolute;
  content: '\e905';
  top: 50%;
  right: 20px;
  width: 16px;
  height: 16px;
  color: #fff;
  font-size: 1.0rem;
  font-family: "icn_font";
  line-height: 0;
}
div#hawaii_cp .btn-fmo:hover {
  background: #04772f;
  color: #fff;
  cursor: pointer;
  text-decoration: none;
}
div#hawaii_cp a:has(.btn-fmo):hover {
  text-decoration: none;
}
@media screen and (min-width: 737px) {
  #contents {
    width: 100%;
    min-height: 100%;
    background-image: url(flower_bg.webp), url("2607_hawaii_cp_KV_pc_kumo.webp"), linear-gradient(to bottom, #0d94d5, #87d1f5);
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-size: 100% auto, auto, cover;
    background-position: top center, top center, top center;
  }
}
@media screen and (max-width: 736px) {
#contents::before {
    background-image: url(flower_bg_sp.webp), url("2607_hawaii_cp_KV_sp_kumo.webp"), linear-gradient(to bottom, #0d94d5, #87d1f5);
    background-repeat: no-repeat;
    content: "";
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 120vh; 
    background-size: 100% auto, 100% auto, cover;
    background-position: top center, top center, top center;
    z-index: -10;
  }
  footer {
    background-color: #fff;
    z-index: -2;
  }
  .ly-btn-pagetop a {
    background-color: #fff;
  }
}
#hawaii_cp img {
  width: 100%;
  height: auto;
}
#hawaii_cp svg {
  shape-rendering: geometricPrecision;
}
#hawaii_cp .fix {
  clear: both;
}
#hawaii_cp p {
  color: #000;
}
#hawaii_cp article {
  width: 100%;
  margin: 0;
}
/* =========================================
   商品セクションのレイアウト（PC・共通）
========================================= */
#hawaii_cp .product_section {
  width: 100%;
  padding: 0;
  margin-top: 1rem;
  margin-bottom: 2.5rem;
  box-sizing: border-box;
}
#hawaii_cp .product_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
#hawaii_cp .product_list.product_list_top {
  grid-template-columns: repeat(2, calc((100% - 60px) / 3));
  justify-content: center;
}
#hawaii_cp .product_item {
  border: 1px solid #0d94d5;
  padding: 1rem;
  border-radius: 10px;
  /*box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);*/
  display: flex;
  flex-direction: column;
}
#hawaii_cp .product_img {
  margin: 0;
  padding: 0px;
  background-color: rgba(255, 255, 255, 0.4);
  /*background-image: url("item_leaf.png");*/
  border-radius: 8px;
  z-index: 2;
}
#hawaii_cp .product_img img {
  width: 100%;
  height: auto;
  border-radius: 6px;
  display: block;
  object-fit: cover;
}
#hawaii_cp .product_info {
  padding: 0;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  margin-top: 15px;
}
/* テキスト要素の装飾 */
#hawaii_cp .product_section .release_date {
  display: inline-block;
  /*border: 1px solid #34160c;*/
  background-color: #0075B3;
  color: #fff;
  border-radius: 50px;
  padding: 2px 14px;
  font-size: clamp(0.8rem, 0.771rem + 0.17vw, 0.85rem);
  font-weight: 500;
  margin: 0 0 10px 0;
  align-self: flex-start;
}
#hawaii_cp .product_section .product_name {
  font-size: clamp(1.1rem, 1.121rem + 0.17vw, 1.2rem);
  font-weight: 700;
  margin: 0 0 5px;
  line-height: 1.4;
}
#hawaii_cp .product_section .product_price {
  font-size: 1.0rem;
  font-weight: 700;
  margin: 0;
  line-height: 1.4;
  text-align: right;
}
#hawaii_cp .product_section .product_name > span {
  font-size: 80%;
}
#hawaii_cp .product_section .price {
  font-size: 1rem;
  font-weight: bold;
  text-align: right;
  margin-bottom: 0;
}
#hawaii_cp .product_section .description {
  font-size: 0.95rem;
  line-height: 1.6;
  margin-top: 10px;
  margin-bottom: 5px;
  border-top: 2px dotted #0d94d5;
  padding-top: 10px;
}
#hawaii_cp .product_section .note {
  font-size: 0.8rem;
  margin: 0;
  line-height: 1.5;
  /*margin-top: auto;*/
}
#hawaii_cp .product_section .note::before {
  content: "※";
}
/*===============================================

●pc.css 画面の横幅が737px以上

===============================================*/
@media screen and (min-width: 737px) {
  div#hawaii_cp {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0;
    color: #1a1a1a;
  }
  /*--------KVarea-------------*/
  /* 親要素を可変＆比率固定にする */
  div#hawaii_cp .kv_area {
    position: relative;
    max-width: 1200px;
    width: 100%; /* 画面幅に合わせて縮小させる */
    margin: 0 auto;
    aspect-ratio: 1200 / 650; /* heightの代わりにアスペクト比で高さを維持 */
  }
  /* KV内の画像が枠に合わせて可変するように設定 */
  div#hawaii_cp .kv_area img {
    width: 100%;
    height: auto;
    display: block;
  }
  /* --- 子要素の絶対配置 --- */
  .kv_img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
  }
  /* pxから％に変換 （例: 222px / 1300px * 100 = 約17.07%） */
  .tit {
    position: absolute;
    top: 2%;
    width: 55.91%;
    left: 24%;
    /*transform: translateX(-50%);*/
    z-index: 10;
  }
  .type {
    position: absolute;
    top: 9.5%;
    width: 10.16%;
    left: 64.5%;
    z-index: 11;
  }
  #hawaii_cp .title_area {
    margin: .5rem auto 4rem;
    text-align: center;
  }
  /* =========================================
   1.タイトル領域の設定（これだけでOK！）
========================================= */
  #hawaii_cp .h1_tit_wrapper {
    text-align: center;
    margin: 0 auto;
    max-width: 700px; /* PCなどで大きくなりすぎるのを防ぐ */
    padding: 10px;
  }
  /* =========================================
   2. 一番後ろ（紺色の縁取り ＋ 白い影）
========================================= */
  #hawaii_cp .tit-stroke {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    color: #013B8C;
    -webkit-text-stroke: 5px #013B8C;
    filter: drop-shadow(0px -4px 2px #fff) drop-shadow(0px 4px 2px #fff) drop-shadow(-4px 0px 2px #fff) drop-shadow(4px 0px 2px #fff);
  }
  /* =========================================
   3. 真ん中の層（★濁りを防ぐ「白い防波堤」）
========================================= */
  #hawaii_cp .tit-buffer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    /* ほんの少しだけ白い縁取りをつけることで、
     後ろの紺色がフチから透けてくるのを物理的に完全ブロックします！ */
    color: #fff;
    -webkit-text-stroke: 2px #fff;
  }
  /* =========================================
   4. 一番手前（グラデーション）
========================================= */
  #hawaii_cp .tit-grad {
    position: relative;
    display: inline-block;
    z-index: 3;
    background: linear-gradient(180deg, #e51781 0%, #fff000 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
  }
  #hawaii_cp .lead {
    font-size: 1.2rem;
    font-weight: 600;
    color: #013B8C;
  }
  #hawaii_cp .box {
    background-color: rgba(255, 255, 255, 0.7);
    /*border-top-left-radius: 30px;
    border-top-right-radius: 30px;*/
    border-radius: 16px;
    max-width: 100%;
    margin: 0 auto;
    padding: 30px;
    margin-bottom: 5rem;
  }
  #hawaii_cp .h2_tit {
    display: block;
    width: fit-content;
    margin: -3.5rem auto 1rem;
    height: 63px;
    line-height: 57px;
    /*font-family: "RocknRoll One", sans-serif;*/
    font-weight: 600;
    font-style: normal;
    /*font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 900;
  font-style: normal;*/
    text-align: center;
    font-size: 1.8rem;
    padding: 0 30px;
    background: #fff;
    border: 3px solid #ce0074;
    border-radius: 50rem;
    box-sizing: border-box;
    filter: drop-shadow(0px -3px 0px #fff) /* 上 */
      drop-shadow(0px 3px 0px #fff) /* 下 */
      drop-shadow(-3px 0px 0px #fff) /* 左 */
      drop-shadow(3px 0px 0px #fff); /* 右 */
  }
  #hawaii_cp .h2_tit:before {
    content: '';
    display: inline-block;
    width: 42px; /*画像の幅*/
    height: 42px; /*画像の高さ*/
    background-image: url("flower_icon.webp");
    background-size: contain;
    background-repeat: no-repeat;
    vertical-align: bottom;
    margin: 0 0 10px 0;
  }
  #hawaii_cp .h2_tit:after {
    content: '';
    display: inline-block;
    width: 42px; /*画像の幅*/
    height: 42px; /*画像の高さ*/
    background-image: url("flower_icon.webp");
    background-size: contain;
    background-repeat: no-repeat;
    vertical-align: bottom;
    margin: 0 0 10px 5px;
  }
  /* --- プロフィール共通エリア設定 --- */
  #hawaii_cp .prof {
    max-width: 100%;
    height: auto;
  }
  #hawaii_cp .prof .comment-part p {
    font-size: 1rem;
    line-height: 1.85rem;
    margin: 1rem 0 0;
  }
  #hawaii_cp .conL {
    float: left;
  }
  #hawaii_cp .conR {
    float: right;
    margin-bottom: 2.5rem;
  }
  #hawaii_cp .conR img {
    width: 150px;
    margin-left: 1rem;
  }
  #hawaii_cp .prof .comment-part .cap {
    font-size: 0.85rem;
    font-weight: normal;
    line-height: 1.4rem;
    text-align: right;
    margin-top: -2.0rem;
    opacity: 0.8;
  }
  /* --- プロフィール詳細（横並びレイアウト） --- */
  #hawaii_cp .profile-area {
    width: 49%;
    display: flex;
    gap: 15px; /* 画像とテキストの間隔 */
    align-items: flex-start;
    /* border-top: 1px solid #555; コメントとの境界線 */
    padding-top: 1rem;
    float: left;
    margin-left: 5px;
  }
  #hawaii_cp .profile-img {
    width: 180px; /* 画像の横幅を固定 */
    flex-shrink: 0; /* 画像が潰れないように固定 */
  }
  #hawaii_cp .profile-img img {
    width: 100%;
    height: auto;
    /* 画像を円形にしたい場合は以下を追加 */
    /* border-radius: 50%; */
  }
  #hawaii_cp .profile-text {
    flex: 1;
  }
  #hawaii_cp .profile-text h3 {
    font-size: 1rem;
    margin-bottom: 5px;
    font-weight: 500;
  }
  #hawaii_cp .profile-text h3 span {
    font-size: 0.85rem;
    font-weight: normal;
    margin-left: 5px;
    opacity: 0.8;
  }
  #hawaii_cp .profile-text h4 {
    font-size: 1rem;
    margin: 10px 0 3px;
    font-weight: 500;
  }
  #hawaii_cp .profile-text p {
    font-size: 0.95rem; /* プロフィール文は少し小さめに */
    line-height: 1.5rem;
  }
}
/* ====================================
   ▼ SPレイアウト (736px以下) ▼
   ==================================== */
@media screen and (max-width:736px) {
  #hawaii_cp {
    width: 100vw;
    margin: 0 calc(50% - 50vw);
    padding: 0 0 2rem;
    margin-top: -10px;
  }
  #hawaii_cp .product_list {
    grid-template-columns: 1fr; /* スマホ: 1カラム */
    gap: 20px;
  }
  #hawaii_cp .product_list.product_list_top {
    grid-template-columns: 1fr; /* スマホ: 1カラム */
    gap: 20px;
  }
  #hawaii_cp section {
    padding: 0;
  }
  #hawaii_cp main {
    padding: 0 13px;
  }
  /* --- SPプロフィールエリア設定 --- */
  #hawaii_cp .prof {
    max-width: 100%;
    height: auto;
    padding: 0 5px;
  }
  #hawaii_cp .prof .comment-part p {
    font-size: 0.95rem;
    line-height: 1.6rem;
    margin: 1rem 0;
  }
  #hawaii_cp .prof .comment-part .cap {
    font-size: 0.85rem;
    font-weight: normal;
    line-height: 1.4rem;
    text-align: right;
    margin-top: -2.0rem;
    opacity: 0.8;
  }
  /* --- プロフィール詳細 --- */
  #hawaii_cp .profile-area {
    gap: 15px; /* 画像とテキストの間隔 */
    align-items: flex-start;
    padding-top: 1rem;
    flex-direction: column; /* 上下並びに変更 */
    padding-top: 0rem;
  }
  #hawaii_cp .profile-img {
    width: 200px; /* スマホでは少し小さく */
    margin: 0 auto 1rem; /* 中央寄せにしたい場合 */
  }
  #hawaii_cp .profile-img img {
    width: 100%;
    height: auto;
    /* 画像を円形にしたい場合は以下を追加 */
    /* border-radius: 50%; */
  }
  #hawaii_cp .profile-text {
    flex: 1;
  }
  #hawaii_cp .profile-text h3 {
    font-size: 1rem;
    margin-bottom: 5px;
    font-weight: 500;
  }
  #hawaii_cp .profile-text h3 span {
    font-size: 0.85rem;
    font-weight: normal;
    margin-left: 5px;
    opacity: 0.8;
  }
  #hawaii_cp .profile-text h4 {
    font-size: 1rem;
    margin: 10px 0 3px;
    font-weight: 500;
  }
  #hawaii_cp .profile-text p {
    font-size: 0.95rem; /* プロフィール文は少し小さめに */
    line-height: 1.5rem;
  }
  /*--------KVarea-------------*/
  /* 親要素を可変＆比率固定にする */
  #hawaii_cp .kv_area {
    position: relative;
    max-width: 1040px;
    width: 100%; /* 画面幅に合わせて縮小させる */
    margin: 0 auto;
    aspect-ratio: 1040 / 1040; /* heightの代わりにアスペクト比で高さを維持 */
  }
  /* KV内の画像が枠に合わせて可変するように設定 */
  #hawaii_cp .kv_area img {
    width: 100%;
    height: auto;
    display: block;
  }
  /* --- 子要素の絶対配置 --- */
  .kv_img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
  }
  .kv_kumo {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: -20;
  }
  /* pxから％に変換 （例: 222px / 1300px * 100 = 約17.07%） */
  .tit {
    position: absolute;
    top: 24%;
    width: 78.07%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
  }
  .type {
    position: absolute;
    top: 30.5%;
    width: 14.13%;
    left: 67%;
    z-index: 11;
  }
  #hawaii_cp .title_area {
    margin: .5rem auto 4rem;
    text-align: center;
  }
  /* =========================================
   1.タイトル領域の設定（これだけでOK！）
========================================= */
  #hawaii_cp .h1_tit_wrapper {
    text-align: center;
    margin: 0 auto;
    max-width: 800px; /* PCなどで大きくなりすぎるのを防ぐ */
    padding: 10px;
  }
  /* =========================================
   2. 一番後ろ（紺色の縁取り ＋ 白い影）
========================================= */
  #hawaii_cp .tit-stroke {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    color: #013B8C;
    -webkit-text-stroke: 5px #013B8C;
    filter: drop-shadow(0px -4px 2px #fff) drop-shadow(0px 4px 2px #fff) drop-shadow(-4px 0px 2px #fff) drop-shadow(4px 0px 2px #fff);
  }
  /* =========================================
   3. 真ん中の層（★濁りを防ぐ「白い防波堤」）
========================================= */
  #hawaii_cp .tit-buffer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    /* ほんの少しだけ白い縁取りをつけることで、
     後ろの紺色がフチから透けてくるのを物理的に完全ブロックします！ */
    color: #fff;
    -webkit-text-stroke: 2px #fff;
  }
  /* =========================================
   4. 一番手前（グラデーション）
========================================= */
  #hawaii_cp .tit-grad {
    position: relative;
    display: inline-block;
    z-index: 3;
    background: linear-gradient(180deg, #e51781 0%, #fff000 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
  }
  #hawaii_cp .lead {
    font-size: 0.9rem;
    font-weight: 600;
    color: #013B8C;
    margin: 0 10px 50px;
  }
  #hawaii_cp .box {
    background-color: rgba(255, 255, 255, 0.7);
    border-radius: 12px;
    max-width: 100%;
    margin: 0 auto;
    padding: 13px;
    margin-bottom: 5rem;
  }
  #hawaii_cp .h2_tit {
    display: block;
    width: fit-content;
    margin: -3rem auto 1rem;
    height: 40px;
    line-height: 35px;
    /*font-family: "RocknRoll One", sans-serif;
    font-weight: 500;
    font-style: normal;
   font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 900;
  font-style: normal;*/
    text-align: center;
    font-size: 1.2rem;
    padding: 0 30px;
    background: #fff;
    border: 2px solid #ce0074;
    border-radius: 50rem;
    box-sizing: border-box;
    filter: drop-shadow(0px -2px 0px #fff) /* 上 */
      drop-shadow(0px 2px 0px #fff) /* 下 */
      drop-shadow(-2px 0px 0px #fff) /* 左 */
      drop-shadow(2px 0px 0px #fff); /* 右 */
  }
  #hawaii_cp .h2_tit:before {
    content: '';
    display: inline-block;
    width: 28px; /*画像の幅*/
    height: 28px; /*画像の高さ*/
    background-image: url("flower_icon.webp");
    background-size: contain;
    background-repeat: no-repeat;
    vertical-align: bottom;
    margin: 0 0 5px 0;
  }
  #hawaii_cp .h2_tit:after {
    content: '';
    display: inline-block;
    width: 28px; /*画像の幅*/
    height: 28px; /*画像の高さ*/
    background-image: url("flower_icon.webp");
    background-size: contain;
    background-repeat: no-repeat;
    vertical-align: bottom;
    margin: 0 0 5px 3px;
  }
}
/* =========================================
   KVタイトル：下からゆっくり迫る＋2回バウンス
========================================= */
.kv-title-anim {
  opacity: 0;
  transform-origin: center center;
  animation: slow-approach-lower 1s ease-out forwards;
}
/* アニメーションのキーフレーム設定 */
@keyframes slow-approach-lower {
  0% {
    opacity: 0;
    /* ▼変更：Y軸（縦方向）に50px下げた位置からスタートさせます */
    transform: translateY(-50px) scale(0);
  }
  15% {
    opacity: 1;
    /* この時点でもまだ少し下にいます */
  }
  75% {
    opacity: 1;
    /* ▼変更：ここで本来の高さ（0px）に到達し、1回目のバウンス */
    transform: translateY(0px) scale(1.1);
  }
  83% {
    /* 1回目の反動 */
    transform: translateY(0px) scale(0.95);
  }
  90% {
    /* 2回目のバウンス */
    transform: translateY(0px) scale(1.06);
  }
  96% {
    /* 2回目の反動 */
    transform: translateY(0px) scale(0.98);
  }
  100% {
    opacity: 1;
    /* ピタッと定位置に収まる */
    transform: translateY(0px) scale(1);
  }
}
/* =========================================
   バッジ画像：表裏回転＆バウンス・アニメーション
========================================= */
/* バッジ画像に付与するクラス */
.badge-anim {
  opacity: 0; /* 最初は見えない状態 */
  transform-origin: center center; /* 中央を基準に回転・拡大させる */
  /* 1.5秒かけて再生。
     ▼重要：タイトルのアニメーション（2.5s）が終わるまで待つ設定です */
  animation: badge-flip-bounce 1.5s ease-out forwards;
  animation-delay: 0.5s; /* コンテキスト（タイトルアニメーションの再生時間） */
  /* 裏側が見えた時に、画像が反転して表示されるのを防ぐ（より表裏回転らしく見せる） */
  backface-visibility: hidden;
}
/* アニメーションのキーフレーム設定 */
@keyframes badge-flip-bounce {
  0% {
    opacity: 0;
    /* スタート：サイズ0で、正面を向いている */
    transform: scale(0) rotateY(0deg);
  }
  15% {
    opacity: 1;
    /* このあたりから姿を見せる */
  }
  40% {
    /* 1回目（表から裏）：180度回転（裏返る） */
    transform: scale(1) rotateY(180deg);
  }
  70% {
    /* 2回目（裏から表）：360度回転（正面に戻る） */
    transform: scale(1) rotateY(360deg);
  }
  85% {
    /* バウンス：勢い余って本来のサイズ（1）を少し超える */
    transform: scale(1.1) rotateY(360deg);
  }
  93% {
    /* 反動：少し縮む */
    transform: scale(0.98) rotateY(360deg);
  }
  100% {
    opacity: 1;
    /* 最終的にピタッと定位置（scale 1）に収まる */
    transform: scale(1) rotateY(360deg);
  }
}
/* =========================================
   スクロールアニメーション（ふわっと現れる）
========================================= */
.js-fade {
  opacity: 0;
  transform: translateY(30px); /* 30px下から */
  transition: opacity 0.8s ease, transform 0.8s ease; /* 0.8秒かけて変化 */
}
/* JSでこのクラスが付与されると表示される */
.js-fade.is-active {
  opacity: 1;
  transform: translateY(0);
}