#company_vision { color: #000; }

#company_vision .vision_intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.38fr) minmax(27rem, 0.48fr);
    gap: clamp(2rem, 3vw, 4.5rem);
    align-items: stretch;
    margin-bottom: 10rem;
}

#company_vision .vision_intro_copy { padding: 3rem 0; }

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

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

#company_vision .vision_intro h2 {
    margin-bottom: 3rem;
    color: #243b5a;
    font-family: "Paperlogy", sans-serif;
    font-size: clamp(3.4rem, 3.7vw, 5.2rem);
    font-weight: 700;
    line-height: 1.28;
    letter-spacing: -0.05em;
}

#company_vision .vision_intro_copy p {
    max-width: 76rem;
    margin-bottom: 1.4rem;
    font-size: 1.7rem;
    line-height: 1.9;
}

#company_vision .security_highlight {
    margin-top: 3rem;
    padding: 2.4rem 2.6rem;
    border-left: 0.3rem solid #6f9fc5;
    background: #f4f7f9;
}

#company_vision .security_highlight span {
    display: block;
    margin-bottom: 0.8rem;
    color: #6f9fc5;
    font-family: "Paperlogy", sans-serif;
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: 0.1em;
}

#company_vision .security_highlight strong {
    display: block;
    margin-bottom: 0.8rem;
    color: #000000;
    font-family: "Paperlogy", sans-serif;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.45;
}

#company_vision .security_highlight p { margin: 0; font-size: 1.5rem; line-height: 1.65; }

#company_vision .vision_system_photos {
    display: grid;
    grid-template-rows: 1.25fr 0.9fr 0.9fr;
    gap: 1rem;
    height: 51rem;
    min-height: 0;
}

#company_vision .system_photo {
    position: relative;
    overflow: hidden;
    min-height: 0;
    background: #edf1f4;
}

#company_vision .system_photo img { width: 100%; height: 100%; object-fit: cover; }
#company_vision .system_photo_lock img { object-position: 52% 58%; }

#company_vision .system_photo figcaption {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    padding: 0.6rem 0.9rem;
    background: rgba(36, 59, 90, 0.82);
    color: #fff;
    font-family: "Paperlogy", sans-serif;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.04em;
}

#company_vision .vision_total {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 3.6rem;
    border-radius: 0.4rem 4rem 0.4rem 0.4rem;
    background: #243b5a;
    color: #fff;
    height: 51rem;
}

#company_vision .vision_total > span {
    margin-bottom: 2.4rem;
    color: #b9d7ed;
    font-family: "Paperlogy", sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: 0.12em;
}

#company_vision .vision_total strong {
    display: flex;
    align-items: baseline;
    gap: 1rem;
    margin-bottom: 2.2rem;
    font-family: "Paperlogy", sans-serif;
    font-size: 2.2rem;
    font-weight: 600;
}

#company_vision .vision_total strong em {
    font-size: clamp(7rem, 8vw, 10rem);
    font-weight: 700;
    line-height: 0.9;
}

#company_vision .vision_total p {
    color: #fff;
    font-size: 1.55rem;
    line-height: 1.7;
}

#company_vision .office_status,
#company_vision .facility_status { margin-bottom: 10rem; }

#company_vision .section_heading { margin-bottom: 4rem; }

#company_vision .section_heading h3 {
    margin-bottom: 1.2rem;
    color: #243b5a;
    font-family: "Paperlogy", sans-serif;
    font-size: 3.6rem;
    font-weight: 700;
    letter-spacing: -0.04em;
}

#company_vision .section_heading p { font-size: 1.65rem; line-height: 1.7; }

#company_vision .office_grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.8rem;
}

#company_vision .office_card {
    min-width: 0;
    padding: 3.4rem 3rem;
    border-top: 0.2rem solid #6f9fc5;
    background: #f5f7f9;
}

#company_vision .office_people {
    display: block;
    margin-bottom: 2.2rem;
    color: #6f9fc5;
    font-family: "Paperlogy", sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}

#company_vision .office_card > strong {
    display: block;
    color: #000000;
    font-family: "Paperlogy", sans-serif;
    font-size: 2.4rem;
    font-weight: 700;
}

#company_vision .office_count {
    display: flex;
    align-items: baseline;
    gap: 0.7rem;
    margin: 2.6rem 0 2rem;
    font-size: 1.8rem;
    font-weight: 600;
}

#company_vision .office_count em {
    color: #365f8d;
    font-family: "Paperlogy", sans-serif;
    font-size: clamp(4.8rem, 4.5vw, 6.4rem);
    font-weight: 700;
    line-height: 0.9;
}

#company_vision .office_card p { font-size: 1.55rem; line-height: 1.7; }

#company_vision .office_consult {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4rem;
    margin-top: 2rem;
    padding: 3rem 3.4rem;
    border: 1px solid #d9e2e9;
}

#company_vision .office_consult span {
    display: block;
    margin-bottom: 0.8rem;
    color: #6f9fc5;
    font-family: "Paperlogy", sans-serif;
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: 0.1em;
}

#company_vision .office_consult strong {
    display: block;
    margin-bottom: 0.8rem;
    color: #000000;
    font-family: "Paperlogy", sans-serif;
    font-size: 2.2rem;
    font-weight: 700;
}

#company_vision .office_consult p { font-size: 1.5rem; line-height: 1.6; }

#company_vision .office_consult a {
    flex: 0 0 auto;
    padding: 1.5rem 2.6rem;
    background: #243b5a;
    color: #fff;
    font-family: "Paperlogy", sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    transition: background 0.2s ease;
}

