/* Company page specific styles */

/* ページヘッダー */
.company-page-header {
    /* background-color: #fff; */
    padding: 6rem 0 4rem;
    text-align: left;
    margin-bottom: 0;
    position: relative;
}

.company-page-header-bg {
    position: relative;
}

.company-page-header-bg::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    filter: contrast(100%) brightness(150%);
    background:
        linear-gradient(0deg, rgba(255, 255, 255, 0), rgba(112, 125, 141, 1)),
        url(../images/common/noise_texture.svg);
    z-index: -1;
}

@media (max-width: 450px) {
    .company-page-header-bg {
        background:
            linear-gradient(#BCCBDC, #FFF)
    }
}

.company-page-header-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 1rem;
    position: relative;
    flex-direction: column;
}

.company-page-header-content {
    position: relative;
    display: inline-block;
    padding: 2rem 4rem;
}

.company-page-header-label {
    display: block;
    color: var(--primary-color);
    font-size: 1.125rem;
    margin-bottom: 1.5rem;
    position: relative;
    font-weight: 500;
    padding-left: 1.5rem;
    z-index: 2;
}

.company-page-header-label::before {
    content: '■';
    color: #FF9F1C;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1rem;
    line-height: 1;
}

.company-page-title {
    display: block;
    font-size: 3.75rem;
    margin: 0;
    font-family: 'Helvetica Neue', Arial, sans-serif;
    font-weight: 900;
    letter-spacing: -0.02em;
    line-height: 1;
    color: var(--secondary-color);
    position: relative;
    transform: scaleX(1.3);
    z-index: 2;
    margin-left: 40px;
}

.company-page-subtitle {
    font-size: 1rem;
    margin: 1rem 0 0;
    color: #666;
    position: relative;
    z-index: 2;
}

/* タブナビゲーション */
.company-nav {
    background-color: transparent;
    padding: 1rem 0;
    margin-bottom: 2rem;
}

.company-nav-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 1rem;
}

.company-tabs {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    gap: 0.5rem;
}

.company-tabs li {
    flex: 1;
}

.company-tabs a {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    color: var(--primary-color);
    text-decoration: none;
    font-size: 0.95rem;
    font-weight: 500;
    background-color: #fff;
    border: 1px solid var(--primary-color);
    transition: all 0.3s;
    position: relative;
    text-align: center;
    box-shadow: 0 2px 8px rgba(30, 60, 120, 0.08);
}

/* タブの矢印スタイルを修正 */
.company-tabs a span.tab-arrow {
    margin-left: 0.5rem;
    transition: transform 0.3s;
}

.company-tabs a:hover {
    background-color: #F8F9FF;
    box-shadow: 0 4px 12px rgba(30, 60, 120, 0.12);
}

.company-tabs a.active {
    background-color: var(--primary-color);
    color: #fff;
    box-shadow: 0 4px 12px rgba(30, 60, 120, 0.15);
}

.company-tabs a.active span.tab-arrow {
    transform: rotate(180deg);
}

/* 会社概要セクション */
.company-section {
    background-color: #fff;
    margin: 0 2px;
}

.company-section-container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 1rem;
}

.top-section-container {
    max-width: 700px;
    margin: 0 auto;
    text-align: center;
}

.top-section-container2 {
    max-width: 1200px;
    margin: 0 auto;
}

/* 会社概要テーブル */
.company-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.company-table th,
.company-table td {
    padding: 1.5rem;
    border-bottom: 1px solid #eee;
    line-height: 1.6;
    vertical-align: top;
}

.company-table th {
    width: 180px;
    text-align: left;
    color: var(--primary-color);
    font-weight: 500;
    padding-right: 2rem;
    vertical-align: middle;
}

.company-table td {
    color: var(--text-color);
    /* font-weight: 500; */
}

.company-table ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.company-table li {
    margin-bottom: 0.75rem;
    position: relative;
    padding-left: 1rem;
}

.company-table li::before {
    content: '・';
    position: absolute;
    left: 0;
}

/* オフィスカード */
.office-card {
    background: #fff;
    border-radius: 20px;
    padding: 0 2rem 2rem 2rem;
}

.office-card h3 {
    margin: 0 0 1rem;
    color: #2B30BB;
}

.office-card p {
    margin: 0;
    color: var(--text-color);
    font-size: 1.1rem;
}

.last-office-card {
    padding: 0 2rem;
}

/* アクセス情報 */
.access-info {
    margin-bottom: 2rem;
}

.access-info h4 {
    margin: 0 0 1rem;
    color: var(--primary-color);
    font-size: 1.3rem;
}

.access-info ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.access-info li {
    margin-bottom: 0.5rem;
    color: var(--text-color);
    position: relative;
    padding-left: 1.5rem;
    font-size: 1.1rem;
}

.access-info li::before {
    content: '・';
    position: absolute;
    left: 0;
    color: var(--text-color);
}

/* 地図 */
.map-container {
    margin-top: 2rem;
}

.map-container iframe {
    width: 100%;
    height: 400px;
    border: none;
}

.company-strength-image-wrapper {
    flex: 1;
    min-width: 400px;
    max-width: 400px;
    padding-left: 40px;
}

.company-strength-img {
    width: 100%;
    border-radius: 20px;
    display: block;
}

.company-strength-text-wrapper {
    flex: 2;
    min-width: 300px;
    position: relative;
    padding-left: 24px;
}

.maintenance-text-wrapper {
    padding-right: 24px;
    padding-left: 0;
}

.company-strength-text {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 16px;
    margin-bottom: 16px;
}

.company-strength-span {
    background: var(--primary-color);
    color: #fff;
    font-weight: bold;
    font-size: 1rem;
    padding: 8px 28px;
    border-radius: 24px;
    display: inline-block;
}

.company-strength-area {
    display: flex;
    gap: 48px;
    align-items: center;
    background: #fff;
    box-shadow: 0 2px 10px #0005;
    padding: 40px 40px 40px 0;
    flex-wrap: wrap;
}

