/* SNSシェアボタン　***********/
.heateor_sss_sharing_container {
display: flex;
justify-content: flex-end; /* 右寄せ */
width: 100%;               /* 親要素いっぱいに広げて右端まで持っていく */
margin: 10px 0;            /* 上下に余白 */
}
.share-center {
display: flex;
justify-content: center;
margin: 50px auto 0 auto;
width: 100%;
}
.share-center .heateor_sss_sharing_container {
display: block;
text-align: center;
margin: 0px auto 0 auto;
}
div.heateor_sss_follow_ul a,
div.heateor_sss_horizontal_sharing div.heateor_sss_sharing_ul a {
float: none;
}

/* SNSシェアボタン　***********/

/* カテゴリボタン　***********/
ol.category_bt {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
margin: 20px 0 0 0;
}
ol.category_bt li {
display: grid;
place-content: center;
margin-right: 5px;
}
ol.category_bt li.current {
background-color: #d0121b;
border: 1px solid #d0121b;
color: #FFF;
padding: 1em;
box-sizing: border-box;
}
ol.category_bt li a {
display: block;
width: 100%;
border: 1px solid #d0121b;
padding: 1em;
box-sizing: border-box;
}
ol.category_bt li a:hover {
background-color: #d0121b;
color: #FFF;
}
@media screen and (min-width: 0px) and (max-width: 640px) {
ol.category_bt {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
margin: 20px 0 0 0;
}
ol.category_bt li {
display: grid;
place-content: center;
margin: 0 5px 5px 0;
}
ol.category_bt li.current {
background-color: #d0121b;
border: 1px solid #d0121b;
color: #FFF;
padding: 0.5em;
box-sizing: border-box;
}
ol.category_bt li a {
display: block;
width: 100%;
border: 1px solid #d0121b;
padding: 0.5em;
box-sizing: border-box;
}
ol.category_bt li a:hover {
background-color: #d0121b;
color: #FFF;
}
}

/* ブログ　コラム　メディア　***********/
#column {
margin: 20px auto 100px auto;
}
#column h1 {
text-align: center;
padding-bottom: 5rem;
font-size: 1.8rem;
line-height: 1.5em;
font-weight: 500;
}
#column ul,
#related_posts ul {
--gap: 30px;
display: flex;
flex-wrap: wrap;
gap: var(--gap);             /* 要素間の隙間はgapで管理 */
justify-content: flex-start; /* 左詰めベース */
margin: 50px auto 0;
padding: 0;
list-style: none;
}
#column ul li,
#related_posts ul li {
flex: 0 1 calc((100% - (var(--gap) * 2)) / 3);
margin: 0;/* 余白はgapで統一 */
display: flex;/* 中身の高さ揃え用なら残す */
}
#column ul li a,
#related_posts ul li a{
color: #000;
display: block;
box-shadow:0px 0px 3px 2px rgba( 0, 0, 0, 0.3);
flex: 1;
}
#column ul li a:hover,
#related_posts ul li a:hover {
opacity: .70;
}
#column ul li .image,
#related_posts ul li .image {
position: relative;
display: block;
line-height: 0;
max-height: 285px;
overflow: hidden;
margin-bottom: 1em;
}
#column ul li .image img,
#related_posts ul li .image img {
aspect-ratio: 4 / 3;
width: 100%;
object-fit: cover;
}
#related_posts ul li .image img {
aspect-ratio: 16 / 9;
}
#column ul li h3,
#related_posts ul li h3 {
font-size: 20px;
line-height: 1.5em;
font-weight: 700;
margin: 0em 1em 0.5em 1em;
}
#column ul li p,
#related_posts ul li p {
font-size: 16px;
line-height: 1.6em;
display: inline-block;
color: #737373;
padding: 0 1.2em 0 1.2em;
margin: 0px 0 1em 0em;
height: 6.5em;
overflow: hidden;
text-overflow: ellipsis;
}
#column ul li p.type,
#related_posts ul li p.type {
font-size: 14px;
line-height: 1.2em;
display: inline-block;
color: #d0121b;
border: 1px solid #d0121b;
padding: 0.1em 0.5em 0.1em 0.5em;
margin: 0px 0 1em 1.5em;
height: auto;
}
#column ul li p.update,
#related_posts ul li p.update {
text-align: right;
display: block;
margin: 0.5em 0em 1em auto;
height: auto;
}

#contact_area {
margin: 50px auto 0 auto;
text-align: center;
}

#related_posts {
margin: 0px auto 100px auto;
}
#related_posts h5 {
padding-bottom: 1.8rem;
border-bottom: 5px solid #d0121b;
font-size: 3rem;
font-weight: 700;
line-height: 1.5;
text-align: left;
}

