@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
/*common*/
html {
  scroll-behavior: smooth; }
.side-nav{
	display:none;
}
.renewrap {
  max-width: 1200px !important; }
  .renewrap p {
    font-size: 1rem;
    line-height: 2;
    color: #202020;
    letter-spacing: 0.5px; }

.posttop {
  background: #E9ECE5;
  padding: 30px 10px;
  margin: 0 auto; }
  .posttop p {
    max-width: 1200px;
    margin: 0 auto;
    text-decoration: underline;
    font-size: 1rem;
    letter-spacing: 1px; }

.arrow-css-link {
  position: relative;
  padding-right: 1.5em;
  color: #000;
  text-decoration: none;
  display: inline-block; }
  .arrow-css-link::after {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    border-left: 8px solid #000;
    transition: transform 0.3s ease; }
  .arrow-css-link:hover::after {
    transform: translateY(-50%) translateX(4px); }

.servicecommon {
  margin-bottom: 70px; }
  .servicecommon .titlewrap {
    display: flex;
    position: relative;
    align-items: center;
    gap: 2em;
    padding-bottom: 10px;
    margin-bottom: 20px; }
    .servicecommon .titlewrap::after {
      content: '';
      display: block;
      height: 3px;
      width: 100%;
      background-color: #ddd;
      position: absolute;
      bottom: 0;
      left: 0;
      z-index: 1; }
    .servicecommon .titlewrap::before {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      height: 3px;
      width: 40px;
      background-color: #2c7c3f;
      z-index: 2; }
    .servicecommon .titlewrap img {
      width: 70px;
      height: 70px; }
  .servicecommon h2 {
    position: relative;
    font-size: 24px !important;
    font-weight: 600 !important;
    margin: 0 !important; }

