/*
 * site-adjust.css
 * サイト全体の調整用
 * 不要になった場合は、このファイルの読み込みを外すだけで元に戻せます。（header.phpにて読み込み）

 1.フォントサイズ調整
 2.ヘッダー調整
 3.サイドメニューページ　メニュー一覧調整
 4.フッター調整

 */

/* ========================================
    フォントサイズ 補足
   ========================================
   ・タイトル系：変更前 + 4px
   ・その他文字：変更前 + 3px
    ※ 変更前の値はコメントアウトで残しています。

   ・font-size: 100% / 120% / 130% / 140% などの 相対指定は、単純な +3px / +4px に置き換えず未変更。
   ・font-size: 0 はレイアウト制御用のため変更しない。
*/

/* ========================================
   フォントサイズ調整　ここから
   ======================================== */

/* ------- 基本 ------- */
body {
    /* font-size: 14px; */
    font-size: 17px;
}

input {
    /* font-size: 14px; */
    font-size: 17px;
}

/* ------- 見出し・タイトル ------- */
h3.en {
    /* font-size: 30px; */
    font-size: 34px;
}

h3.jp {
    /* font-size: 28px; */
    font-size: 32px;
}

.flow .box h3 {
    /* font-size: 20px; */
    font-size: 24px;
}

h4.title {
    /* font-size: 14px; */
    font-size: 18px;
}

#newsList .newsBox h3 {
    /* font-size: 18px; */
    font-size: 22px;
}

code, kbd, pre, samp {
    /* font-size: 14px; */
    font-size: 17px;
}

pre {
    /* font-size: 14px; */
    font-size: 17px;
}

blockquote cite,
blockquote small {
    /* font-size: 14px; */
    font-size: 17px;
}

.btn,
.btn2 {
    /* font-size: 16px; */
    font-size: 19px;
}

#ftSitemap li:before {
    /* font-size: 10px; */
    font-size: 13px;
}

.copyright {
    /* font-size: 12px; */
    font-size: 15px;
}

.bgWht1.check li {
    /* font-size: 18px; */
    font-size: 21px;
}

.c-cform th span.red {
    /* font-size: 90%; */
    font-size: calc(100% - 3px);
}

.c-cform input[type="file"] {
    /* font-size: 95%; */
    font-size: calc(100% - 3px);
}


/* ------- 
   ※ 汎用クラスなので「その他文字」として +3px
   ※ タイトルとして使っている箇所は個別に +4px が必要 
   ------- */

.fs10 {
    /* font-size: 10px; */
    font-size: 13px;
}

.fs12 {
    /* font-size: 12px; */
    font-size: 15px;
}

.fs13 {
    /* font-size: 13px; */
    font-size: 16px;
}

.fs14 {
    /* font-size: 14px; */
    font-size: 17px;
}

.fs16 {
    /* font-size: 16px; */
    font-size: 19px;
}

.fs18 {
    /* font-size: 18px; */
    font-size: 21px;
}

.fs20 {
    /* font-size: 20px; */
    font-size: 23px;
}

.fs22 {
    /* font-size: 22px; */
    font-size: 25px;
}

.fs24 {
    /* font-size: 24px; */
    font-size: 27px;
}

.fs25 {
    /* font-size: 25px; */
    font-size: 28px;
}

.fs26 {
    /* font-size: 26px; */
    font-size: 29px;
}

.fs28 {
    /* font-size: 28px; */
    font-size: 31px;
}

.fs30 {
    /* font-size: 30px; */
    font-size: 33px;
}

.fs32 {
    /* font-size: 32px; */
    font-size: 35px;
}

.fs34 {
    /* font-size: 34px; */
    font-size: 37px;
}

.fs35 {
    /* font-size: 35px; */
    font-size: 38px;
}

.fs36 {
    /* font-size: 36px; */
    font-size: 39px;
}

.fs38 {
    /* font-size: 38px; */
    font-size: 41px;
}

.fs40 {
    /* font-size: 40px; */
    font-size: 43px;
}

.fs48 {
    /* font-size: 48px; */
    font-size: 51px;
}

.fs50 {
    /* font-size: 50px; */
    font-size: 53px;
}

.fs58 {
    /* font-size: 58px; */
    font-size: 61px;
}

.fs60 {
    /* font-size: 60px; */
    font-size: 63px;
}

.fs70 {
    /* font-size: 70px; */
    font-size: 73px;
}

