.om-booking{font-family:inherit;color:#242424;background:#fff;padding:24px 16px;margin:24px 0;border:1px solid #e2e2e2;border-radius:12px;scroll-margin-top:85px;line-height:1.65;font-size:15px}.om-booking *{box-sizing:border-box}.om-booking [hidden]{display:none!important}.om-booking h2{font-size:21px!important;line-height:1.5;margin:0 0 6px!important;padding:0!important;border:0!important;background:none!important}.om-booking h3{font-size:19px!important;padding:0 0 10px!important;margin:28px 0 15px!important;border-bottom:2px solid #1370df!important;background:none!important}.om-booking p{margin:10px 0}.om-booking-lead{font-weight:700;color:#0966ce}.om-booking-today{font-size:13px;background:#f2f7fc;padding:12px;border-radius:6px}.om-booking a{color:#0868d6}.om-admin-preview{background:#fff3c2;padding:10px}.omb-steps{display:flex;margin:24px 0;gap:5px}.omb-steps span{flex:1;text-align:center;background:#f0f0f0;color:#777;padding:8px 0;font-weight:bold}.omb-steps .is-active{background:#1269d6;color:white}.omb-months{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}.om-booking button{font:inherit;cursor:pointer;touch-action:manipulation}.omb-months button{border:1px solid #ddd;background:#eee;padding:10px 0;color:#555;border-radius:5px 5px 0 0}.omb-months .is-selected{background:#fff;border-top:3px solid #d76161;color:#c14646;font-weight:700}.omb-month-nav{display:flex;justify-content:space-between;align-items:center;padding:12px 0}.omb-month-nav button{width:42px;height:38px;border:1px solid #ddd;background:#fff;color:#444;font-size:26px;border-radius:4px}.omb-month-nav button:disabled{opacity:.3}.omb-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid #ddd;border-top:1px solid #ddd}.omb-days{grid-template-columns:repeat(7,minmax(0,1fr))}.omb-weekday{text-align:center;padding:7px 0;border-bottom:1px solid #ddd;border-right:1px solid #ddd;font-size:13px}.omb-week-0{color:#d65f5f}.omb-week-6{color:#548ac8}.omb-days .omb-day,.omb-empty{min-width:0;border:0;border-radius:0;border-right:1px solid #ddd;border-bottom:1px solid #ddd;background:#fff;min-height:74px;padding:5px 0;text-align:center;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.3;color:#333}.omb-days .omb-day.is-past,.omb-empty{background:#f3f3f3;color:#bbb}.omb-day-number{font-size:12px}.omb-availability{font-size:22px;color:#cf6262;font-weight:700}.is-past .omb-availability{color:#ccc}.omb-day-price{font-size:11px;letter-spacing:-.4px}.omb-days .is-selected{background:#fff0ee;box-shadow:inset 0 0 0 2px #d55a56}.omb-calendar-key{display:flex;justify-content:space-between;font-size:11px;color:#777}.omb-calendar-key span:first-child{color:#c65555}.omb-field{display:block!important;margin:19px 0!important;font-weight:700;font-size:14px}.omb-field small{font-size:11px;font-weight:400;display:block;color:#777}.omb-required{font-size:10px;color:white;background:#d56262;padding:2px 5px;border-radius:3px;margin-left:4px;vertical-align:middle}.om-booking .wpcf7-form-control-wrap{display:block}.om-booking input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=hidden]),.om-booking select,.om-booking textarea{display:block;width:100%;max-width:100%;min-height:46px;padding:10px 12px;border:1px solid #ccc;border-radius:5px;background:#fff;color:#222;font-family:inherit;font-size:16px;font-weight:400;margin-top:7px;box-shadow:none}.om-booking input[type=date]{min-width:0}.om-booking textarea{height:110px}.omb-name{display:grid;grid-template-columns:1fr 1fr;gap:12px}.omb-counter-row{display:flex;justify-content:space-between;align-items:center;padding:17px 0;border-bottom:1px solid #e5e5e5;gap:8px}.omb-counter-row label{font-size:14px;font-weight:700}.omb-counter-row small{display:block;font-size:11px;font-weight:400;color:#777}.omb-counter-row strong{display:block;font-size:14px}.omb-counter{display:flex;align-items:center;gap:0;flex-shrink:0}.omb-counter .wpcf7-form-control-wrap{width:45px}.om-booking .omb-counter input{padding:0!important;margin:0!important;border-radius:0!important;text-align:center!important;height:40px!important;min-height:40px!important;appearance:textfield;-moz-appearance:textfield}.omb-counter input::-webkit-inner-spin-button{appearance:none}.omb-counter button{width:32px;height:40px;border:1px solid #ccc;background:#f7f7f7;color:#333;padding:0;font-size:19px}.omb-total{background:#fff7ed;border:1px solid #efd4b1;border-radius:6px;padding:16px;margin:22px 0;display:grid;grid-template-columns:1fr auto;align-items:center}.omb-total span{font-size:13px;font-weight:bold}.omb-total strong{font-size:25px;color:#d95629}.omb-total small{grid-column:1/-1;text-align:right;font-size:12px}.omb-gender{border:0;padding:0;margin:20px 0}.omb-gender legend{font-weight:700;font-size:14px}.om-booking .wpcf7-list-item{margin:8px 20px 0 0}.om-booking input[type=radio],.om-booking input[type=checkbox]{width:19px;height:19px;vertical-align:middle;accent-color:#1269d6}.omb-conditions{font-size:12px;padding:15px;background:#f7f7f7;margin:20px 0}.omb-conditions .wpcf7-list-item{margin:0}.om-booking .omb-primary{display:block;width:100%;background:#1168d6;color:white;border:0;border-radius:7px;min-height:54px;padding:14px 9px;font-family:inherit;font-size:16px;font-weight:700;line-height:1.4;text-align:center;cursor:pointer;margin:12px 0}.om-booking .omb-primary:disabled{opacity:.55;cursor:wait}.omb-back{width:100%;padding:12px;border:1px solid #ccc;border-radius:6px;color:#555;background:white}.omb-summary{margin:15px 0}.omb-summary dt{font-size:12px;color:#777;padding-top:12px}.omb-summary dd{margin:0;padding-bottom:12px;border-bottom:1px solid #eee;overflow-wrap:anywhere;font-size:15px}.omb-review,.omb-complete{scroll-margin-top:90px}.omb-error{padding:13px;background:#fff0f0;color:#a32424;border:1px solid #eebaba;margin:15px 0}.omb-complete{text-align:center;padding:20px 0}.omb-check{width:60px;height:60px;line-height:60px;border-radius:50%;background:#e7f6ee;color:#2b995c;font-size:35px;margin:auto}.omb-receipt{white-space:pre-line;text-align:left;padding:14px;background:#f7f7f7;font-size:14px}.om-booking .wpcf7-response-output{font-size:13px;margin:15px 0!important;padding:12px!important}.om-booking .wpcf7-not-valid-tip{font-size:12px}.om-booking :focus-visible{outline:3px solid #8dc9ff;outline-offset:2px}@media(min-width:600px){.om-booking{padding:28px}.omb-day-price{font-size:13px}.omb-days .omb-day{min-height:82px}}

/* Keep Safari controls and both name labels inside their grid cells. */
.om-booking .omb-name{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;margin:19px 0!important}
.om-booking .omb-name>.omb-field{margin:0!important;padding:0!important;min-width:0;display:flex!important;flex-wrap:wrap;align-items:center;align-content:start;gap:0 4px;line-height:24px!important}
.om-booking .omb-name>.omb-field>.omb-required{margin:0!important;line-height:16px}
.om-booking .omb-name .wpcf7-form-control-wrap{flex:0 0 100%;width:100%;min-width:0;margin:0!important}
.om-booking .omb-field,.om-booking .wpcf7-form-control-wrap{min-width:0;max-width:100%;box-sizing:border-box!important}
.om-booking .omb-field input{width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important}
.om-booking input[name="om-date"]{appearance:none;-webkit-appearance:none;display:block!important;background:#f5f8fc!important;text-align:left!important;overflow:hidden;text-overflow:ellipsis}
.om-booking input[name="your-age"]{max-width:150px!important}

/* Calendar and booking panels follow the plan page's restrained red/grey style. */
.op-plan .om-booking{margin:0;padding:26px 15px;border:0;border-top:12px solid #fafafa;border-radius:0;font-size:14px;line-height:1.65}
.op-plan .om-booking>h2{font-size:20px!important;line-height:1.5;margin-bottom:14px!important;color:#333}
.op-plan .om-booking-lead{font-size:12px;font-weight:400;color:#666;line-height:1.9;margin:0 0 12px!important}
.op-plan .om-booking-today{font-size:12px;background:#faf7f5;border-radius:0;margin:0 0 18px!important;padding:10px 12px;border-left:3px solid #bb5853}
.op-plan .omb-months{grid-template-columns:1.8fr repeat(5,1fr);gap:0;margin-bottom:0;border-bottom:2px solid #ba5854}
.op-plan .omb-months button{min-height:44px;border:0;border-right:1px solid #fff;border-radius:0;padding:8px 0;background:#f0f0f0;font-size:13px}
.op-plan .omb-months .is-selected{background:#ba5854;color:#fff;font-weight:700}
.op-plan .omb-month-nav{padding:8px 0;font-size:14px}
.op-plan .omb-month-nav button{border:0;height:32px;font-size:24px;color:#777}
.op-plan .omb-days .omb-day,.op-plan .omb-empty{min-height:65px;justify-content:flex-start;padding:4px 0}
.op-plan .omb-day-number{font-size:12px;line-height:17px}
.op-plan .omb-availability{font-weight:400;font-size:22px;line-height:24px;color:#bb5853}
.op-plan .omb-day-price{font-size:11px;line-height:15px;color:#333;letter-spacing:-.5px}
.op-plan .omb-days .omb-day.is-past,.op-plan .omb-empty{background:#f7f7f7;color:#b5b5b5}
.op-plan .omb-calendar-key{margin:12px 0 3px!important;font-size:11px;gap:5px}
.op-plan .omb-calendar-note{font-size:11px;color:#777;margin:3px 0 0!important}
.op-plan .omb-dialog{position:fixed;inset:0;width:100%;max-width:600px;height:calc(100% - 32px);height:calc(100dvh - 32px);max-height:none;margin:auto auto 0;padding:0;border:0;border-radius:8px 8px 0 0;background:white;color:#333;box-shadow:0 0 40px #0002;overflow:hidden;font:14px/1.65 Helvetica,'Hiragino Kaku Gothic Pro',Meiryo,Arial,sans-serif}
.omb-dialog::backdrop{background:rgba(0,0,0,.55)}
html:has(.omb-dialog[open]){overflow:hidden}
.op-plan .omb-dialog[open]{display:flex;flex-direction:column}
.op-plan .omb-dialog-head{flex:none;position:relative;border-bottom:1px solid #ddd;min-height:58px;display:flex;align-items:center;padding:14px 48px 14px 16px;background:white}
.op-plan .omb-dialog-head strong{font-size:16px;line-height:1.6;outline:none}
.op-plan .omb-close{position:absolute;right:5px;top:5px;width:46px;height:46px;border:0;background:white;color:#666;font-size:29px;line-height:1;padding:0}
.op-plan .omb-dialog-body{padding:0 16px calc(24px + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior-y:contain;min-height:0;flex:1;-webkit-overflow-scrolling:touch}
.op-plan .omb-steps{margin:16px 0 12px;gap:2px;font-size:11px}
.op-plan .omb-steps span{background:#f1f1f1;color:#888;padding:7px 2px;white-space:nowrap}
.op-plan .omb-steps .is-active{background:#bb5853;color:white}
.op-plan .omb-selected-date{padding:0 0 14px;margin:0!important;border-bottom:1px solid #eee;font-size:13px;font-weight:700}
.op-plan .omb-times{padding:8px 0}
.op-plan .omb-time-choice{width:100%;display:grid;grid-template-columns:70px 1fr auto;gap:8px;align-items:center;padding:18px 8px;min-height:66px;border:0;border-bottom:1px solid #ddd;background:#fff;text-align:left;color:#444}
.op-plan .omb-time-choice strong{font-size:18px}
.op-plan .omb-time-choice span:nth-child(2){color:#ba5854;font-size:13px}
.op-plan .omb-time-choice span:last-child{color:#447e9b;font-size:12px}
.op-plan .omb-time-choice:hover{background:#f9f4f3}
.op-plan .omb-change-time,.op-plan .omb-change-party{background:none;border:0;padding:12px 0;color:#437c99;text-decoration:underline;font-size:12px}
.op-plan .om-booking h3{font-size:16px!important;background:#f8f8f8!important;border:0!important;border-bottom:1px solid #ddd!important;margin:14px 0 0!important;padding:10px!important}
.op-plan .omb-counter-row{border:1px solid #e1e1e1;border-top:0;padding:18px 12px;gap:6px}
.op-plan .omb-counter-row label{font-size:13px;font-weight:400}
.op-plan .omb-counter-row label strong{font-size:17px;color:#222;margin-top:3px;line-height:1.5}
.op-plan .omb-counter-row .omb-unit-price{font-size:15px}
.op-plan .omb-counter{gap:5px}
.op-plan .omb-counter button{border:1px solid #c6d8e1;color:#4c86a4;border-radius:50%;background:#fff;width:34px;height:34px;font-size:21px;line-height:1}
.op-plan .omb-counter .wpcf7-form-control-wrap{width:30px}
.op-plan .omb-counter input{border:0!important;font-size:18px!important;font-weight:700!important;background:white!important}
.op-plan .omb-total{border:0;border-top:1px solid #ddd;border-radius:0;background:#fff;padding:16px 0 10px;margin:18px 0 0!important}
.op-plan .omb-total strong{color:#333;font-size:27px}
.op-plan .omb-total small{color:#777;font-size:11px}
.op-plan .om-booking .omb-primary{background:#bb5853;border-radius:5px;box-shadow:none;font-size:16px;margin:12px 0;min-height:54px}
.op-plan .omb-field{line-height:24px}
.op-plan .omb-field input,.op-plan .omb-field textarea{border-radius:3px}
.op-plan .omb-required{border-radius:2px;background:#bd605c;font-weight:400}
.op-plan .omb-summary dt{background:#f7f7f7;padding:8px 10px;font-weight:700;color:#555;font-size:12px}
.op-plan .omb-summary dd{padding:9px 10px 14px;line-height:1.7}
.op-plan .omb-page-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 -15px 16px;border-bottom:1px solid #ddd;background:#fafafa}
.op-plan .omb-page-nav a{text-align:center;display:block;padding:13px 2px;font-size:12px;font-weight:700;text-decoration:none;color:#555;border-right:1px solid #e5e5e5}
.op-plan .omb-page-nav a:first-child{color:#b6504c}
.op-plan .op-section>h2{margin-bottom:18px;line-height:1.5}
.op-plan .op-prose{line-height:1.9}
@media(min-width:601px){.op-plan .omb-dialog{height:90vh;height:90dvh;margin:auto;border-radius:8px}.op-plan .omb-days .omb-day{min-height:78px}.op-plan .omb-day-price{font-size:13px}}
@media(max-width:350px){.op-plan .omb-counter-row{padding:15px 8px}.op-plan .omb-counter-row .omb-unit-price{font-size:13px}.op-plan .omb-counter{gap:2px}.op-plan .omb-counter button{width:30px;height:30px}.op-plan .omb-counter-row label{font-size:12px}.op-plan .omb-counter-row small{font-size:10px}}

.op-plan .omb-days .is-past .omb-availability{color:#ccc}
.op-plan .omb-summary{display:grid;grid-template-columns:100px minmax(0,1fr);margin:16px 0!important;border-top:1px solid #ddd}
.op-plan .omb-summary dt,.op-plan .omb-summary dd{margin:0;padding:12px 10px;border-bottom:1px solid #ddd;line-height:1.7}
.op-plan .omb-summary dt{font-size:12px;background:#f7f7f7}
.op-plan .omb-summary dd{font-size:14px;white-space:pre-line;overflow-wrap:anywhere}

/* v1.3.2: 人数選択画面の料金ブロックを非表示（確認画面は表示） */
.om-booking .omb-party .omb-total{display:none !important;}

/* v1.3.3: 大人料金に通常価格の打ち消し線と割引バッジ */
.om-booking .omb-unit-price{display:flex;flex-wrap:wrap;align-items:flex-end;column-gap:10px;row-gap:2px;margin-top:4px;font-weight:400;}
.om-booking .omb-unit-price .omb-was{flex-basis:100%;color:#888;font-size:13px;text-decoration:line-through;line-height:1.2;}
.om-booking .omb-unit-price .omb-now{display:inline-flex;align-items:baseline;gap:4px;color:#222;line-height:1.1;}
.om-booking .omb-unit-price .omb-now b{font-size:26px;font-weight:800;letter-spacing:.01em;}
.om-booking .omb-unit-price .omb-now small{font-size:12px;color:#444;}
.om-booking .omb-unit-price .omb-off{font-style:normal;font-weight:800;font-size:13px;color:#c62828;border:2px solid #c62828;border-radius:3px;padding:2px 7px;line-height:1.3;align-self:center;white-space:nowrap;}