@media (max-width: 1024px) {
#column ul li,
#related_posts ul li{
    flex-basis: calc((100% - var(--gap)) / 2);
  }
}
@media (max-width: 640px) {
#column ul li,
#related_posts ul li{
flex-basis: 100%;
}
#column ul li h3,
#related_posts ul li h3 {
font-size: 16px;
line-height: 1.3em;
}
#column ul li p,
#related_posts ul li p {
font-size: 14px;
line-height: 1.3em;
padding: 0 1.2em 0 1.2em;
margin: 0px 0 0em 0em;
height: 4em;
overflow: hidden;
text-overflow: ellipsis;
}
#column ul li p.type,
#related_posts ul li p.type {
font-size: 13px;
line-height: 1.2em;
margin: 0px 0 0.5em 1em;
height: auto;
}
#column ul li p.update,
#related_posts ul li p.update {
text-align: right;
display: block;
margin: 0.5em 0em 1em auto;
height: auto;
}
#related_posts ul {
margin: 20px auto 0 auto;
}
#related_posts {
width: 90%;
margin: 0px auto 0 auto;
}
#related_posts h5 {
padding-bottom: 1rem;
border-bottom: 2px solid #d0121b;
font-size: 1.8rem;
font-weight: 700;
line-height: 1.5;
text-align: center;
}
}
/* ブログ　コラム　***********/

/* 動画コンテンツ　***********/
#movie_media {
margin: 70px auto 100px auto;
}
#movie_media h1 {
padding-bottom: 1.8rem;
border-bottom: 5px solid #d0121b;
font-size: 3.6rem;
font-weight: 700;
line-height: 1.5;
}
#movie_media ul {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin: 50px auto 0 auto;
}
#movie_media ul:after {
display: block;
content:"";
width: 31%;
}
#movie_media ul li {
width: 31%;
margin-bottom: 30px;
display: flex;
}
#movie_media ul li a {
color: #000;
display: block;
box-shadow:0px 0px 3px 2px rgba( 0, 0, 0, 0.3);
flex: 1;
}
#movie_media ul li a:hover {
opacity: .70;
}
#movie_media ul li .video-thumb{
position: relative;
display: inline-block;
line-height: 0;
overflow: hidden;
isolation: isolate;
}
/* 中央の丸＋三角（擬似要素で） */
.video-thumb::after{
content: "";
position: absolute;
inset: 50%;
translate: -50% -50%;
inline-size: 78px;
block-size: 78px;
border-radius: 50%;
background: rgba(0,0,0,.6);
box-shadow: 0 8px 24px rgba(0,0,0,.35), inset 0 0 0 2px rgba(255,255,255,.85);
}
/* 三角は ::before で描画 */
.video-thumb::before{
content: "";
position: absolute;
inset: 50%;
translate: calc(-50% + 4px) -50%; /* 視覚中心に補正 */
inline-size: 0;
block-size: 0;
border-style: solid;
border-width: 14px 0 14px 24px;
border-color: transparent transparent transparent #fff;
filter: drop-shadow(0 1px 1px rgba(0,0,0,.2));
z-index: 10;
}
/* ホバー時の軽い演出（パルス＆ズーム） */
.video-thumb:hover::after{ scale: 1.1; transition: scale .18s ease; }
.video-thumb:hover img{ transform: scale(1.1); transition: transform .25s ease; }
/* 自動パルス（動きが苦手な方配慮） */
@media (prefers-reduced-motion: no-preference){
.video-thumb::after{
animation: pulse 1.8s ease-in-out infinite;
}
@keyframes pulse{
0%,100%{ box-shadow: 0 8px 24px rgba(0,0,0,.35), inset 0 0 0 2px rgba(255,255,255,.85); }
50%    { box-shadow: 0 8px 24px rgba(0,0,0,.45), inset 0 0 0 2px rgba(255,255,255,.85), 0 0 0 10px rgba(255,255,255,.15); }
}
}
#movie_media ul li h3 {
font-size: 18px;
line-height: 1.5em;
font-weight: 700;
margin: 0.2em 1em 0.7em 1em;
}
#movie_media ul li p {
font-size: 14px;
line-height: 1.8em;
border: 1px solid #BFBFBF;
display: inline-block;
padding: 0em 0.7em 0em 0.7em;
color: #737373;
margin: 0px 0 1.5em 1.5em;
}

#movie_page {}
#movie_page #explanation {
background-color: #efeeee;
padding: 1.5em;
}
#movie_page #explanation h3 {
border-bottom: none;
border-left: 5px solid #d0121b;
padding: 0 0 0 0.5em;
margin: 0;
line-height: 1.4em;
}
#movie_page #explanation p {
color: #585858;
}
#movie_page .tag {}
#movie_page .tag ul {
list-style: none;
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
margin: 0px;
padding: 0;
}
#movie_page .tag ul li {
list-style: none;
background-color: #efeeee;
margin-right: 1em;
}
#movie_page .tag ul li a {
display: block;
color: #000;
padding: 0.1em 0.5em 0.2em 0.5em;
}
#movie_page .tag ul li a:hover {
background-color: #d0121b;
color: #FFF;
}