@media screen and (max-width: 999px) {

    .fs16 {
        /* font-size: 14px; */
        font-size: 17px;
    }

    .fs24 {
        /* font-size: 22px; */
        font-size: 25px;
    }

    .fs26 {
        /* font-size: 24px; */
        font-size: 27px;
    }

    .fs28 {
        /* font-size: 24px; */
        font-size: 27px;
    }

    .fs30 {
        /* font-size: 26px; */
        font-size: 29px;
    }

    .fs38 {
        /* font-size: 30px; */
        font-size: 33px;
    }

    .fs40 {
        /* font-size: 36px; */
        font-size: 39px;
    }

    .fs50 {
        /* font-size: 46px; */
        font-size: 49px;
    }
}

@media screen and (max-width: 812px) {

    body {
        /* font-size: 13px; */
        font-size: 16px;
    }

    .fs13 {
        /* font-size: 12px; */
        font-size: 15px;
    }

    .fs18 {
        /* font-size: 16px; */
        font-size: 19px;
    }

    .fs20 {
        /* font-size: 16px; */
        font-size: 19px;
    }

    .fs22 {
        /* font-size: 20px; */
        font-size: 23px;
    }

    .fs24 {
        /* font-size: 20px; */
        font-size: 23px;
    }

    .fs26 {
        /* font-size: 22px; */
        font-size: 25px;
    }

    .fs28 {
        /* font-size: 22px; */
        font-size: 25px;
    }

    .fs30 {
        /* font-size: 24px; */
        font-size: 27px;
    }

    .fs36 {
        /* font-size: 26px; */
        font-size: 29px;
    }

    .fs38 {
        /* font-size: 26px; */
        font-size: 29px;
    }

    .fs40 {
        /* font-size: 32px; */
        font-size: 35px;
    }

    .fs50 {
        /* font-size: 40px; */
        font-size: 43px;
    }

    .flow .box h3 {
        /* font-size: 18px; */
        font-size: 22px;
    }

    .btn,
    .btn2 {
        /* font-size: 12px; */
        font-size: 15px;
    }
}

@media screen and (max-width: 768px) {

    .faq .contactArea .num.fs36,
    .caseDetail .contactArea .num.fs36 {
        /* font-size: 26px; */
        font-size: 29px;
    }
}

@media screen and (max-width: 767px) {

    #newsList .newsBox h3 {
        /* font-size: 16px; */
        font-size: 20px;
    }
}

@media screen and (max-width: 479px) {

    .breadcrumb {
        /* font-size: 10px; */
        font-size: 13px;
    }

    body {
        /* font-size: 12px; */
        font-size: 15px;
    }

    .fs12 {
        /* font-size: 10px; */
        font-size: 13px;
    }

    .fs13 {
        /* font-size: 10px; */
        font-size: 13px;
    }

    .fs14,
    .fs16,
    .fs18 {
        /* font-size: 13px; */
        font-size: 16px;
    }

    .fs20 {
        /* font-size: 14px; */
        font-size: 17px;
    }

    .fs22 {
        /* font-size: 16px; */
        font-size: 19px;
    }

    .fs24,
    .fs26,
    .fs28 {
        /* font-size: 16px; */
        font-size: 19px;
    }

    .fs30,
    .fs32 {
        /* font-size: 18px; */
        font-size: 21px;
    }

    .fs40 {
        /* font-size: 24px; */
        font-size: 27px;
    }

    h4.title {
        /* font-size: 14px; */
        font-size: 18px;
    }

    .flow .box h3 {
        /* font-size: 16px; */
        font-size: 20px;
    }

    #newsList .newsBox h3 {
        /* font-size: 14px; */
        font-size: 18px;
    }
}


@media screen and (max-width: 360px) {

    body {
        /* font-size: 11px; */
        font-size: 14px;
    }

    .fs22 {
        /* font-size: 14px; */
        font-size: 17px;
    }

    .fs24, .fs26, .fs28 {
        /* font-size: 14px; */
        font-size: 17px;
    }

    #newsList .newsBox h3 {
        /* font-size: 13px; */
        font-size: 17px;
    }

}

/* ========================================
   フォントサイズ調整　ここまで
   ======================================== */

/* ========================================
   ヘッダー調整　ここから
   ======================================== */
/* 既存の配置指定をリセット */
header {
    height: auto;
}

#hdUpper h1 {
    line-height: normal;
}

#hdUpper .hdUpperR {
    max-width: none;
}

/* ------- PC ------- */
#hdLower {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    width: 100%;
    height: auto;
    min-height: 90px;
    padding: 6px 2%;
    box-sizing: border-box;
}

#hdLower .logoArea {
    position: static;
    width: auto;
    max-width: none;
    min-width: 0;
    margin-right: auto;
}

#header .telArea {
    position: static;
    width: auto;
    max-width: none;
    min-width: 0;
}

#header .telArea .tel {
    min-width: 0;
    max-width: 100%;
}

