  /*------------------------------------------
  
    specialty
  
  ------------------------------------------*/

.page_title img {
    width: 100%;
}

.speciality_inner {
    width: min(1024px, calc(1024 * var(--max-fluid-ratio)));
    margin-inline: auto;
    padding: min(75px, calc(75 * var(--max-fluid-ratio))) 0 min(202px, calc(202 * var(--max-fluid-ratio)));

}
.speciality-link .speciality-link_lead {
    width: min(1037px, calc(1037 * var(--max-fluid-ratio)));
    font-size: min(calc(20 * var(--rem)), calc(20 * var(--max-fluid-ratio)));
    line-height: calc(40 / 20);
    letter-spacing: 0;
    font-weight: var(--font-weight-medium);
}

.speciality-link .speciality-link_btnArea {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: min(24px, calc(24 * var(--max-fluid-ratio)));
    margin-top: min(62px, calc(62 * var(--max-fluid-ratio)));
}

.speciality-link .speciality-link_btn {
    background-color: var(--theme-color);
    border-radius: min(14px, calc(14 * var(--max-fluid-ratio)));
    color: #fff;
    font-weight: var(--font-weight-black);
    font-size: min(calc(28 * var(--rem)), calc(28 * var(--max-fluid-ratio)));
    text-align: center;
    padding: min(25px, calc(25 * var(--max-fluid-ratio))) 0 min(5px, calc(5 * var(--max-fluid-ratio)));
}

.speciality-link .speciality-link_btn::after {
    --icon-size: min(15px, calc(15 * var(--max-fluid-ratio)));
    content: "";
    display: block;
    width: var(--icon-size);
    height: min(10px, calc(10 * var(--max-fluid-ratio)));
    background: url(../images/shared/icon-arrow-white-top.svg) no-repeat center / var(--icon-size) auto;
    transform: rotate(180deg);
    margin: min(12px, calc(12 * var(--max-fluid-ratio))) auto;

}

.speciality-link .speciality-link_btn span {
    display: block;
    font-weight: var(--font-weight-bold);
    font-size: min(calc(17 * var(--rem)), calc(17 * var(--max-fluid-ratio)));
}

.speciality-link .speciality-link_btn em {
    color: var(--em-color);
    font-style: normal;
}

.speciality_title {
    font-weight: var(--font-weight-bold);
    padding-bottom: min(29px, calc(29 * var(--max-fluid-ratio)));
    border-bottom: min(3px, calc(3 * var(--max-fluid-ratio))) solid #EBEBEB;
}

.speciality_title .title-en {
    font-family: var(--font-zenmaru-g);
    font-size: min(calc(24 * var(--rem)), calc(24 * var(--max-fluid-ratio)));
    color: var(--theme-color);
    display: block grid;
    grid-template-columns: min(20px, calc(20 * var(--max-fluid-ratio))) 1fr;
    align-items: center;
    column-gap: min(16px, calc(16 * var(--max-fluid-ratio)));
    line-height: 1;
    letter-spacing: 0.1em;
}

.speciality_title .title-en::before {
    content: "";
    height: min(5px, calc(5 * var(--max-fluid-ratio)));
    background: var(--em-color);
    transform: translateY(min(1px, calc(1 * var(--max-fluid-ratio))));
}

.speciality_title .title-jp {
    font-size: min(calc(28 * var(--rem)), calc(28 * var(--max-fluid-ratio)));
    margin-top: min(24px, calc(24 * var(--max-fluid-ratio)));
}

.speciality_title .title-jp strong {
    display: block;
    font-size: min(calc(45 * var(--rem)), calc(45 * var(--max-fluid-ratio)));
    font-weight: var(--font-weight-black);
    margin-top: min(7px, calc(7 * var(--max-fluid-ratio)));
}

.speciality-keyword {
    margin-top: min(128px, calc(128 * var(--max-fluid-ratio)));
}

