#business_info { color: #20252b; }

#business_info .service_intro {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(38rem, 0.72fr);
    gap: clamp(5rem, 8vw, 12rem);
    align-items: end;
    margin-bottom: 5rem;
}

#business_info .service_eyebrow,
#business_info .section_heading > span,
#business_info .service_system_heading > span {
    display: flex;
    align-items: center;
    gap: 1.4rem;
    margin-bottom: 2rem;
    color: #6f9fc5;
    font-family: "Paperlogy", sans-serif;
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: 0.12em;
}

#business_info .service_eyebrow::before,
#business_info .section_heading > span::before,
#business_info .service_system_heading > span::before {
    width: 3.2rem;
    height: 0.2rem;
    background: #6f9fc5;
    content: "";
}

#business_info .service_intro h2 {
    color: #243b5a;
    font-family: "Paperlogy", sans-serif;
    font-size: clamp(3rem, 3vw, 4.5rem);
    font-weight: 700;
    line-height: 1.22;
    letter-spacing: -0.055em;
}

#business_info .service_intro_desc { padding-bottom: 0.5rem; }
#business_info .service_intro_desc p { font-size: 1.7rem; line-height: 1.85; word-break: keep-all; }
#business_info .service_intro_desc p + p { margin-top: 1.2rem; }

#business_info .service_intro_desc ul {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    margin-top: 2.8rem;
}

#business_info .service_intro_desc li {
    padding: 0.8rem 1.4rem;
    border: 1px solid #d9e3ea;
    border-radius: 10rem;
    color: #365f8d;
    font-family: "Paperlogy", sans-serif;
    font-size: 1.25rem;
    font-weight: 600;
}

#business_info .audience_section { margin-bottom: 12rem; }
#business_info .section_heading { max-width: 82rem; margin-bottom: 4.5rem; }
#business_info .section_heading h3 { color: #243b5a; font-family: "Paperlogy", sans-serif; font-size: clamp(3.2rem, 3.4vw, 4.8rem); font-weight: 700; line-height: 1.3; letter-spacing: -0.045em; }
#business_info .section_heading p { max-width: 75rem; margin-top: 1.8rem; font-size: 1.65rem; line-height: 1.8; word-break: keep-all; }

#business_info .audience_grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2rem;
}

#business_info .audience_card {
    overflow: hidden;
    border-top: 0.3rem solid #6f9fc5;
    background: #f5f7f9;
}

#business_info .audience_photo { position: relative; height: 32rem; overflow: hidden; }
#business_info .audience_photo::after { position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(20, 35, 52, 0.68)); content: ""; }
#business_info .audience_photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
#business_info .audience_card:hover .audience_photo img { transform: scale(1.035); }
#business_info .audience_examinee .audience_photo img { object-position: center 62%; }
#business_info .audience_student .audience_photo img { object-position: center 58%; }

#business_info .audience_photo > span {
    position: absolute;
    left: 2.6rem;
    bottom: 2.2rem;
    z-index: 1;
    color: #fff;
    font-family: "Paperlogy", sans-serif;
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: 0.13em;
}

#business_info .audience_body { padding: 3.4rem 3rem 3.6rem; }
#business_info .audience_body h4 { margin-bottom: 2.2rem; color: #6f9fc5; font-family: "Paperlogy", sans-serif; font-size: 1.6rem; font-weight: 700; }
#business_info .audience_body > strong { display: block; min-height: 7.8rem; color: #243b5a; font-family: "Paperlogy", sans-serif; font-size: 2.6rem; font-weight: 700; line-height: 1.42; letter-spacing: -0.035em; }
#business_info .audience_body > p { min-height: 14rem; margin-top: 2rem; font-size: 1.55rem; line-height: 1.78; word-break: keep-all; }
#business_info .audience_body ul { margin-top: 2.5rem; padding-top: 2.2rem; border-top: 1px solid #d9e0e5; }
#business_info .audience_body li { position: relative; padding-left: 1.5rem; font-size: 1.4rem; line-height: 1.65; }
#business_info .audience_body li::before { position: absolute; top: 0.9em; left: 0; width: 0.45rem; height: 0.45rem; border-radius: 50%; background: #6f9fc5; content: ""; }
#business_info .audience_body li + li { margin-top: 0.8rem; }

#business_info .service_system {
    display: grid;
    grid-template-columns: minmax(0, 0.72fr) minmax(52rem, 1.18fr);
    gap: clamp(5rem, 8vw, 11rem);
    margin-bottom: 12rem;
    padding: 7rem;
    background: #243b5a;
    color: #fff;
}

