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

html {
  font-size: 62.5%;
}


body {
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  margin: 0;
  padding: 0;
  background-color: white;
  color: #4b2c20;
  display: grid;
  grid-template: 
        "header" 8vh
        "main" 1fr
        "footer" auto
        / 1fr;
  min-height: 100vh;
}

header {
  position: fixed;
  width: 100%;
  background-color: #c46a35;
  color: white;
  text-align: center;
  z-index: 100;
  grid-area: header;
}

main {
  grid-area: main;
}

/* ホーム */

nav {
  display: flex;
  justify-content: space-around;
  align-items: center;
  min-height: 8vh;
}

nav ul {
  list-style: none;
  display: flex;
  justify-content: space-around;
  width: 100%;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin: 0;
  padding: 0.5rem 0;
  font-size: 2rem
}
nav a {
  color: white;
  text-decoration: none;
  font-weight: bold;
}
.burger {
  display: none;
  cursor: pointer;
}
.burger div {
  width: 2.5rem;
  height: 0.3rem;
  background-color: white;
  margin: 0.5rem;
  transition: all 0.5s ease-in-out;
}

.logo {
  flex: 4;
  display: flex;          /* 横並び */
  flex-direction: row;
  align-items: center;    /* 縦の位置を中央に揃える */
  gap: 1rem;              /* ロゴと文字の間隔 */
}
h1 {
  font-size: 3rem;
}

.logoimage {
  width: 5rem;
}

.menu {
  flex: 6;
}

.nav-active {
  transform: translateX(0%) !important;

}

