@charset "utf-8";

*	{
    font-family: "Noto Sans JP", sans-serif;
    outline: none !important;
}

img {
    max-width: 100%;
}
.sp {
    display: none;
}

html    {
    overflow-x: hidden;
}
.text-center    {
    text-align: center;
}

.text-left  {
    text-align: left;
}

.text-right  {
    text-align: right;
}

.flex   {
    display: flex;
}

.drawer-hamburger   {
    display: none;
    z-index: 10000;
}

h1,h2,h3,h4,h5,h6,p,th,td,dd,dt,li,span	{
    line-height: 180%;
    color: #000000;
    font-optical-sizing: auto;
    font-style: normal;
    line-height: 144%;
/*	font-feature-settings: "palt";*/
}

h1,h2,h3,h4,h5,h6,strong,b,.b	{
    font-family: "Noto Sans JP", sans-serif;
    font-weight: bold;
    font-feature-settings: "palt";
}

.inter {
  font-family: "Inter", sans-serif !important;
  font-optical-sizing: auto;
  font-style: normal;
}

.fs12   {
    font-size: 12px;
}

.fs16   {
    font-size: 16px;
}

.fs20   {
    font-size: 20px;
}

.fs24   {
    font-size: 24px;
}

.fs32   {
    font-size: 32px;
}

.fs36   {
    font-size: 36px;
}

.fs38   {
    font-size: 38px;
}

.fs40   {
    font-size: 40px;
}

.lh240p {
    line-height: 240%;
}

a   {
    transition: all 0.2s linear;
}

a:hover   {
    transform: translateY(-5px);
    opacity: 0.85;
}

.medium {
    font-weight: 500;
}

header  {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0 30px;
    position: fixed;
    z-index: 1000;
}

header .inner   {
    max-width: 1440px;
    width: 100%;
    margin: 0 auto;
    background-color: #fff;
    border-radius: 0 0 10px 10px;
    height: 60px;
    box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
    padding: 0 50px;
}

header .inner.flex   {
    justify-content: flex-start;
    align-items: center;
    gap: 100px;
}

header .inner.flex ul.flex  {
    justify-content: flex-start;
    align-items: center;
    gap: 30px;
}

.key    {
    width: 100vw;
    aspect-ratio: 48/25;
    overflow-x: clip;
}

.key picture    {
    display: inline-block;
}

.key picture img   {
    width: 100vw;
    height: 52.084vw;
    object-fit: cover;
}

section {
    width: 100%;
    padding-left: 30px;
    padding-right: 30px;
}

section.px0  {
    padding-left: 0;
    padding-right: 0;
}

section .inner  {
    max-width: 1240px;
    width: 100%;
    margin: 0 auto;
}

section h2   {
    margin-bottom: 75px;
}

.sec_button   {
    display: inline-flex;
    background-color: #40495F;
    color: white;
    border: 1px solid white;
    filter: drop-shadow(0px 2px 2px rgba(0, 0, 0, 0.25));
    width: 300px;
    height: 60px;
    justify-content: center;
    align-items: center;
}

.index .sec1    {
    padding: 80px 30px;
}

.index .sec1 .inner h2 span    {
    display: inline-block;
    margin-bottom: 5px;
}

.index .sec1 .inner dl {
    margin-bottom: 100px;
}

.index .sec1 .inner dl div {
    background-color: #FAFAFA;
    display: flex;
    padding: 25px 17.5px 25px 100px;
    gap: 40px;
    align-items: center;
}

.index .sec1 .inner dl div:nth-of-type(2n) {
    background-color: #EEEEEE;
}

.index .sec1 .inner dl div dt  {
    font-weight: 500;
}

.index .sec1 .inner dl div dd  {
    display: flex;
    justify-content: space-between;
    align-items: center;
    word-break: break-all;
    gap: 25px;
    flex: 1;
}

.index .sec1 .inner dl div dd a    {
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #999999;
    background-color: #fff;
    width: 120px;
    height: 30px;
}

.index .sec2   {
    background-image: url(../images/sec2_back.jpg);
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    padding: 160px 30px;
}

.webp .index .sec2   {
    background-image: url(../images/sec2_back.webp);
}

.index .sec2 .inner    {
    background: rgba(255, 255, 255, 0.6);
    box-shadow: 4px 4px 8px rgba(0, 0, 0, 0.25);
    border-radius: 20px;
    padding: 100px 0 120px;
}

.index .sec2 .inner p  {
    line-height: 208.33%;
    letter-spacing: 0.1em;
}

.index .sec3.flex  {
    max-width: 1920px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    align-content: center;
    gap: 60px;
    padding-top: 100px;
    padding-bottom: 170px;
}

.index .sec3 .imgarea  {
    width: 50%;
}

.index .sec3 .imgarea picture,
.index .sec3 .imgarea picture img  {
    width: 100%;
}

