*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;line-height:1.6}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{padding:0;list-style:none}a{color:inherit;text-decoration:none}table{border-collapse:collapse;border-spacing:0}body{color:#13213e;background:#f5f8ff;font-family:-apple-system,blinkmacsystemfont,Hiragino Kaku Gothic ProN,Hiragino Sans,Noto Sans JP,Yu Gothic,meiryo,sans-serif;font-size:15px}:focus-visible{outline-offset:2px;outline:2px solid #06a5ad}.site-header{z-index:500;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffe6;border-bottom:1px solid #e3e9f2;position:sticky;top:0}.site-header__inner{justify-content:space-between;align-items:center;gap:20px;width:min(1080px,100% - 32px);min-height:62px;margin:0 auto;display:flex}.site-header__brand{color:#061437;letter-spacing:.12em;font-size:16px;font-weight:900}.site-header__brand img{width:190px}.site-header__nav{align-items:center;gap:18px;display:flex}.site-header__user{color:#647089;font-size:12px}@media (width<=767px){.site-header__user{display:none}}.site-header__link{color:#33405a;font-size:13px;font-weight:700}.site-header__link:hover{color:#008d98}.public-layout{flex-direction:column;min-height:100vh;display:flex}.public-layout__main{flex:1;width:min(1080px,100% - 32px);margin:0 auto;padding:26px 0 64px}.public-layout__footer{color:#647089;text-align:center;border-top:1px solid #e3e9f2;padding:22px 16px;font-size:11px}.auth-layout{justify-content:center;align-items:center;min-height:100vh;padding:32px 16px;display:flex}.auth-layout__card{background:#fff;border:1px solid #e3e9f2;border-radius:22px;width:min(460px,100%);padding:36px 32px;box-shadow:0 24px 70px #071b4924}@media (width<=767px){.auth-layout__card{padding:26px 20px}}.auth-layout__brand{color:#061437;letter-spacing:.12em;margin-bottom:20px;font-size:18px;font-weight:900;display:block}.auth-layout__title{color:#061437;margin-bottom:22px;font-size:21px}.auth-layout__campaign{color:#008d98;background:#dff8f7;border:1px solid #cceef0;border-radius:12px;margin-bottom:18px;padding:11px 14px;font-size:12px;font-weight:700}.auth-layout__footer{color:#647089;border-top:1px solid #e3e9f2;margin-top:22px;padding-top:18px;font-size:13px}.auth-layout__footer a{color:#008d98;font-weight:700}.sidebar-layout{grid-template-columns:240px minmax(0,1fr);min-height:100vh;display:grid}.sidebar-layout__sidebar{color:#fff;background:linear-gradient(#081b49,#061437);flex-direction:column;display:flex}.sidebar-layout__brand{border-bottom:1px solid #ffffff1a;gap:4px;padding:22px 20px;display:grid}.sidebar-layout__brand-logo{letter-spacing:.14em;font-size:14px;font-weight:900}.sidebar-layout__brand-store{color:#aebbd5;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.sidebar-layout__nav{flex-direction:column;gap:2px;padding:12px;display:flex}.sidebar-layout__nav-item{color:#c6d0e4;text-align:left;border-radius:8px;padding:11px 12px;font-size:13px;font-weight:700;transition:background .18s,color .18s}.sidebar-layout__nav-item:hover{color:#fff;background:#ffffff14}.sidebar-layout__nav-item.is-active{color:#7fe3e2;background:#18bcc12e}.sidebar-layout__main{flex-direction:column;min-width:0;display:flex}.sidebar-layout__topbar{background:#fff;border-bottom:1px solid #e3e9f2;justify-content:space-between;align-items:center;gap:12px;min-height:58px;padding:0 24px;display:flex}.sidebar-layout__topbar-user{color:#647089;font-size:13px;font-weight:700}.sidebar-layout__menu-toggle{color:#081b49;font-size:20px;display:none}.sidebar-layout__content{flex:1;padding:26px 24px 60px}@media (width<=767px){.sidebar-layout__content{padding:18px 14px 60px}}.sidebar-layout--admin .sidebar-layout__sidebar{background:linear-gradient(#1c1436,#0d0a1e)}@media (width<=1024px){.sidebar-layout{grid-template-columns:1fr}.sidebar-layout__sidebar{z-index:900;transition:transform .25s;position:fixed;inset:0 30% 0 0;transform:translate(-105%);box-shadow:0 0 60px #0000004d}.sidebar-layout__sidebar.is-open{transform:translate(0)}.sidebar-layout__menu-toggle{display:block}}.button{cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:0 22px;font-size:14px;font-weight:700;line-height:1;transition:transform .2s,box-shadow .2s,opacity .2s;display:inline-flex}.button:hover:not(:disabled){transform:translateY(-1px)}.button:active:not(:disabled){transform:translateY(0)}.button:disabled{opacity:.55;cursor:not-allowed}.button--primary{color:#fff;background:linear-gradient(135deg,#081b49,#061437);box-shadow:0 10px 22px #081b4933}.button--teal{color:#fff;background:linear-gradient(135deg,#18bcc1,#008d98);box-shadow:0 10px 24px #06a5ad38}.button--outline{color:#081b49;background:#fff;border:1px solid #cfd8e7}.button--danger{color:#fff;background:#dc2626}.button--sm{min-height:36px;padding:0 14px;font-size:13px}.button--lg{border-radius:14px;min-height:54px;padding:0 28px;font-size:15px}.button.is-loading{pointer-events:none;opacity:.75}.button__spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:15px;height:15px;animation:.7s linear infinite button-spin}.button--outline .button__spinner{border-color:#081b49 #081b4940 #081b4940}@keyframes button-spin{to{transform:rotate(360deg)}}.text-input{color:#13213e;background:#fff;border:1px solid #d3dae7;border-radius:12px;width:100%;min-height:48px;padding:0 14px;transition:border-color .18s,box-shadow .18s}.text-input:focus{border-color:#06a5ad;outline:0;box-shadow:0 0 0 4px #18aeb71c}.text-input::placeholder{color:#a2acbb}.text-input:disabled{color:#647089;background:#f1f4f8}.text-input.is-invalid{border-color:#dc2626}.password-input{position:relative}.password-input__field{padding-right:46px}.password-input__toggle{color:#647089;border-radius:8px;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.password-input__toggle svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px}.password-input__toggle:hover{color:#081b49;background:#f1f4f8}.password-checklist{gap:4px;margin-top:8px;display:grid}.password-checklist__item{color:#647089;align-items:center;gap:7px;font-size:12px;transition:color .15s;display:flex}.password-checklist__item.is-met{color:#059669;font-weight:700}.password-checklist__mark{background:#eef1f6;border-radius:50%;place-items:center;width:16px;height:16px;font-size:10px;display:inline-grid}.password-checklist__item.is-met .password-checklist__mark,.password-checklist__item.is-met .password-checklist__mark{color:#059669;background:#e6f7f1}.select{color:#13213e;background:#fff;border:1px solid #d3dae7;border-radius:12px;width:100%;min-height:48px;padding:0 14px}.select:focus{border-color:#06a5ad;outline:0;box-shadow:0 0 0 4px #18aeb71c}.select.is-invalid{border-color:#dc2626}.textarea{color:#13213e;resize:vertical;background:#fff;border:1px solid #d3dae7;border-radius:12px;width:100%;padding:12px 14px}.textarea:focus{border-color:#06a5ad;outline:0;box-shadow:0 0 0 4px #18aeb71c}.textarea.is-invalid{border-color:#dc2626}.form-field{gap:7px;display:grid}.form-field__label{color:#13213e;align-items:center;gap:7px;font-size:13px;font-weight:700;display:flex}.form-field__required{color:#dc2626;background:#fdecec;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:700}.form-field__help{color:#647089;font-size:12px}.form-field__error{color:#dc2626;font-size:12px;font-weight:700}.form{gap:20px;display:grid}.form__checkbox{color:#647089;cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.form__checkbox input{accent-color:#008d98}.form__actions{justify-content:flex-end;gap:10px;display:flex}.form__actions .button{min-width:160px}.form__row{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}@media (width<=767px){.form__row{grid-template-columns:1fr}}.card{background:#fff;border:1px solid #e3e9f2;border-radius:16px;margin-bottom:20px;box-shadow:0 8px 24px #0d2c6814}.card__header{border-bottom:1px solid #e3e9f2;justify-content:space-between;align-items:center;gap:16px;padding:16px 22px;display:flex}.card__title{color:#081b49;font-size:15px;font-weight:700}.card__actions{gap:8px;display:flex}.card__body{padding:22px}@media (width<=767px){.card__body{padding:16px}}.flash{z-index:1000;border-radius:12px;align-items:center;gap:14px;max-width:min(560px,100vw - 32px);padding:13px 18px;font-size:13px;font-weight:700;display:flex;position:fixed;top:18px;left:50%;transform:translate(-50%);box-shadow:0 24px 70px #071b4924}.flash--success{color:#fff;background:#061437}.flash--error{color:#fff;background:#dc2626}.flash__close{color:inherit;opacity:.8;font-size:16px}.flash__close:hover{opacity:1}.page-header{justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:22px;display:flex}.page-header__title{color:#061437;letter-spacing:.01em;font-size:22px}.page-header__description{color:#647089;margin-top:5px;font-size:13px}.page-header__actions{gap:8px;display:flex}@media (width<=767px){.page-header{flex-direction:column;align-items:flex-start}}.pagination{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:20px;display:flex}.pagination__item{color:#13213e;text-align:center;background:#fff;border:1px solid #e3e9f2;border-radius:8px;min-width:38px;padding:8px 12px;font-size:13px}.pagination__item:hover:not(.is-disabled,.is-active){color:#008d98;border-color:#06a5ad}.pagination__item.is-active{color:#fff;background:linear-gradient(135deg,#18bcc1,#008d98);border-color:#0000;font-weight:700}.pagination__item.is-disabled{color:#b6bfcd}.modal{z-index:1100;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal__overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#040d2a8a;position:absolute;inset:0}.modal__panel{background:#fff;border-radius:20px;width:min(560px,100%);max-height:calc(100vh - 48px);position:relative;overflow:auto;box-shadow:0 34px 90px #05103357}.modal__head{border-bottom:1px solid #e3e9f2;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px 14px;display:flex}.modal__title{color:#061437;font-size:18px}.modal__close{color:#647089;font-size:20px}.modal__close:hover{color:#13213e}.modal__body{padding:22px 24px 26px}@media (width<=767px){.modal{align-items:flex-end;padding:0}.modal__panel{border-radius:20px 20px 0 0}}.confirm-dialog__message{color:#13213e;font-size:14px;line-height:1.8}.confirm-dialog__actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.data-table{overflow-x:auto}.data-table__table{width:100%;font-size:13px}.data-table__th{color:#647089;text-align:left;white-space:nowrap;border-bottom:1px solid #e3e9f2;padding:10px 12px;font-size:12px;font-weight:700}.data-table__td{vertical-align:middle;border-bottom:1px solid #e3e9f2;padding:13px 12px}.data-table__tr:last-child .data-table__td{border-bottom:0}.status-badge{white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-block}.status-badge--confirmed{color:#059669;background:#e6f7f1}.status-badge--cancelled{color:#647089;background:#f1f4f8}.usage-meter__head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.usage-meter__label{color:#647089;font-size:12px;font-weight:700}.usage-meter__text{color:#081b49;font-size:14px;font-weight:700}.usage-meter__bar{background:#e8f0f5;border-radius:999px;height:8px;overflow:hidden}.usage-meter__fill{border-radius:inherit;background:linear-gradient(90deg,#18bcc1,#008d98);height:100%;transition:width .3s}.usage-meter.is-warning .usage-meter__fill{background:linear-gradient(90deg,#f6bd4f,#d97706)}.usage-meter.is-over .usage-meter__fill{background:#dc2626}.schedule-editor{gap:14px;display:grid}.schedule-editor__row{background:#fbfcfe;border:1px solid #e3e9f2;border-radius:12px;grid-template-columns:120px minmax(0,1fr);gap:16px;padding:14px;display:grid}@media (width<=767px){.schedule-editor__row{grid-template-columns:1fr;gap:8px}}.schedule-editor__day{flex-direction:column;gap:4px;padding-top:10px;display:flex}.schedule-editor__day-label{color:#081b49;font-size:14px;font-weight:700}.schedule-editor__closed{color:#647089;font-size:12px}.schedule-editor__windows{gap:8px;display:grid}.schedule-editor__window{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.schedule-editor__window .text-input,.schedule-editor__window .select{width:auto;min-height:42px}.schedule-editor__tilde{color:#647089}.schedule-editor__capacity{color:#647089;align-items:center;gap:6px;font-size:12px;display:flex}.schedule-editor__capacity .text-input{width:76px}.schedule-editor__remove{color:#647089;border-radius:50%;width:32px;height:32px;font-size:16px}.schedule-editor__remove:hover{color:#dc2626;background:#fdecec}.schedule-editor__add{color:#008d98;border-radius:8px;justify-self:start;padding:6px 10px;font-size:13px;font-weight:700}.schedule-editor__add:hover{background:#dff8f7}.empty-state{text-align:center;padding:36px 16px}.empty-state__message{color:#647089;font-size:13px}.empty-state__action{margin-top:14px}.plan-cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-bottom:18px;display:grid}.plan-select-card{background:#fff;border:1px solid #e3e9f2;border-radius:16px;gap:8px;padding:22px 20px;display:grid;box-shadow:0 8px 24px #0d2c6814}.plan-select-card.is-current{border-color:#06a5ad;box-shadow:0 0 0 3px #18bcc11f,0 8px 24px #0d2c6814}.plan-select-card__name{color:#061437;font-size:15px;font-weight:700}.plan-select-card__price{color:#061437;letter-spacing:-.01em;font-size:26px;font-weight:700}.plan-select-card__price small{color:#647089;margin-left:4px;font-size:11px;font-weight:400}.plan-select-card__limit{color:#008d98;font-size:13px;font-weight:700}.plan-select-card__current{color:#008d98;text-align:center;background:#dff8f7;border-radius:12px;padding:10px 0;font-size:13px;font-weight:700}.plan-campaign-note{color:#008d98;background:#dff8f7;border:1px solid #cceef0;border-radius:12px;margin-bottom:18px;padding:12px 16px;font-size:13px;font-weight:700}.table-actions{gap:12px;display:inline-flex}.table-actions__link{color:#008d98;font-size:13px;font-weight:700}.table-actions__link:hover{text-decoration:underline}.table-actions__link--danger{color:#dc2626}.menu-thumb{object-fit:cover;border-radius:8px;width:52px;height:52px}.menu-thumb--empty{color:#647089;background:#f1f4f8;place-items:center;font-size:10px;display:grid}.menu-image-preview{align-items:center;gap:14px;margin-bottom:10px;display:flex}.menu-image-preview img{object-fit:cover;border:1px solid #e3e9f2;border-radius:12px;width:88px;height:88px}.detail-list{display:grid}.detail-list__row{border-bottom:1px solid #e3e9f2;grid-template-columns:180px minmax(0,1fr);gap:16px;padding:13px 0;display:grid}.detail-list__row:last-child{border-bottom:0}@media (width<=767px){.detail-list__row{grid-template-columns:1fr;gap:3px}}.detail-list__label{color:#647089;font-size:13px}.detail-list__value{overflow-wrap:anywhere;font-size:14px;font-weight:700}.filter-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;display:flex}.filter-bar .text-input,.filter-bar .select{width:auto;min-height:42px}.time-range{align-items:center;gap:8px;display:flex}.time-range .text-input,.time-range .select{width:auto;min-height:44px}.form-errors{background:#fdecec;border:1px solid #f6c6c6;border-radius:12px;padding:12px 16px}.dashboard-note{color:#647089;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;font-size:13px;display:flex}.dashboard-note a{color:#008d98;overflow-wrap:anywhere;font-weight:700}.dashboard-copy{color:#081b49;border:1px solid #e3e9f2;border-radius:8px;padding:4px 10px;font-size:12px;font-weight:700}.dashboard-copy:hover{color:#008d98;border-color:#06a5ad}.mypage__reservation{justify-content:space-between;align-items:center;gap:16px;display:flex}@media (width<=767px){.mypage__reservation{flex-direction:column;align-items:flex-start}}.mypage__reservation-main{gap:3px;display:grid}.mypage__reservation-store{color:#061437;font-size:15px;font-weight:700}.mypage__reservation-datetime{color:#008d98;font-size:14px;font-weight:700}.mypage__reservation-menu{color:#647089;font-size:13px}.mypage__reservation-side{align-items:center;gap:14px;display:flex}.mypage__reservation-link{color:#008d98;font-size:13px;font-weight:700}.mypage__reservation-link:hover{text-decoration:underline}.kpi-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;display:grid}.kpi-card{background:#fff;border:1px solid #e3e9f2;border-radius:16px;gap:8px;padding:20px;display:grid;box-shadow:0 8px 24px #0d2c6814}.kpi-card__label{color:#647089;font-size:12px;font-weight:700}.kpi-card__value{color:#061437;letter-spacing:.01em;font-size:26px}.p-booking{--navy-950:#07143f;--navy-900:#0b1c57;--navy-800:#12296d;--navy-700:#1e3a84;--teal-700:#047f93;--teal-600:#0699a9;--teal-500:#18aeb7;--teal-100:#e2f7f8;--teal-050:#f1fbfb;--ink-900:#15213b;--ink-700:#43506a;--ink-600:#5c6880;--ink-500:#768197;--line:#e4e9f1;--line-strong:#d3dae7;--surface-alt:#f7f9fc;--surface-muted:#f1f4f8;--warning:#f4a01e;--danger:#d34949;--shadow-xs:0 1px 2px #0f1f4a0a;--shadow-sm:0 8px 24px #0f1f4a12;--shadow-md:0 18px 48px #0f1f4a1c;--ease:cubic-bezier(.2, .7, .2, 1);--header-height:76px;min-height:100vh;color:var(--ink-900);font-feature-settings:"palt";background:radial-gradient(circle at 2% 2%,#18aeb712,#0000 26rem),linear-gradient(#fff 0,#fbfcfe 52%,#f7f9fc 100%)}.p-booking svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:1.15em;height:1.15em}.p-booking .app-header{z-index:50;height:var(--header-height);-webkit-backdrop-filter:blur(18px)saturate(140%);backdrop-filter:blur(18px)saturate(140%);background:#ffffffe0;border-bottom:1px solid #d5dde9cc;position:sticky;inset-block-start:0}.p-booking .header-inner{justify-content:space-between;align-items:center;gap:24px;width:min(1440px,100% - 48px);height:100%;margin:0 auto;display:flex}.p-booking .brand{flex:none;align-items:center;display:inline-flex}.p-booking .brand img{width:252px;height:auto}.p-booking .header-nav{color:var(--ink-700);align-items:center;gap:28px;font-size:14px;font-weight:700;display:flex}.p-booking .header-nav a{transition:color .2s var(--ease)}.p-booking .header-nav a:hover{color:var(--teal-700)}.p-booking .header-actions{align-items:center;gap:10px;display:flex}.p-booking .bk-button{letter-spacing:.02em;cursor:pointer;min-height:46px;transition:transform .2s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease), border-color .2s var(--ease);border:0;border-radius:12px;justify-content:center;align-items:center;gap:9px;padding:0 20px;font-weight:800;display:inline-flex}.p-booking .bk-button:hover{transform:translateY(-1px)}.p-booking .bk-button:active{transform:translateY(0)}.p-booking .bk-button--outline{border:1px solid var(--line-strong);color:var(--navy-900);background:#fff}.p-booking .bk-button--outline:hover{border-color:var(--navy-700);box-shadow:var(--shadow-xs)}.p-booking .bk-button--primary{color:#fff;background:linear-gradient(135deg, var(--navy-800), var(--navy-950));box-shadow:0 10px 22px #0b1c5733}.p-booking .bk-button--primary:hover{box-shadow:0 14px 28px #0b1c5742}.p-booking .bk-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.p-booking .page-shell{width:min(1440px,100% - 48px);margin:0 auto;padding:28px 0 64px}.p-booking .breadcrumbs{color:var(--ink-500);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:22px;font-size:12px;display:flex}.p-booking .breadcrumbs svg{width:15px;height:15px}.p-booking .breadcrumbs .separator{opacity:.55}.p-booking .venue-hero{grid-template-columns:180px minmax(0,1fr) auto;align-items:center;gap:24px;margin-bottom:30px;display:grid}.p-booking .venue-photo{aspect-ratio:16/10;object-fit:cover;width:180px;box-shadow:var(--shadow-sm);border:1px solid #e1e7f0e6;border-radius:20px}.p-booking .venue-copy h1{letter-spacing:.02em;color:var(--navy-950);margin:0 0 10px;font-size:clamp(24px,2vw,34px);line-height:1.3}.p-booking .venue-meta{color:var(--ink-600);flex-wrap:wrap;align-items:center;gap:10px 22px;font-size:13px;display:flex}.p-booking .meta-item{align-items:center;gap:7px;display:inline-flex}.p-booking .meta-item svg{color:var(--navy-700)}.p-booking .venue-badge{background:var(--teal-050);color:var(--teal-700);white-space:nowrap;border:1px solid #cceef0;border-radius:999px;align-self:start;margin-top:4px;padding:9px 12px;font-size:12px;font-weight:800}.p-booking .closed-banner{color:var(--danger);background:#fdf4f4;border:1px solid #f3d2d2;border-radius:14px;margin-bottom:24px;padding:16px 20px;font-size:13px;font-weight:800}.p-booking .booking-layout{grid-template-columns:minmax(0,1fr) 390px;align-items:start;gap:34px;display:grid}.p-booking .main-column{min-width:0}.p-booking .stepper{border:1px solid var(--line);box-shadow:var(--shadow-xs);background:#ffffffd1;border-radius:18px;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 36px;padding:18px 22px;display:grid}.p-booking .step{min-width:0;color:var(--ink-500);align-items:center;gap:10px;font-size:13px;font-weight:800;display:flex;position:relative}.p-booking .step:not(:last-child):after{content:"";background:repeating-linear-gradient(90deg, var(--line-strong) 0 4px, transparent 4px 9px);flex:1;min-width:16px;height:1px;margin:0 12px}.p-booking .step.is-active{color:var(--navy-900)}.p-booking .step.is-complete{color:var(--teal-700)}.p-booking .step-number{width:38px;height:38px;color:var(--ink-600);border:1px solid var(--line-strong);box-shadow:var(--shadow-xs);background:#fff;border-radius:50%;flex:0 0 38px;place-items:center;display:grid}.p-booking .step.is-active .step-number,.p-booking .step.is-complete .step-number{color:#fff;background:linear-gradient(135deg, var(--teal-500), var(--teal-700));border-color:#0000;box-shadow:0 8px 16px #0699a933}.p-booking .section-block{margin-top:36px}.p-booking .section-block:first-of-type{margin-top:0}.p-booking .section-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:16px;display:flex}.p-booking .section-heading h2{color:var(--ink-900);margin:0;font-size:18px}.p-booking .section-title-wrap{align-items:center;gap:12px;display:flex}.p-booking .section-title-wrap:before{content:"";background:linear-gradient(180deg, var(--teal-500), var(--teal-700));border-radius:999px;width:4px;height:24px}.p-booking .section-help{color:var(--ink-500);font-size:12px}.p-booking .service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.p-booking .service-card{border:1px solid var(--line);text-align:left;cursor:pointer;min-width:0;transition:transform .22s var(--ease), border-color .22s var(--ease), box-shadow .22s var(--ease), background .22s var(--ease);background:#ffffffeb;border-radius:18px;padding:16px;position:relative}.p-booking .service-card:hover{box-shadow:var(--shadow-sm);border-color:#b7dfe3;transform:translateY(-2px)}.p-booking .service-card.is-selected{border-color:var(--teal-600);box-shadow:0 0 0 2px #18aeb714, var(--shadow-sm);background:linear-gradient(#fff,#f9ffff)}.p-booking .service-card.is-selected .service-selected-mark{display:grid}.p-booking .service-card h3{color:var(--ink-900);margin:0 28px 7px 0;font-size:15px;line-height:1.4}.p-booking .service-selected-mark{color:#fff;background:var(--teal-600);border-radius:50%;place-items:center;width:26px;height:26px;display:none;position:absolute;top:12px;right:12px;box-shadow:0 5px 12px #0699a938}.p-booking .service-selected-mark svg{stroke-width:2.4px;width:15px;height:15px}.p-booking .service-top{grid-template-columns:78px minmax(0,1fr);align-items:center;gap:13px;display:grid}.p-booking .service-image{object-fit:cover;background:var(--surface-muted);border-radius:14px;width:78px;height:78px}.p-booking .service-image--placeholder{color:var(--teal-700);background:var(--teal-050);place-items:center;font-size:22px;font-weight:800;display:grid}.p-booking .service-duration{color:var(--ink-500);align-items:center;gap:5px;font-size:12px;display:flex}.p-booking .service-price{color:var(--navy-950);margin-top:8px;font-size:18px;font-weight:800}.p-booking .service-description{min-height:50px;color:var(--ink-600);margin:14px 0 0;font-size:12px;line-height:1.75}.p-booking .datetime-grid{grid-template-columns:minmax(330px,.9fr) minmax(390px,1.1fr);gap:16px;display:grid}.p-booking .panel-card{border:1px solid var(--line);box-shadow:var(--shadow-xs);background:#ffffffed;border-radius:18px}.p-booking .calendar-card{padding:18px}.p-booking .calendar-head{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.p-booking .calendar-title{color:var(--ink-900);align-items:center;gap:8px;font-weight:800;display:flex}.p-booking .icon-button{width:38px;height:38px;color:var(--ink-600);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:11px;place-items:center;display:grid}.p-booking .icon-button:hover{background:var(--surface-alt);border-color:var(--line)}.p-booking .icon-button:disabled{opacity:.4;cursor:not-allowed}.p-booking .weekdays,.p-booking .calendar-grid{text-align:center;grid-template-columns:repeat(7,1fr);display:grid}.p-booking .weekdays{margin-bottom:7px}.p-booking .weekday{color:var(--ink-500);padding:7px 0;font-size:11px;font-weight:800}.p-booking .weekday:first-child{color:var(--danger)}.p-booking .weekday:last-child{color:#3271d4}.p-booking .calendar-day{aspect-ratio:1;width:min(42px,100%);color:var(--ink-700);cursor:pointer;transition:background .18s var(--ease), color .18s var(--ease);background:0 0;border:0;border-radius:50%;margin:2px auto;font-size:13px;position:relative}.p-booking .calendar-day:hover:not(:disabled){background:var(--teal-050);color:var(--teal-700)}.p-booking .calendar-day.is-outside{color:#bdc5d2}.p-booking .calendar-day:disabled{color:#cdd3dd;cursor:not-allowed;text-decoration:line-through}.p-booking .calendar-day.is-sunday:not(:disabled){color:var(--danger)}.p-booking .calendar-day.is-saturday:not(:disabled){color:#3271d4}.p-booking .calendar-day.is-today:not(.is-selected):after{content:"";background:var(--teal-600);border-radius:50%;width:4px;height:4px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.p-booking .calendar-day.is-selected{background:linear-gradient(135deg, var(--teal-500), var(--teal-700));box-shadow:0 7px 15px #0699a93b;color:#fff!important}.p-booking .slots-card{padding:20px;position:relative}.p-booking .slots-card.is-loading:after{content:"";background:#ffffff8c;border-radius:18px;position:absolute;inset:0}.p-booking .slots-header{margin-bottom:16px}.p-booking .slots-date{color:var(--ink-900);font-weight:800}.p-booking .slots-subtitle{color:var(--ink-500);margin-top:5px;font-size:12px}.p-booking .slot-groups{gap:18px;display:grid}.p-booking .slot-group-label{color:var(--ink-600);margin:0 0 9px;font-size:12px;font-weight:800}.p-booking .slots-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;display:grid}.p-booking .time-slot{min-height:44px;color:var(--teal-700);cursor:pointer;transition:background .18s var(--ease), color .18s var(--ease), border-color .18s var(--ease), transform .18s var(--ease);background:#fff;border:1px solid #b9dfe3;border-radius:10px;font-weight:800}.p-booking .time-slot:hover:not(:disabled){background:var(--teal-050);transform:translateY(-1px)}.p-booking .time-slot.is-selected{color:#fff;border-color:var(--teal-600);background:linear-gradient(135deg, var(--teal-500), var(--teal-700));box-shadow:0 7px 14px #0699a933}.p-booking .time-slot:disabled{color:#aeb6c4;cursor:not-allowed;background:#f5f7fa;border-color:#e6eaf0;text-decoration:line-through}.p-booking .slots-empty{color:var(--ink-500);padding:20px 0;font-size:13px}.p-booking .slot-legend{border-top:1px solid var(--line);color:var(--ink-500);flex-wrap:wrap;gap:18px;margin-top:16px;padding-top:14px;font-size:11px;display:flex}.p-booking .legend-item{align-items:center;gap:6px;display:flex}.p-booking .legend-dot{background:var(--teal-600);border-radius:50%;width:8px;height:8px}.p-booking .legend-dot.closed{background:#c8ced9}.p-booking .info-strip{color:var(--ink-600);background:linear-gradient(135deg,#f8ffff,#f4fbfd);border:1px solid #dceced;border-radius:14px;align-items:flex-start;gap:10px;margin-top:18px;padding:15px 17px;font-size:12px;line-height:1.7;display:flex}.p-booking .info-strip svg{color:var(--teal-700);flex:none;margin-top:2px}.p-booking .summary-column{top:calc(var(--header-height) + 24px);position:sticky}.p-booking .summary-card{border:1px solid var(--line);box-shadow:var(--shadow-md);background:#fffffff5;border-radius:22px;padding:24px}.p-booking .summary-card h2{color:var(--navy-950);margin:0 0 22px;font-size:20px}.p-booking .summary-label{color:var(--ink-700);align-items:center;gap:9px;margin-bottom:12px;font-size:12px;font-weight:800;display:flex}.p-booking .summary-label:before{content:"";background:var(--teal-600);border-radius:999px;width:4px;height:18px}.p-booking .summary-service{grid-template-columns:88px minmax(0,1fr);align-items:center;gap:13px;display:grid}.p-booking .summary-service img,.p-booking .summary-service .summary-service-placeholder{object-fit:cover;border-radius:14px;width:88px;height:88px}.p-booking .summary-service-placeholder{color:var(--teal-700);background:var(--teal-050);place-items:center;font-size:24px;font-weight:800;display:grid}.p-booking .summary-service-name{font-size:15px;font-weight:800;line-height:1.45}.p-booking .summary-service-meta{color:var(--ink-500);align-items:center;gap:5px;margin-top:5px;font-size:12px;display:flex}.p-booking .summary-service-price{color:var(--navy-950);margin-top:6px;font-size:17px;font-weight:800}.p-booking .summary-divider{background:var(--line);height:1px;margin:20px 0}.p-booking .summary-list{gap:14px;display:grid}.p-booking .summary-row{grid-template-columns:24px minmax(0,1fr);align-items:start;gap:10px;display:grid}.p-booking .summary-row svg{color:var(--navy-700);margin-top:1px}.p-booking .summary-row-label{color:var(--ink-500);font-size:11px}.p-booking .summary-row-value{margin-top:4px;font-size:14px;font-weight:800}.p-booking .summary-total{justify-content:space-between;align-items:end;gap:20px;display:flex}.p-booking .summary-total span:first-child{font-size:13px;font-weight:800}.p-booking .summary-total strong{color:var(--navy-950);letter-spacing:.01em;font-size:27px}.p-booking .summary-cta{width:100%;min-height:58px;margin-top:20px;font-size:15px}.p-booking .summary-caption{color:var(--ink-500);justify-content:center;align-items:center;gap:7px;margin:12px 0 0;font-size:11px;display:flex}.p-booking .summary-caption svg{color:var(--teal-700)}.p-booking .trust-card{border:1px solid var(--line);background:#f9fbfef0;border-radius:18px;margin-top:14px;padding:6px 18px}.p-booking .trust-item{grid-template-columns:42px minmax(0,1fr);align-items:center;gap:11px;padding:14px 0;display:grid}.p-booking .trust-item+.trust-item{border-top:1px solid var(--line)}.p-booking .trust-icon{width:42px;height:42px;color:var(--teal-700);background:#fff;border:1px solid #dbecef;border-radius:13px;place-items:center;display:grid}.p-booking .trust-title{font-size:12px;font-weight:800}.p-booking .trust-copy{color:var(--ink-500);margin-top:4px;font-size:11px}.p-booking .side-footer{text-align:center;color:var(--ink-500);margin-top:18px;font-size:10px;line-height:2}.p-booking .side-footer-links{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.p-booking .mobile-cta{display:none}.p-booking .modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#040d2a8a;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.p-booking .bk-modal{width:min(680px,100%);max-height:min(760px,100vh - 48px);animation:p-booking-modal-in .26s var(--ease);background:#fff;border-radius:24px;overflow:auto;box-shadow:0 34px 90px #05103357}.p-booking .modal-head{z-index:1;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;justify-content:space-between;align-items:flex-start;gap:24px;padding:24px 26px 18px;display:flex;position:sticky;top:0}.p-booking .modal-head h2{color:var(--navy-950);margin:0;font-size:22px}.p-booking .modal-step{color:var(--teal-700);letter-spacing:.08em;margin-bottom:5px;font-size:11px;font-weight:800}.p-booking .modal-body{padding:24px 26px 28px}.p-booking .field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.p-booking .field{gap:8px;display:grid}.p-booking .field.full{grid-column:1/-1}.p-booking .field label{color:var(--ink-700);font-size:12px;font-weight:800}.p-booking .required{color:var(--danger);margin-left:5px;font-size:10px}.p-booking .bk-input{border:1px solid var(--line-strong);width:100%;min-height:50px;color:var(--ink-900);transition:border-color .18s var(--ease), box-shadow .18s var(--ease);background:#fff;border-radius:12px;padding:0 14px}.p-booking .bk-input:focus{border-color:var(--teal-600);outline:0;box-shadow:0 0 0 4px #18aeb71c}.p-booking .bk-input::placeholder{color:#a2acbb}.p-booking .bk-input.is-invalid{border-color:var(--danger)}.p-booking textarea.bk-input{resize:vertical;min-height:90px;padding:12px 14px}.p-booking .field-note{color:var(--ink-500);font-size:10px}.p-booking .field-error{color:var(--danger);font-size:11px;font-weight:800}.p-booking .consent{background:var(--surface-alt);color:var(--ink-600);border-radius:12px;align-items:flex-start;gap:10px;margin-top:20px;padding:14px 15px;font-size:11px;line-height:1.7;display:flex}.p-booking .consent input{accent-color:var(--teal-700);margin-top:4px}.p-booking .modal-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.p-booking .modal-actions .bk-button{min-width:150px}.p-booking .confirm-box{border:1px solid var(--line);background:var(--surface-alt);border-radius:16px;gap:13px;margin:0;padding:18px;display:grid}.p-booking .confirm-row{grid-template-columns:130px minmax(0,1fr);gap:18px;font-size:13px;display:grid}.p-booking .confirm-row dt{color:var(--ink-500)}.p-booking .confirm-row dd{text-align:right;overflow-wrap:anywhere;margin:0;font-weight:800}.p-booking .confirm-row.total{border-top:1px solid var(--line-strong);padding-top:14px;font-size:15px}.p-booking .confirm-row.total dd{color:var(--navy-950);font-size:22px}.p-booking .toast{z-index:130;opacity:0;pointer-events:none;color:#fff;box-shadow:var(--shadow-md);transition:opacity .22s var(--ease), transform .22s var(--ease);background:#07143ff0;border-radius:999px;padding:12px 18px;font-size:12px;font-weight:800;position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px)}.p-booking .toast.is-show{opacity:1;transform:translate(-50%)}@media (width<=1180px){.p-booking .header-nav{display:none}.p-booking .booking-layout{grid-template-columns:minmax(0,1fr) 350px;gap:24px}.p-booking .service-grid{grid-template-columns:1fr}.p-booking .service-description{min-height:auto}.p-booking .datetime-grid{grid-template-columns:1fr}}@media (width<=900px){.p-booking{--header-height:66px;padding-bottom:84px}.p-booking .header-inner,.p-booking .page-shell{width:min(100% - 28px,760px)}.p-booking .brand img{width:218px}.p-booking .header-actions .bk-button--outline{display:none}.p-booking .header-actions .bk-button--primary{min-height:40px;padding:0 15px;font-size:12px}.p-booking .page-shell{padding-top:18px}.p-booking .venue-hero{grid-template-columns:118px minmax(0,1fr);gap:16px}.p-booking .venue-photo{border-radius:16px;width:118px}.p-booking .venue-copy h1{font-size:23px}.p-booking .venue-meta{gap:7px 14px;font-size:11px}.p-booking .venue-badge{display:none}.p-booking .booking-layout{display:block}.p-booking .summary-column{margin-top:28px;position:static}.p-booking .summary-cta,.p-booking .summary-caption{display:none}.p-booking .mobile-cta{z-index:60;padding:12px 14px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff2;align-items:center;gap:14px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -10px 32px #0f1f4a17}.p-booking .mobile-cta-copy{flex:1;min-width:0}.p-booking .mobile-cta-label{color:var(--ink-500);font-size:10px}.p-booking .mobile-cta-price{color:var(--navy-950);margin-top:2px;font-size:17px;font-weight:900}.p-booking .mobile-cta .bk-button{min-height:50px;padding:0 18px}}@media (width<=640px){.p-booking .header-inner,.p-booking .page-shell{width:min(100% - 22px,560px)}.p-booking .brand img{width:186px}.p-booking .header-actions .bk-button--primary,.p-booking .breadcrumbs{display:none}.p-booking .venue-hero{grid-template-columns:86px minmax(0,1fr);margin-bottom:22px}.p-booking .venue-photo{border-radius:14px;width:86px}.p-booking .venue-copy h1{margin-bottom:6px;font-size:19px}.p-booking .stepper{margin-bottom:26px;padding:13px 12px}.p-booking .step{justify-content:center}.p-booking .step-label{display:none}.p-booking .step:not(:last-child):after{min-width:8px;margin:0 4px}.p-booking .step-number{flex-basis:34px;width:34px;height:34px}.p-booking .section-block{margin-top:28px}.p-booking .section-heading{align-items:center}.p-booking .section-heading h2{font-size:16px}.p-booking .section-help{display:none}.p-booking .service-card{padding:13px}.p-booking .service-top{grid-template-columns:70px minmax(0,1fr)}.p-booking .service-image{width:70px;height:70px}.p-booking .service-description{display:none}.p-booking .calendar-card,.p-booking .slots-card{padding:14px}.p-booking .calendar-day{font-size:12px}.p-booking .slots-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.p-booking .time-slot{min-height:42px;font-size:12px}.p-booking .summary-card{border-radius:18px;padding:19px}.p-booking .trust-card{padding-inline:14px}.p-booking .modal-backdrop{align-items:flex-end;padding:0}.p-booking .bk-modal{border-radius:24px 24px 0 0;width:100%;max-height:92vh}.p-booking .modal-head,.p-booking .modal-body{padding-inline:20px}.p-booking .field-grid{grid-template-columns:1fr;gap:14px}.p-booking .field.full{grid-column:auto}.p-booking .modal-actions{grid-template-columns:1fr 1fr;display:grid}.p-booking .modal-actions .bk-button{min-width:0;padding-inline:12px}.p-booking .confirm-row{grid-template-columns:1fr;gap:4px}.p-booking .confirm-row dd{text-align:left}}.reservation-result{text-align:center;padding:22px 0 8px}.reservation-result__icon{color:#fff;background:linear-gradient(135deg,#18b39d,#068a7e);border-radius:50%;place-items:center;width:76px;height:76px;margin:0 auto 20px;font-size:34px;display:grid;box-shadow:0 16px 36px #0b8f703b}.reservation-result__title{color:#07143f;font-size:24px}.reservation-result__text{color:#5c6880;max-width:480px;margin:12px auto 0;font-size:13px;line-height:1.8}.reservation-result__number{color:#047f93;letter-spacing:.04em;background:#f1fbfb;border-radius:12px;width:fit-content;margin:20px auto;padding:12px 18px;font-size:13px;font-weight:800}.reservation-result__url{align-items:center;gap:8px;max-width:520px;margin:0 auto;display:flex}.reservation-result__url input{color:#43506a;background:#f7f9fc;border:1px solid #d3dae7;border-radius:10px;flex:1;min-height:46px;padding:0 12px;font-size:12px}@keyframes p-booking-modal-in{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:none}}
