@charset "utf-8";

/* Reset & Base Styles */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

/* Container (幅800px基準) */
.container {
    max-width: 1100px;
    margin: 0 auto;
    padding-bottom: 40px;
    line-height: 1.8;
}

/* Placeholder (プレースホルダー規定) */
.placeholder {
    background: #e0e0e0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #666;
    font-weight: bold;
    width: 100%;
}

/* Section Common */
section {
    padding: 40px 20px;
    border-bottom: 1px solid #eee;
}
section:last-child {
    border-bottom: none;
}
.section-title {
    text-align: center;
    font-size: 24px;
    margin-bottom: 30px;
    font-weight: bold;
}

/* Hero Section (高さ400px以下規定) */
.hero {
    position: relative;
    max-height: 400px;
    overflow: hidden;
    padding: 60px 20px;
    border-bottom: 1px solid #eee;
}
.hero-text {
    text-align: center;
}
.hero-title {
    font-size: 32px;
    font-weight: bold;
    margin-bottom: 15px;
}

/* Job Description Section */
.job-desc {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}
.job-desc-image {
    flex: 1 1 300px;
}
.job-desc-image .placeholder {
    height: 250px;
}
.job-desc-text {
    flex: 1 1 300px;
}
.job-desc-text h3 {
    font-size: 20px;
    margin-bottom: 15px;
}

/* Working Hours Section */
.work-hours {
    background-color: #f4f7f6;
    border-radius: 8px;
    padding: 30px 20px;
}
.work-hours-list {
    list-style: none;
}
.work-hours-list li {
    background: #fff;
    margin-bottom: 10px;
    padding: 15px;
    border-left: 5px solid #000;
    border-radius: 4px;
}

/* Daily Flow Section */
.flow-timeline {
    position: relative;
    padding-left: 20px;
}
.flow-item {
    display: flex;
    margin-bottom: 20px;
    position: relative;
}
.flow-time {
    font-weight: bold;
    font-size: 18px;
    width: 80px;
    flex-shrink: 0;
}
.flow-content {
    flex-grow: 1;
    background: #f9f9f9;
    padding: 15px;
    border-radius: 4px;
    border: 1px solid #eee;
}
.flow-content h4 {
    margin-bottom: 5px;
}

/* Staff Message Section */
.message-box {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 20px;
}
.message-photo {
    width: 150px;
    flex-shrink: 0;
}
.message-photo .placeholder {
    height: 150px;
    border-radius: 50%;
}
.message-content {
    flex-grow: 1;
}
.message-content h3 {
    margin-bottom: 10px;
}