
/* ---------- Page title ---------- */
#main_title {
background-image: url("../image/product_title.jpg");
height: 40px;
}
/* ---------- 印刷用 ---------- */
@media print {
#features .box p {
font-size: 8pt !important;
}
#spec .body table,
#spec .body th,
#spec .body td {
font-size: 8pt !important;
padding: 0.1em;
}
#product.detail h1 {
font-size: 11pt !important;
line-height: 1.2em !important;
padding: 0.2em !important;
}
#slide {
width: 70% !important;
max-width: 100% !important;
margin: 0px auto 0px auto !important;
}
.slider-for {
width: 100% !important;
max-width: auto !important;
}
.slider-for img {
width: 50% !important;
height: auto;
object-position: center;
display: block;
margin: 0px auto 0 auto;
}
.slider-for .slick-prev,
.slider-for .slick-next {
display: none !important;
}
#features {
margin: 10px 0 0 0 !important;
}
#spec {
margin: 10px auto 0 auto !important;
text-align: center;
}
#spec .body { 
margin: 10px auto 0 auto !important;
text-align: left;
width: 100% !important;
max-width: 100% !important;
}
}
/* ---------- Product header ---------- */
#product {
max-width: 1200px;
width: 90%;
margin: 0px auto 80px auto;
text-align: left;
}
#product h3 {
font-size: clamp(1rem, 0.727rem + 1.36vw, 1.75rem);
line-height: 1em;
font-family: ryo-gothic-plusn, sans-serif;
font-weight: 500;
font-style: normal;
color: #039d85;
text-align: center;
position: relative;
display: flex;
align-items: center;
}
#product h3:before,
#product h3:after {
content: "";
height: 1px;
flex-grow: 1;
background-color: #666;
}
#product h3:before { margin-right: 1rem; }
#product h3:after  { margin-left: 1rem; }

#product p.subtitle {
font-size: clamp(0.75rem, 0.682rem + 0.34vw, 0.938rem);
line-height: 1.7em;
display: block;
font-weight: normal;
font-family: source-han-sans-jp-variable, sans-serif;
font-variation-settings: "wght" 500;
color: #A3A3A3;
text-align: center;
margin: 5px auto 0 auto;
}

/* ---------- Buttons ---------- */

@media screen and (min-width: 641px),print {
#product_bt { 
position: fixed;
right: 0;
top: 15%;
z-index: 8000;
}
#product_bt ul {
align-items: center;
margin: 0px auto 0 auto;
}
#product_bt ul li {
margin-bottom: 20px;
}
#product_bt ul li a {
writing-mode: vertical-rl;
text-orientation: upright;
font-size: clamp(1rem, 0.909rem + 0.45vw, 1.25rem);
line-height: 1.5em;
color: #FFF;
display: block;
text-align: center;
text-decoration: none;
padding: 2em 0.7em 2em 0.7em;
background-color: #202A8A;
position: relative;
border: 1px solid #FFF;
border-right: none;
box-sizing: border-box;
}
#product_bt ul li.mail a {
padding: 1em 0.7em 1.5em 0.8em;
}
#product_bt ul li a:before {
content: '';
display: inline-block;
width: 20px;
height: 15px;
background-image: url("../image/icon_mail.png");
background-size: contain;
vertical-align: middle;
position: relative;
margin: 0px 0 10px 0;
left: -5px;
}
#product_bt ul li.pdf a:before {
width: 25px;
height: 25px;
background-image: url("../image/icon_pdf.png");
left: -4px;
}
#product_bt ul li.mail a { background-color: #FF7E00; }
#product_bt ul li a:hover { background-color: #FF0004; }

/* ---------- Product detail ---------- */
#product.detail {}
#product.detail .new {
background-color: #DCFFFB;
padding: 1em;
margin: 0 0 2em 0;
}
#product.detail .new p {
font-size: clamp(1rem, 0.818rem + 0.91vw, 1.3rem);
line-height: 1.7em;
}
#product.detail h1 {
font-size: clamp(1.125rem, 0.807rem + 1.59vw, 2rem);
line-height: 1.5em;
position: relative;
padding: 0.3em 0 0.3em 0.5em;
border-left: 5px solid #039d85;
background-color: #F6F6F6;
}
}

/* =======================================================
Sliders (gallery area)
======================================================= */
#slide {
max-width: 1200px;
margin: 10px auto 80px auto;
}

/* --- Main slider --- */
.slider-for {
width: 70%;
max-width: 500px;
margin: 0 auto;
display: flex;
justify-content: center;
}
.slider-for img {
width: 100%;
height: auto;
object-position: center;
display: block;
}

