/* =========================================================
   Display font + site-wide components (features, steps, visuals)
   ========================================================= */
h1,h2,h3,.h1,.h2,.h3,
.panel .price,.plan-price .amount,.report-uptime .big,.chip,.steps li::before,
.clients ul,.feature-price,.stat b,.big-num{font-family:"Outfit","Saira Semi Condensed",system-ui,sans-serif}
h1,h2,h3{font-weight:700;letter-spacing:-.025em;line-height:1.05}
.hero h1,.h1{font-weight:700;letter-spacing:-.035em}
.plan-price .amount,.report-uptime .big,.panel .price{font-weight:700}

/* Section header */
.section-head{max-width:62ch}
.section-head .intro{margin-top:14px}

/* Feature cards (icon + title + text [+ price]) */
.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-top:44px}
.feature{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:28px;display:flex;flex-direction:column;gap:12px;transition:transform .2s,box-shadow .2s}
.band-soft .feature{border-color:transparent}
.feature:hover{transform:translateY(-4px);box-shadow:0 24px 40px -28px rgba(53,27,93,.45)}
.feature-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:var(--mint-pale);color:var(--mint)}
.feature-icon .icon{width:26px;height:26px}
.feature h3{font-size:1.3rem}
.feature p{color:var(--ink-2)}
.feature-price{margin-top:auto;padding-top:8px;font-weight:700;font-size:1.25rem;color:var(--coral-ink)}
.feature-price small{font-family:"Saira Semi Condensed",sans-serif;font-weight:500;font-size:.9rem;color:var(--ink-2)}
.feature a.more{font-weight:600;text-underline-offset:5px}
@media (prefers-reduced-motion:reduce){.feature:hover{transform:none}}

/* Steps with icons (a real sequence) */
.timeline{list-style:none;counter-reset:t;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;margin-top:48px;position:relative}
.timeline li{counter-increment:t;position:relative;padding-top:64px}
.timeline li::before{content:"";position:absolute;top:26px;left:52px;right:-24px;height:2px;background:var(--line)}
.timeline li:last-child::before{display:none}
.timeline .t-icon{position:absolute;top:0;left:0;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--ink);color:#fff;z-index:1}
.timeline .t-icon::after{content:counter(t);position:absolute;right:-6px;top:-6px;width:22px;height:22px;border-radius:50%;background:var(--coral);color:var(--ink);font:700 .8rem/22px "Outfit",sans-serif;text-align:center}
.timeline li.key .t-icon{background:var(--coral);color:var(--ink)}
.timeline h3{font-size:1.2rem;margin-bottom:6px}
.timeline p{color:var(--ink-2);font-size:1rem}
@media (max-width:760px){.timeline li::before{display:none}}

