 :root{
      --blue:#0b56b3;
      --light-blue:#eef5f9;
      --text:#222;
      --muted:#6d7b88;
      --line:#d9e1e8;
      --bg:#f7f8fa;
      --white:#fff;
    }

    /* *{
      box-sizing:border-box;
    } */
    img{
      max-width:100%;
      height:auto;
      display:block;
    }

    a{
      color:inherit;
      text-decoration:none;
    }

    .section{
      margin-top:72px;
    }

    .section:first-child{
      margin-top:0;
    }

    .section-heading{
      margin:0 0 34px;
      text-align:center;
    }

    .section-heading__sub{
      display:block;
      margin-bottom:6px;
      color:var(--blue);
      font-size:16px;
      font-weight:700;
      letter-spacing:.15em;
      text-transform:lowercase;
    }

    .section-heading__title{
      display:inline-block;
      margin:0;
      font-size:30px;
      line-height:1.4;
      font-weight:700;
      letter-spacing:.04em;
      position:relative;
    }

    .section-heading__title::before,
    .section-heading__title::after{
      content:"[";
      position:absolute;
      top:50%;
      transform:translateY(-50%);
      font-weight:500;
      color:#111;
    }

    .section-heading__title::before{
      left:-34px;
    }

    .section-heading__title::after{
      content:"]";
      right:-34px;
    }

    /* message */
    /* .message{
      display:grid;
      grid-template-columns: 1.1fr 200px;
      gap:48px;
      align-items:start;
    }

    .message__body{
      font-size:16px;
      font-weight:500;
    }

    .message__body p
    {
      margin:0 0 15px;   
      text-align: justify;
      text-indent: 1em;
    }
    .message__body p span
    {
      font-weight: 500;
    }
    .message__body p span.pc-justify
    {
        text-align-last: justify;
        display: inline-block;
        width: 100%;
        position: relative;
        left: -1em;
    }
    .message__body p span.t-indent
    {
      text-indent: 0;
      left: 0;
    }

    .message__signature{
      margin-top:10px;
      line-height:1.8;
      font-weight:700;
    }

    .message__signature p
    {
      text-indent:0;
    }
    .message__signature p span
    {
      font-size: 22px;
      font-weight: 600;
    }

    .message__image{
      position:relative;
      max-width:420px;
      margin-left:auto;
    }

    .message__image img{
      width:100%;
      border-radius:6px;
    }

    .message__caption{
      position:absolute;
      right:20px;
      bottom:18px;
      color:#fff;
      font-size:14px;
      text-shadow:0 1px 4px rgba(0,0,0,.45);
    } */
     




/*     
.message__body {
  line-height: 2;
  font-size: 16px;
}

.message__body::after {
  content: "";
  display: block;
  clear: both;
}

.message__photo {
  float: right;
  width: 180px;
  margin: 0 0 15px 30px;
}

.message__photo img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
}

.message__body p {
  margin: 0 0 10px;
  text-align: justify;
  text-indent: 1em;
}

.message__signature {
  margin-top: 10px;
}
.message__signature p
{
  text-align: right!important;
}

.message__signature span {
  font-size: 1.5em;
  font-weight: 600;
} */




.message {
  margin: 0 auto;
  padding: 40px;
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr) ;
  gap: 40px;
  align-items: start;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1);
      border-radius: 20px;
      border: 1px solid #f2f2f2;
}

.message__body {
  background: #fff;
}

.message__body p {
  margin: 0 0 1.8em;
  font-size: 16px;
  line-height: 2.1;
  text-align: justify;
}

.message__body p:last-of-type {
  margin-bottom: 0;
}

/* .message__image {
  position: sticky;
  top: 120px;
} */

.message__image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
}

.message__signature {
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid #ddd;
  text-align: right;
}

.message__signature p {
  margin: 0;
  font-size: 15px;
  line-height: 1.8;
  text-align: right;
}

.message__signature span {
  display: inline-block;
  margin-top: 8px;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1;
}