.speciality-keyword .speciality-keyword_lead {
    font-size: min(18px, calc(18 * var(--max-fluid-ratio)));
    line-height: calc(30 / 18);
    margin-top: min(36px, calc(36 * var(--max-fluid-ratio)));
}
.speciality-keyword .speciality-keyword_form {
    margin-top: min(46px, calc(46 * var(--max-fluid-ratio)));
    position: relative;
}

.speciality-keyword .speciality-keyword_form .keyword_label {
    font-size: min(18px, calc(18 * var(--max-fluid-ratio)));
    display: block;
}

.speciality-keyword .speciality-keyword_form .keyword_input {
    width: 100%;
    font-family: var(--font-noto-sans);
    border: min(2px, calc(2 * var(--min-fluid-ratio))) solid #333;
    border-radius: min(8px, calc(8 * var(--max-fluid-ratio)));
    padding: min(12.5px, calc(12.5 * var(--max-fluid-ratio))) min(60px, calc(60 * var(--max-fluid-ratio))) min(12.5px, calc(12.5 * var(--max-fluid-ratio))) min(14px, calc(14 * var(--max-fluid-ratio)));
    font-size: min(calc(18 * var(--rem)), calc(18 * var(--max-fluid-ratio)));
    margin-top: min(15px, calc(15 * var(--max-fluid-ratio)));
}

.speciality-keyword .speciality-keyword_form .keyword_input::placeholder {
    color: #777777;
}

.speciality-keyword .speciality-keyword_form .keyword_submit {
    display: grid;
    place-items: center;
    width: min(56px, calc(56 * var(--max-fluid-ratio)));
    aspect-ratio: 1;
    position: absolute;
    right: 2px;
    bottom: 2px;
    border: none;
    background-color: transparent;
    cursor: pointer;
    padding: min(4px, calc(4 * var(--max-fluid-ratio))) min(6px, calc(6 * var(--max-fluid-ratio))) 0 0;
}

.speciality-keyword .speciality-keyword_form .keyword_submit img {
    width: min(30px, calc(30 * var(--max-fluid-ratio)));
    aspect-ratio: 1;
}

.speciality-keyword .speciality-keyword_notes {
    font-size: min(calc(14 * var(--rem)), calc(14 * var(--max-fluid-ratio)));
    margin-top: min(8px, calc(8 * var(--max-fluid-ratio)));
    display: block grid;
    grid-template-columns: auto 1fr;
}

.speciality-keyword .keyword_list {
    margin-top: min(58px, calc(58 * var(--max-fluid-ratio)));
}

.speciality-keyword .keyword_tags {
    display: flex;
    flex-wrap: wrap;
    gap: min(10px, calc(10 * var(--max-fluid-ratio)));
}

.speciality-keyword .keyword_tags .keyword_tag {
    font-size: min(calc(14 * var(--rem)), calc(14 * var(--max-fluid-ratio)));
    padding: min(9px, calc(9 * var(--max-fluid-ratio))) min(23px, calc(23 * var(--max-fluid-ratio))) min(8px, calc(8 * var(--max-fluid-ratio)));
    background-color: var(--sub-bg-color);
    border-radius: min(8px, calc(8 * var(--max-fluid-ratio)));
    border: 1px solid var(--sub-bg-color);
    color: var(--text-color);
}

@media (hover: hover) {
    .speciality-keyword .keyword_tags .keyword_tag:hover {
        background-color: var(--body-bg-color);
        border-color: var(--theme-color);
        color: var(--theme-color);
        text-decoration: underline;
        opacity: 1;
    }
}

.speciality-keyword .keyword_tags .keyword_tag.hidden {
    display: none;
}

