@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;600;700&family=Roboto:wght@300;500&display=swap');
/*font-family: 'Noto Sans JP', sans-serif;*/

/* RESET
----------------------------------------------------------------------------------------------------*/
a,article,body,dd,div,dl,dt,em,form,footer,header,h1,h2,h3,h4,h5,h6,html,i,iframe,img,legend,nav,ol,p,section,main,span,table,tbody,tfoot,thead,time,tr,th,td,ul,video{font-family:inherit;font-size:100%;font-weight:inherit;font-style:inherit;vertical-align:baseline;white-space:normal;margin:0;padding:0;border:0;outline:0;background:transparent;line-height:1.6;text-align:left}textarea{font-family:inherit;font-size:100%;font-weight:inherit;font-style:inherit;vertical-align:baseline;margin:0;padding:0;border:0;outline:0;background:transparent;line-height:1.6;text-align:left}article,footer,header,nav,section,main{display:block}ol,ul{list-style:none}table{border-collapse:collapse;border-spacing:0}
/*----------------------------------------------------------------------------------------------------*/

:root {
	--base-color:rgba(17, 17, 17, 1.0);
	--main-color:rgba(1, 27, 105, 1.0);
	--color-blue:rgba(8, 94, 192, 1.0);
  --color-skyblue:#2f9ce4;
  --color-red: rgba(248, 101, 101, 1.0);
  --color-green: rgba(72, 192, 112, 1.0);
}

body {
  font-family:"Noto Sans JP",sans-serif;
  background:#fff;
  color:var(--base-color);
  margin:0;
  padding:0;
}
a:link {
  color:rgba(12, 60, 203, 1.0);
  text-decoration: none!important;
}
a:hover {
  text-decoration: underline!important;
}
a:visited {
  color:rgba(60, 76, 127, 1.0);
}

/* ===== トップページ　HERO ===== */
.hero {
  width:100%;
  height:85vh;
  background:url("../img/top-bg.jpg") center/cover;
  display:flex; 
  align-items:center; 
  padding:0; 
  margin:0;
  position:relative;
}
.hero::after{
  content:""; 
  position:absolute; 
  inset:0; 
  background:rgba(0,0,0,.14);
}
.hero h1 {
  width:calc(100% - 80px);
  margin-left:40px;
  margin-right:40px;
  color:#fff; 
  position:relative; 
  z-index:2; 
  font-weight:600;
  text-shadow: 1px 1px 2px black;
}
  @media screen and (max-width:600px){
    .hero {
      height:78vh;
    }
    .hero h1 {
      font-size:27px;
    }
  }

/* ===== トップページ　ポイント ===== */
section.top-point {
  width:100%;
  padding:50px 0;
  box-sizing: border-box;
  background:var(--color-skyblue);
}
section.top-point .top-comment {
  width:100%;
  max-width:1200px;
  margin-left:auto;
  margin-right:auto;
  margin-bottom:20px;
  display:flex;
  justify-content: center;
}
section.top-point .top-comment p {
  width: fit-content;
  color:white;
  font-size:22px;
  font-weight:500;
  line-height:145%;
}
@media screen and (max-width:800px){
  section.top-point .top-comment {
    width:calc(100% - 40px);
  }
  section.top-point .top-comment p {
    font-size:19px;
  }
}
section.top-point .toppoint-area {
  width:100%;
  max-width:1400px;
  box-sizing: border-box;
  margin-right:auto;
  margin-left:auto;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  padding:20px;
}
  @media (max-width: 600px){
    section.top-point .toppoint-area {
      max-width:400px;
      grid-template-columns: repeat(1, 1fr);
    }
  }
section.top-point .toppoint-area div {
  padding:20px;
  color:white;
  background:var(--main-color);
  display:flex;
  gap:20px;
  align-items: center;
}
  @media (max-width: 1000px){
    section.top-point .toppoint-area div {
      flex-flow: column;
    }
  }
  @media (max-width: 600px){
    section.top-point .toppoint-area div {
      flex-flow: wrap;
    }
  }
