@charset "utf-8";

/*Google Fontsの読み込み
---------------------------------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Questrial&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Tangerine&display=swap');

/*keyframes.cssの読み込み
---------------------------------------------------------------------------*/
@import url('keyframes.css');

/*slick.cssの読み込み
---------------------------------------------------------------------------*/
@import url('https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css');

/*全端末（PC・タブレット・スマホ）共通設定
------------------------------------------------------------------------------------------------------------------------------------------------------*/

/*全体の設定
---------------------------------------------------------------------------*/
body {
    margin: 0px;
    padding: 0px;
    color: #fff; /*全体の文字色*/
    font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ',
        Meiryo, Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif; /*フォント種類*/
    font-size: 16px; /*文字サイズ*/
    line-height: 2; /*行間*/
    background: #2e3368; /*背景色*/
    -webkit-text-size-adjust: none;
}
h1,
h2,
h3,
h4,
h5,
p,
ul,
ol,
li,
dl,
dt,
dd,
form,
figure,
form {
    margin: 0px;
    padding: 0px;
    font-size: 100%;
    font-weight: normal;
}
ul {
    list-style-type: none;
}
ol {
    padding-left: 40px;
    padding-bottom: 15px;
}
img {
    border: none;
    max-width: 100%;
    height: auto;
    vertical-align: middle;
}
table {
    border-collapse: collapse;
    font-size: 100%;
    border-spacing: 0;
}
video {
    max-width: 100%;
}
iframe {
    width: 100%;
}

/*リンク（全般）設定
---------------------------------------------------------------------------*/
a {
    color: #fff; /*リンクテキストの色*/
    transition: 0.2s; /*マウスオン時の移り変わるまでの時間設定。0.2秒。*/
}
a:hover {
    color: #ffd93f; /*マウスオン時の文字色*/
    text-decoration: none; /*マウスオン時に下線を消す設定。残したいならこの１行削除。*/
}

#mainimg {
    position: relative;
    overflow: hidden;
}
#mainimg img {
    display: block;
    width: 100%;
    height: auto;
}

.slide0 {
    position: relative;
    z-index: -1;
}

.slide1,
.slide2,
.slide3 {
    position: absolute;
    inset: 0;
    opacity: 0; /* 待機中に透明 */
    animation-duration: 15s !important;
    animation-iteration-count: infinite !important;
    animation-fill-mode: both !important;
    animation-delay: 2s;
}
@keyframes slide1 {
    0% {
        opacity: 0;
    }
    10% {
        opacity: 1;
    }
    35% {
        opacity: 1;
    }
    45% {
        opacity: 0;
    }
    100% {
        opacity: 0;
    }
}
@keyframes slide2 {
    0% {
        opacity: 0;
    }
    25% {
        opacity: 0;
    }
    35% {
        opacity: 1;
    }
    60% {
        opacity: 1;
    }
    70% {
        opacity: 0;
    }
    100% {
        opacity: 0;
    }
}
@keyframes slide3 {
    0% {
        opacity: 0;
    }
    50% {
        opacity: 0;
    }
    60% {
        opacity: 1;
    }
    75% {
        opacity: 1;
    }
    85% {
        opacity: 0;
    }
    100% {
        opacity: 0;
    }
}

.slide1 {
    animation-name: slide1 !important;
}
.slide2 {
    animation-name: slide2 !important;
}
.slide3 {
    animation-name: slide3 !important;
}

/*inner
---------------------------------------------------------------------------*/
.inner {
    max-width: 1400px; /*サイトの最大幅*/
    margin: 0 auto;
    padding-left: 2%;
    padding-right: 2%;
}

/*ヘッダー
---------------------------------------------------------------------------*/
/*ヘッダーブロック*/
header {
    position: relative;
    padding: 20px; /*ヘッダー内の余白*/
}
/*ヘッダーブロック（トップページへの追加設定）*/
.home header {
    padding: 0px; /*余白をなしに*/
}
/*ロゴ画像*/
header #logo {
    width: 200px; /*画像幅*/
    margin: 0 auto; /*中央配置*/
}
/*ロゴ画像（トップページへの追加設定）*/
.home header #logo {
    display: none; /*スライドショーの邪魔なので非表示に*/
}

/*メインメニューのブロック
---------------------------------------------------------------------------*/
/*メニューブロック*/
#menubar {
    position: relative;
    z-index: 10;
    text-align: center; /*文字を中央に*/
    background: #fff; /*背景色*/
    border-top: 1px solid #ccc; /*上の線の幅、線種、色*/
    border-bottom: 1px solid #ccc; /*下の線の幅、線種、色*/
    font-family: 'Questrial', sans-serif; /*冒頭で読み込んだGoogle Fontsを適用する指定*/
    height: 105px; /*高さ。「#menubar ul li a」や「fixmenu」とも連動するので変更の際は注意。説明はこの下の「#menubar ul li a」で書いています。*/
}
/*メニュー１個あたりの設定*/
#menubar ul li {
    float: left; /*左に回り込み*/
    width: 20%; /*幅。今回は５個なので、100÷5=20。*/
    font-size: 20px; /*文字サイズ*/
}
#menubar ul li a {
    text-decoration: none;
    display: block;
    height: 85px; /*メニューブロックの高さ。ここの「85」と、下の行の「20」を合計した「105」の数字と、上の「#menubar」の「height」および下のfixmenu設定に２箇所ある「margin-top」の数字を合わせて下さい。*/
    padding-top: 20px; /*メニューブロックの高さプラス、上に空ける余白。メニューテキストの上下の配置バランスをここで調整して下さい。※変更の際は、上の行の注意書きもしっかり読んで下さい。*/
    color: #333; /*文字色*/
}
/*マウスオン時の文字色*/
#menubar ul li a:hover {
    color: #a10808; /*文字色*/
}
/*飾り文字*/
#menubar ul li span {
    display: block;
    font-size: 10px; /*文字サイズ*/
    color: #999; /*文字色*/
    letter-spacing: 0.2em; /*文字間隔を少し広くとる設定*/
}
/*スマホ用メニューを表示させない*/
#menubar-s,
#menubar-s2 {
    display: none;
}