@keyframes navLinksFade {
  0% {
    opacity: 0;
    transform: translateX(5rem);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

.toggle .line1 {
  transform: rotate(-45deg) translate(-0.5rem, 0.6rem);
}
.toggle .line2 {
  opacity: 0;
}
.toggle .line3 {
  transform: rotate(405deg) translate(-0.5rem, -0.6rem);
}


section {
    position: relative;
}


.hero-image {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.hero-image img {
  position: relative;
  object-fit: cover;
  width: 100%;
  display: block;
  opacity: 0;
  transform: scale(1.2);
  transition: opacity 2s ease-out, transform 2s ease-out;
}
.hero-image img.show {
  opacity: 1;
  transform: scale(1);
}
.hero-text {
  position: absolute;
  justify-content: left;
  font-size: 5rem;
  top: 15%;
  left: 10%;
  width: 100%;
}


.hero-text p {
  text-align: left;
  font-weight: 700;
  color: #c46a35;
  text-shadow: 0.3rem 0.3rem 0.5rem white,-0.3rem -0.3rem 0.5rem white,0.3rem -0.3rem 0.5rem white,-0.3rem 0.3rem 0.5rem white; /* 影をつけて縁取り風 */

}

.lead-text {
  margin: 5rem 2rem 5rem 2rem;
  padding: 2rem 1rem;
  text-align: center;
  font-size: 2rem;
  line-height: 1.8;
}

.sp_br {
  display: none;
}

.detail {
  position: relative;
  margin-top: 1rem;
  margin-bottom: 5rem;
}

.theme {
  background-color: #c46a35;
  text-align: center;
  color: white;
  padding-left: 7%;
  padding-right: 7%;
  margin-left: 25%;
  margin-right: 25%;
  margin-bottom: 2rem;
}

h2 {
  font-size: 2.2rem;
}
h3 {
  font-size: 2.1rem;
}
.container-a {
  display: flex;
  justify-content: space-around;
}

.item-a {
  background-color: bisque;
  border-radius: 1rem;
  box-shadow: 0 0.2rem 0.5rem rgba(0,0,0,0.05);
  margin: 1rem;
  padding: 1rem;
}

.itemimage-a {
  padding-left: 15%;
}

.box {
  text-align: left;
  font-size: 2rem;
}

.detail-link {
  text-decoration: none;
  text-align: center;
  font-weight: bold;
  background-color: bisque;
  border-radius: 1rem;
  box-shadow: 0 0.2rem 0.5rem rgba(0,0,0,0.05);
  font-size: 2rem;
  padding: 0% 10% 0% 10%;
  margin: 0% 15% 15% 15%;
}

.detail-link a {
  color: blue;
}

.detail-link a:hover {
  color: darkblue;
}

.blog-back {
  border-radius: 0%;
  margin: 25px 25px;
}

.fade-in-1 {
  opacity: 0;
  transform: translateY(3rem);
  transition: opacity 1.5s ease-out, transform 1.5s ease-out;
}

.fade-in-1.show {
  opacity: 1;
  transform: translateY(0);
}

.fade-in-2 {
  opacity: 0;
  transform: translateY(3rem);
  transition: opacity 1.5s ease-out, transform 1.5s ease-out;
}

.fade-in-2.show {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.5s;
}

.fade-in-3 {
  opacity: 0;
  transform: translateY(3rem);
  transition: opacity 1.5s ease-out, transform 1.5s ease-out;
}

.fade-in-3.show {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 1s;
}

.fade-in-4 {
  opacity: 0;
  transform: translateY(3rem);
  transition: opacity 1.5s ease-out, transform 1.5s ease-out;
}

.fade-in-4.show {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 1.5s;
}

.map {
  margin-top: 2rem;
  text-align: center;
}
.map iframe {
  width: 90%;
  height: 50rem;
  border: 0;
  display: block;
  margin: 0 auto;
}




.container-b {
  display: flex;
  justify-content: space-around;
}



.item-b1 {
  margin: 1rem;
  flex: 2;
}

.item-b2 {
  background-color: bisque;
  border-radius: 1rem;
  box-shadow: 0 0.2rem 0.5rem rgba(0,0,0,0.05);
  padding: 4rem 7rem 4rem 7rem;
  margin: 1rem;
  flex: 3;
}

.itemimage-b img {
  position: relative;
  width: 100%;
}

.otoiawasetheme {
  background-color: #c46a35;
  text-align: center;
  color: white;
  margin-left: 30%;
  margin-right: 30%;
  margin-bottom: 2rem;
}

.otoiawase {
  text-align: center;
  background-color: bisque;
  border-radius: 1rem;
  box-shadow: 0 0.2rem 0.5rem rgba(0,0,0,0.05);
  font-size: 2rem;
  color: #4b2c20;
  padding: 1.5rem 1.5rem 1.5rem 1.5rem;
  margin-left: 20%;
  margin-right: 20%;
}

/* 業務内容ページ */
.subhero-image {
  position: relative;
  width: 100%;
  height: 30vh;
  overflow: hidden;
}

.subhero-image img {
  position: relative;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0;
  transform: scale(1.2);
  transition: opacity 2s ease-out, transform 2s ease-out;
}

.subhero-image img.show {
  opacity: 1;
  transform: scale(1);
}

.subhero-text {
  position: absolute;
  color: white;
  top: 40%;
  left: 50%;
  transform: translate(-50%,-50%);
  padding-top: 8vh;
  font-size: 5rem;
}


/* 事務所についてページ */

.mini-space {
  margin-top: 8vh;
}

.table {
    margin: 0 auto 15rem;
    max-width: 100rem;
    padding: 0 5rem;
    font-size: 2rem;
    text-align: left;
    line-height: 2em
}
.access {
  padding:3% 15%;
  font-size: 2rem
}

.table dt {
    border-top: 0.1rem solid #ccc;
    padding: 2.5rem 0 0
}

.table dd {
    font-weight: 500;
    margin: -2em 0 0;
    padding: 0 0 2.5rem 15.5rem
}


.table dd span {
    font-weight: 400
}

.table dd:last-child {
    border-bottom: 0.1rem solid #ccc
}

/* お問い合わせ */

.contact {
  background-color: bisque;
  padding: 4rem 2rem;
  margin: 4rem auto;
  border-radius: 1.2rem;
  max-width: 100rem;
  box-shadow: 0 0.4rem 1.2rem rgba(0,0,0,0.1);
}


.contact p {
  text-align: center;
  margin-bottom: 3rem;
  color: #555;
}

.contact-form .form-group {
  margin-bottom: 2rem;
}

.contact-form label {
  display: block;
  font-weight: bold;
  font-size: 2rem;
  margin-bottom: 0.6rem;
}

.contact-form .required {
  color: red;
  font-size: 0.9em;
}

.contact-form input,
.contact-form textarea {
  width: 100%;
  padding: 1rem;
  border: 0.1rem solid #ccc;
  border-radius: 0.8rem;
  font-size: 2rem;
}

.contact-form textarea {
  resize: vertical;
}

.submit-btn {
  display: block;
  width: 100%;
  background-color: #d2691e;
  color: white;
  padding: 1.2rem;
  border: none;
  border-radius: 0.8rem;
  font-size: 1.8rem;
  cursor: pointer;
  transition: background-color 0.3s;
}

.submit-btn:hover {
  background-color: #a0522d;
}

.blog-title {
  background-color: #c46a35;
  color: white;
  margin: 15px 10%;
  padding: 10px 10px;
  text-align: center;
}
.blog-article {
  background-color: bisque;
  margin: 25px 25px;
  padding: 10px 10px;
  font-size: 2rem;
}




footer {
  background-color: #c46a35;
  font-size: 1.8rem;
  color: white;
  text-align: center;
  padding: 1rem;
  grid-area: footer;
}

@media screen and (max-width: 1024px) {
  h1 {
   font-size: 2.5rem;
  }
  nav ul {
    width: 100%;
    justify-content: flex-end;
    padding-right: 5%;
    font-size: 1.8rem;
    gap: 1rem;
  }
  .logoimage {
    width: 5rem;
  }
  h2{
    font-size: 2rem;
  }
  h3 {
    font-size: 1.9rem;
  }
  .hero-text {
    font-size: 3.2rem;
    padding-top: 2rem;
  }
  .lead-text {
    font-size: 1.8rem;
  }
  .theme {
    margin-left: 20%;
    margin-right: 20%;
  }
  .box,.detail-link,.otoiawase,.table,.access,.contact-form label,.contact-form textarea,.submit-btn,.blog-article {
    font-size: 1.8rem;
  }
  .otoiawasetheme {
    margin-left: 20%;
    margin-right: 20%;
  }
  .subhero-text {
    font-size: 2.5rem;
  }
  .subhero-image {
    height: 20vh;
  }
  .contact {
    margin: 4rem 5rem;
  }
}

@media screen and (max-width: 896px){
  h1 {
   font-size: 2.3rem;
  }
  h2 {
    font-size: 1.9rem;
  }
  h3 {
    font-size: 1.8rem;
  }
  nav ul {
    width: 100%;
    justify-content: flex-end;
    padding-right: 5%;
    font-size: 1.5rem;
  }
  .logo {
    gap: 0rem;
    flex: 4.5;
  }
  .menu {
    flex: 5.5;
  }
  .hero-text {
    font-size: 2.5rem;
    left: 5%;
    padding-right: 1rem;
    width: 60rem;
  }
  .sp_br {
    display: block;
  }
  .map iframe {
    width: 95%;
    height: 25rem;
  }
  .lead-text,.box,.detail-link,.otoiawase,.table,.access,.contact-form label,.contact-form textarea,.submit-btn,.blog-article,footer {
    font-size: 1.5rem;
  }

  .contact {
    margin: 4rem 2rem;
  }
  .theme {
    padding-left: 1%;
    padding-right: 1%;
  }
}

@media screen and (max-width: 768px){
  body {
    overflow-x: hidden;
  }
  .nav-links {
    position: absolute;
    right: 0;
    height: 92vh;
    top: 8vh;
    background-color: #c46a35;
    flex-direction: column;
    align-items: center;
    width: 35%;
    justify-content: flex-start;
    transform: translateX(100%);
    transition: all 0.5s ease-in-out;
  }
  .nav-links li {
    opacity: 0;
  }
  nav ul {
    font-size: 1.4rem;
  }
  .burger {
    margin-left: 60%;
    display: block;
  }
  .logo {
    flex: 7;
  }
  .menu {
    flex: 3;
  }
  .logoimage {
    width: 4rem;
  }
  .hero-text {
    font-size: 1.4rem;
    left: 3%;
  }
  .lead-text {
    margin-top: 2rem;
    font-size: 1.4rem;
    text-align: left;
  }
  .box,.otoiawase,.table,.access,.contact-form label,.contact-form textarea,.submit-btn,.blog-article,footer {
    font-size: 1.4rem;
  }

  .container-a {
    display: block;
    padding-top: 2rem;
  }
  .container-b {
    display: block;
    padding-top: 2rem;
  }
  .item-b2 {
    padding: 2rem 2rem 2rem 2rem;
  }
  .container-c {
    display: flex;
    flex-direction: column-reverse;
  }
  .theme {
    margin-left: 5%;
    margin-right: 5%;
    margin-bottom: 0rem;
  }
  h2 {
    font-size: 1.6rem;
  }
  h3 {
    font-size: 1.5rem;
  }
  .otoiawasetheme {
    margin-left: 5%;
    margin-right: 5%;
  }
  .otoiawase {
    margin-left: 10%;
    margin-right: 10%;
  }
  .detail-link {
    font-size: 1.4rem;
    margin-left: 10%;
    margin-right: 10%;
  }
  .subhero-text {
    top: 30%;
    font-size: 2rem;
  }
  .subhero-image {
    height: 15vh;
  }
  .table {
    margin:0 auto 8rem;
    padding: 0 2rem
  }
  .table dt {
    padding:2rem 0 0
  }
  .table dd {
    margin:0.4rem 0 0 0;
    padding: 0 0 2rem 2rem
  }
}


@media screen and (max-width: 425px){
  .hero-text {
    font-size: 1.2rem;
  }
  h1 {
    font-size: 2rem;
  }
  .sp_br {
    display: block;
  }
  .theme  {
    position: relative;
  }
  .detail-link {
    margin: 0% 5% 0% 5%;
    padding: 0% 0% 0% 0%;
  }
  .fade-in-2.show {
    transition-delay: 0s;
  }
  .fade-in-3.show {
    transition-delay: 0s;
  }
  .fade-in-4.show {
    transition-delay: 0s;
  }

}