/* --- Thumbnail slider (.slider-nav) --- */
.slider-nav {
width: 70%;
max-width: 600px;
margin: 0px auto 0;
position: relative;
display: flex;
overflow: visible;
}
.slider-nav .slick-list { overflow: hidden; }

.slider-nav .thumb {
width: 150px;
padding: 7px;
box-sizing: border-box;
}
.slider-nav img {
aspect-ratio: 4 / 3;
width: 100%;
object-fit: cover;
display: block;
cursor: pointer;
opacity: 0.7;
transition: opacity .3s, transform .3s;
box-sizing: border-box;
border: 2px solid #FFF;
}
.slider-nav .slick-current img {
opacity: 1;
transform: scale(1.05);
border: 2px solid #007bff;
}

/* =======================================================
Slick arrows (always visible) — unified & optimized
======================================================= */
/* 共通スタイル */
.slider-nav .slick-prev,
.slider-nav .slick-next,
.related-slider .slick-prev,
.related-slider .slick-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1000;
  width: 48px;
  height: 48px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.4);
  color: #fff;
  cursor: pointer;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transition: background .25s, transform .2s, box-shadow .25s !important;
}
/* メイン画像の矢印 */
.slider-for .slick-prev,
.slider-for .slick-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(0,0,0,0.4);
  color: #fff;
  display: flex !important;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .25s, transform .2s, box-shadow .25s !important;
}
.slider-for .slick-prev { 
left: -100px;
}
.slider-for .slick-next { 
right: -100px;
}
.slider-for .slick-prev:hover,
.slider-for .slick-next:hover {
  background: rgba(0,0,0,0.7);
}
.slider-for svg,
.related-slider svg{
  width: 28px;
  height: 28px;
}
/* デフォルト矢印テキスト非表示 */
.slider-for .slick-prev::before,
.slider-for .slick-next::before,
.slider-nav .slick-prev::before,
.slider-nav .slick-next::before,
.related-slider .slick-prev::before,
.related-slider .slick-next::before {
  content: none !important;
}
/* 左右位置 */
.slider-nav .slick-prev { 
left: -80px; 
}
.related-slider .slick-prev {
left: -0px; 
}
.slider-nav .slick-next { 
right: -80px;
}
.related-slider .slick-next {
right: -0px;
}
/* ホバー時 */
.slider-for .slick-prev:hover,
.slider-for .slick-next:hover,
.related-slider .slick-prev:hover,
.related-slider .slick-next:hover {
  background: rgba(0, 123, 255, 0.9);
  transform: translateY(-50%) scale(1.1);
  box-shadow: 0 0 12px rgba(0, 123, 255, 0.6);
}
/* disabledでも非表示にしない */
.slick-arrow.slick-disabled {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
/* Slickの遅延フェード対策 */
.slick-slider .slick-arrow {
  transition-delay: 0s !important;
}



/* =======================================================
Responsive
======================================================= */
@media (max-width: 768px) {
.slider-nav .thumb { width: 120px; }
.slider-nav img   { height: 60px; }

.slider-for .slick-prev,
.slider-for .slick-next,
.related-slider .slick-prev,
.related-slider .slick-next {
width: 30px;
height: 30px;
}
.slider-nav .slick-prev svg,
.slider-nav .slick-next svg,
.related-slider .slick-prev svg,
.related-slider .slick-next svg {
width: 20px;
height: 20px;
}
.slider-for .slick-prev,
.related-slider .slick-prev { left: -32px; }
.slider-for .slick-next,
.related-slider .slick-next { right: -32px; }
}

@media (max-width: 640px) {
.slider-nav .thumb { width: 110px; }
.slider-nav img   { height: 80px; }
.slider-for .slick-prev,
.slider-for .slick-next,
.related-slider .slick-prev,
.related-slider .slick-next {
width: 26px;
height: 26px;
}
.slider-for .slick-prev svg,
.slider-for .slick-next svg,
.related-slider .slick-prev svg,
.related-slider .slick-next svg {
width: 18px;
height: 18px;
}
.slider-for .slick-prev,
.related-slider .slick-prev { left: -28px; }
.slider-for .slick-next,
.related-slider .slick-next { right: -28px; }
}


@media screen and (min-width: 641px),print {

/* =======================================================
Features / Points / Spec (kept as-is)
======================================================= */
#features { margin: 50px 0 0 0; }
#features .box { background-color: #EDEDED; padding: 1.4em; margin: 20px auto 0 auto; }
#features .box p {
font-size: clamp(0.875rem, 0.784rem + 0.45vw, 1.125rem);
line-height: 1.8em;
}

#point { margin: 80px auto 0 auto; }
#point dl { margin: 0; padding: 0; }
#point dl, #point .box, #point dt, #point dd { box-sizing: border-box; }
#point dt, #point dd { margin: 0; }
#point .box {
display: flex;
align-items: flex-start;
gap: 1.6rem;
margin-block: 1.2rem;
}
#point .box:nth-child(even){ flex-direction: row-reverse; text-align: left; }
#point dt { flex: 0 0 clamp(220px, 28vw, 360px); margin-bottom: 40px; }
#point dt img { display: block; width: 100%; height: auto; }
#point dd { flex: 1 1 auto; min-width: 0; line-height: 1.75; overflow-wrap: anywhere; margin-bottom: 40px; }
#point dd h4 {
font-size: clamp(1rem, 0.932rem + 0.34vw, 1.188rem);
line-height: 1.7em;
font-weight: 700;
margin: 0 0 .5rem;
}
#point dd p {
font-size: clamp(0.875rem, 0.807rem + 0.34vw, 1.063rem);
line-height: 1.7em;
}
@media (max-width: 640px){ #point .box{ flex-direction: column; } #point dt{ flex-basis: auto; } }

#spec {
margin: 100px auto 0 auto; text-align: center;
}
#spec .body { 
margin: 50px auto 0 auto;
text-align: left;
width: 90%;
max-width: 1000px;
}
#spec .body h4 {
font-size: clamp(1rem, 0.932rem + 0.34vw, 1.188rem);
line-height: 1.7em;
font-weight: 700;
color: #202A8A;
}
#spec .body em {
font-style: normal;
}
#spec .body strong {
font-weight: 700;
}
#spec .body table {
font-size: clamp(0.875rem, 0.83rem + 0.23vw, 1rem);
line-height: 1.7em;
border-collapse: collapse;
margin: 0px auto 40px auto;
width: 100% !important;
}
#spec .body th {
font-size: clamp(0.875rem, 0.83rem + 0.23vw, 1rem);
font-weight: 700;
background-color: #F6F6F6;
border: 1px solid #EAEAEA;
box-sizing: border-box;
padding: 0.5em;
}
#spec .body td {
padding: 0.5em 1em 0.5em 1em;
border: 1px solid #EAEAEA;
box-sizing: border-box;
}

