:root{--sbl-bg:#c8dfd8;--sbl-surface:#fff;--sbl-mint:#76ab9d;--sbl-mint-dark:#48766b;--sbl-orange:#e68a2e;--sbl-text:#303633;--sbl-muted:#68716d;--sbl-width:560px;--sbl-space:22px;--sbl-radius:18px;--sbl-shadow:0 18px 50px rgba(42,75,66,.12);--sbl-font:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
*{box-sizing:border-box}.sbl-wrap,.sbl-payment-page{max-width:var(--sbl-width);margin:0 auto;padding:0 0 44px;background:var(--sbl-surface);color:var(--sbl-text);font-family:var(--sbl-font);line-height:1.75;box-shadow:var(--sbl-shadow)}
.sbl-payment-page{min-height:100vh}.sbl-payment-body{margin:0;background:#c8dfd8;background-image:none}
.sbl-top{padding:18px var(--sbl-space);border-bottom:1px solid #dce9e5;display:flex;justify-content:space-between;align-items:center}.sbl-brand{font-family:Georgia,serif;letter-spacing:.08em;color:var(--sbl-mint-dark);font-size:20px}.sbl-brand img{display:block;max-width:180px;max-height:44px}.sbl-top>span:last-child{font-size:11px;color:var(--sbl-mint-dark);background:#edf7f4;padding:4px 9px;border-radius:999px;font-weight:700}
.sbl-hero{text-align:center;padding:34px var(--sbl-space) 25px;background:linear-gradient(180deg,#fff,#fbfdfc)}.sbl-hero small{font-size:11px;letter-spacing:.18em;color:var(--sbl-mint-dark);font-weight:700}.sbl-hero h1{font:inherit;font-size:26px;line-height:1.45;margin:4px 0 9px;font-weight:700}.sbl-hero p{font-size:14px;color:var(--sbl-muted);margin:0}
.sbl-steps{display:grid;grid-template-columns:repeat(3,1fr);padding:0 var(--sbl-space) 24px;background:#fbfdfc}.sbl-steps>div{text-align:center;font-size:12px;color:#66756f;position:relative;padding-top:25px}.sbl-steps>div:before{content:"";position:absolute;top:9px;left:0;right:0;height:2px;background:#dbe8e4}.sbl-steps>div:first-child:before{left:50%}.sbl-steps>div:last-child:before{right:50%}.sbl-steps span{position:absolute;top:0;left:50%;transform:translateX(-50%);width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#dbe8e4;color:#fff;z-index:1}.sbl-steps .current,.sbl-steps .done{color:var(--sbl-mint-dark);font-weight:700}.sbl-steps .current span,.sbl-steps .done span{background:var(--sbl-mint-dark)}
.sbl-section,.sbl-form,.sbl-wrap>.sbl-error,.sbl-wrap>.sbl-note,.sbl-wrap>.sbl-contact,.sbl-wrap>form,.sbl-wrap>dl{margin-left:var(--sbl-space);margin-right:var(--sbl-space)}.sbl-section{margin-top:28px;margin-bottom:34px}.sbl-section-title{display:flex;gap:10px;align-items:center;font:inherit;font-size:17px;font-weight:700;margin:0 0 16px}.sbl-section-title:before{content:"";width:5px;height:22px;border-radius:99px;background:var(--sbl-mint)}
.sbl-summary-card,.sbl-card-message{padding:18px;border:1px solid #dce9e5;border-radius:var(--sbl-radius);background:#fbf8f3}.sbl-summary-card strong,.sbl-summary-card small{display:block}.sbl-summary-card strong{font-size:18px}.sbl-summary-card small{color:var(--sbl-muted)}
.sbl-form{display:block}.sbl-field{margin-bottom:24px}.sbl-field[hidden]{display:none}.sbl-field>label,.sbl-field legend{display:block;font-size:14px;font-weight:700;margin-bottom:7px}.sbl-field fieldset{border:0;padding:0;margin:0}.sbl-help{display:block;color:var(--sbl-muted);font-size:12px;margin:-1px 0 8px}.sbl-field input[type=text],.sbl-field input[type=email],.sbl-field select{width:100%;border:1px solid #cddbd6;border-radius:12px;padding:14px;font-size:16px;background:#fff}.sbl-field input:focus,.sbl-field select:focus{outline:0;border-color:var(--sbl-mint);box-shadow:0 0 0 4px rgba(118,171,157,.13)}
.sbl-required,.sbl-optional{display:inline-block;margin-left:7px;padding:1px 7px;border-radius:999px;font-size:10px;vertical-align:2px}.sbl-required{background:#f7e9e7;color:#9e4f4f}.sbl-optional{background:#f0f2f1;color:#68716d}.sbl-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.sbl-choices label{position:relative}.sbl-choices input{position:absolute;opacity:0}.sbl-choices label>span{display:flex;min-height:54px;flex-direction:column;justify-content:center;align-items:center;border:1px solid #cddbd6;border-radius:14px;padding:12px;text-align:center;font-size:14px;font-weight:700}.sbl-choices input:checked+span{border-color:var(--sbl-mint);background:#edf7f4;color:var(--sbl-mint-dark);box-shadow:0 0 0 2px rgba(118,171,157,.13)}.sbl-choices small{font-size:11px;color:var(--sbl-muted);font-weight:400}
.sbl-price{display:flex;justify-content:space-between;align-items:center;padding:15px 2px;border-top:1px solid #dce9e5;border-bottom:1px solid #dce9e5;margin:8px 0 23px}.sbl-price span{font-size:13px;color:var(--sbl-muted)}.sbl-price strong{font-size:22px;color:var(--sbl-mint-dark)}
.sbl-agreements{display:grid;gap:12px}.sbl-agreement{border:1px solid #dce9e5;border-radius:14px;padding:15px}.sbl-agreement>div:first-child{display:flex;justify-content:space-between}.sbl-agreement>div:first-child strong{font-size:12px;color:var(--sbl-mint-dark)}.sbl-checkbox{display:grid!important;grid-template-columns:22px 1fr;gap:10px;align-items:start;margin-top:8px!important;font-size:13px!important}.sbl-checkbox input{width:21px;height:21px;margin:3px 0 0;accent-color:var(--sbl-mint)}.sbl-agreement>small{display:block;margin:8px 0 0 32px;color:var(--sbl-muted);font-size:11px}.sbl-policy-links{margin:8px 0 0 32px;display:flex;gap:5px 12px;flex-wrap:wrap}.sbl-policy-links a{font-size:11px;color:var(--sbl-mint-dark);font-weight:700}
.sbl-button{display:inline-block;border:0;border-radius:var(--sbl-button-radius,14px);background:var(--sbl-button-bg,var(--sbl-orange));color:var(--sbl-button-text,#fff)!important;padding:16px 18px;font-size:16px;font-weight:700;text-decoration:none;cursor:pointer;box-shadow:var(--sbl-button-shadow,none)}.sbl-submit{width:100%;margin-top:34px}.sbl-button:disabled{background:#c8cecb;box-shadow:none;cursor:not-allowed}.sbl-submit-help{text-align:center;color:#52615c;font-size:12px}.sbl-link-button{border:0;background:transparent;color:var(--sbl-mint-dark);text-decoration:underline;cursor:pointer;margin-top:14px}
.sbl-confirm,.sbl-bank{display:grid;grid-template-columns:minmax(110px,35%) 1fr;border:1px solid #dce9e5;border-radius:var(--sbl-radius);overflow:hidden;margin-top:20px}.sbl-confirm dt,.sbl-confirm dd,.sbl-bank dt,.sbl-bank dd{margin:0;padding:13px 15px;border-bottom:1px solid #dce9e5}.sbl-confirm dt,.sbl-bank dt{color:var(--sbl-muted);font-size:12px;background:#fbf8f3}.sbl-confirm dd,.sbl-bank dd{font-weight:700;font-size:14px}.sbl-confirm>:nth-last-child(-n+2),.sbl-bank>:nth-last-child(-n+2){border-bottom:0}
.sbl-deadline{padding:15px 17px;border-radius:14px;background:#f4faf8;border:1px solid #d6e9e3}.sbl-deadline small,.sbl-deadline strong{display:block}.sbl-deadline small{color:var(--sbl-mint-dark)}.sbl-deadline strong{font-size:20px}.sbl-warning{padding:14px 16px;border:1px solid #f0d4ad;border-radius:14px;background:#fff8ed;color:#72512b;font-size:12px}.sbl-card-message{text-align:center;background:#edf7f4}.sbl-card-message strong{display:block;color:var(--sbl-mint-dark);font-size:16px}.sbl-card-message p{font-size:13px}.sbl-contact{text-align:center;padding:17px;border:1px solid #dce9e5;border-radius:14px}.sbl-contact p{font-size:12px;color:var(--sbl-muted)}.sbl-contact a{display:inline-block;padding:9px 16px;border:1px solid #bfd0ca;border-radius:999px;color:var(--sbl-mint-dark);font-weight:700;text-decoration:none}.sbl-error{padding:12px;border:1px solid #b55757;background:#fff2f2;color:#8a2424}.sbl-note{padding:15px 17px;border-radius:14px;background:#fbf8f3;color:#5b625f;font-size:13px}.sbl-slots{display:grid;gap:1rem}.sbl-slot{padding:1rem;border:1px solid #dce9e5;border-radius:var(--sbl-radius)}
@media(max-width:600px){.sbl-wrap{box-shadow:none}.sbl-confirm,.sbl-bank{grid-template-columns:100px 1fr}.sbl-hero h1{font-size:23px}}

/* 0.4.1 visual system: stronger contrast, consistent spacing, accessible errors */
:root{--sbl-line:#b8c9c3;--sbl-muted:#52615c;--sbl-text:#26312d}.sbl-form{margin:0}.sbl-section{margin-top:30px;margin-bottom:38px}.sbl-section-title{font-size:18px}.sbl-section-title:before{background:var(--sbl-mint-dark)}.sbl-summary-card,.sbl-card-message{border:1.5px solid var(--sbl-line);padding:19px 20px}.sbl-summary-card small{font-size:13px;margin-top:4px;color:var(--sbl-muted)}
.sbl-field{margin-bottom:26px}.sbl-field>label,.sbl-field legend{font-size:15px}.sbl-help{font-size:13px;color:var(--sbl-muted)}.sbl-field input[type=text],.sbl-field input[type=email],.sbl-field select{border:1.5px solid #9dafaa;color:var(--sbl-text)}.sbl-field input:focus,.sbl-field select:focus{border-color:var(--sbl-mint-dark);box-shadow:0 0 0 4px rgba(79,128,117,.16)}.sbl-field.sbl-has-error input,.sbl-field.sbl-has-error select,.sbl-field.sbl-has-error .sbl-choices span,.sbl-agreement.sbl-has-error{border-color:#b84e4e!important;background:#fff9f9}.sbl-field-error{display:none;margin:7px 0 0;color:#a33f3f;font-size:13px;font-weight:700}.sbl-has-error>.sbl-field-error,.sbl-has-error .sbl-field-error{display:block}
.sbl-choices label>span,.sbl-agreement{border:1.5px solid var(--sbl-line)}.sbl-agreements{gap:14px}.sbl-agreement{padding:17px}.sbl-checkbox{grid-template-columns:23px 1fr;gap:11px;font-size:14px!important;line-height:1.75}.sbl-checkbox input{width:22px;height:22px;accent-color:var(--sbl-mint-dark)}.sbl-agreement>small{font-size:12px;color:var(--sbl-muted)}.sbl-policy-links a{font-size:12px;color:#356f62;text-decoration-thickness:1.5px}
.sbl-confirm,.sbl-bank{grid-template-columns:minmax(120px,35%) 1fr;border:1.5px solid var(--sbl-line);background:#fff}.sbl-confirm dt,.sbl-confirm dd,.sbl-bank dt,.sbl-bank dd{padding:15px 17px;border-color:#cbd7d3}.sbl-confirm dt,.sbl-bank dt{font-size:13px;color:#495952;background:#f5f8f7}.sbl-confirm dd,.sbl-bank dd{overflow-wrap:anywhere}.sbl-error{padding:15px 17px;border:1.5px solid #b55757;border-radius:12px;background:#fff3f3;color:#7f2f2f;line-height:1.65}.sbl-error-summary strong{font-size:15px}.sbl-error-summary p{margin:3px 0}.sbl-error-summary ul{margin:7px 0 0;padding-left:1.4em}.sbl-note{border:1px solid #d8d2c6;background:#f5f3ee;color:#4e5854}.sbl-contact{padding:20px;border:1.5px solid var(--sbl-line)}.sbl-contact p{font-size:13px}.sbl-contact a{display:inline-flex;min-height:46px;align-items:center;padding:10px 20px;border:1.5px solid var(--sbl-mint-dark);border-radius:var(--sbl-button-radius,14px)}
.sbl-confirm-action,.sbl-edit-action{text-align:center}.sbl-confirm-action .sbl-submit,.sbl-payment-action .sbl-submit{width:100%;margin-top:10px}.sbl-primary-action{text-align:center;margin:24px 0 0}.sbl-primary-action .sbl-button{width:100%}.sbl-complete-message{padding:17px 18px;border:1.5px solid var(--sbl-line);border-radius:14px;background:#f6faf8}.sbl-review-check{display:grid;grid-template-columns:28px 1fr;gap:11px;padding:14px 0;border-bottom:1px solid #cbd7d3}.sbl-review-check>span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#dff1e7;color:#286542;font-weight:800}.sbl-review-check p{margin:0;font-size:14px}.sbl-review-check b,.sbl-review-check small{display:block}.sbl-review-check b{color:var(--sbl-mint-dark);font-size:12px}.sbl-review-check small{color:var(--sbl-muted);margin-top:3px}.sbl-card-message strong{font-size:17px}.sbl-warning{border-width:1.5px}
@media(max-width:600px){.sbl-confirm,.sbl-bank{grid-template-columns:108px 1fr}.sbl-section,.sbl-wrap>.sbl-error,.sbl-wrap>.sbl-note,.sbl-wrap>.sbl-contact,.sbl-wrap>form,.sbl-wrap>dl{margin-left:18px;margin-right:18px}.sbl-section{margin-bottom:32px}.sbl-hero{padding-left:20px;padding-right:20px}}

/* 0.4.2: unified components, explicit selection states, disabled slots and dynamic fields */
.sbl-slot-list-page .sbl-hero{padding-bottom:30px}.sbl-slot-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.sbl-slot h3{margin:0;font-size:18px;line-height:1.55}.sbl-slot p{margin:8px 0 16px;color:var(--sbl-muted)}.sbl-slot .sbl-button{width:100%;text-align:center;margin-top:8px}.sbl-slot.is-unavailable{background:#f5f7f6;border-color:#cbd5d1}.sbl-slot.is-unavailable h3,.sbl-slot.is-unavailable p{color:#596560}.sbl-availability-badge{flex:0 0 auto;padding:4px 10px;border-radius:999px;background:#e8ecea;color:#4f5c57;font-size:12px;font-weight:800}.sbl-button-disabled{background:#d5dcda!important;color:#55615d!important;box-shadow:none!important;cursor:not-allowed}
.sbl-field input[type=text],.sbl-field input[type=email],.sbl-field textarea,.sbl-field select{width:100%;border:1.5px solid #9dafaa;border-radius:12px;padding:14px;font-family:inherit;font-size:16px;line-height:1.55;background:#fff;color:var(--sbl-text)}.sbl-field textarea{resize:vertical;min-height:126px}.sbl-field input:focus-visible,.sbl-field textarea:focus-visible,.sbl-field select:focus-visible,.sbl-choices input:focus-visible+span,.sbl-checkbox input:focus-visible{outline:3px solid rgba(79,128,117,.32);outline-offset:2px;border-color:var(--sbl-mint-dark)}
.sbl-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.sbl-choices-checkbox{grid-template-columns:1fr}.sbl-choices label>span{position:relative;gap:2px;padding-left:36px;align-items:flex-start;text-align:left}.sbl-choices label>span>i{position:absolute;left:13px;top:50%;width:18px;height:18px;transform:translateY(-50%);border:2px solid #82938d;border-radius:50%;background:#fff}.sbl-choices-checkbox label>span>i{border-radius:5px}.sbl-choices input:checked+span{border-width:2px;background:#e6f3ef;color:#275d51}.sbl-choices input:checked+span>i{border-color:var(--sbl-mint-dark);background:var(--sbl-mint-dark)}.sbl-choices input:checked+span>i:after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.sbl-choices input:checked+span:after{content:"選択中";margin-left:auto;padding:1px 7px;border-radius:999px;background:#d4ebe4;color:#285f52;font-size:10px;font-weight:800}.sbl-choices small{display:block;margin-top:2px;color:#4f5f59}
.sbl-checkbox span{font-weight:650;color:var(--sbl-text)}.sbl-agreement>small{font-size:13px;line-height:1.65;color:#4f5c57}.sbl-policy-links{gap:8px 14px}.sbl-policy-links a{font-size:13px}.sbl-review-check.is-empty>span{background:#eef1f0;color:#596660}.sbl-review-check p{color:var(--sbl-text)}.sbl-review-check small{font-size:13px;color:#46544f}.sbl-error-summary a{color:#7f2f2f;font-weight:700;text-decoration:underline}.sbl-error-summary:focus{outline:3px solid rgba(181,87,87,.22);outline-offset:3px}.sbl-has-error input,.sbl-has-error textarea,.sbl-has-error select{border-color:#b84e4e!important;background:#fff9f9!important}.sbl-has-error .sbl-choices span{border-color:#b84e4e!important}.sbl-submit:focus-visible,.sbl-button:focus-visible,.sbl-link-button:focus-visible,.sbl-contact a:focus-visible{outline:3px solid rgba(79,128,117,.38);outline-offset:3px}
.sbl-complete-message h3{margin:0 0 8px;font-size:18px}.sbl-complete-message p:first-child{margin-top:0}.sbl-complete-message p:last-child{margin-bottom:0}.sbl-payment-page>.sbl-wrap{min-height:100vh}.sbl-payment-action{margin-top:24px}.sbl-payment-action .sbl-submit{min-height:56px}.sbl-note,.sbl-warning,.sbl-error{font-size:14px}.sbl-bank dd{font-weight:650}.sbl-wrap>script{display:none}
@media(max-width:600px){.sbl-choices{grid-template-columns:1fr}.sbl-slot-heading{display:block}.sbl-availability-badge{display:inline-block;margin-top:7px}.sbl-field input[type=text],.sbl-field input[type=email],.sbl-field textarea,.sbl-field select{font-size:16px}.sbl-choices label>span{min-height:58px}.sbl-confirm,.sbl-bank{grid-template-columns:102px minmax(0,1fr)}.sbl-confirm dt,.sbl-confirm dd,.sbl-bank dt,.sbl-bank dd{padding:13px 12px}}

.sbl-client-error-summary{margin:0 var(--sbl-space) 24px}.sbl-client-error-summary[hidden]{display:none}.sbl-client-error-summary a{color:#8a2f2f;font-weight:700;text-underline-offset:3px}

/* 0.6.0 payment route and abandonment-prevention UI */
.sbl-payment-overview{margin:16px 0 0;padding:16px 18px;border:1px solid #d8d2c6;border-radius:14px;background:#f7f5f0}.sbl-payment-overview-title{margin:0;color:var(--sbl-text);font-size:14px;font-weight:750}.sbl-payment-overview-list{list-style:none;margin:8px 0 0;padding:0}.sbl-payment-overview-list li{position:relative;margin:0;padding:11px 0 11px 21px;border-top:1px solid #ddd8cf}.sbl-payment-overview-list li:first-child{border-top:0}.sbl-payment-overview-list li:before{content:"";position:absolute;left:3px;top:21px;width:7px;height:7px;border-radius:50%;background:var(--sbl-mint-dark)}.sbl-payment-overview strong,.sbl-payment-overview span,.sbl-payment-overview small{display:block}.sbl-payment-overview strong{color:var(--sbl-text);font-size:13px}.sbl-payment-overview span{margin-top:2px;font-size:13px;font-weight:650}.sbl-payment-overview small{margin-top:2px;color:var(--sbl-muted);font-size:12px}.sbl-payment-overview-note{margin:9px 0 0;padding-top:12px;border-top:1px solid #d4cec3;color:#4e5854;font-size:13px;font-weight:650}
.sbl-payment-route-section{margin-top:30px}.sbl-payment-route-options{display:grid;gap:12px;grid-auto-rows:1fr}.sbl-payment-route-card{position:relative;display:block;height:100%;cursor:pointer}.sbl-payment-route-card input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0}.sbl-payment-route-card>span{position:relative;display:block;height:100%;min-height:148px;padding:18px 18px 18px 54px;border:2px solid var(--sbl-line,#b8c9c3);border-radius:16px;background:#fff;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease,transform .15s ease}.sbl-payment-route-card>span:before{content:"";position:absolute;left:18px;top:21px;width:20px;height:20px;border:2px solid #84958f;border-radius:50%;background:#fff}.sbl-payment-route-card>span:after{content:"";position:absolute;left:24px;top:27px;width:12px;height:12px;border-radius:50%;background:transparent}.sbl-payment-route-card strong,.sbl-payment-route-card small,.sbl-payment-route-card em{display:block}.sbl-payment-route-card strong{font-size:16px;color:var(--sbl-text)}.sbl-payment-route-card small{margin-top:5px;color:var(--sbl-text);font-size:13px;line-height:1.65}.sbl-payment-route-card em{margin-top:4px;color:var(--sbl-muted);font-size:11px;font-style:normal;line-height:1.55}.sbl-payment-route-card:hover>span{border-color:var(--sbl-mint-dark);transform:translateY(-1px)}.sbl-payment-route-card input:focus-visible+span{outline:3px solid rgba(72,118,107,.24);outline-offset:2px}.sbl-payment-route-card input:checked+span,.sbl-payment-route-card.is-selected>span{border-color:var(--sbl-mint-dark);background:#f1f8f6;box-shadow:0 0 0 3px rgba(72,118,107,.12)}.sbl-payment-route-card input:checked+span:before,.sbl-payment-route-card.is-selected>span:before{border-color:var(--sbl-mint-dark)}.sbl-payment-route-card input:checked+span:after,.sbl-payment-route-card.is-selected>span:after{background:var(--sbl-mint-dark)}
.sbl-payment-primary{border:1.5px solid var(--sbl-mint);border-radius:var(--sbl-radius);padding:20px;background:#f5fbf9}.sbl-payment-action .sbl-submit{margin-top:18px}.sbl-button.is-loading{position:relative;cursor:wait;opacity:.82}.sbl-button.is-loading:after{content:"";display:inline-block;width:15px;height:15px;margin-left:10px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-3px;animation:sbl-spin .75s linear infinite}.sbl-confirm-action[aria-busy="true"],.sbl-payment-action[aria-busy="true"]{pointer-events:none}@keyframes sbl-spin{to{transform:rotate(360deg)}}
@media(min-width:540px){.sbl-payment-route-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.sbl-payment-route-card>span{transition:none}.sbl-button.is-loading:after{animation-duration:1.4s}}
.sbl-payment-route-card.is-disabled{cursor:not-allowed}.sbl-payment-route-card.is-disabled>span{background:#f3f5f4;border-color:#d3dcda;color:#7a8581;transform:none;box-shadow:none}.sbl-payment-route-card.is-disabled strong,.sbl-payment-route-card.is-disabled small,.sbl-payment-route-card.is-disabled em{color:#7a8581}.sbl-payment-route-card.is-disabled>span:before{border-color:#b5c0bc;background:#edf0ef}

/* Entire available schedule card is selectable; unavailable cards have no duplicate CTA. */
.sbl-slot-link{display:block;color:inherit;text-decoration:none;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.sbl-slot-link:hover,.sbl-slot-link:focus-visible{border-color:var(--sbl-mint-dark);box-shadow:0 8px 20px rgba(49,86,76,.11);transform:translateY(-1px)}
.sbl-slot-link:focus-visible{outline:3px solid color-mix(in srgb,var(--sbl-mint-dark) 25%,transparent);outline-offset:3px}
.sbl-availability-badge.is-open{background:#e6f5ef;color:#27684f}
.sbl-slot.is-unavailable{background:#f2f3f2;border-color:#d8ddda;color:#717a76}
.sbl-slot.is-unavailable h3{color:#68716d}

/* 0.6.6: simple, conversion-focused public flow */
.sbl-wrap,.sbl-payment-page{line-height:1.65}
.sbl-hero{padding:26px var(--sbl-space) 18px;background:#fff}
.sbl-hero h1{font-size:24px;margin-bottom:6px}.sbl-hero p{font-size:13px}
.sbl-steps{padding-bottom:18px;background:#fff}
.sbl-section{margin-top:22px;margin-bottom:26px}.sbl-section-title{font-size:17px;margin-bottom:12px}
.sbl-field{margin-bottom:18px}.sbl-field>label,.sbl-field legend{margin-bottom:5px}.sbl-help{font-size:12px;margin-bottom:6px}
.sbl-field input[type=text],.sbl-field input[type=email],.sbl-field textarea,.sbl-field select{padding:11px 13px}
.sbl-agreement{padding:12px 14px;margin-bottom:10px}.sbl-agreement>small{font-size:12px}
.sbl-payment-overview{margin:12px 0 0;padding:0;border:0;border-radius:0;background:transparent}
.sbl-payment-overview-title{font-size:13px;margin-bottom:7px}
.sbl-payment-overview-list{display:grid;grid-template-columns:max-content 1fr;gap:5px 14px;margin:0;font-size:12px}
.sbl-payment-overview-list dt,.sbl-payment-overview-list dd{margin:0;padding:0;border:0}.sbl-payment-overview-list dt{font-weight:700}.sbl-payment-overview-list dd{color:var(--sbl-muted)}
.sbl-payment-overview-note{margin:7px 0 0;padding:0;border:0;font-size:12px;font-weight:600}
.sbl-confirm{margin-top:14px}.sbl-confirm dt,.sbl-confirm dd{padding:11px 13px}.sbl-confirmation-summary{margin:16px var(--sbl-space) 6px;border-top:1px solid #dce9e5;border-bottom:1px solid #dce9e5}
.sbl-confirmation-summary summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 2px;cursor:pointer;list-style:none}.sbl-confirmation-summary summary::-webkit-details-marker{display:none}.sbl-confirmation-summary summary strong{font-size:13px}.sbl-confirmation-summary summary span{font-size:12px;color:var(--sbl-mint-dark);text-decoration:underline}
.sbl-confirmation-summary ul{margin:0 0 12px;padding-left:1.35em}.sbl-confirmation-summary li{margin:4px 0;font-size:12px;color:var(--sbl-muted)}
.sbl-payment-route-section{margin-top:20px}.sbl-payment-route-card>span{min-height:112px;padding:15px 14px 14px 48px}.sbl-payment-route-card>span:before{left:15px;top:18px}.sbl-payment-route-card>span:after{left:21px;top:24px}.sbl-payment-route-card strong{font-size:15px}.sbl-payment-route-card small{font-size:12px;line-height:1.5}.sbl-payment-route-card em{font-size:10px}
.sbl-submit{margin-top:22px}.sbl-submit-help{margin:9px 0 0}.sbl-recovery-help{margin:6px 0 0;text-align:center;color:var(--sbl-muted);font-size:11px;line-height:1.55}
.sbl-payment-status-summary .sbl-price{margin-bottom:14px}.sbl-payment-status-summary .sbl-deadline{padding:11px 13px}.sbl-payment-status-summary .sbl-deadline strong{font-size:18px}
.sbl-payment-thanks{margin:0 0 10px}.sbl-payment-primary{padding:16px;border-color:#b9d6cd;background:#fff}.sbl-payment-methods-inline{margin:0;color:var(--sbl-muted);font-size:13px}
.sbl-payment-action{margin-top:14px}.sbl-payment-action .sbl-submit{min-height:50px;margin-top:12px}
.sbl-payment-alternative{margin:18px var(--sbl-space);border-top:1px solid #dce9e5;border-bottom:1px solid #dce9e5}.sbl-payment-alternative summary{padding:13px 2px;cursor:pointer;color:var(--sbl-mint-dark);font-size:13px;font-weight:700;list-style:none}.sbl-payment-alternative summary::-webkit-details-marker{display:none}.sbl-payment-alternative summary:after{content:"＋";float:right}.sbl-payment-alternative[open] summary:after{content:"−"}.sbl-payment-alternative-body{padding:0 0 14px}.sbl-payment-alternative-body>p{font-size:13px}
.sbl-payment-action-secondary .sbl-button-secondary{width:auto;min-height:42px;padding:10px 16px;border:1px solid var(--sbl-mint-dark);background:#fff;color:var(--sbl-mint-dark)!important;box-shadow:none;font-size:13px}
.sbl-bank{margin-top:12px}.sbl-bank dt,.sbl-bank dd{padding:10px 12px;font-size:12px}.sbl-bank dd{font-size:13px}
.sbl-bank-primary ul,.sbl-payment-alternative-body ul{margin:10px 0 0;padding-left:1.25em;font-size:12px}
.sbl-warning{padding:10px 12px;margin-top:12px}.sbl-note{padding:10px 12px}.sbl-private-url-note{margin:16px var(--sbl-space);color:var(--sbl-muted);font-size:11px;text-align:center}
.sbl-contact{padding:13px;margin-top:18px}.sbl-contact p{margin:0 0 6px}.sbl-contact a{min-height:auto;padding:0;border:0;border-radius:0;text-decoration:underline}
.sbl-mail-failure strong{display:block;margin-bottom:4px}.sbl-mail-failure p{margin:0}.sbl-mail-failure a{color:inherit;font-weight:700;text-decoration:underline}
.sbl-button-secondary.is-loading{opacity:.75}
@media(max-width:600px){
  .sbl-section{margin-top:18px;margin-bottom:22px}
  .sbl-payment-overview-list{grid-template-columns:1fr;gap:2px}.sbl-payment-overview-list dd{margin-bottom:5px}
  .sbl-confirmation-summary{margin-left:18px;margin-right:18px}
  .sbl-payment-route-card>span{min-height:0}
  .sbl-payment-alternative{margin-left:18px;margin-right:18px}
}

/* 0.6.6 final form density: confirmations are simple checklist rows, not cards. */
.sbl-agreements{gap:0;border-top:1px solid #dce9e5}
.sbl-agreement{margin:0!important;padding:10px 2px!important;border:0!important;border-bottom:1px solid #dce9e5!important;border-radius:0!important;background:transparent!important}
.sbl-agreement-meta{display:flex!important;justify-content:flex-end!important;min-height:18px}
.sbl-checkbox{margin-top:2px!important;line-height:1.55!important}
.sbl-agreement>small{margin-top:4px!important;margin-left:32px!important;font-size:11px!important}
.sbl-policy-links{margin-top:5px!important;margin-left:32px!important}

/* 0.6.6 final payment-page simplification. */
.sbl-payment-status-summary .sbl-deadline{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 0;border:0;border-top:1px solid #dce9e5;border-bottom:1px solid #dce9e5;border-radius:0;background:transparent}
.sbl-payment-status-summary .sbl-deadline small,.sbl-payment-status-summary .sbl-deadline strong{display:block}.sbl-payment-status-summary .sbl-deadline strong{font-size:17px}
.sbl-warning{padding:8px 0 8px 10px;border:0;border-left:3px solid #e0b86f;border-radius:0;background:transparent;font-size:11.5px}
.sbl-contact{padding:8px 0;margin-top:14px;border:0;border-radius:0;background:transparent}

/* 0.6.7-dev final-confirmation disclosure */
.sbl-final-confirmation{margin:18px 0 14px;padding:14px 16px;border:1px solid var(--sbl-line);border-radius:var(--sbl-radius);background:#fbfcfc}
.sbl-final-confirmation h2{margin:0 0 9px;font-size:16px;color:var(--sbl-text)}
.sbl-final-confirmation dl{display:grid;gap:0;margin:0}
.sbl-final-confirmation dl>div{display:grid;grid-template-columns:minmax(105px,30%) 1fr;border-top:1px solid #e0e7e4}
.sbl-final-confirmation dt,.sbl-final-confirmation dd{margin:0;padding:7px 5px;font-size:13px;line-height:1.45}
.sbl-final-confirmation dt{color:var(--sbl-muted);font-weight:700}
.sbl-final-confirmation dd{color:var(--sbl-text);font-weight:600}
.sbl-final-confirmation p{margin:10px 0 0;font-size:12px;line-height:1.6}
.sbl-final-confirmation a{color:var(--sbl-mint-dark);font-weight:700}
.sbl-legal-links{display:flex;gap:12px;flex-wrap:wrap}
@media(max-width:560px){.sbl-final-confirmation dl>div{grid-template-columns:1fr}.sbl-final-confirmation dt{padding-bottom:0}.sbl-final-confirmation dd{padding-top:2px}}

.sbl-schedule-request {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid #d8dfdc;
  text-align: center;
}
.sbl-schedule-request p { margin: 0 0 10px; }
.sbl-schedule-request .sbl-button { display: inline-flex; width: auto; }
.sbl-schedule-request .sbl-button-secondary {
  min-height: 42px;
  padding: 10px 18px;
  border: 1px solid var(--sbl-mint-dark);
  background: #fff;
  color: var(--sbl-mint-dark) !important;
  box-shadow: none;
  font-size: 14px;
}


.sbl-schedule-request-form{max-width:820px;margin:24px auto;padding:24px;background:#fff;border:1px solid #dfe5eb;border-radius:10px;box-shadow:0 4px 18px rgba(25,45,70,.05)}.sbl-schedule-request-form header{margin-bottom:22px}.sbl-schedule-request-form header h2{font-size:24px;line-height:1.45;margin:0 0 8px}.sbl-schedule-request-form header p{margin:0;color:#536273}.sbl-request-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sbl-schedule-request-form>label,.sbl-request-grid label{display:grid;gap:6px;margin-bottom:16px}.sbl-schedule-request-form label>span,.sbl-schedule-request-form legend{font-weight:650}.sbl-schedule-request-form em{font-style:normal;color:#d8476c;font-size:.82em}.sbl-schedule-request-form input[type=text],.sbl-schedule-request-form input[type=email],.sbl-schedule-request-form textarea{width:100%;box-sizing:border-box;border:1px solid #cbd5df;border-radius:7px;padding:10px 12px;font:inherit}.sbl-schedule-request-form fieldset{border:0;padding:0;margin:0 0 18px}.sbl-request-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.sbl-request-options label{display:flex;align-items:flex-start;gap:7px}.sbl-request-options label{border:1px solid #d9e1e8;border-radius:999px;padding:7px 11px;background:#fafcfd}.sbl-primary-button{border:0;border-radius:7px;background:#17345d;color:#fff;padding:11px 22px;font-weight:700;cursor:pointer}.sbl-request-success{max-width:760px;margin:24px auto;padding:18px 20px;border-left:4px solid #36a36c;background:#eef9f2;border-radius:6px}.sbl-request-success p{margin-bottom:0}@media(max-width:700px){.sbl-request-grid{grid-template-columns:1fr}.sbl-schedule-request-form{padding:18px}}

/* 0.9.11-dev: simple, customer-first confirmation screen */
.sbl-confirm-page .sbl-hero{padding-bottom:16px}
.sbl-confirm-page .sbl-hero h1{max-width:680px;margin-left:auto;margin-right:auto}
.sbl-confirm-page .sbl-hero p{max-width:640px;margin-left:auto;margin-right:auto;color:#44534e;font-weight:600}
.sbl-confirm-primary-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(260px,.92fr);gap:16px;margin:20px var(--sbl-space) 8px}
.sbl-confirm-card{border:1.5px solid var(--sbl-line);border-radius:var(--sbl-radius);background:#fff;padding:18px 20px}
.sbl-confirm-card h2{margin:0 0 12px;font-size:17px;color:var(--sbl-text)}
.sbl-confirm-focus-list{display:grid;gap:0;margin:0}
.sbl-confirm-focus-list>div{padding:11px 0;border-top:1px solid #e2e9e6}
.sbl-confirm-focus-list>div:first-child{padding-top:0;border-top:0}
.sbl-confirm-focus-list dt{margin:0 0 3px;color:var(--sbl-muted);font-size:12px;font-weight:700}
.sbl-confirm-focus-list dd{margin:0;color:var(--sbl-text);font-size:16px;font-weight:750;line-height:1.55;overflow-wrap:anywhere}
.sbl-confirm-focus-email dd{font-size:15px;word-break:break-all}
.sbl-confirm-focus-date dd,.sbl-confirm-focus-price dd{font-size:17px}
.sbl-confirm-focus-price dd{color:var(--sbl-mint-dark)}
.sbl-confirm-other-fields{margin-top:11px;border-top:1px solid #e2e9e6}
.sbl-confirm-other-fields summary{padding:11px 0 0;color:var(--sbl-mint-dark);font-size:12px;font-weight:700;cursor:pointer}
.sbl-confirm-other-fields dl{display:grid;gap:0;margin:9px 0 0}
.sbl-confirm-other-fields dl>div{display:grid;grid-template-columns:minmax(110px,35%) 1fr;gap:10px;padding:8px 0;border-top:1px solid #edf1ef}
.sbl-confirm-other-fields dt,.sbl-confirm-other-fields dd{margin:0;font-size:12px;line-height:1.55}
.sbl-confirm-other-fields dt{color:var(--sbl-muted);font-weight:700}.sbl-confirm-other-fields dd{font-weight:650;overflow-wrap:anywhere}
.sbl-confirm-page .sbl-confirmation-summary{margin-top:12px;margin-bottom:4px}
.sbl-confirm-page .sbl-payment-route-section{margin-top:18px;margin-bottom:16px}
.sbl-confirm-page .sbl-payment-route-options{gap:10px}
.sbl-confirm-page .sbl-payment-route-card>span{min-height:72px;padding:15px 14px 14px 48px;display:flex;flex-direction:column;justify-content:center}
.sbl-confirm-page .sbl-payment-route-card strong{font-size:16px}
.sbl-bank-fee-note{margin-top:4px!important;color:var(--sbl-muted)!important;font-size:11px!important;line-height:1.5!important}
.sbl-payment-route-card input:not(:checked)+span .sbl-bank-fee-note{display:none}
.sbl-application-conditions{margin:5px 0 4px;border-top:1px solid #dce9e5;border-bottom:1px solid #dce9e5;text-align:left}
.sbl-application-conditions summary{padding:12px 2px;color:var(--sbl-mint-dark);font-size:13px;font-weight:700;cursor:pointer;list-style:none}
.sbl-application-conditions summary::-webkit-details-marker{display:none}
.sbl-application-conditions summary:after{content:"＋";float:right;color:var(--sbl-muted)}
.sbl-application-conditions[open] summary:after{content:"−"}
.sbl-application-conditions dl{display:grid;gap:0;margin:0 0 10px}
.sbl-application-conditions dl>div{display:grid;grid-template-columns:minmax(110px,30%) 1fr;gap:10px;padding:8px 0;border-top:1px solid #edf1ef}
.sbl-application-conditions dt,.sbl-application-conditions dd{margin:0;font-size:12px;line-height:1.55}
.sbl-application-conditions dt{color:var(--sbl-muted);font-weight:700}.sbl-application-conditions dd{font-weight:600}
.sbl-application-conditions .sbl-legal-links{display:flex;flex-wrap:wrap;gap:7px 14px;margin:0 0 12px}
.sbl-application-conditions .sbl-legal-links a{font-size:12px}
.sbl-confirm-page .sbl-confirm-action .sbl-submit{margin-top:18px}
.sbl-confirm-page .sbl-submit-help{margin:8px 0 0}
.sbl-confirm-page .sbl-recovery-help{margin:8px 0 0;font-size:11px;line-height:1.55}
.sbl-confirm-page .sbl-edit-action{margin-top:4px}
.sbl-preview-service-status{margin:14px var(--sbl-space) 0;padding:10px 13px;border:1px solid #e0c35a;border-radius:10px;background:#fff8df;color:#5f4c00;font-size:12px;font-weight:650;line-height:1.55}
@media(max-width:720px){
  .sbl-confirm-primary-grid{grid-template-columns:1fr;margin-left:18px;margin-right:18px}
}
@media(max-width:560px){
  .sbl-confirm-card{padding:16px}
  .sbl-confirm-focus-list dd{font-size:15px}
  .sbl-confirm-other-fields dl>div,.sbl-application-conditions dl>div{grid-template-columns:1fr;gap:2px}
  .sbl-payment-route-options{grid-template-columns:1fr!important}
}

/* 0.9.12-dev: minimal, action-first public application flow */
.sbl-top{justify-content:flex-start;padding-top:17px;padding-bottom:17px}
.sbl-hero{padding:26px var(--sbl-space) 18px;background:#fff}
.sbl-hero .sbl-service-name{display:block;margin:0 0 5px;letter-spacing:.04em;font-size:12px;color:var(--sbl-mint-dark);font-weight:700}
.sbl-hero h1{margin:0;font-size:27px;line-height:1.4}
.sbl-hero p{margin:6px 0 0;font-size:15px;color:var(--sbl-muted)}
.sbl-steps{padding-bottom:18px;background:#fff}

.sbl-slot-list-page .sbl-hero{padding-bottom:20px}
.sbl-slot-list-page .sbl-slot-list-section{margin-top:18px;margin-bottom:26px}
.sbl-slot-list-page .sbl-slots{gap:12px}
.sbl-slot-list-page .sbl-slot{padding:16px 18px}
.sbl-slot-list-page .sbl-slot h3{font-size:18px}
.sbl-slot-list-page .sbl-slot p{margin:5px 0 12px}
.sbl-slot-list-page .sbl-slot .sbl-button{margin-top:8px;padding-top:13px;padding-bottom:13px}
.sbl-slot-list-page .sbl-preview-service-status{margin-top:12px}
.sbl-slot-list-page .sbl-schedule-request{margin-top:18px;padding-top:16px}

.sbl-form-page .sbl-hero{padding-bottom:14px}
.sbl-form-page .sbl-section{margin-top:20px;margin-bottom:24px}
.sbl-form-page .sbl-summary-card{padding:15px 16px}
.sbl-form-page .sbl-summary-card strong{font-size:17px}
.sbl-form-page .sbl-field{margin-bottom:20px}
.sbl-form-page .sbl-submit{margin-top:25px}

.sbl-confirm-page .sbl-hero{padding-bottom:12px}
.sbl-confirm-guide{margin:0 var(--sbl-space) 14px;text-align:center;color:#44534e;font-size:13px;font-weight:600}
.sbl-confirm-overview{margin:0 var(--sbl-space) 8px;border-top:1px solid #dce9e5;border-bottom:1px solid #dce9e5}
.sbl-confirm-block{padding:16px 0}
.sbl-confirm-block+.sbl-confirm-block{border-top:1px solid #dce9e5}
.sbl-confirm-block h2{margin:0 0 8px;font-size:16px;color:var(--sbl-text)}
.sbl-confirm-focus-list{margin:0}
.sbl-confirm-focus-list>div{display:grid;grid-template-columns:minmax(120px,32%) minmax(0,1fr);align-items:baseline;gap:12px;padding:9px 0;border-top:1px solid #edf1ef}
.sbl-confirm-focus-list>div:first-child{border-top:0}
.sbl-confirm-focus-list dt{margin:0;color:var(--sbl-muted);font-size:12px;font-weight:700}
.sbl-confirm-focus-list dd{margin:0;color:var(--sbl-text);font-size:16px;font-weight:750;line-height:1.5;overflow-wrap:anywhere}
.sbl-confirm-focus-email dd{word-break:break-all}
.sbl-confirm-focus-date dd,.sbl-confirm-focus-price dd{font-size:17px}
.sbl-confirm-focus-price dd{color:var(--sbl-mint-dark)}
.sbl-confirm-other-fields{margin-top:7px;border-top:1px solid #edf1ef}
.sbl-confirm-other-fields summary{padding:10px 0 0;color:var(--sbl-mint-dark);font-size:12px;font-weight:700;cursor:pointer}
.sbl-confirm-other-fields dl{margin:8px 0 0}
.sbl-confirm-other-fields dl>div{display:grid;grid-template-columns:minmax(120px,32%) minmax(0,1fr);gap:12px;padding:7px 0;border-top:1px solid #edf1ef}
.sbl-confirm-other-fields dt,.sbl-confirm-other-fields dd{margin:0;font-size:12px;line-height:1.5}
.sbl-confirm-other-fields dt{color:var(--sbl-muted);font-weight:700}
.sbl-confirm-other-fields dd{font-weight:650;overflow-wrap:anywhere}
.sbl-confirm-page .sbl-confirmation-summary{margin-top:8px;margin-bottom:2px}
.sbl-confirm-page .sbl-payment-route-section{margin-top:16px;margin-bottom:14px}
.sbl-confirm-page .sbl-payment-route-options{gap:10px}
.sbl-confirm-page .sbl-payment-route-card>span{min-height:58px;padding:13px 12px 12px 46px;justify-content:center}
.sbl-confirm-page .sbl-payment-route-card>span:before{left:15px;top:17px}
.sbl-confirm-page .sbl-payment-route-card>span:after{left:21px;top:23px}
.sbl-confirm-page .sbl-payment-route-card strong{font-size:15px}
.sbl-confirm-page .sbl-application-conditions{margin-top:2px}
.sbl-confirm-page .sbl-confirm-action .sbl-submit{margin-top:16px}
.sbl-confirm-page .sbl-edit-action{margin-top:2px}

@media(max-width:560px){
  .sbl-hero h1{font-size:24px}
  .sbl-confirm-focus-list>div,.sbl-confirm-other-fields dl>div{grid-template-columns:1fr;gap:2px}
  .sbl-confirm-focus-list dd{font-size:15px}
  .sbl-payment-route-options{grid-template-columns:1fr!important}
}


/* 0.9.13-dev: confirmation page — keep all confirmed information visible and quiet. */
.sbl-confirm-page .sbl-confirm-overview{margin-bottom:12px}
.sbl-confirm-page .sbl-confirm-block{padding:14px 0}
.sbl-confirm-page .sbl-confirm-block h2{margin-bottom:7px}
.sbl-confirm-page .sbl-confirm-focus-list>div{padding:8px 0}
.sbl-confirm-page .sbl-confirm-focus-row dd{font-size:15px}
.sbl-confirm-page .sbl-confirm-focus-name_kanji dd,
.sbl-confirm-page .sbl-confirm-focus-name_kana dd,
.sbl-confirm-page .sbl-confirm-focus-email dd{font-size:16px}
.sbl-confirmations-block{color:var(--sbl-muted)}
.sbl-confirmations-lead{margin:0 0 6px;font-size:12px;font-weight:700;color:var(--sbl-muted)}
.sbl-confirmations-list{margin:0;padding-left:1.25em}
.sbl-confirmations-list li{margin:3px 0;font-size:12px;line-height:1.6;color:var(--sbl-muted)}
.sbl-confirm-page .sbl-payment-route-section{margin-bottom:10px}
.sbl-confirm-conditions{margin:0 var(--sbl-space) 4px;padding:11px 0 5px;border-top:1px solid #dce9e5}
.sbl-confirm-conditions dl{margin:0}
.sbl-confirm-conditions dl>div{display:grid;grid-template-columns:minmax(120px,32%) minmax(0,1fr);gap:12px;padding:6px 0}
.sbl-confirm-conditions dt,.sbl-confirm-conditions dd{margin:0;font-size:12px;line-height:1.55}
.sbl-confirm-conditions dt{color:var(--sbl-muted);font-weight:700}
.sbl-confirm-conditions dd{color:#44534e;font-weight:600}
.sbl-confirm-conditions .sbl-legal-links{margin:7px 0 0;gap:6px 13px}
.sbl-confirm-conditions .sbl-legal-links a{font-size:12px}
@media(max-width:560px){
  .sbl-confirm-conditions{margin-left:18px;margin-right:18px}
  .sbl-confirm-conditions dl>div{grid-template-columns:1fr;gap:2px}
}


/* 0.9.16-dev: Sodalite semantic state colors */
.sbl-preview-service-status,
.sbl-warning{
  border-color:#E8D79A!important;
  background:#FFF9E8!important;
  color:#172A46!important;
}
.sbl-error,
.sbl-error-summary,
.sbl-has-error input,
.sbl-has-error textarea,
.sbl-has-error select,
.sbl-has-error .sbl-choices span,
.sbl-agreement.sbl-has-error{
  border-color:#E7A9B5!important;
  background:#FFF1F4!important;
  color:#8F2D43!important;
}
.sbl-field-error,
.sbl-error-summary a{color:#8F2D43!important}

/* 0.10.4: bank-transfer details in the full customer-flow confirmation. */
.sbl-bank-preview-complete{margin-top:16px;padding:14px;border:1px solid var(--sbl-line,#d8dee7);border-radius:10px;background:#fff;text-align:left}
.sbl-bank-preview-complete h3{margin:0 0 8px;font-size:16px}
.sbl-bank-preview-complete>p{margin:0 0 10px}
.sbl-bank-preview-complete dl{display:grid;gap:0;margin:0}
.sbl-bank-preview-complete dl>div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:10px;padding:8px 0;border-bottom:1px solid var(--sbl-line,#e7ebf0)}
.sbl-bank-preview-complete dl>div:last-child{border-bottom:0}
.sbl-bank-preview-complete dt{font-weight:700}.sbl-bank-preview-complete dd{margin:0;overflow-wrap:anywhere}
@media(max-width:520px){.sbl-bank-preview-complete dl>div{grid-template-columns:1fr;gap:2px}}

.sbl-request-field-help{display:block;margin:4px 0 8px;color:var(--sbl-muted);font-size:13px;line-height:1.6}

/* 0.10.18-dev: completion-page padding and payment option subtitles. */
.sbl-admin-preview-complete .sbl-complete-card,.sbl-free-complete .sbl-complete-card{margin:0 var(--sbl-space,22px);padding:28px 30px;border-radius:14px;background:#fff}
.sbl-admin-preview-complete .sbl-preview-confirm-action,.sbl-admin-preview-complete>.sbl-admin-preview-note{margin-left:var(--sbl-space,22px);margin-right:var(--sbl-space,22px)}
.sbl-payment-route-card small{color:var(--sbl-muted)!important;font-size:11.5px!important;font-weight:500!important}
.sbl-free-confirmation{margin-top:18px}
@media(max-width:560px){.sbl-admin-preview-complete .sbl-complete-card,.sbl-free-complete .sbl-complete-card{margin-left:14px;margin-right:14px;padding:22px 18px}}

/* 0.10.18-dev: compact schedule choices to reduce scrolling on long date lists. */
.sbl-slot-list-page .sbl-slots{gap:8px}
.sbl-slot-list-page .sbl-slot{padding:12px 14px}
.sbl-slot-list-page .sbl-slot h3{font-size:16px;line-height:1.45}
.sbl-slot-list-page .sbl-slot p{margin:4px 0 0;font-size:12px;line-height:1.5}
.sbl-slot-list-page .sbl-slot .sbl-button{min-height:42px;margin:0;padding:9px 16px;font-size:13px;white-space:nowrap}
.sbl-slot-list-page .sbl-schedule-request{margin-top:13px;padding-top:13px}
.sbl-slot-list-page .sbl-schedule-request p{margin-bottom:7px;font-size:12px}
.sbl-slot-list-page .sbl-schedule-request .sbl-button-secondary{min-height:40px;padding:8px 16px;font-size:13px}
@media(min-width:701px){
  .sbl-slot-list-page .sbl-slot-link{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;column-gap:16px}
  .sbl-slot-list-page .sbl-slot-link .sbl-slot-heading{grid-column:1;grid-row:1}
  .sbl-slot-list-page .sbl-slot-link>p{grid-column:1;grid-row:2}
  .sbl-slot-list-page .sbl-slot-link>.sbl-button{grid-column:2;grid-row:1 / span 2;min-width:168px;width:auto}
}
@media(max-width:700px){
  .sbl-slot-list-page .sbl-slot{padding:12px 13px}
  .sbl-slot-list-page .sbl-slot .sbl-button{width:100%;margin-top:9px}
}

/* 0.10.23-dev: consolidated customer-facing compact UI rules. */
:root{
  --sbl-width:680px;
  --sbl-space:20px;
  --sbl-radius:14px;
}
.sbl-wrap,.sbl-payment-page{padding-bottom:34px}
.sbl-top{padding:15px var(--sbl-space)}
.sbl-hero{padding:22px var(--sbl-space) 14px}
.sbl-hero h1{font-size:25px}
.sbl-hero p{font-size:14px;line-height:1.65}
.sbl-steps{padding-bottom:15px}
.sbl-section{margin-top:18px;margin-bottom:24px}
.sbl-section-title{margin-bottom:11px;font-size:16px}
.sbl-summary-card,.sbl-card-message,.sbl-complete-message,.sbl-payment-primary,.sbl-final-confirmation{padding:14px 16px;border-radius:12px}
.sbl-field{margin-bottom:17px}
.sbl-field>label,.sbl-field legend{margin-bottom:5px;font-size:14px}
.sbl-help{margin-bottom:6px;font-size:12px;line-height:1.55}
.sbl-field input[type=text],
.sbl-field input[type=email],
.sbl-field textarea,
.sbl-field select{
  min-height:42px;
  padding:10px 12px;
  border-radius:10px;
}
.sbl-field textarea{min-height:108px}
.sbl-choices{gap:8px}
.sbl-choices label>span{min-height:50px;padding:10px 12px 10px 34px;border-radius:11px}
.sbl-choices label>span>i{left:11px}
.sbl-button{min-height:42px;padding:11px 18px;border-radius:10px;font-size:15px;text-align:center}
.sbl-submit{margin-top:22px}
.sbl-link-button{margin-top:9px}
.sbl-confirm,.sbl-bank{margin-top:14px;border-radius:12px}
.sbl-confirm dt,.sbl-confirm dd,.sbl-bank dt,.sbl-bank dd{padding:10px 12px}
.sbl-warning,.sbl-note,.sbl-error{font-size:13px;line-height:1.6}
.sbl-contact{margin-top:12px}
.sbl-slot-list-page .sbl-slot-list-section{margin-top:15px;margin-bottom:22px}
.sbl-slot-list-page .sbl-slots{gap:8px}
.sbl-slot-list-page .sbl-slot{border-radius:12px}
.sbl-slot-list-page .sbl-slot h3{font-size:16px}
.sbl-slot-list-page .sbl-slot .sbl-button{min-width:156px}
.sbl-payment-route-section{margin-top:16px}
.sbl-payment-route-options{gap:9px}
.sbl-payment-route-card>span{min-height:68px;padding:12px 12px 12px 44px;border-radius:12px}
.sbl-payment-route-card>span:before{left:14px;top:16px}
.sbl-payment-route-card>span:after{left:20px;top:22px}
.sbl-payment-route-card strong{font-size:15px}
.sbl-payment-route-card small{font-size:11.5px;line-height:1.5}
.sbl-payment-overview-list li{padding-top:8px;padding-bottom:8px}
.sbl-confirm-overview{margin-top:0}
.sbl-confirm-block{padding:12px 0}
.sbl-confirm-focus-list>div,
.sbl-confirm-other-fields dl>div,
.sbl-confirm-conditions dl>div{
  padding:7px 0;
}
.sbl-confirm-page .sbl-confirm-action .sbl-submit{margin-top:14px}
.sbl-admin-preview-complete .sbl-complete-card,
.sbl-free-complete .sbl-complete-card{
  padding:22px 24px;
}
.sbl-schedule-request{margin-top:16px;padding-top:14px}
.sbl-schedule-request-form{
  max-width:780px;
  margin:20px auto;
  padding:20px;
  border-radius:9px;
}
.sbl-schedule-request-form header{margin-bottom:16px}
.sbl-schedule-request-form header h2{font-size:22px}
.sbl-request-grid{gap:12px}
.sbl-schedule-request-form>label,
.sbl-request-grid label{margin-bottom:12px}
.sbl-primary-button{min-height:40px;padding:9px 18px}

@media(min-width:721px){
  .sbl-confirm-page .sbl-wrap,
  .sbl-payment-page>.sbl-wrap{
    max-width:760px;
  }
  .sbl-form-page .sbl-wrap{
    max-width:700px;
  }
  .sbl-slot-list-page .sbl-wrap{
    max-width:760px;
  }
  .sbl-payment-route-options{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:600px){
  :root{--sbl-space:18px}
  .sbl-wrap,.sbl-payment-page{box-shadow:none}
  .sbl-hero h1{font-size:23px}
  .sbl-button,.sbl-submit{width:100%}
  .sbl-schedule-request .sbl-button{width:auto}
  .sbl-confirm,.sbl-bank{grid-template-columns:1fr}
  .sbl-confirm dt,.sbl-bank dt{padding-bottom:2px;border-bottom:0}
  .sbl-confirm dd,.sbl-bank dd{padding-top:2px}
  .sbl-schedule-request-form{margin:12px auto;padding:16px;border-radius:0;border-left:0;border-right:0}
}

/* 0.10.24-dev: required/help/example placement */
.sbl-field-label-row,
.sbl-request-field-label-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
}
.sbl-field-label-row .sbl-required,
.sbl-field-label-row .sbl-optional,
.sbl-request-field-label-row .sbl-required,
.sbl-request-field-label-row .sbl-optional{
  flex:0 0 auto;
}
.sbl-input-example,
.sbl-request-field-example{
  display:block;
  margin-top:6px;
  color:var(--sbl-muted,#68716d);
  font-size:12px;
  line-height:1.55;
}
.sbl-request-field-help{
  display:block;
  margin:4px 0 7px;
  color:var(--sbl-muted,#68716d);
  font-size:12px;
  line-height:1.55;
}
.sbl-schedule-request-form>label,
.sbl-schedule-request-form>fieldset{
  display:block;
  margin:0 0 17px;
}
.sbl-schedule-request-form>fieldset{
  padding:0;
  border:0;
}
.sbl-schedule-request-form>label>input,
.sbl-schedule-request-form>label>textarea,
.sbl-schedule-request-form>label>select{
  width:100%;
  box-sizing:border-box;
}


/* 0.10.30-dev: fixed payment-pending recovery */
.sbl-payment-pending-warning{margin:18px 0;padding:13px 14px;border:1px solid #d6a34a;border-radius:10px;background:#fff8e8;color:#654712;line-height:1.7}
.sbl-payment-recheck-panel{margin-top:22px;padding-top:18px;border-top:1px solid var(--sbl-line)}
.sbl-payment-recheck-help{margin:0 0 10px;color:var(--sbl-muted);font-size:13px;line-height:1.7;text-align:left}
.sbl-payment-recheck-result{margin:0 0 12px;padding:11px 13px;border:1px solid var(--sbl-line);border-radius:10px;background:#f6faf8;color:var(--sbl-text);font-size:13px;font-weight:700;line-height:1.6}
.sbl-payment-recheck-action{margin-top:0;text-align:center}
.sbl-payment-recheck-link{display:inline-flex;align-items:center;gap:6px;padding:3px 2px;border:0;background:transparent;color:var(--sbl-mint-dark);font:inherit;font-size:13px;font-weight:700;line-height:1.6;text-decoration:underline;text-underline-offset:3px;cursor:pointer;box-shadow:none}
.sbl-payment-recheck-link:hover,.sbl-payment-recheck-link:focus-visible{color:var(--sbl-text);text-decoration-thickness:2px}
.sbl-payment-recheck-link:focus-visible{outline:2px solid var(--sbl-mint-dark);outline-offset:4px;border-radius:4px}
.sbl-payment-recheck-icon{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;flex:0 0 15px;text-decoration:none}
.sbl-payment-recheck-icon svg{display:block;width:15px;height:15px;overflow:visible;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* 0.10.36-dev: administrator-only operation-test guidance. */
.sbl-admin-preview-banner{max-width:820px;margin:18px auto 0;padding:10px 13px;border:1px solid #cbd9e8;border-radius:8px;background:#f2f7fc;color:#203b5c;font-weight:700;line-height:1.5}
.sbl-admin-request-preview .sbl-standalone-page{padding-top:0}
.sbl-request-success.is-error{border-left-color:#c84f62;background:#fff2f4}
.sbl-request-success .sbl-button{display:inline-flex;margin-top:8px;text-decoration:none}

/* 0.10.36-dev: real calendar/date/time picker for session-style services. */
.sbl-slot-calendar{display:grid;gap:16px}
.sbl-calendar-instruction{margin:0;color:var(--sbl-muted);font-size:13px;line-height:1.65}
.sbl-calendar-month-tabs{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px}
.sbl-calendar-month-tabs button{flex:0 0 auto;min-height:38px;padding:7px 13px;border:1px solid #cbd5df;border-radius:999px;background:#fff;color:var(--sbl-text);font-family:inherit;font-size:13px;font-weight:700;line-height:1.2;cursor:pointer}
.sbl-calendar-month-tabs button.is-active{border-color:var(--sbl-button-bg);background:var(--sbl-button-bg);color:var(--sbl-button-text)}
.sbl-calendar-month{padding:14px;border:1px solid #d8e0e7;border-radius:13px;background:#fff}
.sbl-slot-calendar.sbl-js .sbl-calendar-month:not(.is-active){display:none}
.sbl-calendar-month-title{margin:0 0 12px;text-align:center;color:var(--sbl-text);font-size:17px}
.sbl-calendar-weekdays,.sbl-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.sbl-calendar-weekdays{margin-bottom:5px}
.sbl-calendar-weekdays span{padding:3px;text-align:center;color:var(--sbl-muted);font-size:11px;font-weight:700}
.sbl-calendar-weekdays span:first-child{color:#b34c5d}
.sbl-calendar-weekdays span:last-child{color:#3e6f9f}
.sbl-calendar-blank{min-height:53px}
.sbl-calendar-day{min-width:0;min-height:53px;padding:6px 2px;border:1px solid transparent;border-radius:9px;background:#f4f6f8;color:#9aa4ae;text-align:center;box-sizing:border-box}
button.sbl-calendar-day{font:inherit;cursor:pointer}
.sbl-calendar-day strong{display:block;font-size:14px;line-height:1.2}
.sbl-calendar-day small{display:block;margin-top:4px;font-size:9px;line-height:1.15}
.sbl-calendar-day.is-available{border-color:#aed8cf;background:#effaf7;color:#173f38}
.sbl-calendar-day.is-available:hover,.sbl-calendar-day.is-available:focus-visible{border-color:var(--sbl-button-bg);outline:none;box-shadow:0 0 0 2px rgba(23,42,70,.12)}
.sbl-calendar-day.is-available.is-active{border-color:var(--sbl-button-bg);background:var(--sbl-button-bg);color:var(--sbl-button-text)}
.sbl-calendar-day.is-unavailable{display:flex;align-items:flex-start;justify-content:center}
.sbl-calendar-time-area{padding-top:2px}
.sbl-calendar-times{margin-top:0;padding:14px;border:1px solid #d8e0e7;border-radius:13px;background:#fff}
.sbl-slot-calendar.sbl-js .sbl-calendar-times:not(.is-active){display:none}
.sbl-calendar-times h3{margin:0 0 10px;color:var(--sbl-text);font-size:15px}
.sbl-calendar-time-list{display:grid;gap:8px}
.sbl-calendar-time{display:flex;align-items:center;justify-content:space-between;gap:13px;padding:11px 13px;border:1px solid #cbd5df;border-radius:10px;background:#fff;color:var(--sbl-text);text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease}
.sbl-calendar-time:hover,.sbl-calendar-time:focus-visible{border-color:var(--sbl-button-bg);outline:none;box-shadow:0 3px 12px rgba(23,42,70,.10)}
.sbl-calendar-time span{min-width:0}
.sbl-calendar-time strong{display:block;font-size:15px}
.sbl-calendar-time small{display:block;margin-top:3px;color:var(--sbl-muted);font-size:11px;line-height:1.45}
.sbl-calendar-time em{flex:0 0 auto;padding:7px 10px;border-radius:8px;background:var(--sbl-button-bg);color:var(--sbl-button-text);font-size:12px;font-style:normal;font-weight:700}
@media(max-width:600px){
  .sbl-calendar-month{padding:11px 8px}
  .sbl-calendar-weekdays,.sbl-calendar-grid{gap:3px}
  .sbl-calendar-day,.sbl-calendar-blank{min-height:48px}
  .sbl-calendar-day strong{font-size:13px}
  .sbl-calendar-day small{font-size:8px}
  .sbl-calendar-times{padding:12px}
  .sbl-calendar-time{padding:10px 11px}
}

/* 0.10.40-dev: service-specific confirmation checks in schedule-request forms. */
.sbl-request-confirmation-field{display:grid;gap:7px;margin:18px 0;padding:13px 14px;border:1px solid #dce3ea;border-radius:8px;background:#f8fafc}
.sbl-request-confirmation-field>label{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:start;margin:0}
.sbl-request-confirmation-field input[type=checkbox]{margin-top:3px}
.sbl-request-confirmation-field>label>span{font-weight:600;line-height:1.6}
.sbl-request-confirmation-field>label>span a{margin-left:4px;color:#1e6596;font-weight:700}
.sbl-request-confirmation-field>label>em{white-space:nowrap}
.sbl-request-confirmation-field .sbl-request-field-help{margin:0 0 1px;font-size:12px}
@media(max-width:520px){.sbl-request-confirmation-field>label{grid-template-columns:auto minmax(0,1fr)}.sbl-request-confirmation-field>label>em{grid-column:2;justify-self:start}}

/* 0.10.47-dev: public form abuse protection. Hidden from people, available in DOM for bots. */
.sbl-honeypot{
  position:absolute!important;
  left:-10000px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}

@media (prefers-reduced-motion:reduce){.sbl-wrap,.sbl-wrap *,.sbl-payment-page,.sbl-payment-page *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* 0.11.13-dev: do not split payment method words in the middle on desktop cards. */
.sbl-payment-route-card strong,
.sbl-payment-route-card small,
.sbl-payment-route-card em{
  word-break:keep-all;
  overflow-wrap:normal;
  line-break:strict;
}
@media(max-width:539px){
  .sbl-payment-route-card strong,
  .sbl-payment-route-card small,
  .sbl-payment-route-card em{
    word-break:keep-all;
    overflow-wrap:anywhere;
    line-break:strict;
  }
}


/* 0.11.37-dev: make the configured application deadline visible on the booking form. */
.sbl-form-page .sbl-summary-card .sbl-application-deadline{margin-top:9px;padding-top:9px;border-top:1px solid var(--sbl-line);font-size:14px;font-weight:700;color:var(--sbl-text)}


/* 0.11.41-dev customer-action colors */
.sbl-primary-button{background:var(--sbl-orange,#d97706)!important;color:#fff!important}
.sbl-schedule-request .sbl-button-secondary{border-color:var(--sbl-mint-dark,#356b5a)!important;background:#fff!important;color:var(--sbl-mint-dark,#356b5a)!important}
.sbl-empty-with-request{margin-bottom:16px}

/* 0.11.44: recoverable payment-method changes */
.sbl-payment-recovery-actions{display:grid;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--sbl-line)}
.sbl-payment-recovery-actions .sbl-payment-action{margin-top:0}
.sbl-payment-recovery-actions .sbl-button{width:100%;min-height:50px}
.sbl-payment-recovery-actions .sbl-button-secondary{background:#fff;color:var(--sbl-mint-dark)!important;border:1.5px solid var(--sbl-mint-dark);box-shadow:none}


/* 1.0.1: payment recovery wording and secondary payment-method change */
.sbl-payment-status-message{font-size:.94rem}
.sbl-payment-method-change{margin-top:18px;padding-top:16px;border-top:1px solid #e3e7e5;text-align:left}
.sbl-payment-method-change>strong{display:block;margin-bottom:4px;font-size:.94rem;color:#33423d}
.sbl-payment-method-change>p{margin:0 0 8px;color:#66736f;font-size:.86rem}
.sbl-payment-method-change .sbl-payment-action{margin:0}
.sbl-payment-method-change-link{appearance:none;border:0;background:transparent;padding:4px 0;color:#356f62;font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}
.sbl-payment-method-change-link:hover,.sbl-payment-method-change-link:focus{color:#244f46;text-decoration-thickness:2px}

/* 1.0.8: preserve the established standalone design when theme styles load via wp_head(). */
body.sbl-standalone-body,
body.sbl-payment-body{
  margin:0;
  background:var(--sbl-bg);
  padding:24px 12px;
}
body.sbl-standalone-body .sbl-hero h1,
body.sbl-payment-body .sbl-hero h1{
  color:var(--sbl-text);
}
body.sbl-standalone-body .sbl-section-title,
body.sbl-payment-body .sbl-section-title{
  background:transparent;
  color:var(--sbl-text);
  padding:0;
  border-radius:0;
}
body.sbl-standalone-body .sbl-calendar-month-title,
body.sbl-payment-body .sbl-calendar-month-title{
  background:transparent;
  padding:0;
  border-radius:0;
}
body.sbl-standalone-body .sbl-confirm-block h2,
body.sbl-payment-body .sbl-confirm-block h2{
  background:transparent;
  padding:0;
  border-radius:0;
}
body.sbl-standalone-body .sbl-card > h2,
body.sbl-payment-body .sbl-card > h2{
  background:transparent;
  color:var(--sbl-text);
  padding:0;
  margin:.83em 0;
  border-radius:0;
  font-size:1.5em;
  font-weight:700;
  line-height:1.65;
}
body.sbl-standalone-body .sbl-complete-card > h2,
body.sbl-payment-body .sbl-complete-card > h2{
  background:transparent;
  color:var(--sbl-text);
  padding:0;
  margin:.83em 0;
  border-radius:0;
  font-size:1.5em;
  font-weight:700;
  line-height:1.65;
}
body.sbl-standalone-body .sbl-card-message > h2,
body.sbl-payment-body .sbl-card-message > h2{
  background:transparent;
  color:var(--sbl-text);
  padding:0;
  margin:.83em 0;
  border-radius:0;
  font-size:1.5em;
  font-weight:700;
  line-height:1.65;
}