section.top-point .toppoint-area div .svg-icon-area {
  padding:10px;
  width:28%;
  background:var(--color-skyblue);
}
section.top-point .toppoint-area div .svg-icon-area div {
  width:100%;
}
img.top-point-icon {
  width: 100%;
  max-width:300px;
  height: auto;
}
  @media (max-width: 1000px){
    section.top-point .toppoint-area div .svg-icon-area {
      width:50%;
    }
  }
  @media (max-width: 600px){
    section.top-point .toppoint-area div .svg-icon-area {
      width:25%;
    }
  }
section.top-point .toppoint-area div .svg-icon-area div img {
  width:200px;
}
section.top-point .toppoint-area div p {
  font-size:26px;
  font-weight:700;
  line-height:135%;
}
  @media (max-width: 1000px){
    section.top-point .toppoint-area div p {
      font-size:23px;
    }
  }
section.top-point .toppoint-area div p span {
  font-size:16px;
  font-weight:500;
  display:block;
}

/* ===== トップページ　社会貢献 ===== */
section.top-kouken {
  /*background:var(--main-color);*/
  color:white;
}
section.top-kouken h2 {
  text-align:center;
  font-weight:600;
  text-shadow: 1px 1px 5px #777;
}
section.top-kouken p {
  font-size:110%;
  margin:30px auto;
  text-align:center;
  text-shadow: 1px 1px 5px #777;
}

/*　パララックス（社会貢献、会社概要）　*/
.parallax {
    position:relative;
    overflow:hidden;
    /*padding:120px 0;*/
}
.parallax-bg {
    position:absolute;
    left:0;
    top:-25%;
    width:100%;
    height:150%;
    background:center center / cover no-repeat;
    will-change:transform;
    z-index:-1;
}
.bg01 {
    background:url(../img/top-gaiyou-bg.jpg) center / cover no-repeat;
    filter: brightness(0.7) contrast(0.95);
}
.bg02 {
    background:url(../img/top-kouken-bg.jpg) center / cover no-repeat;
    filter: brightness(0.7) contrast(0.95);
}
/* ===== トップページ　会社概要 ===== */
section.top-gaiyou {
  color:white;
}
section.top-gaiyou h2 {
  text-align:center;
  font-weight:600;
  text-shadow: 1px 1px 5px #777;
}
section.top-gaiyou p {
  font-size:110%;
  margin:30px auto;
  text-align:center;
  text-shadow: 1px 1px 5px #777;
}

/* ===== トップページ　新着情報 ===== */
h2.top-news {
  font-weight:600;
  width:100%;
  margin-bottom:40px;
  display:flex;
  justify-content: center;
  color:#8f8f8f;
}