#consultation {
text-align: center;
margin: 50px 0 0px 0;
}
#consultation .productsSingleCTA__ttl {}
#consultation a {
margin-top: 20px;
}

#related_products h5 {
padding-bottom: 1.8rem;
border-bottom: 2px solid #d0121b;
font-size: 2.5rem;
font-weight: 700;
line-height: 1.5;
text-align: left;
}
.productsSingleRelate {
margin: 100px auto 0 auto;
}
.productsSingleRelate .proItem__img {
display: block;
margin: 0px auto 0 auto;
text-align: center;
}
.productsSingleRelate .proItem__img img {
width: 60%;
height: auto;
object-fit: cover;
margin: 0px auto 0 auto;
text-align: center;
}
#movie_page #related_posts {
margin: 100px auto 0 auto;
}
#related_posts ul li .image {
max-height: 220px;
}
#related_posts ul li .image img {
aspect-ratio: 16 / 9;
width: 100%;
object-fit: cover;
height: auto;
}
#related_posts ul li p {
max-height: 5em;
height: auto;
}

@media screen and (min-width: 0px) and (max-width: 640px) {
#movie_media {
margin: 30px auto 0 auto;
}
#movie_media h1 {
padding-bottom: 1.2rem;
border-bottom: 2px solid #d0121b;
font-size: 18px;
}
#movie_media ul {
margin: 20px auto 0 auto;
}
#movie_media ul:after {
width: 48%;
}
#movie_media ul li {
width: 48%;
}
#movie_media ul li a {
color: #000;
}

.video-thumb::after{
content: "";
position: absolute;
inset: 50%;
translate: -50% -50%;
inline-size: 40px;
block-size: 40px;
border-radius: 50%;
background: rgba(0,0,0,.6);
box-shadow: 0 8px 24px rgba(0,0,0,.35), inset 0 0 0 2px rgba(255,255,255,.85);
}
/* 三角は ::before で描画 */
.video-thumb::before{
content: "";
position: absolute;
inset: 49%;
translate: calc(-50% + 4px) -50%; /* 視覚中心に補正 */
inline-size: 0;
block-size: 0;
border-style: solid;
border-width: 10px 0 10px 16px;
border-color: transparent transparent transparent #fff;
filter: drop-shadow(0 1px 1px rgba(0,0,0,.2));
z-index: 10;
}

#movie_media ul li h3 {
font-size: 16px;
line-height: 1.3em;
font-weight: 700;
margin: 0.2em 0.5em 0.7em 0.5em;
}
#movie_media ul li p {
font-size: 13px;
line-height: 1.2em;
border: 1px solid #BFBFBF;
display: inline-block;
padding: 0em 0.3em 0em 0.3em;
color: #737373;
margin: 0px 0 0.5em 0.5em;
}
.NewsSingle .movie_area {}
iframe[src*='youtube.com'],
iframe[src*='youtube-nocookie.com'],
iframe[src*='youtu.be'] {
  width: 100%;
  height: calc(56.25vw * .9);
}
}
/* 動画コンテンツ　***********/

/* ホワイトペーパー　***********/
#white_paper {
margin: 70px auto 100px auto;
}
#white_paper h1 {
padding-bottom: 1.8rem;
border-bottom: 5px solid #d0121b;
font-size: 3.6rem;
font-weight: 700;
line-height: 1.5;
}
#white_paper ul {
--gap: 30px;
display: flex;
flex-wrap: wrap;
gap: var(--gap);             /* 要素間の隙間はgapで管理 */
justify-content: flex-start; /* 左詰めベース */
margin: 50px auto 0;
padding: 0;
list-style: none;
}
#white_paper ul li {
flex: 0 1 calc((100% - (var(--gap) * 2)) / 3);
margin: 0;/* 余白はgapで統一 */
display: flex;/* 中身の高さ揃え用なら残す */
flex-direction: column;
}
#white_paper ul li a {
color: #000;
display: block;
box-shadow:0px 0px 3px 2px rgba( 0, 0, 0, 0.3);
flex: 1;
}
#white_paper ul li a:hover {
opacity: .70;
}
#white_paper ul li .image{
position: relative;
display: inline-block;
line-height: 0;
overflow: hidden;
max-height: 250px;
}
#white_paper ul li .image img {
aspect-ratio: 4 / 3;
width: 100%;
object-fit: cover;
}
#white_paper ul li h3 {
font-size: 20px;
line-height: 1.5em;
font-weight: 700;
margin: 0.5em 1em 0.5em 1em;
}
#white_paper ul li p {
font-size: 16px;
line-height: 1.6em;
display: inline-block;
color: #737373;
padding: 0 1.2em 0 1.2em;
margin: 0px 0 1em 0em;
height: 6em;
overflow: hidden;
text-overflow: ellipsis;
}
#white_paper ul li p.bt {
text-align: center;
color: #FFF;
background-color: #d0121b;
font-size: 18px;
line-height: 1.5em;
border: 1px solid #d0121b;
box-sizing: border-box;
padding: 0.6em 0 0.8em 0;
margin: 1em auto 20px auto;
max-width: 300px;
width: 80%;
transition: ease 0.2s;
display: block;
height: auto;
}
#white_paper ul li a:hover p.bt  {
background-color: #FFF;
color: #d0121b;
border: 1px solid #d0121b;
}
@media (max-width: 1024px) {
  #white_paper ul li {
    flex-basis: calc((100% - var(--gap)) / 2);
  }
}
@media (max-width: 640px) {
  #white_paper ul li {
    flex-basis: 100%;
  }
}
/* ホワイトペーパー　***********/