/*３本バーアイコンを表示させない*/
#menubar_hdr {
    display: none;
}

/*ドロップダウンメニューの親メニュー*/
#menubar a.cursor-default {
    cursor: default; /*マウスオーバー時に通常のカーソルになるように*/
    color: #333; /*文字色*/
}

/*ドロップダウンメニュー用
----------------------------------------------------------------------------------------------------------------------------------*/
/*メニューブロック*/
#menubar ul.ddmenu {
    position: absolute;
    visibility: hidden;
    z-index: 10;
    left: 0px;
    width: 94%;
    padding: 50px 3%;
    background: #000; /*背景色。古いブラウザ用。*/
    background: rgba(
        0,
        0,
        0,
        0.85
    ); /*背景色。0,0,0は黒のことで0.85は色が85%出た状態のこと。*/
    text-align: center; /*テキストをセンタリング*/
    border-bottom: 1px solid #fff; /*境界が見辛いので、下線の設定。*/
}
/*ドロップダウンメニューの出現アニメーション*/
#menubar li:hover ul.ddmenu {
    animation-name: opa1; /*keyframes.cssで使う@keyframesの指定*/
    animation-fill-mode: both;
    animation-duration: 0.8s; /*アニメーションを実行する時間。「s」は秒の事。*/
    animation-delay: 0.1s; /*出現するタイミング（秒後）*/
}
/*メニュー１個あたりの設定*/
#menubar ul.ddmenu li {
    float: none;
    width: auto;
    display: inline-block;
    font-size: 85%; /*文字サイズ*/
}
#menubar ul.ddmenu li a {
    height: auto;
    padding: 20px; /*メニューテキスト同士の余白*/
    color: #fff; /*文字色*/
    opacity: 0.7; /*透明度。70%色がついた状態。*/
}
/*マウスオン時*/
#menubar ul.ddmenu li a:hover {
    opacity: 1; /*透明度。色が100%出た状態。*/
}

/*fixmenu設定（メニューが画面上部に到達した際のスタイル）
---------------------------------------------------------------------------*/
/*上部固定メニュー用fixmenu設定*/
body.is-fixed-menu #menubar.nav-fix-pos {
    position: fixed;
    width: 100%;
    top: 0px;
    height: 60px; /*メニューの高さを少し狭くする*/
}
body.is-fixed-menu #contents {
    margin-top: 105px; /*※上の「#menubar ul li a」の注意書きにある数字を指定します。*/
}
/*※以下の２ブロックのスタイルの「中身」は、上の２ブロックのスタイルと単純に合わせておいて下さい。*/
body.is-fixed #menubar.nav-fix-pos {
    position: fixed;
    width: 100%;
    top: 0px;
}
body.is-fixed #contents {
    margin-top: 105px; /*※上の「#menubar ul li a」の注意書きにある数字を指定します。*/
}

/*装飾文字を非表示にする*/
body.is-fixed-menu #menubar ul li span {
    display: none;
}
/*メニューテキストの上下バランスを調整しなおす。２つの数字の合計と、「body.is-fixed-menu #menubar.nav-fix-pos」の「height: 60px;」の数字が合うようにして下さい。*/
body.is-fixed-menu #menubar ul li a {
    height: 50px;
    padding-top: 10px;
}
/*ドロップダウンメニューへの再設定*/
body.is-fixed-menu #menubar ul.ddmenu li a {
    padding: 20px;
    height: auto;
}

/*コンテンツ
---------------------------------------------------------------------------*/
#contents {
    padding: 100px 0 50px; /*上、左右、下へのコンテンツ内の余白*/
    position: relative;
    animation-name: opa2; /*keyframes.cssで使う@keyframesの指定*/
    animation-duration: 0.5s; /*アニメーションの実行時間*/
    animation-delay: 0.5s; /*出現するタイミング（秒後）*/
    animation-fill-mode: both;
}
/*h2タグ*/
#contents h2 {
    clear: both;
    margin-bottom: 100px;
    font-size: 300%; /*文字サイズ*/
    text-align: center; /*文字をセンタリング*/
    letter-spacing: 0.2em; /*文字間隔を少し広めにとる指定。通常がいいならこの１行削除。*/
}
/*h2タグ内のspanタグ（装飾文字）*/
#contents h2 span {
    display: block;
    font-size: 30%; /*文字サイズ*/
    color: #999; /*文字色*/
}
/*h3タグ*/
#contents h3 {
    clear: both;
    margin-bottom: 30px;
    font-size: 150%; /*文字サイズ*/
    border-bottom: 1px solid #fff; /*下線の幅、線種、色*/
    padding-left: 3%; /*左側に空ける余白*/
    letter-spacing: 0.1em; /*文字間隔を少し広めにとる指定。通常がいいならこの１行削除。*/
}
/*段落タグ*/
#contents p {
    padding: 0 3% 30px; /*上、左右、下への余白*/
}
#contents h2 + p,
#contents h3 + p {
    margin-top: -5px;
}
#contents p + p {
    margin-top: 20px;
}
#contents section + section {
    margin-top: 100px;
}

/*list（worksページで使っている横長ブロック）
---------------------------------------------------------------------------*/
/*ボックスの設定*/
#contents .list {
    position: relative;
    border-radius: 5px; /*角丸の指定。ほんの少し角が丸くなります。*/
    overflow: hidden; /*角丸から内容が飛び出ないよう、飛び出た部分を非表示にする指定*/
    display: flex;
    align-items: center; /*中のブロックの縦並びの揃え方*/
    background: #000; /*背景色*/
    color: #fff; /*文字色*/
    margin: 0 3% 30px; /*ボックスの下に空けるスペース。上、左右、下への順番。*/
}
/*リンクテキストの文字色*/
#contents .list a {
    color: #fff;
}
/*ボックス内のh4（見出し）タグ*/
#contents .list h4 {
    margin-bottom: 20px; /*下のテキストとの間に空けるスペース*/
    font-size: 140%; /*文字サイズ*/
}
/*ボックス内のp（段落）タグ*/
#contents .list p {
    padding: 0; /*余白のリセット*/
}
/*ボックス内のfigure画像*/
#contents .list figure {
    width: 50%; /*画像の幅*/
}
/*「class="text"」を指定したブロック。テキストブロック。*/
#contents .list .text {
    width: 40%; /*ブロックの幅。下のpaddingの5%とも連動するので変更の際は注意して下さい。*/
    padding: 2% 5%; /*上下、左右へのブロック内の余白*/
}

