/* Shared storefront base. Identical in every storefront docroot (tests/static check enforces it). Colours come from /brand/theme.css (admin-managed). */
.sf{font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;line-height:1.55;background:var(--bs-body-bg);color:var(--bs-body-color)}
.sf a{color:var(--sf-primary)}
.sf-skip{position:absolute;left:-999px;top:0;background:#000;color:#fff;padding:.5rem 1rem;z-index:100}.sf-skip:focus{left:0}
.sf-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.sf-header-row,.sf-header-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:.75rem;padding-bottom:.75rem}
.sf-brand{text-decoration:none!important;font-weight:700;font-size:1.25rem;color:inherit!important}
.sf-logo{max-height:40px;width:auto}
.sf-menu-btn{display:none;border:1px solid var(--bs-border-color);background:transparent;color:inherit;border-radius:.4rem;padding:.3rem .8rem}
.sf-nav{display:flex;flex-wrap:wrap;gap:.25rem 1.1rem}
.sf-nav a{text-decoration:none;color:inherit;padding:.35rem 0}.sf-nav a:hover{color:var(--sf-primary)}
@media (max-width:767.98px){.js .sf-menu-btn{display:inline-block}.js .sf-nav{display:none;width:100%;flex-direction:column}.js .sf-nav.open{display:flex}}
.sf-btn{background:var(--sf-primary);border-color:var(--sf-primary);color:#fff}.sf-btn:hover,.sf-btn:focus,.sf-btn:active{background:var(--sf-primary)!important;border-color:var(--sf-primary)!important;color:#fff!important;filter:brightness(.92)}
.sf-card{border:1px solid var(--bs-border-color);border-radius:.75rem;padding:1.1rem;background:var(--bs-body-bg)}
.sf-page{padding:2rem .75rem 3rem}.sf-section{padding:2.2rem .75rem}.sf-narrow{max-width:760px}
.sf-h2{font-size:1.5rem;margin-bottom:1rem}
.sf-hero{padding:3rem 0}.sf-hero h1{font-size:clamp(1.8rem,5vw,2.8rem);font-weight:700}
.sf-band{background:var(--bs-tertiary-bg);padding:2.2rem 0}
.sf-steps{list-style:none;padding:0;margin:0;display:grid;gap:.8rem}.sf-steps li{display:flex;gap:.75rem;align-items:flex-start}
.sf-step-n{flex:0 0 2rem;height:2rem;border-radius:50%;background:var(--sf-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700}
.sf-faq{border:1px solid var(--bs-border-color);border-radius:.5rem;padding:.75rem 1rem;margin-bottom:.5rem}.sf-faq summary{cursor:pointer;font-weight:600}.sf-faq p{margin:.5rem 0 0}
.sf-plan{position:relative;border:1px solid var(--bs-border-color);border-radius:.9rem;padding:1.25rem;background:var(--bs-body-bg);height:100%;margin-bottom:.75rem}
.sf-plan.is-featured{border-color:var(--sf-primary);box-shadow:0 0 0 2px rgba(var(--sf-primary-rgb),.18)}
.sf-plan-name{font-size:1.15rem;margin:0 0 .25rem}.sf-plan-price,.sf-price{font-size:1.5rem;font-weight:700;color:var(--sf-primary)}.sf-plan-meta,.sf-plan-desc{color:var(--bs-secondary-color)}
.sf-plan-tag{display:inline-block;background:var(--sf-primary);color:#fff;border-radius:2rem;padding:.05rem .6rem;font-size:.75rem;font-weight:600;vertical-align:middle}
.sf-features{list-style:none;padding:0;margin:.5rem 0 1rem}.sf-features li{padding-left:1.4rem;position:relative;margin-bottom:.3rem}.sf-features li::before{content:"\2713";position:absolute;left:0;color:var(--sf-primary);font-weight:700}
.sf-timeline{list-style:none;margin:0;padding:0 0 0 1.1rem;border-left:2px solid var(--sf-primary)}.sf-timeline li{position:relative;margin-bottom:.9rem}.sf-timeline li::before{content:"";position:absolute;left:-1.55rem;top:.4rem;width:.7rem;height:.7rem;border-radius:50%;background:var(--sf-primary)}
.sf-msg{border-radius:.75rem;padding:.75rem 1rem;border:1px solid var(--bs-border-color)}.sf-msg-you{background:rgba(var(--sf-primary-rgb),.1)}.sf-msg-team{background:var(--bs-tertiary-bg)}
.sf-method{border:1px dashed var(--bs-border-color);border-radius:.5rem;padding:.6rem .8rem;margin-bottom:.5rem}
.sf-footer{padding:2.5rem 0 1.5rem;margin-top:2rem}.sf-footer-brand{font-weight:700;font-size:1.1rem}.sf-footer-h{font-weight:600;margin-bottom:.4rem}
.sf-footer-links{display:flex;flex-direction:column;gap:.25rem}.sf-footer-links a{text-decoration:none}
.text-center .sf-footer-links{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:.5rem 1.2rem}
.sf-footer-info{margin-top:1.5rem;font-size:.9rem;opacity:.9}.sf-copy{margin-top:.5rem;opacity:.75}