.speciality-keyword .more-btn {
    display: block;
    width: min(144px, calc(144 * var(--max-fluid-ratio)));
    font-size: min(calc(14 * var(--rem)), calc(14 * var(--max-fluid-ratio)));
    margin: min(33px, calc(33 * var(--max-fluid-ratio))) auto 0;
    border: 1px solid #707070;
    padding: min(12.5px , calc(12.5 * var(--max-fluid-ratio))) 0 min(11.5px , calc(11.5 * var(--max-fluid-ratio))) min(23px , calc(23 * var(--max-fluid-ratio)));
    border-radius: min(5px, calc(5 * var(--max-fluid-ratio)));
    cursor: pointer;
    position: relative;
    line-height: 1;
    color: var(--theme-color);
    transition: opacity .25s ease-in-out;
}


@media (hover: hover) {
    .speciality-keyword .more-btn:hover {
        opacity: .75;
    }
}

.speciality-keyword .more-btn .more-btn_text {
    pointer-events: none;
}

.speciality-keyword .more-btn .more_input:checked + .more-btn_icon::before {
    opacity: 0;
}

.speciality-keyword .more-btn:has(.more_input:checked) {
    padding-left: min(37px, calc(37 * var(--max-fluid-ratio)));


}

.speciality-keyword .more-btn .more-btn_icon {
    width: min(24px, calc(24 * var(--max-fluid-ratio)));
    height: min(24px, calc(24 * var(--max-fluid-ratio)));
    border-radius: var(--border-rounded);
    background-color: var(--theme-color);
    position: absolute;
    inset: 0 min(11px, calc(11 * var(--max-fluid-ratio))) 0 auto;
    margin-block: auto;
    display: block grid;
    place-items: center;
}

.speciality-keyword .more-btn .more-btn_icon:before,
.speciality-keyword .more-btn .more-btn_icon:after {
    --icon-width: min(2px, calc(2 * var(--max-fluid-ratio)));
    --icon-height: min(12px, calc(12 * var(--max-fluid-ratio)));
    content: "";
    position: absolute;
    background-color: #fff;
    border-radius: var(--border-rounded);
}

.speciality-keyword .more-btn .more-btn_icon:before {
    width: var(--icon-width);
    height: var(--icon-height);
    left: 50%;
    transform: translateX(-50%);
}
.speciality-keyword .more-btn .more-btn_icon:after {
    width: var(--icon-height);
    height: var(--icon-width);
    top: 50%;
    transform: translateY(-50%);
}

.speciality-keyword .more_input {
    display: none;
}

.speciality-field {
    margin-top: min(86px, calc(86 * var(--max-fluid-ratio)));
}

.speciality-field .speciality-field_btnArea {
    display: flex;
    justify-content: space-between;
    text-align: center;
    margin-top: min(66px, calc(66 * var(--max-fluid-ratio)));
}

.speciality-field .speciality-field_btnArea .speciality-field_btn {
    padding: min(24px, calc(24 * var(--max-fluid-ratio))) min(26px, calc(26 * var(--max-fluid-ratio))) min(6px, calc(6 * var(--max-fluid-ratio)));
    border-radius: min(14px, calc(14 * var(--max-fluid-ratio)));
    font-size: min(calc(28 * var(--rem)), calc(28 * var(--max-fluid-ratio)));
    font-weight: var(--font-weight-black);
    color: #fff;
    background-color: var(--theme-color);
}

.speciality-field .speciality-field_btnArea .speciality-field_btn::after {
    --icon-size: min(15px, calc(15 * var(--max-fluid-ratio)));
    content: "";
    display: block;
    width: var(--icon-size);
    height: min(10px, calc(10 * var(--max-fluid-ratio)));
    background: url(../images/shared/icon-arrow-white-top.svg) no-repeat center / var(--icon-size) auto;
    transform: rotate(180deg);
    margin: min(11px, calc(11 * var(--max-fluid-ratio))) auto;   
}

.speciality-field .field-box {
    margin-top: min(117px, calc(117 * var(--max-fluid-ratio)));
    position: relative;
    padding: min(6px, calc(6 * var(--max-fluid-ratio)));
}