/*偶数目のブロックの設定（画像とテキストブロックが左右交互に入れ替わる設定です。全部同じむきがよければこのブロックを削除します。）*/
#contents .list:nth-of-type(even) .text {
    order: 1;
}

/*装飾文字の設定（共通）*/
#contents .list::before {
    font-size: 18vw;
    line-height: 1;
    position: absolute;
    color: rgba(
        255,
        255,
        255,
        0.15
    ); /*文字色。255,255,255は白のことで、0.15は色が15%出た状態のこと。*/
    font-family: 'Tangerine', cursive; /*冒頭で読み込んだGoogle Fontsを適用する指定*/
}
/*奇数番目のブロックの文字の配置場所指定*/
#contents .list:nth-of-type(odd)::before {
    left: -60px;
    top: -40px;
}
/*偶数番目のブロックの文字の配置場所指定*/
#contents .list:nth-of-type(even)::before {
    right: 0px;
    top: -40px;
}
/*１つ目ブロックに表示させるテキスト*/
#contents .list:nth-of-type(1)::before {
    content: 'new';
}
/*２つ目ブロックに表示させるテキスト*/
#contents .list:nth-of-type(2)::before {
    content: 'limited';
}
/*３つ目ブロックに表示させるテキスト*/
#contents .list:nth-of-type(3)::before {
    content: 'restock';
}
/* ボタン本体を“面”としてホバーしやすく */
.btn1 {
    margin: 40px auto 0;
    display: grid; /* 中央寄せに効く軽いラッパ */
    place-items: center;
}

.btn1 a {
    display: inline-flex; /* きれいに中央寄せ */
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 240px; /* ボタンの最大幅 */
    padding: 12px 30px;
    text-decoration: none;
    border: 1.5px solid #fff;
    border-radius: 999px;
    background: transparent;
    color: #fff;
    cursor: pointer;
    transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease,
        transform 0.12s ease;
}

/* ① ボタン自身にホバー／フォーカスした時の見た目 */
.btn1 a:hover,
.btn1 a:focus-visible {
    background: #fff;
    color: #000 !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
    transform: translateY(-1px);
    outline: none;
}

/* ② .btn1 ラッパにホバーしても同じ効果（=ボタン全体で反応） */
.btn1:hover a {
    background: #fff;
    color: #000 !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
    transform: translateY(-1px);
}

/* ③ （任意）カード全体に乗ってもボタンを強調したい場合 */
.list:hover .btn1 a {
    background: #fff;
    color: #000 !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
    transform: translateY(-1px);
}

/*list-column（トップページで使っている３列ブロック）
---------------------------------------------------------------------------*/
/*カラムブロック全体を囲むボックス*/
#contents .list-column-container {
    display: flex;
    justify-content: space-between; /*中のブロックの横並びの揃え方*/
    flex-wrap: wrap; /*中のブロックを自動で折り返す*/
    margin: 0 3%;
}
/*１カラムあたりの設定*/
#contents .list-column {
    display: flex;
    flex-direction: column; /*中のブロックを並べる向きの指定。これは縦に並べる意味。*/
    width: 32%; /*ブロック幅*/
    margin-bottom: 20px; /*ブロックの下に空ける余白*/
    background: #000; /*背景色*/
    color: #fff; /*文字色*/
    border-radius: 5px; /*角丸の指定。ほんの少し角が丸くなります。*/
    overflow: hidden; /*角丸から内容が飛び出ないよう、飛び出た部分を非表示にする指定*/
}
/*リンクテキストの文字色*/
#contents .list-column a {
    color: #fff;
}
/*ボックス内のh4（見出し）タグ*/
#contents .list-column h4 {
    margin-bottom: 20px; /*下のテキストとの間に空けるスペース*/
    font-size: 140%; /*文字サイズ*/
}
/*ボックス内のp（段落）タグ*/
#contents .list-column p {
    padding: 0; /*余白のリセット*/
}

/*「class="text"」を指定したブロック。テキストブロック。*/
#contents .list-column .text {
    padding: 5%; /*ブロック内の余白*/
    flex: 1 0 auto;
}
/*IEバグ対応*/
#contents .list-column figure {
    min-height: 0%;
}

/*フッター設定
---------------------------------------------------------------------------*/
footer {
    clear: both;
    position: relative;
    z-index: 1;
    font-size: 80%; /*文字サイズ*/
    background: #222; /*背景色*/
    color: #ccc; /*文字色*/
    text-align: center;
}
footer a {
    color: #ccc;
}
footer a:hover {
    color: #fff;
}
footer .pr {
    display: block;
    font-size: 80%;
}

/*フッターメニュー
---------------------------------------------------------------------------*/
/*ボックス全体*/
#footermenu {
    overflow: hidden;
    padding: 50px 0; /*上下、左右へのボックス内の余白*/
    background: url(../images/footer_logo.png) no-repeat right center / 20%; /*背景画像の読み込み。*/
}
/*リンクテキスト*/
#footermenu li a {
    text-decoration: none;
    opacity: 0.7; /*透明度。70%の色がついた状態。*/
}
/*マウスオン時*/
#footermenu li a:hover {
    opacity: 1; /*透明度。100%色がついた状態。*/
}
/*１行分の設定*/
#footermenu ul {
    float: left; /*左に回り込み*/
    width: 18%; /*幅*/
    padding-right: 1%;
    padding-left: 1%;
    text-align: left;
}
/*見出し*/
#footermenu li.title,
#footermenu li.title a {
    opacity: 1; /*透明度。100%色がついた状態。*/
}

