.tpc-wrapper        { font-size: .85rem; }
.tpc-tabs           { list-style:none;margin:0 0 16px;padding:0;display:flex;flex-wrap:wrap; }
.tpc-tabs li        { cursor:pointer;margin-right:8px;padding:4px 12px;background:#eee;border-radius:4px; }
.tpc-tabs li.active { background:#333;color:#fff; }

.tpc-table          { width:100%;border-collapse:collapse;margin-bottom:24px; }
.tpc-table th,
.tpc-table td       { border:1px solid #ddd;padding:6px;text-align:center; }
.tpc-table th       { background:#f7f7f7;font-weight:600; }

.tpc-calendar       { display:table;margin:0 0 12px 0;border:1px solid #ddd;max-width: 200px; }
.tpc-calendar caption { font-weight:700;padding:4px 0;background:#fafafa;text-align:center;  }
.tpc-calendars      { display:grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; }
.tpc-calendar td, .tpc-calendar th { width:22px;height:22px;text-align:center; }
.tpc-calendar td.no-price { background: #eee; } /* Add this style */
.tpc-calendar td.has-color { cursor:pointer;font-weight:700; }
.tpc-calendar td.confirmed { position:relative; }
.tpc-calendar td.confirmed::after {
    content:'★';position:absolute;right:2px;top:2px;font-size:.7em;
}
.tpc-calendar td.selected-range {
    border: 2px solid #ff6347; /* Tomato */
    box-sizing: border-box;
}

.tpc-wrapper {
    max-width: 870px !important;

.tpc-price-details {
    margin-top: 24px;
    padding: 16px;
    border: 1px solid #ddd;
    border-radius: 4px;
}

.tpc-price-output {
    font-weight: bold;
    font-size: 1.1em;
    margin-bottom: 16px;
}

.tpc-section-title {
    font-size: 1em;
    font-weight: bold;
    margin: 24px 0 8px;
    border-bottom: 1px solid #eee;
    padding-bottom: 4px;
}

.tpc-options-list {
    list-style: none;
    padding-left: 0;
    margin-left: 0;
}

.tpc-buttons-wrapper {
    margin: 16px 0;
}

.tpc-button {
    display: inline-block;
    padding: 8px 16px;
    text-decoration: none;
    border-radius: 4px;
    margin-right: 8px;
    color: #fff;
    font-weight: bold;
    border: none;
}

.tpc-contact-button {
    background-color: #3498db; /* 青系 */
}

.tpc-apply-button {
    background-color: #e74c3c; /* 赤系 */
}
}

.tpc-conditional-list {
    list-style: none;
    padding-left: 0;
    margin-left: 0;
    margin-bottom: 1em;
}

.tpc-conditional-description {
    font-size: 0.9em;
    color: #666;
    margin-top: 8px;
}

.tpc-conditional-fee,
.tpc-other-fees {
    display: none; /* 初期状態では非表示 */
}