:root {
  --rep-ink: #162033;
  --rep-muted: #5c687d;
  --rep-line: #dfe5ee;
  --rep-surface: #ffffff;
  --rep-soft: #f5f8fc;
  --rep-brand: #2457d6;
  --rep-brand-strong: #153fae;
  --rep-good: #18794e;
  --rep-warm: #9a5b13;
}

body.rep-site-page { background: var(--rep-soft); color: var(--rep-ink); }
.rep-site-page #header { background: #fff; box-shadow: 0 1px 0 rgba(22,32,51,.09); }
.rep-site-page #header nav > ul > li > a { color: var(--rep-ink); }
.rep-site-page #header nav > ul > li > a:hover { color: var(--rep-brand); }
.rep-shell { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.rep-hero { padding: 7.5rem 0 4.5rem; background: linear-gradient(145deg,#f8fbff 0%,#edf4ff 55%,#f5f8fc 100%); border-bottom: 1px solid var(--rep-line); }
.rep-hero-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr); gap:3rem; align-items:center; }
.rep-eyebrow { display:inline-flex; align-items:center; gap:.45rem; padding:.42rem .72rem; border:1px solid #cfd9ec; border-radius:999px; background:#fff; color:#33425c; font-size:.82rem; font-weight:700; letter-spacing:.035em; text-transform:uppercase; }
.rep-hero h1 { margin:.9rem 0 1rem; color:var(--rep-ink); font-size:clamp(2.45rem,5vw,4.65rem); line-height:1.02; letter-spacing:-.045em; }
.rep-hero p { margin:0; max-width:760px; color:var(--rep-muted); font-size:clamp(1.05rem,2vw,1.28rem); line-height:1.65; }
.rep-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.6rem; }
.rep-btn { display:inline-flex; justify-content:center; align-items:center; min-height:48px; padding:.72rem 1.15rem; border-radius:10px; border:1px solid var(--rep-brand); background:var(--rep-brand); color:#fff !important; font-weight:700; text-decoration:none; box-shadow:none; }
.rep-btn:hover { background:var(--rep-brand-strong); }
.rep-btn.secondary { background:#fff; color:var(--rep-brand) !important; }
.rep-btn.disabled { background:#e9edf4; border-color:#d8dee9; color:#68758a !important; cursor:default; }
.rep-proof-card { background:#fff; border:1px solid var(--rep-line); border-radius:18px; padding:1.4rem; box-shadow:0 18px 45px rgba(33,58,107,.08); }
.rep-proof-card h2,.rep-proof-card h3 { color:var(--rep-ink); margin:0 0 .7rem; }
.rep-payment { background:#f8fbff; border:1px solid #d7e3f5; border-radius:14px; padding:1.2rem; }
.rep-payment strong { display:block; font-size:2rem; line-height:1.1; color:var(--rep-ink); }
.rep-payment span { color:var(--rep-muted); font-size:.9rem; }
.rep-mini-grid { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; margin-top:.9rem; }
.rep-mini { border-top:1px solid var(--rep-line); padding-top:.65rem; color:var(--rep-muted); font-size:.86rem; }
.rep-mini b { display:block; color:var(--rep-ink); font-size:1rem; }
.rep-section { padding:4.5rem 0; }
.rep-section.alt { background:#fff; border-top:1px solid var(--rep-line); border-bottom:1px solid var(--rep-line); }
.rep-section-head { max-width:780px; margin-bottom:2rem; }
.rep-section h2 { color:var(--rep-ink); font-size:clamp(1.9rem,3vw,2.65rem); letter-spacing:-.025em; margin:0 0 .65rem; }
.rep-section-head p,.rep-section p { color:var(--rep-muted); }
.rep-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.1rem; }
.rep-grid.four { grid-template-columns:repeat(4,minmax(0,1fr)); }
.rep-card { background:#fff; border:1px solid var(--rep-line); border-radius:16px; padding:1.35rem; box-shadow:0 8px 28px rgba(24,45,80,.05); }
.rep-card h3 { color:var(--rep-ink); margin:0 0 .55rem; font-size:1.15rem; }
.rep-card p { margin:0; font-size:.96rem; line-height:1.6; }
.rep-tag { display:inline-flex; margin-bottom:.65rem; padding:.28rem .58rem; border-radius:999px; background:#edf4ff; color:#234a9c; font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.rep-tag.live { background:#eaf8f1; color:var(--rep-good); }
.rep-tag.upcoming { background:#fff4df; color:var(--rep-warm); }
.rep-price-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; align-items:stretch; }
.rep-price { position:relative; background:#fff; border:1px solid var(--rep-line); border-radius:18px; padding:1.45rem; }
.rep-price.featured { border:2px solid var(--rep-brand); }
.rep-price h3 { color:var(--rep-ink); margin:0; }
.rep-price-amount { margin:.7rem 0 1rem; color:var(--rep-ink); font-size:2rem; font-weight:800; }
.rep-price-amount small { color:var(--rep-muted); font-size:.9rem; font-weight:500; }
.rep-list { margin:0; padding-left:1.2rem; color:var(--rep-muted); }
.rep-list li { margin:.45rem 0; }
.rep-status { display:flex; gap:.8rem; align-items:flex-start; background:#fff9ed; border:1px solid #f0d7a7; border-radius:14px; padding:1rem 1.1rem; color:#724714; }
.rep-status strong { color:#5d380d; }
.rep-app-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.rep-app-card { display:flex; flex-direction:column; min-height:230px; }
.rep-app-card .rep-actions { margin-top:auto; padding-top:1rem; }
.rep-faq { display:grid; gap:.75rem; }
.rep-faq details { background:#fff; border:1px solid var(--rep-line); border-radius:12px; padding:1rem 1.1rem; }
.rep-faq summary { color:var(--rep-ink); cursor:pointer; font-weight:700; }
.rep-faq details p { margin:.75rem 0 0; }
.rep-site-footer { padding:2.2rem 0; background:#121a29; color:#bac4d5; }
.rep-site-footer a { color:#fff; }
.rep-footer-row { display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; align-items:center; }
.rep-footer-links { display:flex; flex-wrap:wrap; gap:1rem; }
.rep-note { color:var(--rep-muted); font-size:.88rem; line-height:1.55; }
.rep-kicker { font-size:1.03rem; font-weight:700; color:#34445f; }
.rep-feature-line { display:flex; gap:.65rem; align-items:flex-start; }
.rep-feature-line + .rep-feature-line { margin-top:.8rem; }
.rep-dot { width:9px; height:9px; border-radius:50%; background:var(--rep-brand); margin-top:.45rem; flex:0 0 auto; }

@media (max-width: 900px) {
  .rep-hero { padding-top:6rem; }
  .rep-hero-grid,.rep-grid,.rep-grid.four,.rep-price-grid,.rep-app-list { grid-template-columns:1fr; }
  .rep-proof-card { max-width:640px; }
}
@media (max-width: 540px) {
  .rep-shell { width:min(100% - 24px,1180px); }
  .rep-section { padding:3rem 0; }
  .rep-actions .rep-btn { width:100%; }
  .rep-mini-grid { grid-template-columns:1fr; }
}

/* Public portfolio rollout states. Keep these customer-facing and independent of internal Wix review stages. */
.rep-tag.new { background:#eef0ff; color:#4a3f9f; }
.rep-category-label { font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.rep-app-card { position:relative; transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.rep-app-card:hover { transform:translateY(-2px); box-shadow:0 14px 34px rgba(24,45,80,.08); }
.rep-app-card.is-available { border-color:#cfe7da; }
.rep-app-card.is-coming-soon { background:linear-gradient(180deg,#fff 0%,#fffdf8 100%); }

/* Reusable V2 product detail pages. */
.rep-breadcrumbs { display:flex; flex-wrap:wrap; gap:.45rem; align-items:center; margin-bottom:1rem; color:var(--rep-muted); font-size:.9rem; }
.rep-breadcrumbs a { color:var(--rep-brand); text-decoration:none; font-weight:700; }
.rep-product-badges { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin-bottom:.2rem; }
.rep-product-badges .rep-tag { margin-bottom:.45rem; }
.rep-product-headline { max-width:760px !important; margin:.2rem 0 .8rem !important; color:#34445f !important; font-size:clamp(1.12rem,2vw,1.4rem) !important; font-weight:750; line-height:1.48 !important; }
.rep-product-fit .rep-list { margin-top:.9rem; }
.rep-product-disclaimer { margin-top:1.15rem; padding-top:1rem; border-top:1px solid var(--rep-line); }
.rep-availability-note { margin-top:1rem !important; max-width:720px !important; }
.rep-price-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:850px; }
.rep-related-card { display:flex; flex-direction:column; min-height:245px; }
.rep-related-card .rep-actions { margin-top:auto; padding-top:1rem; }
@media (max-width: 900px) {
  .rep-price-grid.two { grid-template-columns:1fr; max-width:none; }
}