/*コピーライト
---------------------------------------------------------------------------*/
#copyright {
    clear: both;
    text-align: center;
    background: #000; /*背景色*/
    padding: 20px 0; /*上下、左右へのボックス内の余白*/
}
#copyright a {
    text-decoration: none;
}

/*facebookやtwitterなどのアイコン
---------------------------------------------------------------------------*/
/*アイコン全体を囲むブロック*/
ul.icon {
    margin-bottom: 20px;
}
/*アイコン１個あたりの設定*/
ul.icon li {
    display: inline-block; /*横並びにさせる指定*/
}
/*アイコン画像の設定*/
ul.icon img {
    width: 30px; /*画像の幅*/
}
ul.icon img:hover {
    opacity: 0.8;
}

/*トップページ内「更新情報・お知らせ」ブロック
---------------------------------------------------------------------------*/
/*見出しを含まないお知らせブロック*/
#new dl {
    padding: 0px 20px; /*上下、左右へのブロック内の余白*/
}
/*日付設定*/
#new dt {
    float: left;
    width: 9em; /*幅*/
    letter-spacing: 0.1em;
}
/*記事設定*/
#new dd {
    padding-left: 9em;
}

/*ta1設定
---------------------------------------------------------------------------*/
/*テーブル１行目に入った見出し部分（※caption）*/
.ta1 caption,
.ta2 caption {
    border: 1px solid #ccc; /*テーブルの枠線の幅、線種、色*/
    border-bottom: none; /*下線だけ消す*/
    text-align: left; /*文字を左寄せ*/
    background: rgba(0, 0, 0, 0.5); /*背景色*/
    font-weight: bold; /*太字に*/
    padding: 10px; /*ボックス内の余白*/
}
/*ta1テーブル*/
.ta1 {
    width: 94%;
    table-layout: fixed;
    margin: 0 3% 30px;
}
.ta1,
.ta1 td,
.ta1 th {
    border: 1px solid #ccc; /*テーブルの枠線の幅、線種、色*/
    padding: 10px; /*ボックス内の余白*/
    word-break: break-all;
}
/*左側ボックス*/
.ta1 th {
    width: 150px; /*幅*/
    text-align: center; /*センタリング*/
    font-weight: normal;
}

/*inputボタン
---------------------------------------------------------------------------*/
#contents input[type='submit'].btn,
#contents input[type='button'].btn,
#contents input[type='reset'].btn {
    -webkit-appearance: none;
    outline: none;
    padding: 5px 20px; /*上下、左右へのボックス内の余白*/
    border: 1px solid #333; /*枠線の幅、線種、色*/
    font-size: 130%; /*文字サイズ*/
    border-radius: 3px; /*角丸のサイズ*/
    background: #333; /*背景色*/
    color: #fff; /*文字色*/
}
/*マウスオン時の設定*/
#contents input[type='submit'].btn:hover,
#contents input[type='button'].btn:hover,
#contents input[type='reset'].btn:hover {
    border: 1px solid #333; /*枠線の幅、線種、色*/
    background: #fff; /*背景色*/
    color: #333; /*文字色*/
}

/*トップページのNEWアイコン
---------------------------------------------------------------------------*/
.newicon {
    background: #f00; /*背景色*/
    color: #fff; /*文字色*/
    font-size: 70%; /*文字サイズ*/
    line-height: 1.5;
    padding: 2px 5px;
    border-radius: 2px;
    margin: 0px 5px;
    vertical-align: text-top;
}

/*ヘッダーにメニューが固定される分、リンク先が隠れるのを防ぐ為のスタイル。※ページ内へのリンクで使う。
---------------------------------------------------------------------------*/
.link {
    display: block;
    margin-top: -120px;
    padding-top: 120px;
}

/*PAGE TOP（↑）設定
---------------------------------------------------------------------------*/
/*通常時のボタンは非表示*/
body .nav-fix-pos-pagetop a {
    display: none;
}
/*fixmenu_pagetop.jsで設定している設定値になったら出現するボタンスタイル*/
body.is-fixed-pagetop .nav-fix-pos-pagetop a {
    display: block;
    text-decoration: none;
    text-align: center;
    width: 50px; /*幅*/
    line-height: 50px; /*高さ*/
    z-index: 1;
    position: fixed;
    bottom: 20px; /*下から20pxの場所に配置*/
    right: 3%; /*右から3%の場所に配置*/
    background: #666; /*背景色（古いブラウザ用）*/
    background: rgba(
        0,
        0,
        0,
        0.6
    ); /*背景色。0,0,0は黒の事。0.6は60%色がついた状態。*/
    color: #fff; /*文字色*/
    border: 1px solid #fff; /*枠線の幅、線種、色*/
    animation-name: opa1; /*keyframes.cssで使う@keyframesの指定*/
    animation-duration: 1s; /*アニメーションの実行時間*/
    animation-fill-mode: both; /*アニメーションの待機中は最初のキーフレームを維持、終了後は最後のキーフレームを維持。*/
}
/*マウスオン時*/
body.is-fixed-pagetop .nav-fix-pos-pagetop a:hover {
    background: #999; /*背景色*/
}

/*ul.disc,olタグ
---------------------------------------------------------------------------*/
ul.disc {
    list-style: disc;
    padding: 0 3% 20px 6%;
}
ol {
    padding: 0 3% 20px 6%;
}

/*その他
---------------------------------------------------------------------------*/
.look {
    background: #333;
    border: 1px solid #ccc;
    display: inline-block;
    padding: 0px 10px !important;
    border-radius: 4px;
}
p.look {
    margin: 0 3%;
}
.mb15,
.mb1em {
    margin-bottom: 15px !important;
}
.mb20 {
    margin-bottom: 20px !important;
}
.mb30 {
    margin-bottom: 30px !important;
}
.mb50 {
    margin-bottom: 50px !important;
}
.clear {
    clear: both;
}
.color1,
.color1 a {
    color: #ffd93f !important;
}
.pr {
    font-size: 10px;
}
.wl {
    width: 96%;
}
.ws {
    width: 50%;
}
.c {
    text-align: center !important;
}
.r {
    text-align: right !important;
}
.l {
    text-align: left !important;
}
.fl {
    float: left;
}
.fr {
    float: right;
}
.big1 {
    font-size: 30px;
}
.mini1 {
    font-size: 11px;
    display: inline-block;
    line-height: 1.5;
}
.sh {
    display: none;
}