#spec .box .bt { margin: 30px auto 100px auto; width: 50%; max-width: 400px; }
#spec .box .bt a {
font-size: clamp(1rem, 0.909rem + 0.45vw, 1.25rem);
line-height: 1.7em;
color: #FFF;
display: block;
text-align: center;
text-decoration: none;
padding: 0.8em 0;
background-color: #202A8A;
position: relative;
}
#spec .box .bt a:before {
content: '';
display: inline-block;
width: 30px; height: 30px;
background-image: url("../image/icon_pdf.png");
background-size: contain;
vertical-align: middle;
margin-right: 10px;
position: relative; top: -2px;
}
#spec .box .bt a:hover { background-color: #FF0004; }
}


/* ---------- Catalog DL ---------- */
#catalog_dl {
padding-top: 50px;
margin: 100px auto 0 auto;
}
#catalog_dl dl {
font-size: clamp(0.813rem, 0.744rem + 0.34vw, 1rem);
line-height: 1.3em;
display: flex;
flex-wrap: nowrap;
justify-content: space-between; align-items: center;
width: 90%;
max-width: 1000px;
border: 1px solid #E6E6E6;
margin: 0px auto 0 auto;
box-sizing: border-box;
}
#catalog_dl dl:nth-of-type(1) { margin: 50px auto 0 auto; }
#catalog_dl dl:nth-of-type(odd) { background-color: #F4F4F4; }
#catalog_dl dt {
box-sizing: border-box; text-align: left; padding: 0.5em 1em;
border-right: 1px solid #E6E6E6; width: 20%; max-width: 200px;
}
#catalog_dl dd { text-align: left; padding: 0.5em 1em; border-right: 1px solid #E6E6E6; }
#catalog_dl dd:nth-of-type(1) { width: 52%; max-width: 520px; }
#catalog_dl dd:nth-of-type(2) { width: 13%; max-width: 130px; }
#catalog_dl dd:nth-of-type(3) { width: 15%; max-width: 150px; border-right: none; }
#catalog_dl dd a {
font-size: clamp(0.875rem, 0.83rem + 0.23vw, 1rem);
line-height: 1.3em;
color: #FFF; display: block; text-align: center; text-decoration: none;
padding: 0.4em 1em; background-color: #202A8A; position: relative;
}
#catalog_dl dd a:hover { background-color: #FF0004; }