/*topページ*/
.hero {
  all: unset;
  all: initial;
  position: relative !important;
  height: 90vh !important;
  background-image: url("images/hero.png") !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-size: cover !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  z-index: 9999;
  padding-left: 5%; }
  .hero-content {
    color: #fff;
    max-width: 700px; }
  .hero-title {
    font-size: 3.5rem;
    font-weight: 600;
    margin-bottom: 1rem;
    color: #fff;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5) !important; }
    .hero-title ruby {
      letter-spacing: -5px; }
  .hero-sub {
    font-size: 1.1rem;
    line-height: 1.8; }
  .hero .hero-content {
    margin-top: 100px; }

@media screen and (max-width: 768px) {
  .hero {
    padding: 0; }

  .hero-content {
    padding: 0 20px; }

  .hero-content {
    color: #fff;
    max-width: 600px; }
  .hero-title {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 1rem;
    color: #fff;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5) !important; }
  .hero-sub {
    font-size: 1rem;
    line-height: 1.8; }

  .paper-plane {
    position: absolute;
    top: 20%;
    right: 20%;
    width: 100px !important; }
    .paper-plane img {
      width: 100%;
      display: block; } }
.paper-plane {
  position: absolute;
  top: 20%;
  right: 15%;
  width: 230px; }
  .paper-plane img {
    width: 100%;
    display: block; }

.topsec01 .section-heading {
  color: #000;
  padding: 40px 0;
  border-bottom: 1px solid #B8B8B8; }
  .topsec01 .section-heading .section-en {
    font-size: 3rem;
    font-weight: 700;
    margin-bottom: 0.1em;
    line-height: 1.2;
    font-family: "Noto Sans JP", sans-serif;
    letter-spacing: 5px; }
  .topsec01 .section-heading .section-ja {
    font-size: 0.9rem;
    line-height: 1.4;
    margin: 0; }

.topsec02 {
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 0 20px 0;
  background-color: #fff; }
  @media screen and (max-width: 768px) {
    .topsec02 .contactimgleft, .topsec02 .contactimgright {
      display: none; } }
  .topsec02 .contactimgleft {
    width: 450px;
    position: absolute;
    left: -20vw;
    bottom: -5%; }
  .topsec02 .contactimgright {
    width: 600px;
    position: absolute;
    right: -20vw;
    bottom: -5%; }
  @media screen and (max-width: 768px) {
    .topsec02 .secinnerimg {
      display: none; }
    .topsec02 .bizitem {
      margin-bottom: 50px; }
      .topsec02 .bizitem .item {
        width: calc(97% / 3); }
    .topsec02 .seccontact {
      padding-bottom: 50px; } }
  @media screen and (min-width: 768px) {
    .topsec02 .bizitem {
      margin-bottom: 100px;
      width: 90%; }
      .topsec02 .bizitem .item {
        width: calc(90% / 6); }
    .topsec02 .seccontact {
      z-index: -2;
      padding-bottom: 150px; } }
  .topsec02 .bizitem {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    gap: 1%; }
    .topsec02 .bizitem .item {
      text-align: center; }
      .topsec02 .bizitem .item img {
        width: 100%;
        margin-bottom: 5px;
        padding: 10px 20px; }
      .topsec02 .bizitem .item p {
        font-size: 15px;
        line-height: 1.2; }
  .topsec02 .seccontact {
    text-align: center; }
    .topsec02 .seccontact .btn-arrow {
      background-color: #1f3a2d;
      color: #fff;
      padding: 1em 1.5em;
      min-width: 160px;
      text-decoration: none;
      transition: background-color 0.3s; }
      .topsec02 .seccontact .btn-arrow .btn-icon {
        margin-left: 1em;
        font-weight: normal; }
  .topsec02 .secinner h2 {
    font-size: 24px;
    font-weight: 800;
    margin-bottom: 50px; }
  .topsec02 .secinner p.midashi {
    background: #2E683A;
    padding: 10px 20px;
    font-size: 20px;
    border-radius: 20px;
    display: inline;
    color: #fff; }
  .topsec02 .secinner ul {
    margin-top: 30px; }
    .topsec02 .secinner ul li {
      font-size: 22px;
      font-weight: 500;
      color: #000; }

@media screen and (min-width: 768px) {
  .topsec02 {
    position: relative;
    z-index: 0; }
    .topsec02 .secinner {
      width: 65%; }
    .topsec02 .secinnerimg {
      position: absolute;
      right: -30%;
      top: 5%;
      z-index: -1;
      width: 55%; } }
.topsec03 {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  background: #f0f0f0;
  padding: 4rem 2rem;
  position: relative;
  z-index: 2; }
  .topsec03 .newswrap {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto; }
    .topsec03 .newswrap .newsinner .post-list {
      list-style: none;
      padding: 0;
      margin: 0; }
      .topsec03 .newswrap .newsinner .post-list li {
        border-bottom: 1px solid #ccc;
        padding: 1.2em 0;
        display: flex;
        flex-direction: column; }
        .topsec03 .newswrap .newsinner .post-list li .post-date {
          color: #666;
          font-size: 0.85rem;
          margin-bottom: 0.3em; }
        .topsec03 .newswrap .newsinner .post-list li .post-title {
          color: #000;
          font-size: 1rem;
          text-decoration: none; }
          .topsec03 .newswrap .newsinner .post-list li .post-title:hover {
            text-decoration: underline; }
    .topsec03 .newswrap .newsinner .btn-arrow {
      display: inline-flex;
      align-items: center;
      justify-content: space-between;
      background-color: #1f3a2d;
      color: #fff;
      padding: 0.8em 1.5em;
      min-width: 160px;
      text-decoration: none;
      transition: background-color 0.3s; }
      .topsec03 .newswrap .newsinner .btn-arrow .btn-icon {
        margin-left: 1em;
        font-weight: normal; }
      .topsec03 .newswrap .newsinner .btn-arrow:hover {
        background-color: #29523f; }
    .topsec03 .newswrap .newsinner .section-heading {
      color: #000; }
      .topsec03 .newswrap .newsinner .section-heading .section-en {
        font-size: 3rem;
        font-weight: 700;
        margin-bottom: 0.1em;
        line-height: 1.2;
        font-family: "Noto Sans JP", sans-serif;
        letter-spacing: 5px; }
      .topsec03 .newswrap .newsinner .section-heading .section-ja {
        font-size: 0.9rem !important;
        line-height: 1.4 !important;
        margin: 0 0 20px 0 !important;
        text-shadow: none !important; }

@media screen and (min-width: 768px) {
  .topsec03 .newswrap {
    display: flex; }
    .topsec03 .newswrap .newsinner:nth-child(1) {
      flex: 3; }
    .topsec03 .newswrap .newsinner:nth-child(2) {
      flex: 7; } }
/*商品・サービス*/
.service_01 {
  margin-top: 50px;
  margin-bottom: 70px; }
  .service_01 h2 {
    font-size: 35px !important;
    color: #2E683A;
    font-weight: 500 !important; }

.service_06 .weblist h4 {
  font-size: 1rem;
  border-bottom: 1px solid #B2B2B2; }
.service_06 .weblist ul {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: flex-start; }
  .service_06 .weblist ul li {
    width: calc(33.333% - 0.67rem); }
    .service_06 .weblist ul li span.webtitle {
      font-size: 0.9rem;
      color: #333; }
    .service_06 .weblist ul li a {
      display: inline-flex;
      align-items: center;
      gap: 0.5em;
      margin-top: 5px;
      padding: 0.2em 3em 0.2em 1em;
      border: 1px solid #747474;
      color: #747474;
      text-decoration: none;
      font-weight: 500;
      transition: all 0.3s ease;
      background-color: transparent;
      width: 90%; }
      .service_06 .weblist ul li a::before {
        content: '→';
        display: inline-block;
        transition: transform 0.3s ease; }
      .service_06 .weblist ul li a:hover {
        background-color: #747474;
        border: 1px solid #747474;
        color: #fff; }
        .service_06 .weblist ul li a:hover::before {
          transform: translateX(-4px); }

@media screen and (max-width: 768px) {
  .service_06 .weblist ul li {
    width: calc(50% - 0.5rem); }

  .service_07 .beforefter ul, .service_08 .beforefter ul {
    display: block !important; }

  .service_09 {
    display: block !important;
    padding: 20px !important; } }
.service_09 {
  background: linear-gradient(170deg, #184d2d 50%, #2c7c3f 50%);
  display: flex;
  align-items: center;
  justify-content: space-around;
  padding: 30px 100px; }
  .service_09 .cotanctblock {
    color: #fff; }
    .service_09 .cotanctblock h4 {
      color: #fff !important;
      font-size: 1.3rem !important;
      font-weight: 700;
      margin: 0; }
    .service_09 .cotanctblock h5 {
      color: #fff !important;
      font-size: 2.5rem !important;
      margin: 0 !important;
      font-family: "Noto Sans JP", sans-serif;
      letter-spacing: 3px; }
    .service_09 .cotanctblock h6 {
      color: #fff !important;
      margin: 0 !important;
      font-size: 1rem !important; }
  .service_09 .flexleft {
    flex: 1; }
  .service_09 .flexright {
    flex: 1; }

.beforefter ul {
  display: flex;
  justify-content: space-around;
  gap: 3%; }
  .beforefter ul li {
    text-align: center;
    font-size: 15px;
    color: #000; }
    .beforefter ul li img {
      margin-bottom: 10px;
      vertical-align: middle; }
.beforefter .service-list {
  display: flex;
  gap: 2em;
  padding: 0;
  margin: 0;
  list-style: none;
  flex-wrap: wrap; }
  .beforefter .service-list li {
    flex: 1;
    text-align: center; }
    .beforefter .service-list li a {
      display: block;
      text-decoration: none;
      color: inherit; }
      .beforefter .service-list li a img {
        width: 100%;
        height: auto;
        display: block; }
      .beforefter .service-list li a span {
        display: block;
        margin-top: 0.5em;
        font-size: 1rem; }
  @media (max-width: 768px) {
    .beforefter .service-list {
      flex-direction: column; }
      .beforefter .service-list li {
        width: 100%; } }

/*ライブオフィス*/
.liveoffice_01 {
  display: flex;
  flex-direction: column;
  gap: 2em;
  padding: 2em 0; }
  .liveoffice_01 .text-block {
    display: flex;
    flex-direction: column;
    width: 100%;
    justify-content: center;
    align-items: center; }
    .liveoffice_01 .text-block img {
      max-width: 400px; }
    .liveoffice_01 .text-block h2 {
      font-size: 1.8rem;
      order: 1; }
    .liveoffice_01 .text-block .image-sp {
      order: 2; }
      .liveoffice_01 .text-block .image-sp img {
        width: 100%;
        height: auto;
        display: block; }
    .liveoffice_01 .text-block .description-block {
      order: 3; }
      .liveoffice_01 .text-block .description-block h3 {
        font-size: 24px;
        margin-bottom: 0.5em;
        text-shadow: none; }
      @media (max-width: 769px) {
        .liveoffice_01 .text-block .description-block h3 {
          font-size: 20px; } }
      .liveoffice_01 .text-block .description-block p {
        font-size: 1rem;
        line-height: 1.6; }
  .liveoffice_01 .image-pc {
    display: none; }
  @media (min-width: 769px) {
    .liveoffice_01 {
      flex-direction: row; }
      .liveoffice_01 .text-block {
        width: 50%; }
        .liveoffice_01 .text-block .image-sp {
          display: none; }
      .liveoffice_01 .image-pc {
        display: block;
        width: 50%; }
        .liveoffice_01 .image-pc img {
          width: 100%;
          height: auto;
          display: block; } }

.liveoffice_02 {
  padding: 2rem 1rem; }
  .liveoffice_02 .block-container {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 2rem; }
    @media (max-width: 768px) {
      .liveoffice_02 .block-container {
        flex-direction: column; } }
  .liveoffice_02 .block-image {
    flex: 0 0 35%; }
    .liveoffice_02 .block-image img {
      width: 100%;
      height: auto;
      display: block;
      padding: 0 20px; }
    @media (max-width: 768px) {
      .liveoffice_02 .block-image {
        flex: 0 0 100%; } }
  .liveoffice_02 .block-text {
    flex: 0 0 60%;
    display: flex;
    flex-direction: column;
    justify-content: space-between; }
    @media (max-width: 768px) {
      .liveoffice_02 .block-text {
        flex: 0 0 100%; } }
    .liveoffice_02 .block-text .text-top h2 {
      font-size: 1.8rem;
      margin-bottom: 1rem; }
    .liveoffice_02 .block-text .text-top p {
      font-size: 1rem;
      margin-bottom: 1rem; }
    .liveoffice_02 .block-text .text-bottom {
      margin-top: auto; }
      .liveoffice_02 .block-text .text-bottom .btn-arrow {
        display: inline-flex;
        align-items: center;
        gap: 0.5rem;
        text-decoration: none;
        color: #fff;
        background: #2e693a;
        font-weight: bold;
        border: 1px solid #2e693a;
        padding: 0.6rem 1rem;
        border-radius: 4px;
        transition: 0.3s; }
        .liveoffice_02 .block-text .text-bottom .btn-arrow:hover {
          background: #fff;
          color: #2e693a; }
          .liveoffice_02 .block-text .text-bottom .btn-arrow:hover .btn-icon {
            transform: translateX(4px); }
        .liveoffice_02 .block-text .text-bottom .btn-arrow .btn-icon {
          transition: transform 0.3s; }
  .liveoffice_02 .sec02gallery {
    margin: 100px 0 50px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 3%; }
    .liveoffice_02 .sec02gallery .imgblock {
      width: calc(95% / 2);
      margin-bottom: 50px; }

.liveoffice_03 h2 {
  position: relative;
  display: block;
  font-size: 1.2rem !important;
  font-weight: 600 !important; }
  .liveoffice_03 h2::after {
    content: '';
    display: block;
    height: 3px;
    width: 100%;
    background-color: #ddd;
    margin-top: 0.5rem;
    position: relative;
    z-index: 1; }
  .liveoffice_03 h2::before {
    content: '';
    position: absolute;
    bottom: 0px;
    left: 0;
    height: 3px;
    width: 50px;
    background-color: #2c7c3f;
    z-index: 2; }
.liveoffice_03 h4 {
  font-size: 17px !important; }
.liveoffice_03 p {
  text-align: left; }
.liveoffice_03 img {
  display: block;
  max-width: 900px;
  width: 100%;
  height: auto;
  margin: 50px auto 40px auto; }
.liveoffice_03 .text-bottom {
  margin-top: auto;
  text-align: center; }
  .liveoffice_03 .text-bottom .btn-arrow {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    color: #fff;
    background: #2e693a;
    font-weight: bold;
    border: 1px solid #2e693a;
    padding: 0.6rem 2rem;
    border-radius: 4px;
    transition: 0.3s; }
    .liveoffice_03 .text-bottom .btn-arrow:hover {
      background: #fff;
      color: #2e693a; }
      .liveoffice_03 .text-bottom .btn-arrow:hover .btn-icon {
        transform: translateX(4px); }
    .liveoffice_03 .text-bottom .btn-arrow .btn-icon {
      transition: transform 0.3s; }

/*　ヘッダー　*/
.hero-section {
  position: relative;
  height: 325px;
  background: linear-gradient(170deg, #184d2d 50%, #2c7c3f 50%);
  display: flex;
  align-items: center;
  justify-content: center; }
  .hero-section .hero-bg {
    width: 100%;
    padding: 2rem;
    color: #fff;
    text-align: left;
    position: relative; }
    .hero-section .hero-bg .hero-inner {
      max-width: 1200px;
      margin: 0 auto; }
    .hero-section .hero-bg .hero-title {
      font-size: 2.5rem;
      font-weight: bold;
      margin-bottom: 1rem;
      color: #fff; }
    .hero-section .hero-bg .breadcrumb {
      max-width: 1200px;
      margin: 0 auto;
      font-size: 0.85rem;
      color: #fff;
      letter-spacing: 1px; }
      .hero-section .hero-bg .breadcrumb a {
        color: #fff;
        text-decoration: underline; }
        .hero-section .hero-bg .breadcrumb a:hover {
          text-decoration: none; }
  @media (min-width: 768px) {
    .hero-section .breadcrumb {
      position: absolute;
      bottom: -50%; } }
  @media (max-width: 768px) {
    .hero-section {
      height: auto; }
      .hero-section .hero-bg {
        padding: 1.5rem 1rem; }
        .hero-section .hero-bg .hero-title {
          font-size: 1.5rem; } }

@media (max-width: 768px) {
  .hero-section .hero-bg {
    padding: 3rem 1rem !important; } }
/*　固定ページタイトル＆モバイルメニュー*/
.site-header {
  background: #fff;
  border-bottom: 1px solid #eee;
  position: relative;
  z-index: 99999; }
  .site-header .header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    padding: 1.5rem 0; }
    .site-header .header-inner .logo img {
      height: 40px; }
    .site-header .header-inner .main-nav ul {
      display: flex;
      gap: 1.5rem;
      list-style: none;
      margin: 0;
      padding: 0; }
      .site-header .header-inner .main-nav ul li a {
        text-decoration: none;
        color: #000;
        font-weight: bold; }
        .site-header .header-inner .main-nav ul li a.contact-btn {
          background: #214f34;
          color: #fff;
          padding: 0.5rem 1rem;
          border-radius: 4px; }
    .site-header .header-inner .main-nav.is-open {
      display: block !important; }
    .site-header .header-inner .hamburger {
      display: none;
      flex-direction: column;
      justify-content: center;
		margin-right:10px;
      gap: 5px;
      cursor: pointer; }
      .site-header .header-inner .hamburger span {
        width: 25px;
        height: 3px;
        background: #000;
        transition: all 0.3s; }
      .site-header .header-inner .hamburger.is-active span:nth-child(1) {
        transform: rotate(45deg) translateY(8px); }
      .site-header .header-inner .hamburger.is-active span:nth-child(2) {
        opacity: 0; }
      .site-header .header-inner .hamburger.is-active span:nth-child(3) {
        transform: rotate(-45deg) translateY(-8px); }
  @media (max-width: 768px) {
    .site-header .main-nav {
      display: none !important;
      position: absolute;
      top: 60px;
      left: 0;
      right: 0;
      background: #fff;
      padding: 1rem;
      z-index: 9999; }
      .site-header .main-nav ul {
        flex-direction: column;
        gap: 1rem; }
      .site-header .main-nav.is-open {
        display: block !important;
        flex-direction: column; }
    .site-header .hamburger {
      display: flex !important; } }
