:root{--bg:#f8eef1;--panel:#fffafc;--rose:#c76a82;--rose-dark:#a83f5f;--rose-soft:#f3dce3;--lav:#dcd4ef;--lav-dark:#7f6da8;--gold:#d9b86c;--gold-soft:#fbf4de;--blue:#6688a8;--blue-soft:#e7eef5;--green:#587867;--text:#4a3d42;--muted:#806f75;--border:#ead8de;--shadow:0 14px 36px rgba(168,63,95,.10);--radius:22px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at top left,rgba(255,255,255,.98),transparent 32%),linear-gradient(180deg,#f9f0f3,#f5e5eb);color:var(--text);font-family:'Zen Kaku Gothic New',sans-serif}.hidden{display:none!important}a{color:var(--rose-dark)}button,input,textarea,select{font:inherit}.app-shell{max-width:940px;margin:0 auto;padding:14px 12px 64px}.hero-card,.content-card{background:rgba(255,250,252,.97);border:1px solid rgba(199,106,130,.20);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin-bottom:14px}.hero-card{background:linear-gradient(135deg,#fffafd,#f3dce3);overflow:hidden}.logo-area{min-height:72px;display:flex;align-items:center;justify-content:center;margin:2px 0 10px}.logo-area img{max-width:min(90%,520px);max-height:110px;object-fit:contain}.logo-placeholder{min-width:min(78vw,420px);padding:18px;border:1px dashed rgba(168,63,95,.32);border-radius:16px;text-align:center;color:#9a747f;font-family:'Shippori Mincho',serif}.banner-area{width:100%;aspect-ratio:16/5;border-radius:18px;overflow:hidden;border:1px solid rgba(168,63,95,.18);background:linear-gradient(135deg,#fff,#f2dfe5);display:flex;align-items:center;justify-content:center}.banner-area img{width:100%;height:100%;object-fit:cover}.banner-placeholder{text-align:center;color:#9a747f}.banner-placeholder strong,.banner-placeholder span{display:block}.banner-placeholder strong{font-family:'Shippori Mincho',serif;font-size:17px;color:var(--rose-dark)}.deadline-card{margin-top:14px;background:rgba(255,255,255,.88);border:1px solid rgba(199,106,130,.28);border-radius:17px;padding:13px}.deadline-card h2{margin:0 0 9px;text-align:center;color:var(--rose-dark);font-family:'Shippori Mincho',serif;font-size:18px}.deadline-list{display:grid;gap:7px}.deadline-list>div{display:grid;grid-template-columns:140px 1fr;gap:9px;padding:9px 10px;border-radius:11px;background:#fff9fb;font-size:12px;line-height:1.5}.deadline-list strong{color:var(--rose-dark)}.legend-row{display:flex;flex-wrap:wrap;gap:7px;justify-content:center}.legend-chip{display:inline-flex;align-items:center;padding:7px 9px;border-radius:999px;background:#fff;border:1px solid rgba(0,0,0,.06);font-size:11px;white-space:nowrap}.dot{width:9px;height:9px;border-radius:50%;margin-right:5px}.dot.normal{background:var(--rose)}.dot.princess{background:var(--lav-dark)}.dot.gold{background:var(--gold)}.month-switch{display:flex;align-items:center;justify-content:center;gap:14px;margin:18px 0 11px}.month-switch button{width:42px;height:42px;border:0;border-radius:50%;background:#fff;color:var(--rose-dark);font-size:25px;box-shadow:0 7px 16px rgba(168,63,95,.10);cursor:pointer}.month-switch button:disabled{opacity:.28;cursor:default;box-shadow:none}.month-switch strong{min-width:160px;text-align:center;color:var(--rose-dark);font-family:'Shippori Mincho',serif;font-size:22px}.calendar-wrap{background:#fff;border-radius:18px;padding:10px;border:1px solid rgba(0,0,0,.05)}.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar-week div{text-align:center;padding:5px 0;font-size:12px;font-weight:700}.week-sun,.holiday{color:#ca6675!important}.week-sat{color:#5f89b4!important}.calendar-day{position:relative;min-height:76px;padding:7px 3px 6px;border:1px solid rgba(0,0,0,.08);border-radius:12px;background:#fbf9fa;text-align:center;color:var(--text);cursor:pointer;overflow:hidden;appearance:none;-webkit-appearance:none}.calendar-day.no-config{cursor:default;background:#fbfafb;color:#b7afb2}.calendar-day.normal{background:#f6d7e1;border-color:#e4adbd}.calendar-day.princess{background:#ddd5ed;border-color:#bfaed8}.calendar-day.mixed{background:#f3edf0;border-color:#d7c8cf}.calendar-day.mixed:after{content:'';position:absolute;left:7px;right:7px;bottom:4px;height:4px;border-radius:99px;background:linear-gradient(90deg,var(--rose) 0 50%,var(--lav-dark) 50%)}.calendar-day-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:100%;min-height:62px}.calendar-day .date-num{display:block;width:100%;font-size:12px;font-weight:700;line-height:1}.calendar-day .slot-range{display:flex;align-items:center;justify-content:center;gap:1px;width:100%;min-height:11px;color:#725c65;font-size:9px;font-weight:700;line-height:1.05;white-space:nowrap;letter-spacing:-.03em}.calendar-day.princess .slot-range{color:#62537e}.calendar-day .day-status{display:block;width:100%;margin:0;font-size:24px;line-height:1;font-weight:700;color:var(--rose-dark)}.calendar-day.princess .day-status{color:#6f5a9a}.calendar-day.mixed .day-status{color:#7d5365}.calendar-day .crown{position:absolute;top:3px;right:4px;font-size:10px}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.section-head h2{margin:4px 0 0;color:var(--rose-dark);font-family:'Shippori Mincho',serif;font-size:21px}.step-label{display:inline-block;padding:5px 12px;border-radius:999px;background:var(--rose-dark);color:#fff;font-size:11px}.section-note{margin:6px 0 12px;color:var(--muted);font-size:13px}.text-button{border:0;background:transparent;color:var(--rose-dark);cursor:pointer}.time-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.time-button{border:1px solid var(--border);border-radius:14px;background:#fff;padding:12px 8px;color:var(--text);cursor:pointer}.time-button b{display:block;font-size:17px;color:var(--rose-dark)}.time-button .state{display:block;margin-top:4px;font-size:19px;font-weight:700}.time-button.risk{background:var(--gold-soft);border-color:var(--gold)}.time-button.phone{background:#edf4ef;border-color:#a8bcad;color:var(--green)}.time-button.mail{background:var(--blue-soft);border-color:#adc0d0;color:var(--blue)}.time-button.closed{background:#f1eff0;color:#9c9498;cursor:default}.room-risk-note{margin:12px 0 0;padding:10px;border-radius:10px;background:var(--gold-soft);font-size:12px;color:#70551c}.plan-list{display:grid;gap:10px}.plan-card{border:1px solid rgba(199,106,130,.28);border-radius:16px;padding:15px;background:#fff;cursor:pointer;text-align:left}.plan-card:hover{border-color:var(--rose)}.plan-card h3{margin:0;color:var(--rose-dark);font-size:17px}.plan-card .plan-price{margin-top:8px;font-size:19px;font-weight:700;color:var(--rose-dark)}.selection-summary{padding:13px;border:1px solid var(--border);border-radius:14px;background:#fff8fa;margin-bottom:14px;line-height:1.7}.form-grid{display:grid;gap:12px}.two-column{grid-template-columns:1fr}.field{display:block;font-size:14px;font-weight:700}.field.full{grid-column:1/-1}.field input,.field textarea,.field select{width:100%;margin-top:6px;border:1px solid #dacbd1;border-radius:12px;padding:11px 12px;background:#fff;color:var(--text);outline:0}.field textarea{min-height:92px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--rose);box-shadow:0 0 0 3px rgba(199,106,130,.12)}.field small{display:block;margin-top:4px;color:#8b7a81;font-weight:400}.required{margin-left:5px;color:#c84b62;font-size:11px}.field-group{margin:16px 0 0;border:0;padding:0}.field-group legend{font-size:14px;font-weight:700;margin-bottom:8px}.group-description{margin:0 0 9px;color:#6f5d64;font-size:12px;line-height:1.7}.option-card,.check-card{display:flex;align-items:flex-start;gap:9px;margin:7px 0;padding:10px;border:1px solid #e0d4d8;border-radius:12px;background:#fff;cursor:pointer}.option-card input,.check-card input{margin-top:3px;accent-color:var(--rose-dark)}.check-card span{display:flex;flex-direction:column}.check-card small{font-weight:400;color:#7e6c73;margin-top:3px}.pair-box{margin-top:16px;padding:12px;border-radius:14px;background:#fff8fa;border:1px solid #eadce1}.inline-link{display:inline-block;margin:4px 0 10px}.privacy-note{margin:16px 0;padding:11px 12px;border-radius:12px;background:#f9f5f7;color:#74646a;font-size:12px;line-height:1.7}.primary-button,.secondary-button,.secondary-link{border:0;border-radius:13px;padding:12px 18px;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.primary-button{background:linear-gradient(135deg,var(--rose-dark),var(--rose));color:#fff}.secondary-button{background:#eee7ea;color:#66565c}.secondary-link{background:#fff;color:var(--rose-dark);border:1px solid rgba(168,63,95,.32)}.full-button{width:100%;margin-top:4px}.button-row{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}.confirm-summary{border:1px solid var(--border);border-radius:15px;overflow:hidden}.confirm-row{display:grid;grid-template-columns:130px 1fr;gap:9px;padding:10px 12px;border-bottom:1px solid #f0e6e9;background:#fff}.confirm-row:nth-child(odd){background:#fff8fa}.confirm-row:last-child{border-bottom:0}.confirm-row strong{color:var(--rose-dark)}.captcha-wrap{margin-top:14px}.field-error{display:block;color:#b54459;font-size:12px;font-weight:700;margin-top:5px;min-height:0}.input-error{border-color:#c44e63!important;box-shadow:0 0 0 3px rgba(196,78,99,.10)!important}.error-banner{margin-bottom:12px;padding:11px;border:1px solid #dfa7b4;background:#fff0f3;color:#9d3d53;border-radius:12px;font-weight:700;font-size:13px}.success-card{text-align:center;padding:8px 4px}.success-mark{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 12px;background:var(--rose-soft);color:var(--rose-dark);font-size:27px}.success-card h2{font-family:'Shippori Mincho',serif;color:var(--rose-dark)}.important-alert{margin:15px 0;padding:13px;border:1px solid #e2a6b3;background:#fff0f3;color:#943b50;border-radius:12px;font-weight:700}.contact-guide{text-align:left;margin:15px auto;padding:12px;border-radius:12px;background:#fff8fa;max-width:600px;line-height:1.8}.muted{color:#7d6e74;font-size:12px}.success-links{justify-content:center}.loading-overlay{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:999;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;padding:9px 14px;border:1px solid rgba(168,63,95,.18);border-radius:999px;background:rgba(255,250,252,.96);box-shadow:0 8px 24px rgba(74,61,66,.16);color:var(--rose-dark);font-size:12px;font-weight:700;white-space:nowrap;pointer-events:none}.spinner{width:17px;height:17px;border:2px solid #efdce2;border-top-color:var(--rose-dark);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:1000;padding:11px 16px;border-radius:999px;background:#4b3c42;color:#fff;box-shadow:0 8px 20px rgba(0,0,0,.18);font-size:13px}
@media(min-width:680px){.app-shell{padding:22px 18px 80px}.hero-card,.content-card{padding:20px}.time-list{grid-template-columns:repeat(4,minmax(0,1fr))}.plan-list{grid-template-columns:repeat(2,minmax(0,1fr))}.two-column{grid-template-columns:1fr 1fr}.deadline-list>div{grid-template-columns:180px 1fr}.calendar-day{min-height:84px}.calendar-day-inner{min-height:68px}.calendar-day .slot-range{font-size:10px}.calendar-day .day-status{font-size:27px}}
@media(max-width:420px){.deadline-list>div{grid-template-columns:1fr;gap:2px}.banner-area{border-radius:14px}.calendar-wrap{padding:7px}.calendar-week,.calendar-grid{gap:3px}.calendar-day{min-height:74px;border-radius:9px;padding-left:2px;padding-right:2px}.calendar-day-inner{min-height:60px;gap:2px}.calendar-day .slot-range{min-height:18px;flex-direction:column;gap:0;font-size:8px;line-height:1}.calendar-day .day-status{font-size:21px}.confirm-row{grid-template-columns:1fr;gap:2px}.primary-button,.secondary-button,.secondary-link{width:100%}}