.maintenance-support-area {
    padding: 40px 0 40px 40px;
}

.right-display {
    padding-left: 20px;
}

.right-display-img {
    padding-left: 0;
    padding-right: 40px;
}

.company-strength-section {
    background: transparent;
    padding: 0 0 80px 0;
}

.company-top-title {
    color: var(--primary-color);
    font-size: 2rem;
    font-weight: bold;
    margin-bottom: 24px;
}

.company-top-text {
    color: var(--text-color);
    font-size: 1.1rem;
    line-height: 2;
    margin-bottom: 0;
    text-align: left;
}

@media (max-width: 819px) {
    .company-strength-image-wrapper img[src*="strength_software.png"] {
        content: url("../images/company/strength_software_sp.jpg");
    }

    .company-strength-image-wrapper img[src*="strength_support.png"] {
        content: url("../images/company/strength_support_sp.jpg");
    }

    .company-strength-image-wrapper img[src*="strength_market.png"] {
        content: url("../images/company/strength_market_sp.jpg");
    }

    .company-strength-image-wrapper {
        max-width: none;
    }
}

@media (max-width: 600px) {
    .company-strength-image-wrapper img[src*="strength_software.png"] {
        content: url("../images/company/strength_software.png");
    }

    .company-strength-image-wrapper img[src*="strength_support.png"] {
        content: url("../images/company/strength_support.png");
    }

    .company-strength-image-wrapper img[src*="strength_market.png"] {
        content: url("../images/company/strength_market.png");
    }
}

/* レスポンシブデザイン */
@media (max-width: 1350px) {
    .company-nav-container {
        padding: 0.5rem 1rem;
    }

    .company-nav-links {
        gap: 1.5rem;
    }

    .company-page-header-content {
        padding: 1.5rem 3rem;
    }

    .company-page-title {
        font-size: 3rem;
    }

    .company-page-header-label {
        font-size: 1rem;
    }

    .company-table th {
        width: 140px;
    }

    .company-tabs {
        flex-wrap: wrap;
    }

    .company-tabs li {
        flex: 0 0 calc(50% - 0.25rem);
    }
}

.company-strength-lead {
    font-size: 1.5rem;
    font-weight: bold;
    color: var(--primary-color);
    margin-bottom: 18px;
    text-align: left;
}