.index .sec3 .infoarea {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-right: 30px;
}

.index .sec3 .infoarea h2  {
    line-height: 147.37%;
}

.index .sec3 .infoarea h2 span {
    display: inline-block;
    margin-bottom: 8px;
}

.index .sec4 > .bg {
    display: flex;
    flex-direction: column;
}
.index .sec4   {
    padding-top: 70px;
    max-width: 1920px;
    width: 100vw;
    margin: 0 auto;
    position: relative;
    margin-bottom: 210px;
}

.index .sec4 > .bg {
    position: absolute;
    top: 70px;
}

.index .sec4 > .bg.bg_before   {
    left: 0;
}

.index .sec4 > .bg.bg_after   {
    right: 0;
}

.index .sec4 > .bg img   {
    max-width: 400px;
    width: 20.833vw;
    display: block;
}

.index .sec4 .inner h2 {
    margin-bottom: 0;
}

.index .sec4 .inner h2 span    {
    display: inline-block;
    margin-bottom: 1.56vw;
}

.index .sec4 .inner h2 img {
    max-width: 640px;
    width: 33.333vw;
    margin-bottom: 2.08vw;
}

.index .sec4 .inner dl {
    max-width: 500px;
    width: 26.04vw;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 2.08vw;
}

.index .sec4 .inner dl div {
    display: flex;
    border-bottom: 2px dashed #CCCCCC;
    padding: 10px 3vw;
}

.index .sec4 .inner dl dt,
.index .sec4 .inner dl dd  {
    text-align: left;
    font-weight: 500;
    line-height: 175%;
    letter-spacing: 0.1em;
    font-size: 1.04vw;
}

.index .sec4 .inner .sec4_img  {
    max-width: 940px;
    width: 48.95vw;display: block;
    margin-left: auto;
    margin-right: auto;
}

.index .sec4 h3    {
    display: block;
    max-width: 500px;
    width: 26.04vw;
    font-size: 1.25vw;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 2.6vw;
    height: 2.08vw;
    border-bottom: 2px dashed #CCCCCC;
}

footer  {
    position: relative;
    z-index: 1;
}

footer .contact {
    background-image: url(../images/footer_bg_pc.jpg);
    aspect-ratio: 96/25;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    padding: 30px;
}

.webp footer .contact {
    background-image: url(../images/footer_bg_pc.webp);
}

footer .contact a   {
    box-sizing: border-box;
    max-width: 1000px;
    width: 100%;
    max-height: 200px;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    background: rgba(255, 255, 255, 0.2);
    border: 1.66667px solid #FFFFFF;
    border-radius: 20px;
}

footer .groups .inner.flex {
    justify-content: center;
    align-items: center;
    gap: 7vw;
    margin: 88px auto;
}

footer .groups .inner.flex img.pharmacy {
    max-width: 280.36px;
    width: 14.6vw;
}

footer .groups .inner.flex img.medical {
    max-width: 414.24px;
    width: 21.5vw;
}

footer .groups .inner.flex img.odajima {
    max-width: 239.61px;
    width: 12.47vw;
}

footer .copyright   {
    border-top: 2px solid #ccc;
    padding-top: 30px;
    padding-bottom: 100px;
}

footer .copyright p {
    letter-spacing: 0.1em;
}

/* sub */

.sub .key    {
    width: 100vw;
    aspect-ratio: 48/25;
    overflow-x: clip;
    position: relative;
}

.sub .key .titlearea    {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-width: 500px;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 89.82vw;
    max-height: 100px;
    height: 17.81vw;
    background: rgba(255, 255, 255, 0.2);
    box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);
}

/* message */

.sub.message .sec1  {
    margin-bottom: 100px;
}

.sub.message .sec1 .inner.flex   {
    gap: 50px;
    align-items: center;
    margin-top: 50px;
    padding-top: 50px;
    margin-bottom: 50px;
    
}

.sub.message .sec1 .inner.flex .imgarea {
    width: calc(50% - 50px);
}

.sub.message .sec1 .inner.flex .infoarea {
    flex: 1;
    padding-right: 30px;
}

.sub.message .sec1 .inner p:not(:last-of-type) {
    margin-bottom: 50px;
}

.sub.message .sec1 .inner p img.sec1_img2   {
    max-width: 722px;
    width: 89.82vw;
}

@media screen and (min-width: 1921px)  {
    .index .sec4 .inner h2 span    {
        font-size: 16px;
        margin-bottom: 30px;
    }
    
    .index .sec4 .inner h2 img {
        margin-bottom: 40px;
    }
    
    .index .sec4 .inner dl div {
        padding: 10px 50px;
    }

    .index .sec4 .inner dl dt,
    .index .sec4 .inner dl dd  {
        font-size: 20px;
        line-height: 175%;
    }

    .index .sec4 .inner dl {
        margin-bottom: 50px;
    }
    
    .index .sec4 h3    {
        font-size: 24px;
        height: 60px;
        margin-bottom: 50px;
    }
    
    footer .contact a   {
        max-height: 300px;
        height: 10.41vw; 
    }
    footer .groups .inner.flex  {
        gap: 135px;
    }
}