#header .telArea .num {
    white-space: nowrap;
}

#hdLower > table {
    position: static;
    width: 23em;
    max-width: none;
    min-width: 0;
    height: 76px;
    margin: 0;
}

#header .contact {
    width: auto;
}

#header .contact p {
    font-size: 16px;
}

.g_navi li.nav_sp {
    text-align: unset;
    padding: 0 2rem;
}

.g_navi li.nav_sp.smp {
    padding-left: 4rem;
}

.g_navi li.nav_sp a::after {
    content: "＞";
    display: block;
    width: 20px;
    height: 20px;
}

.g_navi li.nav_coatingmenu a::after {
    content: "＋";
    display: block;
    width: 20px;
    height: 20px;
}
@media screen and (max-width: 1100px) {

    #hdLower {
        /* grid撤去: flex化により不要 */
        gap: 10px;
    }

    #header .contact {
        width: auto;
    }
}

@media screen and (max-width: 900px) {

    /* #hdLower {
        grid-template-columns: 1fr 1.2fr auto;
    } */

    #hdLower > table {
        display: none;
    }

    #header .contact {
        width: auto;
    }
}

@media screen and (max-width: 812px) {

    #hdUpper {
        display: none;
    }

    #hdLower {
        display: flex;
        align-items: center;
        width: 100%;
        min-height: 68px;
        padding: 8px 85px 8px 2%;
        gap: 0;
    }

    #hdLower .logoArea .address {
        white-space: normal;
    }

    #header .telArea {
        flex: 0 0 auto;
        width: auto;
        max-width: none;
        min-width: 0;
        margin-left: 10px;
    }

    #header .telArea > p, #header .telArea .tel {
        display: none;
    }

    #hdLower > table {
        display: none;
    }

    #header .contact {
        flex: 0 0 auto;
        width: auto;
        height: auto;
        margin-left: 10px;
        padding: 0;
        border: 0;
        background: none;
    }

    #header .contact .pc {
        display: none;
    }

    #header .contact span.smp {
        display: block;
    }
}

@media screen and (max-width: 600px) {

    #hdLower {
        padding: 15px 60px 5px 10px;
        align-items: center;
    }

    #hdLower .logoArea {
        padding-right: 5px;
    }

    #header .telArea {
        margin-left: 6px;
    }

    #header .contact {
        margin-left: 6px;
    }

    /* .navi_button {
        width: 54px;
    } */
}

@media screen and (max-width: 480px) {

    #hdLower .logoArea {
        max-width: none;
    }

    #header .telArea {
        margin-left: 5px;
    }

    #header .contact {
        margin-left: 5px;
    }

    /* .navi_button {
        width: 50px;
    } */
}

/* ========================================
   ヘッダー調整　ここまで
   ======================================== */

/* ========================================
   MV・サイトトップ（見出し）調整　ここから
   ======================================== */
/* メインビジュアル */

#mainImage {
    position: relative;
    background-image:url(images/mv_bg.jpg);
    background-position:center;
    background-repeat:no-repeat;
    -moz-background-size:cover;
    background-size:cover;
    padding: 0;
}

#mainImage {
   padding-top: 95px;
}

#mainImage .mv_wrapper {
  max-width: min(100%, 1300px);
  margin: 0 auto;
}

#mainImage .bx-controls {
    -moz-box-shadow: none;
    -webkit-box-shadow: none;
    box-shadow: none;
    border: none;
    background: none;
}

#mainImage .bx-controls .bx-viewport img {
	width: 100%;
	height: auto;
}

#mainImage .bx-controls {
    position: absolute;
    width: 1300px;
    top: 50%;
    margin-bottom: 0;
}

.bx-controls .bx-controls-direction a:hover {
	-webkit-transition: all 0s;
	transition: all 0s;
}

.bx-controls .bx-controls-direction a:hover img {
	-webkit-transition: all 0s;
	transition: all 0s;
}

#mainImage .bx-controls .bx-controls-direction a {
    position: absolute;
    top: 50%;
    margin-top: -18px;
    outline: 0;
    width: 36px;
    height: 39px;
    text-indent: -9999px;
    z-index: 80;
}

#mainImage .bx-controls .bx-controls-direction a.bx-prev {
  left: 0;
  transform: translateX(-150%);
  background: url('images/control_prev.png') no-repeat 0 0;
}
#mainImage .bx-controls .bx-prev:hover,
#mainImage .bx-controls .bx-prev:focus {
  background-position: 0 0;
}
#mainImage .bx-controls .bx-controls-direction a.bx-next {
  right: 0;
  transform: translateX(150%);
  background: url('images/control_next.png') no-repeat 0 0;
}
#mainImage .bx-controls .bx-next:hover,
#mainImage .bx-controls .bx-next:focus {
  background-position: 0 0;
}

