@media screen and (max-width:1440px) {
  .sec-greeting .btn a,
  .greeting-text-title,
  .greeting-text-head,
  .greeting-text-content { background-color: rgba(255, 255, 255, 0.7);}
}
@media screen and (min-width:1050px) { .sp { display: none;}}
@media screen and (max-width:1049px) {
  body { width: 100%; overflow-x: hidden;}
  .pc { display: none;}
  .header { height: var(--header-height-sp); position: fixed;}
  .header .logo { max-width: 140px; margin-left: 15px;}
  .sp-menu {
    width: 40px;
    height: 40px;
    position: relative;
    right: 5%;
  }
  .sp-menu-bar {
    height: 1px;
    width: 20px;
    background-color: var(--primary);
    position: absolute;
    top: 0; bottom: 0; left: 0; right: 0;
    margin: auto;
  }
  .sp-menu-bar::before,
  .sp-menu-bar::after {
    content: "";
    position: absolute;
    height: 1px;
    width: 20px;
    background-color: var(--primary);
    position: absolute;
    left: 0; right: 0;
    margin: auto;
    transition: all 0.5s ease;
  }
  .sp-menu-bar::before { top: -5px;}
  .sp-menu-bar::after { bottom: -5px;}
  .sp-menu.active .sp-menu-bar { height: 0;}
  .sp-menu.active .sp-menu-bar::before { transform: rotate(45deg); top: 0; transition: all 0.5s ease;}
  .sp-menu.active .sp-menu-bar::after { transform: rotate(-45deg); bottom: auto; top: 0; transition: all 0.5s ease;}
  .header-nav {
    position: absolute;
    width: 100%;
    max-width: 500px;
    height: calc(100vh - var(--header-height-sp));
    background: var(--primary);
    right: -100%;
    top: var(--header-height-sp);
    flex-direction: column;
    gap: 24px;
    padding-top: 80px;
    transition: all 0.5s ease;
  }
  .header-nav a { color: var(--white);}
  .header-nav.active { right: 0; transition: all 0.5s ease;}
  .header-tel a {
    margin-top: 40px;
    margin-left: 0;
    background-color: var(--white);
    color: var(--primary);
  }
  .header-tel a::before { background-image: url(../img/icon-tel.png);}
  .first-view { height: 90vh; min-height: 500px; background-image: url(../img/first-view-sp.jpg);}
  .sec-greeting { width: 90%; padding-top: 0; background: none; height: auto;}
  .sec-greeting .btn a, .greeting-text-title, .greeting-text-head, .greeting-text-content {
    background-color: transparent;
  }
  .greeting-text-content::before {
    content: "";
    display: block;
    width: 100%;
    height: 60vw;
    background: url(../img/bg-greeting-sp.jpg) no-repeat center bottom;
    background-size: cover;
    margin-bottom: 40px;
  }
  .sec-business { padding-bottom: 100px;}
  .business-item { display: block; height: auto;}
  .business-item:nth-child(odd),.business-item:nth-child(even) { margin: 0;}
  .business-item-img, .business-item-text { width: 100%;}
  .business-item-text, .business-item-reform .business-item-text { padding: 15px 5% 30px;}
  .business-item-title::before { font-size: 80%;}
  .business-item-link { width: 100%; text-align: right;}
  .sec-works { background-size: 220% auto;}
  .sec-contact .sec-title .title { text-align: center;}
  .contact-inner { display: block; text-align: center;}
  .contact-tel a { padding: 12px 0 12px 10%; margin-top: 40px;}
  .contact-tel a::before { left: 7%; width: 33px; height: 42px;}
  .contact-tel-no { margin-bottom: 0;}
  .kv { height: 200px;}
  .company-greeting-box { flex-direction: column-reverse;}
  .company-greeting-text { width: 100%; margin: 0;}
  .company-greeting-img { width: 150px; margin: 0 auto 40px;}
  .company-greeting-text p:last-child { text-align: center;}
  .page-works-item { width: 100%; max-width: 600px; min-width: 100%; margin: auto;}
  .page-works-item-content { padding: 32px 5%;}
  .page-works-item-title { font-size: max(5vw, 20px);}
  .footer-inner { display: block; text-align: center;}
  .footer-text { margin-bottom: 40px;}
  .footer-logo { max-width: 200px; margin: 0 auto 24px;}
  .footer-nav { flex-direction: column; row-gap: 20px;}
  .page-contact-box { background-size: 180% auto; padding: 40px 5%;}
  .page-contact-item { padding: 8px 0 16px 10%; width: 90%; flex-direction: column;}
  .page-contact-item a { padding: 8px 5% 16px 13%;}
  .page-contact-item a.mail { line-height: 12vw; padding: 12px 5% 12px 15%;}
  .page-contact-item a::before { width: 8vw; height: 8vw; left: 8%;}
  .page-contact-text { margin-bottom: 20px;}
  .page-footer { padding-top: 50px; margin-top: -180px;}
  .form-wrap { padding: 40px 5%; margin: 0 5%;}
  .form-box { margin: 40px auto;}
  .form-item dt { font-size: 16px;}
  .form-item small { font-size: 14px;}
  .form-head-text { text-align: left;}
}
@media screen and (max-width:765px) {
  .first-view { height: 90vh; min-height: 680px; max-height: 850px;}
}