/* Contractor Operations Portal Theme Sync.
 * The homepage is the source of truth: Inter, ink/deep ink, rust, cream, paper, beige lines.
 * Every selector is scoped to a known portal or managed admin surface.
 */
.co-portal-page,
.co-portal-admin {
    --co-ink: #17323A;
    --co-deep: #0F252D;
    --co-rust: #D36832;
    --co-cream: #F5F1EA;
    --co-paper: #FBFAF7;
    --co-line: #DDD5CA;
    --co-muted: #536166;
    --co-success: #1F7A52;
    --co-warning: #8A5A00;
    --co-danger: #9B2C2C;
    --co-radius-sm: 9px;
    --co-radius: 13px;
    --co-radius-lg: 16px;
    --co-shadow-sm: 0 5px 18px rgba(23,50,58,.05);
    --co-shadow: 0 10px 30px rgba(23,50,58,.07);
    --co-focus: 0 0 0 3px rgba(211,104,50,.18);
}

.co-portal-page .contractor-ops-sales-onboarding {
    max-width: min(1280px, 100%);
    margin-inline: auto;
    border: 1px solid var(--co-line) !important;
    border-radius: var(--co-radius-lg) !important;
    background: var(--co-paper) !important;
    box-shadow: var(--co-shadow-sm) !important;
    color: var(--co-ink) !important;
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}
.co-portal-page .contractor-ops-sales-onboarding__eyebrow { color: var(--co-rust) !important; }
.co-portal-page .contractor-ops-sales-onboarding__step { background: var(--co-rust) !important; color: #fff !important; }
.co-portal-page .contractor-ops-sales-onboarding a { color: var(--co-rust) !important; }
.co-portal-page .contractor-ops-sales-onboarding__note { border-color: var(--co-line) !important; color: var(--co-muted) !important; }

/* Front-end portal shell. */
.co-portal-page .spa2,
.co-portal-page .spm,
.co-portal-page .sunprise-portal {
    color: var(--co-ink) !important;
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    font-size: 16px;
    line-height: 1.55;
    max-width: min(1280px, 100%) !important;
}
.co-portal-page .spa2 *,
.co-portal-page .spm *,
.co-portal-page .sunprise-portal * { box-sizing: border-box; }
.co-portal-page .spa2 button,
.co-portal-page .spa2 input,
.co-portal-page .spa2 select,
.co-portal-page .spa2 textarea,
.co-portal-page .spm button,
.co-portal-page .spm input,
.co-portal-page .spm select,
.co-portal-page .spm textarea,
.co-portal-page .sunprise-portal button,
.co-portal-page .sunprise-portal input,
.co-portal-page .sunprise-portal select,
.co-portal-page .sunprise-portal textarea { font: inherit; }
.co-portal-page .spa2 h1,
.co-portal-page .spa2 h2,
.co-portal-page .spa2 h3,
.co-portal-page .spm h1,
.co-portal-page .spm h2,
.co-portal-page .spm h3,
.co-portal-page .sunprise-portal h1,
.co-portal-page .sunprise-portal h2,
.co-portal-page .sunprise-portal h3 {
    color: var(--co-ink) !important;
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    letter-spacing: -.018em;
}
.co-portal-page .spa2 a,
.co-portal-page .spm a,
.co-portal-page .sunprise-portal a { color: var(--co-rust) !important; }
.co-portal-page .spa2 a:hover,
.co-portal-page .spm a:hover,
.co-portal-page .sunprise-portal a:hover { color: var(--co-deep) !important; }
.co-portal-page .spa2 .spa2-card,
.co-portal-page .spm .spm-card,
.co-portal-page .sunprise-portal__card {
    background: var(--co-paper) !important;
    border: 1px solid var(--co-line) !important;
    border-radius: var(--co-radius-lg) !important;
    box-shadow: var(--co-shadow-sm) !important;
}
.co-portal-page .spa2-tabs,
.co-portal-page .spm-tabs,
.co-portal-page .sunprise-portal__tabs {
    border-color: var(--co-line) !important;
    border-radius: var(--co-radius) !important;
    box-shadow: var(--co-shadow-sm) !important;
}
.co-portal-page .spa2-tab,
.co-portal-page .spa2-btn,
.co-portal-page .sunprise-portal .button,
.co-portal-page .spm button {
    min-height: 44px;
    border-radius: var(--co-radius-sm) !important;
    box-shadow: none !important;
}
.co-portal-page .spa2-tab.on,
.co-portal-page .spa2-dealbar { background: var(--co-deep) !important; border-color: var(--co-deep) !important; color: #fff !important; }
.co-portal-page .spa2-btn.primary { background: var(--co-rust) !important; border-color: var(--co-rust) !important; color: #fff !important; }
.co-portal-page .spa2 input,
.co-portal-page .spa2 select,
.co-portal-page .spa2 textarea,
.co-portal-page .spm input,
.co-portal-page .spm select,
.co-portal-page .spm textarea,
.co-portal-page .sunprise-portal input,
.co-portal-page .sunprise-portal select,
.co-portal-page .sunprise-portal textarea {
    min-height: 44px;
    border-color: var(--co-line) !important;
    border-radius: var(--co-radius-sm) !important;
    background: var(--co-paper) !important;
    color: var(--co-ink) !important;
}
.co-portal-page .spa2 input:focus,
.co-portal-page .spa2 select:focus,
.co-portal-page .spa2 textarea:focus,
.co-portal-page .spm input:focus,
.co-portal-page .spm select:focus,
.co-portal-page .spm textarea:focus,
.co-portal-page .sunprise-portal input:focus,
.co-portal-page .sunprise-portal select:focus,
.co-portal-page .sunprise-portal textarea:focus {
    border-color: var(--co-rust) !important;
    box-shadow: var(--co-focus) !important;
    outline: 0 !important;
}
.co-portal-page .spa2 th,
.co-portal-page .spm th,
.co-portal-page .sunprise-portal thead th {
    background: var(--co-cream) !important;
    color: var(--co-muted) !important;
}
.co-portal-page .spa2 :focus-visible,
.co-portal-page .spm :focus-visible,
.co-portal-page .sunprise-portal :focus-visible { outline: 3px solid rgba(211,104,50,.28) !important; outline-offset: 2px !important; }
.co-portal-page .sunprise-portal { --navy: var(--co-deep) !important; --orange: var(--co-rust) !important; --muted: var(--co-muted) !important; --line: var(--co-line) !important; --bg: var(--co-paper) !important; }
.co-portal-page .sunprise-portal__tab.is-active { border-bottom-color: var(--co-rust) !important; color: var(--co-ink) !important; }
.co-portal-page .sunprise-portal .button { background: var(--co-paper) !important; border-color: var(--co-line) !important; color: var(--co-ink) !important; }
.co-portal-page .spm button { background: var(--co-paper) !important; border: 1px solid var(--co-line) !important; color: var(--co-ink) !important; }
.co-portal-page .spm button.on { background: var(--co-deep) !important; border-color: var(--co-deep) !important; color: #fff !important; }
.co-portal-page .sunprise-portal .button.button-primary { background: var(--co-rust) !important; border-color: var(--co-rust) !important; color: #fff !important; }
.co-portal-page .sunprise-portal__badge { background: var(--co-deep) !important; }
.co-portal-page .sunprise-portal__badge--accepted { background: var(--co-success) !important; }

/* Managed WP admin surfaces use the same tokens without affecting other admin pages. */
.co-portal-admin.spds-managed,
.co-portal-admin {
    background: var(--co-paper);
    color: var(--co-ink);
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.co-portal-admin #wpbody-content > .wrap { color: var(--co-ink); }
.co-portal-admin #wpbody-content > .wrap > h1:first-child,
.co-portal-admin h2 { color: var(--co-ink) !important; }
body.co-portal-admin.spds-managed #wpbody-content .button,
body.co-portal-admin.spds-managed #wpbody-content .page-title-action {
    border-radius: var(--co-radius-sm) !important;
    border-color: var(--co-line) !important;
    box-shadow: none !important;
}
body.co-portal-admin.spds-managed #wpbody-content .button.button-primary,
body.co-portal-admin.spds-managed #wpbody-content .page-title-action { background: var(--co-rust) !important; border-color: var(--co-rust) !important; color: #fff !important; }
body.co-portal-admin.spds-managed #wpbody-content .button.button-secondary { background: var(--co-paper) !important; color: var(--co-ink) !important; }
.co-portal-admin input,
.co-portal-admin select,
.co-portal-admin textarea { border-color: var(--co-line) !important; border-radius: var(--co-radius-sm) !important; }
.co-portal-admin input:focus,
.co-portal-admin select:focus,
.co-portal-admin textarea:focus,
.co-portal-admin .button:focus-visible { border-color: var(--co-rust) !important; box-shadow: var(--co-focus) !important; outline: 0 !important; }
.co-portal-admin .widefat,
.co-portal-admin .wp-list-table { border-color: var(--co-line); }
.co-portal-admin .widefat thead th,
.co-portal-admin .wp-list-table thead th { background: var(--co-cream); color: var(--co-muted); }

@media (max-width: 760px) {
    .co-portal-page .spa2 { padding: 22px 12px 54px !important; }
    .co-portal-page .spa2-tabs,
    .co-portal-page .spm-tabs { overflow-x: auto; flex-wrap: nowrap; }
    .co-portal-page .spa2-tab { white-space: nowrap; min-width: max-content; }
    .co-portal-page .spa2-tablewrap table { min-width: 720px; }
}
@media (prefers-reduced-motion: reduce) {
    .co-portal-page *, .co-portal-admin * { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* Customer portal uses the same isolated chrome as Sales Portal. */
body.co-customer-page.co-portal-page #site-header,
body.co-customer-page.co-portal-page #site-header-wrapper,
body.co-customer-page.co-portal-page .site-header,
body.co-customer-page.co-portal-page .header-wrapper,
body.co-customer-page.co-portal-page .header-background,
body.co-customer-page.co-portal-page .top-area,
body.co-customer-page.co-portal-page .top-area-block,
body.co-customer-page.co-portal-page .hamburger-menu-back,
body.co-customer-page.co-portal-page .mobile-menu-layout,
body.co-customer-page.co-portal-page .mobile-menu-slide-wrapper,
body.co-customer-page.co-portal-page #primary-menu,
body.co-customer-page.co-portal-page .primary-navigation,
body.co-customer-page.co-portal-page .main-navigation,
body.co-customer-page.co-portal-page .site-navigation,
body.co-customer-page.co-portal-page #footer-nav,
body.co-customer-page.co-portal-page #colophon,
body.co-customer-page.co-portal-page #footer,
body.co-customer-page.co-portal-page footer.custom-footer,
body.co-customer-page.co-portal-page .custom-footer:not(.co-customer-footer),
body.co-customer-page.co-portal-page .parallax-footer,
body.co-customer-page.co-portal-page footer.site-footer,
body.co-customer-page.co-portal-page .site-footer,
body.co-customer-page.co-portal-page .footer-wrapper,
body.co-customer-page.co-portal-page .footer-site-info,
body.co-customer-page.co-portal-page .bottom-area,
body.co-customer-page.co-portal-page #wpadminbar,
body.co-customer-page.co-portal-page .page-title-block,
body.co-customer-page.co-portal-page .page-title-block-content,
body.co-customer-page.co-portal-page .breadcrumbs-container,
body.co-customer-page.co-portal-page .wgl-page-title,
body.co-customer-page.co-portal-page .page-header,
body.co-customer-page.co-portal-page .entry-title,
body.co-customer-page.co-portal-page .wp-block-post-title {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: none !important;
}
html:has(body.co-customer-page.co-portal-page) { margin-top: 0 !important; }
body.co-customer-page.co-portal-page {
    margin-top: 0 !important;
    background: var(--co-cream) !important;
}
body.co-customer-page.co-portal-page .block-content,
body.co-customer-page.co-portal-page #page,
body.co-customer-page.co-portal-page #main,
body.co-customer-page.co-portal-page .site-main,
body.co-customer-page.co-portal-page .main-content { padding-top: 0 !important; padding-bottom: 0 !important; margin-bottom: 0 !important; }
body.co-customer-page.co-portal-page .co-customer-footer {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
    min-height: 0 !important;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    background: var(--co-deep);
    color: #fff;
    border-top: 3px solid var(--co-rust);
}
body.co-customer-page.co-portal-page .spei-portal-footer__inner {
    width: min(1180px, calc(100% - 28px));
    min-height: 52px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 8px 0;
}
body.co-customer-page.co-portal-page .spei-portal-footer__identity { display: flex; align-items: center; gap: 10px; min-width: 0; }
body.co-customer-page.co-portal-page .spei-portal-footer__brand { font-weight: 900; letter-spacing: .06em; font-size: 13px; white-space: nowrap; }
body.co-customer-page.co-portal-page .spei-portal-footer__divider { opacity: .35; }
body.co-customer-page.co-portal-page .spei-portal-footer__eyebrow { display: block; color: var(--co-rust); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 2px; }
body.co-customer-page.co-portal-page .spei-portal-footer__title { display: block; font-size: 12px; font-weight: 700; }
body.co-customer-page.co-portal-page .spei-portal-footer__nav { display: flex; gap: 8px; }
body.co-customer-page.co-portal-page .spei-portal-footer__nav a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 6px 10px;
    border-radius: 7px;
    color: #fff !important;
    text-decoration: none !important;
    font-size: 11px;
    font-weight: 800;
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.06);
}
body.co-customer-page.co-portal-page .spei-portal-footer__nav a:hover,
body.co-customer-page.co-portal-page .spei-portal-footer__nav a:focus-visible { border-color: var(--co-rust); outline: none; }

.co-portal-page .co-customer {
    --ink: var(--co-ink);
    --rust: var(--co-rust);
    --paper: var(--co-paper);
    --line: var(--co-line);
    max-width: min(1180px, 100%) !important;
    margin: 0 auto !important;
    padding: clamp(1.25rem, 3vw, 2.5rem) clamp(.85rem, 3vw, 1.4rem) 5rem !important;
    background: transparent !important;
    border-radius: 0 !important;
    color: var(--co-ink) !important;
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}
.co-portal-page .co-customer h1 {
    font-size: clamp(2rem, 6vw, 3.25rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -.035em !important;
    margin: 0 !important;
}
.co-portal-page .co-customer-head {
    align-items: flex-start !important;
    background: linear-gradient(135deg, var(--co-deep), var(--co-ink));
    border: 0 !important;
    border-radius: 20px;
    color: #fff;
    padding: clamp(1.15rem, 3vw, 1.7rem) !important;
    margin-bottom: 1rem;
    box-shadow: 0 14px 34px rgba(15, 37, 45, .18);
}
.co-portal-page .co-customer-head h1,
.co-portal-page .co-customer-head p { color: #fff !important; }
.co-portal-page .co-customer-head .co-eyebrow { color: #f4b183 !important; }
.co-portal-page .co-customer-head h1 + p { color: rgba(255,255,255,.84) !important; margin: .45rem 0 0; font-size: clamp(1rem, 2vw, 1.12rem); }
.co-portal-page .co-customer-head .co-button.secondary {
    background: rgba(255,255,255,.08) !important;
    border-color: rgba(255,255,255,.22) !important;
    color: #fff !important;
}
.co-portal-page .co-customer-head select {
    background: rgba(255,255,255,.1) !important;
    border-color: rgba(255,255,255,.22) !important;
    color: #fff !important;
}
.co-portal-page .co-tabs {
    background: var(--co-deep);
    border-radius: 18px;
    padding: 8px;
    gap: 6px !important;
    margin: 0 0 1rem !important;
    box-shadow: var(--co-shadow-sm);
}
.co-portal-page .co-tab {
    min-height: 44px;
    border-radius: 12px !important;
    color: rgba(255,255,255,.82) !important;
    background: transparent !important;
}
.co-portal-page .co-tab.current {
    background: var(--co-paper) !important;
    color: var(--co-deep) !important;
}
.co-portal-page .co-card,
.co-portal-page .co-project,
.co-portal-page .co-request {
    background: var(--co-paper) !important;
    border: 1px solid var(--co-line) !important;
    border-radius: 20px !important;
    box-shadow: var(--co-shadow-sm) !important;
}
.co-portal-page .co-button { min-height: 44px; border-radius: var(--co-radius-sm) !important; }
.co-portal-page .co-button:not(.secondary) { background: var(--co-rust) !important; border-color: var(--co-rust) !important; }
.co-portal-page .co-customer input,
.co-portal-page .co-customer select,
.co-portal-page .co-customer textarea {
    min-height: 44px;
    border-color: var(--co-line) !important;
    border-radius: var(--co-radius-sm) !important;
    background: var(--co-paper) !important;
}
.co-portal-page .co-customer input:focus,
.co-portal-page .co-customer select:focus,
.co-portal-page .co-customer textarea:focus {
    border-color: var(--co-rust) !important;
    box-shadow: var(--co-focus) !important;
    outline: 0 !important;
}
@media (max-width: 640px) {
    body.co-customer-page.co-portal-page .spei-portal-footer__inner { width: calc(100% - 20px); }
    body.co-customer-page.co-portal-page .spei-home-label { display: none; }
    .co-portal-page .co-tabs { overflow-x: auto; flex-wrap: nowrap !important; }
    .co-portal-page .co-tab { white-space: nowrap; }
}
/* Hide remaining Avelon/public chrome on customer pages. */
body.co-customer-page.co-portal-page .wgl-theme-header,
body.co-customer-page.co-portal-page .wgl-site-header,
body.co-customer-page.co-portal-page header.header_overlap,
body.co-customer-page.co-portal-page .ugc-update-bar,
body.co-customer-page.co-portal-page iframe[src*="leadconnector" i],
body.co-customer-page.co-portal-page iframe[src*="msgsndr" i],
body.co-customer-page.co-portal-page iframe[src*="chat-widget" i],
body.co-customer-page.co-portal-page #chat-widget,
body.co-customer-page.co-portal-page #lc_chat_widget,
body.co-customer-page.co-portal-page .lc-chat-widget,
body.co-customer-page.co-portal-page .lc_text-widget,
body.co-customer-page.co-portal-page .hl_chat-widget,
body.co-customer-page.co-portal-page .chat-widget,
body.co-customer-page.co-portal-page [class*="chat-widget" i],
body.co-customer-page.co-portal-page [id*="chat-widget" i],
body.co-customer-page.co-portal-page [data-chat-widget],
body.co-customer-page.co-portal-page [data-widget-type="chat"],
body.co-customer-page.co-portal-page #lazy-loading-point {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: none !important;
}