.speciality-field .field-box::before {
    content: "";
    position: absolute;
    inset: min(6px, calc(6 * var(--max-fluid-ratio)));
    border-radius: min(7px, calc(7 * var(--max-fluid-ratio)));
    background: var(--body-bg-color);
    z-index: 2;
}
  
.speciality-field .field-box::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: min(12px, calc(12 * var(--max-fluid-ratio)));
    background: var(--border-gradient);
}

.speciality-field .field-box .field-box_title {
    font-size: min(calc(36 * var(--rem)), calc(36 * var(--max-fluid-ratio)));
    font-weight: var(--font-weight-black);
    position: relative;
    z-index: 3;
    margin: min(-24px , calc(-24 * var(--max-fluid-ratio))) 0 0 min(53px, calc(53 * var(--max-fluid-ratio)));
    color: var(--theme-color);
}

.speciality-field .field-box .field-box_title span {
    display: inline-block;
    background-color: #fff;
    padding: 0 min(20px, calc(20 * var(--max-fluid-ratio)));
}

.speciality-field .field-box .field-box_inner {
    position: relative;
    z-index: 3;
    padding: min(53px, calc(53 * var(--max-fluid-ratio))) min(74px, calc(74 * var(--max-fluid-ratio))) min(74px, calc(74 * var(--max-fluid-ratio)));
}

.speciality-field .field-box_item + .field-box_item {
    margin-top: min(40px, calc(40 * var(--max-fluid-ratio)));
}

.speciality-field .field-box_item .field-box_subtitle {
    margin: 0;
    padding: 0;
    font-size: min(24 * var(--rem), calc(24 * var(--max-fluid-ratio)));
    font-weight: var(--font-weight-black);
}

.speciality-field .field-box_item .field-box_tags {
    margin-top: min(19px , calc(19 * var(--max-fluid-ratio)));
    display: flex;
    flex-wrap: wrap;
    gap: min(10px, calc(10 * var(--max-fluid-ratio)));
}


.speciality-field .field-box_item .field-box_tag {
    font-size: min(calc(14 * var(--rem)), calc(14 * var(--max-fluid-ratio)));
    padding: min(8.5px, calc(8.5 * var(--max-fluid-ratio))) min(23px, calc(23 * var(--max-fluid-ratio)));
    background-color: var(--sub-bg-color);
    border-radius: min(8px, calc(8 * var(--max-fluid-ratio)));
    border: 1px solid var(--sub-bg-color);
    color: var(--text-color);
}

@media (hover: hover) {
    .speciality-field .field-box_item .field-box_tag:hover {
        background-color: var(--body-bg-color);
        border-color: var(--theme-color);
        color: var(--theme-color);
        text-decoration: underline;
        opacity: 1;
    }
}



