/* Order form pages (/order/, /fr/commande/). */
.o-hero { padding: 56px 0 8px; text-align: center; }
.o-hero .lede { max-width: 640px; margin: 14px auto 0; }
.o-main { padding: 32px 0 0; }
.o-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: start; }
.o-card { background: #fff; border: 1px solid var(--border); border-radius: 16px; padding: 24px; margin: 0 0 16px; min-width: 0; }
fieldset.o-card { padding-top: 20px; }
.o-card legend { font-weight: 700; font-size: 18px; letter-spacing: -0.01em; padding: 0 6px; margin-left: -6px; }
.o-plans { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 8px; }
.o-plan { position: relative; cursor: pointer; display: block; }
.o-plan input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.o-plan-box { display: flex; flex-direction: column; gap: 2px; height: 100%; padding: 16px 16px 14px; border: 1.5px solid var(--border); border-radius: 12px; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease, background .2s ease; position: relative; }
.o-plan:hover .o-plan-box { border-color: rgba(0,117,222,.45); transform: translateY(-2px); }
.o-plan input:checked + .o-plan-box { border-color: var(--color-notion-blue); background: #f5faff; box-shadow: 0 0 0 3px rgba(0,117,222,.15); }
.o-plan input:focus-visible + .o-plan-box { outline: 2px solid var(--color-notion-blue); outline-offset: 2px; }
.o-badge { align-self: flex-start; font-size: 11px; padding: 2px 8px; margin-bottom: 6px; }
.o-plan-name { font-weight: 600; font-size: 15px; }
.o-plan-price { font-size: 28px; font-weight: 700; letter-spacing: -0.03em; line-height: 1.15; }
.o-plan-per { font-size: 13px; color: rgba(0,0,0,.55); }
.o-tick { position: absolute; top: 12px; right: 12px; width: 22px; height: 22px; border-radius: 50%; background: var(--color-notion-blue); color: #fff; display: grid; place-items: center; transform: scale(0); transition: transform .25s cubic-bezier(.34,1.56,.64,1); }
.o-tick svg { width: 14px; height: 14px; }
.o-plan input:checked + .o-plan-box .o-tick { transform: scale(1); }
.o-link { display: inline-block; margin-top: 14px; font-size: 14px; color: var(--color-notion-blue); }
.o-link:hover { text-decoration: underline; }
.o-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 8px; }
.o-field[data-field="message"] { grid-column: 1 / -1; }
.o-field label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 6px; }
.o-field input, .o-field textarea { width: 100%; font: inherit; font-size: 16px; padding: 11px 12px; border: 1px solid rgba(0,0,0,.18); border-radius: 10px; background: #fff; color: #000; transition: border-color .2s ease, box-shadow .2s ease; }
.o-field textarea { resize: vertical; min-height: 88px; }
.o-field input:focus, .o-field textarea:focus { outline: none; border-color: var(--color-notion-blue); box-shadow: 0 0 0 3px rgba(0,117,222,.15); }
.o-at { position: relative; }
.o-at span { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: rgba(0,0,0,.45); font-size: 16px; }
.o-at input { padding-left: 28px; }
.o-hint { font-size: 12.5px; color: rgba(0,0,0,.5); margin-top: 5px; }
.o-err { font-size: 13px; color: #c62a14; margin-top: 5px; min-height: 0; }
.o-err:empty { display: none; }
.o-field.bad input, .o-field.bad textarea { border-color: #e32d14; box-shadow: 0 0 0 3px rgba(227,45,20,.12); }
.o-consent { margin-top: 18px; font-size: 14px; color: var(--color-graphite); }
.o-consent label { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.o-consent input { margin-top: 3px; width: 18px; height: 18px; flex: none; accent-color: var(--color-notion-blue); }
.o-consent a { color: var(--color-notion-blue); text-decoration: underline; }
.o-server { margin-top: 14px; padding: 10px 12px; background: #fdecea; border-radius: 8px; }
.o-submit { margin-top: 20px; width: 100%; }
.o-submit[disabled] { opacity: .7; cursor: progress; }
.o-hp { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; opacity: 0; pointer-events: none; }
.o-side h2 { margin-bottom: 12px; }
.o-side ol { margin: 0; padding-left: 20px; display: grid; gap: 10px; color: var(--color-graphite); font-size: 15px; }
.o-safe { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; color: var(--color-graphite); background: #f2fbf4; border-color: #cfead6; }
.o-safe svg { width: 22px; height: 22px; flex: none; color: #0f7a3a; }
.o-done { text-align: center; padding: 40px 28px; }
.o-done p { color: var(--color-graphite); max-width: 460px; margin: 10px auto 22px; }
.o-check { width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 50%; background: #1fae5b; color: #fff; display: grid; place-items: center; animation: o-pop .5s cubic-bezier(.34,1.56,.64,1) both; }
.o-check svg { width: 34px; height: 34px; }
@keyframes o-pop { from { transform: scale(.4); opacity: 0; } to { transform: none; opacity: 1; } }
@media (max-width: 900px) { .o-grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .o-plans, .o-fields { grid-template-columns: 1fr; } .o-card { padding: 18px; } .o-hero { padding-top: 36px; } }
@media (prefers-reduced-motion: reduce) { .o-check, .o-tick, .o-plan-box { animation: none; transition: none; } }
