/* =============================================
   Recycle (買取お申込み) Page Styles
   ============================================= */

.recycle-section { padding: 80px 0; background: var(--color-cream, #FDF8EF); }
.recycle-section .container { max-width: 750px; }

/* フォームタイトル */
.recycle-form-title {
    font-family: var(--font-serif, 'Noto Serif JP', Georgia, serif);
    font-size: 1.5rem;
    color: var(--color-sepia-deeper, #3A2418);
    text-align: center;
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--color-gold, #B56B2F);
    position: relative;
}
.recycle-form-title::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 2px;
    background: var(--color-sepia-deeper, #3A2418);
}
@media (max-width: 768px) {
    .recycle-form-title { font-size: 1.25rem; }
}

/* お知らせバナー */
.form-notice { background: #FFF4E0; border: 2px solid #B56B2F; border-left-width: 6px; border-radius: var(--radius-md); padding: 24px 28px; margin-bottom: 40px; color: #3A2418; }
.form-notice-title { font-family: var(--font-serif); font-size: 1.15rem; font-weight: 700; color: #8B3A0E; margin-bottom: 12px; }
.form-notice-title i { margin-right: 6px; color: #B56B2F; }
.form-notice p { font-size: 0.95rem; line-height: 1.8; margin-bottom: 14px; color: #3A2418; }
.form-notice-contact { margin-top: 8px; font-size: 1rem; }
.form-notice-contact a { color: #8B3A0E; font-weight: 700; text-decoration: none; }
.form-notice-contact a:hover { text-decoration: underline; }
.form-notice-contact a i { margin-right: 6px; }
.form-notice-contact span { font-size: 0.85rem; color: #6B4F3A; margin-left: 8px; }
@media (max-width: 768px) {
    .form-notice { padding: 18px 20px; }
    .form-notice-title { font-size: 1rem; }
    .form-notice-contact span { display: block; margin-left: 0; margin-top: 4px; }
}

.recycle-lead { text-align: center; margin-bottom: 40px; color: var(--color-text-muted, #8B7355); }
.recycle-note { margin-top: 12px; background: var(--color-parchment, #F3E6C8); padding: 12px 20px; border-radius: var(--radius-sm); display: inline-block; }
.recycle-note a { color: var(--color-gold, #B56B2F); font-weight: 700; }
.recycle-form { background: var(--color-parchment-light, #F7F0DE); border: 1px solid var(--color-border, #D4C4A8); border-radius: var(--radius-md); padding: 40px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.checkbox-group { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.checkbox-label { display: flex; align-items: center; gap: 8px; font-size: 0.95rem; cursor: pointer; padding: 6px 0; }
.checkbox-label input { accent-color: var(--color-sepia, #8B5A2B); width: 18px; height: 18px; }

/* ラジオボタングループ（コールバック方法） */
.radio-group { display: flex; flex-direction: column; gap: 8px; }
.radio-label { display: flex; align-items: center; gap: 8px; font-size: 0.95rem; cursor: pointer; padding: 8px 12px; background: #fff; border: 1.5px solid #D4C4A8; border-radius: 6px; transition: all 0.2s; }
.radio-label:hover { border-color: #B56B2F; background: #FFF5E0; }
.radio-label input { accent-color: var(--color-sepia, #8B5A2B); width: 18px; height: 18px; }
.radio-label input:checked + * { font-weight: 600; }
.radio-label:has(input:checked) { border-color: #8B5A2B; background: #FFF5E0; }
.helper-text-inline { color: #8B7355; font-size: 0.8rem; font-weight: normal; }

/* 連絡時間帯（電話希望以外の時は薄く表示） */
.contact-time-group { transition: opacity 0.3s; }
#contactTimeGroup.dimmed { opacity: 0.45; }
#contactTimeGroup.dimmed .contact-time-group { pointer-events: none; }
.form-submit { text-align: center; margin-top: 10px; }

/* 任意タグ・ヘルパーテキスト */
.optional { display: inline-block; background: #E8D5A8; color: #5A3A1F; font-size: 0.7rem; padding: 2px 8px; border-radius: 10px; margin-left: 6px; font-weight: 600; }
.helper-text { display: block; margin-top: 4px; color: #8B7355; font-size: 0.78rem; font-weight: normal; }
label .helper-text { display: inline-block; margin-left: 4px; }

/* 郵便番号フィールド */
.zip-wrapper { display: flex; gap: 10px; align-items: stretch; }
.zip-input { flex: 0 0 180px; letter-spacing: 0.1em; }
.btn-zip-search { background: #8B5A2B; color: #fff; border: none; padding: 0 18px; border-radius: 6px; font-weight: 600; cursor: pointer; transition: background 0.2s; font-size: 0.9rem; white-space: nowrap; }
.btn-zip-search:hover { background: #B56B2F; }
.btn-zip-search:disabled { background: #BDAE91; cursor: wait; }
.zip-status { display: block; margin-top: 6px; font-size: 0.82rem; min-height: 18px; }
.zip-status.success { color: #5A7A4A; }
.zip-status.error { color: #C8321F; }
.zip-status.loading { color: #8B5A2B; }

/* 訪問日時タブ */
.visit-label { font-size: 0.85rem; font-weight: 600; color: #5A3A1F; margin: 12px 0 6px; }
.visit-tabs { display: flex; flex-wrap: wrap; gap: 6px; }
.visit-tab { background: #fff; border: 1.5px solid #D4C4A8; color: #5A3A1F; padding: 8px 14px; border-radius: 6px; cursor: pointer; font-size: 0.9rem; font-weight: 500; transition: all 0.2s; min-width: 52px; text-align: center; line-height: 1.2; }
.visit-tab:hover { border-color: #B56B2F; background: #FFF5E0; }
.visit-tab.active { background: #B56B2F; color: #fff; border-color: #8B5A2B; box-shadow: 0 2px 6px rgba(181, 107, 47, 0.3); }
.visit-tab small { font-size: 0.7rem; opacity: 0.85; font-weight: 400; }
/* 日タブはカレンダー形式（7列グリッド） */
.visit-days {
    display: grid !important;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
    background: #fff;
    padding: 10px;
    border: 1.5px solid #D4C4A8;
    border-radius: 8px;
}
.visit-days .visit-tab {
    min-width: 0;
    padding: 10px 4px;
    font-size: 0.9rem;
    font-weight: 600;
}
.calendar-header {
    text-align: center;
    font-size: 0.8rem;
    font-weight: 700;
    color: #5A3A1F;
    padding: 6px 0;
    border-bottom: 2px solid #E8D5A8;
}
.calendar-empty {
    /* 空セル（月頭の空白） */
}
.calendar-past {
    text-align: center;
    padding: 10px 4px;
    color: #BDAE91;
    font-size: 0.85rem;
    text-decoration: line-through;
}

/* 休業日（日曜・祝日）スタイル */
.visit-tab-closed {
    background: #F5F0E4 !important;
    border-color: #E0D4B8 !important;
    cursor: not-allowed !important;
    position: relative;
    opacity: 0.6;
}
.visit-tab-closed:hover {
    background: #F5F0E4 !important;
    border-color: #E0D4B8 !important;
}
.visit-tab-closed .closed-mark {
    display: block;
    font-size: 0.9rem;
    font-weight: 700;
    color: #C8321F;
    line-height: 1;
    margin-bottom: 1px;
}

.visit-preview { margin-top: 12px; padding: 10px 14px; background: #FFF5E0; border: 1px dashed #B56B2F; border-radius: 6px; font-size: 0.9rem; color: #5A3A1F; font-weight: 600; }
.visit-preview.filled { background: #F7E4C2; border-style: solid; }
.visit-preview .clear-btn { float: right; background: transparent; border: none; color: #C8321F; cursor: pointer; font-size: 0.8rem; font-weight: 600; }
.visit-preview .clear-btn:hover { text-decoration: underline; }

@media (max-width: 768px) {
    .form-row { grid-template-columns: 1fr; }
    .recycle-form { padding: 24px; }
    .checkbox-group { grid-template-columns: 1fr; }
    .zip-wrapper { flex-direction: column; }
    .zip-input { flex: 1 1 100%; }
    .btn-zip-search { padding: 10px; }
    .visit-tab { padding: 8px 10px; font-size: 0.82rem; min-width: 44px; }
    .visit-days { gap: 3px; padding: 6px; }
    .visit-days .visit-tab { min-width: 0; padding: 8px 2px; font-size: 0.85rem; }
    .calendar-header { font-size: 0.7rem; padding: 4px 0; }
    .calendar-past { padding: 8px 2px; font-size: 0.75rem; }
}
