/* FERPA v22: tactile surfaces, deliberate contrast, compact layouts. */
:root{--ferpa-success:#16785c;--ferpa-error:#b33b38}
.catalog-toolbar{padding:18px;border:1px solid #dce4e8;border-radius:24px;background:linear-gradient(145deg,#fff,#f0f4f6);box-shadow:0 12px 35px #102b3b08,inset 0 1px #fff}
.catalog-search{background:#fff;border-radius:16px;box-shadow:0 2px 6px #0b253808}
.catalog-search:focus-within{box-shadow:0 0 0 3px #f875352a;border-color:#ee7132}
.product-card{border:1px solid #dfe6e9;border-radius:24px;background:#fff;box-shadow:0 4px 14px #09273805;overflow:hidden;transition:border-color .2s,box-shadow .25s}
.product-card .product-media{background:radial-gradient(ellipse at 50% 35%,#fff 30%,#f0f4f5 100%)}
.product-card .product-info{background:radial-gradient(300px circle at var(--light-x,50%) var(--light-y,0%),#fff6ef,transparent),#fff}
@media(hover:hover){.product-card:hover{border-color:#f0b18e;box-shadow:0 14px 32px #122c3d12}.steps-grid article:hover{border-color:#f8783560}}
.product-card:focus-within{border-color:#ed763c;box-shadow:0 0 0 3px #ed763c20}
.button-orange{background:linear-gradient(135deg,#ff8948,#f46c28);box-shadow:inset 0 1px #ffffff65,0 5px 16px #ee71321a}
.button-orange:focus-visible,.close-button:focus-visible{outline:3px solid #28798a;outline-offset:4px}
.steps-grid{gap:20px}.steps-grid article{padding:28px;border:1px solid #ffffff20;border-radius:24px;background:radial-gradient(300px circle at var(--light-x,50%) var(--light-y,0%),#ffffff0d,transparent),linear-gradient(145deg,#ffffff08,#ffffff02);box-shadow:inset 0 1px #ffffff0c;transition:border-color .25s}
.steps-grid article>span{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:16px;border:1px solid #f7824350;background:#f7824310;color:#ffa16a;font-size:18px;margin-bottom:26px}
.faq-list details{border:1px solid #dce4e8;border-radius:18px;margin-bottom:10px;padding:0 22px;background:#ffffffa8;transition:background .2s,border-color .2s}.faq-list details[open]{background:#fff;border-color:#f2b18e}.faq-list summary{gap:20px}.faq-list details p{max-width:62ch}
.closing-section{background:radial-gradient(ellipse at 95% 100%,#b7512233,transparent 65%),#0b2232}
.checkout-dialog{border:1px solid #d8e2e6;box-shadow:0 32px 100px #00182655}.checkout-dialog .field input:focus,.checkout-dialog textarea:focus{outline:2px solid #f0783c;outline-offset:2px}
.submission-progress{padding:22px;margin:20px 0;border:1px solid #dce5e9;border-radius:22px;background:linear-gradient(145deg,#f6f9fa,#fff);color:#102b3d;overflow:hidden}
.submission-progress[hidden]{display:none}.submission-top{display:flex;align-items:center;gap:14px}.submission-top>div{flex:1;min-width:0}.submission-title{font-size:17px;display:block}.submission-description{font-size:13px;line-height:1.6;margin:5px 0 0;color:#536976;overflow-wrap:anywhere}.submission-time{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap;color:#536976}
.submission-orb{flex:0 0 44px;height:44px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 30% 25%,#ffce9a,#fa7939 48%,#be4b20);box-shadow:inset 0 0 0 5px #ffffff35,0 4px 12px #f8783530}.submission-orb svg{width:24px;fill:none;stroke:white;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;opacity:0}
.submission-track{height:7px;border-radius:20px;background:#dfe7eb;margin:22px 0 18px;overflow:hidden}.submission-track i{display:block;height:100%;width:var(--progress,0%);border-radius:inherit;background:linear-gradient(90deg,#ed7839,#ffa567);transition:width .4s ease,background .3s}
.submission-stages{display:flex;justify-content:space-between;gap:8px;padding:0;margin:0;list-style:none;font-size:12px;color:#607480}.submission-stages li{display:flex;gap:7px;align-items:center}.submission-stages b{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#e5ecef;color:#566e7d}.submission-stages .current{color:#a94c1c}.submission-stages .current b{background:#ffebdc;color:#a94c1c}.submission-stages .done{color:var(--ferpa-success)}.submission-stages .done b{background:#dcefe7;color:var(--ferpa-success)}
[data-state=complete] .submission-orb{background:var(--ferpa-success)}[data-state=complete] .submission-orb svg{opacity:1}[data-state=complete] .submission-track i{background:var(--ferpa-success)}[data-state=complete].submission-progress{border-color:#a7d5c3;background:#f1faf6}[data-state=error].submission-progress{border-color:#e0b1ae;background:#fff7f5}[data-state=error] .submission-title{color:var(--ferpa-error)}[data-state=error] .submission-orb{background:var(--ferpa-error)}
.details-motion .submission-progress:not([data-state=complete]):not([data-state=error]) .submission-orb{animation:ferpa-orb 1.5s ease-in-out infinite}.details-motion [data-state=send] .submission-track i{background-size:200% 100%;background-image:linear-gradient(90deg,#ed7839,#ffd7a2,#ed7839);animation:ferpa-stream 1.3s linear infinite}.details-motion [data-state=complete] .submission-orb{animation:ferpa-confirm .45s ease-out}.details-motion [data-state=complete] .submission-orb svg path{stroke-dasharray:24;animation:ferpa-check .5s ease-out}
@keyframes ferpa-orb{50%{box-shadow:inset 0 0 0 8px #ffffff35,0 0 0 5px #f8783512}}@keyframes ferpa-stream{to{background-position:200% 0}}@keyframes ferpa-confirm{50%{transform:scale(1.13)}}@keyframes ferpa-check{from{stroke-dashoffset:24}to{stroke-dashoffset:0}}
@media(max-width:600px){.catalog-toolbar{padding:12px;border-radius:18px}.steps-grid article{padding:23px}.submission-progress{padding:16px}.submission-stages li{flex-direction:column;gap:5px;font-size:11px}.submission-time{display:none}.submission-title{font-size:16px}.submission-top{gap:10px}.submission-orb{flex-basis:36px;height:36px}}
@media(prefers-reduced-motion:reduce){.submission-progress *,.product-card,.steps-grid article{animation:none!important;transition:none!important}}
html:not(.details-motion) .submission-track i{transition:none}
#checkoutForm.submission-finished>*:not(.submission-progress){display:none!important}
.submission-done{margin-top:24px}.submission-done[hidden]{display:none}
