.tatehoko-wrap *{box-sizing:border-box;margin:0;padding:0}
.tatehoko-wrap{max-width:640px;padding:1.5rem 0;font-family:sans-serif;margin:0 auto;position:relative}
.tatehoko-wrap .section-title{font-size:13px;font-weight:500;color:#6b6b6b;letter-spacing:.08em;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid #e8e6e0}
.tatehoko-wrap .card{background:#fff;border:1px solid #e8e6e0;border-radius:12px;padding:1.25rem;margin-bottom:1rem}
.tatehoko-wrap .field{margin-bottom:1rem}
.tatehoko-wrap .field:last-child{margin-bottom:0}
.tatehoko-wrap label{display:block;font-size:13px;color:#6b6b6b;margin-bottom:.35rem}
.tatehoko-wrap .req{color:#c0392b;margin-left:3px;font-size:12px}
.tatehoko-wrap input[type=text],
.tatehoko-wrap input[type=tel],
.tatehoko-wrap input[type=email],
.tatehoko-wrap select,
.tatehoko-wrap textarea{width:100%;padding:8px 10px;font-size:15px;border:1px solid #ccc;border-radius:8px;background:#fff;color:#1a1a1a;appearance:none;-webkit-appearance:none;font-family:sans-serif}
.tatehoko-wrap textarea{resize:vertical;min-height:80px;line-height:1.6}
.tatehoko-wrap .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tatehoko-wrap .menu-card{border:1px solid #e8e6e0;border-radius:8px;padding:.9rem 1rem;margin-bottom:.6rem;cursor:pointer;transition:border-color .15s,background .15s}
.tatehoko-wrap .menu-card:hover{border-color:#aaa}
.tatehoko-wrap .menu-card.selected{border-color:#674598;background:rgba(103,69,152,.06)}
.tatehoko-wrap .menu-name{font-size:15px;font-weight:500;color:#1a1a1a}
.tatehoko-wrap .menu-sub{font-size:12px;color:#6b6b6b;margin-top:3px;line-height:1.5}
.tatehoko-wrap .menu-tag{display:inline-block;font-size:11px;padding:2px 8px;border-radius:20px;margin-top:5px}
.tatehoko-wrap .tag-shrine{background:rgba(103,69,152,.1);color:#674598}
.tatehoko-wrap .tag-visit{background:rgba(201,168,76,.12);color:#8a6e1e}
.tatehoko-wrap .tag-both{background:rgba(80,160,100,.1);color:#2d6e42}
.tatehoko-wrap .menu-detail{display:none;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e8e6e0}
.tatehoko-wrap .menu-detail.open{display:block}
.tatehoko-wrap .detail-desc{font-size:13px;color:#6b6b6b;line-height:1.8;margin-bottom:.75rem}
.tatehoko-wrap .award-label{font-size:11px;font-weight:500;color:#8a6e1e;letter-spacing:.06em;margin-bottom:.3rem}
.tatehoko-wrap .award-text{font-size:13px;color:#6b6b6b;line-height:1.7;background:rgba(201,168,76,.06);border:1px solid rgba(201,168,76,.3);border-radius:8px;padding:.6rem .9rem}
.tatehoko-wrap .extra-wrap{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e8e6e0}
.tatehoko-wrap .child-block{background:#f5f4f0;border-radius:8px;padding:1rem;margin-bottom:.75rem;position:relative}
.tatehoko-wrap .child-block-label{font-size:12px;font-weight:500;color:#674598;margin-bottom:.75rem}
.tatehoko-wrap .remove-btn{position:absolute;top:.75rem;right:.75rem;background:none;border:none;font-size:18px;cursor:pointer;color:#aaa;line-height:1;padding:0}
.tatehoko-wrap .remove-btn:hover{color:#c0392b}
.tatehoko-wrap .add-btn{display:flex;align-items:center;gap:6px;background:none;border:1px dashed #ccc;border-radius:8px;padding:.6rem 1rem;font-size:13px;color:#674598;cursor:pointer;width:100%;margin-top:.25rem;transition:.15s}
.tatehoko-wrap .add-btn:hover{background:rgba(103,69,152,.05)}
.tatehoko-wrap .add-icon{width:18px;height:18px;border-radius:50%;background:rgba(103,69,152,.12);display:flex;align-items:center;justify-content:center;font-size:14px;color:#674598;flex-shrink:0}
.tatehoko-wrap .hatsuhoryo-note{background:rgba(201,168,76,.08);border:1px solid rgba(201,168,76,.4);border-radius:8px;padding:.75rem 1rem;font-size:13px;color:#6b5318;line-height:1.7}
.tatehoko-wrap .submit-btn{width:100%;padding:14px;font-size:16px;font-weight:500;background:#674598;color:#fff;border:none;border-radius:12px;cursor:pointer;margin-top:.5rem;transition:opacity .15s}
.tatehoko-wrap .submit-btn:hover{opacity:.88}
.tatehoko-wrap .submit-btn:disabled{background:#aaa;cursor:not-allowed}
.tatehoko-wrap .fuda-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:.5rem}
.tatehoko-wrap .fuda-btn{padding:8px 18px;font-size:14px;border:1px solid #ccc;border-radius:8px;cursor:pointer;background:#fff;color:#1a1a1a;transition:.15s}
.tatehoko-wrap .fuda-btn.selected{background:rgba(103,69,152,.08);border-color:#674598;color:#674598;font-weight:500}
.tatehoko-wrap .inquiry-box{background:rgba(201,168,76,.06);border:1px solid rgba(201,168,76,.4);border-radius:12px;padding:1.25rem;text-align:center;margin-bottom:1rem}
.tatehoko-wrap .inquiry-box p{font-size:14px;color:#6b6b6b;line-height:1.8;margin-bottom:1rem}
.tatehoko-wrap .inquiry-btn{display:inline-block;background:#c9a84c;color:#fff;padding:12px 32px;font-size:15px;font-weight:500;border-radius:12px;text-decoration:none;border:none;cursor:pointer;transition:opacity .15s}
.tatehoko-wrap .inquiry-btn:hover{opacity:.88}
.tatehoko-wrap .anzen-choice{display:flex;gap:10px;margin-top:.5rem;flex-wrap:wrap}
.tatehoko-wrap .anzen-btn{flex:1;min-width:140px;padding:10px;font-size:14px;border:1px solid #ccc;border-radius:8px;cursor:pointer;background:#fff;color:#1a1a1a;text-align:center;transition:.15s}
.tatehoko-wrap .anzen-btn.selected{border-color:#674598;background:rgba(103,69,152,.06);color:#674598;font-weight:500}
.tatehoko-wrap .cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.tatehoko-wrap .cal-month-label{font-size:15px;font-weight:500;color:#1a1a1a}
.tatehoko-wrap .nav-btn{background:none;border:1px solid #ccc;border-radius:8px;padding:5px 11px;font-size:13px;cursor:pointer;color:#1a1a1a;transition:.15s}
.tatehoko-wrap .nav-btn:hover{background:#f5f4f0}

/* ▼ SWELLテーマでのカレンダー表示崩れ・スペース保護用CSS ▼ */
.tatehoko-wrap .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:.75rem}
.tatehoko-wrap .cal-dow{font-size:11px;color:#999;text-align:center;padding:3px 0;font-weight:500}
.tatehoko-wrap #th-cal-days{display:grid !important;grid-template-columns:repeat(7,1fr) !important;gap:3px !important;grid-column:1 / -1 !important;width:100% !important}
.tatehoko-wrap .th-cal-num{font-size:13px}
.tatehoko-wrap .th-cal-ry{font-size:9px;line-height:1}
.tatehoko-wrap .cal-day{min-height:46px !important;display:flex !important;flex-direction:column !important;align-items:center !important;justify-content:center !important;border-radius:8px;border:1px solid transparent;gap:1px}
.tatehoko-wrap .cal-day.available{cursor:pointer}
.tatehoko-wrap .cal-day.available:hover{border-color:#674598;background:rgba(103,69,152,.06)}
.tatehoko-wrap .legend{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:.75rem}
.tatehoko-wrap .legend-item{display:flex;align-items:center;gap:4px;font-size:11px;color:#6b6b6b}
.tatehoko-wrap .legend-dot{width:12px;height:12px;border-radius:2px;flex-shrink:0}
.tatehoko-wrap .cal-notice{font-size:12px;color:#999;line-height:1.6;padding:.5rem .75rem;background:#f5f4f0;border-radius:8px;margin-bottom:.75rem}
.tatehoko-wrap .time-title{font-size:13px;color:#6b6b6b;margin-bottom:.6rem;font-weight:500}
.tatehoko-wrap .time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.tatehoko-wrap .selected-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(103,69,152,.08);border:1px solid rgba(103,69,152,.3);border-radius:8px;padding:6px 12px;font-size:13px;color:#674598;margin-top:.5rem}

.tatehoko-wrap .th-overlay{position:fixed;inset:0;background:rgba(255,255,255,.9);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;opacity:0;pointer-events:none;transition:opacity .3s}
.tatehoko-wrap .th-overlay.show{opacity:1;pointer-events:auto}
.tatehoko-wrap .th-spinner{width:40px;height:40px;border:3px solid rgba(103,69,152,.1);border-top-color:#674598;border-radius:50%;animation:th-spin 1s linear infinite;margin-bottom:12px}
.tatehoko-wrap .th-loader-mini{display:inline-block;width:16px;height:16px;border:2px solid rgba(103,69,152,.2);border-top-color:#674598;border-radius:50%;animation:th-spin 1s linear infinite;vertical-align:middle;margin-right:8px}
@keyframes th-spin{to{transform:rotate(360deg)}}
.tatehoko-wrap .th-thanks-card{display:none;padding:2.5rem 1.5rem;text-align:center;animation:th-fade-in .4s ease forwards}
@keyframes th-fade-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

@media (min-width: 768px) {
  .tatehoko-wrap{max-width:900px}
  .tatehoko-wrap .cal-day{min-height:60px !important}
  .tatehoko-wrap .th-cal-num{font-size:20px}
  .tatehoko-wrap .th-cal-ry{font-size:16px}
}

/* Plugin test mode notice */
.tatehoko-wrap .th-test-notice{margin-bottom:1rem;padding:.75rem 1rem;border:1px solid #d8b65a;border-radius:8px;background:#fff9e8;color:#6b5318;font-size:13px;line-height:1.6}
/* v1.3 production safety: reservation availability loading/error state */
.tatehoko-wrap .th-init-status{margin-bottom:.75rem;padding:.7rem .85rem;border-radius:8px;font-size:13px;line-height:1.6}
.tatehoko-wrap .th-init-status.is-loading{background:#f5f4f0;color:#6b6b6b;border:1px solid #e8e6e0}
.tatehoko-wrap .th-init-status.is-error{background:#fff2f0;color:#9f2f24;border:1px solid #e7b6b0}
.tatehoko-wrap .nav-btn:disabled{opacity:.45;cursor:not-allowed;background:#f5f4f0}
