@charset "UTF-8";
#company {
    background: #E5E2DD;
    max-width: 1920px;
    width: 100%;
    margin-inline: auto;
}


/* ========================================
  @media screen and (min-width: 768px), print
======================================== */
@media screen and (min-width: 768px),print {
.main-ttl-box {
    background: url(../images/company/main-ttl-bg.jpg) no-repeat center;
    background-size: cover;
    height: calc(772 / 1920 * 100vw);
}

/* sec共通
-------------------------------------*/
.sec .inner {
    width: min(95%, 1280px);
    margin-inline: auto;
    display: grid;
    grid-template-columns: 1fr 78.125%;
    align-items: flex-start;
    padding-bottom: 56px;
    padding-top: 99px;
}
.sec .enttl{
    font-size: 18px;
    line-height: 2.04166;
    writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    text-orientation: mixed;
    display: grid;
    place-content: flex-end;
    margin: 0 0 0 -6px;
    letter-spacing: 0;
    position: sticky;
    top: 40px; 
}
.sec table {
    border-collapse: collapse;
    text-align: left;
    width: 100%;
    border-top: 1px solid #fff;
    margin-top: 5px;
}
.sec table tr {
    border-bottom: 1px solid #fff;
    display: grid;
    grid-template-columns: 28% 67.8%;
}
.sec table th {
    font-size: 14px;
    font-weight: 500;
    line-height: 2.4286;
    letter-spacing: 0.05em;
    padding: 27px 10px 26px;
}
.sec table td {
    font-size: 16px;
    font-weight: 400;
    line-height: 1.75;
    letter-spacing: 0.05em;
    padding: 30px 0 29px;
}


/* sec-photo
-------------------------------------*/
.sec-photo {
    width: min(95%, 1800px);
    margin-inline: auto;
    padding-block: 104px 40px;
}
.sec-photo img {
    width: 100%;
    height: auto;
}


/* sec03
-------------------------------------*/
.sec03 .map {
    margin-bottom: 24px;
}
.sec03 .map iframe {
    width: 100%;
    height: 420px;
    border: none;
    max-width: 100%;
    margin: 0;
}
.sec03 .address-box {
    display: flex;
    gap: 24px;
    padding-left: 10px;
}
.sec03 .address-box .address {
    font-size: 16px;
    letter-spacing: 0.05em;
    line-height: 1.625;
}
.sec03 .address-box .link {
    font-size: 13px;
    line-height: 2;
    color: #666;
    letter-spacing: 0;
}
.sec03 .address-box .link a {
    display: flex;
    gap: 6px;
    align-items: center;
}
.sec03 .address-box .link a img {
    vertical-align: middle;
}

/* sec04
-------------------------------------*/
.sec04 .group-link{
    border-top: 1px solid #fff;
}
.sec04 .group-link li{
    border-bottom: 1px solid #fff;
}
.sec04 .group-link li a{
    padding: 39px 10px 49px;
    display: grid;
    grid-template-columns: 21.43% 1fr;
    gap: 101px;
    align-items: flex-end;
}
.sec04 .group-link li .name {
    font-weight: 500;
    font-size: 19px;
    letter-spacing: 0.05em;
    line-height: 1.7894;
    align-items: center;
    margin-bottom: 13px;
}
.sec04 .group-link li .name .link {
    font-weight: 500;
    font-size: 12px;
    letter-spacing: 0.05em;
    line-height: 2.8333;
    color: #666;
    position: relative;
    margin-left: 23px;
}
.sec04 .group-link li .name .link::after {
    position: absolute;
    content: "";
    background: url(../images/company/open-icon.svg)no-repeat;
    background-size: contain;
    width: 10px;
    height: 10px;
    top: 50%;
    transform: translateY(-50%);
    right: -16px;
}


/* link-sec 
-------------------------------------*/
.link-sec {
    padding-block: 104px 119px;
}
.link-sec .list {
    width: min(95%, 1280px);
    margin-inline: auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
}
.link-sec .list li a {
    text-align: center;
}
.link-sec .list li .photo-wrap {
    position: relative;
}
.link-sec .list li .photo {
    overflow: hidden;
}
.link-sec .list li .photo picture {
    display: block;
    transition: transform 2.5s cubic-bezier(0.25, 1, 0.5, 1);
}
.link-sec .list li .photo img {
    width: 100%;
    vertical-align: middle;
}
.link-sec .list li:hover .photo picture {
    transform: scale(1.12);
}
.link-sec .list li .ttl-wrap {
    position: absolute;
    top: 51.5%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.link-sec .list li .enttl {
    font-weight: 600;
    font-size: 28px;
    letter-spacing: 0.08em;
    line-height: 1.3125;
    text-align: center;
    color: #fff;
}
.link-sec .list li .ttl {
    font-weight: 600;
    font-size: 16px;
    letter-spacing: 0.32em;
    line-height: 2.8;
    text-align: center;
    color: #fff;
}


}

/* ========================================
@media screen and (min-width:768px) and (max-width:1280px)
======================================== */
@media screen and (min-width:768px) and (max-width:1280px) {
.sec04 .group-link li a {
    grid-auto-flow: 7.89vw;
}
.sec04 .group-link li .name {
    font-size: clamp(1rem, 0.719rem + 0.59vw, 1.188rem);
}
.sec04 .group-link li .txt {
    font-size: clamp(0.75rem, 0.375rem + 0.78vw, 1rem);
}
.sec04 .group-link li .name .link {
    font-size: clamp(0.625rem, 0.438rem + 0.39vw, 0.75rem);
}
.sec04 .group-link li img {
    width: 100%;
    height: auto;
}
}

/* ========================================
@media screen and (max-width: 767px)
======================================== */
@media screen and (max-width: 767px) {
.main-ttl-box {
    background: url(../images/company/main-ttl-bg_sp.jpg) no-repeat center;
    background-size: cover;
    height: 66.43vw;
}

/* sec共通
-------------------------------------*/
.sec .inner {
    width: 91.79vw;
    margin-inline: auto;
    display: grid;
    gap: 5.75vw;
    padding-bottom: 18.32vw;
}
.sec .enttl{
    font-size:4.348vw;
    line-height: 2.04166;
    letter-spacing: 0; 
}
.sec table {
    border-collapse: collapse;
    text-align: left;
    width: 100%;
    border-top: 0.2vw solid #fff;
}
.sec table tr {
    border-bottom: 0.2vw solid #fff;
    display: grid;
    grid-template-columns: 34.2% 67.8%;
}
.sec table th {
    font-size:3.14vw;
    font-weight: 500;
    line-height: 1.53846;
    letter-spacing: 0.05em;
    padding: 4.7vw 0;
}
.sec table td {
    font-size:3.14vw;
    font-weight: 400;
    line-height: 1.53846;
    letter-spacing: 0.05em;
    padding: 4.7vw 0;
}

/* sec01
-------------------------------------*/
.sec01 .inner {
    padding-top: 20.5vw;
}

/* sec-photo
-------------------------------------*/
.sec-photo {
    padding-block: 10.8vw 18.32vw;
}

/* sec03
-------------------------------------*/
.sec03 .inner {
    padding-bottom: 17.32vw;
}
.sec03 .map {
    margin-bottom: 4.23vw;
}
.sec03 .map iframe {
    width: 100%;
    height: 67.63vw;
    border: none;
    max-width: 100%;
    margin: 0;
}
.sec03 .address-box {
    display: grid;
    gap: 1.1vw;
}
.sec03 .address-box .address {
    font-size:3.14vw;
    letter-spacing: 0.05em;
    line-height: 1.9230;
}
.sec03 .address-box .link {
    font-size:3.14vw;
    line-height: 2;
    color: #666;
    letter-spacing: 0;
}
.sec03 .address-box .link a {
    display: flex;
    gap: 1.87vw;
    align-items: center;
}
.sec03 .address-box .link a img {
    vertical-align: middle;
}

/* sec04
-------------------------------------*/
.sec04 .group-link{
    display: grid;
    gap: 4.83vw;
}
.sec04 .group-link li a{
    display: grid;
    grid-template-columns: 38.65vw 1fr;
    gap: 2.42vw;
}
.sec04 .group-link li .name {
    font-weight: 400;
    font-size:3.14vw;
    letter-spacing: 0.05em;
    line-height: 1.53846;
    margin-bottom: 1.83vw;
}
.sec04 .group-link li .txt {
    font-size: 2.42vw;
    line-height: 1.6;
    letter-spacing: 0;
    margin-bottom: 0.97vw;
}
.sec04 .group-link li .link {
    font-weight: 400;
    font-size: 2.42vw;
    letter-spacing: 0;
    line-height: 1.6;
    color: #666;
}
.sec04 .group-link li .link span {
    position: relative;
}
.sec04 .group-link li .link span::after {
    position: absolute;
    content: "";
    background: url(../images/company/open-icon.svg)no-repeat;
    background-size: contain;
    width: 2.42vw;
    height: 2.42vw;
    top: 50%;
    transform: translateY(-50%);
    right: -3.5vw;
}


/* link-sec 
-------------------------------------*/
.link-sec {
    padding-bottom: 16.91vw;
}
.link-sec .list {
    width: 96.62vw;
    margin-inline: auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.42vw;
}
.link-sec .list li a {
    text-align: center;
}
.link-sec .list li .photo-wrap {
    position: relative;
}
.link-sec .list li .photo {
    overflow: hidden;
}
.link-sec .list li .photo picture {
    display: block;
    transition: transform 2.5s cubic-bezier(0.25, 1, 0.5, 1);
}
.link-sec .list li .photo img {
    width: 100%;
    vertical-align: middle;
}
.link-sec .list li:hover .photo picture {
    transform: scale(1.12);
}
.link-sec .list li .ttl-wrap {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.link-sec .list li .enttl {
    font-weight: 600;
    font-size:3.865vw;
    letter-spacing: 0.06em;
    line-height: 1.5;
    text-align: center;
    color: #fff;
}
.link-sec .list li .ttl {
    font-weight: 600;
    font-size:2.66vw;
    letter-spacing: 0.22em;
    line-height: 1;
    text-align: center;
    color: #fff;
}
}