/* =====================================================================
   Webloment — Shopify Development Agency
   Light-mode design system. Blue brand (from logo: royal #1d5bf5 -> sky #3fabfd).
   ===================================================================== */

/* ------------------------------ Tokens ------------------------------ */
:root{
    /* Surfaces */
    --bg-0:#ffffff;
    --bg-1:#f5f8fd;
    --bg-2:#eaf1fb;
    --bg-card:#ffffff;
    --bg-card-2:#f4f9fd;

    /* Dark accent band (intentional accent sections) */
    --bg-dark:#161719;
    --bg-dark-2:#101729;
    --dark-border:rgba(255,255,255,.08);
    --dark-text:#f3f5fa;
    --dark-muted:#a8b0c2;

    /* Borders */
    --border:rgba(16,23,41,.10);
    --border-strong:rgba(16,23,41,.16);

    /* Text */
    --text:#101729;
    --text-muted:#545d70;
    --text-dim:#7e8699;

    /* Brand accents — names are legacy; all values are the logo's blues.
       --orange* = primary royal blue, --purple* = sky/light blue. */
    --orange:#1d5bf5;
    --orange-2:#46abfd;
    --orange-ink:#1546c2;
    --purple:#3fabfd;
    --purple-2:#7cc4fd;
    --purple-deep:#1546c2;

    --grad-brand:linear-gradient(90deg,#46abfd 0%,#1d5bf5 50%,#7cc4fd 100%);

    /* Radii */
    --pill-radius:999px;
    --radius-lg:24px;
    --radius:16px;
    --radius-sm:10px;

    /* Elevation */
    --shadow-glow:0 30px 80px -28px rgba(21,70,194,.28);
    --shadow-card:0 12px 32px -16px rgba(16,23,41,.16);

    --container:1240px;
    --transition:200ms ease;
}

/* ------------------------------ Reset ------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
    margin:0;
    min-height:100vh;
    position:relative;
    font-family:'Plus Jakarta Sans','Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
    font-size:16px;
    line-height:1.55;
    color:var(--text);
    background:
        radial-gradient(ellipse at 20% -10%, rgba(29,91,245,.08), transparent 55%),
        radial-gradient(ellipse at 100% 10%, rgba(63,171,253,.10), transparent 50%),
        var(--bg-0);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;cursor:pointer;}
h1,h2,h3,h4{margin:0;font-weight:800;line-height:1.1;letter-spacing:-.025em;}
h1{font-size:clamp(2.5rem,5.5vw,4.4rem);letter-spacing:-.03em;}
h2{font-size:clamp(2rem,4vw,3.1rem);}
h3{font-size:clamp(1.4rem,2.5vw,1.9rem);letter-spacing:-.02em;}
h4{font-size:1.2rem;letter-spacing:-.02em;}
p{margin:0;}

/* --------------------------- Decorative orbs ------------------------ */
.bg-orbs{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;}
.bg-orbs .orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.18;}
.orb-1{width:520px;height:520px;top:-160px;left:-120px;background:radial-gradient(circle,#1d5bf5,transparent 70%);}
.orb-2{width:600px;height:600px;top:30%;right:-200px;background:radial-gradient(circle,#3fabfd,transparent 70%);opacity:.20;}
.orb-3{width:480px;height:480px;bottom:5%;left:-150px;background:radial-gradient(circle,#7cc4fd,transparent 70%);opacity:.16;}

/* ------------------------------ Layout ------------------------------ */
.container{max-width:var(--container);margin:0 auto;padding:0 24px;}
.section{padding:88px 0;position:relative;}
.section-head{max-width:680px;margin:0 auto 56px;text-align:center;}
.section-head p{margin-top:16px;color:var(--text-muted);font-size:1.06rem;}

.eyebrow{
    display:inline-flex;align-items:center;gap:9px;
    font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
    color:var(--orange-ink);margin-bottom:18px;
}
.eyebrow::before{
    content:"";width:8px;height:8px;border-radius:50%;background:var(--orange);
    box-shadow:0 0 12px 2px rgba(29,91,245,.6);
}
.text-gradient{
    background:var(--grad-brand);
    -webkit-background-clip:text;background-clip:text;color:transparent;
}

/* ------------------------------ Buttons ----------------------------- */
.btn{
    display:inline-flex;align-items:center;justify-content:center;gap:9px;
    padding:13px 24px;border-radius:var(--pill-radius);
    font-weight:600;font-size:.92rem;border:1px solid transparent;
    transition:transform var(--transition),box-shadow var(--transition),background var(--transition);
    white-space:nowrap;
}
.btn:hover{transform:translateY(-2px);}
.btn svg{width:17px;height:17px;}
.btn-primary{
    background:linear-gradient(180deg,#4a90ff,#1550e8);color:#ffffff;
    box-shadow:0 10px 28px -8px rgba(29,91,245,.45),inset 0 1px 0 rgba(255,255,255,.5);
}
.btn-primary:hover{box-shadow:0 16px 36px -10px rgba(29,91,245,.55),inset 0 1px 0 rgba(255,255,255,.5);}
.btn-ghost{background:rgba(16,23,41,.04);color:var(--text);border-color:var(--border-strong);}
.btn-ghost:hover{background:rgba(16,23,41,.07);}
.btn-purple{background:linear-gradient(180deg,#3fabfd,#1546c2);color:#fff;box-shadow:0 10px 28px -8px rgba(21,70,194,.4);}
.btn-lg{padding:15px 30px;font-size:1rem;}
.btn-sm{padding:10px 18px;font-size:.85rem;}
.btn-block{width:100%;}

/* On dark bands */
.dark .btn-ghost{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.18);}
.dark .btn-ghost:hover{background:rgba(255,255,255,.12);}

/* ------------------------------ Header ------------------------------ */
.site-header{
    position:sticky;top:0;z-index:50;padding:11px 0;
    backdrop-filter:saturate(180%) blur(14px);
    -webkit-backdrop-filter:saturate(180%) blur(14px);
    background:rgba(255,255,255,.78);
    border-bottom:1px solid var(--border);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;}
.logo{display:flex;align-items:center;}
.logo-img{height:36px;width:auto;display:block;}
.nav-menu{display:flex;align-items:center;gap:30px;}
.nav-menu a{color:var(--text-muted);font-weight:500;font-size:.94rem;transition:color var(--transition);position:relative;}
.nav-menu a:hover,.nav-menu a.active{color:var(--text);}
.nav-menu a.active{color:var(--orange-ink);}
.nav-item{position:relative;}
.nav-item > a{display:inline-flex;align-items:center;gap:5px;}
.caret{width:12px;height:12px;transition:transform var(--transition);}
.nav-item:hover .caret{transform:rotate(180deg);}
.dropdown{
    position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(8px);
    min-width:220px;padding:8px;border-radius:var(--radius);
    background:var(--bg-card);border:1px solid var(--border-strong);
    box-shadow:0 20px 40px -10px rgba(16,23,41,.18);
    opacity:0;visibility:hidden;transition:all var(--transition);
}
.nav-item:hover .dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.dropdown li a{display:block;padding:10px 12px;border-radius:var(--radius-sm);font-size:.9rem;color:var(--text-muted);}
.dropdown li a:hover{background:rgba(16,23,41,.05);color:var(--text);}
.header-cta{display:flex;align-items:center;gap:12px;}
.mobile-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:6px;}
.mobile-toggle span{width:24px;height:2px;background:var(--text);border-radius:2px;transition:var(--transition);}

/* ------------------------------- Hero ------------------------------- */
.hero{padding:64px 0 72px;position:relative;}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
.hero h1{margin-bottom:22px;}
.hero-lead{font-size:1.12rem;color:var(--text-muted);max-width:520px;margin-bottom:30px;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:34px;}
.hero-trust{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.trust-faces{display:flex;}
.trust-faces span{
    width:38px;height:38px;border-radius:50%;border:2px solid #fff;margin-left:-12px;
    background-size:cover;background-position:center;box-shadow:var(--shadow-card);
}
.trust-faces span:first-child{margin-left:0;}
.trust-text strong{display:block;font-size:.95rem;}
.trust-text span{font-size:.85rem;color:var(--text-muted);}
.stars{color:var(--orange);letter-spacing:2px;font-size:.85rem;}

/* Hero form card */
.lead-card{
    background:var(--bg-card);border:1px solid var(--border);
    border-radius:var(--radius-lg);padding:30px;box-shadow:var(--shadow-glow);
    position:relative;
}
.lead-card::before{
    content:"";position:absolute;inset:-1px;border-radius:var(--radius-lg);padding:1px;
    background:linear-gradient(135deg,rgba(29,91,245,.5),rgba(63,171,253,.5));
    -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
    -webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.5;
}
.lead-card h3{font-size:1.3rem;margin-bottom:4px;}
.lead-card .sub{font-size:.9rem;color:var(--text-muted);margin-bottom:22px;}
.field{margin-bottom:14px;}
.field label{display:block;font-size:.82rem;font-weight:600;margin-bottom:6px;color:var(--text-muted);}
.form-control{
    width:100%;padding:12px 14px;font-family:inherit;font-size:.92rem;
    background:#fff;border:1px solid var(--border-strong);border-radius:var(--radius-sm);
    color:var(--text);transition:border-color var(--transition),box-shadow var(--transition);
}
.form-control:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(29,91,245,.15);}
.form-control::placeholder{color:var(--text-dim);}
select.form-control{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238b86a0' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.form-alert{padding:12px 16px;border-radius:var(--radius-sm);font-size:.88rem;font-weight:600;margin-bottom:18px;}
.form-alert.ok{background:rgba(22,163,74,.12);color:#16a34a;border:1px solid rgba(22,163,74,.25);}
.form-alert.err{background:rgba(225,29,72,.10);color:#e11d48;border:1px solid rgba(225,29,72,.22);}

/* ------------------------------ Stats ------------------------------- */
.stats-band{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg-1);}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);}
.stat{padding:34px 24px;text-align:center;border-right:1px solid var(--border);}
.stat:last-child{border-right:none;}
.stat .num{
    font-size:clamp(2rem,3.4vw,2.8rem);font-weight:800;letter-spacing:-.02em;line-height:1;
    background:linear-gradient(180deg,#101729,#1546c2);
    -webkit-background-clip:text;background-clip:text;color:transparent;
}
.stat .label{margin-top:8px;font-size:.9rem;color:var(--text-muted);}

/* --------------------------- Logos strip ---------------------------- */
.logos{padding:46px 0;border-bottom:1px solid var(--border);}
.logos-title{text-align:center;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);margin-bottom:26px;font-weight:600;}
.logo-row{display:flex;align-items:center;justify-content:center;gap:14px 44px;flex-wrap:wrap;}
.logo-pill{display:flex;align-items:center;gap:9px;font-weight:700;font-size:1.05rem;color:var(--text-muted);letter-spacing:-.01em;opacity:.85;transition:opacity var(--transition);}
.logo-pill:hover{opacity:1;}
.logo-pill .dot{width:14px;height:14px;border-radius:4px;background:var(--grad-brand);}

/* ---------------------------- Dark band ----------------------------- */
.dark{
    background:radial-gradient(ellipse at 50% 0%,rgba(21,70,194,.22),transparent 60%),
               radial-gradient(ellipse at 90% 100%,rgba(29,91,245,.14),transparent 55%),
               var(--bg-dark);
    color:var(--dark-text);
}
.dark h1,.dark h2,.dark h3,.dark h4{color:#fff;}
.dark .section-head p{color:var(--dark-muted);}
.dark .eyebrow{color:var(--orange-2);}

/* --------------------------- Service cards -------------------------- */
.cards-4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.service-card{
    background:rgba(255,255,255,.03);border:1px solid var(--dark-border);
    border-radius:var(--radius-lg);padding:28px;transition:transform var(--transition),border-color var(--transition),background var(--transition);
}
.service-card:hover{transform:translateY(-5px);border-color:rgba(29,91,245,.4);background:rgba(255,255,255,.05);}
.service-card .icon{
    width:52px;height:52px;border-radius:14px;display:grid;place-items:center;margin-bottom:20px;
    background:rgba(29,91,245,.14);color:var(--orange-2);
}
.service-card .icon svg{width:26px;height:26px;}
.service-card.alt .icon{background:rgba(63,171,253,.16);color:var(--purple-2);}
.service-card h4{margin-bottom:10px;color:#fff;}
.service-card p{font-size:.92rem;color:var(--dark-muted);}

/* --------------------------- Feature grid --------------------------- */
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.feature-card{
    background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);
    padding:30px;box-shadow:var(--shadow-card);transition:transform var(--transition),border-color var(--transition),box-shadow var(--transition);
}
.feature-card:hover{transform:translateY(-4px);border-color:rgba(29,91,245,.35);box-shadow:0 18px 44px -18px rgba(16,23,41,.22);}
.feature-card .icon{
    width:50px;height:50px;border-radius:13px;display:grid;place-items:center;margin-bottom:18px;
    background:rgba(29,91,245,.12);color:var(--orange);
}
.feature-card .icon svg{width:25px;height:25px;}
.feature-card:nth-child(3n+2) .icon{background:rgba(63,171,253,.14);color:var(--purple-deep);}
.feature-card h4{margin-bottom:9px;}
.feature-card p{font-size:.93rem;color:var(--text-muted);}
.feature-card .more{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:.86rem;font-weight:600;color:var(--orange-ink);}
.feature-card .more svg{width:14px;height:14px;transition:transform var(--transition);}
.feature-card:hover .more svg{transform:translateX(3px);}

/* --------------------------- Split / Migrate ------------------------ */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.split.reverse .split-media{order:-1;}
.split h2{margin-bottom:18px;}
.split-lead{color:var(--text-muted);font-size:1.05rem;margin-bottom:24px;}
.check-list li{display:flex;align-items:flex-start;gap:12px;padding:9px 0;font-size:.98rem;}
.check-list .tick{
    flex:none;width:24px;height:24px;border-radius:7px;display:grid;place-items:center;margin-top:1px;
    background:rgba(29,91,245,.14);color:var(--orange-ink);
}
.check-list .tick svg{width:14px;height:14px;}
.split-actions{margin-top:28px;display:flex;gap:12px;flex-wrap:wrap;}

.tab-chips{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px;}
.tab-chip{
    padding:9px 16px;border-radius:var(--pill-radius);font-size:.86rem;font-weight:600;
    background:rgba(16,23,41,.04);border:1px solid var(--border);color:var(--text-muted);transition:var(--transition);
}
.tab-chip:hover{color:var(--text);}
.tab-chip.active{background:linear-gradient(180deg,#4a90ff,#1550e8);color:#ffffff;border-color:transparent;}

/* ----------------------- Mock UI panels (media) --------------------- */
.panel{
    background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);
    box-shadow:var(--shadow-glow);overflow:hidden;
}
.panel-bar{display:flex;align-items:center;gap:7px;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--bg-1);}
.panel-bar .dot{width:11px;height:11px;border-radius:50%;}
.panel-bar .dot:nth-child(1){background:#ff6058;}
.panel-bar .dot:nth-child(2){background:#ffbd2e;}
.panel-bar .dot:nth-child(3){background:#28c840;}
.panel-bar .addr{margin-left:10px;font-size:.78rem;color:var(--text-dim);background:#fff;border:1px solid var(--border);padding:4px 12px;border-radius:var(--pill-radius);}
.panel-body{padding:22px;}

.metric-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px;}
.metric{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);padding:16px;}
.metric .k{font-size:.74rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;}
.metric .v{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;margin-top:4px;}
.metric .trend{font-size:.78rem;font-weight:600;color:#16a34a;margin-top:2px;}
.metric .trend.purple{color:var(--purple-deep);}

/* bar chart */
.chart{display:flex;align-items:flex-end;gap:10px;height:150px;padding-top:10px;}
.chart .bar{flex:1;border-radius:8px 8px 4px 4px;background:linear-gradient(180deg,#46abfd,#1550e8);position:relative;opacity:.9;transition:height .4s ease;}
.chart .bar:nth-child(even){background:linear-gradient(180deg,#7cc4fd,#1546c2);}
.chart-x{display:flex;gap:10px;margin-top:8px;}
.chart-x span{flex:1;text-align:center;font-size:.72rem;color:var(--text-dim);}

/* line/area mock */
.area{height:140px;border-radius:var(--radius);background:
    linear-gradient(180deg,rgba(29,91,245,.16),transparent),
    var(--bg-1);
    border:1px solid var(--border);position:relative;overflow:hidden;}
.area svg{position:absolute;inset:0;width:100%;height:100%;}

/* list rows (shopify plus) */
.row-list{display:flex;flex-direction:column;gap:10px;}
.list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.88rem;}
.list-row .lhs{display:flex;align-items:center;gap:10px;}
.list-row .ic{width:30px;height:30px;border-radius:8px;background:var(--grad-brand);display:grid;place-items:center;color:#fff;font-size:.8rem;font-weight:700;}
.tag{font-size:.74rem;font-weight:700;padding:3px 9px;border-radius:var(--pill-radius);}
.tag.green{background:rgba(22,163,74,.12);color:#16a34a;}
.tag.orange{background:rgba(29,91,245,.16);color:var(--orange-ink);}

/* speed gauge */
.gauge-wrap{display:flex;gap:18px;flex-wrap:wrap;}
.gauge{flex:1;min-width:120px;text-align:center;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);padding:20px 14px;}
.gauge .ring{
    width:96px;height:96px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;
    font-size:1.4rem;font-weight:800;color:#16a34a;
    background:conic-gradient(#22c55e var(--p,90%),rgba(16,23,41,.08) 0);
}
.gauge .ring span{width:74px;height:74px;border-radius:50%;background:var(--bg-1);display:grid;place-items:center;}
.gauge .glabel{font-size:.82rem;color:var(--text-muted);}

/* ----------------------------- 3 Steps ------------------------------ */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.step{position:relative;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:30px;box-shadow:var(--shadow-card);}
.step .no{font-size:2.6rem;font-weight:800;letter-spacing:-.04em;background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1;margin-bottom:16px;}
.step h4{margin-bottom:9px;}
.step p{font-size:.93rem;color:var(--text-muted);}

/* --------------------------- Tech grid ------------------------------ */
.tech-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;}
.tech-cell{
    aspect-ratio:1.4/1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
    background:rgba(255,255,255,.03);border:1px solid var(--dark-border);border-radius:var(--radius);
    transition:var(--transition);
}
.tech-cell:hover{background:rgba(255,255,255,.06);border-color:rgba(29,91,245,.35);transform:translateY(-3px);}
.tech-cell svg{width:30px;height:30px;color:var(--orange-2);}
.tech-cell:nth-child(even) svg{color:var(--purple-2);}
.tech-cell span{font-size:.82rem;font-weight:600;color:var(--dark-muted);}

/* --------------------------- Portfolio ------------------------------ */
.portfolio-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.work{
    border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);
    aspect-ratio:3/4;position:relative;box-shadow:var(--shadow-card);transition:transform var(--transition),box-shadow var(--transition);
}
.work:hover{transform:translateY(-5px);box-shadow:0 22px 50px -20px rgba(16,23,41,.3);}
.work .thumb{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:18px;color:#fff;}
.work .thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(10,6,20,.78));z-index:0;}
.work .thumb > *{position:relative;z-index:1;}
.work .cat{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;opacity:.85;}
.work .name{font-size:1.1rem;font-weight:700;margin-top:2px;}
.work.tall{grid-row:span 2;aspect-ratio:auto;}

/* --------------------------- Testimonials --------------------------- */
.testi-grid{columns:3;column-gap:22px;}
.testimonial{
    break-inside:avoid;margin-bottom:22px;background:var(--bg-card);border:1px solid var(--border);
    border-radius:var(--radius-lg);padding:26px;box-shadow:var(--shadow-card);
}
.testimonial .stars{margin-bottom:14px;font-size:.95rem;}
.testimonial .quote{font-size:.97rem;color:var(--text);line-height:1.6;}
.testimonial .who{display:flex;align-items:center;gap:12px;margin-top:18px;}
.testimonial .who .av{width:44px;height:44px;border-radius:50%;background-size:cover;background-position:center;}
.testimonial .who .nm{font-weight:700;font-size:.92rem;}
.testimonial .who .rl{font-size:.82rem;color:var(--text-muted);}

/* ------------------------ Video testimonials ------------------------ */
.video-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.vcard{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:3/4;position:relative;box-shadow:var(--shadow-card);}
.vcard .v-media{position:absolute;inset:0;background-size:cover;background-position:center;}
.vcard .v-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(10,6,20,.7));}
.vcard .play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:60px;border-radius:50%;background:rgba(255,255,255,.9);display:grid;place-items:center;box-shadow:0 8px 24px rgba(0,0,0,.3);transition:var(--transition);}
.vcard:hover .play{transform:translate(-50%,-50%) scale(1.08);}
.vcard .play svg{width:22px;height:22px;color:var(--orange-ink);margin-left:3px;}
.vcard .v-info{position:absolute;left:0;right:0;bottom:0;padding:18px;color:#fff;z-index:1;}
.vcard .v-info .nm{font-weight:700;}
.vcard .v-info .rl{font-size:.82rem;opacity:.85;}

/* ------------------------------ Blog -------------------------------- */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.post{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card);transition:transform var(--transition),box-shadow var(--transition);}
.post:hover{transform:translateY(-4px);box-shadow:0 18px 44px -18px rgba(16,23,41,.22);}
.post .cover{height:180px;background-size:cover;background-position:center;position:relative;}
.post .cover .pill{position:absolute;top:14px;left:14px;background:rgba(255,255,255,.92);color:var(--text);font-size:.74rem;font-weight:700;padding:5px 12px;border-radius:var(--pill-radius);}
.post .pbody{padding:22px;}
.post .meta{font-size:.8rem;color:var(--text-dim);margin-bottom:10px;}
.post h4{margin-bottom:10px;line-height:1.25;}
.post p{font-size:.9rem;color:var(--text-muted);}
.post .more{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:.85rem;font-weight:600;color:var(--orange-ink);}

/* ------------------------------ CTA --------------------------------- */
.cta{position:relative;overflow:hidden;}
.cta-inner{text-align:center;max-width:640px;margin:0 auto;}
.cta-inner p{margin:18px auto 30px;color:var(--dark-muted);font-size:1.1rem;}
.cta-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.cta-note{margin-top:22px;font-size:.85rem;color:var(--dark-muted);}

/* ----------------------------- Footer ------------------------------- */
.site-footer{background:var(--bg-1);border-top:1px solid var(--border);padding:64px 0 30px;}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;margin-bottom:48px;}
.footer-brand .logo{margin-bottom:16px;}
.footer-brand p{color:var(--text-muted);font-size:.92rem;max-width:320px;margin-bottom:20px;}
.socials{display:flex;gap:10px;}
.social-link{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:rgba(16,23,41,.04);color:var(--text-muted);transition:var(--transition);}
.social-link:hover{background:linear-gradient(180deg,#4a90ff,#1550e8);color:#ffffff;transform:translateY(-2px);}
.social-link svg{width:18px;height:18px;}
.footer-heading{font-weight:700;font-size:.95rem;margin-bottom:16px;color:var(--text);}
.footer-col a{display:block;color:var(--text-muted);font-size:.9rem;padding:6px 0;transition:color var(--transition);}
.footer-col a:hover{color:var(--orange-ink);}
.newsletter-row{display:flex;gap:8px;background:#fff;border:1px solid var(--border);border-radius:var(--pill-radius);padding:5px;margin-top:14px;}
.newsletter-row input{flex:1;border:none;background:none;padding:8px 14px;font-family:inherit;font-size:.88rem;color:var(--text);}
.newsletter-row input:focus{outline:none;}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:24px;border-top:1px solid var(--border);flex-wrap:wrap;}
.footer-bottom p{font-size:.85rem;color:var(--text-dim);}
.footer-bottom .links{display:flex;gap:22px;}
.footer-bottom .links a{font-size:.85rem;color:var(--text-muted);}
.footer-bottom .links a:hover{color:var(--orange-ink);}

/* ----------------------------- Reveal ------------------------------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease;}
.reveal.in{opacity:1;transform:none;}

/* --------------------------- Responsive ----------------------------- */
@media (max-width:1024px){
    .hero-grid{grid-template-columns:1fr;gap:40px;}
    .portfolio-grid{grid-template-columns:repeat(3,1fr);}
    .video-grid{grid-template-columns:repeat(2,1fr);}
    .tech-grid{grid-template-columns:repeat(4,1fr);}
}
@media (max-width:980px){
    .nav-menu,.header-cta .btn-ghost{display:none;}
    .mobile-toggle{display:flex;}
    .cards-4{grid-template-columns:repeat(2,1fr);}
    .footer-grid{grid-template-columns:1fr 1fr;gap:32px;}
}
@media (max-width:880px){
    .section{padding:64px 0;}
    .cards-3,.steps,.blog-grid{grid-template-columns:1fr;}
    .split{grid-template-columns:1fr;gap:36px;}
    .split.reverse .split-media{order:0;}
    .stats-grid{grid-template-columns:repeat(2,1fr);}
    .stat:nth-child(2){border-right:none;}
    .stat:nth-child(1),.stat:nth-child(2){border-bottom:1px solid var(--border);}
    .testi-grid{columns:2;}
    .portfolio-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:680px){
    h1{font-size:2.3rem;}
    .cards-4{grid-template-columns:1fr;}
    .tech-grid{grid-template-columns:repeat(3,1fr);}
    .testi-grid{columns:1;}
    .video-grid{grid-template-columns:1fr;}
    .field-row{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr;}
    .footer-bottom{flex-direction:column;text-align:center;}
    .work.tall{grid-row:auto;aspect-ratio:3/4;}
}

/* mobile nav panel */
.mobile-nav{
    position:fixed;inset:0 0 0 auto;width:min(320px,82vw);z-index:60;
    background:var(--bg-1);border-left:1px solid var(--border);
    padding:80px 28px 28px;transform:translateX(100%);transition:transform .3s ease;
    box-shadow:-20px 0 60px -20px rgba(16,23,41,.3);overflow-y:auto;
}
.mobile-nav.open{transform:translateX(0);}
.mobile-nav a{display:block;padding:13px 0;font-size:1.05rem;font-weight:600;border-bottom:1px solid var(--border);color:var(--text);}
.mobile-nav .btn{margin-top:22px;border-bottom:none;color:#fff;padding:15px 30px;}
.mobile-close{position:absolute;top:22px;right:24px;background:none;border:none;font-size:1.6rem;color:var(--text);line-height:1;}
.nav-overlay{position:fixed;inset:0;background:rgba(10,6,20,.4);z-index:55;opacity:0;visibility:hidden;transition:var(--transition);}
.nav-overlay.open{opacity:1;visibility:visible;}

/* =====================================================================
   SERVICE / LANDING PAGE COMPONENTS (shared by sub-pages)
   ===================================================================== */

/* ---- breadcrumb ---- */
.crumbs{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-dim);margin-bottom:18px;}
.crumbs a{color:var(--text-muted);}
.crumbs a:hover{color:var(--orange-ink);}
.crumbs .sep{opacity:.5;}
.crumbs .cur{color:var(--orange-ink);font-weight:600;}

/* sub-page hero pad */
.subhero{padding:48px 0 64px;}

/* ---- big result/stat cards ---- */
.results{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.result-card{
    background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);
    padding:34px 30px;box-shadow:var(--shadow-card);position:relative;overflow:hidden;
}
.result-card::after{content:"";position:absolute;top:-40px;right:-40px;width:130px;height:130px;border-radius:50%;background:var(--grad-brand);opacity:.12;}
.result-card .big{font-size:clamp(2.6rem,5vw,3.6rem);font-weight:800;letter-spacing:-.03em;line-height:1;background:linear-gradient(180deg,#101729,#1546c2);-webkit-background-clip:text;background-clip:text;color:transparent;}
.result-card h4{margin:14px 0 8px;}
.result-card p{font-size:.93rem;color:var(--text-muted);}
.dark .result-card{background:rgba(255,255,255,.03);border-color:var(--dark-border);}
.dark .result-card .big{background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent;}
.dark .result-card h4{color:#fff;}
.dark .result-card p{color:var(--dark-muted);}

/* ---- comparison table ---- */
.compare{max-width:980px;margin:0 auto;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow-card);background:var(--bg-card);}
.compare-row{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;align-items:stretch;}
.compare-row + .compare-row{border-top:1px solid var(--border);}
.compare-row .cell{padding:16px 20px;font-size:.92rem;display:flex;align-items:center;gap:8px;}
.compare-row .cell.feat{font-weight:600;color:var(--text);}
.compare-row .cell.center{justify-content:center;}
.compare-head .cell{padding:22px 20px;font-weight:700;font-size:1rem;justify-content:center;text-align:center;flex-direction:column;gap:2px;}
.compare-head .cell small{font-weight:500;font-size:.78rem;color:var(--text-muted);}
.compare-head{background:var(--bg-1);}
.compare .col-brand{background:linear-gradient(180deg,rgba(29,91,245,.10),rgba(29,91,245,.04));position:relative;}
.compare-head .col-brand{background:linear-gradient(180deg,#4a90ff,#1550e8);color:#ffffff;}
.compare-head .col-brand small{color:#cfe0ff;}
.ci{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex:none;}
.ci svg{width:13px;height:13px;}
.ci.yes{background:rgba(22,163,74,.14);color:#16a34a;}
.ci.no{background:rgba(225,29,72,.12);color:#e11d48;}
.ci.partial{background:rgba(29,91,245,.16);color:var(--orange-ink);}
.compare-row .cell.center span.txt{font-size:.84rem;color:var(--text-muted);}

/* ---- FAQ accordion ---- */
.faq{display:grid;grid-template-columns:1fr 1fr;gap:16px 22px;max-width:1000px;margin:0 auto;}
.faq-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);overflow:hidden;height:max-content;transition:border-color var(--transition);}
.faq-item.open{border-color:rgba(29,91,245,.35);}
.faq-q{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;text-align:left;background:none;border:none;padding:20px 22px;font-family:inherit;font-size:1rem;font-weight:600;color:var(--text);}
.faq-ic{flex:none;width:26px;height:26px;border-radius:8px;background:rgba(29,91,245,.12);color:var(--orange-ink);display:grid;place-items:center;transition:transform var(--transition);}
.faq-ic svg{width:15px;height:15px;}
.faq-item.open .faq-ic{transform:rotate(45deg);background:linear-gradient(180deg,#4a90ff,#1550e8);color:#ffffff;}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.faq-a p{padding:0 22px 20px;font-size:.93rem;color:var(--text-muted);}

/* ---- code editor mockup ---- */
.code-panel{background:#16181c;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-glow);}
.code-panel .panel-bar{background:#1f2227;border-bottom-color:rgba(255,255,255,.06);}
.code-panel .addr{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.08);color:#97a0b5;}
.code-body{padding:20px 22px;font-family:'SF Mono',ui-monospace,Menlo,Consolas,monospace;font-size:.82rem;line-height:1.7;color:#c2cad9;overflow-x:auto;}
.code-body .ln{display:block;white-space:pre;}
.code-body .tag{color:#46abfd;}
.code-body .atr{color:#7cc4fd;}
.code-body .str{color:#7ee0a8;}
.code-body .com{color:#6a7186;font-style:italic;}
.code-body .kw{color:#ff7eb6;}
.code-body .fn{color:#82aaff;}

/* ---- phone mockup ---- */
.phone{width:268px;max-width:100%;margin:0 auto;border-radius:38px;background:#16181c;padding:12px;box-shadow:var(--shadow-glow);border:1px solid rgba(255,255,255,.08);}
.phone .screen{border-radius:28px;overflow:hidden;background:#fff;position:relative;aspect-ratio:9/18;}
.phone .notch{position:absolute;top:10px;left:50%;transform:translateX(-50%);width:96px;height:22px;border-radius:14px;background:#16181c;z-index:3;}
.phone-ui{padding:34px 14px 16px;height:100%;display:flex;flex-direction:column;gap:10px;background:linear-gradient(180deg,#fff,#f4f9fd);}
.phone-ui .pu-bar{height:30px;border-radius:8px;background:var(--bg-1);border:1px solid var(--border);}
.phone-ui .pu-hero{height:96px;border-radius:12px;background:var(--grad-brand);}
.phone-ui .pu-row{display:flex;gap:8px;}
.phone-ui .pu-card{flex:1;height:64px;border-radius:10px;background:var(--bg-1);border:1px solid var(--border);}
.phone-ui .pu-cta{margin-top:auto;height:40px;border-radius:10px;background:linear-gradient(180deg,#4a90ff,#1550e8);}

/* drawer card (cart drawer mock) */
.drawer-mock{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-glow);max-width:340px;margin:0 auto;}
.drawer-mock .dh{display:flex;justify-content:space-between;align-items:center;font-weight:700;margin-bottom:14px;}
.drawer-line{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);}
.drawer-line .ph{width:48px;height:48px;border-radius:10px;background:var(--bg-2);flex:none;}
.drawer-line .nm{font-size:.86rem;font-weight:600;}
.drawer-line .pr{font-size:.82rem;color:var(--text-muted);}
.drawer-total{display:flex;justify-content:space-between;font-weight:800;margin:14px 0;font-size:1.05rem;}

/* ---- timeline (handoff days) ---- */
.timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative;}
.timeline .tl{position:relative;padding:0 16px;text-align:center;}
.timeline .tl::before{content:"";position:absolute;top:18px;left:0;right:0;height:2px;background:rgba(255,255,255,.12);}
.timeline .tl:first-child::before{left:50%;}
.timeline .tl:last-child::before{right:50%;}
.timeline .node{position:relative;z-index:1;width:38px;height:38px;border-radius:50%;margin:0 auto 16px;display:grid;place-items:center;font-weight:800;font-size:.85rem;background:linear-gradient(180deg,#4a90ff,#1550e8);color:#ffffff;}
.timeline .tl h4{font-size:1rem;color:#fff;margin-bottom:6px;}
.timeline .tl p{font-size:.85rem;color:var(--dark-muted);}

/* feature list inside dark code sections */
.dark .check-list .tick{background:rgba(29,91,245,.18);color:var(--orange-2);}
.dark .check-list li{color:var(--dark-text);}
.dark .split-lead{color:var(--dark-muted);}
.dark .tab-chip{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12);color:var(--dark-muted);}
.dark .tab-chip:hover{color:#fff;}

/* light code panel variant lives on dark band; ensure media on light too */
.feat-badge{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:var(--pill-radius);background:rgba(29,91,245,.12);color:var(--orange-ink);font-size:.8rem;font-weight:700;margin-bottom:18px;}
.dark .feat-badge{background:rgba(29,91,245,.16);color:var(--orange-2);}

@media (max-width:880px){
    .results{grid-template-columns:1fr;}
    .faq{grid-template-columns:1fr;}
    .compare{overflow-x:auto;}
    .compare-inner{min-width:680px;}
    .timeline{grid-template-columns:1fr;gap:24px;}
    .timeline .tl::before{display:none;}
}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}.reveal{opacity:1;transform:none;}}

/* =====================================================================
   PORTFOLIO — mini Shopify storefronts (WordPress -> Shopify showcase)
   Used by partials/store_card.html.twig, partials/work.html.twig and
   the /portfolio page. Each card is themed via --accent / --accent-2.
   ===================================================================== */
.pf-grid{
    display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));
    gap:26px;align-items:stretch;
}
.pf-card{
    display:flex;flex-direction:column;background:var(--bg-card);
    border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;
    box-shadow:var(--shadow-card);color:var(--text);
    transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition);
}
.pf-card:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--accent) 40%,var(--border));box-shadow:0 26px 56px -24px rgba(16,23,41,.34);}
.pf-card:focus-visible{outline:2px solid var(--orange);outline-offset:3px;}

/* phone "screen" — scrollable storefront preview */
.pf-shot{position:relative;height:360px;overflow:hidden;background:#fff;border-bottom:1px solid var(--border);}
.pf-shot::after{content:"";position:absolute;inset:auto 0 0 0;height:46px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.92));pointer-events:none;z-index:2;transition:opacity var(--transition);}
.pf-card:hover .pf-shot::after{opacity:0;}
.pf-page{position:absolute;inset:0 0 auto 0;display:flex;flex-direction:column;transform:translateY(0);transition:transform 2.4s cubic-bezier(.22,.61,.36,1);}
.pf-card:hover .pf-page{transform:translateY(calc(-100% + 360px));transition-duration:3.4s;}

/* WordPress -> Shopify badge */
.pf-tag{
    position:absolute;top:9px;right:9px;z-index:4;display:inline-flex;align-items:center;gap:5px;
    padding:4px 9px;border-radius:var(--pill-radius);font-size:.62rem;font-weight:800;letter-spacing:.01em;
    color:var(--text);background:rgba(255,255,255,.86);border:1px solid var(--border-strong);
    backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 6px 16px -8px rgba(16,23,41,.4);
    transition:transform var(--transition),box-shadow var(--transition);
}
.pf-tag svg{width:12px;height:12px;color:var(--accent);}
.pf-card:hover .pf-tag{transform:scale(1.04);box-shadow:0 10px 22px -10px rgba(16,23,41,.5);}

/* ---- storefront chrome ---- */
.sf-announce{background:var(--accent);padding:6px 12px;text-align:center;font-size:.56rem;font-weight:700;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.is-light .sf-announce{color:#fff;}
.is-dark .sf-announce{color:rgba(10,8,4,.82);}
.sf-top{display:flex;align-items:center;justify-content:space-between;padding:11px 13px;border-bottom:1px solid rgba(16,23,41,.07);background:#fff;}
.sf-burger{display:flex;flex-direction:column;gap:3px;}
.sf-burger i{width:14px;height:1.6px;background:#3a3550;border-radius:2px;}
.sf-logo{font-size:.92rem;font-weight:800;letter-spacing:-.01em;color:#101729;}
.font-serif .sf-logo{font-family:Georgia,'Times New Roman',serif;font-weight:700;}
.font-mono .sf-logo{font-family:ui-monospace,Menlo,Consolas,monospace;text-transform:lowercase;letter-spacing:-.03em;}
.font-sans .sf-logo{text-transform:uppercase;letter-spacing:.06em;font-size:.82rem;}
.sf-tools{display:flex;gap:9px;color:#3a3550;}
.sf-tools svg{width:14px;height:14px;}

/* ---- hero variants ---- */
.sf-hero{padding:20px 16px;display:flex;flex-direction:column;gap:8px;}
.sf-hero.center{align-items:center;text-align:center;background:linear-gradient(155deg,var(--accent),var(--accent-2));}
.sf-hero.banner{flex-direction:row;align-items:center;gap:12px;background:linear-gradient(120deg,var(--accent),var(--accent-2));}
.sf-hero.promo{align-items:flex-start;background:linear-gradient(120deg,var(--accent),var(--accent-2));margin:0 13px;border-radius:14px;padding:18px 16px;}
.sf-hero.minimal{align-items:center;text-align:center;background:color-mix(in srgb,var(--accent-2) 16%,#fff);}

.sf-kicker{font-size:.56rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;opacity:.92;}
.sf-title{font-size:1.02rem;font-weight:800;line-height:1.12;letter-spacing:-.01em;}
.font-serif .sf-title{font-family:Georgia,'Times New Roman',serif;}
.is-light .sf-hero.center,.is-light .sf-hero.banner,.is-light .sf-hero.promo{color:#fff;}
.is-dark .sf-hero.center,.is-dark .sf-hero.banner,.is-dark .sf-hero.promo{color:#1a1008;}
.sf-hero.minimal .sf-kicker{color:var(--accent);}
.sf-hero.minimal .sf-title{color:#101729;}

.sf-cta{align-self:flex-start;display:inline-block;padding:7px 15px;border-radius:var(--pill-radius);font-size:.62rem;font-weight:800;background:#fff;color:#171327;box-shadow:0 6px 14px -8px rgba(0,0,0,.5);}
.sf-hero.center .sf-cta{align-self:center;}
.is-dark .sf-cta{background:#1a1008;color:#fff;}
.sf-cta.ghost{background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.55);box-shadow:none;}
.sf-cta.block{align-self:stretch;text-align:center;background:#15110f;color:#fff;border-radius:9px;padding:9px;margin-top:4px;}

.sf-banner-copy{display:flex;flex-direction:column;gap:7px;flex:1;}
.sf-banner-art{flex:none;width:76px;height:76px;border-radius:16px;background:rgba(255,255,255,.22);display:grid;place-items:center;border:1px solid rgba(255,255,255,.4);}
.sf-banner-art span{width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.85);box-shadow:inset 0 -8px 16px -8px rgba(0,0,0,.25);}

/* benefit / category icon rows */
.sf-iconrow{display:flex;justify-content:space-around;gap:8px;padding:13px 12px;flex-wrap:wrap;}
.sf-iconrow.grid4{display:grid;grid-template-columns:repeat(4,1fr);padding:14px 12px 6px;}
.sf-ben{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.56rem;font-weight:600;color:var(--text-muted);text-align:center;line-height:1.2;}
.sf-ben-ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,#fff);color:color-mix(in srgb,var(--accent) 82%,#101729);}
.sf-ben-ic.round{border-radius:50%;}
.sf-ben-ic svg{width:15px;height:15px;}

.sf-circles{display:flex;justify-content:space-between;gap:6px;padding:13px 13px 4px;}
.sf-circle{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.56rem;font-weight:600;color:var(--text-muted);}
.sf-circle-img{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 12%,#fff);color:color-mix(in srgb,var(--accent) 80%,#101729);border:1px solid color-mix(in srgb,var(--accent) 26%,#fff);}
.sf-circle-img svg{width:19px;height:19px;}

/* product grid */
.sf-secttitle{text-align:center;font-weight:800;font-size:.82rem;padding:12px 0 2px;color:#101729;}
.sf-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:13px;}
.sf-grid.quad{grid-template-columns:1fr 1fr;}
.sf-prod,.sf-tile{display:flex;flex-direction:column;}
.sf-img{aspect-ratio:1/1;border-radius:10px;background:linear-gradient(140deg,color-mix(in srgb,var(--accent-2) 36%,#fff),color-mix(in srgb,var(--accent) 24%,#fff));border:1px solid rgba(16,23,41,.06);position:relative;overflow:hidden;}
.sf-img::after{content:"";position:absolute;left:14%;right:14%;bottom:14%;height:34%;border-radius:8px;background:rgba(255,255,255,.5);}
.sf-tile .sf-img::after{display:none;}
.sf-pname{font-size:.62rem;font-weight:700;margin-top:6px;color:#101729;line-height:1.2;}
.sf-price{font-size:.6rem;font-weight:700;color:color-mix(in srgb,var(--accent) 70%,#101729);margin-top:1px;}
.sf-add{margin-top:6px;text-align:center;font-size:.55rem;font-weight:700;padding:5px;border-radius:6px;border:1px solid color-mix(in srgb,var(--accent) 40%,#fff);color:color-mix(in srgb,var(--accent) 78%,#101729);}
.sf-tile .sf-pname{text-align:center;margin-top:5px;}

/* ---- card footer ---- */
.pf-foot{padding:15px 16px 16px;background:var(--bg-card);flex:1;display:flex;flex-direction:column;}
.pf-foot-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:13px;}
.pf-view{margin-top:auto;}
.pf-cat{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb,var(--accent) 72%,#101729);}
.pf-name{font-size:1.15rem;font-weight:800;letter-spacing:-.02em;margin-top:3px;}
.pf-metric{font-size:.74rem;font-weight:700;color:#16a34a;text-align:right;max-width:120px;line-height:1.3;flex:none;}
.pf-view{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px;border-radius:var(--radius-sm);font-weight:700;font-size:.82rem;color:#ffffff;background:linear-gradient(180deg,#4a90ff,#1550e8);box-shadow:0 8px 20px -10px rgba(29,91,245,.5);transition:filter var(--transition),transform var(--transition);}
.pf-view svg{width:15px;height:15px;transition:transform var(--transition);}
.pf-card:hover .pf-view{filter:brightness(1.04);}
.pf-card:hover .pf-view svg{transform:translateX(3px);}

/* ---- /portfolio page hero + filter ---- */
.pf-hero{max-width:780px;}
.pf-hero h1{margin-bottom:18px;}
.pf-wp{color:#7e8699;text-decoration:line-through;text-decoration-color:rgba(139,134,160,.5);text-decoration-thickness:3px;}
.pf-stats{display:flex;flex-wrap:wrap;gap:14px 40px;margin-top:30px;}
.pf-stats div{display:flex;flex-direction:column;}
.pf-stats strong{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:800;letter-spacing:-.02em;line-height:1;background:linear-gradient(180deg,#101729,#1546c2);-webkit-background-clip:text;background-clip:text;color:transparent;}
.pf-stats span{font-size:.85rem;color:var(--text-muted);margin-top:6px;}

.pf-filter{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:40px;}
.pf-fchip{padding:9px 17px;border-radius:var(--pill-radius);font-size:.85rem;font-weight:600;background:rgba(16,23,41,.04);border:1px solid var(--border);color:var(--text-muted);transition:var(--transition);}
.pf-fchip:hover{color:var(--text);}
.pf-fchip.active{background:linear-gradient(180deg,#4a90ff,#1550e8);color:#ffffff;border-color:transparent;}
.pf-card.hide{display:none;}

@media (max-width:680px){
    .pf-grid{grid-template-columns:1fr;}
    .pf-stats{gap:14px 28px;}
}
@media (prefers-reduced-motion:reduce){
    .pf-page,.pf-card:hover .pf-page{transition:none;transform:none;}
    .pf-card:hover .pf-shot::after{opacity:1;}
}

/* portfolio filter divider (between platform and category chips) */
.pf-fdiv{width:1px;height:26px;background:var(--border-strong);align-self:center;margin:0 6px;}
@media (max-width:680px){.pf-fdiv{display:none;}}

/* =====================================================================
   ABOUT — team grid
   ===================================================================== */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.team-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:26px 22px;text-align:center;box-shadow:var(--shadow-card);transition:transform var(--transition),box-shadow var(--transition);}
.team-card:hover{transform:translateY(-5px);box-shadow:0 22px 50px -22px rgba(16,23,41,.28);}
.team-av{display:block;width:84px;height:84px;border-radius:50%;margin:0 auto 16px;background-size:cover;background-position:center;border:3px solid #fff;box-shadow:var(--shadow-card);}
.team-nm{font-weight:800;font-size:1.05rem;}
.team-rl{font-size:.85rem;color:var(--text-muted);margin-top:3px;}

/* =====================================================================
   LEGAL — privacy / terms / cookies
   ===================================================================== */
.legal-head{max-width:760px;}
.legal-head h1{margin-bottom:14px;}
.legal-updated{color:var(--text-dim);font-size:.9rem;}
.legal-layout{display:grid;grid-template-columns:240px 1fr;gap:48px;align-items:start;}
.legal-toc{position:sticky;top:96px;}
.legal-toc-title{font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);margin-bottom:14px;}
.legal-toc nav{display:flex;flex-direction:column;gap:2px;border-left:2px solid var(--border);}
.legal-toc a{padding:7px 0 7px 16px;margin-left:-2px;border-left:2px solid transparent;font-size:.9rem;color:var(--text-muted);transition:var(--transition);}
.legal-toc a:hover{color:var(--orange-ink);border-left-color:var(--orange);}
.legal-body{max-width:760px;}
.legal-body section{padding:8px 0 4px;}
.legal-body h2{font-size:1.4rem;margin:18px 0 12px;scroll-margin-top:96px;}
.legal-body p{color:var(--text-muted);line-height:1.7;margin-bottom:14px;}
.legal-body ul{margin:0 0 16px;padding-left:0;display:flex;flex-direction:column;gap:8px;}
.legal-body li{position:relative;padding-left:26px;color:var(--text-muted);line-height:1.6;}
.legal-body li::before{content:"";position:absolute;left:6px;top:9px;width:7px;height:7px;border-radius:2px;background:var(--grad-brand);}
.legal-body a{color:var(--orange-ink);font-weight:600;}
.legal-body a:hover{text-decoration:underline;}
.legal-note{margin-top:24px;padding-top:20px;border-top:1px solid var(--border);font-size:.85rem;color:var(--text-dim);font-style:italic;}

@media (max-width:880px){
    .team-grid{grid-template-columns:repeat(2,1fr);}
    .legal-layout{grid-template-columns:1fr;gap:28px;}
    .legal-toc{position:static;}
    .legal-toc nav{flex-flow:row wrap;border-left:none;gap:8px;}
    .legal-toc a{border-left:none;border:1px solid var(--border);border-radius:var(--pill-radius);padding:7px 14px;margin:0;}
}
@media (max-width:680px){.team-grid{grid-template-columns:1fr;}}

/* =====================================================================
   PRICING
   ===================================================================== */
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:start;}
.price-card{position:relative;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px 28px;box-shadow:var(--shadow-card);transition:transform var(--transition),box-shadow var(--transition);}
.price-card:hover{transform:translateY(-5px);box-shadow:0 22px 50px -22px rgba(16,23,41,.26);}
.price-card.popular{border-color:transparent;box-shadow:var(--shadow-glow);transform:translateY(-8px);}
.price-card.popular::before{content:"";position:absolute;inset:-1px;border-radius:var(--radius-lg);padding:1.5px;background:var(--grad-brand);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;}
.price-card.popular:hover{transform:translateY(-12px);}
.price-badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:linear-gradient(180deg,#4a90ff,#1550e8);color:#ffffff;font-size:.74rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:6px 16px;border-radius:var(--pill-radius);box-shadow:0 8px 20px -8px rgba(29,91,245,.6);white-space:nowrap;}
.price-tier{font-size:1.3rem;font-weight:800;letter-spacing:-.02em;}
.price-for{font-size:.88rem;color:var(--text-muted);margin-top:4px;min-height:38px;}
.price-amount{font-size:clamp(2.2rem,4vw,2.9rem);font-weight:800;letter-spacing:-.03em;line-height:1;margin-top:14px;display:flex;align-items:flex-start;gap:6px;}
.price-from{font-size:.85rem;font-weight:600;color:var(--text-dim);align-self:center;letter-spacing:0;}
.price-period{font-size:.85rem;color:var(--text-muted);margin:6px 0 22px;}
.price-card .btn{margin-bottom:24px;}
.price-feats{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--border);padding-top:22px;}
.price-feats li{position:relative;padding-left:28px;font-size:.92rem;color:var(--text);line-height:1.45;}
.price-feats li::before{content:"";position:absolute;left:0;top:3px;width:18px;height:18px;border-radius:50%;background:rgba(29,91,245,.14)
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23c2560f' stroke-width='3.5'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/12px no-repeat;}
.price-feats li strong{font-weight:700;}
.price-feats li:has(strong)::before{display:none;}
.price-feats li:has(strong){padding-left:0;color:var(--text-muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;}
.price-note{text-align:center;color:var(--text-muted);font-size:.95rem;margin-top:34px;}

@media (max-width:880px){
    .pricing-grid{grid-template-columns:1fr;max-width:460px;margin:0 auto;}
    .price-card.popular,.price-card.popular:hover{transform:none;}
    .price-for{min-height:0;}
}

/* =====================================================================
   HOMEPAGE — 4-up process + local area pills
   ===================================================================== */
.steps.four{grid-template-columns:repeat(4,1fr);}
.area-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;}
.area-pill{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:var(--pill-radius);font-size:.85rem;font-weight:600;background:var(--bg-card);border:1px solid var(--border-strong);color:var(--text-muted);}
.area-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--grad-brand);}
@media (max-width:980px){.steps.four{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.steps.four{grid-template-columns:1fr;}}