h2.syasen {
  width:100%;
  box-sizing: border-box;
  max-width:1200px;
  margin-left:auto;
  margin-right:auto;
  margin-bottom:50px;
  position: relative;
  padding: 10px 10px 20px 10px;
  color:var(--main-color);
  font-weight:600;
  line-height:150%;
}
h2.syasen:after {
  position: absolute;
  bottom: 0;
  left: 0;
	width:100%;
  height: 10px;
  content: '';
  background-image: -webkit-repeating-linear-gradient(135deg, rgba(47, 156, 228, 0.4), rgba(47, 156, 228, 0.4) 1px, transparent 2px, transparent 5px);
  background-image: repeating-linear-gradient(-45deg, rgba(47, 156, 228, 0.4), rgba(47, 156, 228, 0.4) 1px, transparent 2px, transparent 5px);
  background-size: 7px 7px;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.news-toppage {
  width:100%;
  margin:0;
}

/* トップページの新着一覧　*/
.top-news-list {
  width:100%;
  margin:0;
}
.top-news-list td {
  padding:12px 5px;
  border-bottom:1px dotted #bbb;
}
.top-news-list .top-news-item {
  width:100px;
  text-align: center;
}
.top-news-list .top-news-new {
  width:50px;
  text-align: center;
}
.top-news-list .top-news-new span {
  background:var(--color-red);
  color:white;
  padding: 2px 6px;
  border-radius: 3px;
  font-size: 0.7em;
}

.top-news-list .top-news-text a {
  text-decoration: underline;
}
.top-news-list .top-news-more {
  width:calc(100% - 40px);
  max-width:1200px;
  margin:40px auto 0px auto;
  text-align: right;
}
  @media screen and (max-width:600px){
    .top-news-list .top-news-item {
      padding:2px 0px;
      display:inline-block;
      border-bottom:none;
      margin-top:2px;
    }
    .top-news-list .top-news-new {
      padding:0px 0px;
      display:inline-block;
      border-bottom:none;
    }
    .top-news-list .top-news-text {
      display:block;
    }
  }


/* 新着一覧とcsr一覧のカード　*/
.news-grid {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
}
.news-card {
  /*
  display:block;
  padding:20px;
  border:1px solid #eee;
  border-radius:6px;
  text-decoration:none;
  transition:.2s;
  background:white;
  box-shadow: 0 5px 10px #eee;
  color:var(--base-color);*/
  display:flex;
  flex-direction:column;
  padding:20px;
  border:1px solid #eee;
  border-radius:6px;
  text-decoration:none;
  transition:.2s;
  background:white;
  box-shadow:0 5px 10px #eee;
  color:var(--base-color);
}
.news-card:hover {
  transform:translateY(-5px);
  background:rgba(237, 253, 255, 0.8);
  text-decoration: none!important;
}
.news-card-head {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:12px;
}
.news-date {
  font-size:0.9rem;
  font-weight:500;
  color:white;
  background:var(--color-blue);
  border-radius:3px;
  /*padding:2px 5px;*/
  padding-top:2px;
  padding-bottom:2px;
  width:90px;
  text-align: center;
}
.news-new {
  color:white;
  font-size:0.9rem;
  font-weight:500;
  padding:2px 5px;
  background:var(--color-red);
  border-radius:3px;
}
/*
a.news-card:hover div.news-card-head .news-new{
  text-decoration: none!important;
  background:white;
}*/
.news-card-title {
  line-height:1.55;
  font-size:1rem;
  margin-bottom:10px;
}
  @media screen and (max-width:960px){
    .news-grid{
      grid-template-columns:repeat(2, 1fr);
    }
  }
  @media screen and (max-width:768px){
    .news-grid{
      grid-template-columns:1fr;
    } 
  }
.news-card-syousai {
  margin-top:auto;
  padding:3px 6px;
  font-size:90%;
  text-align:right;
  color:var(--color-blue);
  transition:.2s;
}
.news-card-syousai::after {
  content:" →";
}
.news-card:hover .news-card-syousai {
  transform:translateX(5px);
}

/* ===== ページャー ===== */
.pagination {
  width:100%;
  max-width:1200px;
  margin:50px auto 20px auto;
  display:flex;
  flex-flow: wrap;
  justify-content: center;
  gap:10px;
}
.pagination strong {
  width:34px;
  height:34px;
  display:flex;
  justify-content: center;
  align-items: center;
  background:#eee;
}
.pagination a {
  width:34px;
  height:34px;
  display:flex;
  justify-content: center;
  align-items: center;
  background:#eee;
  color:var(--color-blue);
}

/* ===== ボタン ===== */
div.btn-area {
  width:100%;
  display:flex;
  margin-top:50px;
  justify-content: center;
}
a.btn-fback {
  background:var(--color-blue);
  color:white;
  font-weight:500;
  padding:14px 24px;
  border-radius:100vh;
  text-decoration-line: none;
  transition:.3s;
}
a:hover.btn-fback {
  filter: brightness(0.75) contrast(1.6);
  transition:.3s;
  text-decoration: none!important;
}

/* ===== footer ===== */
footer {
  background:var(--main-color);
}
footer .inner {
  width:calc(100% - 40px);
  /*max-width:340px;*/
  margin-right:auto;
  margin-left:auto;
  font-size:90%;
  color:white;
  text-align: center;
}
footer .inner img {
  width:170px;
}
footer .inner dl {
  margin-top:20px;
} 
footer .inner dl dt, footer .inner dl dd {
  text-align:center;
}

/* ===== sectionやボタンなど ===== */
section {
  margin:0;
  padding:0;
  width:100%;
}
.inner {
  width:100%;
  max-width:1200px;
  margin:0 auto;
  padding:100px 20px 100px 20px;
  box-sizing: border-box;
}


h1 {
  font-size:40px;
}
h2 {
  font-size:32px;
}
h3 {
  font-size:28px;
}
h4 {
  font-size:22px;
}
  @media (max-width: 800px){
    h1 {
      font-size:32px;
    }
    h2 {
      font-size:26px;
    }
    h3 {
      font-size:22px;
    }
    h4 {
      font-size:19px;
    }
  }
.mgn-b50 {
  margin-bottom:50px;
}















/* ========================= 会社概要 ========================= */
.hero-info {
  height:400px;
  background:url("../img/info-bg.jpg") center/cover;
  display:flex; 
  align-items:center; 
  padding:0; 
  position:relative;
}
.hero-info::after {
  content:""; 
  position:absolute; 
  inset:0; 
  background:rgba(0,0,0,.14);
}
.hero-info h1 {
  width:calc(100% - 80px);
  margin-left:40px;
  margin-right:40px;
  color:#fff; 
  position:relative; 
  z-index:2; 
  top:40px;
  font-weight:600;
  text-shadow: 1px 1px 2px black;
}










.inner-info-full {
  width:100%;
  margin:0;
  padding:0;
  box-sizing: border-box;
}
h2.info-only {
  width:100%;
  height:140px;
  margin-bottom:100px;
  color:white;
  font-weight:600;
  line-height:150%;
  background:var(--color-blue);
  display:flex;
  justify-content: center;
  flex-flow:column;
  align-items: center;
  /*text-shadow: 2px 2px 2px white;*/
  position: relative;
}
h2.info-only span {
  font-size:15px;
  margin-top:5px;
  letter-spacing: 0.1em;
  display:block;
}
h2.info-only:after {
  content:"";
  /*display:block;*/
  position: absolute;
  top:120px;
  left: 50%; /* 中央に配置 */
  width: 2px; /* 線の太さ */
  height:60px;
  background:var(--color-skyblue); /* 線の色 */
}
.message-back {
  background:var(--main-color);
  color:white;
}
.info-corp {
  font-size:22px;
  padding:5px 18px;
  background:var(--color-blue);
  color:white;
  border-radius:25vh;
  display:inline-block;
  margin-bottom:20px;
}

.inner-info-1200 {
  width:calc(100% - 40px);
  max-width:1200px;
  margin:0 auto;
  padding:0px 0 80px 0;
  box-sizing: border-box;
}
.inner-info-1600 {
  width:calc(100% - 40px);
  max-width:1600px;
  margin:0 auto 80px auto;
}
.inner-info-map {
  width:calc(100% - 40px);
  max-width:1600px;
  height:360px;
  margin:0 auto 80px auto;
}
.info-kyouryou {
  position: relative;
  width:100%;
  height:400px;
}
.info-kyouryou h3 {
  width:100%;
  max-width:450px;
  margin:0;
  background:var(--color-skyblue);
  padding:30px;
  position: absolute;
  z-index:3;
  right:45%;
  bottom:55px;
  color:white;
  border-radius:12px;
  box-shadow: 2px 2px 8px rgba(85, 85, 85, 0.5);
}
.info-kyouryou h3 span {
  display:inline-block;
}
.info-kyouryou div {
  height:100%;
  width:70%!important;
  max-width:830px;
  position: absolute;
  right:0;
  border-radius:12px;
  overflow: hidden;
}
.info-kyouryou div img {
  width:100%; 
  height:100%;
  object-fit: cover;
  object-position: center bottom;
}
  @media (max-width: 1000px){
    .info-kyouryou {
      display:block;
      position:relative;
      width:100%;
      height:450px
    }
    .info-kyouryou h3 {   
      font-size:22px; 
      padding:10px 15px;
      width:88%;
      max-width:600px;
      z-index:3;
      right:none!important;
      left:0;
      bottom:auto;
      top:18px;
      color:white;
    }
    .info-kyouryou h3 span {
      display:initial;
    }
    .info-kyouryou div {
      height:450px;
      width:calc(100% - 50px)!important;
      max-width:100%!important;
      position:absolute;
      right:0;
      overflow: hidden;
    }
  }
.info-tsugite {
  position: relative;
  width:100%;
  height:400px;
}
.info-tsugite h3 {
  width:100%;
  max-width:450px;
  background:var(--color-skyblue);
  padding:30px;
  position: absolute;
  z-index:1;
  /*bottom:100px;*/
  left:45%;
  bottom:55px;
  color:white;
  border-radius:12px;
  box-shadow: 2px 2px 8px rgba(85, 85, 85, 0.5);
}
.info-tsugite h3 span {
  display:inline-block;
}
.info-tsugite div {
  height:100%;
  width:70%!important;
  max-width:830px;
  position: absolute;
  left:0;
  border-radius:12px;
  overflow: hidden;
}
.info-tsugite div img {
  width:100%; 
  height:100%;
  object-fit: cover;
  object-position: center bottom;
}
  @media (max-width: 1000px){
    .info-tsugite {
      display:block;
      position:relative;
      width:100%;
      height:450px
    }
    .info-tsugite h3 {    
      font-size:22px;
      padding:10px 15px;
      width:88%;
      max-width:600px;
      z-index:3;
      right:none!important;
      left:0;
      bottom:auto;
      top:18px;
      color:white;
    }
    .info-tsugite h3 span {
      display:initial;
    }
    .info-tsugite div {
      height:450px;
      width:calc(100% - 50px)!important;
      max-width:100%!important;
      position:absolute;
      right:0!important;
      left:auto;
      overflow: hidden;
    }
  }

.shachoumei {
  text-align: right;
  margin-top:30px;
}
.shachoumei span {
  font-size:130%;
}
.gaiyou-aria {
  display:flex;
  flex-flow: wrap;
  gap:40px;
  align-items:flex-start;
}
.gaiyou-aria div {
  width:calc(50% - 20px);
}
  @media screen and (max-width:800px){
    .gaiyou-aria div {
      width:100%;
    }
  }
.gaikan-img {
  width:100%;
  height:380px;
  background:#eee;
}
.gailan-img-end {
  align-items:flex-end;
}
.gaikan-img img {
  width:100%;
  height:100%;
  object-fit: cover;
}
dl.kihon-info {
  width:100%;
  display:flex;
  flex-flow: wrap;
  align-content: center;
}
dl.kihon-info dt,dl.kihon-info dd {
  padding:8px 12px;
  border-bottom:1px solid #ccc;
}
dl.kihon-info dt {
  width:calc(120px);
}
dl.kihon-info dd {
  width:calc(100% - 144px - 24px);
}
dl.kihon-info dt:nth-of-type(even),dl.kihon-info dd:nth-of-type(even) {
  background:#f4f8fa;
}
ul.info-ul {
  margin-top:10px;
  display:flex;
  flex-flow: wrap;
  gap:10px;
  align-items: center;
}
ul.info-ul li {
  width:calc(50% - 5px);
  line-height: 1.4;
  padding:3px 0 3px 26px;
  list-style-type: none!important;
  box-sizing: border-box;
  background:url(../img/info-ul.png);
  background-repeat: no-repeat;
  background-position: center left;
}

/* ========================= 新着情報　リスト ========================= */
.hero-news {
  height:400px;
  background:url("../img/news-bg.jpg") center/cover;
  display:flex; 
  align-items:center; 
  padding:0; 
  position:relative;
}
.hero-news::after{
  content:""; 
  position:absolute; 
  inset:0; 
  background:rgba(0,0,0,.14);
}
.hero-news h1 {
  width:calc(100% - 80px);
  margin-left:40px;
  margin-right:40px;
  color:#fff; 
  position:relative; 
  z-index:2; 
  top:40px;
  font-weight:600;
  text-shadow: 1px 1px 2px black;
}

/*
section.news-list {
  position:relative;
  z-index:0;
}
section.news-list::before{
  z-index:-1;
  content:"";
  position:absolute;
  inset:0;
  background:url("../img/pattern-randomized.png");
  -webkit-mask-image:
    radial-gradient(circle at top right,
      black 0%,
      black 20%,
      transparent 60%
    );
  mask-image:
    radial-gradient(circle at top right,
      black 0%,
      black 20%,
      transparent 60%
    );
  opacity:.6;
}
section.news-list::after{
  z-index:-1;
  content:"";
  position:absolute;
  inset:0;
  background:url("../img/pattern-randomized.png");
  -webkit-mask-image:
    radial-gradient(circle at bottom left,
      black 0%,
      black 20%,
      transparent 60%
    );
  mask-image:
    radial-gradient(circle at bottom left,
      black 0%,
      black 20%,
      transparent 60%
    );
  opacity:.6;
}*/
/* ========================= 社会貢献／活動実績　リスト ========================= */
.hero-csr {
  height:400px;
  background:url("../img/csr-bg.jpg") center/cover;
  display:flex; 
  align-items:center; 
  padding:0; 
  position:relative;
}
.hero-csr::after {
  content:""; 
  position:absolute; 
  inset:0; 
  background:rgba(0,0,0,.14);
}
.hero-csr h1 {
  width:calc(100% - 80px);
  margin-left:40px;
  margin-right:40px;
  color:#fff; 
  position:relative; 
  z-index:2; 
  top:40px;
  font-weight:600;
  text-shadow: 1px 1px 2px black;
}
.csr-list {
  padding:0;
}


/* ========================= 新着情報　社会貢献／活動実績　詳細 ========================= */

.news-detail p.article-date {
  width:fit-content;
  desplay:flex;
  padding:3px 10px;
  background:var(--color-blue);
  border-radius:3px;
  color:white;
  font-size:90%;
  margin-bottom:20px;
}
.news-detail h2.article-title {
  font-weight:600;
  margin-bottom:30px;
  color:var(--main-color);
  text-shadow: #fff 2px 0 10px;
}
.news-detail p {
  margin-bottom:30px;
}
.img-click {
  width:100%;
  display:flex;
  justify-content: right;
  margin-bottom:0px;
}
.kyoka-area {
  margin-top:60px;
  width:100%;
  margin-bottom:0px;
  display:flex;
  justify-content: flex-end;
}
.kyoka {
  display:inline-block;
  padding:3px 6px;
  font-size:85%;
  margin-bottom:0px;
  color:white;
  background:#9ccfee;
  border-top-right-radius: 3px;
  border-top-left-radius: 3px;
}
p.lbox-info {
  font-size:85%;
  margin-top:10px;
  width:100%;
  text-align:right;
  color:#555;
}
.news-detail div.csr-img-area {
  width:100%;
  max-width:1200px;
  box-sizing: border-box;
  margin:0px auto;
  padding:40px;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:40px;
  background:#f4fafc;
}
  @media (max-width: 600px){
    .news-detail div.csr-img-area {
      grid-template-columns:repeat(1,1fr);
      padding:20px;
      gap:20px;
    }
  }
.csr-img-area a {
  display:block;
}
.csr-img-area img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  display:block;
  border:1px solid white;
  box-shadow: 5px 5px 8px #ccc;
}
.csr-img-area:has(a:only-child) {
  grid-template-columns:1fr;
}

.csr-img-area:has(a:only-child) img {
  display:block;
  width:100%;
  max-width:800px;
  height:auto;
  margin:0 auto;
  aspect-ratio:auto;
  object-fit:contain;
}
/*画像がひとつの時*/
.csr-img-area:has(a:only-child){
  display:block;
  text-align:center;
}
.csr-img-area:has(a:only-child) a{
  display:inline-block;
  width:100%;
  max-width:600px;
}
.csr-img-area:has(a:only-child) img{
  aspect-ratio:auto;
  object-fit:contain;
}

/*　背景　*/
.news-detail,.news-list,.information {
  background:url(../img/sec-back-right.png),url(../img/sec-back-left.png);
  background-repeat: no-repeat;
  background-position: right top,left bottom;
}
  @media (max-width: 800px){
    .news-detail,.news-list,.information {
      background-position: 10% top, -450px bottom;
    }
  }