/* Dark CTA band in the middle of pages */
.cta-band{background:var(--ink);color:#fff;border-radius:var(--r-xl);padding:40px;display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between}
.cta-band h2{font-size:clamp(1.5rem,2.6vw,2rem);color:#fff}
.cta-band p{color:#D3C8E6;margin-top:6px}
.cta-band .btn-primary{background:var(--coral);border-color:var(--coral);color:var(--ink)}
.cta-band .btn-primary:hover{background:#fff;border-color:#fff}

/* ---- PrestaShop visual: upgrade in progress ---- */
.upgrade{background:var(--ink);color:#fff;border-radius:var(--r-xl);padding:26px;box-shadow:0 30px 60px -30px rgba(53,27,93,.45)}
.upgrade-versions{display:flex;align-items:center;gap:14px;font-family:"Outfit",sans-serif;font-weight:700;font-size:1.6rem}
.upgrade-versions .from{opacity:.5;text-decoration:line-through;text-decoration-thickness:2px}
.upgrade-versions .to{color:var(--coral)}
.upgrade-versions .icon{color:#A98BE8}
.progress{height:12px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden;margin:18px 0 8px}
.progress span{display:block;height:100%;width:100%;border-radius:inherit;background:linear-gradient(90deg,#A98BE8,var(--coral));transform-origin:left}
.progress-label{display:flex;justify-content:space-between;font-size:.92rem;color:#D3C8E6}
.checklist{list-style:none;display:grid;gap:8px;margin-top:18px}
.checklist li{display:flex;gap:10px;align-items:center;padding:10px 14px;border-radius:12px;background:rgba(255,255,255,.06)}
.checklist .icon{color:#6EE7B7}
.visual figcaption{margin-top:14px;font-size:.88rem;color:#B9AECD}

/* ---- CRM visual: kanban ---- */
.kanban{background:var(--ink);border-radius:var(--r-xl);padding:22px;box-shadow:0 30px 60px -30px rgba(53,27,93,.45);color:#fff}
.kanban-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.kanban-col{background:rgba(255,255,255,.06);border-radius:14px;padding:10px;min-height:220px}
.kanban-col h4{font:600 .85rem "Outfit",sans-serif;color:#D3C8E6;margin:2px 4px 10px;display:flex;justify-content:space-between}
.kcard{background:#fff;color:var(--ink);border-radius:10px;padding:10px 12px;margin-bottom:8px;font-size:.9rem;box-shadow:0 6px 14px -8px rgba(0,0,0,.4)}
.kcard b{display:block;font-family:"Outfit",sans-serif;font-size:.98rem}
.kcard span{color:var(--ink-2);font-size:.82rem}
.kcard.hot{border-left:4px solid var(--coral)}
.kcard.moving{outline:2px dashed #A98BE8;outline-offset:2px}

/* ---- IA visual: chat ---- */
.chat{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:0 30px 60px -30px rgba(53,27,93,.35);overflow:hidden}
.chat-head{display:flex;align-items:center;gap:10px;padding:14px 18px;background:var(--ink);color:#fff;font-weight:600}
.chat-head .avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--coral);color:var(--ink)}
.chat-head small{display:block;font-weight:400;color:#D3C8E6;font-size:.8rem}
.chat-body{padding:18px;display:grid;gap:10px;background:var(--bg-2);min-height:260px;align-content:start}
.msg{max-width:82%;padding:10px 14px;border-radius:16px;font-size:.95rem;line-height:1.4}
.msg.user{justify-self:end;background:var(--ink);color:#fff;border-bottom-right-radius:4px}
.msg.bot{justify-self:start;background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px}
.msg.handoff{justify-self:center;background:var(--mint-pale);font-size:.85rem;font-weight:600;border-radius:999px}
.typing{justify-self:start;display:flex;gap:4px;padding:12px 14px;background:#fff;border:1px solid var(--line);border-radius:16px}
.typing i{width:6px;height:6px;border-radius:50%;background:var(--ink-2);opacity:.4}
.chat figcaption{padding:10px 18px 14px;font-size:.88rem;color:var(--ink-2);background:var(--bg-2)}

/* ---- Home extras ---- */
.offer .offer-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#fff;color:var(--mint);margin-bottom:18px}
.offer.core .offer-icon{background:rgba(255,255,255,.1);color:var(--coral)}
.offer .offer-icon .icon{width:26px;height:26px}
.offer{transition:transform .2s,box-shadow .2s}
.offer:hover{transform:translateY(-4px);box-shadow:0 24px 40px -28px rgba(53,27,93,.45)}
@media (prefers-reduced-motion:reduce){.offer:hover{transform:none}}

/* Case study hero screenshot */
.case-hero-shot{border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 60px -30px rgba(53,27,93,.35)}
.case-hero-shot .browser{border-bottom:0}

/* ---- Motion for the new visuals ---- */
@keyframes fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes pop{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
@keyframes blink{0%,100%{opacity:.25}50%{opacity:1}}
@keyframes glow{0%,100%{outline-color:rgba(169,139,232,.3)}50%{outline-color:#A98BE8}}
@media (prefers-reduced-motion:no-preference){
  .progress span{animation:fill 2.4s cubic-bezier(.3,.7,.2,1) both .3s}
  .checklist li{animation:slide-in .45s ease both;animation-delay:calc(var(--i) * 350ms + .6s)}
  .msg,.typing{animation:pop .4s ease both;animation-delay:calc(var(--i) * 900ms + .3s)}
  .typing i{animation:blink 1s infinite}
  .typing i:nth-child(2){animation-delay:.15s}
  .typing i:nth-child(3){animation-delay:.3s}
  .kcard{animation:pop .4s ease both;animation-delay:calc(var(--i) * 120ms + .2s)}
  .kcard.moving{animation:pop .4s ease both .2s,glow 2.4s ease-in-out 1.2s infinite}
}

/* Mobile safety: grid children must be allowed to shrink */
.page-hero-split .wrap>*{min-width:0}
.kanban-col{min-width:0}
.kcard{overflow-wrap:anywhere}
.upgrade-versions{flex-wrap:wrap;font-size:clamp(1.2rem,4.5vw,1.6rem)}
@media (max-width:520px){.kanban{padding:14px}.kanban-cols{gap:6px}.kanban-col{padding:6px;min-height:0}.kcard{padding:8px;font-size:.8rem}.kcard b{font-size:.85rem}}
.status a{color:inherit;text-underline-offset:3px}
footer nav{display:flex;flex-wrap:wrap;gap:6px 22px}

/* Client logos strip (home) */
.clients{padding:36px 0;border-top:1px solid var(--line);border-bottom:0}
.clients .wrap{display:block}
.clients-title{font:600 1rem "Saira Semi Condensed",sans-serif;letter-spacing:0;color:var(--ink-2);text-align:center;margin-bottom:22px}
.logos{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:28px 56px}
.logos li{display:flex;align-items:center}
.logos a{display:block;border-radius:8px}
.logos img{display:block;height:46px;width:auto;max-width:150px;object-fit:contain;filter:grayscale(1);opacity:.6;mix-blend-mode:multiply;transition:filter .25s,opacity .25s}
.logos li:hover img,.logos a:focus-visible img{filter:none;opacity:1}
@media (max-width:600px){.logos{gap:22px 32px}.logos img{height:36px;max-width:120px}}

/* Real portrait on the home page */
.portrait-photo{display:block;width:100%;max-width:360px;height:auto;padding:0;border:0;background:none;border-radius:50%;box-shadow:0 30px 60px -30px rgba(53,27,93,.45)}
.solo blockquote{font-family:"Outfit","Saira Semi Condensed",sans-serif;font-weight:600;letter-spacing:-.02em}

/* Long texts: prose + sticky contact card on the right (desktop only) */
.page-content .with-aside{display:grid;grid-template-columns:minmax(0,760px) 300px;justify-content:space-between;gap:56px;align-items:start}
.contact-card{position:sticky;top:96px;background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:24px;box-shadow:0 24px 48px -32px rgba(53,27,93,.45);display:grid;gap:14px}
.cc-person{display:flex;gap:14px;align-items:center}
.cc-person img{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none}
.cc-person strong{display:block;font-family:"Outfit",sans-serif;font-size:1.1rem}
.cc-person span{display:block;color:var(--ink-2);font-size:.95rem;line-height:1.3}
.cc-price{font-size:1rem;color:var(--ink-2)}
.cc-price b{font-family:"Outfit",sans-serif;font-size:1.8rem;color:var(--ink);font-weight:700}
.contact-card .btn{width:100%}
.cc-meta{display:flex;gap:8px;align-items:flex-start;font-size:.92rem;color:var(--ink-2);line-height:1.35}
.cc-meta .icon{color:var(--mint);margin-top:.1em}
@media (max-width:1080px){.page-content .with-aside{grid-template-columns:1fr}.contact-card{display:none}}

/* Maintenance plans: detailed comparison (disclosure) */
.compare{margin-top:32px;text-align:center}
.compare-toggle{gap:10px}
.compare-toggle .icon{transition:transform .2s}
.compare-toggle[aria-expanded="true"] .icon{transform:rotate(180deg)}
.compare-panel{margin-top:24px;text-align:left}
.compare-scroll{overflow-x:auto;border-radius:var(--r-xl);background:#fff;border:1px solid var(--line)}
.compare-scroll:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
.compare-table{width:100%;min-width:720px;border-collapse:collapse;font-size:1rem}
.compare-table th,.compare-table td{padding:14px 18px;border-bottom:1px solid var(--line);vertical-align:middle}
.compare-table thead th{font:700 1.2rem "Outfit",sans-serif;text-align:center;background:var(--bg-2)}
.compare-table tbody th{font-weight:600;text-align:left;width:38%}
.compare-table td{text-align:center;color:var(--ink-2)}
.compare-table .is-featured{background:rgba(123,79,201,.06)}
.compare-table thead .is-featured{background:var(--ink);color:#fff}
.compare-table .yes{color:var(--mint);width:22px;height:22px}
.compare-table .no{color:#C9C3D6;width:20px;height:20px}
.compare-table tr:last-child th,.compare-table tr:last-child td{border-bottom:0}
.row-strong th,.row-strong td{font:700 1.15rem "Outfit",sans-serif;color:var(--ink)}
@media (prefers-reduced-motion:reduce){.compare-toggle .icon{transition:none}}

/* Monthly / annual billing switch */
.billing{display:inline-flex;margin-top:28px;padding:4px;border-radius:999px;background:#fff;border:1px solid var(--line)}
.billing[hidden]{display:none}
.billing button{font:600 1rem "Saira Semi Condensed",sans-serif;color:var(--ink-2);background:none;border:0;border-radius:999px;padding:.55em 1.2em;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.billing button[aria-pressed="true"]{background:var(--ink);color:#fff}
.billing-badge{padding:.1em .6em;border-radius:999px;background:var(--coral);color:var(--ink);font-size:.8rem;font-weight:700}
.plans[data-billing-current="monthly"] .price-annual{display:none}
.js .plans[data-billing-current="annual"] .price-monthly{display:none}
.plan-annual-note{margin:-14px 0 20px;font-size:.9rem;color:var(--ink-2)}
.plan-featured .plan-annual-note{color:#D3C8E6}
.hero h1{font-size:clamp(2.4rem,4.6vw,4.1rem)}
.status>span{display:inline}

/* About page */
.about-visual{display:grid;justify-items:center;gap:24px}
.about-photo{width:100%;max-width:340px;height:auto;border-radius:50%;box-shadow:0 30px 60px -30px rgba(53,27,93,.45)}
.about-stats{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;max-width:440px}
.about-stats li{background:var(--bg-2);border-radius:16px;padding:14px 16px}
.about-stats b{display:block;font:700 1.6rem/1.1 "Outfit",sans-serif;color:var(--ink)}
.about-stats span{font-size:.92rem;color:var(--ink-2)}
@media (prefers-reduced-motion:no-preference){.about-stats li{animation:pop .45s ease both;animation-delay:calc(var(--i) * 140ms + .3s)}}

/* Side cards (about, legal, case studies) */
.aside-title{font:700 1.2rem "Outfit",sans-serif;color:var(--ink)}
.aside-title-sub{margin-top:6px;padding-top:14px;border-top:1px solid var(--line);font-size:1.05rem}
.aside-text{color:var(--ink-2);font-size:.95rem;line-height:1.45}
.aside-list{list-style:none;display:grid;gap:10px}
.aside-list li{display:flex;gap:10px;align-items:flex-start;font-size:.95rem;color:var(--ink-2);line-height:1.35}
.aside-list .icon{color:var(--mint);margin-top:.1em}
.aside-link{display:inline-flex;align-items:center;gap:8px;font-weight:600;text-underline-offset:4px;justify-self:start}
.aside-links{list-style:none;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.92rem}
.aside-links a{color:var(--ink-2);text-underline-offset:3px}
.aside-facts{display:grid;gap:10px}
.aside-facts div{display:grid;gap:2px}
.aside-facts dt{font-size:.82rem;font-weight:600;color:var(--ink-2)}
.aside-facts dd{font-weight:600;color:var(--ink);line-height:1.35}
.contact-card .btn .icon{width:1.1em;height:1.1em}

/* Section titles: wider than the default 18ch so they rarely wrap */
.section-head{max-width:none}
.section-head .h2{max-width:none}
.section-head .intro{max-width:62ch}
/* Feature grids sized to the number of cards (no orphan cards) */
@media (min-width:900px){
  .features-2{grid-template-columns:repeat(2,1fr)}
  .features-3{grid-template-columns:repeat(3,1fr)}
  .features-4{grid-template-columns:repeat(4,1fr)}
  .features-5{grid-template-columns:repeat(6,1fr)}
  .features-5>*{grid-column:span 2}
  .features-5>:nth-child(n+4){grid-column:span 3}
}
@media (min-width:600px) and (max-width:899px){.features-3,.features-4,.features-5{grid-template-columns:repeat(2,1fr)}.features-5>*{grid-column:auto}}
/* Sub-page links: compact horizontal band */
.band-tight{padding:40px 0}
.child-band{display:flex;flex-wrap:wrap;align-items:center;gap:20px 28px;background:var(--bg-2);border-radius:var(--r-xl);padding:28px 32px}
.child-band+.child-band{margin-top:16px}
.child-band>div{flex:1 1 320px}
.child-band h3{font-size:1.35rem}
.child-band p{color:var(--ink-2);margin-top:4px}
/* "Services" mega menu */
.mega-toggle{display:inline-flex;align-items:center;gap:4px;background:none;border:0;padding:0;font:inherit;color:var(--ink-2);cursor:pointer}
.mega-toggle:hover,.mega-toggle[aria-expanded="true"]{color:var(--ink)}
.mega-toggle .icon{width:18px;height:18px;transition:transform .3s cubic-bezier(.3,1.4,.5,1)}
.mega-toggle[aria-expanded="true"] .icon{transform:rotate(180deg)}
.mega-title{font:700 1rem "Outfit",sans-serif;color:var(--ink);margin-bottom:10px}
.mega ul{list-style:none;display:grid;gap:4px}
.mega-col a,.mega-ai-list a{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:14px;text-decoration:none;color:var(--ink)}
.mega-col a:hover,.mega-col a[aria-current="page"],.mega-ai-list a:hover,.mega-ai-list a[aria-current="page"]{background:var(--bg-2)}
.mega-icon{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:12px;background:var(--mint-pale);color:var(--mint);transition:transform .25s}
.mega-icon .icon{width:20px;height:20px}
.mega-col a:hover .mega-icon,.mega-ai-list a:hover .mega-icon{transform:rotate(-8deg) scale(1.08)}
.mega-ecommerce .mega-icon{background:#FFEDE8;color:var(--coral-ink)}
.mega-websites .mega-icon{background:#E2F3EF;color:#1D7A6B}
.mega-ai .mega-icon{background:#E4EEFB;color:#1F5FA8}
.mega-text{display:grid}
.mega-name{font-weight:600;line-height:1.25}
.mega-price{font-size:.9rem;color:var(--ink-2)}
/* Highlighted card: maintenance (recurring revenue) */
.mega-featured,.nav .mega-featured,.nav .mega-featured:hover{color:#fff}
.mega-featured{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:6px;padding:22px;border-radius:var(--r-xl);background:var(--ink);color:#fff;text-decoration:none}
.mega-featured::after{content:"";position:absolute;right:-50px;bottom:-60px;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,rgba(255,138,115,.55),transparent 70%)}
.mega-featured-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:rgba(255,255,255,.12);color:var(--coral);margin-bottom:6px}
.mega-featured-name{font:700 1.25rem "Outfit",sans-serif}
.mega-featured-text{color:#D3C8E6;font-size:.95rem;line-height:1.4}
.mega-featured-price{margin-top:4px;color:#D3C8E6}
.mega-featured-price b{font:800 1.6rem "Outfit",sans-serif;color:#fff}
.mega-featured-cta{display:inline-flex;align-items:center;gap:6px;margin-top:auto;padding-top:8px;font-weight:600;color:var(--coral)}
.mega-featured-cta .icon{width:18px;height:18px;transition:transform .25s}
.mega-featured:hover .mega-featured-cta .icon{transform:translateX(4px)}
@media (min-width:881px){
  .mega{position:absolute;left:0;right:0;top:100%;background:#fff;border-top:1px solid var(--line);box-shadow:0 24px 48px -24px rgba(53,27,93,.28)}
  .mega-inner{max-width:1260px;margin:0 auto;padding:28px 32px 32px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 260px;gap:24px}
  .mega-col a{padding:8px}
  .mega-icon{width:36px;height:36px}
}
/* Opening: the panel unfolds as a circle from the "Services" button, then the links rise column by column */
@media (min-width:881px) and (prefers-reduced-motion:no-preference){
  .mega{clip-path:circle(0 at var(--ox,50%) 0);transition:clip-path .2s cubic-bezier(.3,0,.2,1)}
  .mega.is-open{clip-path:circle(150% at var(--ox,50%) 0);transition:clip-path .55s cubic-bezier(.2,.8,.2,1)}
  .mega .mega-col li,.mega .mega-ai-list li,.mega .mega-title,.mega .mega-featured{opacity:0;transform:translateY(12px);transition:opacity .08s,transform .08s}
  .mega.is-open .mega-col li,.mega.is-open .mega-ai-list li,.mega.is-open .mega-title{opacity:1;transform:none;transition:opacity .35s ease,transform .45s cubic-bezier(.3,1.4,.5,1);transition-delay:calc(var(--c,0) * 70ms + var(--r,0) * 45ms + 90ms)}
  .mega.is-open .mega-featured{opacity:1;transform:none;transition:opacity .4s ease .3s,transform .5s cubic-bezier(.3,1.4,.5,1) .3s}
}
@media (max-width:1080px){
  .site-header nav .nav .mega-toggle{display:flex;justify-content:space-between;width:100%;padding:12px 0;border-top:1px solid var(--line);color:var(--ink);font-weight:500}
  .site-header nav .nav .mega-col a{display:flex;border-top:0;padding:8px 6px}
  .site-header nav .nav .mega-featured{display:flex;border-top:0;padding:20px;color:#fff}
  .mega-inner{display:grid;gap:18px;padding:4px 0 16px}
  .site-header nav.is-open{max-height:calc(100dvh - 72px);overflow-y:auto;overscroll-behavior:contain}
}
/* "IA" mega menu: services on the left, a live demo on the right */
.mega-ai-list{list-style:none;display:grid;gap:6px}
.mega-ai-list .mega-icon{background:#E4EEFB;color:#1F5FA8}
.mega-desc{font-size:.92rem;color:var(--ink-2);line-height:1.3}
.mega-ai-list .mega-price{color:var(--ink);font-weight:600}
.ia-demo{display:grid;gap:10px;align-content:start;padding:20px;border-radius:var(--r-xl);background:var(--ink);color:#fff}
.ia-demo-head{display:flex;align-items:center;gap:8px;font-weight:600;color:#D3C8E6}
.ia-demo-head .icon{width:26px;height:26px;padding:5px;border-radius:50%;background:var(--coral);color:var(--ink)}
.ia-msg{max-width:88%;padding:10px 14px;border-radius:16px;font-size:.95rem;line-height:1.4}
.ia-user{justify-self:end;background:#fff;color:var(--ink);border-bottom-right-radius:4px}
.ia-bot{background:#4A2D78;border-bottom-left-radius:4px}
.ia-slot{display:grid}
.ia-slot>*{grid-area:1/1;justify-self:start;align-self:start}
.ia-typing{display:flex;gap:5px;padding:13px 16px;border-radius:16px;background:#4A2D78}
.ia-typing i{width:7px;height:7px;border-radius:50%;background:#D3C8E6}
.ia-done{display:flex;align-items:center;gap:8px;font-size:.9rem;color:#D3C8E6}
.ia-done .icon{width:18px;height:18px;color:var(--coral)}
@media (min-width:1081px){
  .mega-ia .mega-inner{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);max-width:1180px}
  .mega-ai-list{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px 20px}
  .mega-ai-list a{align-items:flex-start;padding:12px}
}
@media (max-width:1080px){
  .ia-demo{display:none}
  .site-header nav .nav .mega-ai-list a{display:flex;border-top:0;padding:8px 6px}
}
/* Demo sequence, replayed each time the panel is shown */
@media (prefers-reduced-motion:no-preference){
  .ia-typing{opacity:0}
  .mega-ia.is-open .ia-user{animation:pop .4s ease both .35s}
  .mega-ia.is-open .ia-typing{animation:ia-typing 1.3s ease both .8s}
  .mega-ia.is-open .ia-typing i{animation:blink 1s infinite}
  .mega-ia.is-open .ia-typing i:nth-child(2){animation-delay:.15s}
  .mega-ia.is-open .ia-typing i:nth-child(3){animation-delay:.3s}
  .mega-ia.is-open .ia-bot{animation:pop .45s ease both 2.05s}
  .mega-ia.is-open .ia-done{animation:pop .45s ease both 2.7s}
}
@media (prefers-reduced-motion:reduce){.ia-typing{display:none}}
@keyframes ia-typing{0%{opacity:0;transform:translateY(6px)}15%,85%{opacity:1;transform:none}100%{opacity:0}}
/* "See all services" link at the bottom of the Services panel */
.mega-all,.nav .mega-all{grid-column:1/-1;justify-self:start;display:inline-flex;align-items:center;gap:6px;margin-top:4px;font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.mega-all .icon{width:18px;height:18px;transition:transform .25s}
.mega-all:hover .icon{transform:translateX(4px)}
@media (max-width:1080px){.site-header nav .nav .mega-all{display:inline-flex;border-top:0;padding:4px 6px}}
/* Glossary */
.glossary-nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.glossary-nav a{display:inline-block;padding:8px 16px;border-radius:999px;background:var(--bg-2);color:var(--ink);font-weight:600;text-decoration:none}
.glossary-nav a:hover{background:var(--mint-pale)}
.glossary{padding-bottom:72px}
.glossary-group{padding-top:40px}
.glossary-title{font-size:clamp(1.6rem,3vw,2.2rem)}
.glossary-group dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:16px;margin-top:20px}
.glossary-term{padding:20px 22px;border-radius:var(--r-md);background:var(--bg-2)}
.glossary-term dt{font:700 1.2rem "Outfit",sans-serif;color:var(--ink)}
.glossary-term dd p{margin-top:6px;color:var(--ink-2)}
.glossary-term .glossary-link{margin-top:10px;font-weight:600}
.glossary-term:target{outline:3px solid var(--coral);outline-offset:3px}
.glossary-group,.glossary-term{scroll-margin-top:96px}
/* Automatic links to the glossary: quieter than links to services */
.prose a.glossary-ref{color:inherit;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-thickness:1.5px;text-underline-offset:3px}
.prose a.glossary-ref:hover{color:var(--mint)}
/* Audit page: "which audit for which need" cards */
.plan-need{font:600 1.05rem/1.35 "Saira Semi Condensed",sans-serif;color:var(--ink-2);margin-bottom:14px;text-wrap:pretty}
.plan-featured .plan-need{color:#D3C8E6}
.audit-choice .plan-for{min-height:0}
.audit-choice .plan-price .amount{font-size:2.2rem}
.audit-choice .plan-featured .plan-note{background:rgba(255,255,255,.1);color:#D3C8E6}
/* Pricing page: fixed-price projects as a grouped price list */
.price-filters{display:flex;gap:8px;margin-top:28px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.price-filters[hidden]{display:none}
.price-filters button{flex:none;padding:8px 16px;border:1.5px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font:600 1rem "Saira Semi Condensed",sans-serif;cursor:pointer}
.price-filters button:hover{border-color:var(--ink)}
.price-filters button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.price-list{margin-top:32px;display:grid;gap:36px}
.price-group[hidden]{display:none}
.price-group-title{font-size:1.35rem;padding-bottom:10px;border-bottom:2px solid var(--ink)}
.price-group ul{list-style:none}
.price-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px 18px;padding:14px 12px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;transition:background .2s}
.price-row:hover{background:var(--bg-2)}
.price-row .feature-icon{width:44px;height:44px;border-radius:14px}
.price-row .feature-icon .icon{width:22px;height:22px}
.price-row-main{display:grid;gap:2px}
.price-row-name{font-weight:700;font-size:1.1rem}
.price-row-text{color:var(--ink-2);font-size:.98rem}
.price-row-price{text-align:right;white-space:nowrap}
.price-row-price b{font:700 1.35rem "Outfit",sans-serif}
.price-row-price small{display:block;color:var(--ink-2);font-size:.85rem}
@media (max-width:640px){
  .price-row{grid-template-columns:auto minmax(0,1fr);align-items:start}
  .price-row-price{grid-column:2;text-align:left}
  .price-row-price small{display:inline}
}
/* Price filters: sliding pill and row animations */
.price-filters.has-pill{position:relative}
.price-filters.has-pill button{position:relative;z-index:1;transition:color .25s,border-color .25s}
.price-filters.has-pill button[aria-pressed="true"]{background:transparent;border-color:transparent;color:#fff}
.price-filters-pill{position:absolute;left:0;top:0;height:calc(100% - 4px);border-radius:999px;background:var(--ink);transition:transform .35s cubic-bezier(.3,1.3,.5,1),width .35s cubic-bezier(.3,1.3,.5,1)}
.price-group{transition:opacity .15s ease}
.price-group.is-leaving{opacity:0}
@media (prefers-reduced-motion:no-preference){
  .price-group.is-entering .price-row{animation:pop .4s ease both;animation-delay:calc(var(--i,0) * 55ms)}
}
@media (prefers-reduced-motion:reduce){.price-filters-pill,.price-group{transition:none}}
/* Contact page: form on the left, sticky "what happens next" card on the right */
.contact-page{padding:24px 0 88px}
.contact-page-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:56px;align-items:start}
.contact-page-main .lead{margin-top:14px;max-width:60ch}
.contact-page form{margin-top:32px;padding:0;background:none;gap:18px}
.contact-aside{position:sticky;top:96px;display:grid;gap:16px;padding:26px;border-radius:var(--r-xl);background:var(--bg-2)}
.contact-aside-title{font-size:1.25rem;margin-top:6px}
.contact-steps{list-style:none;display:grid;gap:14px}
.contact-steps li{display:grid;grid-template-columns:32px 1fr;gap:12px;align-items:start;line-height:1.4}
.contact-step-n{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--ink);color:#fff;font:700 1rem "Outfit",sans-serif}
.contact-mail{display:flex;align-items:center;gap:8px;font-weight:600}
.contact-mail .icon{width:20px;height:20px;color:var(--mint)}
.contact-mail a{color:var(--ink)}
/* Need chips (radio buttons) */
.need-chips{border:0;padding:0;margin:0}
.need-chips legend{font-weight:600;margin-bottom:10px;padding:0}
.need-chips-list{display:flex;flex-wrap:wrap;gap:10px}
.need-chip{position:relative;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1.5px solid var(--line);border-radius:999px;background:#fff;cursor:pointer;font-weight:600;transition:border-color .2s,background .2s,color .2s}
.need-chip input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.need-chip .icon{width:18px;height:18px;color:var(--mint)}
.need-chip:hover{border-color:var(--ink)}
.need-chip:has(input:checked){background:var(--ink);border-color:var(--ink);color:#fff}
.need-chip:has(input:checked) .icon{color:var(--coral)}
.need-chip:has(input:focus-visible){outline:3px solid var(--coral);outline-offset:3px}
.field-hint{margin-top:-10px;font-size:.92rem;color:var(--ink-2)}
@media (max-width:900px){
  .contact-page-grid{grid-template-columns:1fr;gap:36px}
  .contact-aside{position:static}
}
/* Thank-you page */
.thanks{padding:40px 0 72px}
.thanks-inner{max-width:760px}
.thanks-check{display:block;margin-bottom:22px}
.thanks-check circle{fill:var(--mint-pale);stroke:var(--mint);stroke-width:3}
.thanks-check path{fill:none;stroke:var(--ink);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.thanks-subject{margin-top:14px;font-size:1.15rem;color:var(--ink-2)}
.thanks-subject b{color:var(--ink)}
.thanks-steps{margin-top:36px;padding:26px 28px;border-radius:var(--r-xl);background:var(--bg-2)}
.thanks-steps-title{font-size:1.3rem}
.thanks-steps ol{list-style:none;display:grid;gap:18px;margin-top:18px;position:relative}
.thanks-steps ol::before{content:"";position:absolute;left:8px;top:10px;bottom:10px;width:2px;background:var(--line)}
.thanks-steps li{display:grid;grid-template-columns:18px 1fr;gap:16px;align-items:start;line-height:1.45;position:relative}
.thanks-dot{width:18px;height:18px;margin-top:3px;border-radius:50%;background:#fff;border:2px solid var(--line)}
.thanks-steps li.is-current .thanks-dot{background:var(--coral);border-color:var(--coral);box-shadow:0 0 0 5px rgba(255,138,115,.25)}
.thanks-badge{display:inline-block;margin-left:6px;padding:.1em .6em;border-radius:999px;background:var(--ink);color:#fff;font-size:.8rem;font-weight:600;vertical-align:middle}
@media (prefers-reduced-motion:no-preference){
  .thanks-check circle{stroke-dasharray:183;stroke-dashoffset:183;animation:thanks-draw .6s ease-out forwards .1s}
  .thanks-check path{stroke-dasharray:40;stroke-dashoffset:40;animation:thanks-draw .45s ease-out forwards .6s}
  .thanks-steps li.is-current .thanks-dot{animation:thanks-pulse 1.8s ease-in-out infinite 1s}
}
@keyframes thanks-draw{to{stroke-dashoffset:0}}
@keyframes thanks-pulse{50%{box-shadow:0 0 0 9px rgba(255,138,115,.08)}}
/* 404 page */
.error-suggestion{display:grid;gap:6px;margin-top:26px;padding:18px 22px;border-radius:var(--r-md);background:var(--mint-pale);max-width:520px}
.error-suggestion span{color:var(--ink-2);font-weight:600}
.error-suggestion a{display:inline-flex;align-items:center;gap:8px;font:700 1.3rem "Outfit",sans-serif;color:var(--ink);text-decoration:none}
.error-suggestion a .icon{width:22px;height:22px;transition:transform .25s}
.error-suggestion a:hover .icon{transform:translateX(4px)}
.error-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.error-path{max-width:12em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.error-services{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:28px;margin-top:36px}
.error-services .mega-col a{padding:8px}
.error-more{list-style:none;display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:32px;font-weight:600}
.error-more a{color:var(--ink)}
.error-services ul{list-style:none;display:grid;gap:4px;padding:0}
/* Glossary search bar and A-Z filter, sticky under the header */
.glossary-tools{position:sticky;top:72px;z-index:5;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:14px 0}
.glossary-tools[hidden]{display:none}
.glossary-search{position:relative;display:flex;align-items:center;gap:14px}
.glossary-search .icon{position:absolute;left:16px;width:20px;height:20px;color:var(--ink-2);pointer-events:none}
.glossary-search input{flex:1;max-width:520px;padding-left:46px;border-radius:999px}
.glossary-count{color:var(--ink-2);font-weight:600;white-space:nowrap}
.glossary-letters{display:flex;gap:4px;margin-top:10px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
.glossary-letters button{flex:none;min-width:34px;height:34px;padding:0 10px;border:0;border-radius:10px;background:none;color:var(--ink);font:700 .98rem "Outfit",sans-serif;cursor:pointer}
.glossary-letters button:hover:not(:disabled):not([aria-pressed="true"]){background:var(--bg-2)}
.glossary-letters button[aria-pressed="true"]{background:var(--ink);color:#fff}
.glossary-letters button:disabled{color:#B9B3C6;cursor:default}
.glossary-group[hidden],.glossary-term[hidden]{display:none}
.glossary-empty{margin-top:40px;font-size:1.1rem}
.glossary-empty[hidden]{display:none}
.glossary-group,.glossary-term{scroll-margin-top:var(--glossary-offset,190px)}
@media (prefers-reduced-motion:no-preference){
  .glossary-term.is-entering{animation:pop .4s ease both;animation-delay:calc(var(--i,0) * 45ms)}
}