@media screen and (max-width: 767px) {
    

    .speciality_inner {
        width: calc(335 * var(--min-fluid-ratio));
        padding: calc(110 * var(--min-fluid-ratio)) 0 calc(65 * var(--min-fluid-ratio));
    }
    .speciality-link .speciality-link_lead {
        width: 100%;
        font-size: calc(16 * var(--min-fluid-ratio));
        line-height: calc(34 / 16);
    }

    .speciality-link .speciality-link_btnArea {
        grid-template-columns: 1fr;
        column-gap: 0;
        row-gap: calc(24 * var(--min-fluid-ratio));
        margin-top: calc(49 * var(--min-fluid-ratio));
    }

    .speciality-link .speciality-link_btn {
        border-radius: calc(14 * var(--min-fluid-ratio));
        font-size: calc(20 * var(--min-fluid-ratio));
        padding: calc(25 * var(--min-fluid-ratio)) 0 calc(8 * var(--min-fluid-ratio));
    }

    .speciality-link .speciality-link_btn::after {
        --icon-size: calc(15 * var(--min-fluid-ratio));
        height: calc(10 * var(--min-fluid-ratio));
        margin-top: calc(14 * var(--min-fluid-ratio));

    }

    .speciality-link .speciality-link_btn span {
        font-size: calc(12 * var(--min-fluid-ratio));
        margin-bottom: calc(4 * var(--min-fluid-ratio));
    }

    .speciality_title {
        padding-bottom: calc(21 * var(--min-fluid-ratio));
        border-bottom-width: calc(3 * var(--min-fluid-ratio));
    }

    .speciality_title .title-en {
        font-size: calc(16 * var(--min-fluid-ratio));
        grid-template-columns: calc(20 * var(--min-fluid-ratio)) 1fr;
        column-gap: calc(16 * var(--min-fluid-ratio));
    }

    .speciality_title .title-en::before {
        height: calc(5 * var(--min-fluid-ratio));
        transform: translateY(calc(1 * var(--min-fluid-ratio)));
    }

    .speciality_title .title-jp {
        width: calc(340 * var(--min-fluid-ratio));
        font-size: calc(13 * var(--min-fluid-ratio));
        margin-top: calc(21 * var(--min-fluid-ratio));
    }

    .speciality_title .title-jp strong {
        font-size: calc(20 * var(--min-fluid-ratio));
        margin-top: calc(8 * var(--min-fluid-ratio));
    }

    .speciality-keyword {
        margin-top: calc(73 * var(--min-fluid-ratio));
    }

    .speciality-keyword .speciality-keyword_lead {
        font-size: calc(14 * var(--min-fluid-ratio));
        line-height: calc(26 / 14);
        margin-top: calc(24 * var(--min-fluid-ratio));
    }
    .speciality-keyword .speciality-keyword_form {
        margin-top: calc(37 * var(--min-fluid-ratio));
    }

    .speciality-keyword .speciality-keyword_form .keyword_label {
        font-size: calc(14 * var(--min-fluid-ratio));
        line-height: calc(20 / 14);
    }

    .speciality-keyword .speciality-keyword_form .keyword_input {
        width: 100%;
        border-width: calc(2 * var(--min-fluid-ratio));
        border-radius: calc(8 * var(--min-fluid-ratio));
        padding: calc(14 * var(--min-fluid-ratio)) calc(55 * var(--min-fluid-ratio)) calc(14 * var(--min-fluid-ratio)) calc(10 * var(--min-fluid-ratio));
        font-size: calc(16 * var(--min-fluid-ratio));
        margin-top: calc(20 * var(--min-fluid-ratio));
    }

    .speciality-keyword .speciality-keyword_form .keyword_submit {
        width: calc(56 * var(--min-fluid-ratio));
        aspect-ratio: 1;
        right: calc(0 * var(--min-fluid-ratio));
        bottom: calc(4 * var(--min-fluid-ratio));
        border: none;
        padding: calc(8 * var(--min-fluid-ratio)) calc(0 * var(--min-fluid-ratio)) 0 calc(3 * var(--min-fluid-ratio));
    }

    .speciality-keyword .speciality-keyword_form .keyword_submit img {
        width: calc(24 * var(--min-fluid-ratio));
    }

    .speciality-keyword .speciality-keyword_notes {
        font-size: calc(12 * var(--min-fluid-ratio));
        margin-top: calc(8 * var(--min-fluid-ratio));
    }    

    .speciality-keyword .keyword_list {
        margin-top: calc(36 * var(--min-fluid-ratio));
    }

    .speciality-keyword .keyword_tags {
        gap: calc(10 * var(--min-fluid-ratio));
    }

    .speciality-keyword .keyword_tags .keyword_tag {
        font-size: calc(12 * var(--min-fluid-ratio));
        padding: calc(9 * var(--min-fluid-ratio)) calc(19 * var(--min-fluid-ratio)) calc(8 * var(--min-fluid-ratio));
        border-radius: calc(8 * var(--min-fluid-ratio));
    }

    .speciality-keyword .more-btn {
        display: block;
        width: calc(144 * var(--min-fluid-ratio));
        font-size: calc(14 * var(--min-fluid-ratio));
        margin-top: calc(47 * var(--min-fluid-ratio));
        padding: calc(12 * var(--min-fluid-ratio)) 0 calc(12 * var(--min-fluid-ratio)) calc(24 * var(--min-fluid-ratio));
        border-radius: calc(5 * var(--min-fluid-ratio));
    }

    .speciality-keyword .more-btn:has(.more_input:checked) {
        padding-left: calc(37 * var(--min-fluid-ratio));
    }

    .speciality-keyword .more-btn .more-btn_icon {
        width: calc(24 * var(--min-fluid-ratio));
        height: calc(24 * var(--min-fluid-ratio));
        inset: 0 calc(11 * var(--min-fluid-ratio)) 0 auto;
    }

    .speciality-keyword .more-btn .more-btn_icon:before,
    .speciality-keyword .more-btn .more-btn_icon:after {
        --icon-width: calc(2 * var(--min-fluid-ratio));
        --icon-height: calc(12 * var(--min-fluid-ratio));
    }

    .speciality-field {
        margin-top: calc(60 * var(--min-fluid-ratio));
    }

    .speciality-field .speciality-field_btnArea {
        margin-top: calc(30 * var(--min-fluid-ratio));
        flex-direction: column;
        row-gap: calc(21 * var(--min-fluid-ratio));
    }

    .speciality-field .speciality-field_btnArea .speciality-field_btn {
        width: 100%;
        padding: calc(16 * var(--min-fluid-ratio)) calc(26 * var(--min-fluid-ratio)) calc(6 * var(--min-fluid-ratio));
        border-radius: calc(14 * var(--min-fluid-ratio));
        font-size: calc(20 * var(--min-fluid-ratio));
    }

    .speciality-field .speciality-field_btnArea .speciality-field_btn::after {
        --icon-size: calc(15 * var(--min-fluid-ratio));
        height: calc(10 * var(--min-fluid-ratio));
        margin-top: calc(10 * var(--min-fluid-ratio));
    }

    .speciality-field .field-box {
        margin-top: calc(82 * var(--min-fluid-ratio));
        padding: calc(6 * var(--min-fluid-ratio));
    }

    .speciality-field .field-box + .field-box {
        margin-top: calc(72 * var(--min-fluid-ratio));
    }

    .speciality-field .field-box::before {
        inset: calc(6 * var(--min-fluid-ratio));
        border-radius: calc(7 * var(--min-fluid-ratio));
    }
    
    .speciality-field .field-box::after {
        border-radius: calc(12 * var(--min-fluid-ratio));
    }

    .speciality-field .field-box .field-box_title {
        font-size: calc(30 * var(--min-fluid-ratio));
        margin: calc(-28 * var(--min-fluid-ratio)) 0;
        text-align: center;
    }

    .speciality-field .field-box .field-box_title span {
        padding: 0 calc(20 * var(--min-fluid-ratio));
    }

    .speciality-field .field-box .field-box_inner {
        padding: calc(65 * var(--min-fluid-ratio)) calc(10 * var(--min-fluid-ratio)) calc(34 * var(--min-fluid-ratio));
    }

    .speciality-field .field-box_item + .field-box_item {
        margin-top: calc(38 * var(--min-fluid-ratio));
    }

    .speciality-field .field-box_item .field-box_subtitle {
        font-size: calc(20 * var(--min-fluid-ratio));
    }

    .speciality-field .field-box_item .field-box_tags {
        margin-top: calc(19 * var(--min-fluid-ratio));
        gap: calc(10 * var(--min-fluid-ratio));
    }


    .speciality-field .field-box_item .field-box_tag {
        font-size: calc(12 * var(--min-fluid-ratio));
        padding: calc(9 * var(--min-fluid-ratio)) calc(19 * var(--min-fluid-ratio)) calc(8 * var(--min-fluid-ratio));
        border-radius: calc(8 * var(--min-fluid-ratio));
    }
}