/* One visual system: snow paper, forest ink, clear hierarchy and quiet motion. */
:root{--ink:#183d35;--muted:#566b60;--paper:#f3f5ef;--line:#cbd8cf;--accent:#26644f;--warm:#fff4df;--red:#982f35;--radius:18px;font-size:16px;line-height:1.7}
body{background:var(--paper);-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
.shell{width:100%;max-width:1120px;margin-inline:auto;padding-inline:clamp(20px,4vw,48px)}
.site-head{gap:20px;padding-block:26px;margin-bottom:36px;border-bottom:1px solid var(--line)}
.brand{flex-shrink:0;letter-spacing:.15em}.brand small{letter-spacing:.19em;color:var(--muted)}
.site-head select{width:auto;max-width:180px;min-height:44px;font-size:.85rem;margin-left:auto;background:transparent;border-color:#81998b}
.navigation:empty{display:none}.navigation{flex-wrap:wrap;gap:14px}
h1{font-size:clamp(1.9rem,4.8vw,3rem);letter-spacing:-.035em;line-height:1.22;text-wrap:balance;margin-block:0 24px}
h2{font-size:clamp(1.15rem,2.5vw,1.5rem);line-height:1.4;letter-spacing:-.015em;text-wrap:balance}
h1,h2,h3{overflow-wrap:anywhere}h3{line-height:1.5}p{max-width:75ch;overflow-wrap:anywhere;text-wrap:pretty}
.hero{padding-block:12px 32px}.hero p{font-size:1.04rem;line-height:1.85}
.card{border-color:var(--line);padding:clamp(20px,3vw,32px);border-radius:var(--radius);box-shadow:0 3px 15px #183d3503}
button,a.primary,.app-open-link{min-height:48px;border-radius:10px;font-weight:650;line-height:1.5}
button{padding:11px 18px;border-color:#8ca292;background:#fff}
input,select,textarea{min-height:48px;border-color:#81998b;border-radius:9px;padding:10px 12px;line-height:1.5}
input[type=checkbox],input[type=radio]{min-height:0;accent-color:var(--accent)}
textarea{resize:vertical}.row>*{min-width:0}
:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
button:disabled{opacity:.65;cursor:default}.error,.ok,.notice{padding:18px 20px;border-radius:12px;line-height:1.75;overflow-wrap:anywhere}
.error{background:#fff0ee;border:1px solid #dfb7b4;color:#86242c}.ok{background:#edf6ef;border:1px solid #bdd2c3;color:#245336}
.notice{background:var(--warm);border:1px solid #dfcb9e;border-left:4px solid #a17431}
.foot{margin-top:40px;padding-block:24px 36px;border-top:1px solid var(--line);font-size:.8rem;line-height:1.8;color:var(--muted)}
.skip-link{position:fixed;top:12px;left:12px;transform:translateY(-160%);z-index:100;padding:12px 20px;background:var(--ink);color:white;border-radius:9px}
.skip-link:focus{transform:none}
.load-state{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(20px,4vw,32px);margin:24px 0;max-width:760px}
.load-state-heading{display:flex;align-items:center;gap:14px}.load-state-heading h2{margin:0;font-size:1.2rem}
.load-mark{flex-shrink:0;width:12px;height:12px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 6px #e8efe7}
.load-state p{margin-block:16px;line-height:1.75}.load-state p:last-child{margin-bottom:0;font-size:.88rem}
.load-track{height:5px;background:#e2eae3;overflow:hidden;border-radius:10px;margin-top:24px}
.load-track span{display:block;width:34%;height:100%;background:var(--accent);border-radius:inherit;animation:honoki-loading 1.7s ease-in-out infinite alternate}
@keyframes honoki-loading{from{transform:translateX(-110%)}to{transform:translateX(300%)}}
.lesson-shell{max-width:960px}.lesson-nav{gap:8px;padding-block:4px;margin:20px 0 28px}
.lesson-nav a{background:#fff;border-color:var(--line);font-size:.88rem;text-decoration:none;border-radius:9px;min-height:48px;padding:10px 14px}
.lesson-current{border-top:3px solid var(--accent);padding:clamp(24px,4vw,36px)}
.lesson-current #certainty{display:inline-flex;padding:5px 12px;border-radius:30px;background:#eaf0e7;font-size:.82rem;color:var(--ink)}
.lesson-current #current-state{font-size:clamp(1.35rem,3.5vw,1.8rem);margin-block:12px 24px;line-height:1.35}
.lesson-row{grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);gap:18px;padding-block:16px}.lesson-row dt{color:var(--muted);font-size:.9rem}
.lesson-shell summary{display:list-item;min-height:48px;padding-block:8px;font-size:1.08rem;line-height:1.6}
.lesson-shell details[open] summary{padding-bottom:18px;margin-bottom:8px;border-bottom:1px solid var(--line)}
.lesson-shell details .lesson-links button{max-width:100%;white-space:normal}
.lesson-tasks a{background:#eef3ec;text-decoration:none;padding:13px 16px;border-radius:10px}.lesson-tasks small{color:var(--muted)}
.faq-page{max-width:800px}.faq-page details{border-bottom:1px solid var(--line);padding-block:20px}.faq-page summary{font-weight:650;min-height:48px;cursor:pointer;line-height:1.7;padding-block:8px}
.faq-page details p{color:var(--muted);margin-top:16px}
dialog{max-width:min(640px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;border:1px solid var(--line);border-radius:20px;padding:clamp(20px,4vw,32px);color:var(--ink);background:white}
dialog::backdrop{background:#183d3566}.actions,.toolbar{flex-wrap:wrap;gap:12px}
table{font-variant-numeric:tabular-nums}td,th{vertical-align:top;overflow-wrap:anywhere}
@media(hover:hover){button:not(:disabled):hover{background:#edf3ea;border-color:var(--accent)}button.primary:not(:disabled):hover{background:#265c46;color:white}.lesson-nav a:hover{background:#e8efe5}}
@media(max-width:600px){.site-head{gap:12px;padding-block:20px;margin-bottom:26px}.site-head select{min-width:110px;max-width:145px}.shell{padding-inline:20px}h1{margin-bottom:20px}.card{margin-bottom:18px}.lesson-row{grid-template-columns:1fr;gap:4px}.lesson-nav a{flex:1 1 calc(50% - 8px);justify-content:center}.lesson-links{display:grid;grid-template-columns:1fr}.lesson-links>*{width:100%}.actions>button{flex:1 1 140px}.foot{margin-top:28px}.lesson-tasks a{align-items:flex-start;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.load-track span{width:28%;opacity:.55;transform:none}}
.status-info{padding:18px 20px;border-radius:12px;line-height:1.75;background:#f1f4f3;border:1px solid #c8d3d0;color:#36524a;overflow-wrap:anywhere}
.review-total{padding:22px 24px;margin-bottom:24px;background:#edf3ef;border:1px solid #bed0c4;border-radius:14px}
.review-total>p:first-child{font-weight:700;margin:0 0 6px}.review-total>strong{display:block;font-size:clamp(1.8rem,6vw,2.5rem);line-height:1.25;font-variant-numeric:tabular-nums}
.review-total>p:last-child{margin:12px 0 0;font-size:1rem;line-height:1.7;color:#36524a}
@media(forced-colors:active){.load-mark,.load-track span{background:Highlight}.load-state,.card{border:1px solid CanvasText}}

.arrival-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:28px}.arrival-gallery figure{margin:0;min-width:0}.arrival-gallery img{display:block;width:100%;height:auto;border-radius:10px;border:1px solid var(--line)}.arrival-gallery a{display:block;min-height:44px;line-height:1.7}.arrival-gallery a span{display:block;padding-block:10px;font-size:.88rem}.arrival-gallery figcaption{font-size:.85rem;color:var(--muted)}
@media(max-width:600px){.arrival-gallery{grid-template-columns:1fr}}

/* r24: hierarchy follows the customer's task, before auxiliary navigation. */
.lesson-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.lesson-heading h1{margin:0;min-width:0}.lesson-heading button{flex:0 0 auto;font-size:.82rem;max-width:120px;padding:10px 14px;background:transparent}.lesson-current>h2{margin-top:0;font-size:1.1rem}.lesson-current #certainty{margin-block:16px 12px}.lesson-current #current-state{margin-block:0 18px}.lesson-index{border-block:1px solid var(--line);margin:28px 0;padding-block:8px}.lesson-index summary{font-size:.95rem;color:var(--accent)}.lesson-index .lesson-nav{margin:8px 0 12px}.lesson-shell .lesson-index[open] summary{margin:0;border:0;padding-bottom:8px}
.price-comparison{border-bottom:1px solid #bacbbc;padding-bottom:24px;margin-bottom:28px}.price-comparison h2{margin-top:0}.plan-comparison{display:grid;gap:16px}.plan-comparison section{border-left:3px solid var(--accent);padding-left:14px}.plan-comparison h3{font-size:1rem;margin:0}.plan-comparison p{margin-block:8px;font-size:.88rem;line-height:1.6}.group-price-table{width:100%;border-collapse:collapse;font-size:.85rem}.group-price-table caption{text-align:left;font-weight:700;padding-block:20px 8px}.group-price-table td,.group-price-table th{padding:10px 6px;border-bottom:1px solid #c4d1c5;min-width:0}.group-price-table th{text-align:left;font-size:.78rem}.group-price-table td:last-child{font-size:.7rem;line-height:1.65}.group-price-table strong{white-space:nowrap;font-size:.86rem}.group-price-table tr[data-selected=true]{background:#dce9db}
.information-intro{color:var(--muted);margin-bottom:24px}.faq-links{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.faq-links a{display:inline-flex;align-items:center;min-height:44px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 14px;font-size:.88rem;text-decoration:none}.faq-page .faq-answer{padding:0;border-bottom:1px solid #b9c9bb}.faq-answer summary{padding:20px 8px;line-height:1.6}.faq-answer>div{padding:0 8px 20px}.faq-answer[open] summary{color:var(--accent)}.faq-answer p{margin-block:12px}
.arrival-decision{margin:32px 0}.arrival-decision>.eyebrow,.arrival-location>.eyebrow{margin:0}.arrival-destinations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px}.arrival-destinations section{padding:24px;background:#e8eee4;border-radius:12px;border-top:3px solid var(--accent)}.arrival-destinations h3{font-size:1.15rem;margin:0 0 12px}.arrival-destinations p{margin:10px 0}.arrival-location figure{margin:0}.arrival-place{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:32px;align-items:center;margin-block:24px}.arrival-location img{display:block;width:100%;height:auto;border-radius:10px}.arrival-location figure a{display:block;line-height:1.6}.arrival-location figure a span{display:block;padding-block:10px;font-size:.85rem;min-height:44px}.arrival-location figcaption{color:var(--muted);font-size:.8rem}.arrival-map-link{display:inline-flex;align-items:center;min-height:48px;margin-block:12px;padding:10px 16px;background:var(--accent);color:#fff;border-radius:8px}.arrival-route-map{max-width:720px;margin:24px auto 0}.arrival-area-map{margin-top:24px;border-top:1px solid var(--line);padding-top:8px}.arrival-area-map summary{min-height:48px;padding-block:12px;font-weight:600;cursor:pointer}.arrival-area-map figure{max-width:720px;margin:16px auto 0}
@media(max-width:600px){.lesson-heading{gap:10px;margin-bottom:20px}.lesson-heading h1{font-size:1.55rem}.lesson-heading button{max-width:100px;padding-inline:10px}.lesson-shell .site-head{margin-bottom:24px}.lesson-current{padding:22px}.arrival-destinations{grid-template-columns:1fr;gap:14px}.arrival-destinations section{padding:20px}.arrival-place{grid-template-columns:minmax(0,1fr) 120px;gap:16px;align-items:start}.arrival-map-link{font-size:.85rem;padding:10px 12px}.arrival-place h3{margin-top:0}.arrival-location .arrival-place p{font-size:.85rem}.group-price-table td,.group-price-table th{padding-inline:4px}.group-price-table td:last-child{font-size:.68rem}.group-price-table strong{font-size:.8rem}}

button.comparison-jump{display:inline-flex;align-items:center;width:auto;background:transparent;border:0;color:var(--accent);text-decoration:underline;text-underline-offset:4px;padding:8px 0;min-height:44px;font-size:.88rem;margin-bottom:12px}.price-comparison button.comparison-jump{margin-bottom:0}

@media(max-width:600px){body[data-page=foreign] .hero{padding-bottom:16px}.group-price-table td:last-child{font-size:.75rem;white-space:nowrap}}

/* r25: two destinations, readable comparison, one set of lesson details. */
.arrival-locations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-top:24px}.arrival-destination{min-width:0;padding:0 0 16px;border-bottom:1px solid var(--line)}.arrival-destination h3{margin:0 0 12px}.arrival-locations .arrival-place{grid-template-columns:1fr;gap:16px;margin:0}.arrival-locations .arrival-place figure{max-width:240px}.arrival-locations .arrival-map-link{margin-top:8px}
body[data-page=foreign] .booking-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start}body[data-page=foreign] .price-aside{background:#e8ede3;padding:28px;min-width:0}body[data-page=foreign] .foreign-conditions{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 36px}body[data-page=foreign] .foreign-conditions p{margin:0}.price-aside .price-comparison{border:0;margin:0;padding:0}.price-aside .plan-comparison h3{font-size:1.08rem}.price-aside .plan-comparison p{font-size:1rem}.price-aside .group-price-table{font-size:1rem}.price-aside .group-price-table th{font-size:.9rem}.price-aside .group-price-table td:last-child{font-size:.9rem}.price-aside .group-price-table strong{font-size:1.1rem}.price-aside .mini{font-size:.9rem}
.recovery-shell{max-width:800px}.recovery-intro{color:var(--muted);font-size:1.05rem;margin-bottom:28px}.recovery-card{max-width:640px}.recovery-card #message:empty{display:none}.recovery-card form{margin:0}.recovery-card button{width:100%;background:var(--accent);color:#fff;border-color:var(--accent)}.recovery-back{display:inline-flex;align-items:center;min-height:48px;margin:4px 0 28px;text-underline-offset:4px}.recovery-shell #bookings section{padding-block:20px;border-top:1px solid var(--line)}
@media(max-width:900px){body[data-page=foreign] .booking-layout{grid-template-columns:minmax(0,1fr)}body[data-page=foreign] .foreign-conditions{grid-template-columns:1fr}.arrival-locations{gap:24px}}
@media(max-width:600px){.arrival-locations{grid-template-columns:1fr}.arrival-locations .arrival-place{grid-template-columns:minmax(0,1fr) 120px}.price-aside .group-price-table th{font-size:.8rem}.price-aside .group-price-table td:last-child{font-size:.8rem}.price-aside .group-price-table strong{font-size:1rem}body[data-page=foreign] .price-aside{padding:20px}.recovery-intro{font-size:1rem}}

/* r26: a quiet alpine identity and editorial rhythm across customer pages. */
.site-head{position:relative}.site-head::after{content:"";position:absolute;right:0;bottom:-1px;width:112px;height:28px;background:url('./alpine-lines.svg') center bottom/cover no-repeat;opacity:.45;pointer-events:none}.brand{font-weight:750}.brand small{font-size:.65rem}.hero .eyebrow{font-size:.82rem;letter-spacing:.17em;margin-bottom:12px}.hero>p:not(.price){line-height:1.85;font-size:1.06rem;color:var(--muted)}.foot{font-size:.88rem}.muted,.mini{font-size:.88rem;line-height:1.8}.information-intro,.recovery-intro{line-height:1.85}details summary{cursor:pointer}.faq-answer summary{font-size:1.08rem}.faq-answer>div{max-width:68ch}.failure-contact{margin:12px 0 28px}.failure-contact a{display:inline-flex;align-items:center;min-height:48px;padding:10px 18px;border:1px solid var(--accent);border-radius:10px;font-weight:650;text-underline-offset:4px}.failure-contact a:hover{background:#e8efe5}
.policy-section{padding-top:20px;border-top:1px solid #b6c8b8;margin-top:20px;min-width:0}.policy-section:first-child{margin-top:0;padding-top:0;border-top:0}body:has(.booking-layout) .policy-section h2{font-size:1.05rem;margin:0 0 12px;line-height:1.45}body:has(.booking-layout) .policy-section p{font-size:.94rem;line-height:1.85;margin:10px 0}body[data-page=foreign] .foreign-conditions .policy-section{margin:0;padding:20px 0 0;border-top:1px solid #b6c8b8}body[data-page=foreign] .foreign-conditions .policy-section h2{font-size:1.15rem}body[data-page=foreign] .foreign-conditions .policy-section p{margin:10px 0}.policy>[data-policy-faq]{display:inline-flex;align-items:center;min-height:48px;margin-top:16px;text-underline-offset:4px}
.arrival-visuals{display:grid;grid-template-columns:220px minmax(0,1fr);gap:32px;align-items:start;padding-top:24px}.arrival-photo-reference{max-width:220px}.arrival-visuals .arrival-route-map{margin:0;max-width:450px;justify-self:end}.arrival-locations .arrival-place{display:block}.arrival-destination h3{font-size:1.1rem}.arrival-location .arrival-destination p{font-size:1rem;line-height:1.8}.arrival-map-link{text-underline-offset:4px}
@media(max-width:900px){.arrival-visuals{grid-template-columns:180px minmax(0,1fr);gap:24px}}
@media(max-width:600px){.site-head::after{width:84px;height:20px;opacity:.35}.hero>p:not(.price){font-size:1rem}.arrival-visuals{grid-template-columns:1fr;gap:24px}.arrival-visuals .arrival-route-map{justify-self:stretch}.arrival-photo-reference{max-width:180px}.faq-answer summary{font-size:1rem}body:has(.booking-layout) .policy-section p{font-size:.94rem}.failure-contact a{width:100%;justify-content:center}}

body:has(.booking-layout) .policy>.policy-title{font-size:1.25rem;margin:0 0 8px}body[data-page=foreign] .foreign-conditions>.policy-title{grid-column:1/-1}
/* Keep a clear pause between choosing a lesson and preparing to arrive. */
body[data-page=home] .cards{margin-bottom:28px}.faq-page .faq-answers{margin-bottom:28px}

/* Stop actions visibly while keeping the previously checked information readable. */
.action-hold{margin:0 0 16px;padding:12px 14px;border-inline-start:3px solid #82612d;border-radius:6px;background:#fff5e0;color:#463716;font-size:.875rem;line-height:1.7}
#size-form[inert] button:disabled,#cancel-form[inert] button:disabled,#pay-link[inert] button:disabled,#primary-action [data-payment-link][aria-disabled=true]{background:#e7ede8;border-color:#b8c8bd;color:#53665c;box-shadow:none;opacity:1;cursor:not-allowed}
#size-form[inert] input,#cancel-form[inert] textarea{background:#f3f6f2;border-color:#bccabf;color:var(--ink)}

/* Instructor choices remain distinct touch targets, including long names. */
#staff-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}
#staff-options button{text-align:left;white-space:normal;overflow-wrap:anywhere;width:100%;min-height:52px}
#staff-new{max-width:100%;white-space:normal;overflow-wrap:anywhere;background:transparent;color:var(--accent)}
body[data-page="staff"] #staff-guidance{padding:12px 18px}
body[data-page="staff"] #staff-guidance>summary{min-height:44px;cursor:pointer;font-weight:700;line-height:1.6}
body[data-page="staff"] #staff-guidance[open]>summary{margin-bottom:12px}
body[data-page="staff"] #staff-guidance h2{font-size:1.1rem}
body[data-page="staff"] #staff-guidance-status{margin-block:8px}
body[data-page="staff"] #staff-guidance-alert{display:block;min-height:48px;margin-block:12px;font-weight:700;text-underline-offset:4px}
body[data-page="staff"] .hero{padding-bottom:12px}
body[data-page="staff"] .site-head{padding-block:16px;margin-bottom:20px}
body[data-page="staff"] #staff>.section-head{margin-bottom:12px}
@media(max-width:600px){#staff-options{grid-template-columns:1fr}#staff-new{width:100%}}

/* Independent visual review: keep recovery and opposite actions distinct. */
.recovery-links{display:flex;flex-wrap:wrap;gap:12px}
.continuation-request{display:flex;flex-wrap:wrap;gap:12px}
.continuation-request h3{flex-basis:100%;margin-bottom:0}
.continuation-request button{white-space:normal;overflow-wrap:anywhere}
body:has(#booking[data-school]) .site-head{flex-wrap:wrap}
body:has(#booking[data-school]) .navigation{order:3;flex-basis:100%}

.lesson-current #current-state .state-phrase{display:inline-block;white-space:nowrap}

/* R5/R6: full details remain in the form, after date and guests. */
#booking-plan-details {margin-block:8px 24px}
#booking-plan-details summary {cursor:pointer;padding-block:12px;font-weight:650;min-height:48px}
#booking-plan-details p {margin-block:12px}
.conditions-jump {display:block;min-height:48px;margin-block:12px;white-space:normal;overflow-wrap:normal;word-break:normal}
.booking-step-list li>span:last-child {overflow-wrap:normal;word-break:normal}
.group-price-table thead th {overflow-wrap:normal;word-break:normal}
.group-price-table thead th:first-child {width:20%;white-space:nowrap}
.group-price-table thead th:not(:first-child) {width:40%}
body:has(.booking-layout) h1,body:has(.booking-layout) h2 {overflow-wrap:normal;word-break:normal}

/* R9: each route owns its condition, address, map action and photo. */
.arrival-route-cards {align-items:start}
.arrival-route-cards>.arrival-destination {padding:24px;border:1px solid #b7c7bd;border-radius:12px;background:#f5f5ed;min-width:0}
.arrival-route-cards .arrival-condition {font-weight:650}
.arrival-route-cards .arrival-map-link {display:inline-flex;align-items:center;min-height:48px;margin-block:8px 18px}
.arrival-route-cards .arrival-photo-reference {max-width:220px;margin-top:16px}
.arrival-route-cards .arrival-photo-reference figure {margin:0}
.arrival-route-cards .arrival-photo-reference img {width:100%;height:auto;display:block}
.arrival-location>.arrival-route-map {max-width:450px;margin-inline:auto}
@media(max-width:600px) {.arrival-route-cards>.arrival-destination {padding:20px}.arrival-route-cards .arrival-photo-reference {max-width:220px}}

@media(min-width:601px) {
 .arrival-route-cards {grid-template-rows:auto auto auto;align-items:stretch}
 .arrival-route-cards>.arrival-destination {grid-row:span 2;display:grid;grid-template-rows:subgrid;row-gap:0}
 .arrival-route-cards>.arrival-brio {grid-row:span 3}
 .arrival-route-cards .arrival-map-link {justify-self:start;align-self:start}
}


/* R14: reveal the BRIO reference photo on request, keeping arrival guidance close. */
.arrival-route-cards details.arrival-photo-reference {max-width:none;margin-top:0;border-top:1px solid var(--line)}
.arrival-route-cards details.arrival-photo-reference>summary {min-height:48px;padding-block:12px;font-weight:650;cursor:pointer}
.arrival-route-cards details.arrival-photo-reference>figure {max-width:220px;margin-block:12px 0}
.arrival-route-cards h3,.arrival-route-cards .arrival-map-link {text-wrap:balance}

.arrival-label-phrase {display:inline-block;white-space:nowrap}

/* Keep the prepared payment action visible while its latest status is checked. */
#stripe-link.primary {display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;border:1px solid var(--accent);background:var(--accent);color:white;text-decoration:none;box-sizing:border-box}
#stripe-link.primary[aria-disabled="true"] {background:#e7ede8;border-color:#b8c8bd;color:#53665c;cursor:wait}

/* A fixed, quiet status panel avoids moving the form while a request is pending. */
.operation-progress{position:fixed;inset:auto max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));max-width:680px;margin-inline:auto;z-index:90;padding:12px 16px;background:#f8fbf8;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 30px #183d351a;pointer-events:none;color:var(--ink)}
.operation-progress p{margin:0;max-width:none;line-height:1.5;overflow-wrap:anywhere}.operation-progress-label{font-size:.92rem;font-weight:650}.operation-progress-detail{font-size:.8rem;color:var(--muted);margin-top:4px!important}
.operation-progress-track{height:4px;overflow:hidden;background:var(--line);border-radius:4px;margin-top:9px}.operation-progress-track span{display:block;width:30%;height:100%;background:var(--accent);animation:honoki-operation 1.4s ease-in-out infinite alternate;border-radius:inherit}
.operation-progress[data-state=unknown],.operation-progress[data-state=error]{border-color:#cfb98b;background:var(--warm)}
@keyframes honoki-operation{from{transform:translateX(-105%)}to{transform:translateX(335%)}}
@media(prefers-reduced-motion:reduce){.operation-progress-track span{animation:none;width:100%;opacity:.65}.load-track span{animation:none;transform:none;width:100%;opacity:.65}}
@media(max-width:600px){
 body:has(>.operation-progress:not([hidden])){padding-bottom:calc(min(45dvh,18rem) + max(12px,env(safe-area-inset-bottom)) + 20px)}
 .operation-progress{padding:10px 12px;max-height:min(45dvh,18rem);overflow:auto;overscroll-behavior:contain}
 .operation-progress-detail{font-size:.875rem}
 .operation-progress-dismiss{min-height:44px;font-size:.875rem}
}

.cancellation-progress-help{display:block;margin-top:8px;font-size:.88em}.cancellation-progress-track{display:block;margin-top:12px}

.operation-progress-unknown{margin-top:8px;border-top:1px solid var(--line);padding-top:8px}.operation-progress-dismiss{pointer-events:auto;margin-top:8px;font-size:.75rem;min-height:36px}

.operation-progress[data-unresolved=true]{pointer-events:auto}
