#tr-form-page,
#tr-action-page {
    margin: 0;
    padding: 24px 12px;
    background: #ffffff;
    color: #1a1a1a;
    font-family: "Hiragino Sans", "Yu Gothic", sans-serif;
}

.tr-container {
    max-width: 760px;
    margin: 0 auto;
    background: #ffffff;
}

.tr-container h1 {
    font-size: 1.8rem;
    margin-bottom: 16px;
}

.tr-container h2 {
    font-size: 1.2rem;
    margin: 18px 0 10px;
}

.tr-notice {
    background: #f6f8fb;
    border-left: 4px solid #3171e0;
    padding: 10px 12px;
    margin-bottom: 14px;
}

.tr-guide-box {
    border: 1px solid #d8dee8;
    background: #fbfcfe;
    border-radius: 8px;
    padding: 14px 16px;
    margin: 0 0 16px;
}

.tr-guide-box h2 {
    margin-top: 0;
}

.tr-guide-list {
    margin: 0;
    padding-left: 18px;
}

.tr-guide-list li + li {
    margin-top: 6px;
}

.tr-guide-note {
    margin: 12px 0 0;
    font-weight: 700;
    color: #0d4d8b;
}

.tr-consent-box {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #d8dee8;
}

.tr-consent-title {
    margin: 0 0 10px;
    font-weight: 700;
}

.tr-check-item {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin-bottom: 10px;
}

.tr-check-item input[type="checkbox"] {
    margin-top: 3px;
}

.tr-check-item span {
    line-height: 1.6;
}

.tr-warning-strong {
    color: #bf1010;
    font-weight: 700;
    margin: 8px 0 16px;
}

.tr-takeout-note {
    line-height: 1.6;
    margin-top: 8px;
    margin-bottom: 12px;
}

.tr-inline-error {
    border: 1px solid #dc3c3c;
    background: #fff1f1;
    color: #9f1313;
    border-radius: 6px;
    padding: 10px 12px;
    margin: -2px 0 12px;
    font-weight: 700;
}

.tr-alert-box {
    border: 1px solid #d98b18;
    background: #fff6df;
    color: #7a4800;
    border-radius: 6px;
    padding: 10px 12px;
    margin: 0 0 14px;
    font-weight: 700;
}

.tr-errors {
    border: 1px solid #e01e1e;
    background: #fff2f2;
    color: #9a0e0e;
    padding: 10px 12px;
    margin-bottom: 14px;
}

.tr-errors ul {
    margin: 8px 0 0 18px;
}

.tr-success {
    border: 1px solid #1f8f2f;
    background: #f2fff4;
    padding: 14px;
}

.tr-field,
.tr-field-group {
    margin-bottom: 14px;
}

.tr-field label {
    display: block;
    font-weight: 700;
    margin-bottom: 6px;
}

.tr-field input[type="text"],
.tr-field input[type="tel"],
.tr-field input[type="email"],
.tr-field input[type="number"],
.tr-field select,
.tr-field textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #c6c8cc;
    border-radius: 4px;
    padding: 8px 10px;
    font-size: 15px;
    background: #fff;
}

.tr-field-group {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.tr-field textarea {
    resize: vertical;
}

.tr-field-note {
    margin: 8px 0 0;
    color: #46515f;
    font-size: 13px;
    line-height: 1.6;
}

.required {
    color: #c21a1a;
}

.tr-calendar-controls {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-bottom: 8px;
}

.tr-cal-nav {
    border: 1px solid #adb4be;
    background: #f9fafc;
    border-radius: 4px;
    padding: 4px 10px;
    cursor: pointer;
}

.tr-cal-nav:disabled {
    opacity: 0.45;
    cursor: default;
}

.tr-calendar-grid {
    border: 1px solid #c6c8cc;
    border-radius: 6px;
    overflow: hidden;
}

.tr-calendar-header,
.tr-calendar-row {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
}

.tr-calendar-header span {
    text-align: center;
    font-size: 12px;
    padding: 6px 0;
    border-bottom: 1px solid #dde1e8;
    background: #f4f6fa;
}

.tr-calendar-cell {
    border-right: 1px solid #eef1f5;
    border-bottom: 1px solid #eef1f5;
    min-height: 44px;
}

.tr-calendar-row .tr-calendar-cell:last-child,
.tr-calendar-header span:last-child {
    border-right: none;
}

.tr-day-btn {
    width: 100%;
    min-height: 44px;
    border: none;
    background: #fff;
    cursor: pointer;
    font-size: 14px;
}

.tr-day-btn:hover {
    background: #eef4ff;
}

.tr-day-btn.is-weekend {
    color: #0061bd;
}

.tr-day-btn.is-holiday {
    color: #c51616;
    font-weight: 700;
}

.tr-day-btn.is-disabled {
    background: #f2f2f2;
    color: #a1a1a1;
    cursor: not-allowed;
}

.tr-day-btn.is-selected {
    background: #113d90;
    color: #fff;
    font-weight: 700;
}

.tr-selected-date {
    margin: 8px 0 0;
    font-weight: 700;
}

.tr-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.tr-submit {
    margin-top: 16px;
}

.tr-submit-btn {
    border: none;
    background: #004bb5;
    color: #fff;
    border-radius: 5px;
    padding: 10px 22px;
    font-size: 15px;
    cursor: pointer;
}

.tr-submit-btn:hover {
    background: #003a8b;
}

.tr-summary {
    border: 1px solid #d3d8e0;
    padding: 12px;
    margin-bottom: 12px;
}

.tr-summary ul {
    margin: 0;
    padding-left: 18px;
}

@media (max-width: 640px) {
    .tr-field-group {
        grid-template-columns: 1fr;
    }
}
