@charset "UTF-8";

/* 横スクロール */
.schedule-table-wrapper {
    width: 100%;
    overflow-x: auto; /* 有効化 */
    margin-bottom: 20px;
    -webkit-overflow-scrolling: touch; 
    position: relative; 
}

.schedule-table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #000;
    background-color: #fff;
    font-size: 1.3rem; 
}

.schedule-table caption {
    font-size: 1.2em; 
    font-weight: bold;
    text-align: left;
    padding-bottom: 10px;
    color: #333;
}

.schedule-table th,
.schedule-table td {
    border: 1px solid #000;
    padding: 6px;
    text-align: center;
    vertical-align: middle;
    height: 35px; 
    white-space: nowrap;
}

.schedule-table thead th {
    font-weight: bold;
    vertical-align: middle;
    position: sticky; 
    z-index: 2;
}

.schedule-table thead tr:nth-child(1) th { top: 0; }
.schedule-table thead tr:nth-child(2) th { top: 35px; } 
.schedule-table thead tr:nth-child(3) th { top: 70px; } 

.schedule-table thead tr:nth-child(3) th:first-child {
    left: 0;
    z-index: 3;
}

.header-top-blank { background-color: #fff; border: none; }
.pass-type-2 { background-color: #e6f7ff; border-bottom: 1px solid #ccc; }
.pass-type-1 { background-color: #fde8e7;}
.pass-type-1-blank {
    background-color: #ffffff; 
}
.schedule-table thead tr:nth-child(3) th { background-color: #ffffff; }

.schedule-table tbody th {
    background-color: #ffffff;
    font-weight: normal;
    width: 8%;
    position: sticky;
    left: 0;
    z-index: 1;
}

.day-sat { color: blue; }
.day-sun, .day-mon { color: red; }

/* 斜線セル */
.diagonal,
.diagonal-full {
    background-image: linear-gradient(to top right,
        transparent 49.7%, #ddd 49.7%, #ddd 50.3%, transparent 50.3%);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-color: #f0f0f0;
}

/* A〜L */
.new-schedule tbody td[rowspan] {
    font-weight: bold;
    font-size: 1.2em; 
    vertical-align: middle;
}

.headline {
    background: url(images/面接.png) no-repeat 0 0;
    background-color: rgba(246, 248, 249, 0.605);
    background-position: center;
    background-blend-mode: lighten;
    font-size: 2.75rem;
    font-weight: bold;
    margin: auto;
    animation: fadein 3s forwards;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    min-height: 500px;
    background-size: cover;
    line-height: 1;
    padding-bottom: 100px;
    box-sizing: border-box;
}
@keyframes fadein { 0% {opacity: 0} 100% {opacity: 1} }
.headlinesp { display: none; }

.jobinterview {
    width: 85%;
    margin: 0 auto;
    max-width: 1100px;
}
.jobinterview h1 {
    width: 100%;
    display: flex;
    justify-content: center;
}
.top a {
    position: relative;
    display: inline-block;
    font-weight: bold;
    text-decoration: underline;
    color: #0000FF;
}
.top a:hover {
    color: #49a9f8;
    text-decoration: none;
}
.nittei { 
    width: 100%;
    display: flex;
    justify-content: center;
    font-size: 1.6em; 
    font-weight: bold;
    border-bottom: 2px solid #333;
    padding-bottom: 10px;
    margin-top: 20px;
    margin-bottom: 20px;
}

.interview-section {
    margin-top: 40px;
    margin-bottom: 40px;
    padding-bottom: 40px;
    border-bottom: 1px solid #eee;
}
.interview-section:last-child {
    border-bottom: none;
    padding-bottom: 20px;
}
.section-buttons {
    margin-top: 30px;
    margin-bottom: 0;
    padding-bottom: 10px;
}
.interview-section h2 { 
    font-size: 2rem; 
    font-weight: 700;
    color: #333;
    padding-bottom: 15px;
    border-bottom: 3px solid #005a9c;
    margin-bottom: 25px;
}

.interview-section p,
.interview-section li {
    font-size: 1.4rem;
    line-height: 1.8;
    word-break: keep-all; 
    overflow-wrap: normal;
}

.interview-section .top {
    text-align: left;
    margin-top: 1.5em;
    margin-bottom: 1em;
    line-height: 1.9;
    letter-spacing: 0.05em;
}

.caution {
    font-size: 1.4rem; 
    font-weight: bold;
    margin: 1.5em 0;
    word-break: keep-all; 
    overflow-wrap: break-word; 
}
.text-danger { color: #ff0000; }
.text-link { color: #0000FF; font-weight: normal; }

.table-note {
    font-size: 1.4rem; 
    margin-top: 10px;
    word-break: keep-all;
    overflow-wrap: break-word;
}

.caution-note {
    font-weight: normal;
    color: #000;
}

.definition-list { margin: 25px 0; border-top: 1px solid #ddd; }
.definition-list dt {
    font-size: 1.5rem; 
    font-weight: 700;
    color: #333;
    padding: 20px 15px;
    background-color: #f9f9f9;
    border-bottom: 1px solid #ddd;
    word-break: keep-all; 
    overflow-wrap: break-word; 
}
.definition-list dd {
    padding: 20px 15px;
    border-bottom: 1px solid #ddd;
    margin-left: 0;
    word-break: keep-all; 
    overflow-wrap: break-word; 
}
.definition-list dd ul {
    list-style-type: disc;
    margin-left: 0;      
    padding-left: 40px;  
}
.definition-list dd li { margin-bottom: 0.5em; } 

.section-selection > .caution {
    padding-left: 40px; 
    box-sizing: border-box;
}

.submission-info { background-color: #f5f5f5; padding: 25px; border-radius: 8px; margin-top: 20px; }
.submission-info p { margin-bottom: 1em; } 
.submission-info p:last-child { margin-bottom: 0; }

.contact-info {
    font-size: 1.4rem; /* 14px */
    text-align: center;
    padding: 20px;
    background-color: #f9f9f9;
    border-radius: 8px;
    word-break: keep-all; 
    overflow-wrap: break-word; 
}

/* ボタン*/
.button-grid {
    display: grid;
    grid-template-columns: 1fr; 
    gap: 20px;
}
.button-group {
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 20px;
    background-color: #fcfcfc;
    text-align: center;
}
.button-group h4 {
    font-size: 1.6rem; 
    font-weight: 700;
    margin-bottom: 15px;
}
.button-row {
    display: flex;
    gap: 10px;
}
.btn-link {
    flex: 1;
    display: inline-block;
    padding: 25px 15px;
    font-size: 1.6rem; 
    font-weight: bold;
    color: #000000; 
    text-decoration: none;
    border-radius: 8px;
    transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    border: 2px solid transparent; 
    pointer-events: none;
}

.btn-link:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}

.btn-link.btn-red {
    background-color: #fde8e7; 
    border-color: #d9534f; 
}
.btn-link.btn-red:hover { background-color: #fbd6d3; }

.btn-link.btn-yellow {
    background-color: #fef8e2; 
    border-color: #f0ad4e; 
}
.btn-link.btn-yellow:hover { background-color: #fdedd1; }

.btn-link.btn-blue {
    background-color: #e6f2fc; 
    border-color: #0275d8; 
}
.btn-link.btn-blue:hover { background-color: #d3e9f9; }

.btn-link.btn-green {
    background-color: #eaf7ea; 
    border-color: #5cb85c; 
}
.btn-link.btn-green:hover { background-color: #d9f0d9; }

@media screen and (min-width: 769px) and (max-width: 1280px) {
    .schedule-table th, .schedule-table td { font-size: 1.2rem; padding: 5px; } 
    .schedule-table thead th, .schedule-table tbody th, .schedule-table td { height: 32px; }
    .schedule-table thead tr:nth-child(2) th { top: 32px; }
    .schedule-table thead tr:nth-child(3) th { top: 64px; }
    .new-schedule tbody td[rowspan] { font-size: 1.1em; }

    .interview-section p, .interview-section li { font-size: 1.3rem; } 
    .definition-list dt { font-size: 1.4rem; }
    .table-note, .caution, .contact-info { font-size: 1.3rem; } 
}

@media screen and (max-width: 768px) {
    .headline { display: none; 
    }
    .headlinesp {
        background: url(images/面接レスポンシブ.png) no-repeat 0 0; 
        background-color: rgba(246, 248, 249, 0.605);
        background-position: center; 
        background-blend-mode: lighten; 
        font-size: 2.25rem; margin: auto;
        display: flex;
        align-items: flex-end; 
        justify-content: center; 
        min-height: 250px; background-size: cover; 
        line-height: 1; padding-bottom: 80px; 
        box-sizing: border-box;
    }

    .schedule-table { font-size: 1.3rem; } 
    .schedule-table th, .schedule-table td { padding: 5px; height: auto; }
    .interview-section h2 { font-size: 1.8rem; } 
    .new-schedule tbody td[rowspan] { font-size: 1.1em; }

    .interview-section p, .interview-section li { font-size: 1.3rem; }
    .definition-list dt { font-size: 1.4rem; } 
    .table-note, .caution, .contact-info { font-size: 1.3rem; } 
    
    .definition-list dd ul {
        padding-left: 30px; 
    }
    .section-selection > .caution {
        padding-left: 30px; 
    }

    .venue-notice-box p:not(.venue-notice-title),
    .venue-notice-list {
        padding-left: 30px; 
    }

  
    .submission-info p,
    .caution.text-danger {
        text-align: left;
        word-break: normal;
        overflow-wrap: break-word;
    }

   
    .venue-notice-box p,
    .venue-notice-list li {
        text-align: left;
        word-break: keep-all;
        overflow-wrap: anywhere;
    }

    
    .contact-info {
        text-align: left;
        word-break: normal;
        overflow-wrap: break-word;
    }
}


@media screen and (max-width: 480px) {
    .headlinesp { font-size: 1.75rem; } 
    .jobinterview { width: 90%; }
    .nittei { font-size: 1.3rem; } 
    
    .schedule-table {
        font-size: 1.2rem; 
        min-width: 600px; 
    }
    .schedule-table th, .schedule-table td { padding: 4px; }
    .schedule-table thead th { font-size: 1.1rem; white-space: normal; } 
    
    .sp-br { display: block; }
    .sp-hide { display: none; }

    .interview-section h2 { font-size: 1.6rem; } 
    .interview-section { margin-top: 25px; margin-bottom: 25px; padding-bottom: 25px; }
    
    .interview-section p, .interview-section li { font-size: 1.2rem; } 
    .definition-list dt, .definition-list dd { padding: 15px; }
    .definition-list dd ul {
        padding-left: 25px; 
    }
    .section-selection > .caution {
        padding-left: 25px; 
    }
    .definition-list dt { font-size: 1.3rem; } 
    .table-note, .caution, .contact-info { font-size: 1.2rem; } 

    .button-grid { grid-template-columns: 1fr; }
    .button-group h4 {
        font-size: 1.4rem; 
    }
    .btn-link {
        font-size: 1.4rem; 
        padding: 20px 10px;
    }
    .new-schedule tbody td[rowspan] { font-size: 1em; } 


    .venue-notice-box p:not(.venue-notice-title),
    .venue-notice-list {
        padding-left: 25px; 
    }
   
}


.scroll-hint {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: rgba(0, 0, 0, 0.7);
    color: white;
    padding: 10px 20px;
    border-radius: 5px;
    font-size: 0.9rem; 
    white-space: nowrap;
    z-index: 5;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0s linear 0.3s;
    pointer-events: none;
}
.scroll-hint span { margin-right: 5px; }
.scroll-hint.is-visible {
    opacity: 1;
    visibility: visible;
    transition: opacity 0.3s ease, visibility 0s linear 0s;
}

@media screen and (min-width: 1081px) {
    .scroll-hint { 
        display: none !important; 
    }
}

.venue-notice-box {
  background-color: rgba(246, 248, 249, 0.605); 
  border: 2px solid #CC0000;
  border-radius: 8px; 
  padding: 25px;
  margin-bottom: 30px; 
}


.venue-notice-box p {
  font-size: 1.2rem;
  line-height: 1.8;
  margin-top: 0;
  margin-bottom: 1em; 
}


.venue-notice-box p:not(.venue-notice-title) {
  padding-left: 40px; 
  box-sizing: border-box;
}


.venue-notice-box p:last-of-type {
    margin-bottom: 0;
}


.venue-notice-title {
  font-weight: 700;
  font-size: 1.6rem;
  text-align: left;
  margin-bottom: 15px;
  padding-left: 0; 
}


.venue-notice-list {
  list-style-type: none; 
  padding-left: 40px; 
  box-sizing: border-box; 
  margin-top: 20px;
  margin-bottom: 0;
  font-size: 1.4rem;
  line-height: 1.8;
}

.venue-notice-list li {
  margin-bottom: 10px;
}

.venue-notice-list li:last-child {
  margin-bottom: 0;
}

.venue-notice-list a {
  text-decoration: underline;
  color: #0000FF;
  font-weight: bold;
}

.venue-notice-list a:hover {
  color: #49a9f8;
  text-decoration: none;
}
.venue-notice-extra {
  color: #ff0000; 

}