  * {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: sans-serif;
  line-height: 1.6;
  color: #333;
}

button{
  background:#fa0;
  padding:5px;
  border-radius: 4px;
  color: #fff;
}

/* 共通 */
.btn {
  display: inline-block;
  padding: 0.5em 1em;
  text-decoration: none;
  border-radius: 4px;
  color: #ffffff;
  background-image: linear-gradient(45deg, #FFC107 0%, #ff8b5f 100%);
  box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.29);
  border-bottom: solid 3px #c58668;
}

/* ヘッダー */
header {
  background-color: #3F6485;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px;
}

header nav{
  position:relative;
  width:350px;
}

.nav a {
  margin-left: 20px;
  color: #fff;
  text-shadow: 2px 2px 2px #666666;
}

.nav .btn {
  color: #fff;
}

header .contact{
  position:absolute;
  display:inline-block;
  margin-top:-40px;
  height:124px;
  padding:40px 10px 0;
  background: #FFC107;
  background-image: linear-gradient(45deg, #FFC107 0%, #ff8b5f 100%);
  font-weight: bold;
}



/* メインビジュアル */
.hero {
  box-shadow: inset 0px 0px 12px rgba(0,0,0,.6);
  margin-top:-25px;
  height:auto;
}
.hero img {
  position: relative;
  z-index: -1;
}


/* 新着情報 */
.news {
  padding: 40px 10%;
}

.news h2 {
  margin-bottom: 20px;
}

/* サービス概要 */
.service {
  padding: 60px 10%;
}

.service a{
  color: #0000cd;
  font-size:14px;
}

.service h2{
  text-align:center;
  margin-bottom: 20px;
}

.service h3{
  margin-bottom: 10px;
}

.service-item {
  display: flex;
  gap: 40px;
  align-items: center;
}

.service-item.reverse {
  flex-direction: row-reverse;
}

.service-text {
  width: 50%;
}

.service-text p{
  margin-bottom: 10px;
}

.service-image {
  width: 50%;
  height: 250px;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.service-image img{
  object-fit: cover;
}

.pdf-links {
  display: flex;
  gap: 20px;
  margin-top: 20px;
}

.brand {
    text-align: center;
}
.brand a{
  color: #0000cd;
}
.brand h3{
    margin-bottom:20px;
}
.brand div{
    margin-bottom:20px;
}
.brand img{
  display: inline;
  vertical-align: middle;
}

/* お問い合わせ下 */
.contact{
  text-align: center;
  margin-bottom:60px;
  font-weight: bold;
}
.contact a{
  color: #fff;
  font-size: 20px;
}

/* 会社情報 */
.company{
  margin-bottom:60px;
}
.company a{
  color: #0000cd;
}
.company h2{
  text-align:center;
  margin-bottom: 20px;
}
.company dl {
	color: #000000;
	line-height: 1.3;
	width: 520px;
	margin:0 auto;
}
.company dl dd {
	margin-top: -1.4em;
	margin-bottom: 10px;
	padding-bottom: 5px;
	padding-left: 9em;
	border-bottom-width: 1px;
	border-bottom-style: dashed;
	border-bottom-color: #CCC;
  min-width: 300px;
}
.origin{
  width:600px;
	margin:0 auto 60px;
}
.origin h2{
  text-align:center;
  margin-bottom: 20px;
}
.origin p{
  line-height: 2;
  text-indent:1em;
  margin-bottom: 10px;
}

.pc{
  display: block;
}
.sp{
  display: none;
}

dialog{
  position:fixed;
  left: 50%;
  top: 50%;
  transform: translateX(-50%) translateY(-50%);
  border:3px solid #000;
  padding:10px;
}
dialog img{
  margin:10px 0;
}

footer {
  background-color: #3F6485;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 20px;
  gap: 30px;
}

footer a{
  color: #fff;
}
footer ul{
  line-height:2em;
}
footer ul li{
  list-style: none;
  display: inline-block;
  margin-right:10px;
}
footer ul li::before {
  content: ">";
  color: #fff;
  margin-right:5px;
}

#page-top {
  position: fixed;
  right: 20px;
  bottom: 30px;
  font-size: 1.2rem;
  line-height: 1.2rem;
  background: url(../images/arrow-top-black.svg) no-repeat;
  background-size: 10px 7px;
  background-position: center 26px;
  background-color: #fff;
  color: #737373;
  width: 60px;
  height: 60px;
  border: solid 1px #004098;
  border-radius: 0;
  box-shadow: 0 2px 10px -6px rgba(0, 0, 0, .5), 0 3px 10px -4px rgba(0, 0, 0, .2);
  z-index: 999;
  filter: alpha(opacity=80);
  -moz-opacity: 0.8;
  opacity: 0.8;
}

/* =========================
   レスポンシブ対応
========================= */

/* タブレット（768px以下） */
@media screen and (max-width: 768px) {

  /* ヘッダー */
  header {
    flex-direction: column;
    gap: 10px;
  }

  header nav{
    width:auto;
  }

  .nav a {
    margin-left: 0;
    margin-right: 10px;
  }

  header .contact{
    position:relative;
    display:inline;
    margin-top:0;
    height:auto;
    padding:5px;
    border-radius: 4px;
    margin-top:-10px;
  }

  /* サービス概要 */
  .service-item {
    flex-direction: column;
  }

  .service-text,
  .service-image {
    width: 100%;
  }

  .service-image {
    height: 200px;
  }

  .pc{
    display: none;
  }
  .sp{
    display: block;
  }

  .company dl {
    width: 90%;
  }

  .origin{
    width: 90%;
  }

  dialog{
    width: 90%;
  }

  footer ul{
    width: 90%;
  }
}

/* スマホ（480px以下） */
@media screen and (max-width: 480px) {

  body {
    font-size: 14px;
  }

  /* 余白調整 */
  .news,
  .service {
    padding: 30px 5%;
  }

  /* PDFリンク */
  .pdf-links {
    flex-direction: column;
  }

  .btn.center {
    margin-left: auto;
    margin-right: auto;
  }

  .company dl dd {
	min-width: auto;
  }

  .pc{
    display: none;
  }
  .sp{
    display: block;
  }
}