/* Global page.tpl contract. Dedicated catalogue/product/auth layouts remain independent. */
#main.sr-page {
 --sr-page-primary: var(--sr-theme-primary,#1b7d36);
 --sr-page-text: var(--sr-theme-text,#1f2328);
 --sr-page-muted: var(--sr-theme-muted,#6b7280);
 --sr-page-surface: var(--sr-theme-surface,#fff);
 --sr-page-border: color-mix(in srgb,var(--sr-page-text) 13%,var(--sr-page-surface));
 min-width: 0; width: 100%; color: var(--sr-page-text); font-family: Manrope,sans-serif;
}
#main.sr-page > .sr-page__content { padding: clamp(20px,2.5vw,32px); border: 1px solid var(--sr-page-border); border-radius: 8px; background: var(--sr-page-surface); box-shadow: none; }
#main.sr-page > .sr-page__footer { margin: 24px 0 0; }
#main.sr-page > .page-content { min-width: 0; }
#main.sr-page > .page-cms { color: var(--sr-page-text); line-height: 1.8; overflow-wrap: anywhere; }
#main.sr-page > .page-cms :is(p,li) { color: inherit; line-height: inherit; }
#main .sr-page-header { position: relative; margin: 16px 0 32px; padding: 0 0 24px; }
#main .sr-page-header::after { content: ''; position: absolute; inset: auto 0 0; height: 2px; background: linear-gradient(90deg,var(--sr-page-primary,var(--sr-theme-primary,#1b7d36)),var(--sr-theme-accent,#c6f432) 18%,var(--sr-page-border,#e8e8ec) 55%,transparent); }
#main .sr-page-header__eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; color: var(--sr-page-primary,var(--sr-theme-primary,#1b7d36)); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; font-weight: 750; }
#main .sr-page-header__eyebrow::before { content: ''; width: 24px; height: 2px; background: currentColor; flex-shrink: 0; }
#main .sr-page-header__heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
#main .sr-page-header__heading h1 { margin: 0; min-width: 0; color: var(--sr-page-text,var(--sr-theme-text,#1f2328)); font-size: clamp(26px,3vw,40px); line-height: 1.2; font-weight: 800; letter-spacing: -.03em; text-transform: none; overflow-wrap: anywhere; }
#main .sr-page-header__actions { flex-shrink: 0; }
#main .sr-page-header__lead { margin: 14px 0 0; max-width: 76ch; color: var(--sr-page-muted,var(--sr-theme-muted,#6b7280)); font-size: 14px; line-height: 1.7; }
#main .sr-page-header--account { margin-bottom: 36px; padding-bottom: 28px; }
#main .sr-page-header--contact { margin-top: 0; margin-bottom: 36px; padding: 16px 0 28px; }
@media(max-width:767px) {
 #main .sr-page-header { margin: 8px 0 24px; padding-bottom: 20px; }
 #main .sr-page-header__heading { gap: 12px; }
 #main .sr-page-header__lead { font-size: 13px; }
 #main .sr-page-header--contact { padding-top: 8px; margin-top: 0; margin-bottom: 28px; }
}

/* Apply the shared width only to pages opting into page.tpl's shell. */
#wrapper:has(#main.sr-page) > .container { width: 100%; max-width: 1480px; padding-inline: 32px; }
@media(max-width:767px) { #wrapper:has(#main.sr-page) > .container { padding-inline: 16px; } }

/* Fill the viewport with header + content + footer, without hardcoding their heights. */
body > main:has(> #wrapper #main.sr-page) {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
}
body > main:has(> #wrapper #main.sr-page) > :is(#header,#footer) { flex: 0 0 auto; }
body > main:has(> #wrapper #main.sr-page) > #wrapper { flex: 1 0 auto; min-width: 0; }

/* Public visual contract for SmartRiver business components; no module markup overrides. */
:root{
 --sr-b2b-primary:var(--sr-theme-primary,#1b7d36);
 --sr-b2b-on-primary:#fff;
 --sr-b2b-surface:var(--sr-theme-surface,#fff);
 --sr-b2b-text:var(--sr-theme-text,#202c26);
 --sr-b2b-muted:var(--sr-theme-muted,#68756e);
 --sr-b2b-border:var(--sr-theme-border,#dfe5e1);
 --sr-b2b-soft:var(--sr-theme-soft,#f5f7f5);
 --sr-b2b-radius:8px;
 --sr-b2b-font:Manrope,sans-serif;
}

/* Access-denied view: shared site chrome, one message and useful next actions. */
#main.sr-access { padding-block: clamp(28px,6vh,64px); }
#main.sr-access .sr-access__panel {
 display:grid; grid-template-columns:48px minmax(0,1fr); gap:24px;
 width:100%; max-width:780px; margin-inline:auto; padding:clamp(24px,4vw,40px);
 background:var(--sr-page-surface); border:1px solid var(--sr-page-border); border-radius:8px;
}
#main.sr-access .sr-access__icon { display:grid; place-items:center; width:48px; height:48px; border-radius:8px; color:var(--sr-page-primary); background:var(--sr-theme-soft,#f3f7f3); }
#main.sr-access .sr-access__icon svg { display:block; width:26px; height:26px; }
#main.sr-access .sr-access__body { min-width:0; }
#main.sr-access .sr-access__eyebrow { margin:0 0 10px; color:var(--sr-page-primary); font-size:11px; line-height:1.5; font-weight:750; letter-spacing:.1em; text-transform:uppercase; }
#main.sr-access h1 { margin:0 0 14px; color:var(--sr-page-text); font-size:clamp(24px,2.8vw,30px); line-height:1.25; letter-spacing:-.025em; font-weight:750; text-transform:none; overflow-wrap:anywhere; }
#main.sr-access .sr-access__lead { margin:0; color:var(--sr-page-muted); font-size:14px; line-height:1.75; }
#main.sr-access #notifications .notifications-container { width:100%; max-width:100%; padding:0; }
#main.sr-access #notifications .alert { margin:12px 0 0; padding:0; border:0; box-shadow:none; background:transparent; color:var(--sr-page-muted); font-size:13px; line-height:1.6; }
#main.sr-access #notifications ul { padding:0; margin:0; list-style:none; }
#main.sr-access .sr-access__actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
#main.sr-access .sr-access__button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; max-width:100%; padding:11px 16px; border:1px solid var(--sr-page-border); border-radius:5px; color:var(--sr-page-text); background:var(--sr-page-surface); font-size:13px; line-height:1.5; font-weight:650; text-align:center; text-decoration:none; }
#main.sr-access .sr-access__button--primary { border-color:var(--sr-page-primary); background:var(--sr-page-primary); color:#fff; }
#main.sr-access .sr-access__button:hover { border-color:var(--sr-page-primary); }
#main.sr-access .sr-access__button--primary:hover { filter:brightness(.94); }
#main.sr-access :is(a,button):focus-visible { outline:2px solid var(--sr-page-primary); outline-offset:4px; }
#main.sr-access .sr-access__footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-top:20px; margin-top:24px; border-top:1px solid var(--sr-page-border); font-size:12px; line-height:1.6; }
#main.sr-access .sr-access__footer a { color:var(--sr-page-primary); text-decoration:none; }
#main.sr-access .sr-access__footer a:hover { text-decoration:underline; }
#main.sr-access .sr-access__code { color:var(--sr-page-muted); }
@media(max-width:575px) {
 #main.sr-access { padding-block:20px 32px; }
 #main.sr-access .sr-access__panel { grid-template-columns:minmax(0,1fr); gap:20px; padding:24px; }
 #main.sr-access .sr-access__actions { flex-direction:column; }
 #main.sr-access .sr-access__button { width:100%; }
}