#business_info .service_system_heading h3 { font-family: "Paperlogy", sans-serif; font-size: clamp(3.2rem, 3.6vw, 4.8rem); font-weight: 700; line-height: 1.3; letter-spacing: -0.045em; }
#business_info .service_system_heading p { margin-top: 2rem; color: rgba(255,255,255,0.74); font-size: 1.55rem; line-height: 1.8; }
#business_info .service_system_list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid rgba(255,255,255,0.18); }
#business_info .service_system_list li { padding: 2.5rem 2rem; border-bottom: 1px solid rgba(255,255,255,0.18); }
#business_info .service_system_list li:nth-child(odd) { border-right: 1px solid rgba(255,255,255,0.18); }
#business_info .service_system_list span { display: block; margin-bottom: 1.2rem; color: #9dc9e9; font-family: "Paperlogy", sans-serif; font-size: 1.05rem; letter-spacing: 0.12em; }
#business_info .service_system_list strong { display: block; font-family: "Paperlogy", sans-serif; font-size: 1.85rem; font-weight: 600; }
#business_info .service_system_list p { margin-top: 0.9rem; color: rgba(255,255,255,0.68); font-size: 1.35rem; line-height: 1.6; }

#business_info .facility_preview { margin-bottom: 12rem; }
#business_info .facility_grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: repeat(2, 25rem); gap: 1.2rem; }
#business_info .facility_item { position: relative; overflow: hidden; background: #e9eef2; }
#business_info .facility_large { grid-column: span 2; grid-row: span 2; }
#business_info .facility_item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
#business_info .facility_item:hover img { transform: scale(1.035); }
#business_info .facility_item::after { position: absolute; inset: 38% 0 0; background: linear-gradient(transparent, rgba(20,35,52,0.78)); content: ""; }
#business_info .facility_item figcaption { position: absolute; left: 2.2rem; right: 2.2rem; bottom: 2rem; z-index: 1; color: #fff; }
#business_info .facility_item figcaption span { display: block; margin-bottom: 0.6rem; font-family: "Paperlogy", sans-serif; font-size: 1rem; letter-spacing: 0.12em; opacity: 0.78; }
#business_info .facility_item figcaption strong { font-family: "Paperlogy", sans-serif; font-size: 1.7rem; font-weight: 600; }

#business_info .service_contact {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4rem;
    padding: 5rem 5.5rem;
    border-top: 0.3rem solid #6f9fc5;
    background: #f3f6f8;
}

#business_info .service_contact > div > span { display: block; margin-bottom: 1.2rem; color: #6f9fc5; font-family: "Paperlogy", sans-serif; font-size: 1.1rem; font-weight: 700; letter-spacing: 0.12em; }
#business_info .service_contact > div > strong { color: #243b5a; font-family: "Paperlogy", sans-serif; font-size: clamp(2.7rem, 3vw, 4rem); font-weight: 700; line-height: 1.35; }
#business_info .service_contact > div > p { margin-top: 1.4rem; font-size: 1.5rem; line-height: 1.7; }
#business_info .service_contact > a { flex: 0 0 auto; min-width: 26rem; padding: 2rem 2.6rem; background: #243b5a; color: #fff; text-align: center; }
#business_info .service_contact > a span { display: block; margin-bottom: 0.5rem; font-size: 1.2rem; opacity: 0.72; }
#business_info .service_contact > a strong { font-family: "Paperlogy", sans-serif; font-size: 2.4rem; font-weight: 600; }

@media (max-width: 1100px) {
    #business_info .audience_grid { grid-template-columns: 1fr; }
    #business_info .audience_card { display: grid; grid-template-columns: minmax(28rem, 0.72fr) 1fr; }
    #business_info .audience_photo { height: auto; min-height: 38rem; }
    #business_info .audience_body > strong,
    #business_info .audience_body > p { min-height: 0; }
    #business_info .service_system { grid-template-columns: 1fr; padding: 5rem; }
}

@media (max-width: 768px) {
    #business_info .service_intro { grid-template-columns: 1fr; gap: 3rem; margin-bottom: 7rem; }
    #business_info .service_intro h2 { font-size: 3rem; }
    #business_info .service_intro_desc p { font-size: 1.55rem; }
    #business_info .audience_section,
    #business_info .service_system,
    #business_info .facility_preview { margin-bottom: 8rem; }
    #business_info .section_heading { margin-bottom: 3.2rem; }
    #business_info .section_heading h3 { font-size: 3rem; }
    #business_info .audience_card { display: block; }
    #business_info .audience_photo { height: 28rem; min-height: 0; }
    #business_info .audience_body { padding: 2.8rem 2.3rem 3rem; }
    #business_info .audience_body > strong { font-size: 2.35rem; }
    #business_info .service_system { padding: 4rem 2.4rem; }
    #business_info .service_system_list { grid-template-columns: 1fr; }
    #business_info .service_system_list li:nth-child(odd) { border-right: 0; }
    #business_info .facility_grid { grid-template-columns: repeat(2, 1fr); grid-template-rows: 30rem repeat(2, 20rem); }
    #business_info .facility_large { grid-column: span 2; grid-row: span 1; }
    #business_info .service_contact { display: block; padding: 4rem 2.4rem; }
    #business_info .service_contact > a { display: block; min-width: 0; margin-top: 3rem; }
}

@media (max-width: 520px) {
    #business_info .facility_grid { display: block; }
    #business_info .facility_item { height: 23rem; }
    #business_info .facility_item + .facility_item { margin-top: 1rem; }
}