/* ======================================
Related products (slider container)
====================================== */
#similar {
margin: 100px auto;
}
.related-products {
width: 100%;
margin: 60px auto;
text-align: center;
}
.related-products h2 {
font-size: 1.4rem;
margin-bottom: 20px;
color: #333;
}
.related-slider { 
position: relative;
margin: 40px auto 0 auto;
} 
/* Items */
.related-slider .item { padding: 10px; }
.related-slider a {
display: block;
text-decoration: none;
color: #000;
padding: 1em;
}
.related-slider a:hover {
}
.related-slider h6 {
font-size: clamp(0.875rem, 0.739rem + 0.68vw, 1.25rem);
line-height: 1.7em;
font-weight: 500;
}
.related-slider img {
width: 100%;
height: 180px;
object-fit: contain;
border-radius: 8px;
transition: transform 0.3s ease;
}
.related-slider img:hover { transform: scale(1.05); }
.related-slider p {
margin-top: 10px;
font-size: clamp(0.813rem, 0.767rem + 0.23vw, 0.938rem);
line-height: 1.5em;
text-align: left;
color: #333;
}


@media screen and (min-width: 0px) and (max-width: 640px) {
#main_title {
height: 0;
}
#product {
max-width: 100%;
width: 90%;
margin: 20px auto 40px auto;
text-align: left;
}
#product h3 {
font-size: 18px;
line-height: 1.2em;
font-family: ryo-gothic-plusn, sans-serif;
font-weight: 700;
font-style: normal;
color: #039d85;
text-align: center;
position: relative;
display: flex;
align-items: center;
}
#product h3:before,
#product h3:after {
content: "";
height: 1px;
flex-grow: 1;
background-color: #666;
}
#product h3:before { margin-right: 1rem; }
#product h3:after  { margin-left: 1rem; }

#product p.subtitle {
font-size: 13px;
line-height: 1.7em;
display: block;
font-weight: normal;
font-family: source-han-sans-jp-variable, sans-serif;
font-variation-settings: "wght" 500;
color: #A3A3A3;
text-align: center;
margin: 5px auto 0 auto;
}
/* ---------- Buttons ---------- */
#product_bt { 
position: fixed;
left: 0;
bottom: 0;
z-index: 8000;
width: 100%;
}
#product_bt ul {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
margin: 0px auto 0 auto;
}
#product_bt ul li {
width: 50%;
}
#product_bt ul li a {
font-size: 13px;
line-height: 1.2em;
color: #FFF;
display: block;
text-align: center;
text-decoration: none;
padding: 1em 0 1em 0;
background-color: #202A8A;
position: relative;
border: 1px solid #FFF;
border-right: none;
box-sizing: border-box;
}
#product_bt ul li.mail a {
}
#product_bt ul li.pdf a {
padding-left: 1em;
}
#product_bt ul li a:before {
content: '';
display: inline-block;
width:20px;
height: 15px;
background-image: url("../image/icon_mail.png");
background-size: contain;
vertical-align: middle;
margin: 0px 0 0 0;
position: absolute;
left: 10%;
top: 30%;
}
#product_bt ul li.pdf a:before {
width: 20px;
height: 20px;
background-image: url("../image/icon_pdf.png");
left: 4%;
top: 25%;
}
#product_bt ul li.mail a { background-color: #FF7E00; }
#product_bt ul li a:hover { background-color: #FF0004; }

/* ---------- Product detail ---------- */
#product.detail {}
#product.detail .new {
background-color: #DCFFFB;
padding: 1em;
margin: 0 0 20px 0;
}
#product.detail .new p {
font-size: 16px;
line-height: 1.3em;
}
#product.detail h1 {
font-size: 18px;
line-height: 1.3em;
font-weight: 700;
position: relative;
padding: 0.5em 0 0.5em 0.5em;
border-left: 5px solid #039d85;
background-color: #F6F6F6;
}


/* =======================================================
Sliders (gallery area)
======================================================= */
#slide {
max-width: 100%;
margin: 10px auto 40px auto;
}


/* --- Thumbnail slider (.slider-nav) --- */
.slider-nav {
width: 90%;
max-width: 100%;
margin: 15px auto 0;
position: relative;
}


