:root {
  --ig-blue: #2D5DFF;
  --ig-orange: #FF6B35;
  --ig-dark: #1A1A2E;
  --ig-bg: #F7F8FC;
  --ig-white: #FFFFFF;
  --ig-radius: 16px;
  --ig-radius-sm: 10px;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  background: var(--ig-bg);
  color: var(--ig-dark);
  -webkit-font-smoothing: antialiased;
}

a { color: var(--ig-blue); text-decoration: none; }

.ig-container { max-width: 480px; margin: 0 auto; padding: 16px; }
.ig-container-wide { max-width: 960px; margin: 0 auto; padding: 16px; }

.ig-header {
  background: var(--ig-white);
  padding: 14px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #ECEDF5;
  position: sticky; top: 0; z-index: 10;
}
.ig-logo { display: inline-flex; align-items: center; min-width: 0; }
.ig-logo img { display: block; width: auto; height: 38px; max-width: 190px; object-fit: contain; }
.ig-home-logo { display: block; width: min(100%, 290px); height: auto; margin: 0 auto 18px; }
.ig-brand-promise { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid #ECEDF5; color: #4A4D64; }
.ig-admin-brand { display: flex; align-items: center; gap: 9px; font-weight: 800; font-size: 1rem; margin-bottom: 20px; }
.ig-admin-brand img { object-fit: contain; }

.ig-card {
  background: var(--ig-white);
  border-radius: var(--ig-radius);
  padding: 18px;
  margin-bottom: 14px;
  box-shadow: 0 1px 3px rgba(26,26,46,0.06);
}

.ig-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
@media (min-width: 640px) { .ig-grid-wide { grid-template-columns: repeat(3, 1fr); } }

.ig-btn {
  display: inline-block;
  width: 100%;
  text-align: center;
  padding: 14px 18px;
  border-radius: var(--ig-radius-sm);
  border: none;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
}
.ig-btn-primary { background: var(--ig-orange); color: var(--ig-white); }
.ig-btn-secondary { background: var(--ig-blue); color: var(--ig-white); }
.ig-btn-ghost { background: transparent; color: var(--ig-blue); border: 1px solid var(--ig-blue); }
.ig-btn-sm { width: auto; padding: 8px 14px; font-size: 0.85rem; }
.ig-btn-danger { background: #E5484D; color: white; }

.ig-input, .ig-select, .ig-textarea {
  width: 100%;
  padding: 12px 14px;
  border-radius: var(--ig-radius-sm);
  border: 1px solid #DADCEA;
  font-size: 1rem;
  margin-bottom: 10px;
  background: var(--ig-white);
  color: var(--ig-dark);
}
.ig-label { font-size: 0.85rem; font-weight: 600; margin-bottom: 4px; display: block; color: #555; }

.ig-progress { display: flex; gap: 6px; margin-bottom: 18px; }
.ig-progress-step { flex: 1; height: 6px; border-radius: 3px; background: #E2E4F1; }
.ig-progress-step.active { background: var(--ig-blue); }
.ig-progress-step.done { background: var(--ig-orange); }
.ig-progress-meta { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:4px 0 9px; }
.ig-progress-meta strong { color:var(--ig-blue); font-size:.86rem; }
.ig-progress-meta span { color:#6d7182; font-size:.82rem; text-align:right; }

.ig-badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  background: #E9EDFF;
  color: var(--ig-blue);
}
.ig-badge-success { background: #E3F8E9; color: #1E8E3E; }
.ig-badge-warning { background: #FFF3E0; color: #B5540A; }
.ig-badge-danger { background: #FDEAEA; color: #C22; }

.ig-alert { padding: 12px 14px; border-radius: var(--ig-radius-sm); margin-bottom: 14px; font-size: 0.9rem; }
.ig-alert-error { background: #FDEAEA; color: #A0272C; }
.ig-alert-info { background: #E9EDFF; color: #1F3FBF; }

.ig-product-card {
  appearance: none;
  width: 100%;
  border: 2px solid #ECEDF5;
  border-radius: var(--ig-radius);
  padding: 14px;
  cursor: pointer;
  background: var(--ig-white);
  text-align: center;
  color: var(--ig-dark);
  font: inherit;
}
.ig-product-card.selected, .ig-product-card:hover { border-color: var(--ig-blue); }
.ig-product-card.selected { background:#edf1ff; box-shadow:0 0 0 3px rgba(45,93,255,.1); }
.ig-btn:disabled { opacity:.48; cursor:not-allowed; box-shadow:none; }
.ig-btn-icon { width:20px; height:20px; display:inline-block; vertical-align:middle; margin-right:7px; fill:none; stroke:currentColor; stroke-width:1.8; }
.ig-loading-message { display:flex; align-items:center; gap:10px; }
.ig-spinner { width:21px; height:21px; flex:0 0 auto; border:3px solid #dfe4f5; border-top-color:var(--ig-blue); border-radius:50%; animation:ig-spin .8s linear infinite; }
@keyframes ig-spin { to { transform:rotate(360deg); } }

.ig-nav-bottom {
  position: fixed; bottom: 0; left: 0; right: 0;
  background: var(--ig-white);
  border-top: 1px solid #ECEDF5;
  display: flex;
  justify-content: space-around;
  padding: 8px 0;
}
.ig-nav-bottom a { font-size: 0.75rem; color: #888; text-align: center; }
.ig-nav-bottom a.active { color: var(--ig-blue); font-weight: 700; }
.ig-nav-bottom svg { display:block; width:22px; height:22px; margin:0 auto 3px; fill:none; stroke:currentColor; stroke-width:1.8; }

.ig-visual-thumb { width: 100%; border-radius: var(--ig-radius-sm); border: 3px solid transparent; }
.ig-visual-thumb.selected { border-color: var(--ig-orange); }

table.ig-table { width: 100%; border-collapse: collapse; background: white; border-radius: var(--ig-radius); overflow: hidden; }
table.ig-table th, table.ig-table td { padding: 10px 12px; text-align: left; border-bottom: 1px solid #ECEDF5; font-size: 0.9rem; }
table.ig-table th { background: var(--ig-dark); color: white; }

.ig-admin-sidebar { background: var(--ig-dark); color: white; padding: 20px; min-height: 100vh; }
.ig-admin-sidebar a { color: #CFD3F0; display: block; padding: 8px 0; }
.ig-admin-sidebar a:hover, .ig-admin-sidebar a.active { color: white; font-weight: 700; }

footer.ig-footer-space { height: 70px; }

/* Vitrine publique R2 — isolée des écrans applicatifs existants */
.vp-landing-page { background:#fff; color:var(--ig-dark); overflow-x:hidden; }
.vp-landing-page h1,.vp-landing-page h2,.vp-landing-page h3,.vp-landing-page p { margin-top:0; }
.vp-landing-page h2 { font-size:clamp(2rem,3.6vw,3.2rem); line-height:1.08; letter-spacing:-.035em; margin-bottom:22px; }
.vp-landing-page h3 { line-height:1.2; }
.vp-landing-page p { color:#555a70; line-height:1.72; }
.vp-shell { width:min(1240px,calc(100% - 48px)); margin-inline:auto; }
.vp-main { display:block; }
.vp-skip-link { position:fixed; left:14px; top:-80px; z-index:200; background:#fff; color:var(--ig-blue); padding:12px 16px; border-radius:10px; box-shadow:0 5px 20px #0002; }
.vp-skip-link:focus { top:12px; }
.vp-site-header { position:sticky; top:0; z-index:100; background:rgba(255,255,255,.95); border-bottom:1px solid #e9ebf4; backdrop-filter:blur(14px); }
.vp-header-inner { min-height:78px; display:flex; align-items:center; gap:30px; }
.vp-logo { flex:0 0 auto; display:flex; align-items:center; width:154px; height:52px; overflow:hidden; }
.vp-logo img { width:100%; height:100%; object-fit:contain; }
.vp-desktop-nav { flex:1; display:flex; justify-content:center; align-items:center; gap:clamp(14px,1.7vw,26px); }
.vp-desktop-nav a,.vp-login-link { color:#3e4257; font-size:.9rem; font-weight:650; white-space:nowrap; }
.vp-desktop-nav a:hover,.vp-login-link:hover { color:var(--ig-blue); }
.vp-header-actions { display:flex; align-items:center; gap:17px; }
.vp-btn { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:0 25px; border-radius:12px; font-size:.95rem; font-weight:800; transition:transform .2s,box-shadow .2s,background .2s; text-align:center; }
.vp-btn:hover { transform:translateY(-2px); }
.vp-btn-primary { background:var(--ig-blue); color:#fff; box-shadow:0 12px 28px rgba(45,93,255,.23); }
.vp-btn-primary:hover { background:#1648ee; color:#fff; box-shadow:0 16px 32px rgba(45,93,255,.3); }
.vp-btn-secondary { background:#fff; color:var(--ig-dark); border:1px solid #dfe2ee; }
.vp-btn-secondary:hover { border-color:var(--ig-blue); color:var(--ig-blue); }
.vp-btn-header { min-height:44px; padding-inline:18px; }
.vp-menu-toggle { display:none; width:44px; height:44px; border:0; border-radius:10px; background:#eef2ff; color:var(--ig-blue); padding:10px; }
.vp-menu-toggle svg { width:24px; fill:none; stroke:currentColor; stroke-width:2; }
.vp-visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.vp-mobile-nav { padding:8px 24px 22px; border-top:1px solid #edf0f6; background:#fff; }
.vp-mobile-nav a { display:block; color:var(--ig-dark); font-weight:700; padding:12px 0; border-bottom:1px solid #f0f1f6; }
.vp-mobile-nav button { display:block; width:100%; text-align:left; border:0; border-bottom:1px solid #f0f1f6; background:transparent; color:var(--ig-blue); font:inherit; font-weight:800; padding:12px 0; }
.vp-install-link { border:0; background:transparent; color:var(--ig-blue); font-weight:800; cursor:pointer; white-space:nowrap; }
.vp-install-float { position:fixed; right:20px; bottom:20px; z-index:850; width:min(390px,calc(100% - 32px)); display:grid; grid-template-columns:52px 1fr auto; align-items:center; gap:12px; padding:15px 17px; border:1px solid #dfe4ff; border-radius:18px; background:#fff; box-shadow:0 22px 60px rgba(18,28,70,.28); animation:vp-float-in .35s ease-out; }
.vp-install-float[hidden] { display:none; }
.vp-install-float img { border-radius:13px; box-shadow:0 6px 18px #2d5dff2b; }
.vp-install-float strong,.vp-install-float span { display:block; }
.vp-install-float strong { color:var(--ig-dark); font-size:.95rem; margin-bottom:3px; }
.vp-install-float span { color:#686d7e; font-size:.76rem; line-height:1.35; }
.vp-install-float-action { border:0; border-radius:10px; background:var(--ig-blue); color:#fff; min-height:40px; padding:0 14px; font-weight:850; cursor:pointer; }
.vp-install-float-close { position:absolute; right:-8px; top:-10px; width:27px; height:27px; display:grid; place-items:center; border:1px solid #e0e3ee; border-radius:50%; background:#fff; color:#626777; font-size:1.1rem; line-height:1; cursor:pointer; box-shadow:0 4px 12px #1a1a2e1f; }
@keyframes vp-float-in { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
.vp-hero { background:radial-gradient(circle at 82% 20%,#e8edff 0,transparent 32%),linear-gradient(180deg,#fafbff,#fff); padding:82px 0 25px; }
.vp-hero-grid,.vp-two-col { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(45px,7vw,92px); align-items:center; }
.vp-eyebrow { color:var(--ig-blue)!important; font-size:.78rem; font-weight:900; letter-spacing:.15em; text-transform:uppercase; margin-bottom:16px!important; }
.vp-hero h1 { font-size:clamp(2.8rem,5.2vw,5rem); line-height:1.01; letter-spacing:-.055em; max-width:700px; margin:0 0 24px; }
.vp-hero h1 span { color:var(--ig-blue); }
.vp-hero-lead { font-size:1.23rem; color:#30364d!important; font-weight:650; max-width:610px; }
.vp-hero-copy>p:not(.vp-eyebrow) { max-width:650px; }
.vp-hero-strong { font-weight:800; color:var(--ig-dark)!important; }
.vp-cta-row { display:flex; flex-wrap:wrap; gap:12px; margin:30px 0 26px; }
.vp-trust-list { display:flex; flex-wrap:wrap; list-style:none; gap:11px 20px; padding:0; margin:0; color:#686d80; font-size:.83rem; }
.vp-trust-list li:before { content:'✓'; color:#fff; background:var(--ig-orange); display:inline-grid; place-items:center; width:18px; height:18px; border-radius:50%; margin-right:7px; font-size:.68rem; font-weight:900; }
.vp-hero-art { min-height:540px; position:relative; perspective:1000px; }
.vp-art-glow { position:absolute; inset:11% 5% 5% 8%; border-radius:50%; background:radial-gradient(circle,#2d5dff2b,transparent 66%); }
.vp-mock { position:absolute; background:#fff; box-shadow:0 30px 60px rgba(33,42,88,.19); overflow:hidden; color:#fff; }
.vp-mock-poster { width:48%; height:72%; right:5%; top:3%; border-radius:7px; padding:34px 27px; transform:rotate(5deg); background:linear-gradient(145deg,#102c85,#2d5dff 54%,#ff6b35); }
.vp-mock-poster:after { content:''; position:absolute; width:150px; height:150px; border:30px solid #ffffff30; border-radius:50%; bottom:-44px; right:-35px; }
.vp-mock-poster span,.vp-mock-menu span { text-transform:uppercase; letter-spacing:.18em; font-size:.64rem; font-weight:800; }
.vp-mock-poster strong { display:block; font-size:clamp(1.3rem,2.4vw,2.15rem); margin-top:60px; line-height:1.03; }
.vp-mock-poster small { position:absolute; bottom:20px; left:25px; opacity:.8; }
.vp-mock-card { left:2%; top:22%; width:52%; height:28%; border-radius:8px; padding:24px; transform:rotate(-7deg); background:linear-gradient(125deg,#fff 0 48%,#172048 48%); color:var(--ig-dark); }
.vp-mock-card span { color:var(--ig-blue); font-weight:900; font-size:.72rem; }
.vp-mock-card strong { display:block; margin-top:28px; font-size:1.08rem; }
.vp-mock-card small { color:#6e7281; }
.vp-mock-menu { left:12%; bottom:3%; width:39%; height:43%; border-radius:7px; transform:rotate(7deg); padding:25px; background:#f7efe2; color:#643d2a; }
.vp-mock-menu strong { display:block; font:italic 2.1rem Georgia,serif; margin:16px 0; }
.vp-mock-menu i { display:block; width:100%; height:5px; background:#a9806338; margin:15px 0; border-radius:5px; }
.vp-ready-file { position:absolute; right:0; bottom:11%; display:flex; align-items:center; gap:10px; background:#fff; border-radius:14px; padding:13px 17px; box-shadow:0 15px 35px #1a1a2e24; color:#27834a; font-weight:800; }
.vp-ready-file svg { width:28px; fill:none; stroke:#27834a; stroke-width:1.8; }
.vp-signature { border-top:1px solid #e4e6ef; text-align:center; margin:38px 0 0!important; padding-top:24px; font-size:.93rem; }
.vp-signature strong { color:var(--ig-blue); }
.vp-install-strip { padding:22px 0; border-block:1px solid #e8eaf2; background:#fff; }
.vp-install-strip .vp-shell { display:grid; grid-template-columns:64px 1fr auto; align-items:center; gap:20px; }
.vp-install-strip img { border-radius:15px; box-shadow:0 8px 22px #2d5dff26; }
.vp-install-strip strong { display:block; font-size:1.05rem; margin-bottom:4px; }
.vp-install-strip p { margin:0; font-size:.88rem; line-height:1.45; }
.vp-install-strip .vp-btn { min-height:45px; }
.vp-install-modal { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:20px; background:rgba(10,14,31,.72); backdrop-filter:blur(5px); }
.vp-install-modal[hidden] { display:none; }
.vp-install-dialog { position:relative; width:min(100%,430px); padding:34px; border-radius:22px; background:#fff; box-shadow:0 30px 80px #0005; text-align:center; }
.vp-install-dialog img { border-radius:17px; box-shadow:0 10px 25px #2d5dff2b; }
.vp-install-dialog h2 { margin:17px 0 10px; font-size:1.65rem; }
.vp-install-dialog p { color:#5d6275; line-height:1.6; }
.vp-install-dialog .vp-btn { width:100%; border:0; cursor:pointer; }
.vp-install-close { position:absolute; right:14px; top:11px; border:0; background:transparent; color:#676b7b; font-size:1.8rem; cursor:pointer; }
.vp-install-later { border:0; background:transparent; color:#6c7182; padding:13px; margin-top:3px; font-weight:700; cursor:pointer; }
.vp-install-steps { text-align:left; padding:0; margin:18px 0; list-style:none; counter-reset:installsteps; }
.vp-install-steps li { position:relative; padding:0 0 14px 39px; color:#4f5468; line-height:1.45; }
.vp-install-steps li:before { counter-increment:installsteps; content:counter(installsteps); position:absolute; left:0; top:-2px; width:27px; height:27px; display:grid; place-items:center; border-radius:50%; background:#edf1ff; color:var(--ig-blue); font-size:.78rem; font-weight:900; }
.vp-is-installed [data-install-app],.vp-is-installed [data-install-surface],.vp-is-installed [data-install-float] { display:none!important; }
.vp-section { padding:100px 0; scroll-margin-top:80px; }
.vp-problem { background:#f7f8fc; }
.vp-callout { margin-top:27px!important; padding:19px 22px; border-left:4px solid var(--ig-orange); background:#fff; color:var(--ig-dark)!important; font-weight:800; box-shadow:0 8px 25px #1a1a2e0a; }
.vp-office-illustration { min-height:420px; position:relative; overflow:hidden; border-radius:28px; background:linear-gradient(145deg,#dce4ff,#fbfcff); }
.vp-office-screen { position:absolute; width:62%; height:58%; left:8%; top:12%; border:10px solid #1a1a2e; border-bottom-width:24px; border-radius:10px; background:#fff; padding:22px; box-shadow:0 25px 35px #1a1a2e25; }
.vp-office-screen span,.vp-office-screen b { display:block; font-size:.8rem; margin-bottom:10px; }
.vp-office-screen b { color:var(--ig-blue); font-size:1.05rem; }
.vp-office-screen i { display:block; height:10px; border-radius:6px; background:#edf0f8; margin:12px 0; }
.vp-office-screen em { display:inline-block; background:var(--ig-blue); color:#fff; padding:8px 15px; border-radius:8px; font-size:.7rem; font-style:normal; }
.vp-person { position:absolute; right:8%; bottom:50px; width:135px; height:210px; background:#192c69; border-radius:65px 65px 15px 15px; }
.vp-person span { position:absolute; width:78px; height:90px; border-radius:48% 48% 44% 44%; background:#7d4e35; left:29px; top:-46px; border-top:20px solid #241a18; }
.vp-person i { position:absolute; width:78px; height:55px; border-radius:50%; background:#ff6b35; left:-42px; top:40px; transform:rotate(-25deg); }
.vp-desk { position:absolute; height:52px; left:0; right:0; bottom:0; background:#b57a56; }
.vp-section-heading { max-width:780px; margin:0 auto 48px; text-align:center; }
.vp-section-heading>p:last-child { font-size:1.05rem; }
.vp-service-grid,.vp-pricing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:stretch; }
.vp-service-card { position:relative; padding:30px; border:1px solid #e5e7f0; border-radius:22px; background:#fff; box-shadow:0 13px 35px #2026500b; }
.vp-service-featured { border:2px solid var(--ig-blue); box-shadow:0 20px 50px #2d5dff20; }
.vp-icon-box { width:54px; height:54px; display:grid; place-items:center; border-radius:15px; background:#edf1ff; color:var(--ig-blue); margin-bottom:21px; }
.vp-icon-box svg { width:29px; fill:none; stroke:currentColor; stroke-width:1.7; }
.vp-status { display:inline-block; background:#f0f1f5; color:#707487; padding:6px 10px; border-radius:20px; font-size:.7rem; font-weight:850; text-transform:uppercase; letter-spacing:.05em; }
.vp-status-live { background:#e7f8ed; color:#248246; }
.vp-service-card h3 { font-size:1.42rem; margin:18px 0 12px; }
.vp-service-card ul { color:#5c6174; line-height:1.8; padding-left:19px; min-height:83px; }
.vp-service-card .vp-btn { width:100%; margin-top:11px; }
.vp-process-section { background:#11182e; color:#fff; }
.vp-process-section h2,.vp-process-section h3 { color:#fff; }
.vp-process-section p { color:#b9c0d7; }
.vp-process { display:grid; grid-template-columns:repeat(5,1fr); gap:0; padding:0; list-style:none; counter-reset:steps; margin:0 0 45px; }
.vp-process li { position:relative; padding:0 17px; text-align:center; }
.vp-process li:not(:last-child):after { content:''; position:absolute; height:2px; background:#455073; width:calc(100% - 55px); top:25px; left:calc(50% + 28px); }
.vp-process li>span { display:grid; place-items:center; width:52px; height:52px; margin:0 auto 20px; border-radius:50%; background:var(--ig-blue); color:#fff; font-weight:900; position:relative; z-index:2; }
.vp-process h3 { font-size:1rem; margin-bottom:9px; }
.vp-process p { font-size:.86rem; line-height:1.55; }
.vp-centered { display:flex; justify-content:center; margin-top:38px; }
.vp-filters { display:flex; flex-wrap:wrap; justify-content:center; gap:9px; margin:-18px 0 30px; }
.vp-filters button { border:1px solid #dfe2eb; background:#fff; color:#555a70; border-radius:30px; padding:9px 15px; font-weight:750; cursor:pointer; }
.vp-filters button.is-active { background:var(--ig-dark); color:#fff; border-color:var(--ig-dark); }
.vp-gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.vp-gallery-card { margin:0; transition:transform .25s; }
.vp-gallery-card:hover { transform:translateY(-5px); }
.vp-gallery-card[hidden] { display:none; }
.vp-gallery-card>div { aspect-ratio:4/3; border-radius:17px; padding:29px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; box-shadow:0 16px 35px #1a1a2e14; position:relative; overflow:hidden; }
.vp-gallery-card>div:after { content:''; position:absolute; width:150px; height:150px; border:24px solid #ffffff27; border-radius:50%; right:-55px; bottom:-65px; }
.vp-gallery-card small { text-transform:uppercase; letter-spacing:.15em; font-weight:800; }
.vp-gallery-card strong { display:block; font-size:clamp(1.45rem,2.5vw,2.2rem); line-height:1; margin:24px 0 15px; }
.vp-gallery-card span { font-size:.8rem; font-weight:700; }
.vp-gallery-card>p { margin:12px 4px 0; font-weight:750; color:var(--ig-dark); }
.vp-demo-restaurant>div { background:linear-gradient(145deg,#17302b,#338264); color:#fff; }
.vp-demo-beauty>div { background:linear-gradient(145deg,#f4d7d9,#fff2ee); color:#723f52; }
.vp-demo-card>div { background:linear-gradient(120deg,#f7f8fc 0 50%,#25356f 50%); color:#202b59; }
.vp-demo-event>div { background:linear-gradient(145deg,#2d5dff,#8c42df 60%,#ff6b35); color:#fff; }
.vp-demo-menu>div { background:#f2e6d2; color:#563c2b; font-family:Georgia,serif; }
.vp-demo-invite>div { background:linear-gradient(145deg,#fff,#e8f2e5); color:#456145; border:1px solid #d9e5d5; }
.vp-pricing { background:#f7f8fc; }
.vp-pricing-grid article { position:relative; background:#fff; border-radius:20px; border:1px solid #e2e5ef; padding:31px; text-align:center; }
.vp-pricing-grid article.is-popular { border:2px solid var(--ig-blue); transform:translateY(-10px); }
.vp-pricing-grid article.is-popular>span { position:absolute; top:-13px; left:50%; transform:translateX(-50%); background:var(--ig-orange); color:#fff; border-radius:20px; padding:6px 14px; font-size:.7rem; font-weight:900; white-space:nowrap; }
.vp-pricing-grid h3 { font-size:1.2rem; }
.vp-price { color:var(--ig-dark)!important; font-size:2.25rem; font-weight:900; margin:18px 0 8px!important; }
.vp-price small { font-size:.75rem; }
.vp-price-note { max-width:720px; display:flex; align-items:center; gap:15px; margin:40px auto 0; padding:17px 20px; border-radius:13px; background:#fff2ec; border:1px solid #ffd5c5; }
.vp-price-note svg { width:28px; flex:0 0 auto; fill:none; stroke:var(--ig-orange); stroke-width:1.8; }
.vp-price-note p { margin:0; color:#68402f; }
.vp-business-grid { grid-template-columns:1.05fr .95fr; }
.vp-benefit-list { list-style:none; padding:0; margin:30px 0; display:grid; gap:17px; }
.vp-benefit-list li { position:relative; padding-left:36px; }
.vp-benefit-list li:before { content:'✓'; position:absolute; left:0; top:2px; display:grid; place-items:center; width:23px; height:23px; border-radius:50%; background:#e8edff; color:var(--ig-blue); font-weight:900; }
.vp-benefit-list strong,.vp-benefit-list span { display:block; }
.vp-benefit-list span { color:#666b7f; font-size:.9rem; margin-top:3px; }
.vp-dashboard-mock { height:440px; background:#fff; border:9px solid #1a1a2e; border-radius:20px; box-shadow:0 30px 60px #1a1a2e20; position:relative; }
.vp-window-bar { height:34px; background:#edf0f7; display:flex; align-items:center; gap:6px; padding:0 12px; }
.vp-window-bar i { width:8px; height:8px; border-radius:50%; background:#c6c9d3; }
.vp-dashboard-content { display:grid; grid-template-columns:30% 70%; height:calc(100% - 34px); }
.vp-dashboard-content aside { background:#172047; padding:25px 17px; color:#fff; }
.vp-dashboard-content aside b { display:block; color:#fff; margin-bottom:30px; }
.vp-dashboard-content aside span { display:block; height:8px; background:#ffffff25; margin:16px 0; border-radius:6px; }
.vp-dashboard-content>div { padding:31px 24px; background:#f7f8fc; }
.vp-dashboard-content small,.vp-dashboard-content strong { display:block; }
.vp-dashboard-content strong { font-size:1.3rem; margin-top:8px; }
.vp-dashboard-content section { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:26px; }
.vp-dashboard-content section i { display:block; height:105px; background:linear-gradient(145deg,#dfe6ff,#fff); border-radius:10px; border:1px solid #e3e5ee; }
.vp-phone-mock { position:absolute; right:-30px; bottom:-30px; width:145px; height:255px; border:7px solid #1a1a2e; background:#fff; border-radius:25px; padding:26px 13px; box-shadow:0 20px 40px #1a1a2e2c; }
.vp-phone-mock span { display:block; width:35px; height:5px; background:#1a1a2e; border-radius:5px; position:absolute; top:8px; left:48px; }
.vp-phone-mock b { display:block; font-size:.77rem; }
.vp-phone-mock i { display:block; height:65px; background:#e9edff; border-radius:8px; margin-top:12px; }
.vp-difference { background:#fbfbfd; }
.vp-benefit-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:15px; }
.vp-benefit-grid article { padding:23px; border-radius:16px; background:#fff; border:1px solid #e8e9f0; }
.vp-benefit-grid b { color:var(--ig-orange); font-size:.78rem; }
.vp-benefit-grid h3 { font-size:1rem; margin:17px 0 10px; }
.vp-benefit-grid p { font-size:.84rem; line-height:1.55; margin:0; }
.vp-positioning { padding:90px 0; background:linear-gradient(135deg,#e9eeff,#fff5f0); }
.vp-positioning-inner { display:grid; grid-template-columns:170px 1fr; align-items:center; max-width:950px; }
.vp-positioning-icon { width:140px; height:140px; display:grid; place-items:center; border-radius:35px; background:#fff; color:var(--ig-blue); box-shadow:0 18px 35px #2d5dff19; }
.vp-positioning-icon svg { width:65px; fill:none; stroke:currentColor; stroke-width:1.4; }
.vp-positioning h2 { margin-bottom:16px; }
.vp-big-signature { color:var(--ig-dark)!important; font-size:1.35rem; line-height:1.35!important; margin:24px 0 0!important; }
.vp-big-signature strong { color:var(--ig-blue); }
.vp-faq-wrap { max-width:880px; }
.vp-faq-list { border-top:1px solid #e0e2eb; }
.vp-faq-list details { border-bottom:1px solid #e0e2eb; }
.vp-faq-list summary { list-style:none; cursor:pointer; padding:23px 48px 23px 0; font-weight:800; position:relative; }
.vp-faq-list summary::-webkit-details-marker { display:none; }
.vp-faq-list summary:after { content:'+'; position:absolute; right:8px; top:17px; font-size:1.8rem; color:var(--ig-blue); font-weight:400; }
.vp-faq-list details[open] summary:after { content:'−'; }
.vp-faq-list details p { padding:0 50px 23px 0; margin:0; }
.vp-final-cta { padding:90px 0; background:var(--ig-blue); color:#fff; text-align:center; }
.vp-final-cta .vp-eyebrow { color:#bfcfff!important; }
.vp-final-cta h2 { color:#fff; font-size:clamp(2.4rem,4.2vw,4rem); margin-bottom:13px; }
.vp-final-cta p { color:#e8edff; font-size:1.08rem; }
.vp-btn-white { background:#fff; color:var(--ig-blue); margin:16px 0; }
.vp-final-cta small,.vp-final-cta strong { display:block; }
.vp-final-cta small { color:#d8e0ff; margin-bottom:22px; }
.vp-final-cta strong { font-size:.9rem; }
.vp-footer { background:#101427; color:#c9ccda; padding:70px 0 25px; }
.vp-footer-grid { display:grid; grid-template-columns:1.5fr repeat(3,1fr); gap:55px; }
.vp-footer h3 { color:#fff; font-size:.9rem; margin-bottom:18px; }
.vp-footer a,.vp-footer span { display:block; color:#aeb3c7; margin:10px 0; font-size:.86rem; }
.vp-footer a:hover { color:#fff; }
.vp-footer-brand img { width:155px; height:53px; object-fit:contain; background:#fff; border-radius:9px; padding:5px; }
.vp-footer-brand p { color:#aeb3c7; font-size:.87rem; line-height:1.6; max-width:330px; }
.vp-footer-bottom { border-top:1px solid #ffffff18; margin-top:50px; padding-top:20px; display:flex; justify-content:space-between; }
.vp-footer-bottom span { margin:0; }

@media (max-width:1080px) {
  .vp-desktop-nav { display:none; }
  .vp-header-inner { justify-content:space-between; }
  .vp-menu-toggle { display:block; }
  .vp-hero-grid { gap:38px; }
  .vp-process { grid-template-columns:repeat(3,1fr); gap:30px 0; }
  .vp-process li:after { display:none; }
  .vp-benefit-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:820px) {
  .vp-shell { width:min(100% - 36px,700px); }
  .vp-hero { padding-top:58px; }
  .vp-hero-grid,.vp-two-col { grid-template-columns:1fr; }
  .vp-hero-copy { text-align:center; }
  .vp-hero-copy>p { margin-inline:auto; }
  .vp-cta-row,.vp-trust-list { justify-content:center; }
  .vp-hero-art { min-height:480px; width:min(100%,580px); margin-inline:auto; }
  .vp-section { padding:76px 0; }
  .vp-service-grid,.vp-pricing-grid { grid-template-columns:repeat(2,1fr); }
  .vp-service-featured { grid-row:span 2; }
  .vp-gallery { grid-template-columns:repeat(2,1fr); }
  .vp-business-grid>div:first-child { order:1; }
  .vp-dashboard-mock { width:min(100% - 25px,590px); margin-inline:auto; }
  .vp-footer-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:600px) {
  .vp-shell { width:calc(100% - 30px); }
  .vp-header-inner { min-height:68px; gap:10px; }
  .vp-logo { width:126px; height:44px; }
  .vp-login-link,.vp-btn-header { display:none; }
  .vp-install-link { display:none; }
  .vp-hero h1 { font-size:clamp(2.35rem,12vw,3.35rem); }
  .vp-hero-lead { font-size:1.08rem; }
  .vp-cta-row { display:grid; grid-template-columns:1fr; }
  .vp-cta-row .vp-btn { width:100%; }
  .vp-trust-list { display:grid; text-align:left; justify-content:start; margin-inline:auto; width:max-content; max-width:100%; }
  .vp-hero-art { min-height:390px; }
  .vp-mock-poster { width:52%; height:68%; padding:22px 16px; }
  .vp-mock-poster strong { margin-top:45px; font-size:1.35rem; }
  .vp-mock-card { width:58%; padding:17px; }
  .vp-mock-card strong { margin-top:20px; }
  .vp-mock-menu { width:46%; height:41%; padding:17px; }
  .vp-ready-file { font-size:.75rem; padding:10px 12px; }
  .vp-section { padding:64px 0; }
  .vp-landing-page h2 { font-size:2rem; }
  .vp-office-illustration { min-height:350px; }
  .vp-office-screen { width:71%; left:4%; padding:15px; }
  .vp-person { transform:scale(.8); transform-origin:bottom right; right:2%; }
  .vp-service-grid,.vp-pricing-grid,.vp-gallery,.vp-benefit-grid { grid-template-columns:1fr; }
  .vp-service-featured { grid-row:auto; }
  .vp-process { grid-template-columns:1fr; text-align:left; }
  .vp-process li { display:grid; grid-template-columns:52px 1fr; gap:18px; text-align:left; padding:0; }
  .vp-process li>span { margin:0; }
  .vp-filters { justify-content:flex-start; flex-wrap:nowrap; overflow-x:auto; padding-bottom:8px; }
  .vp-filters button { flex:0 0 auto; }
  .vp-pricing-grid article.is-popular { transform:none; margin-top:10px; }
  .vp-dashboard-mock { height:330px; }
  .vp-phone-mock { right:-8px; bottom:-28px; transform:scale(.78); transform-origin:bottom right; }
  .vp-positioning-inner { grid-template-columns:1fr; gap:25px; text-align:center; }
  .vp-positioning-icon { width:100px; height:100px; border-radius:25px; margin:auto; }
  .vp-positioning-icon svg { width:48px; }
  .vp-footer-grid { grid-template-columns:1fr; gap:27px; }
  .vp-footer-bottom { display:block; }
  .vp-install-strip .vp-shell { grid-template-columns:52px 1fr; gap:13px; }
  .vp-install-strip img { width:52px; height:52px; }
  .vp-install-strip .vp-btn { grid-column:1/-1; width:100%; }
  .vp-install-dialog { padding:30px 21px 22px; }
  .vp-install-float { left:12px; right:12px; bottom:16px; width:auto; grid-template-columns:46px 1fr auto; padding:13px; gap:10px; }
  .vp-install-float img { width:46px; height:46px; }
  .vp-install-float-action { padding:0 12px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .vp-btn,.vp-gallery-card { transition:none; } .vp-install-float { animation:none; } }

.ig-alert-test { background:#eef2ff; border:1px solid #b9c8ff; color:#183b9b; }
.ig-alert-test strong { color:#102d7a; }