/*画面幅800px以下の設定
------------------------------------------------------------------------------------------------------------------------------------------------------*/
@media screen and (max-width: 800px) {
    /*全体の設定
---------------------------------------------------------------------------*/
    body {
        font-size: 2vw; /*文字サイズ*/
    }

    /*ヘッダー
---------------------------------------------------------------------------*/
    /*ヘッダーブロック*/
    header {
        border-bottom: 1px solid #ccc;
    }
    /*ヘッダーブロック（トップページへの追加設定）*/
    .home header {
        border: none;
    }

    /*メインメニュー
---------------------------------------------------------------------------*/
    /*スマホ用メニューブロック全体*/
    #menubar-s {
        overflow: auto;
        height: 100%;
        position: fixed;
        z-index: 100;
        top: 0px;
        width: 100%;
        background: rgba(0, 0, 0, 0.8); /*背景色*/
        border-top: 1px solid #fff; /*上の線の幅、線種、色*/
        animation-name: frame1; /*冒頭のkeyframesの名前*/
        animation-duration: 0.5s; /*アニメーションの実行時間。0.5秒。*/
        animation-fill-mode: both; /*待機中は最初のキーフレームを、完了後は最後のキーフレームを維持*/
        font-size: 16px; /*文字サイズ*/
    }
    #menubar-s li span {
        margin-left: 20px;
        font-size: 80%;
    }
    /*メニュー１個あたりの設定と、子メニューの見出し。*/
    #menubar-s ul li a,
    #menubar_hdr2 {
        display: block;
        text-decoration: none;
        padding: 30px 20px 30px 60px;
        border-bottom: 1px solid #fff; /*下の線の幅、線種、色*/
        color: #fff; /*文字色*/
    }
    /*PC用メニューを非表示にする*/
    #menubar {
        display: none;
    }

    /*子メニュー
---------------------------------------------------------------------------*/
    /*子メニューの見出しの追加。基本は上のブロックで設定しています。*/
    #menubar_hdr2 {
        padding-left: 60px; /*上にある「メニュー１個あたりの設定と、子メニューの見出し」の最後の数字（４つ目）に合わせる。*/
    }
    /*子メニューメニューブロック全体*/
    #menubar-s2 {
        display: block;
        margin-top: 10px;
        border-radius: 5px;
        background: rgba(0, 0, 0, 0.3);
        border: 1px solid #fff;
    }
    /*「＞」アイコン設定*/
    #menubar_hdr2.close {
        background: url(../images/arrow2.png) no-repeat 20px 35px / 18px;
    }
    /*「＾」アイコン設定*/
    #menubar_hdr2.open {
        background: url(../images/arrow3.png) no-repeat 20px 35px / auto 18px;
    }
    /*子メニュー１個あたりの設定*/
    #menubar-s2 li a {
        border-bottom: 1px solid #fff !important;
        padding: 10px 20px !important;
    }
    #menubar-s2 li:last-child a {
        border-bottom: none !important;
    }

    /*３本バーアイコン設定
---------------------------------------------------------------------------*/
    /*３本バーブロック*/
    #menubar_hdr {
        display: block;
        position: fixed;
        z-index: 100;
        top: 20px; /*上からの配置場所*/
        right: 2%; /*右からの配置場所*/
    }
    /*アイコン共通設定*/
    #menubar_hdr.close,
    #menubar_hdr.open {
        width: 50px; /*幅*/
        height: 50px; /*高さ*/
        border: 1px solid #fff;
    }
    /*三本バーアイコン*/
    #menubar_hdr.close {
        background: #000 url(../images/icon_menu.png) no-repeat center top/50px; /*背景色、背景画像の読み込み、画像の上半分（３本マーク）を表示。幅は50px。*/
    }
    /*閉じるアイコン*/
    #menubar_hdr.open {
        background: #000 url(../images/icon_menu.png) no-repeat center
            bottom/50px; /*背景色、背景画像の読み込み、画像の下半分（×マーク）を表示。幅は50px。*/
    }

    /*fixmenu設定（メニューが画面上部に到達した際のスタイル）
---------------------------------------------------------------------------*/
    /*fixmenuから折りたたみメニューになるのでリセット。*/
    body.is-fixed-menu #contents {
        margin-top: 0px;
    }
    body.is-fixed #contents {
        margin-top: 0px;
    }

    /*コンテンツ
---------------------------------------------------------------------------*/
    #contents {
        padding: 50px 0; /*上下、左右へのコンテンツ内の余白*/
    }
    /*h2タグ*/
    #contents h2 {
        margin-bottom: 50px;
    }

    /*list-column（トップページで使っている３列ブロック）
---------------------------------------------------------------------------*/
    /*ボックス内のh4（見出し）タグ*/
    #contents .list-column h4 {
        margin-bottom: 0px;
    }

    /*ヘッダーメニューが固定されなくなるので、再設定。
---------------------------------------------------------------------------*/
    .link {
        margin-top: -30px;
        padding-top: 30px;
    }

    /*その他
---------------------------------------------------------------------------*/
    body.s-n .sub,
    body.s-n #footermenu {
        display: none;
    }
    .big1 {
        font-size: 20px;
    }
}