/* =======================================================
Features / Points / Spec (kept as-is)
======================================================= */
#features { 
margin: 20px 0 0 0;
}
#features .box { 
background-color: #EDEDED;
padding: 1em;
margin: 20px auto 0 auto;
text-align: left;
}
#features .box p {
font-size: 14px;
line-height: 1.3em;
}

#point { margin: 40px auto 0 auto; }
#point dl { margin: 0; padding: 0; }
#point dl,
#point .box,
#point dt,
#point dd {
box-sizing: border-box;
margin: 0;
}
#point dt {
margin: 0 0 1em 0;
}
#point dd {
margin: 0 0 20px 0;
}
#point dt img { 
display: block;
width: 100%;
height: auto;
}
#point dd h4 {
font-size: 16px;
line-height: 1.3em;
font-weight: 700;
margin: 0 0 .5rem;
}
#point dd p {
font-size: 14px;
line-height: 1.3em;
}


#spec {
margin: 40px auto 0 auto;
text-align: center;
}
#spec .box {
margin: 20px auto 0 auto;
}
#spec .body strong {
font-weight: 700;
}
#spec .body table {
margin: 20px auto 40px auto;
width: 100% !important;
}
#spec .body th {
font-size: 14px;
line-height: 1.3em;
font-weight: 700;
background-color: #F6F6F6;
border: 1px solid #EAEAEA;
box-sizing: border-box;
padding: 0.5em 0.3em 0.5em 0.5em;
text-align: left;
}
#spec .body td {
font-size: 14px;
line-height: 1.3em;
padding: 0.5em 0.3em 0.5em 0.5em;
border: 1px solid #EAEAEA;
box-sizing: border-box;
text-align: left;
}

/* ---------- Catalog DL ---------- */
#catalog_dl {
padding-top: 30px;
margin: 30px auto 0 auto;
}
#catalog_dl dl {
font-size: 14px;
line-height: 1.3em;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
width: 100%;
border: 1px solid #E6E6E6;
margin: 0px auto 0 auto;
box-sizing: border-box;
}
#catalog_dl dl:nth-of-type(1) {
margin: 20px auto 0 auto;
}
#catalog_dl dl:nth-of-type(odd) {
background-color: #F4F4F4;
}
#catalog_dl dt {
box-sizing: border-box;
text-align: left;
padding: 0.7em 0.5em 0.5em 0.5em;
border-right: none;
width: 100%;
max-width: 100%;
font-weight: 700;
}
#catalog_dl dd {
text-align: left;
box-sizing: border-box;
border-right: none;
padding: 0em;
}
#catalog_dl dd:nth-of-type(1) {
width: 100%;
max-width: 100%;
padding: 0 0 0 0.5em;
}
#catalog_dl dd:nth-of-type(2) {
width: 100%;
max-width: 100%;
text-align: left;
padding: 0.3em 0 0.3em 0.5em;
}
#catalog_dl dd:nth-of-type(3) {
width: 100%;
max-width: 100%;
border-right: none;
padding: 0 0.5em 1em 0.5em;
}
#catalog_dl dd a {
font-size: 14px;
line-height: 1.3em;
color: #FFF;
display: block;
text-align: center;
text-decoration: none;
padding: 0.5em 1em 0.5em 1em;
box-sizing: border-box;
background-color: #202A8A;
position: relative;
}

/* ======================================
Related products (slider container)
====================================== */
#similar {
margin: 50px auto;
}
.related-products {
width: 90%;
max-width:  100%;
margin: 60px auto;
text-align: center;
}
.related-products h2 {
font-size: 1.4rem;
margin-bottom: 20px;
color: #333;
}
.related-slider { 
position: relative;
margin: 0px auto 0 auto;
} 
/* Items */
.related-slider .item { padding: 10px; }
.related-slider a {
display: block;
text-decoration: none;
color: #000;
padding: 1em;
}
.related-slider a:hover {
}
.related-slider h6 {
font-size: clamp(0.875rem, 0.739rem + 0.68vw, 1.25rem);
line-height: 1.7em;
font-weight: 500;
}
.related-slider img {
width: 100%;
height: 180px;
object-fit: contain;
border-radius: 8px;
transition: transform 0.3s ease;
}
.related-slider img:hover { transform: scale(1.05); }
.related-slider p {
margin-top: 10px;
font-size: clamp(0.813rem, 0.767rem + 0.23vw, 0.938rem);
line-height: 1.5em;
text-align: left;
color: #333;
}

}