@media screen and (max-width: 1300px) {
  .sub.message .sec1 .inner:not(.flex)  {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media screen and (max-width: 1200px) {
  header .inner.flex  {
    gap: 5vw;
    padding-right: 1vw;
  }
  header .inner.flex h1,
  header .inner.flex ul.flex  {
    zoom: 0.85;
  }
}

@media screen and (max-width: 960px) {
  header .inner.flex  {
    gap: 4vw;
  }
  header .inner.flex h1,
  header .inner.flex ul.flex  {
    zoom: 0.7;
  }
  .index .sec3 .infoarea h2 br,
  .message .sec1 .infoarea h2 span br {
    display: none;
  }
}
@media screen and (max-width: 834px) {
    .pc {
        display: none !important;
    }
    
    .sp {
        display: block;
    }
    
    .drawer-hamburger   {
        position: absolute;
        padding: 0;
        display: block;
        width: 5.73vw;
        right: 5.08vw !important;
        top: calc(2.53vw + 2px);
        
    }
    
    .drawer-hamburger-icon  {
        margin-top: 1.78vw;
    }
    
    .drawer-hamburger-icon:after, .drawer-hamburger-icon:before {
        top: calc(-1.78vw - 2px);
    }
    
    .drawer-hamburger-icon:after    {
        top: calc(1.78vw + 2px);
    }
    
    .drawer-hamburger-icon  {
        background-color: #3F7044;
    }
    .drawer-hamburger-icon:before    {
        background-color: #E60012;
    }

    .drawer-hamburger-icon:after {
        background-color: #1D2088;
    }
    
    .drawer-nav {
        padding: 10.18vw 5.08vw 0;
    }

    .drawer-nav ul  {
        margin: 7.63vw 0;
    }

    .drawer-nav ul li:not(:last-of-type)   {
        border-bottom: 1px dashed #CCCCCC;
    }
    
    .drawer-nav ul li a {
        font-weight: bold;
    }
    
    .drawer-menu-item   {
        padding: .75rem 0;
    }
    br.sp,.sp.inline    {
        display: inline-block;
    }
    
    .sp.flex    {
        display: flex;
    }
    
    .fs12    {
        font-size: 3.05vw;
    }
    
    .fs16    {
        font-size: 4.07vw;
    }
    
    .fs18    {
        font-size: 4.58vw;
    }
    
    .fs24    {
        font-size: 6.1vw;
    }
    
    .fs28    {
        font-size: 7.25vw;
    }
    
    .fs30    {
        font-size: 7.63vw;
    }
    
    .fs36   {
        font-size: 9.16px;
    }

    .sp_fs12    {
        font-size: 3.05vw;
    }

    .sp_fs16    {
        font-size: 4.07vw;
    }

    .sp_fs18    {
        font-size: 4.58vw;
    }
    
    .sp_fs24    {
        font-size: 6.1vw;
    }
    
    .sp_fs28    {
        font-size: 7.25vw;
    }
    
    .sp_fs30    {
        font-size: 7.63vw;
    }

    .sp_fs36   {
        font-size: 9.16px;
    }

    .sec_button    {
        width: 76.3vw;
        height: 15.27vw;
        display: flex;
        margin: 0 auto;
    }

    .sec_button    {
        width: 76.3vw;
        height: 15.27vw;
        display: flex;
        margin: 0 auto;
    }
    header  {
        padding: 0;
    }
    
    header .inner.flex  {
        height: 10.18vw;
        padding: 0 5.08vw;
        border-radius: 0 0 1.27vw 1.27vw;
    }
    header .inner.flex h1 a {
        display: block;
    }
    header .inner.flex h1 a .logo   {
        width: 52.05vw;
        display: block;
    }
    
    .index .key    {
        width: 100vw;
        aspect-ratio: 131/200;
        overflow-x: clip;
    }
    
    .index .key picture img   {
        width: 100vw;
        height: 152.67vw;
        object-fit: cover;
    }
    
    section   {
        padding-left: 5.08vw;
        padding-right: 5.08vw;
    }


    section h2  {
        margin-bottom: 8.9vw;
    }
    
    .index .sec1   {
        padding: 18.58vw 5.08vw 25.42vw;
        margin-top: -10.18vw;
    }
    
    .index .sec1 .inner dl {
        margin-bottom: 12.72vw;
    }

    .index .sec1 .inner dl div {
        flex-direction: column;
        padding: 5.08vw;
        align-items: flex-start;
        gap: 3.05vw;
    }
    .index .sec1 .inner dl div dt,
    .index .sec1 .inner dl div dd  {
        word-break: break-all;
        text-align: left;
    }
    
    .index .sec1 .inner dl div dd  {
        flex-direction: column;
        gap: 7.63vw;
    }
    
    .index .sec1 .inner dl div dd a    {
        width: 50.89vw;
        height: 12.72vw;
    }
    
    .index .sec2   {
        background-image: url(../images/sec2_bg_sp.jpg);
        padding: 8.4vw 5.08vw;
        margin-bottom: 2.54vw;
    }
    
    .webp .index .sec2   {
        background-image: url(../images/sec2_bg_sp.webp);
    }
    
    .index .sec2 .inner    {
        padding: 19.08vw 5.08vw;
    }
    
    .index .sec3.flex  {
        padding-top: 10.18vw;
        flex-direction: column;
        padding-bottom: 11.45vw;
    }

    .index .sec3.flex .imgarea {
        width: 100%;
    }
    
    .index .sec3.flex .infoarea    {
        padding-left: 5.08vw;
        padding-right: 5.08vw;
    }
    
    .index .sec3 .infoarea h2 br,
    .message .sec1 .infoarea h2 span br  {
      display: inline;
    }
    
    .index .sec4   {
        margin: 0 0 2.54vw;
        padding-top: 10.18vw;
    }
    
    .index .sec4 > .bg {
        flex-direction: row;
        position: relative;
        left: -5.08vw !important;
    }

    .index .sec4 > .bg img {
        width: 50vw;
    }

    .index .sec4 > .bg.bg_before   {
        top: 0;
    }
    
    .index .sec4 > .bg.bg_after   {
        top: 0;
    }
    
    .index .sec4 > .bg > img   {
        aspect-ratio: 197/250;
    }
    
    .index .sec4 .inner    {
        padding-top: 8.4vw;
    }
    
    .index .sec4 .inner h2 span    {
        margin-bottom: 7.63vw;
    }
    .index .sec4 .inner h2 img {
        width: 100%;
        margin-bottom: 7.63vw;
    }
    
    .index .sec4 .inner dl {
        width: 100%;
        margin-bottom: 12.72vw;
    }
    
    .index .sec4 .inner dl div {
        padding: 10px 0;
    }
    
    .index .sec4 .inner dl div dt,
    .index .sec4 .inner dl div dd  {
        font-size: 4.58vw;
    }
    
    .index .sec4 h3    {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        font-size: 4.58vw;
        height: 15.26vw;
        margin-bottom: 7.63vw;
    }
    
    .index .sec4 .inner .sec4_img  {
        width: 100%;
        margin-bottom: 10.18vw;
    }

    footer  {
        padding-top: 10.18vw;
    }

    footer .contact {
        background-image: url(../images/footer_bg_sp.jpg);
        aspect-ratio: 131/100;
    }
    
    .webp footer .contact {
        background-image: url(../images/footer_bg_sp.webp);
    }
    
    footer .contact .sp_fs28    {
        line-height: 125%;
    }
    
    footer .groups .inner.flex  {
        flex-direction: column;
        margin: 12.72vw auto;
        gap: 12.72vw;
    }
    
    footer .groups .inner.flex img.pharmacy {
        width: 64.2vw;
    }
    
    footer .groups .inner.flex img.medical  {
        width: 89.82vw;
    }
    
    footer .groups .inner.flex img.odajima  {
        width: 60.97vw;
    }
    
    footer .copyright   {
        padding: 5.08vw 0 8.9vw;
    }
    
    /* sub */
    
    .sub .key    {
        width: 100vw;
        aspect-ratio: 131/200;
        overflow-x: clip;
    }
    
    .sub .key picture img   {
        width: 100vw;
        height: 152.67vw;
        object-fit: cover;
    }
    
    /* message */
    
    .sub.message .sec1 .inner:not(.flex)   {
        padding-left: 5.08vw;
        padding-right: 5.08vw;
    }
    .sub.message .sec1  {
        margin-bottom: 12.72vw;
    }
    
    .sub.message .sec1 .inner.flex   {
        gap: 11.45vw;
        align-items: center;
        margin-top: 0;
        padding-top: 10.18vw;
        margin-bottom: 12.72vw;
        flex-direction: column;
    }
    
    .sub.message .sec1 .inner.flex .imgarea {
        width: 100%;
        order: 2;
    }
    
    .sub.message .sec1 .inner.flex .infoarea {
        order: 1;
        flex: 1;
    }
    
    .sub.message .sec1 .inner.flex .infoarea h2    {
        margin-bottom: 0;
    }

    .sub.message .sec1 .inner p:not(:last-of-type) {
        margin-bottom: 12.72vw;
    }
}