/*画面幅480px以下の設定
------------------------------------------------------------------------------------------------------------------------------------------------------*/
@media screen and (max-width: 480px) {
    /*全体の設定
---------------------------------------------------------------------------*/
    body {
        font-size: 3vw;
    }

    /*コンテンツ
---------------------------------------------------------------------------*/
    /*h2タグ*/
    #contents h2 {
        margin-bottom: 30px;
    }
    /*h3タグ*/
    #contents h3 {
        margin-bottom: 20px;
    }
    #contents section + section {
        margin-top: 30px;
    }

    /*list（worksページで使っている横長ブロック）
---------------------------------------------------------------------------*/
    /*ボックス内のボタン（共通）*/
    .btn1 a {
        padding: 5px 10px; /*上下、左右へのボタン内の余白*/
    }

    /*テーブル（ta1）
---------------------------------------------------------------------------*/
    /*ta1設定*/
    .ta1,
    .ta1 td,
    .ta1 th {
        padding: 5px; /*ボックス内の余白*/
    }
    /*ta1の左側ボックス*/
    .ta1 th {
        width: 100px;
    }

    /*その他
---------------------------------------------------------------------------*/
    .ws,
    .wl {
        width: 94%;
    }
    .fl {
        float: none;
    }
    .fr {
        float: none;
    }
    .big1 {
        font-size: 16px;
    }
    .sh {
        display: block;
    }
    .pc {
        display: none;
    }
}

/* ==== コンテナを“画面幅いっぱい”にするユーティリティ ==== */
.full-bleed {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

/* ==== レール本体 ==== */
.thumbnail-rail {
    --cols: 3.8; /* 画面に見せたい枚数（3.8枚） */
    --gap: 16px; /* サムネ間の余白 */
    --dur: 22s; /* スクロールの速さ（小さいほど速い） */
    overflow: hidden;
    position: relative;
    padding-block: 6px;
}

/* マスクのフェードが原因で“消えてる”ように見えることがあるので無効化 */
.thumbnail-rail {
    -webkit-mask-image: none;
    mask-image: none;
}

/* ==== トラック（中身を全部まとめて左に流す） ==== */
.thumbnail-rail .track {
    display: flex;
    gap: var(--gap);
    width: max-content; /* 子要素幅の合計に広がる */
    animation: rail-scroll var(--dur) linear infinite;
    will-change: transform;
}

/* ==== 各アイテム：3.8枚見えるように幅を算出 ==== */
.thumbnail-rail .track > a {
    /* 1枚の幅 = (ビューポート幅 - 総ギャップ) / 列数  */
    --item-w: calc((100vw - (var(--cols) - 1) * var(--gap)) / var(--cols));
    flex: 0 0 var(--item-w);
    aspect-ratio: 4 / 3; /* 比率は好みで変更可（1/1 など） */
    border-radius: 10px;
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.thumbnail-rail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ホバーで一時停止（任意） */
.thumbnail-rail:hover .track {
    animation-play-state: paused;
}

/* ==== 無限ループアニメ（前半分だけ左へ流し、複製分で継ぎ目を消す） ==== */
@keyframes rail-scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(calc(-50% - var(--gap) / 2));
    }
}

/* 動きを減らす設定のユーザーには停止 */
@media (prefers-reduced-motion: reduce) {
    .thumbnail-rail .track {
        animation: none;
    }
}

/* レイアウトの器 */
.container {
    max-width: 1080px;
    margin-inline: auto;
    padding-inline: clamp(16px, 4vw, 32px);
}

/* ブロック全体 */
.about {
    display: grid;
    gap: clamp(32px, 6vw, 64px);
}

/* 2カラム（PC） */
.about-block {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(20px, 4vw, 36px);
    align-items: center;
    padding-block: clamp(32px, 6vw, 88px); /* 上下余白を増やす */
    min-height: clamp(360px, 48vh, 560px);
}

/* 交互に画像位置を反転（PC時） */
.about-block:nth-child(2n) {
    direction: rtl; /* 手早く左右を入れ替える */
    padding-block: clamp(32px, 6vw, 88px) !important; /* 上下余白を増やす */
    min-height: clamp(360px, 38vh, 560px) !important;
}
.about-block:nth-child(2n) > * {
    direction: ltr; /* 子要素の文字方向は戻す */
}

/* テキスト側 */
.about-title {
    font-size: clamp(20px, 2.2vw, 28px);
    line-height: 1.3;
    margin: 0 0 12px;
}
.about-lead {
    line-height: 1.9;
    margin: 0;
    color: #444;
}

/* 画像側 */
.about-media {
    border-radius: 12px;
    overflow: hidden;
    /* 比率を揃えたい場合は次行のコメントアウトを外す */
    /* aspect-ratio: 16 / 10; */
}
.about-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.about .about-block:nth-of-type(2) {
    position: relative;
    padding-block: clamp(16px, 3vw, 28px); /* 背景の上下余白 */
    /* PC時の2カラムやレスポンシブ指定は既存のままでOK */
}

/* 画面幅いっぱいの黒背景を疑似要素で敷く（中身はコンテナ幅のまま） */
.about .about-block:nth-of-type(2)::before {
    content: '';
    position: absolute;
    z-index: -1; /* 中身の背面に敷く */
    left: 50%;
    transform: translateX(-50%); /* どの幅のコンテナでも中央基準で展開 */
    top: 0;
    width: 100vw; /* 横いっぱい */
    height: 100%;
    background: #000;
}

/* pタグ（本文）を白に */
.about p {
    color: #fff;
}

/* スマホ：縦一列かつ「画像が上」 */
@media (max-width: 768px) {
    .about-block {
        grid-template-columns: 1fr;
    }
    .about-text {
        order: 2;
    }
    .about-media {
        order: 1;
    }
    /* 交互反転を無効化（縦並びでは不要） */
    .about-block:nth-child(2n) {
        direction: ltr;
    }
}

/* 画面中央に配置（縦横センター） */
#pg-contact {
    /* 横センター用 */
    max-width: 760px; /* お好みで */
    margin-inline: auto;
    padding: clamp(16px, 4vw, 32px);

    /* 縦センター用：ヘッダー/フッター高さがあれば変数で差し引き可能 */
    --header-h: 0px;
    --footer-h: 0px;
    min-height: calc(100svh - var(--header-h) - var(--footer-h));
    display: grid;
    align-content: center; /* 中身の塊を縦方向中央に */
    gap: clamp(16px, 3vw, 24px);
}

