:root {
    --primary:#1a3a6b;
    --primary-dark:#0f2347;
    --accent:#c8a84b;
    --text:#2c2c2c;
    --text-light:#666;
    --bg:#f8f9fc;
    --white:#fff;
    --border:#dde3ef;
    --shadow:0 2px 12px rgba(26,58,107,.1);
    --gray-bg:#f0f2f7;
}

* {
    box-sizing:border-box;
}

.hsc-page-title {
    font-size:1.3rem;
    font-weight:700;
    color:var(--primary);
    border-bottom:3px solid var(--accent);
    padding-bottom:.5rem;
    margin:0 0 1.5rem;
    font-family:"Noto Serif JP",serif;
}

.hsc-company-card {
    background:var(--white);
    border-radius:8px;
    box-shadow:var(--shadow);
    overflow:hidden;
}

.hsc-card-header {
    background:linear-gradient(90deg,var(--primary) 0%,#2a52a0 100%);
    padding:1.3rem 1.8rem;
}

.hsc-card-header h2 {
    color:var(--white);
    font-size:1.2rem;
    font-weight:700;
    margin:0;
}

.hsc-info-table {
    width:100%;
    border-collapse:collapse;
}

.hsc-info-table tr {
    border-bottom:1px solid var(--border);
    transition:background .15s;
}

.hsc-info-table tr:last-child {
    border-bottom:none;
}

.hsc-info-table tr:hover {
    background:#f4f6fb;
}

.hsc-info-table th {
    width:130px;
    padding:.9rem 1rem .9rem 1.8rem;
    font-size:.78rem;
    font-weight:700;
    color:var(--primary);
    text-align:left;
    vertical-align:top;
    white-space:nowrap;
    background:var(--bg);
    border-right:3px solid var(--primary);
}

.hsc-info-table td {
    padding:.9rem 1.8rem .9rem 1.2rem;
    font-size:.9rem;
    color:var(--text);
    vertical-align:top;
}

.hsc-info-table td a {
    color:var(--primary);
    text-decoration:none;
    word-break:break-all;
}

.hsc-info-table td a:hover {
    color:var(--accent);
    text-decoration:underline;
}

.hsc-overview {
    background:var(--gray-bg);
    border-radius:8px;
    padding:1.4rem 1.8rem;
    margin-bottom:1.8rem;
    border:1px solid var(--border);
}

.hsc-dl {
    display:grid;
    grid-template-columns:100px 1fr;
    gap:.6rem 1rem;
    font-size:.9rem;
}

.hsc-dl dt {
    font-weight:700;
    color:var(--primary);
}

.hsc-dl dd {
    margin:0;
}

.hsc-dl dd strong {
    font-weight:700;
}

.hsc-dl dd small {
    font-size:.82rem;
    color:var(--text-light);
}

.hsc-dl dd a {
    color:var(--primary);
    text-decoration:none;
    word-break:break-all;
}

.hsc-sec-title {
    font-size:1.05rem;
    font-weight:700;
    color:var(--primary);
    border-left:4px solid var(--accent);
    padding-left:.8rem;
    margin:1.8rem 0 1rem;
}

.hsc-block-label {
    display:inline-block;
    background:var(--primary);
    color:var(--white);
    font-size:.7rem;
    font-weight:700;
    letter-spacing:.1em;
    padding:.2rem .75rem;
    border-radius:2px;
    margin:.4rem 0 .9rem;
}

.hsc-open-row {
    display:flex;
    align-items:center;
    gap:1rem;
    background:var(--white);
    border-radius:6px;
    padding:.7rem 1.2rem;
    box-shadow:0 1px 5px rgba(26,58,107,.06);
    margin-bottom:.7rem;
}

.hsc-research-wrap {
    background:var(--gray-bg);
    border-radius:8px;
    padding:1.2rem;
    margin-bottom:1.2rem;
    border:1px solid var(--border);
}

.hsc-ri {
    background:var(--white);
    border-radius:6px;
    padding:1.1rem 1.4rem;
    margin-bottom:.8rem;
    box-shadow:0 1px 5px rgba(26,58,107,.07);
    border-left:4px solid var(--accent);
}

.hsc-ri:last-child {
    margin-bottom:0;
}

.hsc-ri .t {
    font-size:.78rem;
    font-weight:700;
    color:var(--primary);
    margin-bottom:.35rem;
}

.hsc-ri .p {
    font-size:.87rem;
    font-weight:700;
    margin-bottom:.25rem;
}

.hsc-ri .ttl {
    font-size:.84rem;
    font-weight:700;
    color:var(--primary-dark);
    margin-bottom:.4rem;
}

.hsc-ri .abs {
    font-size:.81rem;
    color:var(--text-light);
    border-top:1px dashed var(--border);
    padding-top:.55rem;
    line-height:1.75;
}

.hsc-break {
    background:#eef0f5;
    border-radius:4px;
    padding:.45rem 1.1rem;
    margin-bottom:.8rem;
    font-size:.81rem;
    color:var(--text-light);
    font-weight:500;
}

.hsc-company-pres {
    background:var(--white);
    border-radius:6px;
    padding:1.1rem 1.4rem;
    margin-bottom:.8rem;
    border-left:4px solid var(--primary);
}

.hsc-sub-card {
    background:var(--white);
    border-radius:8px;
    box-shadow:var(--shadow);
    overflow:hidden;
    margin-bottom:1.2rem;
}

.hsc-sub-head {
    background:linear-gradient(90deg,var(--primary) 0%,#2a52a0 100%);
    padding:.7rem 1.4rem;
}

.hsc-sub-head h3 {
    color:var(--white);
    font-size:.95rem;
    font-weight:700;
    margin:0;
}

.hsc-sub-body {
    padding:1rem 1.4rem;
}

.hsc-divider {
    border:none;
    border-top:1px dashed var(--border);
    margin:1.6rem 0;
}

.hsc-apply {
    background:var(--white);
    border-radius:8px;
    box-shadow:var(--shadow);
    padding:1.6rem 2rem;
    border-top:4px solid var(--primary);
    margin-bottom:1.2rem;
}

.hsc-apply h2 {
    font-size:1rem;
    font-weight:700;
    color:var(--primary);
    margin:0 0 .8rem;
}

.hsc-apply p {
    font-size:.87rem;
    margin:.3rem 0;
}

.hsc-apply-btn {
    display:inline-block;
    margin-top:.8rem;
    padding:.6rem 1.8rem;
    background:var(--primary);
    color:var(--white);
    border-radius:4px;
    font-weight:700;
    font-size:.88rem;
    text-decoration:none;
    transition:background .2s;
}

.hsc-apply-btn:hover {
    background:var(--primary-dark);
}

.hsc-contact {
    background:var(--gray-bg);
    border-radius:6px;
    padding:1rem 1.4rem;
    font-size:.84rem;
    border:1px solid var(--border);
    margin-bottom:1.5rem;
}

.hsc-contact h3 {
    font-size:.88rem;
    font-weight:700;
    color:var(--primary);
    margin:0 0 .3rem;
}

.hsc-contact p {
    margin:.2rem 0;
}

.hsc-video-wrap {
    background:#111;
    border-radius:8px;
    overflow:hidden;
    aspect-ratio:16/9;
}

.hsc-video-wrap iframe {
    width:100%;
    height:100%;
    border:none;
    display:block;
}

.hsc-pending {
    background:var(--gray-bg);
    border-radius:6px;
    padding:1rem 1.4rem;
    font-size:.87rem;
    color:var(--text-light);
    border:1px dashed var(--border);
    font-style:italic;
}

.hsc-slogan {
    background:linear-gradient(90deg,var(--primary-dark),var(--primary));
    border-radius:8px;
    padding:1rem 1.8rem;
    margin-bottom:1.8rem;
    display:flex;
    align-items:center;
    gap:1rem;
}

.hsc-slogan .lbl {
    color:var(--accent);
    font-size:.72rem;
    font-weight:700;
    letter-spacing:.1em;
    white-space:nowrap;
}

.hsc-slogan .txt {
    color:var(--white);
    font-size:1.05rem;
    font-weight:700;
    letter-spacing:.06em;
}

.hsc-table-wrap {
    background:var(--white);
    border-radius:8px;
    box-shadow:var(--shadow);
    overflow:hidden;
}

.hsc-table {
    width:100%;
    border-collapse:collapse;
    font-size:.88rem;
}

.hsc-table thead tr {
    background:linear-gradient(90deg,var(--primary) 0%,#2a52a0 100%);
}

.hsc-table thead th {
    color:var(--white);
    font-weight:700;
    padding:.85rem 1.1rem;
    text-align:center;
    border-right:1px solid rgba(255,255,255,.15);
}

.hsc-table thead th:last-child {
    border-right:none;
}

.hsc-table tbody tr {
    border-bottom:1px solid var(--border);
    transition:background .15s;
}

.hsc-table tbody tr:last-child {
    border-bottom:none;
}

.hsc-table tbody tr:hover {
    background:#f4f6fb;
}

.hsc-table tbody td {
    padding:.85rem 1.1rem;
    vertical-align:middle;
    text-align:center;
    border-right:1px solid var(--border);
}

.hsc-table tbody td:last-child {
    border-right:none;
}

.hsc-table tbody td.date {
    white-space:nowrap;
    font-weight:500;
    color:var(--primary);
}

.hsc-table tbody td.event {
    text-align:left;
}

.hsc-table tbody td.event a {
    color:var(--primary);
    text-decoration:none;
    font-weight:500;
}

.hsc-table tbody td.event a:hover {
    color:var(--accent);
    text-decoration:underline;
}

.hsc-table tbody td.venue {
    font-size:.82rem;
    color:var(--text-light);
}

.hsc-table td:nth-child(1) {
    width:200px;
    font-weight:600;
    color:var(--primary);
}

.hsc-table td:nth-child(2) {
    text-align:left;
}

.hsc-table td:nth-child(3) {
    width:180px;
}

.hsc-nav {
    background:var(--white);
    border-radius:8px;
    box-shadow:var(--shadow);
    padding:1.2rem 1.6rem;
    margin-bottom:1.8rem;
}

.hsc-nav ul {
    list-style:none;
    margin:0;
    padding:0;
}

.hsc-nav ul li {
    border-bottom:1px solid var(--border);
    padding:.5rem 0;
}

.hsc-nav ul li:last-child {
    border-bottom:none;
}

.hsc-nav ul li a {
    color:var(--primary);
    text-decoration:none;
    font-size:.92rem;
    font-weight:500;
}

.hsc-nav ul li a:hover {
    color:var(--accent);
    text-decoration:underline;
}

.hsc-schedule-table {
    width:100%;
    border-collapse:collapse;
    font-size:.88rem;
    margin-bottom:1.2rem;
}

.hsc-schedule-table td {
    padding:.7rem 1rem;
    border:1px solid var(--border);
    vertical-align:top;
    line-height:1.7;
}

.hsc-schedule-table td:first-child {
    width:160px;
    font-weight:700;
    color:var(--primary);
    background:var(--bg);
}

.hsc-schedule-table tr:hover td {
    background:#f4f6fb;
}

.hsc-review-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1rem;
    margin-bottom:1.5rem;
}

.hsc-review-item {
    background:var(--white);
    border-radius:6px;
    box-shadow:0 1px 5px rgba(26,58,107,.07);
    padding:.8rem;
    font-size:.83rem;
    color:var(--text);
    text-align:center;
    line-height:1.7;
}

.hsc-review-item img {
    width:100%;
    height:auto;
    border-radius:4px;
    margin-bottom:.4rem;
}

.hsc-blockquote {
    background:var(--white);
    border-left:4px solid var(--accent);
    border-radius:0 6px 6px 0;
    padding:.8rem 1.2rem;
    margin:.5rem 0;
    font-size:.85rem;
    line-height:1.8;
    box-shadow:0 1px 4px rgba(26,58,107,.06);
}

.hsc-mark {
    background:var(--accent);
    color:var(--white);
    padding:.1rem .5rem;
    border-radius:3px;
    font-weight:700;
}

@media(max-width:600px) {
    .hsc-dl {
        grid-template-columns:80px 1fr;
    }

    .hsc-review-grid {
        grid-template-columns:1fr;
    }
}

.hsc-table thead th {
    background:#1a3a6b !important;
    color:#ffffff !important;
}

.hsc-tr-link {
    display: table-row;
    position: relative;
}

.hsc-tr-link td:first-child {
    position: relative;
}

.hsc-tr-link a {
    text-decoration: none;
    color: #1a3a6b;
    font-weight: 600;
}

.hsc-tr-link a::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 1200px; 
    height: 100%;
    z-index: 1;
}

.hsc-table-wrap {
    overflow: hidden;
}

.hsc-tr-link td {
    position: relative;
    z-index: 2;
}

.hsc-tr-link td:first-child {
    z-index: 3;
}