/* コンテンツプリント　***********/
#contents_print {
margin: 30px auto 100px auto;
}
#contents_print p {
font-size: 16px;
line-height: 1.6em;
}
#contents_print p b {}
#contents_print h1 {
padding-bottom: 1.8rem;
border-bottom: 5px solid #d0121b;
font-size: 3.6rem;
font-weight: 700;
line-height: 1.5;
margin-top: 1em;
}
#contents_print dl.navi {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
margin: 40px auto 0 auto;
}
#contents_print dl.navi dd {
width: 19%;
}
#contents_print dl.navi dd a {
border: 1px solid #d0121b;
color: #d0121b;
text-align: center;
font-size: 18px;
ine-height: 1.5em;
display: block;
padding: 0.2em 0 0.3em 0;
}
#contents_print dl.navi dd a:hover {
background-color: #d0121b;
color: #FFF;
}
#contents_print h4 {
font-size: 20px;
line-height: 1.6em;
font-weight: 700;
margin: 30px 0 0 0;
}
#contents_print ul {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin: 20px auto 0;
padding: 0;
list-style: none;
}
#contents_print ul li {
width: 48%;
margin-bottom: 30px;
line-height: 0;
display: block;
}
#contents_print ul li img {
box-shadow:0px 0px 3px 2px rgba( 0, 0, 0, 0.3);
}
#contents_print ul li p {
font-size: 13px;
line-height: 1.5em;
padding: 0.3em;
}
#contents_print ul li h3 {
font-size: 18px;
line-height: 1.5em;
font-weight: 700;
margin: 0.5em 0em 0.5em 0em;
text-align: center;
}
#contents_print .bt {
margin: 40px auto 0 auto;
text-align: center;
}
#contents_print .bt a {
font-size: 26px;
line-height: 1.5em;
background-color: #d0121b;
color: #FFF;
display:block;
margin: 0px auto 0 auto;
padding: 0.7em 3em 0.5em 3em;
}
#contents_print .bt a:hover {
border: 1px solid #d0121b;
color: #d0121b;
background-color: #FFF;
}
@media screen and (min-width: 0px) and (max-width: 640px) {
#contents_print h1 {
font-size: 2.5rem;
}
#contents_print dl.navi {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
margin: 20px auto 0 auto;
}
#contents_print dl.navi dd {
width: 48%;
margin-bottom: 10px;
}
#contents_print dl.navi dd a {
border: 1px solid #d0121b;
color: #d0121b;
text-align: center;
font-size: 14px;
ine-height: 1.5em;
display: block;
padding: 0.2em 0 0.3em 0;
}
#contents_print ul {
display: block;
margin: 20px auto 0;
padding: 0;
list-style: none;
}
#contents_print ul li {
width: 100%;
margin-bottom: 10px;
line-height: 0;
display: block;
padding: 0 0 1em 0;
}
#contents_print ul li img {
box-shadow:0px 0px 3px 2px rgba( 0, 0, 0, 0.3);
}
#contents_print ul li p {
font-size: 12px;
line-height: 1.3em;
padding: 0.3em;
}
#contents_print ul li h3 {
font-size: 16px;
line-height: 1.3em;
font-weight: 700;
margin: 0.5em 0em 0em 0em;
text-align: center;
}
#contents_print .bt {
margin: 40px auto 0 auto;
text-align: center;
width: 70%;
}
#contents_print .bt a {
font-size: 18px;
line-height: 1.5em;
background-color: #d0121b;
color: #FFF;
display:block;
width: 100%;
margin: 0px auto 0 auto;
padding: 0.7em 0em 0.5em 0em;
}
/* コンテンツプリント　***********/