/* リード文は中央寄せ（任意） */
#pg-contact .lead {
    text-align: center;
    margin: 0;
}

/* 内側のレイアウト */
#pg-contact .form-inner {
    display: grid;
    gap: clamp(16px, 3vw, 24px);
}

/* フォーム本体 */
#pg-contact .contact-form {
    display: grid;
    gap: 16px;
}

/* 行ごとの並び（ラベル左・入力右にしたい場合はgrid化） */
#pg-contact .input-box {
    display: grid;
    grid-template-columns: 140px 1fr; /* ラベル幅はお好みで調整 */
    align-items: center;
    gap: 12px;
}

/* スマホでは縦並びに */
@media (max-width: 768px) {
    #pg-contact {
        max-width: 640px; /* 端末幅に合わせて少し広めでもOK */
    }
    #pg-contact .input-box {
        grid-template-columns: 1fr;
    }
}

/* 入力エリアの見た目（お好み） */
#pg-contact .input-area input,
#pg-contact .input-area textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font: inherit;
    box-sizing: border-box;
}

/* 送信ボタンを中央に */
#pg-contact .action-box {
    display: grid;
    place-items: center;
}
#pg-contact .action-box input[type='submit'] {
    padding: 12px 24px;
    border: none;
    border-radius: 999px;
    cursor: pointer;
}

/* 補足：注意書きの体裁 */
#pg-contact .note {
    text-align: center;
    opacity: 0.85;
}

/* 1行全体を中央に配置＆見やすい余白 */
.news-link {
    display: block;
    max-width: 720px; /* 横幅の上限 */
    margin: clamp(10px, 2.5vw, 16px) auto; /* 中央寄せ＋上下マージン */
    padding: clamp(14px, 2.2vw, 20px) clamp(16px, 3vw, 28px);
    text-decoration: none;
    color: inherit;
    border-radius: 12px;
    background: transparent;
    transition: transform 0.18s ease, box-shadow 0.18s ease,
        background 0.18s ease;
}

/* 中身を縦積みで中央寄せ、間隔を統一 */
.news-link .news-body {
    display: flex;
    flex-direction: column;
    align-items: center; /* 横中央 */
    text-align: center; /* テキスト中央 */
    gap: 0.5rem; /* time と title の間隔 */
}

/* 日付のスタイル（控えめに） */
.news-link .release {
    font-size: 0.9rem;
    opacity: 0.7;
    letter-spacing: 0.04em;
}

/* タイトルは少し強調 */
.news-link .title {
    font-size: clamp(1rem, 2.2vw, 1.15rem);
    font-weight: 600;
    line-height: 1.5;
    margin: 0;
}

/* ホバー／フォーカスの演出（任意） */
.news-link:hover {
    background: rgba(0, 0, 0, 0.04);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.news-link:focus-visible {
    outline: 3px solid #4096ff;
    outline-offset: 2px;
    background: rgba(64, 150, 255, 0.08);
}

/* ====== ベース：センタリングと横幅 ====== */
#pg-newsDetail .main-container {
    max-width: 840px;
    margin-inline: auto;
    padding: clamp(16px, 4vw, 40px) clamp(16px, 5vw, 48px);
}

/* ====== 記事カード ====== */
#pg-newsDetail .news {
    background: #fff;
    border-radius: 14px;
    padding: clamp(18px, 3.6vw, 36px);
    box-shadow: 0 6px 28px rgba(0, 0, 0, 0.06);
}

/* 日付とタイトル */
#pg-newsDetail .news .time {
    display: inline-block;
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    opacity: 0.7;
    margin-bottom: 0.4rem;
}
#pg-newsDetail .news .title {
    font-size: clamp(1.25rem, 2.6vw, 2rem);
    font-weight: 700;
    line-height: 1.35;
    margin: 0 0 clamp(12px, 2.2vw, 18px);
    text-wrap: balance;
}

/* 本文 */
#pg-newsDetail .news-body {
    margin-top: clamp(8px, 1.6vw, 14px);
}
#pg-newsDetail .news-body p {
    margin: 0 0 1.1em;
    line-height: 1.9;
    font-size: clamp(1rem, 1.2vw, 1.05rem);
    color: #333;
}

/* 本文内の要素いくつか */
#pg-newsDetail .news-body a {
    color: #0a66ff;
    text-decoration: underline;
}
#pg-newsDetail .news-body img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 1.25rem auto;
    border-radius: 10px;
}
#pg-newsDetail .news-body ul,
#pg-newsDetail .news-body ol {
    padding-left: 1.2em;
    margin: 0.8em 0 1.2em;
}
#pg-newsDetail .news-body blockquote {
    margin: 1.2em 0;
    padding: 0.8em 1em;
    border-left: 4px solid #e5e7eb;
    background: #fafafa;
    color: #444;
    border-radius: 8px;
}

/* ====== NEXT / PREV（下部ナビ） ====== */
#pg-newsDetail .more-news {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: clamp(16px, 3.2vw, 28px);
}
#pg-newsDetail .more-news .prev {
    justify-self: start;
}
#pg-newsDetail .more-news .next {
    justify-self: end;
}

/* ボタン見た目 */
#pg-newsDetail .another-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 10px 16px;
    border-radius: 999px;
    background: #f4f6f8;
    color: #111;
    text-decoration: none;
    border: 1px solid #e5e7eb;
    transition: transform 0.15s ease, box-shadow 0.15s ease,
        background 0.15s ease;
}
#pg-newsDetail .another-link:hover {
    background: #eef2f7;
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}
#pg-newsDetail .another-link:focus-visible {
    outline: 3px solid #4096ff;
    outline-offset: 2px;
}

/* ====== 余白や横幅の微調整（モバイル） ====== */
@media (max-width: 640px) {
    #pg-newsDetail .more-news {
        grid-template-columns: 1fr;
        text-align: center;
    }
    #pg-newsDetail .more-news .prev,
    #pg-newsDetail .more-news .next {
        justify-self: center;
    }
}