@media (max-width: 768px) {
    .company-nav-container {
        display: none;
    }

    .company-nav-menu {
        display: none;
    }

    .company-page-header {
        padding: 4rem 0 3rem;
    }

    .company-page-header-content {
        padding: 1rem 2rem;
    }

    .company-page-title {
        font-size: 2.7rem;
        font-weight: 900;
        color: var(--secondary-color);
        margin: 0 0 1.2rem 0;
        letter-spacing: -0.02em;
        line-height: 1.1;
        font-family: 'Helvetica Neue', Arial, sans-serif;
        transform: none;
        margin-left: 30px;
        text-align: left;
    }

    .company-page-header-label {
        font-size: 1.1rem;
        font-weight: 500;
        color: var(--primary-color);
        margin-bottom: 0.5rem;
        padding-left: 1.2rem;
    }

    .company-page-header-label::before {
        font-size: 1.1rem;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
    }

    .company-tabs {
        flex-direction: column;
    }

    .company-tabs li {
        flex: 1;
    }

    .company-table th,
    .company-table td {
        display: block;
        width: 100%;
        padding: 1rem;
    }

    .company-table th {
        background: #fff;
        margin-bottom: 0.5rem;
    }

    .pc-nav {
        display: none !important;
    }

    .sp-nav {
        display: block !important;
    }

    .sp-nav .sp-buttons {
        display: grid;
        /* grid-template-columns: repeat(2, 1fr); */
        gap: 0.8rem 1rem;
        padding: 0;
        margin: 0;
    }

    .sp-nav .sp-buttons a {
        width: 100%;
        box-sizing: border-box;
        justify-content: center;
        font-size: 0.9rem;
        font-weight: bold;
        padding: 0.8rem 0.5rem;
        background: #fff;
        color: var(--primary-color);
        /* border-radius: 8px; */
        border: none;
        box-shadow: 0 2px 8px rgba(30, 60, 120, 0.08);
        margin-bottom: 0;
        display: flex;
        align-items: center;
        text-align: center;
        transition: background 0.2s, color 0.2s, box-shadow 0.2s;
        text-decoration: none;
    }

    .sp-nav .sp-buttons a .tab-arrow {
        color: #FF9F1C;
        font-size: 1rem;
        margin-left: 0.5em;
        font-weight: normal;
    }

    .sp-nav .sp-buttons a:hover,
    .sp-nav .sp-buttons a.active {
        background: var(--primary-color);
        color: #fff;
    }

    .company-top-section h2 {
        font-size: 1.7rem !important;
    }

    .company-top-section p {
        font-size: 0.95rem !important;
        /* font-weight: bold; */
        padding: 0 1rem;
    }

    .company-strength-section img {
        width: 100% !important;
        height: auto !important;
        display: block;
        margin: 0 auto 1rem auto;
    }

    .company-strength-section h3,
    .company-strength-section .company-strength-title {
        font-size: 1.1rem !important;
        font-weight: 700;
    }

    .company-strength-section p,
    .company-strength-section .company-strength-desc {
        font-size: 0.98rem !important;
        /* font-weight: bold !important; */
    }

    .company-strength-flex {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .company-strength-flex.reverse {
        flex-direction: row !important;
    }

    .company-strength-label-row {
        display: flex;
        align-items: center;
        gap: 0.7em;
        margin-bottom: 1em;
    }

    .company-strength-number {
        color: #2B30BB;
        font-weight: bold;
        font-size: 1.3rem;
        background: none;
        position: static;
        min-width: 2.5em;
        text-align: left;
        padding: 0;
        display: block;
    }

    .company-strength-title {
        background: #2B30BB;
        color: #fff;
        font-weight: bold;
        font-size: 1rem;
        padding: 8px 28px;
        border-radius: 24px;
        display: inline-block;
    }

    .company-strength-section {
        font-size: 1.1rem !important;
    }

    .company-strength-lead {
        font-size: 1rem !important;
    }

    .company-strength-desc {
        font-size: 0.9rem !important;
    }

    .company-strength-section {
        padding-bottom: 10px !important;
    }

    .company-section {
        margin-bottom: 0 !important;
    }

    .pc-br {
        display: none
    }
}

@media (max-width: 470px) {
    .company-strength-section img {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        display: block;
        margin: 0 0 1rem 0;
        box-sizing: border-box !important;
    }



    .company-strength-image-wrapper {
        max-width: 100% !important;
        min-width: 250px !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
        box-sizing: border-box !important;
    }

    .section-container {
        padding: 0 10px !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        overflow: visible !important;
    }

    .company-strength-area {
        padding: 20px 10px 20px 10px !important;
        box-sizing: border-box !important;
    }
}

@media (min-width: 769px) {
    .sp-nav {
        display: none !important;
    }

    .company-strength-section:nth-of-type(5) {
        display: none !important;
    }
}

@media (max-width: 1350px) {
    .company-page-header {
        padding: 5rem 0 2rem;
    }

    .company-page-header-content {
        padding: 1rem;
    }

    .company-page-title {
        font-size: 2.5rem;
        transform: scaleX(1.3);
    }

    .company-tabs li {
        flex: 1;
    }
}

@media (max-width: 430px) {
    .download-title {
        font-size: 2.1rem;
    }
}

/* 会社情報ページ タブボタンデザイン */
.company-nav-buttons {
    background: transparent;
    margin-top: 0.5rem;
    margin-bottom: 2.5rem;
    display: flex;
    justify-content: center;
}

.company-nav-buttons .company-tabs {
    display: flex;
    gap: 2rem;
    justify-content: center;
    width: 100%;
    padding: 0;
    margin: 0;
}

.company-nav-buttons .company-tabs li {
    flex: none;
    width: 300px;
    list-style: none;
}

.company-nav-buttons .company-tabs a {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: #1B3BCC;
    font-weight: bold;
    font-size: 1.1rem;
    /* border-radius: 8px; */
    border: none;
    padding: 1.1rem 0.5rem;
    text-decoration: none;
    transition: background 0.2s, color 0.2s, box-shadow 0.2s;
    position: relative;
}

.company-nav-buttons .company-tabs a .tab-arrow {
    color: #FF9F1C;
    font-size: 1rem;
    margin-left: 0.5em;
    font-weight: normal;
}

.company-nav-buttons .company-tabs a:hover,
.company-nav-buttons .company-tabs a.active {
    background: #fff;
    color: #2B30BB;
}

.company-nav-buttons .company-tabs a::after {
    content: none;
}

.company-nav-buttons .company-tabs a.active::after {
    content: none;
}

@media (max-width: 1350px) {
    .company-nav-buttons .company-tabs {
        gap: 1rem;
    }

    .company-nav-buttons .company-tabs li {
        width: 150px;
    }
}

@media (max-width: 768px) {
    .company-nav-buttons .company-tabs {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .company-nav-buttons .company-tabs li {
        width: 100%;
    }
}

/* ビジネスパートナー募集 */
.company-nav-buttons {
    /* background-color: #fff; */
    padding: 1rem 0;
    margin-bottom: 2rem;
}

.company-nav-buttons .company-tabs {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 1rem;
    display: flex;
    gap: 1rem;
}

.company-nav-buttons .company-tabs li {
    flex: 1;
}

.company-nav-buttons .company-tabs a {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    color: var(--primary-color);
    text-decoration: none;
    font-size: 0.95rem;
    font-weight: 500;
    background-color: #fff;
    /* border-radius: 4px; */
    border: 1px solid var(--primary-color);
    transition: all 0.3s;
    position: relative;
    text-align: center;
}

.company-nav-buttons .company-tabs a .tab-arrow {
    margin-left: 0.5rem;
    transition: transform 0.3s;
}

.company-nav-buttons .company-tabs a:hover,
.company-nav-buttons .company-tabs a.active {
    background-color: var(--primary-color);
    color: #fff;
}

@media (max-width: 1350px) {
    .company-nav-buttons .company-tabs {
        flex-wrap: wrap;
    }

    .company-nav-buttons .company-tabs li {
        flex: 0 0 calc(50% - 0.5rem);
    }
}

@media (max-width: 768px) {
    .company-nav-buttons .company-tabs {
        flex-direction: column;
    }

    .company-nav-buttons .company-tabs li {
        flex: 1;
    }
}

/* ビジネス内容 */
.business-content {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    margin-top: 2rem;
}

/* 事業内容ボックス横並び・デザイン */
.business-content-row {
    display: flex;
    gap: 32px;
    justify-content: center;
    margin: 5px 0 0 0;
}

.business-box {
    background: #fff;
    box-shadow: 0 2px 8px rgba(30, 60, 120, 0.10);
    overflow: hidden;
    flex: 1 1 0;
    min-width: 260px;
    max-width: 340px;
    display: flex;
    flex-direction: column;
}

.business-box-header {
    background: var(--primary-color);
    color: #fff;
    font-weight: bold;
    font-size: 1.1rem;
    text-align: center;
    padding: 16px 0;
}

.business-box-content {
    padding: 24px 24px 20px 24px;
    background: #fff;
    flex: 1;
}

@media (max-width: 800px) {
    .business-content-row {
        display: block;
        /* flex-direction: column; */
        gap: 20px;
        align-items: stretch;
    }

    .business-box {
        max-width: 100%;
    }
}

.business-box ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.business-box li {
    margin-bottom: 0.75rem;
    position: relative;
    padding-left: 1rem;
}

.business-box li::before {
    content: '・';
    position: absolute;
    left: 0;
    color: #2B30BB;
}

@media (max-width: 768px) {
    .business-content {
        grid-template-columns: 1fr;
    }
}

/* 沿革タイトル */
.history-title {
    font-size: 2rem;
    color: var(--primary-color);
    margin: 0 0 2rem;
    text-align: center;
    position: relative;
    padding-bottom: 1rem;
}

.history-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background: #FF9F1C;
}

.history-title-pill {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: -70px auto 32px auto;
    width: 220px;
    height: 56px;
    background: var(--primary-color);
    color: #fff;
    font-size: 1.3rem;
    font-weight: bold;
    border-radius: 32px;
    position: relative;
    z-index: 1;
    box-shadow: 0 2px 8px #0001;
}

.history-title-pill::after {
    left: 100%;
    margin-left: 12px;
    transform: translateY(-50%);
}

/* ロゴタイトル */
.logo-title {
    font-size: 2rem;
    color: #2B30BB;
    margin: 0 0 2rem;
    text-align: center;
    position: relative;
    padding-bottom: 1rem;
}

.logo-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background: #FF9F1C;
}