#company_vision .office_consult a:hover { background: #365f8d; }

#company_vision .facility_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.8rem;
}

#company_vision .facility_card {
    display: flex;
    align-items: center;
    gap: 2.2rem;
    padding: 3rem;
    border: 1px solid #d9e2e9;
}

#company_vision .facility_card > span {
    color: #87abc9;
    font-family: "Paperlogy", sans-serif;
    font-size: 1.4rem;
    font-weight: 700;
}

#company_vision .facility_card strong {
    display: block;
    margin-bottom: 0.7rem;
    color: #243b5a;
    font-family: "Paperlogy", sans-serif;
    font-size: 2.2rem;
    font-weight: 700;
}

#company_vision .facility_card p { font-size: 1.55rem; line-height: 1.7; overflow-wrap: anywhere; }
#company_vision .facility_card p + p { margin-top: 0.6rem; }
#company_vision .facility_card > div { min-width: 0; }
#company_vision .facility_card_featured { grid-column: 1 / -1; background: #f0f4f7; }

#company_vision .facility_list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.2rem;
    margin-top: 2rem;
}

#company_vision .facility_list li {
    display: flex;
    align-items: center;
    gap: 1.4rem;
    min-height: 8.2rem;
    padding: 2rem 2.2rem;
    border-top: 0.2rem solid #9bbbd3;
    background: #f0f4f7;
}

#company_vision .facility_list li > span {
    color: #87abc9;
    font-family: "Paperlogy", sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
}

#company_vision .facility_list li > strong {
    color: #000000;
    font-family: "Paperlogy", sans-serif;
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.4;
}

#company_vision .facility_list .facility_parking { grid-column: span 3; background: #e8f0f6; }

#company_vision .vision_notice {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4rem;
    padding: 3rem 3.4rem;
    border-left: 0.3rem solid #6f9fc5;
    background: #f5f7f9;
}

#company_vision .vision_notice span {
    flex: 0 0 auto;
    color: #365f8d;
    font-family: "Paperlogy", sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}

#company_vision .vision_notice > div { text-align: right; }
#company_vision .vision_notice strong { display: block; margin-bottom: 0.5rem; color: #243b5a; font-family: "Paperlogy", sans-serif; font-size: 2.2rem; font-weight: 700; }
#company_vision .vision_notice p { font-size: 1.6rem; line-height: 1.6; }
#company_vision .vision_notice a { color: #e75b32; font-family: "Paperlogy", sans-serif; font-size: 1.9rem; font-weight: 700; }

@media (max-width: 1024px) {
    #company_vision .vision_intro { grid-template-columns: minmax(0, 1fr) minmax(19rem, 0.42fr); gap: 2rem; }
    #company_vision .vision_intro_copy { grid-column: 1 / -1; }
    #company_vision .vision_system_photos { height: 34rem; min-height: 0; grid-template-columns: repeat(3, 1fr); grid-template-rows: 1fr; }
    #company_vision .vision_total { height: 34rem; min-height: 0; }
    #company_vision .office_grid { grid-template-columns: repeat(2, 1fr); }
    #company_vision .facility_list { grid-template-columns: repeat(2, 1fr); }
    #company_vision .facility_list .facility_parking { grid-column: span 2; }
}

@media (max-width: 768px) {
    #company_vision .vision_intro,
    #company_vision .office_status,
    #company_vision .facility_status { margin-bottom: 7rem; }
    #company_vision .vision_intro_copy { padding: 0; }
    #company_vision .vision_intro { grid-template-columns: 1fr; }
    #company_vision .vision_system_photos { grid-template-columns: repeat(2, 1fr); height: 42rem; min-height: 0; }
    #company_vision .system_photo_lock { grid-row: span 2; }
    #company_vision .vision_total { grid-column: 1; height: auto; min-height: 27rem; }
    #company_vision .vision_intro h2 { font-size: 3rem; }
    #company_vision .vision_intro_copy p { font-size: 1.55rem; line-height: 1.8; }
    #company_vision .vision_total { min-height: 0; padding: 3.4rem; border-radius: 0.3rem 2.6rem 0.3rem 0.3rem; }
    #company_vision .vision_total strong em { font-size: 7rem; }
    #company_vision .section_heading { margin-bottom: 3rem; }
    #company_vision .section_heading h3 { font-size: 2.8rem; }
    #company_vision .section_heading p { font-size: 1.5rem; }
    #company_vision .office_grid,
    #company_vision .facility_grid { grid-template-columns: 1fr; gap: 1.2rem; }
    #company_vision .office_card { padding: 2.8rem 2.4rem; }
    #company_vision .office_count em { font-size: 5.4rem; }
    #company_vision .office_consult { align-items: stretch; flex-direction: column; gap: 2.2rem; padding: 2.6rem 2.4rem; }
    #company_vision .office_consult a { text-align: center; }
    #company_vision .facility_card { padding: 2.5rem 2.2rem; }
    #company_vision .facility_list { grid-template-columns: 1fr; gap: 0.8rem; }
    #company_vision .facility_list .facility_parking { grid-column: auto; }
    #company_vision .facility_list li { min-height: 7.4rem; padding: 1.8rem; }
    #company_vision .facility_list li > strong { font-size: 1.7rem; }
    #company_vision .vision_notice { align-items: flex-start; flex-direction: column; gap: 1.6rem; padding: 2.4rem; }
    #company_vision .vision_notice > div { text-align: left; }
}