/* サムネイル */
#pg-newsDetail .news-thumb {
    margin: 0 0 clamp(12px, 2.2vw, 20px);
    border-radius: clamp(10px, 1.2vw, 14px);
    overflow: hidden;
    background: #f3f4f6; /* 画像が遅延中の背景 */
    aspect-ratio: 16 / 9; /* 比率固定：不要なら削除 */
}

#pg-newsDetail .news-thumb-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 小さめ画面では少し縦長比率にして見やすく */
@media (max-width: 640px) {
    #pg-newsDetail .news-thumb {
        aspect-ratio: 4 / 3;
    }
}

.detail_link {
    text-decoration: none;
}

/* グリッド配置 */
.product-grid {
    --gap: clamp(14px, 2.5vw, 24px);
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: var(--gap);
    max-width: 1200px;
    margin: 0 auto;
    padding: clamp(12px, 3vw, 24px);
}

/* ====== セクション全体 ====== */
.product-wrap {
    max-width: 1280px; /* セクションの最大幅 */
    margin: 0 auto; /* セクション自体も中央 */
    padding: clamp(20px, 5vw, 56px);
}

.product-heading {
    text-align: center;
    font-size: clamp(1.4rem, 3vw, 2rem);
    font-weight: 800;
    margin: 0 0 clamp(18px, 3.2vw, 28px);
}

/* ====== カード一覧（中央寄せ） ====== */
.product-grid {
    --gap: clamp(18px, 2.8vw, 28px);
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap);
    justify-content: center; /* 並び全体を中央に寄せるポイント */
    align-items: stretch;
}

/* ====== セクション全体 ====== */
.product-wrap {
    max-width: 1280px; /* セクションの最大幅 */
    margin: 0 auto; /* セクション自体も中央 */
    padding: clamp(20px, 5vw, 56px);
}

.product-heading {
    text-align: center;
    font-size: clamp(1.4rem, 3vw, 2rem);
    font-weight: 800;
    margin: 0 0 clamp(18px, 3.2vw, 28px);
}

/* ====== カード一覧（中央寄せ） ====== */
.product-grid {
    --gap: clamp(18px, 2.8vw, 28px);
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap);
    justify-content: center; /* 並び全体を中央に寄せるポイント */
    align-items: stretch;
}

/* ====== カード本体（サイズは固定幅＋可変） ====== */
.product-card {
    width: min(100%, 420px); /* 大きめカード。画面が狭ければ縮む */
    background: #fff;
    border: 1px solid #e7ebf0;
    border-radius: 16px;
    overflow: hidden;
    display: grid;
    grid-template-rows: auto auto; /* 上段:詳細（リンク）/ 下段:ボタン */
    transition: transform 0.18s ease, box-shadow 0.18s ease,
        border-color 0.18s ease;
}
.product-card:hover {
    transform: translateY(-4px);
    border-color: #dfe6ee;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.08);
}

/* クリック領域（画像〜説明まで一体リンク） */
.product-link {
    display: grid;
    grid-template-rows: auto auto 1fr;
    text-decoration: none;
    color: inherit;
    padding-bottom: clamp(6px, 1vw, 10px);
}

/* 画像（見栄え重視で16:10） */
.product-thumb {
    margin: 0;
    aspect-ratio: 16 / 10;
    background: #f5f7fa;
    overflow: hidden;
}
.product-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease;
}
.product-card:hover .product-thumb img {
    transform: scale(1.06);
}

/* タイトル・説明 */
.product-title {
    font-size: clamp(1.05rem, 1.8vw, 1.25rem);
    font-weight: 800;
    line-height: 1.35;
    margin: 12px 16px 6px;
    text-wrap: balance;
}
.product-desc {
    margin: 0 16px clamp(12px, 2vw, 16px);
    color: #475569;
    line-height: 1.9;
    font-size: clamp(0.98rem, 1.3vw, 1.05rem);
    display: -webkit-box;
    -webkit-line-clamp: 3; /* 3行で省略 */
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ====== 購入ボタン ====== */
.product-actions {
    padding: 0 clamp(12px, 2vw, 16px) clamp(10px, 2vw, 14px);
    display: grid;
}
.buy-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    max-width: 100%;
    padding: 10px 14px;
    border-radius: 999px;
    background: #111;
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    font-size: clamp(0.95rem, 1.4vw, 1rem);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
    transition: transform 0.15s ease, box-shadow 0.15s ease,
        background 0.15s ease;
}
.buy-btn:hover {
    background: #000;
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
}
.buy-btn:focus-visible {
    outline: 3px solid #4096ff;
    outline-offset: 2px;
}

/* ====== モバイル最適化 ====== */
@media (max-width: 640px) {
    .product-card {
        width: 100%;
    } /* 1列でも常に中央（親がcenterなのでOK） */
}

.product-link h3 {
    color: #000;
}

.product-contents .pcats-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 20px;
    justify-content: center;
    margin: 24px auto 32px;
    max-width: 1200px;
}
.product-contents .pcat {
    width: min(100%, 340px);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    text-decoration: none;
    color: black;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.05);
    transition: transform 0.18s ease, box-shadow 0.18s ease,
        border-color 0.18s ease;
    padding: 12px;
}
.product-contents .pcat:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.1);
    border-color: #dfe6ee;
}
.product-contents .pcat-thumb {
    margin: 0;
    width: 100%;
    aspect-ratio: 16/9;
    background: #f5f7fa;
    overflow: hidden;
    border-radius: 10px;
}
.product-contents .pcat-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease;
}
.product-contents .pcat:hover .pcat-thumb img {
    transform: scale(1.05);
}
.product-contents .pcat-title {
    margin-top: 10px;
    font-weight: 800;
    font-size: 1.1rem;
}
.product-contents .pcat-desc {
    margin-top: 4px;
    opacity: 0.75;
    line-height: 1.7;
    font-size: 0.95rem;
}