/* ロゴエリア */
.logo-area {
    background: #fff;
    /* border-radius: 20px; */
    padding: 3rem;
    margin: 2rem 0;
    text-align: center;
}

/* アクセスエリア */
.access-area {
    background: #fff;
    /* border-radius: 20px; */
    padding: 3rem;
    margin: 2rem 0;
}

.access-block {
    margin-bottom: 2rem;
}

.access-title {
    font-size: 1.5rem;
    color: #2B30BB;
    margin: 0 0 1.5rem;
}

.access-map iframe {
    width: 100%;
    height: 400px;
    border: none;
    border-radius: 20px;
}

header .nav-actions .dl-btn i,
header .nav-actions .contact-btn i {
    font-size: 0.8rem;
    margin-left: 0.25rem;
    display: inline-block !important;
    opacity: 1 !important;
    visibility: visible !important;
    font-family: 'Font Awesome 5 Free' !important;
    font-weight: 900 !important;
}

/* --- president.html専用デザイン --- */
.president-page-header {
    background: none;
    box-shadow: none;
    padding: 0 0 16px 0;
}

.president-page-header-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 1rem;
    display: flex;
    flex-direction: column;
}

.president-page-header-content {
    position: relative;
    display: inline-block;
    padding: 2rem 4rem;
}

.president-page-header-label {
    color: #0057b8;
    font-size: 1.1em;
    font-weight: bold;
    margin-bottom: 0.5em;
}

.president-page-title {
    font-size: 3em;
    font-weight: bold;
    color: #2260b8;
    margin-bottom: 0.5em;
    letter-spacing: 0.04em;
}

.president-nav {
    display: flex;
    justify-content: center;
    margin-bottom: 32px;
}

.president-nav-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 1rem;
}