.mv_sp {
    display: none;
}

@media screen and (max-width: 480px) {

    #topImage > * {
        display: none;
    }

    .mv_sp {
        display: block;
    }
}

/* --------- 下層 ---------- */

.mainTitle h2 {
    font-family: 'Bitter';
    font-size: 2.5rem;
    font-size: clamp(.8rem, 2vw, 2.5rem);
    letter-spacing: 3px;
}

.mainTitle h2 > span {
    display: block;
    font-weight: normal;
    font-size: 1.5rem;
    font-size: clamp(.5rem, 2vw, 1.5rem);
}
@media screen and (max-width: 768px) {
    .mainTitle h2 {
        line-height: 1.2;
    }
}

/* ========================================
   MV・サイトトップ（見出し）調整　ここまで
   ======================================== */

/* ========================================
   サイドメニューページ　メニュー一覧調整　ここから
   ======================================== */
#servicemenu00 ul {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}
#servicemenu00 li{
    float:none;
    width: auto;
    /* margin: auto; */
}

@media screen and (max-width: 999px) {
    #servicemenu00 li{
        width: auto;
    }
}

@media screen and (max-width: 479px) {
    #servicemenu00 ul {
        grid-template-columns: repeat(2, 1fr);
    }
    #servicemenu00 li p{
        font-size:13px;
    }
}

/* ========================================
   サイドメニューページ　メニュー一覧調整　ここまで
   ======================================== */

   /* ========================================
   フッター調整　ここから
   ======================================== */
footer #info,
#ftSitemap {
    box-sizing: border-box;
    min-width: 0;
}

footer #info .logo,
footer #info .address {
    box-sizing: border-box;
    max-width: 100%;
}

footer .btn a {
    position: static;
    color: #0a2d96;
}

#ftSitemap ul {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

#ftSitemap li {
    float: none;
    width: auto;
    box-sizing: border-box;
}

.sns {
    display: flex;
    width: 100%;
    margin: 1rem 0;
    gap: 1rem;
    justify-content: center;
}

.sns img {
    width: 40px;
}

@media screen and (max-width: 1100px) {

    footer .bgWht1 {
        padding: 20px;
    }

    footer #info {
        width: 30%;
    }

    footer #info .logo {
        width: 100%;
        max-width: 295px;
    }

    footer #info .address {
        width: 100%;
        max-width: 245px;
    }

    #ftSitemap {
        width: 70%;
    }
}

@media screen and (max-width: 768px) {

    footer .bgWht1 {
        padding: 20px 15px;
    }

    footer #info {
        width: 100%;
        margin-bottom: 25px;
    }

    footer #info .logo {
        width: 295px;
        max-width: 100%;
    }

    footer #info .address {
        width: 100%;
        max-width: 245px;
    }

    footer #info .btn {
        max-width: 300px;
        width: 100%;
    }

    #ftSitemap {
        width: 100%;
    }

    #ftSitemap li {
        width: 50%;
    }

    footer .upper {
        margin-bottom: 15px;
        padding-bottom: 10px;
    }
}

@media screen and (max-width: 480px) {

    footer .bgWht1 {
        padding: 15px 12px;
    }

    footer #info {
        margin-bottom: 20px;
    }

    #ftSitemap h2 {
        margin-bottom: 15px;
    }

    #ftSitemap ul {
        margin-bottom: 10px;
    }

    #ftSitemap li {
        width: 100%;
    }

    footer .bgWht1 span {
        margin-right: 5px;
    }

    .copyright {
        padding: 10px;
    }
}
   

/* ========================================
   フッター調整　ここまで
   ======================================== */
/* header tel area: flex align + condensed number (all widths) */
#header .telArea .cf{ display:flex; align-items:center; }
#header .telArea .tel{ float:none; }
#header .telArea .opentime{ font-size:14px; }
#hdLower > table{ font-size:14px; }

/* #header .contact span.pc grid reset (grid化の絶対配置取り残し解消・PC grid時のみ) */
@media screen and (min-width:813px){
  #header .contact span.pc{ position:static; width:100%; display:block; padding:0 15px; align-content:center; top:auto; right:auto; box-sizing:border-box; }
}

/* MV: bx-controls(1300px)+矢印translateXの横はみ出しをクリップ(1300px未満の横スクロール防止) */
#mainImage{ overflow-x:hidden; }
@media screen and (min-width:813px){ #header .telArea p.fs12{ line-height:1.2; display:flex; flex-wrap:wrap; } }
