/* PREP Ecomalign — public website (clean SaaS) */
:root {
	--s-ink: #111318;
	--s-ink-2: #3A404B;
	--s-muted: #5B6270;
	--s-faint: #8A909B;
	--s-line: #ECEEF1;
	--s-line-2: #DADDE2;
	--s-soft: #FAFAFB;
	--s-soft-2: #F5F6F8;
	--s-accent: #F26B1D;
	--s-accent-ink: #C2410C;
	--s-accent-soft: #FFF1E8;
	--s-green: #15803D;
	--s-blue: #1D4ED8;
	--s-r: 16px;
	--s-max: 1200px;
	--s-font: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--s-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.pmo-site { margin: 0; background: #fff; color: var(--s-ink); font-family: var(--s-font); font-size: 16px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
body.pmo-site img { max-width: 100%; height: auto; display: block; }
body.pmo-site a { color: var(--s-accent-ink); text-decoration: none; }
body.pmo-site a:hover { color: #9A3412; }
.s-wrap { max-width: var(--s-max); margin: 0 auto; padding: 0 24px; }
.s-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.s-skip { position: absolute; left: -999px; top: 8px; background: var(--s-ink); color: #fff !important; padding: 10px 14px; border-radius: 8px; z-index: 100; }
.s-skip:focus { left: 8px; }
:focus-visible { outline: 3px solid rgba(242,107,29,.55); outline-offset: 2px; }

/* Buttons */
.s-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px; border-radius: 12px; font: 700 16px/1 var(--s-font); border: 1px solid transparent; cursor: pointer; transition: background .15s, border-color .15s, transform .05s; text-decoration: none; }
.s-btn:active { transform: translateY(1px); }
.s-btn--primary { background: var(--s-accent-ink); color: #fff !important; }
.s-btn--primary:hover { background: #9A3412; }
.s-btn--dark { background: var(--s-ink); color: #fff !important; }
.s-btn--dark:hover { background: #2A2E37; }
.s-btn--ghost { background: #fff; color: var(--s-ink) !important; border-color: var(--s-line-2); }
.s-btn--ghost:hover { border-color: #B9BEC7; }
.s-btn--sm { min-height: 42px; padding: 0 16px; font-size: 15px; border-radius: 10px; }
.s-btn--block { width: 100%; }

/* Header */
.s-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.92); backdrop-filter: saturate(160%) blur(10px); -webkit-backdrop-filter: saturate(160%) blur(10px); border-bottom: 1px solid var(--s-line); }
body.admin-bar .s-header { top: 32px; }
.s-header-in { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 70px; }
.s-logo { display: inline-flex; align-items: center; gap: 10px; color: var(--s-ink) !important; font-weight: 800; font-size: 18px; letter-spacing: -.3px; }
.s-logo-mark { width: 34px; height: 34px; border-radius: 9px; background: var(--s-ink); display: grid; place-items: center; flex: none; }
.s-logo span span { font-weight: 500; color: var(--s-muted); }
.s-nav { display: flex; gap: 6px; align-items: center; }
.s-nav a { color: var(--s-ink-2); font-weight: 500; font-size: 15px; padding: 10px 12px; border-radius: 8px; }
.s-nav a:hover, .s-nav a[aria-current="page"] { color: var(--s-ink); background: var(--s-soft-2); }
.s-header-cta { display: flex; gap: 8px; align-items: center; }
.s-header-cta .s-login { color: var(--s-ink) !important; font-weight: 600; font-size: 15px; padding: 10px 14px; }
.s-burger { display: none; width: 44px; height: 44px; border: 1px solid var(--s-line-2); border-radius: 10px; background: #fff; cursor: pointer; align-items: center; justify-content: center; }
@media (max-width: 960px) {
	.s-burger { display: inline-flex; }
	.s-nav, .s-header-cta { display: none; }
	.s-header.is-open .s-nav, .s-header.is-open .s-header-cta { display: flex; }
	.s-header-in { flex-wrap: wrap; }
	.s-header.is-open .s-nav { order: 3; flex-direction: column; align-items: stretch; width: 100%; padding: 8px 0; }
	.s-header.is-open .s-header-cta { order: 4; width: 100%; padding: 0 0 16px; }
	.s-header.is-open .s-header-cta .s-btn { flex: 1; }
}
@media (max-width: 782px) { body.admin-bar .s-header { top: 46px; } }

/* Type */
.s-eyebrow { font-size: 13px; font-weight: 700; color: var(--s-accent-ink); text-transform: uppercase; letter-spacing: 1.4px; }
.s-h1 { font-size: clamp(38px, 5.2vw, 60px); line-height: 1.04; letter-spacing: -1.8px; font-weight: 800; margin: 20px 0 18px; }
.s-h1 em { font-style: normal; color: var(--s-accent); }
.s-h2 { font-size: clamp(30px, 3.4vw, 42px); line-height: 1.12; letter-spacing: -1.1px; font-weight: 800; margin: 12px 0 14px; }
.s-h3 { font-size: 19px; font-weight: 700; margin: 18px 0 8px; letter-spacing: -.2px; }
.s-lead { font-size: 19px; line-height: 1.6; color: var(--s-muted); margin: 0; max-width: 560px; }
.s-p { font-size: 17px; line-height: 1.6; color: var(--s-muted); margin: 0; }
.s-small { font-size: 14px; color: var(--s-muted); }
.s-mono { font-family: var(--s-mono); }

/* Sections */
.s-section { padding: 104px 0; }
.s-section--soft { background: var(--s-soft); border-top: 1px solid #F0F1F3; border-bottom: 1px solid #F0F1F3; }
.s-section-head { max-width: 660px; margin-bottom: 48px; }
.s-section-head--center { margin-left: auto; margin-right: auto; text-align: center; }
@media (max-width: 700px) { .s-section { padding: 72px 0; } }

/* Hero */
.s-hero { position: relative; overflow: hidden; }
.s-hero::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(#F1F2F4 1px, transparent 1px), linear-gradient(90deg, #F1F2F4 1px, transparent 1px); background-size: 48px 48px; opacity: .7; -webkit-mask-image: linear-gradient(to bottom, #000 40%, transparent); mask-image: linear-gradient(to bottom, #000 40%, transparent); }
.s-hero-in { position: relative; display: flex; flex-wrap: wrap; gap: 56px; align-items: center; padding: 88px 24px 96px; }
.s-hero-copy { flex: 1 1 460px; min-width: 0; }
.s-hero-art { flex: 1 1 500px; min-width: 0; position: relative; }
.s-pill { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--s-line); background: #fff; padding: 6px 12px 6px 6px; border-radius: 999px; font-size: 13px; font-weight: 600; color: var(--s-ink-2); }
.s-pill b { background: var(--s-accent-soft); color: var(--s-accent-ink); padding: 3px 9px; border-radius: 999px; font-weight: 700; }
.s-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 32px; }
.s-ticks { display: flex; gap: 22px; flex-wrap: wrap; margin-top: 26px; font-size: 14px; color: var(--s-muted); font-weight: 500; }
.s-ticks span { display: inline-flex; align-items: center; gap: 7px; }
.s-page-hero { padding: 80px 0 56px; border-bottom: 1px solid var(--s-line); position: relative; overflow: hidden; }
.s-page-hero .s-h1 { font-size: clamp(34px, 4.4vw, 52px); }

/* Product mock */
.s-window { background: #fff; border: 1px solid #E6E8EC; border-radius: 18px; box-shadow: 0 30px 60px -20px rgba(17,19,24,.25), 0 8px 20px -8px rgba(17,19,24,.08); overflow: hidden; }
.s-window-bar { display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-bottom: 1px solid #F0F1F3; background: var(--s-soft); font-size: 12px; color: var(--s-faint); font-weight: 600; }
.s-window-bar i { width: 10px; height: 10px; border-radius: 50%; background: #E3E5E9; display: inline-block; }
.s-window-body { padding: 20px; background: #F7F8FA; display: flex; flex-direction: column; gap: 14px; }
.s-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.s-kpi { background: #fff; border: 1px solid var(--s-line); border-radius: 12px; padding: 14px; }
.s-kpi small { display: block; font-size: 12px; color: var(--s-muted); font-weight: 600; }
.s-kpi b { display: block; font-size: 24px; font-weight: 800; letter-spacing: -.5px; margin-top: 4px; }
.s-card { background: #fff; border: 1px solid var(--s-line); border-radius: 12px; padding: 16px; }
.s-bar-row { display: flex; align-items: center; gap: 12px; font-size: 13px; margin-top: 12px; }
.s-bar-row span:first-child { width: 90px; font-weight: 600; }
.s-bar { flex: 1; height: 10px; background: #F1F2F4; border-radius: 6px; overflow: hidden; }
.s-bar i { display: block; height: 100%; border-radius: 6px; background: var(--s-ink); }
.s-float { position: absolute; left: -24px; bottom: -26px; background: var(--s-ink); color: #fff; border-radius: 14px; padding: 14px 16px; display: flex; gap: 12px; align-items: center; box-shadow: 0 16px 30px -12px rgba(17,19,24,.45); font-size: 13px; max-width: 320px; }
.s-float span:last-child { color: #B9BEC7; }
.s-float b { color: #fff; display: block; }
.s-badge { display: inline-flex; align-items: center; font-size: 12px; font-weight: 700; padding: 5px 10px; border-radius: 999px; white-space: nowrap; }
.s-badge--blue { background: #EFF6FF; color: var(--s-blue); }
.s-badge--green { background: #ECFDF3; color: var(--s-green); }
.s-badge--amber { background: #FEF3C7; color: #92400E; }
.s-badge--grey { background: #F3F4F6; color: #4B5563; }
@media (max-width: 600px) { .s-float { position: relative; left: 0; bottom: 0; margin-top: 14px; } .s-kpis { grid-template-columns: 1fr 1fr; } }

/* Strip */
.s-strip { border-top: 1px solid #F0F1F3; border-bottom: 1px solid #F0F1F3; background: var(--s-soft); }
.s-strip .s-wrap { display: flex; align-items: center; justify-content: center; gap: 40px; flex-wrap: wrap; padding-top: 26px; padding-bottom: 26px; }
.s-strip small { font-size: 13px; text-transform: uppercase; letter-spacing: 1.4px; color: var(--s-faint); font-weight: 600; }
.s-strip strong { font-size: 20px; font-weight: 800; color: var(--s-ink-2); letter-spacing: -.4px; }

/* Grids & cards */
.s-grid { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.s-grid--2 { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.s-feature { border: 1px solid var(--s-line); border-radius: var(--s-r); padding: 26px; background: #fff; transition: border-color .15s, box-shadow .15s; }
.s-feature:hover { border-color: #D7DAE0; box-shadow: 0 10px 30px -18px rgba(17,19,24,.25); }
.s-feature p { font-size: 15px; line-height: 1.6; color: var(--s-muted); margin: 0; }
.s-feature ul, .s-list { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-direction: column; gap: 9px; font-size: 15px; color: var(--s-ink-2); }
.s-list { margin-top: 22px; font-size: 16px; gap: 11px; }
.s-feature li, .s-list li { display: flex; gap: 10px; align-items: flex-start; }
.s-feature li svg, .s-list li svg { flex: none; margin-top: 3px; }
.s-icon { width: 44px; height: 44px; border-radius: 12px; background: var(--s-accent-soft); display: grid; place-items: center; color: var(--s-accent-ink); }

/* Dark block */
.s-dark { background: var(--s-ink); color: #fff; border-radius: 24px; padding: 56px 48px; }
.s-dark .s-h2 { color: #fff; margin-top: 0; }
.s-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 28px; margin-top: 40px; }
.s-step { border-top: 2px solid #3A404B; padding-top: 22px; }
.s-step:first-child { border-top-color: var(--s-accent); }
.s-step .s-mono { font-size: 14px; color: #FDBA8C; }
.s-step h3 { font-size: 21px; font-weight: 700; margin: 10px 0 8px; }
.s-step p { font-size: 15px; line-height: 1.6; color: #B9BEC7; margin: 0; }
@media (max-width: 600px) { .s-dark { padding: 40px 24px; border-radius: 18px; } }

/* Split */
.s-split { display: flex; flex-wrap: wrap; gap: 56px; align-items: center; }
.s-split > * { flex: 1 1 440px; min-width: 0; }
.s-checks { display: flex; flex-direction: column; gap: 16px; margin-top: 28px; }
.s-check { display: flex; gap: 14px; font-size: 16px; line-height: 1.5; }
.s-check i { flex: none; width: 28px; height: 28px; border-radius: 8px; background: var(--s-ink); display: grid; place-items: center; }
.s-photo { border-radius: 20px; overflow: hidden; border: 1px solid var(--s-line); aspect-ratio: 4 / 3; background: var(--s-soft-2); }
.s-photo img { width: 100%; height: 100%; object-fit: cover; }

/* Platform cards */
.s-pcards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.s-pcard { background: #fff; border: 1px solid #E6E8EC; border-top: 4px solid var(--pc, var(--s-ink)); border-radius: 16px; padding: 20px; }
.s-pcard--wide { grid-column: span 2; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }

/* Tracking */
.s-track-form { display: flex; gap: 10px; flex-wrap: wrap; }
.s-input { width: 100%; min-height: 52px; border: 1px solid var(--s-line-2); border-radius: 12px; padding: 0 16px; font: 500 16px var(--s-font); color: var(--s-ink); background: #fff; transition: border-color .15s, box-shadow .15s; }
textarea.s-input { min-height: 140px; padding: 14px 16px; resize: vertical; line-height: 1.5; }
select.s-input { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235B6270' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; padding-right: 40px; }
.s-input:focus { outline: none; border-color: var(--s-accent); box-shadow: 0 0 0 4px rgba(242,107,29,.15); }
.s-track-form .s-input { flex: 1 1 240px; font-family: var(--s-mono); text-transform: uppercase; }
.s-track-card { border: 1px solid #E6E8EC; border-radius: 18px; padding: 26px; background: #fff; }
.s-track-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding-bottom: 18px; border-bottom: 1px solid #F0F1F3; }
.s-track-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 16px; padding: 18px 0; border-bottom: 1px solid #F0F1F3; }
.s-track-meta small { display: block; font-size: 12px; color: var(--s-muted); font-weight: 600; }
.s-track-meta b { font-size: 15px; }
.s-timeline { list-style: none; margin: 0; padding: 18px 0 0; }
.s-timeline li { display: flex; gap: 16px; }
.s-timeline .dot { display: flex; flex-direction: column; align-items: center; }
.s-timeline .dot i { width: 14px; height: 14px; border-radius: 50%; background: #C7CBD2; flex: none; }
.s-timeline li:first-child .dot i { background: var(--s-accent); box-shadow: 0 0 0 4px var(--s-accent-soft); }
.s-timeline .dot span { width: 2px; flex: 1; background: var(--s-line); min-height: 30px; }
.s-timeline li:last-child .dot span { display: none; }
.s-timeline .txt { padding-bottom: 18px; }
.s-timeline .txt b { display: block; font-size: 15px; }
.s-timeline .txt small { font-size: 13px; color: var(--s-muted); }
.s-empty { text-align: center; color: var(--s-muted); padding: 30px 10px; }

/* Pricing */
.s-price { width: 100%; max-width: 880px; margin: 0 auto; display: flex; flex-wrap: wrap; background: #fff; border: 1px solid #E6E8EC; border-radius: 22px; overflow: hidden; box-shadow: 0 20px 40px -24px rgba(17,19,24,.25); }
.s-price > div { flex: 1 1 340px; padding: 40px; display: flex; flex-direction: column; gap: 14px; }
.s-price > div:first-child { border-right: 1px solid #F0F1F3; gap: 18px; }
.s-price-amt { display: flex; align-items: baseline; gap: 8px; }
.s-price-amt b { font-size: 60px; font-weight: 800; letter-spacing: -2px; line-height: 1; }
.s-price-amt span { font-size: 17px; color: var(--s-muted); font-weight: 600; }
.s-li { display: flex; gap: 12px; font-size: 15px; align-items: flex-start; }
.s-li svg { flex: none; margin-top: 1px; }
@media (max-width: 600px) { .s-price > div { padding: 28px 22px; } .s-price > div:first-child { border-right: 0; border-bottom: 1px solid #F0F1F3; } }

/* FAQ */
.s-faq { max-width: 820px; margin: 0 auto; border-top: 1px solid var(--s-line); }
.s-faq details { border-bottom: 1px solid var(--s-line); padding: 22px 0; }
.s-faq summary { font-size: 18px; font-weight: 700; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px; align-items: center; }
.s-faq summary::-webkit-details-marker { display: none; }
.s-faq summary::after { content: "+"; font-size: 24px; font-weight: 500; color: var(--s-faint); transition: transform .15s; }
.s-faq details[open] summary::after { transform: rotate(45deg); }
.s-faq p { font-size: 16px; line-height: 1.6; color: var(--s-muted); margin: 12px 0 0; }

/* CTA */
.s-cta { background: var(--s-accent); border-radius: 24px; padding: 56px 48px; display: flex; justify-content: space-between; align-items: center; gap: 28px; flex-wrap: wrap; }
.s-cta h2 { color: var(--s-ink); margin: 0 0 10px; }
.s-cta p { margin: 0; color: #2A1206; font-size: 17px; }
@media (max-width: 600px) { .s-cta { padding: 40px 24px; border-radius: 18px; } }

/* Forms / notices */
.s-field { display: flex; flex-direction: column; gap: 7px; }
.s-field label { font-size: 14px; font-weight: 600; color: var(--s-ink); }
.s-form { display: flex; flex-direction: column; gap: 16px; }
.s-form-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; }
.s-notice { padding: 13px 16px; border-radius: 12px; font-size: 15px; font-weight: 500; border: 1px solid; }
.s-notice--ok { background: #ECFDF3; border-color: #A7F3D0; color: #065F46; }
.s-notice--err { background: #FEF2F2; border-color: #FECACA; color: #991B1B; }
.s-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.s-check-label { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--s-ink-2); line-height: 1.45; }
.s-check-label input { width: 18px; height: 18px; accent-color: var(--s-ink); margin-top: 1px; flex: none; }

/* Contact */
.s-contact { display: flex; flex-wrap: wrap; gap: 40px; align-items: flex-start; }
.s-contact > aside { flex: 1 1 320px; display: flex; flex-direction: column; gap: 14px; }
.s-contact > div { flex: 2 1 480px; min-width: 0; border: 1px solid var(--s-line); border-radius: 20px; padding: 34px; }
.s-cinfo { display: flex; gap: 14px; border: 1px solid var(--s-line); border-radius: 16px; padding: 20px; }
.s-cinfo b { display: block; font-size: 15px; }
.s-cinfo a, .s-cinfo span { font-size: 15px; }
@media (max-width: 600px) { .s-contact > div { padding: 24px 18px; } }

/* Auth */
.s-auth { min-height: 100vh; display: flex; flex-wrap: wrap; }
.s-auth-main { flex: 1 1 480px; min-width: 0; display: flex; flex-direction: column; padding: 28px 24px; }
.s-auth-box { flex: 1; display: flex; align-items: center; justify-content: center; padding: 40px 0; }
.s-auth-box > div { width: 100%; max-width: 420px; display: flex; flex-direction: column; gap: 22px; }
.s-tabs { display: flex; background: #F3F4F6; padding: 4px; border-radius: 12px; }
.s-tabs button { flex: 1; min-height: 44px; border: 0; border-radius: 9px; background: transparent; color: var(--s-muted); font: 600 15px var(--s-font); cursor: pointer; }
.s-tabs button[aria-selected="true"] { background: #fff; color: var(--s-ink); font-weight: 700; box-shadow: 0 1px 3px rgba(17,19,24,.12); }
.s-auth-side { flex: 1 1 480px; min-width: 0; background: var(--s-ink); color: #fff; padding: 56px 48px; display: flex; flex-direction: column; justify-content: center; gap: 32px; position: relative; overflow: hidden; }
.s-auth-side::before { content: ""; position: absolute; right: -120px; top: -120px; width: 420px; height: 420px; border-radius: 50%; border: 60px solid #1C1F26; }
.s-auth-side > * { position: relative; max-width: 460px; }
.s-member-card { background: #1A1D24; border: 1px solid #2A2E37; border-radius: 16px; padding: 20px; display: flex; flex-direction: column; gap: 12px; }
.s-member-card .s-bar { background: #2A2E37; height: 6px; }
.s-member-card .s-bar i { background: var(--s-accent); }
[hidden] { display: none !important; }

/* Footer */
.s-footer { background: var(--s-ink); color: #B9BEC7; margin-top: 0; }
.s-footer-top { display: flex; flex-wrap: wrap; gap: 48px; justify-content: space-between; padding: 64px 24px 32px; }
.s-footer-cols { display: flex; gap: 56px; flex-wrap: wrap; font-size: 14px; }
.s-footer-cols div { display: flex; flex-direction: column; gap: 10px; }
.s-footer-cols b { color: #fff; }
body.pmo-site .s-footer a { color: #B9BEC7; }
body.pmo-site .s-footer a:hover { color: #fff; }
.s-footer-bottom { border-top: 1px solid #23262E; padding: 20px 24px 32px; font-size: 13px; color: var(--s-faint); display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }

/* Preview ribbon (admins only) */
.s-preview { position: fixed; left: 50%; bottom: 16px; transform: translateX(-50%); z-index: 200; background: var(--s-ink); color: #fff; border-radius: 999px; padding: 10px 10px 10px 18px; display: flex; gap: 12px; align-items: center; font-size: 14px; box-shadow: 0 10px 30px rgba(0,0,0,.3); }
body.pmo-site .s-preview a { color: #fff; background: #2A2E37; padding: 7px 12px; border-radius: 999px; font-weight: 600; }

/* Fixes */
body.pmo-site .s-nav a { color: var(--s-ink-2); }
body.pmo-site .s-nav a:hover, body.pmo-site .s-nav a[aria-current="page"] { color: var(--s-ink); }
.s-float { left: auto; right: -18px; bottom: auto; top: -24px; }
.s-member-card .s-bar { flex: none; }
@media (max-width: 600px) {
	.s-float { right: 0; top: 0; }
	.s-preview { left: 12px; right: 12px; transform: none; border-radius: 14px; flex-wrap: wrap; font-size: 13px; padding: 10px 12px; }
	.s-pill { flex-wrap: wrap; border-radius: 14px; }
}

/* WooCommerce login form inside the new login page */
.s-wc-login form.woocommerce-form-login { border: 0 !important; padding: 0 !important; margin: 0 !important; display: flex; flex-direction: column; gap: 16px; }
.s-wc-login form .form-row { margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.s-wc-login label { font-size: 14px; font-weight: 600; color: var(--s-ink); }
.s-wc-login label .required { color: var(--s-accent-ink); text-decoration: none; }
.s-wc-login input.input-text, .s-wc-login input[type="text"], .s-wc-login input[type="email"], .s-wc-login input[type="password"] { width: 100%; min-height: 52px; border: 1px solid var(--s-line-2); border-radius: 12px; padding: 0 16px; font: 500 16px var(--s-font); color: var(--s-ink); background: #fff; box-sizing: border-box; }
.s-wc-login input.input-text:focus { outline: none; border-color: var(--s-accent); box-shadow: 0 0 0 4px rgba(242,107,29,.15); }
.s-wc-login .password-input { position: relative; display: block; }
.s-wc-login .show-password-input { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); background: none; border: 0; cursor: pointer; }
.s-wc-login .woocommerce-form-login__rememberme { display: flex !important; flex-direction: row !important; align-items: center; gap: 10px; font-weight: 500 !important; color: var(--s-ink-2) !important; margin-bottom: 4px; }
.s-wc-login .woocommerce-form-login__rememberme input { width: 18px; height: 18px; accent-color: var(--s-ink); }
.s-wc-login button.woocommerce-button, .s-wc-login button[type="submit"] { width: 100%; min-height: 52px; border: 0; border-radius: 12px; background: var(--s-ink) !important; color: #fff !important; font: 700 16px var(--s-font); cursor: pointer; }
.s-wc-login button[type="submit"]:hover { background: #2A2E37 !important; }
.s-wc-login .lost_password { margin: 0; font-size: 14px; font-weight: 600; }
.s-wc-login .g-recaptcha, .s-wc-login .aios-captcha, .s-wc-login [class*="captcha"] { margin: 2px 0; }
.s-wc-login .woocommerce-error, .s-wc-login .woocommerce-message, .s-wc-login .woocommerce-info { list-style: none; margin: 0 0 16px; padding: 13px 16px; border-radius: 12px; font-size: 15px; background: #FEF2F2; border: 1px solid #FECACA; color: #991B1B; }
.s-wc-login .woocommerce-message { background: #ECFDF3; border-color: #A7F3D0; color: #065F46; }
.s-wc-login .clear { display: none; }

/* =========================================================
   Generic pages (My account, Cart, Checkout, Gift cards, Privacy…)
   Theme / Elementor / WooCommerce styles stay loaded here, so the
   new design is enforced with higher specificity.
   ========================================================= */
body.pmo-site--generic { font-family: var(--s-font) !important; color: var(--s-ink); background: #fff; }
body.pmo-site .s-header, body.pmo-site .s-footer { font-family: var(--s-font); }
body.pmo-site .s-header a.s-btn, body.pmo-site .s-footer a.s-btn, body.pmo-site a.s-btn { text-decoration: none; }
body.pmo-site .s-btn--dark, body.pmo-site .s-btn--dark:hover { color: #fff !important; }
body.pmo-site button.s-burger { background: #fff !important; border: 1px solid var(--s-line-2) !important; color: var(--s-ink) !important; border-radius: 10px !important; padding: 0 !important; }
body.pmo-site .s-logo, body.pmo-site .s-logo:hover { color: var(--s-ink) !important; text-decoration: none; }
body.pmo-site .s-footer .s-logo, body.pmo-site .s-footer .s-logo:hover { color: #fff !important; }
body.pmo-site .s-header-cta .s-login { color: var(--s-ink) !important; }

.s-generic-hero { padding: 64px 0 36px; border-bottom: 1px solid var(--s-line); background: var(--s-soft); }
.s-generic-hero .s-h1 { font-size: clamp(32px, 4vw, 46px); margin: 0 0 8px; }
.s-generic-body { padding-top: 40px; padding-bottom: 96px; }
.s-generic--builder .s-generic-builder { min-height: 40vh; }

/* Prose (privacy policy, posts) */
.s-generic-body > p, .s-generic-body > ul, .s-generic-body > ol, .s-generic-body > h2, .s-generic-body > h3, .s-generic-body > h4,
.s-generic-body .entry-content > * { max-width: 760px; }
.s-generic-body h2 { font-size: 26px; font-weight: 800; letter-spacing: -.5px; margin: 40px 0 12px; }
.s-generic-body h3 { font-size: 20px; font-weight: 700; margin: 28px 0 10px; }
.s-generic-body p, .s-generic-body li { font-size: 16px; line-height: 1.7; color: var(--s-ink-2); }
.s-generic-item { padding: 22px 0; border-bottom: 1px solid var(--s-line); }
.s-generic-item h2 { margin: 0 0 6px; }
.s-generic-item h2 a { color: var(--s-ink) !important; }

/* Elementor pages inside the shell: unify fonts */
body.pmo-site--generic .elementor, body.pmo-site--generic .elementor h1, body.pmo-site--generic .elementor h2, body.pmo-site--generic .elementor h3,
body.pmo-site--generic .elementor p, body.pmo-site--generic .elementor .elementor-heading-title, body.pmo-site--generic .elementor .elementor-button {
	font-family: var(--s-font) !important;
}
body.pmo-site--generic .elementor .elementor-button { border-radius: 12px !important; font-weight: 700 !important; }

/* ---------- WooCommerce: shared ---------- */
body.pmo-site--generic .woocommerce, body.pmo-site--generic .wc-block-components-main, body.pmo-site--generic .wp-block-woocommerce-cart, body.pmo-site--generic .wp-block-woocommerce-checkout { font-family: var(--s-font) !important; color: var(--s-ink); }
body.pmo-site--generic .woocommerce a { color: var(--s-accent-ink); }
body.pmo-site--generic .woocommerce .button, body.pmo-site--generic .woocommerce button.button, body.pmo-site--generic .woocommerce input.button,
body.pmo-site--generic .woocommerce a.button, body.pmo-site--generic .woocommerce button[type="submit"],
body.pmo-site--generic .wc-block-components-button:not(.is-link), body.pmo-site--generic .wc-block-cart__submit-button, body.pmo-site--generic .wc-block-components-checkout-place-order-button {
	background: var(--s-ink) !important; color: #fff !important; border: 0 !important; border-radius: 12px !important; min-height: 48px; padding: 0 22px !important;
	font: 700 15px var(--s-font) !important; text-transform: none !important; letter-spacing: 0 !important; box-shadow: none !important; display: inline-flex; align-items: center; justify-content: center; text-decoration: none !important;
}
body.pmo-site--generic .woocommerce .button:hover, body.pmo-site--generic .wc-block-components-button:not(.is-link):hover { background: #2A2E37 !important; }
body.pmo-site--generic .wc-block-components-checkout-place-order-button, body.pmo-site--generic .wc-block-cart__submit-button { background: var(--s-accent-ink) !important; width: 100%; }
body.pmo-site--generic .wc-block-components-checkout-place-order-button:hover, body.pmo-site--generic .wc-block-cart__submit-button:hover { background: #9A3412 !important; }

body.pmo-site--generic .woocommerce form .form-row label, body.pmo-site--generic .woocommerce label { font-weight: 600; font-size: 14px; color: var(--s-ink); }
body.pmo-site--generic .woocommerce input.input-text, body.pmo-site--generic .woocommerce select, body.pmo-site--generic .woocommerce textarea,
body.pmo-site--generic .woocommerce form .form-row input.input-text {
	min-height: 48px; border: 1px solid var(--s-line-2) !important; border-radius: 12px !important; padding: 0 14px !important; font: 500 15px var(--s-font) !important; background: #fff !important; box-shadow: none !important; color: var(--s-ink);
}
body.pmo-site--generic .woocommerce textarea { padding: 12px 14px !important; }
body.pmo-site--generic .woocommerce input.input-text:focus, body.pmo-site--generic .woocommerce select:focus, body.pmo-site--generic .woocommerce textarea:focus { outline: none; border-color: var(--s-accent) !important; box-shadow: 0 0 0 4px rgba(242,107,29,.15) !important; }
body.pmo-site--generic .wc-block-components-text-input input, body.pmo-site--generic .wc-block-components-combobox .components-combobox-control__input, body.pmo-site--generic .wc-blocks-components-select__select {
	border-radius: 12px !important; border-color: var(--s-line-2) !important; font-family: var(--s-font) !important;
}

body.pmo-site--generic .woocommerce-error, body.pmo-site--generic .woocommerce-message, body.pmo-site--generic .woocommerce-info, body.pmo-site--generic .wc-block-components-notice-banner {
	border-radius: 12px !important; border: 1px solid var(--s-line) !important; background: var(--s-soft) !important; color: var(--s-ink) !important; padding: 14px 18px !important; font-family: var(--s-font); box-shadow: none !important;
}
body.pmo-site--generic .woocommerce-error { background: #FEF2F2 !important; border-color: #FECACA !important; color: #991B1B !important; }
body.pmo-site--generic .woocommerce-message { background: #ECFDF3 !important; border-color: #A7F3D0 !important; color: #065F46 !important; }
body.pmo-site--generic .woocommerce-error::before, body.pmo-site--generic .woocommerce-message::before, body.pmo-site--generic .woocommerce-info::before { display: none; }

body.pmo-site--generic .woocommerce table.shop_table { border: 1px solid var(--s-line) !important; border-radius: 14px !important; border-collapse: separate !important; overflow: hidden; font-size: 15px; }
body.pmo-site--generic .woocommerce table.shop_table th { background: #F7F8FA; color: var(--s-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .6px; font-weight: 700; padding: 12px 16px !important; }
body.pmo-site--generic .woocommerce table.shop_table td { padding: 14px 16px !important; border-top: 1px solid #F2F3F5 !important; }

/* ---------- My account ---------- */
body.woocommerce-account.pmo-site--generic .s-generic-body > .woocommerce, body.woocommerce-account.pmo-site--generic .s-generic-body .woocommerce:has(.woocommerce-MyAccount-navigation) { display: flex !important; flex-wrap: wrap; gap: 32px; align-items: flex-start; max-width: none !important; padding: 0 !important; background: transparent !important; box-shadow: none !important; border: 0 !important; margin: 0 !important; }
body.pmo-site--generic .woocommerce-MyAccount-navigation { flex: 0 0 240px; float: none !important; width: auto !important; }
body.pmo-site--generic .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 8px; border: 1px solid var(--s-line); border-radius: 16px; display: flex; flex-direction: column; gap: 2px; }
body.pmo-site--generic .woocommerce-MyAccount-navigation li { margin: 0; padding: 0; border: 0 !important; }
body.pmo-site--generic .woocommerce-MyAccount-navigation li a { display: block; padding: 11px 14px; border-radius: 10px; color: var(--s-ink-2) !important; font-weight: 600; font-size: 15px; text-decoration: none; }
body.pmo-site--generic .woocommerce-MyAccount-navigation li a:hover { background: var(--s-soft-2); color: var(--s-ink) !important; }
body.pmo-site--generic .woocommerce-MyAccount-navigation li.is-active a { background: var(--s-ink); color: #fff !important; }
body.pmo-site--generic .woocommerce-MyAccount-content { flex: 1 1 520px; min-width: 0; float: none !important; width: auto !important; border: 1px solid var(--s-line); border-radius: 18px; padding: 28px; }
body.pmo-site--generic .woocommerce-MyAccount-content p { font-size: 15px; line-height: 1.65; color: var(--s-ink-2); }
@media (max-width: 760px) { body.pmo-site--generic .woocommerce-MyAccount-navigation { flex-basis: 100%; } body.pmo-site--generic .woocommerce-MyAccount-content { padding: 20px; } }

/* My account login card (logged out) */
body.woocommerce-account.pmo-site--generic:not(.logged-in) .s-generic-body .woocommerce { display: block !important; max-width: 460px !important; margin: 0 auto !important; padding: 0 !important; background: transparent !important; box-shadow: none !important; border: 0 !important; }
body.pmo-site--generic form.woocommerce-form-login, body.pmo-site--generic form.woocommerce-form-register { border: 1px solid var(--s-line) !important; border-radius: 18px !important; padding: 28px !important; margin: 0 !important; }
body.pmo-site--generic .woocommerce-form-login__rememberme { display: flex !important; align-items: center; gap: 8px; margin: 0 0 12px; }
body.pmo-site--generic .woocommerce-account .u-columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; }
body.pmo-site--generic .woocommerce-account .u-column1, body.pmo-site--generic .woocommerce-account .u-column2 { width: auto !important; float: none !important; }

/* ---------- Cart / Checkout (blocks) ---------- */
body.pmo-site--generic .wp-block-woocommerce-cart, body.pmo-site--generic .wp-block-woocommerce-checkout { margin-top: 8px; }
body.pmo-site--generic .wc-block-components-sidebar .wc-block-components-panel, body.pmo-site--generic .wc-block-components-totals-wrapper,
body.pmo-site--generic .wp-block-woocommerce-checkout-order-summary-block, body.pmo-site--generic .wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block {
	border-color: var(--s-line) !important;
}
body.pmo-site--generic .wp-block-woocommerce-checkout-order-summary-block, body.pmo-site--generic .wp-block-woocommerce-cart-order-summary-block { border: 1px solid var(--s-line) !important; border-radius: 16px !important; padding: 8px 4px; }
body.pmo-site--generic .wc-block-components-title, body.pmo-site--generic .wc-block-components-checkout-step__title { font-family: var(--s-font) !important; font-weight: 800 !important; letter-spacing: -.3px; color: var(--s-ink) !important; }
body.pmo-site--generic .wc-block-components-radio-control__option, body.pmo-site--generic .wc-block-components-radio-control-accordion-option { border-radius: 12px !important; }
body.pmo-site--generic .wc-block-cart-items th, body.pmo-site--generic .wc-block-cart-items__header { color: var(--s-muted) !important; font-size: 12px !important; letter-spacing: .6px; }
body.pmo-site--generic .wc-block-components-product-name { color: var(--s-ink) !important; font-weight: 700 !important; text-decoration: none !important; }
body.pmo-site--generic .wc-block-cart__empty-cart__title, body.pmo-site--generic .with-empty-cart-icon { font-family: var(--s-font) !important; font-weight: 800 !important; }
body.pmo-site--generic .wp-block-woocommerce-empty-cart-block .wp-block-separator { display: none; }

/* Theme overrides on generic pages */
body.pmo-site main#main { display: block !important; width: 100% !important; max-width: none !important; padding: 0 !important; margin: 0 !important; }
body.pmo-site .s-header .s-burger { display: none !important; }
@media (max-width: 960px) { body.pmo-site .s-header .s-burger { display: inline-flex !important; } }
body.pmo-site .s-header .s-nav, body.pmo-site .s-header .s-header-cta { margin: 0; }
body.pmo-site main.s-generic { min-height: calc(100vh - 360px); }
body.pmo-site .s-generic--builder .s-generic-builder { padding: 48px 0 96px; }
body.pmo-site--generic .wp-block-woocommerce-empty-cart-block, body.pmo-site--generic .wp-block-woocommerce-cart, body.pmo-site--generic .wp-block-woocommerce-checkout { max-width: 1152px; margin-left: auto !important; margin-right: auto !important; padding-left: 24px; padding-right: 24px; box-sizing: border-box; }
body.pmo-site--generic .wc-block-grid__products, body.pmo-site--generic .wc-block-product-template { justify-content: center; }
body.pmo-site--generic .wp-block-button__link, body.pmo-site--generic .wc-block-components-product-button__button, body.pmo-site--generic .wc-block-grid__product-add-to-cart a {
	background: var(--s-ink) !important; color: #fff !important; border-radius: 12px !important; font: 700 14px var(--s-font) !important; padding: 12px 18px !important; border: 0 !important; text-decoration: none !important;
}
body.pmo-site--generic .wc-block-grid__product-title, body.pmo-site--generic .wc-block-components-product-name { color: var(--s-ink) !important; font-weight: 700 !important; }
body.pmo-site--generic .wc-block-grid__product-image img { border-radius: 14px; }
body.pmo-site--generic .wp-block-woocommerce-empty-cart-block h2 { font-family: var(--s-font) !important; font-weight: 800 !important; letter-spacing: -.5px; }

/* Neutralise the theme's custom login-form decoration inside the new login page */
body.pmo-site .s-wc-login form.woocommerce-form-login::before, body.pmo-site .s-wc-login form.woocommerce-form-login::after { content: none !important; display: none !important; }
body.pmo-site .s-wc-login form.woocommerce-form-login { background: transparent !important; box-shadow: none !important; max-width: none !important; width: 100% !important; }
body.pmo-site .s-wc-login form .form-row { width: 100% !important; float: none !important; }
body.pmo-site .s-wc-login label { font-size: 14px !important; color: var(--s-ink) !important; font-family: var(--s-font) !important; }
body.pmo-site .s-wc-login input.input-text { background: #fff !important; background-image: none !important; padding: 0 16px !important; font-size: 16px !important; color: var(--s-ink) !important; min-height: 52px !important; border: 1px solid var(--s-line-2) !important; border-radius: 12px !important; }
body.pmo-site .s-wc-login button.woocommerce-form-login__submit { background: var(--s-ink) !important; color: #fff !important; text-transform: none !important; letter-spacing: 0 !important; font: 700 16px var(--s-font) !important; border-radius: 12px !important; min-height: 52px !important; width: 100% !important; box-shadow: none !important; }
body.pmo-site .s-wc-login button.woocommerce-form-login__submit:hover { background: #2A2E37 !important; }
body.pmo-site .s-wc-login .lost_password { text-align: left !important; }
body.pmo-site .s-wc-login .lost_password a { color: var(--s-accent-ink) !important; font-weight: 600; }

/* Photos fill their frame */
body.pmo-site .s-photo img { width: 100% !important; height: 100% !important; object-fit: cover; }
/* Legal pages */
.s-legal { max-width: 820px; }
.s-legal h2 { font-size: 22px; font-weight: 800; letter-spacing: -.3px; margin: 36px 0 10px; color: var(--s-ink); }
.s-legal h3 { font-size: 17px; font-weight: 700; margin: 20px 0 8px; }
.s-legal p, .s-legal li { font-size: 16px; line-height: 1.7; color: var(--s-ink-2); }
.s-legal ul { padding-left: 20px; }
.s-legal a { font-weight: 600; }
body.pmo-site .s-photo img[src*="Container-53"] { transform: scale(1.12); }

.s-credit { width: 100%; text-align: center; padding-top: 14px; margin-top: 6px; border-top: 1px solid #1B1E25; font-size: 12.5px; }
body.pmo-site .s-footer .s-credit a { color: #F26B1D; font-weight: 600; text-decoration: none; }
body.pmo-site .s-footer .s-credit a:hover { color: #fff; }

/* Elementor popups are not used on the new pages */
body.pmo-site:not(.pmo-site--generic):not(.pmo-site--login) [data-elementor-type="popup"] { display: none !important; }

/* ---------- Hover states (marketing site) ---------- */
body.pmo-site .s-btn--primary:hover { background: #9A3412; color: #fff !important; }
body.pmo-site .s-btn--dark:hover { background: #2A2E37; color: #fff !important; }
body.pmo-site .s-btn--ghost:hover { background: #FFF4EC; border-color: #F2B48C; color: #9A3412 !important; }
body.pmo-site .s-dark a.s-btn:hover { background: rgba(255,255,255,.08); border-color: #6B7280 !important; color: #fff !important; }
body.pmo-site .s-btn:focus-visible { outline: 2px solid #F26B1D; outline-offset: 2px; }
body.pmo-site .s-footer-bottom .s-disclaimer { flex-basis: 100%; order: 5; font-size: 12px; color: #8A909B; line-height: 1.5; }
body.pmo-site .s-legal h2 { font-size: 22px; margin: 32px 0 10px; }
body.pmo-site .s-legal ul { padding-left: 20px; }
body.pmo-site .s-legal li { margin: 6px 0; line-height: 1.6; }