.president-tabs {
    display: flex;
    gap: 8px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.president-tabs li a {
    display: block;
    padding: 10px 24px;
    background: #f5f8fc;
    border-radius: 8px 8px 0 0;
    color: #0057b8;
    font-weight: bold;
    text-decoration: none;
    border: 1px solid #e0e6ef;
    border-bottom: 2px solid #0057b8;
    transition: background 0.2s, color 0.2s;
}

.president-tabs li a.active,
.president-tabs li a:hover {
    background: #fff;
    color: #0057b8;
    border-bottom: 4px solid #0057b8;
}

.president-tabs .tab-arrow {
    font-size: 0.8em;
    margin-left: 0.3em;
}

/* --- 代表挨拶リード文 --- */
.president-message-lead {
    background: var(--primary-color);
    color: #fff;
    font-size: 1.8em;
    font-weight: bold;
    padding: 0.2em 0.5em;
    margin-bottom: 0.2em;
    /* line-height: 2; */
    /* border-radius: 8px; */
    text-align: left;
    max-width: 900px;
    display: inline-block;
    margin-left: auto;
    margin-right: auto;
}

/* --- 代表挨拶コンテナ --- */
.president-message-container {
    display: flex;
    gap: 3rem;
    align-items: flex-start;
    max-width: 1200px;
    margin: 3rem auto 2.5em auto;
    padding: 0 1em;
}

@media (max-width: 1000px) {
    .president-message-container {
        display: block;
    }

    .president-message-photo {
        margin-top: 50px !important;
    }
}

/* --- 代表挨拶本文 --- */
.president-message-body {
    line-height: 2;
    font-size: 1.08em;
    color: var(--text-color);
    flex: 1;
    font-weight: 400;
}

/* --- 社長写真 --- */
.president-message-photo {
    text-align: center;
    flex-shrink: 0;
    margin: 0;
}

.president-message-photo img {
    max-width: 400px;
    width: 100%;
    height: auto;
    /* border-radius: 12px; */
    box-shadow: 0 2px 16px #0001;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* --- 署名 --- */
.president-message-sign {
    text-align: right;
    font-weight: 400;
    max-width: 400px;
    margin: 0 auto;
    padding: 1em 1em 2em 1em;
    color: var(--text-color);
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

/* --- Contactセクションの余白調整 --- */
#contact-placeholder {
    margin-top: 60px;
}

@media (max-width: 700px) {
    .president-page-title {
        font-size: 2em;
    }

    .president-message-lead {
        font-size: 1em;
        padding: 1em 0.5em;
        border-radius: 0;
    }

    .president-message-container {
        flex-direction: column;
        gap: 2rem;
    }

    .president-message-body {
        font-size: 0.98em;
    }

    .president-message-photo img {
        max-width: 98vw;
    }

    .president-message-sign {
        font-size: 0.98em;
        margin: 0 0 0 auto;
        align-items: flex-end;
    }
}

@media (min-width: 481px) {
    .sp-message-lead {
        display: none !important;
    }

    .pc-message-lead {
        display: inline-block !important;
    }
}

@media (max-width: 482px) {
    .president-message-lead {
        font-size: 0.9em;
    }

    .sp-message-lead {
        display: inline-block !important;
    }

    .pc-message-lead {
        display: none !important;
    }
}


/* 企業概要ページの画像中央揃え */
.company-section img,
.company-logo-area img,
.logo-area img {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* ===== Mission Philosophy Section（配色調整） ===== */
.philosophy-section {
    background: #2B30BB;
    color: #fff;
    border-radius: 32px !important;
    box-shadow: 0 8px 32px rgba(30, 60, 120, 0.10);
    padding: 56px 32px 72px 32px;
    margin: 0 auto;
    max-width: 900px;
}

.philosophy-title {
    color: #fff;
    font-size: 4rem;
    transform: scaleX(1.3);
    transform-origin: left;
    opacity: 0.6;
}

.philosophy-lead-box {
    background: #2B30BB;
    color: #2B30BB;
    border-radius: 10px;
    padding: 22px 22px;
    margin-bottom: 48px;
    font-size: 1.18rem;
    font-weight: 500;
    box-shadow: 0 2px 12px rgba(34, 68, 255, 0.10);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.philosophy-lead-line {
    background: #fff;
    color: #2A38D6;
    border: 2px solid #fff;
    border-radius: 8px;
    padding: 14px 18px;
    margin-bottom: 14px;
    font-weight: 600;
    font-size: 1.13em;
    box-shadow: 0 1px 6px rgba(34, 68, 255, 0.08);
}

.philosophy-lead-line:last-child {
    margin-bottom: 0;
}

.philosophy-block {
    background: transparent;
    color: #fff;
    border-radius: 16px;
    margin-bottom: 36px;
    padding: 0 24px;
    box-shadow: none;
}

.philosophy-block-title {
    color: #fff;
    background: transparent;
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 10px;
    letter-spacing: 0.01em;
    text-align: left;
    padding: 0 0 8px 0;
}

.philosophy-challenge-flex {
    display: flex;
    flex-direction: row;
    gap: 24px;
    flex-wrap: wrap;
    justify-content: center;
}

.philosophy-challenge-item {
    flex: 1 1 320px;
    min-width: 320px;
    max-width: 420px;
    box-sizing: border-box;
    background: transparent;
    color: #2B30BB;
    border-radius: 12px;
    box-shadow: none;
    padding: 0;
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.philosophy-challenge-item h3 {
    background: #4B5CF2;
    color: #fff;
    font-size: 1.08rem;
    font-weight: 700;
    margin: 0;
    padding: 18px 10px 12px 10px;
    border-radius: 12px 12px 0 0;
    text-align: center;
    letter-spacing: 0.01em;
}

.philosophy-challenge-item p {
    background: #fff;
    color: #2A38D6;
    font-size: 1rem;
    font-weight: 600;
    margin: 0;
    padding: 22px 14px 22px 14px;
    border-radius: 0 0 12px 12px;
    text-align: center;
    box-shadow: 0 1px 6px rgba(34, 68, 255, 0.08);
}

.philosophy-service-lead {
    background: #fff;
    color: #2B30BB;
    border-radius: 10px;
    text-align: center;
    font-size: 1.13rem;
    font-weight: 600;
    line-height: 1.8;
    padding: 32px 0;
    margin-bottom: 0;
}

.philosophy-connect-flex {
    display: flex;
    gap: 40px;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
}

.philosophy-connect-icons {
    display: flex;
    flex-direction: column;
    gap: 18px;
    align-items: flex-start;
    min-width: 120px;
}

.philosophy-connect-messages {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.philosophy-connect-message {
    background: #fff;
    color: #2A38D6;
    border-radius: 8px;
    padding: 14px 22px;
    font-weight: 600;
    font-size: 1.01rem;
    box-shadow: 0 1px 6px rgba(34, 68, 255, 0.10);
    margin-bottom: 0;
    width: 540px;
    align-self: stretch;
}

@media (max-width: 900px) {
    .philosophy-section {
        padding: 32px 8vw 48px 8vw;
        max-width: 98vw;
    }

    .philosophy-block {
        padding: 0 8vw;
    }
}

@media (max-width: 800px) {
    .philosophy-challenge-flex {
        flex-direction: column;
        gap: 22px;
    }

    .philosophy-block {
        padding: 0 2vw;
    }
}

@media (max-width: 600px) {
    .philosophy-section {
        padding: 16px 2vw 24px 2vw;
        border-radius: 12px;
    }

    .philosophy-title {
        font-size: 2rem;
        margin-bottom: 18px;
        text-align: center;
        transform: none;
    }

    .philosophy-block {
        padding: 0 0px;
        border-radius: 8px;
        margin: 0 4px 30px 4px;
    }

    .philosophy-block-title {
        font-size: 1.8rem;
        margin-bottom: 16px;
    }

    .philosophy-challenge-item {
        flex: 1 1 140px;
    }

    .philosophy-challenge-item p {
        font-size: 0.9rem;
        padding: 16px 6px;
    }

    .philosophy-service-lead {
        font-size: 0.95rem;
        padding: 24px 0;
    }

    .philosophy-connect-icons {
        margin: 0 auto;
        text-align: center;
    }

    .philosophy-connect-icons img {
        width: 160px;
        margin: 0 auto;
    }

    .philosophy-connect-messages {
        width: 100%;
        padding: 0 8px;
    }

    .philosophy-connect-message {
        width: 100%;
        font-size: 0.8rem;
        padding: 12px 16px;
    }

    .philosophy-lead-box {
        padding: 10px 8px;
        border-radius: 6px;
    }

    .philosophy-connect-icon {
        width: 48px;
        height: 48px;
        font-size: 0.95rem;
    }

    .section-container h2 {
        white-space: pre-line;
    }

    /* Visionセクションのスタイル */
    .vision-section {
        padding: 16px 2vw 24px 2vw;
        border-radius: 12px;
    }

    .vision-title {
        font-size: 2rem;
        margin-bottom: 18px;
        text-align: center !important;
        transform: none;
        width: 100%;
    }

    .vision-block {
        padding: 0 0px;
        border-radius: 8px;
        margin: 0 4px 30px 4px;
    }

    .vision-block-title {
        font-size: 1.8rem;
        margin-bottom: 16px;
    }

    .vision-block-sub {
        font-size: 0.95rem;
        padding: 14px 8px;
    }

    .vision-block-desc {
        font-size: 0.8rem;
        padding: 16px 12px;
    }

    .vision-block-desc li {
        margin-bottom: 6px;
    }

    /* Valueセクションのスタイル */
    .value-section {
        padding: 16px 2vw 24px 2vw;
        border-radius: 12px;
    }

    .value-title {
        font-size: 2rem;
        margin-bottom: 18px;
        text-align: center !important;
        transform: none;
        width: 100%;
    }

    .value-block {
        padding: 0 0px;
        border-radius: 8px;
        margin: 0 4px 30px 4px;
    }

    .value-block-title {
        font-size: 1.8rem;
        margin-bottom: 16px;
    }

    .value-block-sub {
        font-size: 0.95rem;
        padding: 14px 8px;
    }

    .value-block-desc {
        font-size: 0.8rem;
        padding: 16px 12px;
    }

    .value-block-desc li {
        margin-bottom: 6px;
    }
}

.philosophy-lead-line {
    background: #fff;
    color: #2B30BB;
    border: 2px solid #fff;
    border-radius: 8px;
    padding: 14px 18px;
    margin-bottom: 14px;
    font-weight: 600;
    font-size: 1.13em;
    box-shadow: 0 1px 6px rgba(34, 68, 255, 0.08);
}

.philosophy-lead-line:last-child {
    margin-bottom: 0;
}


.philosophy-lead-box,
.philosophy-lead-line,
.philosophy-block,
.philosophy-challenge-item,
.philosophy-challenge-item h3,
.philosophy-challenge-item p,
.philosophy-service-lead,
.philosophy-connect-message {
    border-radius: 0 !important;
}

.vision-section {
    background: #2B30BB;
    color: #fff;
    border-radius: 32px;
    box-shadow: 0 8px 32px rgba(30, 60, 120, 0.10);
    padding: 56px 32px 72px 32px;
    margin: 56px auto 0 auto;
    max-width: 900px;
}

.vision-title {
    color: #fff;
    font-size: 4rem;
    font-weight: 900;
    margin-bottom: 36px;
    letter-spacing: 0.01em;
    text-align: left;
    line-height: 1.1;
}

.vision-lead-box {
    background: #2B30BB;
    color: #fff;
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-bottom: 48px;
}

.vision-block {
    background: transparent;
    color: #fff;
    border-radius: 0;
    margin-bottom: 36px;
    padding: 0;
    box-shadow: none;
}

.vision-block-title {
    color: #fff;
    background: transparent;
    font-size: 1.35rem;
    font-weight: 700;
    margin-bottom: 24px;
    letter-spacing: 0.01em;
    text-align: left;
    padding: 0 0 8px 0;
}

.vision-block-sub {
    background: #4B5CF2;
    color: #fff;
    font-size: 1.08rem;
    font-weight: 700;
    margin: 0;
    padding: 18px 10px 12px 10px;
    border-radius: 0;
    letter-spacing: 0.01em;
}

.vision-block-desc {
    background: #fff;
    color: #2B30BB;
    font-size: 1.08rem;
    font-weight: 600;
    margin: 0;
    padding: 22px 14px 22px 14px;
    border-radius: 0;
    text-align: left;
    box-shadow: 0 1px 6px rgba(34, 68, 255, 0.08);
}

.vision-block-desc ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.vision-block-desc li {
    margin-bottom: 8px;
    font-weight: 500;
}

.vision-block-desc li:last-child {
    margin-bottom: 0;
}

@media (max-width: 900px) {
    .vision-section {
        padding: 32px 8vw 48px 8vw;
        max-width: 98vw;
    }
}

@media (max-width: 600px) {
    .vision-section {
        padding: 16px 2vw 24px 2vw;
        border-radius: 12px;
    }

    .vision-title {
        font-size: 2rem;
        margin-bottom: 18px;
    }
}

.value-section {
    background: #2B30BB;
    color: #fff;
    border-radius: 32px;
    box-shadow: 0 8px 32px rgba(30, 60, 120, 0.10);
    padding: 56px 32px 72px 32px;
    margin: 56px auto 0 auto;
    max-width: 900px;
}

.value-title {
    color: #fff;
    font-size: 4rem;
    font-weight: 900;
    margin-bottom: 36px;
    letter-spacing: 0.01em;
    text-align: left;
    line-height: 1.1;
}

.value-lead-box {
    background: #2B30BB;
    color: #fff;
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-bottom: 48px;
}

.value-block {
    background: transparent;
    color: #fff;
    border-radius: 0;
    margin-bottom: 36px;
    padding: 0;
    box-shadow: none;
}

.value-block-title {
    color: #fff;
    background: transparent;
    font-size: 1.35rem;
    font-weight: 700;
    margin-bottom: 24px;
    letter-spacing: 0.01em;
    text-align: left;
    padding: 0 0 8px 0;
}

.value-block-sub {
    background: #4B5CF2;
    color: #fff;
    font-size: 1.08rem;
    font-weight: 700;
    margin: 0;
    padding: 18px 10px 12px 10px;
    border-radius: 0;
    letter-spacing: 0.01em;
}

.value-block-desc {
    background: #fff;
    color: #2B30BB;
    font-size: 1.08rem;
    font-weight: 600;
    margin: 0;
    padding: 22px 14px 22px 14px;
    border-radius: 0;
    text-align: left;
    box-shadow: 0 1px 6px rgba(34, 68, 255, 0.08);
}

.value-block-desc ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.value-block-desc li {
    margin-bottom: 8px;
    font-weight: 500;
}

.value-block-desc li:last-child {
    margin-bottom: 0;
}

@media (max-width: 900px) {
    .value-section {
        padding: 32px 8vw 48px 8vw;
        max-width: 98vw;
    }
}

@media (max-width: 600px) {
    .value-section {
        padding: 16px 2vw 24px 2vw;
        border-radius: 12px;
    }

    .value-title {
        font-size: 2rem;
        margin-bottom: 18px;
    }
}

.recruit-message {
    margin-bottom: 0;
    max-width: 900px;
    margin: 40px auto 32px auto;
    padding: 24px 16px 18px 16px;
    text-align: center;
    color: #2B30BB;
    font-size: 1.05rem;
    line-height: 2;
    background: linear-gradient(180deg, #f5f8fc 60%, #fff 100%);
    border-radius: 12px;
}

.recruit-job-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 18px 24px;
    justify-content: center;
    margin: 36px auto 40px auto;
    max-width: 1100px;
}

@media (max-width: 900px) {
    .recruit-job-buttons {
        gap: 12px 8px;
    }
}

@media (max-width: 600px) {
    .recruit-job-buttons {
        flex-direction: column;
        gap: 10px;
        align-items: stretch;
    }
}

.recruit-job-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    color: #2B30BB;
    text-decoration: none;
    font-size: 0.95rem;
    font-weight: 500;
    background-color: #fff;
    border-radius: 4px;
    border: 1px solid #2B30BB;
    transition: all 0.3s;
    position: relative;
    text-align: center;
    min-width: 170px;
    box-shadow: none;
}

.recruit-job-btn .recruit-job-arrow {
    margin-left: 0.5rem;
    color: #FF9F1C;
    font-size: 1rem;
    transition: transform 0.3s;
}

.recruit-job-btn:hover,
.recruit-job-btn:focus,
.recruit-job-btn.active {
    background-color: #2B30BB;
    color: #fff;
    border: 1px solid #2B30BB;
}

.recruit-job-btn:hover .recruit-job-arrow,
.recruit-job-btn:focus .recruit-job-arrow,
.recruit-job-btn.active .recruit-job-arrow {
    color: #FF9F1C;
}

.recruit-job-content {
    display: flex;
    max-width: 1100px;
    margin: 16px auto 16px auto;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 12px #2B30BB11;
    overflow: hidden;
}

.recruit-job-content-label {
    background: #2B30BB;
    color: #fff;
    font-weight: 700;
    font-size: 1.15rem;
    min-width: 180px;
    max-width: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 32px 16px;
    letter-spacing: 0.05em;
}

.recruit-job-content-body {
    color: #2B30BB;
    background: #fff;
    padding: 20px 20px 20px 20px;
    font-size: 1.05rem;
    line-height: 2;
    flex: 1 1 0%;
}

.recruit-job-content-body p {
    margin-bottom: 18px;
}

.recruit-job-content-body p:last-child {
    margin-bottom: 0;
}

@media (max-width: 800px) {
    .recruit-job-content {
        flex-direction: column;
        border-radius: 8px;
        margin: 12px auto 12px auto;
    }

    .recruit-job-content-label {
        min-width: 0;
        max-width: none;
        width: 100%;
        padding: 14px 8px;
        font-size: 1.05rem;
        border-radius: 8px 8px 0 0;
    }

    .recruit-job-content-body {
        padding: 12px 6px;
        border-radius: 0 0 8px 8px;
    }
}

.recruit-entry-section {
    border: 3px solid #3B4ED6;
    border-radius: 4px;
    max-width: 900px;
    margin: 36px auto 48px auto;
    padding: 48px 16px 48px 16px;
    background: #fff;
    text-align: center;
}

.recruit-entry-title {
    color: #2B30BB;
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 32px;
    letter-spacing: 0.04em;
}

.recruit-entry-btn {
    display: inline-flex;
    align-items: center;
    background: #FF9F1C;
    color: #fff;
    font-weight: 600;
    font-size: 1.1rem;
    border-radius: 100px;
    padding: 18px 38px 18px 32px;
    text-decoration: none;
    box-shadow: 0 2px 8px #ff9f1c22;
    transition: background 0.2s, color 0.2s, box-shadow 0.2s;
    border: none;
    position: relative;
    margin: 0 auto;
    gap: 18px;
}

.recruit-entry-btn:hover,
.recruit-entry-btn:focus {
    background: #F59300;
    color: #fff;
    box-shadow: 0 4px 16px #ff9f1c33;
}

.recruit-entry-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: #2B30BB;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    margin-left: 12px;
    font-size: 1.3em;
    box-shadow: 0 1px 4px #2B30BB11;
    transition: background 0.2s, color 0.2s;
}

.recruit-entry-btn:hover .recruit-entry-arrow {
    background: #fff;
    color: #F59300;
}

.history-card {
    background: #fff;
    /* border-radius: 28px; */
    box-shadow: 0 4px 24px 0 #0002;
    padding: 40px 0 40px 0;
    margin: 0 auto;
    max-width: 1100px;
}

.partner-box-section {
    margin: 0 20px 60px 20px;
}

.partner-box-row {
    display: flex;
    gap: 20px;
    justify-content: center;
    flex-wrap: wrap;
}

.partner-box-link {
    text-decoration: none;
    display: flex;
    flex: 1 1 320px;
    min-width: 320px;
    max-width: 500px;
}

.partner-box {
    background: var(--primary-color);
    color: #fff;
    /* border-radius: 28px; */
    padding: 48px 20px 40px 20px;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-shadow: 0 2px 16px #2B30BB22;
    text-align: center;
    transition: transform 0.2s, box-shadow 0.2s;
}

.partner-box:hover {
    transform: translateY(-4px);
    box-shadow: 0 4px 24px #2B30BB33;
}

.partner-box-title {
    font-size: 2rem;
    font-weight: bold;
    margin-bottom: 32px;
    border: 3px solid #fff;
    /* border-radius: 12px; */
    padding: 16px 24px;
}

.partner-box-desc {
    font-size: 1.15rem;
    font-weight: 500;
    line-height: 2.1;
    letter-spacing: 0.01em;
}

@media (max-width: 900px) {
    .partner-box-row {
        flex-direction: column;
        gap: 32px;
        align-items: center;
    }

    .partner-box-link {
        /* max-width: 98vw;
        min-width: 0; */
        width: 100%;
        flex: none;
    }

    .partner-box {
        max-width: 98vw;
        min-width: 0;
        flex: none;
    }

    .partner-box-desc {
        font-size: 0.9rem;
    }
}

.partner-top-text {
    color: var(--text-color);
    font-size: 1.1rem;
    line-height: 2;
    margin-bottom: 0;
    text-align: left;
    padding: 0 8rem;
}

@media (max-width: 1000px) {
    .partner-top-text {
        padding: 0 4rem;
    }

    .pc-only {
        display: none;
    }
}

.company-strength-flex {
    display: flex;
    gap: 48px;
    align-items: center;
    background: #fff;
    border-radius: 24px;
    box-shadow: 0 2px 16px #0001;
    padding: 40px 40px 40px 0;
    flex-wrap: wrap;
}

.company-strength-flex.reverse {
    padding: 40px 0 40px 40px;
}

.company-tab-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
    font-size: 1.1rem;
    font-weight: bold;
    padding: 1.1rem 0.5rem;
    background: #fff;
    color: #2B30BB;
    /* border-radius: 8px; */
    border: none;
    box-shadow: 0 2px 8px rgba(30, 60, 120, 0.08);
    margin-bottom: 0;
    text-align: center;
    transition: background 0.2s, color 0.2s, box-shadow 0.2s;
    text-decoration: none;
}

.company-tab-link .tab-arrow {
    color: #FF9F1C;
    font-size: 1rem;
    margin-left: 0.5em;
    font-weight: normal;
}

.company-tab-link:hover,
.company-tab-link.active {
    background: #fff;
    color: #2B30BB;
}

.company-strength-desc {
    font-size: 1.05rem;
    line-height: 2;
    color: var(--text-color);
    text-align: left;
}

.logo-title-pill {
    width: 380px;
}

.logo-img {
    max-width: 320px;
    width: 100%;
    height: auto;
    display: block;
    margin: 32px auto 24px auto;
}

.logo-description {
    text-align: center;
    font-size: 1rem;
    font-weight: 500;
    line-height: 2;
    max-width: 700px;
    margin: 0 auto;
}

@media (max-width: 768px) {
    .logo-title-pill {
        width: 290px !important;
        font-size: 1rem !important;
        padding: 0.7em 0 !important;
    }

    .logo-img {
        max-width: 160px !important;
        margin: 16px auto 12px auto !important;
        display: block;
        width: 100%;
        height: auto;
    }

    .logo-description {
        font-size: 0.8rem !important;
        max-width: 95vw !important;
        line-height: 1.7 !important;
        text-align: center;
        margin: 0 auto !important;
    }
}

.timeline {
    padding-left: 40px;
    margin: 16px 0;
}

.timeline>li {
    overflow: hidden;
    margin: 0;
    position: relative;
}

.timeline-date {
    width: 100px;
    font-size: 1.1rem;
    float: left;
    margin-top: 20px;
    font-weight: bold;
}

.timeline>li:first-child .timeline-date {
    margin-top: -7px;
}

.timeline-content {
    width: 75%;
    float: left;
    border-left: 3px #e5e5d1 solid;
    padding-left: 30px;
    line-height: 62px;
}

.timeline>li:first-child .timeline-content {
    line-height: normal;
    padding-top: 0;
    padding-bottom: 30px;
    margin-top: -6px;
}

.timeline-content h4 {
    font-weight: normal;
}

.timeline-content:before {
    content: "";
    width: 12px;
    height: 12px;
    background: #295bc4;
    position: absolute;
    left: 96px;
    top: 27px;
    border-radius: 100%;
}

.timeline>li:first-child .timeline-content:before {
    top: 0;
}

.sp1-br {
    display: block;
}

.sp2-br {
    display: none;
}

.sp3-br {
    display: none;
}

.sp4-br {
    display: none;
}

.sp5-br {
    display: none;
}

.sp6-br {
    display: none;
}

@media (max-width: 897px) {
    .sp3-br {
        display: block;
    }
}

@media (max-width: 842px) {
    .sp4-br {
        display: block;
    }

    .sp1-br {
        display: none;
    }
}

@media (max-width: 818px) {
    .sp5-br {
        display: block;
    }
}

@media (max-width: 706px) {
    .sp6-br {
        display: block;
    }
}

@media (max-width: 645px) {
    .timeline-content {
        font-size: 15px;
        width: 80%;
    }
}

@media (max-width: 575px) {
    .timeline-content {
        font-size: 14px;
    }
}

@media (max-width: 543px) {
    .timeline {
        padding-left: 20px;
        padding-bottom: 40px
    }

    .timeline-content:before {
        display: none;
    }

    .timeline>li:first-child .timeline-content {
        line-height: normal;
        padding-top: 10px;
        padding-bottom: 10px;
        margin-top: 0;
    }

    .timeline-content {
        line-height: 40px;
        width: 450px;
    }
}

@media (max-width: 463px) {
    .timeline {
        padding-left: 20px;
    }

    .timeline-content {
        width: 380px;
        line-height: 30px;
        font-size: 13px;
    }

    .timeline>li:first-child .timeline-content:before {
        top: 27px;
    }

    .timeline>li:first-child .timeline-date {
        margin-top: 0;
    }

    .sp2-br {
        display: block;
    }
}

@media (max-width: 412px) {
    .timeline-date {
        font-size: 1rem;
    }
}

@media (max-width: 410px) {
    .timeline-content h4 {
        font-size: 12px;
    }
}

@media (max-width: 385px) {
    .timeline {
        margin: 16px 0;
        width: 355px;
        padding-left: 0;
    }
}