p span.pc-justify
{
  text-align-last: justify;
    display: inline-block;
    width: 100%;
    position: relative;
    font-weight: 500;
}





    /* company */
    .company{
      display:grid;
      grid-template-columns: 1fr 410px;
      gap:42px;
      align-items:start;
    }

    .company__table{
      width:100%;
      border-collapse:collapse;
      background:#fff;
    }

    .company__table th,
    .company__table td{
      padding:18px 14px;
      border-bottom:1px solid var(--line);
      text-align:left;
      vertical-align:top;
      font-size:15px;
      line-height:22px;
      box-sizing: border-box;
    }

    .company__table th{
      width:28%;
      font-weight:600;
      background:#fff;
    }

    .company__table td{
      font-weight:500;
    }

    .company__image img{
      width:100%;
      border-radius:8px;
    }

    /* office */
    .office-list{
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap:50px 60px;
    }

    .office-card--wide{
      grid-column:1 / -1;
    }

    .office-card__title{
      display:flex;
      align-items:center;
      margin:0 0 16px;
      padding:12px 16px;
      background:var(--light-blue);
      border-radius:4px;
      font-size:24px;
      line-height:30px;
      font-weight:600;
      position:relative;
    }

    .office-card__title::before{
      content:"";
      width:6px;
      height:26px;
      margin-right:12px;
      background:#004098;
      flex-shrink:0;
    }

    .office-card__body{
      font-size:16px;
      font-weight:500;
    }

    /* .office-card__address{
      margin:0 0 8px;
    } */

    .office-card__tel{
      margin:0 0 14px;
    }

    /* .office-card__map img{
      width:100%;
      border-radius:4px;
      border:1px solid #d8dfe6;
    } */

    .office-card__map iframe{
        width: 100%;
        height: 350px; /* 好きな高さに調整OK */
        display: block;
        }

    @media (max-width: 1200px){
      .message__body p span.pc-justify
      {
        display: inline;
        text-align-last: auto;
        left: 0;
      }
      .message__body p span.t-indent {
        text-indent: 0;
        left: 0;
      }
         p span.pc-justify 
      {
        display: inline;
        text-align-last: auto;
        }
    } 

    @media screen and (max-width: 1024px) {
    .message
    {
          grid-template-columns: 130px minmax(0, 1fr);
          gap: 30px;
    }
    }
    @media (max-width: 960px){
      .company{
        grid-template-columns:1fr;
      }

      .company__image{
        max-width:520px;
        margin:0 auto;
        order: -1;
      }
    }

    @media (max-width: 767px){


      .section{
        margin-top:48px;
      }

      .section-heading{
        margin-bottom:24px;
      }

      .section-heading__sub{
        font-size:14px;
      }

      .section-heading__title{
        font-size:20px;
      }

      .section-heading__title::before{
        left:-22px;
      }

      .section-heading__title::after{
        right:-22px;
      }

     

      .message {
        grid-template-columns: 1fr;
        gap: 15px;
        padding: 20px;
        box-shadow: 0 3px 4px rgba(0, 0, 0, 0.1);
        border-radius: 10px;
      }

      .message__image {
        width: 130px;
        margin: 0 auto;
      }
      .message__body p {
        font-size: 14px;
        line-height: 1.8;
      }

      .message__image img {
        border-radius: 8px;
      }

      .message__signature {
        margin-top: 28px;
        padding-top: 20px;
      }

      .message__signature p {
        font-size: 14px;
      }

      .message__signature span {
        font-size: 20px;
      }


      .company{
        gap:24px;
      }

      .company__table th,
      .company__table td{
        display:block;
        width:100%;
        padding:12px 10px;
      }

      .company__table th{
        padding-bottom:0;
        border-bottom:none;
      }

      .company__table td{
        padding-top:4px;
      }

      .office-list{
        grid-template-columns:1fr;
        gap:24px;
      }

      .office-card--wide{
        grid-column:auto;
      }

      .office-card__title{

        padding:5px 12px;
        font-size:20px;
      }

      .office-card__title::before{
        width:5px;
        height:22px;
        margin-right:10px;
      }

      .office-card__body{
        font-size:13px;
      }
      .office-card__map iframe
      {
        height: 200px;
      }
    }