/* Business / professional portfolio. Colours, fonts and the html[data-*] style axes come from content.theme. */
:root{--bg:#F7F8FA;--surface:#fff;--deep:#0E1B2C;--text:#0E1B2C;--soft:#5A6678;--line:#DDE2EA;--c1:#1D4ED8;--c2:#0E7490;--c3:#F59E0B;--on-c1:#fff;--on-deep:#fff;--r:12px;
  --fd:"Plus Jakarta Sans",Georgia,serif;--fb:"Inter",Arial,sans-serif;--w:1180px;--gut:clamp(18px,4vw,40px);--sec:clamp(64px,9vw,120px);--rs:min(var(--r),10px)}
html[data-width=wide]{--w:1380px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:400 16.5px/1.65 var(--fb);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
.wrap{width:min(var(--w),100% - 2*var(--gut));margin-inline:auto}
.skip{position:absolute;left:-999px;top:8px;z-index:100;background:var(--c1);color:var(--on-c1);padding:10px 14px;border-radius:8px}.skip:focus{left:12px}
:focus-visible{outline:2px solid var(--c1);outline-offset:3px}

/* type */
.h1{font:700 clamp(38px,5.4vw,72px)/1.04 var(--fd);letter-spacing:-.03em;text-wrap:balance;overflow-wrap:break-word;hyphens:auto}
.h2{font:700 clamp(28px,3.4vw,46px)/1.1 var(--fd);letter-spacing:-.025em;text-wrap:balance;overflow-wrap:break-word;hyphens:auto}
.h3{font:650 19px/1.3 var(--fd);letter-spacing:-.01em}
.h1 em,.h2 em{font-style:normal;color:var(--c1)}
.eyebrow{font:600 12.5px/1 var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--c1);margin-bottom:16px;display:inline-flex;align-items:center;gap:10px}
.lede,.hero-lede{color:var(--soft);font-size:clamp(16.5px,1.4vw,19px);max-width:62ch;margin-top:16px}
html[data-heading=upper] .h1,html[data-heading=upper] .h2{text-transform:uppercase;letter-spacing:-.01em;font-weight:800}
html[data-heading=serif] .h1,html[data-heading=serif] .h2{font-weight:500;letter-spacing:-.02em}
html[data-heading=serif] .h1 em,html[data-heading=serif] .h2 em{font-style:italic}
html[data-heading=light] .h1,html[data-heading=light] .h2{font-weight:400;letter-spacing:-.035em}
html[data-heading=light] .h1 em,html[data-heading=light] .h2 em{font-weight:700}

/* section headers */
.sh{max-width:780px;margin-bottom:clamp(36px,5vw,56px)}
.sh.left{margin-bottom:0}
html[data-shead=center] .sh:not(.left){margin-inline:auto;text-align:center}html[data-shead=center] .sh:not(.left) .lede{margin-inline:auto}
html[data-shead=line] .eyebrow::before{content:"";width:28px;height:2px;background:currentColor}
html[data-shead=number] main{counter-reset:sec}html[data-shead=number] .sh .eyebrow::before{counter-increment:sec;content:counter(sec,decimal-leading-zero);font-family:var(--fd);color:var(--soft);letter-spacing:0}
html[data-shead=bar] .sh{border-left:3px solid var(--c1);padding-left:20px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 24px;border-radius:var(--rs);border:1.5px solid transparent;font:600 15.5px/1 var(--fb);text-decoration:none;cursor:pointer;transition:transform .2s,background .2s,color .2s,border-color .2s,box-shadow .2s;white-space:nowrap}
.btn.pri{background:var(--c1);color:var(--on-c1)}.btn.pri:hover{transform:translateY(-1px);box-shadow:0 10px 24px -12px var(--c1)}
.btn.sec{border-color:var(--line);color:var(--text);background:transparent}.btn.sec:hover{border-color:var(--text)}
.btn.inv{background:var(--surface);color:var(--text)}.btn.inv:hover{transform:translateY(-1px)}
html[data-buttons=pill] .btn{border-radius:999px}
html[data-buttons=sharp] .btn{border-radius:0}
html[data-buttons=outline] .btn.pri{background:transparent;color:var(--c1);border-color:var(--c1)}html[data-buttons=outline] .btn.pri:hover{background:var(--c1);color:var(--on-c1)}
html[data-buttons=underline] .btn{border-radius:0;padding:0 2px;min-height:40px;background:none!important;color:var(--text)!important;border:0;border-bottom:2px solid var(--c1)!important}
html[data-buttons=underline] .cta-box .btn{color:var(--on-deep)!important}
.link{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--c1);text-decoration:none}.link svg{transition:transform .2s}.link:hover svg{transform:translateX(3px)}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}

/* cards */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:clamp(22px,2.4vw,32px)}
html[data-cards=flat] .card{border-color:transparent}
html[data-cards=elevated] .card{border-color:transparent;box-shadow:0 1px 2px rgba(16,24,40,.05),0 12px 32px -14px rgba(16,24,40,.22)}
html[data-cards=glass] .card{background:color-mix(in srgb,var(--surface) 72%,transparent);backdrop-filter:blur(14px);border-color:color-mix(in srgb,var(--line) 70%,transparent)}
html[data-cards=lined] .card{background:transparent;border:0;border-top:2px solid var(--text);border-radius:0;padding-inline:0}
html[data-cards=accent] .card{border-top:3px solid var(--c1)}

/* nav */
.nav{position:sticky;top:0;z-index:50;transition:background .25s,box-shadow .25s,transform .3s}
.nav-in{display:flex;align-items:center;gap:24px;min-height:74px}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;font:700 18px/1 var(--fd);letter-spacing:-.01em}
.logo{width:36px;height:36px;border-radius:var(--logo-r);object-fit:cover}
.logo.mark{display:grid;place-items:center;background:var(--c1);color:var(--on-c1);font:800 13px/1 var(--fd);letter-spacing:.02em}
.links{display:flex;gap:30px;margin-left:auto}
.links a{text-decoration:none;font-weight:500;font-size:15px;color:var(--soft);transition:color .2s;position:relative}.links a:hover,.links a[aria-current]{color:var(--text)}
.links a[aria-current]::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:2px;background:var(--c1)}
.nav-cta{min-height:42px;padding:0 18px;font-size:14.5px}
.burger{display:none;margin-left:auto;width:44px;height:44px;border:1px solid var(--line);border-radius:10px;background:transparent;flex-direction:column;justify-content:center;align-items:center;gap:5px;cursor:pointer}
.burger span{width:18px;height:2px;background:var(--text);transition:transform .25s}.burger[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.burger[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
.mnav{display:none}
.nav.scrolled{background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line)}
html[data-nav=float] .nav{padding-top:14px}html[data-nav=float] .nav-in{background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:calc(var(--r) + 6px);padding:0 10px 0 18px;min-height:64px}
html[data-nav=float] .nav.scrolled{background:none;box-shadow:none}
html[data-nav=dark] .nav{background:var(--deep);color:var(--on-deep)}html[data-nav=dark] .links a{color:color-mix(in srgb,var(--on-deep) 70%,transparent)}html[data-nav=dark] .links a:hover,html[data-nav=dark] .links a[aria-current]{color:var(--on-deep)}html[data-nav=dark] .nav.scrolled{background:var(--deep)}html[data-nav=dark] .burger span{background:var(--on-deep)}
html[data-nav=line] .nav{border-bottom:1px solid var(--line)}
html[data-nav=center] .nav-in{display:grid;grid-template-columns:1fr auto 1fr}html[data-nav=center] .links{margin:0}html[data-nav=center] .nav-cta{justify-self:end}
html.menu-away .nav{transform:translateY(-110%)}

/* sections */
section{padding-block:var(--sec);position:relative}
html[data-bands=soft] .band{background:color-mix(in srgb,var(--surface) 55%,var(--bg))}
html[data-bands=soft][data-dark=false] .band{background:color-mix(in srgb,var(--c1) 3.5%,var(--surface))}
html[data-bands=deep] .band{background:var(--deep);color:var(--on-deep);--soft:color-mix(in srgb,var(--on-deep) 70%,transparent);--line:color-mix(in srgb,var(--on-deep) 18%,transparent);--surface:color-mix(in srgb,var(--on-deep) 6%,var(--deep));--text:var(--on-deep)}
html[data-bands=deep] .band .eyebrow{color:var(--c3)}
html[data-bands=lines] .band{border-block:1px solid var(--line)}
html[data-pattern=grid] body{background-image:linear-gradient(color-mix(in srgb,var(--line) 55%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--line) 55%,transparent) 1px,transparent 1px);background-size:64px 64px}
html[data-pattern=dots] body{background-image:radial-gradient(color-mix(in srgb,var(--line) 90%,transparent) 1.2px,transparent 1.4px);background-size:22px 22px}
html[data-pattern=lines] body{background-image:linear-gradient(90deg,color-mix(in srgb,var(--line) 50%,transparent) 1px,transparent 1px);background-size:calc((min(var(--w),100vw) )/6) 100%;background-position:center}
html[data-pattern=mesh] .hero{background:radial-gradient(60% 70% at 85% 10%,color-mix(in srgb,var(--c1) 16%,transparent),transparent 70%),radial-gradient(50% 60% at 0% 100%,color-mix(in srgb,var(--c2) 14%,transparent),transparent 70%)}

/* hero */
.hero{padding-block:clamp(48px,7vw,96px) clamp(64px,8vw,112px)}
.hero-in{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(32px,5vw,72px);align-items:center}
.hero-lede{margin-top:22px}
.badges{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:34px;color:var(--soft);font-size:14px}
.badges li{display:inline-flex;align-items:center;gap:8px}.bi{width:17px;height:17px;color:var(--c1)}
.hero-media{position:relative;border-radius:calc(var(--r) + 4px);overflow:hidden;aspect-ratio:5/4.6}
.hero-media img{width:100%;height:100%;object-fit:cover}
.hero-media.none{overflow:visible}
/* image-less hero panel: cards made from the business's own numbers */
.hp{position:absolute;inset:0}
.hp-card{position:absolute;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 24px 48px -28px rgba(16,24,40,.35);padding:22px}
.hp-a{left:4%;top:8%;width:62%}.hp-a b{display:block;font:700 46px/1 var(--fd);letter-spacing:-.03em;margin:8px 0 18px}
.hp-k{font-size:12.5px;color:var(--soft);font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.hp-bars{display:flex;align-items:flex-end;gap:7px;height:90px}.hp-bars span{flex:1;height:var(--h);border-radius:4px 4px 2px 2px;background:linear-gradient(var(--c1),color-mix(in srgb,var(--c1) 55%,var(--c2)))}
.hp-bars span:nth-child(-n+4){opacity:.35}
.hp-b{right:0;top:44%;width:60%;display:grid;gap:12px;padding:18px 20px}
.hp-row{display:flex;align-items:center;gap:12px;font-weight:600;font-size:14.5px}.hp-ic{width:34px;height:34px;padding:7px;border-radius:9px;background:color-mix(in srgb,var(--c1) 12%,transparent);color:var(--c1);flex:none}
.hp-c{left:12%;bottom:2%;width:40%;background:var(--deep);color:var(--on-deep);border-color:transparent}.hp-c .hp-k{color:color-mix(in srgb,var(--on-deep) 65%,transparent)}.hp-c b{display:block;font:700 34px/1 var(--fd);margin-top:8px;color:var(--c3)}
.hp-dot{position:absolute;right:8%;top:4%;width:72px;height:72px;border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--c3),color-mix(in srgb,var(--c3) 30%,var(--c2)));opacity:.9}
html[data-hero-art=frame] .hero-media:not(.none){outline:1px solid var(--line);outline-offset:14px}
html[data-hero-art=offset] .hero-media:not(.none){box-shadow:18px 18px 0 color-mix(in srgb,var(--c1) 22%,transparent)}
html[data-hero-art=arch] .hero-media:not(.none){border-radius:999px 999px var(--r) var(--r);aspect-ratio:4/5}
/* hero layouts */
html[data-layout=center] .hero-in{grid-template-columns:1fr;text-align:center;justify-items:center}
html[data-layout=center] .hero-lede{margin-inline:auto}html[data-layout=center] .cta-row,html[data-layout=center] .badges{justify-content:center}
html[data-layout=center] .hero-media{width:min(100%,960px);aspect-ratio:16/7;margin-top:18px}
html[data-layout=center] .hero-media.none .hp-a{left:6%;top:6%;width:44%}html[data-layout=center] .hero-media.none .hp-b{right:4%;top:12%;width:40%}html[data-layout=center] .hero-media.none .hp-c{left:40%;bottom:-6%;width:28%}
html[data-layout=editorial] .hero-in{grid-template-columns:1fr}
html[data-layout=editorial] .h1{font-size:clamp(44px,7.6vw,112px);line-height:.98;max-width:16ch}
html[data-layout=editorial] .hero-text{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.62fr);column-gap:56px;align-items:end}
html[data-layout=editorial] .hero-text>.eyebrow,html[data-layout=editorial] .hero-text>.h1{grid-column:1/-1}
html[data-layout=editorial] .hero-media{aspect-ratio:21/8}
html[data-layout=editorial] .hero-media.none .hp-a{width:34%;top:10%}html[data-layout=editorial] .hero-media.none .hp-b{width:34%;top:16%;right:4%}html[data-layout=editorial] .hero-media.none .hp-c{left:40%;width:22%;bottom:auto;top:14%}
html[data-layout=panel] .hero{padding-top:20px}
html[data-layout=panel] .hero-in{background:var(--deep);color:var(--on-deep);border-radius:calc(var(--r) + 10px);padding:clamp(32px,5vw,72px);--soft:color-mix(in srgb,var(--on-deep) 72%,transparent);--line:color-mix(in srgb,var(--on-deep) 20%,transparent)}
html[data-layout=panel] .hero-in .eyebrow{color:var(--c3)}html[data-layout=panel] .hero .btn.sec{color:var(--on-deep)}html[data-layout=panel] .hero .h1 em{color:var(--c3)}
html[data-layout=panel] .hero .hp-card:not(.hp-c){color:var(--text)}html[data-layout=panel] .hero .hp-c{background:var(--c1);color:var(--on-c1)}html[data-layout=panel] .hero .hp-c b{color:var(--on-c1)}
html[data-layout=full] .hero.has-img{min-height:min(88vh,820px);display:grid;align-items:end;color:#fff;padding-bottom:clamp(56px,8vw,104px)}
html[data-layout=full] .hero-bg{position:absolute;inset:0;background-size:cover;background-position:center}
html[data-layout=full] .hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,10,18,.15),rgba(6,10,18,.78))}
html[data-layout=full] .hero.has-img .hero-in{grid-template-columns:minmax(0,760px);position:relative}
html[data-layout=full] .hero.has-img .hero-lede,html[data-layout=full] .hero.has-img .badges{color:rgba(255,255,255,.82)}html[data-layout=full] .hero.has-img .btn.sec{color:#fff;border-color:rgba(255,255,255,.5)}html[data-layout=full] .hero.has-img .eyebrow{color:#fff}

/* clients */
.clients{padding-block:clamp(36px,5vw,56px)}
.clients-t{text-align:center;font-size:13.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--soft);margin-bottom:24px;font-weight:600}
.logos{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:18px 52px}
.logos li{opacity:.72;filter:grayscale(1);transition:opacity .2s,filter .2s}.logos li:hover{opacity:1;filter:none}
.logos img{height:34px;width:auto;max-width:150px;object-fit:contain}
.logos span{font:700 19px/1 var(--fd);letter-spacing:-.02em;color:var(--soft)}

/* services */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.svc{display:flex;flex-direction:column;gap:12px;transition:transform .25s,box-shadow .25s,border-color .25s}
.svc:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--c1) 40%,var(--line))}
.svc p{color:var(--soft)}
.svc-ic{width:48px;height:48px;border-radius:calc(var(--rs) + 2px);display:grid;place-items:center;background:color-mix(in srgb,var(--c1) 11%,transparent);color:var(--c1);margin-bottom:6px}
.svc-ic .ic{width:24px;height:24px}
.ticks{display:grid;gap:8px;margin-top:6px;font-size:15px}
.ticks li{display:flex;gap:10px;align-items:baseline}.ticks li::before{content:"";flex:none;width:14px;height:8px;border-left:2px solid var(--c1);border-bottom:2px solid var(--c1);transform:translateY(-3px) rotate(-45deg)}
.more{margin-top:32px}

/* stats */
.stats{padding-block:clamp(48px,6vw,80px)}
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0;border-block:1px solid var(--line)}
.stat{padding:30px 26px;display:flex;flex-direction:column-reverse;gap:6px}.stat+.stat{border-left:1px solid var(--line)}
.stat dd{font:700 clamp(36px,4vw,54px)/1 var(--fd);letter-spacing:-.03em;color:var(--text)}
.stat dt{color:var(--soft);font-size:15px}

/* work */
.cases{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:24px}
.case{padding:0;overflow:hidden;display:flex;flex-direction:column;text-decoration:none;transition:transform .25s,box-shadow .25s}
a.case:hover{transform:translateY(-3px)}
html[data-cards=lined] .case{padding:0}
.case-media{aspect-ratio:16/10;overflow:hidden;background:color-mix(in srgb,var(--c1) 8%,var(--surface))}
.case-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s}a.case:hover .case-media img{transform:scale(1.04)}
.case-ph{display:grid;place-items:center;width:100%;height:100%;background:linear-gradient(135deg,color-mix(in srgb,var(--c1) 85%,var(--deep)),color-mix(in srgb,var(--c2) 75%,var(--deep)))}
.case-ph b{font:800 56px/1 var(--fd);color:color-mix(in srgb,#fff 85%,transparent);letter-spacing:-.04em}
.case-body{padding:clamp(20px,2.2vw,28px);display:flex;flex-direction:column;gap:10px;flex:1}
html[data-cards=lined] .case-body{padding-inline:0}
.case-meta{font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--c1);font-weight:600}
.case p{color:var(--soft)}
.case-result{display:flex;gap:10px;align-items:center;color:var(--text)!important;font-weight:600;padding-top:12px;margin-top:auto;border-top:1px solid var(--line)}.ri{width:18px;height:18px;color:var(--c2)}

/* about */
.about-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,6vw,80px);align-items:start}
.prose{display:grid;gap:16px;margin-top:22px;color:var(--soft);font-size:17px;max-width:62ch}
.about-img{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;margin-bottom:20px}.about-img img{width:100%;height:100%;object-fit:cover}
.mv{display:grid;gap:14px}.mv-k{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c1)}.mv-i p{font:600 18px/1.45 var(--fd);margin-top:8px}
.values{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px;margin-top:clamp(48px,6vw,72px);padding-top:clamp(32px,4vw,48px);border-top:1px solid var(--line)}
.vn{font:600 13px/1 var(--fd);color:var(--c1)}.value .h3{margin:12px 0 8px}.value p{color:var(--soft);font-size:15.5px}

/* process */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;counter-reset:st}
.step{position:relative;padding-top:28px;border-top:2px solid var(--line)}
.step::before{content:"";position:absolute;left:0;top:-2px;width:48px;height:2px;background:var(--c1)}
.sn{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--c1);color:var(--on-c1);font:700 15px/1 var(--fd);margin-bottom:16px}
.step p{color:var(--soft);margin-top:8px;font-size:15.5px}

/* team */
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:28px}
.person{position:relative}
.pp{aspect-ratio:1/1.08;border-radius:var(--r);overflow:hidden;background:linear-gradient(160deg,color-mix(in srgb,var(--c1) 22%,var(--surface)),color-mix(in srgb,var(--c2) 26%,var(--surface)));display:grid;place-items:center;margin-bottom:16px}
.pp img{width:100%;height:100%;object-fit:cover;filter:grayscale(.15)}.pp span{font:700 48px/1 var(--fd);color:var(--c1);letter-spacing:-.03em}
.role{color:var(--soft);font-size:15px;margin-top:4px}
.pl{position:absolute;right:12px;top:12px;width:32px;height:32px;border-radius:8px;background:var(--surface);display:grid;place-items:center;font:700 14px/1 var(--fb);color:var(--c1);text-decoration:none;box-shadow:0 4px 12px -4px rgba(0,0,0,.25)}

/* testimonials */
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px}
.quote{display:flex;flex-direction:column;gap:22px}
.qm{font:700 64px/.6 Georgia,serif;color:var(--c1);height:30px}
.quote blockquote{font:500 clamp(18px,1.6vw,21px)/1.5 var(--fd);letter-spacing:-.01em}
.quote figcaption{display:flex;gap:14px;align-items:center;margin-top:auto}
.qa{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--c1) 14%,transparent);color:var(--c1);font:700 14px/1 var(--fd);flex:none}
.quote b{display:block;font-size:15.5px}.quote small{color:var(--soft);font-size:14px}

/* pricing */
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;align-items:stretch}
.plan{display:flex;flex-direction:column;gap:14px;position:relative}
.plan.featured{border:2px solid var(--c1)}
html[data-cards=lined] .plan.featured{border:0;border-top:3px solid var(--c1)}
.plan-flag{position:absolute;top:-13px;left:24px;background:var(--c1);color:var(--on-c1);font:700 11.5px/1 var(--fb);letter-spacing:.08em;text-transform:uppercase;padding:7px 10px;border-radius:999px}
.plan-blurb{color:var(--soft);font-size:15px}
.price{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding-block:6px 4px}.price b{font:700 36px/1 var(--fd);letter-spacing:-.03em}.price span{color:var(--soft);font-size:14px}
.plan .ticks{flex:1}.plan .btn{margin-top:8px}
.plan-note{text-align:center;color:var(--soft);font-size:14.5px;margin-top:28px}

/* faq */
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,80px);align-items:start}
.qa-list{border-top:1px solid var(--line)}
.qa-i{border-bottom:1px solid var(--line)}
.qa-i summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px 0;font:600 17.5px/1.4 var(--fd)}
.qa-i summary::-webkit-details-marker{display:none}
.pm{width:14px;height:14px;position:relative;flex:none}.pm::before,.pm::after{content:"";position:absolute;inset:6px 0 auto;height:2px;background:var(--c1);transition:transform .25s}.pm::after{transform:rotate(90deg)}
.qa-i[open] .pm::after{transform:rotate(0)}
.qa-a{color:var(--soft);padding-bottom:22px;display:grid;gap:10px;max-width:64ch}

/* cta */
.cta{padding-block:clamp(48px,6vw,80px)}
.cta-box{display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;background:var(--deep);color:var(--on-deep);border-radius:calc(var(--r) + 8px);padding:clamp(32px,5vw,64px);position:relative;overflow:hidden}
.cta-box::after{content:"";position:absolute;right:-80px;top:-80px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--c1) 55%,transparent),transparent 70%);pointer-events:none}
.cta-box>div{max-width:620px;position:relative;z-index:1}.cta-box p{margin-top:12px;color:color-mix(in srgb,var(--on-deep) 75%,transparent);font-size:17px}.cta-box .btn{position:relative;z-index:1}
.cta-box .h2 em{color:var(--c3)}

/* contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(28px,5vw,64px);align-items:start}
.cl{display:grid;gap:22px}
.cl li{display:flex;gap:14px}.ci{width:40px;height:40px;padding:9px;border-radius:10px;background:color-mix(in srgb,var(--c1) 11%,transparent);color:var(--c1);flex:none}
.cl small{display:block;color:var(--soft);font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-bottom:2px}
.cl a{text-decoration:none;font-weight:600}.cl a:hover{color:var(--c1)}
.form{display:grid;gap:18px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.fld{display:grid;gap:7px;font-size:14px;font-weight:600}.fld i{color:var(--c1);font-style:normal}
.fld input,.fld select,.fld textarea{font:inherit;font-weight:400;font-size:15.5px;color:var(--text);background:var(--bg);border:1.5px solid var(--line);border-radius:var(--rs);padding:12px 14px;width:100%;transition:border-color .2s,box-shadow .2s}
.fld textarea{resize:vertical;min-height:120px}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--c1);box-shadow:0 0 0 4px color-mix(in srgb,var(--c1) 16%,transparent)}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--soft)}.consent input{margin-top:4px;accent-color:var(--c1)}
.hp-f{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.form-msg{font-size:14.5px;min-height:1px}.form-msg.ok{color:#15803D}.form-msg.bad{color:#B91C1C}
html[data-dark=true] .form-msg.ok{color:#4ADE80}html[data-dark=true] .form-msg.bad{color:#FCA5A5}
.form .btn{justify-self:start}

/* page header (several pages) */
.phead{padding-block:clamp(48px,7vw,96px) 0}.crumbs{font-size:14px;color:var(--soft);margin-bottom:18px}.crumbs a{text-decoration:none;color:var(--c1)}
.phead+section .sh{display:none}

/* footer */
.foot{background:var(--deep);color:var(--on-deep);padding-block:clamp(48px,6vw,72px) 28px;--soft:color-mix(in srgb,var(--on-deep) 66%,transparent)}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:40px}
.foot p{color:var(--soft);margin-top:14px;max-width:38ch;font-size:15px}
.foot nav,.fc{display:grid;gap:10px;align-content:start;font-size:15px}.foot nav a,.fc a{text-decoration:none;color:var(--soft)}.foot nav a:hover,.fc a:hover{color:var(--on-deep)}.fc span{color:var(--soft)}
.foot-legal{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:48px;padding-top:22px;border-top:1px solid color-mix(in srgb,var(--on-deep) 16%,transparent);color:var(--soft);font-size:13.5px}
.foot-legal span{display:flex;gap:20px}.foot-legal a{color:inherit;text-decoration:none}

/* motion */
html[data-motion-style=rise] .rv{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0) * 70ms)}
html[data-motion-style=fade] .rv{opacity:0;transition:opacity .8s ease;transition-delay:calc(var(--i,0) * 60ms)}
.rv.in{opacity:1!important;transform:none!important}
@media (prefers-reduced-motion:reduce){.rv{opacity:1!important;transform:none!important;transition:none!important}html{scroll-behavior:auto}}

.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,120%);background:var(--deep);color:var(--on-deep);padding:12px 18px;border-radius:10px;z-index:90;transition:transform .3s;font-size:14.5px}.toast.on{transform:translate(-50%,0)}

/* responsive */
@media (max-width:980px){
  .links,.nav-cta{display:none}.burger{display:flex}
  html[data-nav=center] .nav-in{display:flex}
  .mnav{display:grid;gap:4px;padding:0 var(--gut);max-height:0;overflow:hidden;transition:max-height .35s ease,padding .35s;background:var(--bg)}
  .mnav.open{max-height:520px;padding-block:8px 20px;border-bottom:1px solid var(--line)}
  .mnav a{padding:12px 0;text-decoration:none;font-weight:600;font-size:17px;border-bottom:1px solid var(--line)}.mnav .btn{margin-top:12px;border-bottom:0}
  html[data-nav=dark] .mnav{background:var(--deep)}html[data-nav=dark] .mnav a{color:var(--on-deep)}
  .hero-in,.about-grid,.faq-grid,.contact-grid,html[data-layout=full] .hero.has-img .hero-in{grid-template-columns:minmax(0,1fr)}
  .hero-text,.hero-media{min-width:0}
  html[data-layout=editorial] .hero-text{grid-template-columns:1fr}
  .hero-media{aspect-ratio:4/3.4;width:100%}.hero-media.none{aspect-ratio:auto;height:340px}
  html[data-layout=center] .hero-media:not(.none),html[data-layout=editorial] .hero-media:not(.none){aspect-ratio:4/3.2}
  html[data-layout=center] .hero-media.none .hp-a,html[data-layout=editorial] .hero-media.none .hp-a{width:62%;left:2%;top:6%}html[data-layout=center] .hero-media.none .hp-b,html[data-layout=editorial] .hero-media.none .hp-b{width:62%;right:0;top:44%}html[data-layout=center] .hero-media.none .hp-c,html[data-layout=editorial] .hero-media.none .hp-c{left:8%;width:42%;bottom:0;top:auto}
  .foot-grid{grid-template-columns:1fr 1fr}.foot-grid>div:first-child{grid-column:1/-1}
  .stat+.stat{border-left:0}.stat-row{grid-template-columns:1fr 1fr}.stat:nth-child(even){border-left:1px solid var(--line)}
}
@media (max-width:600px){
  body{font-size:16px}
  .h1,html[data-layout=editorial] .h1{font-size:clamp(30px,9.4vw,44px)}html[data-heading=upper] .h1{font-size:clamp(28px,8.4vw,40px)}
  .h2{font-size:clamp(26px,7.4vw,34px)}
  html[data-layout=panel] .hero-in{padding:28px 20px}
  .row2{grid-template-columns:1fr}
  .svc-grid,.cases,.quotes,.plans{grid-template-columns:1fr}
  .hp-a b{font-size:36px}.hp-bars{height:64px}.hp-row{font-size:13px}.hp-ic{width:28px;height:28px;padding:5px}
  .cta-box{flex-direction:column;align-items:flex-start}
  .foot-grid{grid-template-columns:1fr}
}
/* Products (catalogue) */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:clamp(16px,2vw,24px)}
.card.prod{padding:0;overflow:hidden;display:flex;flex-direction:column}
html[data-cards=lined] .card.prod{padding:0}
.prod-media{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:color-mix(in srgb,var(--c1) 8%,var(--surface))}
.prod-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.prod:hover .prod-media img{transform:scale(1.04)}
.prod-badge{position:absolute;top:12px;left:12px;padding:5px 10px;border-radius:999px;background:var(--c3);color:color-mix(in srgb,#000 82%,var(--c3));font:700 12px/1 var(--fb);letter-spacing:.02em}
.prod-badge.static{position:static;display:inline-block;margin-top:12px}
.prod-body{display:flex;flex-direction:column;gap:8px;padding:clamp(18px,2vw,24px);flex:1}
.prod-body .h3 a{color:inherit;text-decoration:none}.prod-body .h3 a:hover{color:var(--c1)}
.prod-body>p:not(.case-meta):not(.prod-price){color:var(--soft);font-size:15px}
.prod-price{font:700 17px/1.2 var(--fd);color:var(--text)}.prod-price.big{font-size:clamp(20px,2vw,26px);margin-top:14px}
.prod-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:10px}.prod-acts .btn{min-height:42px;padding:0 18px;font-size:14.5px;flex:1}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.chip{all:unset;cursor:pointer;padding:8px 16px;border-radius:999px;border:1px solid var(--line);font:600 14px/1 var(--fb);color:var(--soft)}
.chip[aria-pressed=true]{background:var(--c1);border-color:var(--c1);color:var(--on-c1)}.chip:focus-visible{outline:2px solid var(--c1);outline-offset:2px}
.pd-wrap{padding-block:clamp(28px,4vw,48px) var(--sec)}
.pd{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,4vw,64px);align-items:start;margin-top:18px}
.pd-main{aspect-ratio:1/1;border-radius:var(--r);overflow:hidden;background:color-mix(in srgb,var(--c1) 8%,var(--surface))}
.pd-main img{width:100%;height:100%;object-fit:cover}
.pd-thumbs{display:flex;gap:10px;margin-top:12px;overflow-x:auto}
.pd-th{all:unset;cursor:pointer;flex:none;width:76px;height:76px;border-radius:var(--rs);overflow:hidden;border:2px solid transparent;opacity:.7}
.pd-th[aria-pressed=true]{border-color:var(--c1);opacity:1}.pd-th:focus-visible{outline:2px solid var(--c1)}
.pd-th img{width:100%;height:100%;object-fit:cover}
.pd-info .h1{font-size:clamp(30px,3.6vw,48px)}.pd-info .cta-row{margin-top:22px}.pd-info .ticks{margin-top:24px}
.pd-more{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,4vw,64px);margin-top:clamp(36px,5vw,64px)}
.pd-more .prose{margin-top:0}
.pd-specs{display:grid;border-top:1px solid var(--line);align-self:start}
.pd-specs div{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}
.pd-specs dt{color:var(--soft)}.pd-specs dd{margin:0;font-weight:600}
.enq-about{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-radius:var(--rs);background:color-mix(in srgb,var(--c1) 9%,var(--surface));font-size:14.5px}
.enq-about button{all:unset;cursor:pointer;font-size:20px;line-height:1;padding:0 4px;color:var(--soft)}
@media (max-width:860px){.pd,.pd-more{grid-template-columns:1fr}}
/* Hero background slides: one column, words over the photos */
.hero.hs-solo .hero-in{grid-template-columns:1fr}
.hero.hs-host .btn.sec{background:color-mix(in srgb,#fff 12%,transparent);border-color:color-mix(in srgb,currentColor 45%,transparent);color:inherit}
.hero.hs-host .badges li{color:inherit}
.prod[hidden]{display:none!important}
.prod-media{text-decoration:none}
.hero.hs-light .badges li,.hero.hs-light .badges .bi{color:rgba(255,255,255,.88)!important}

/* Star ratings (Google reviews) */
.stars{color:#F5A623;letter-spacing:2px;font-size:17px;line-height:1}.stars .off{color:color-mix(in srgb,currentColor 25%,var(--line))}
.quote .stars{display:block;margin-bottom:10px}
.g-sum{margin:-8px 0 26px}.g-sum a{display:inline-flex;align-items:center;gap:8px;color:var(--soft);text-decoration:none;font-size:15px}.g-sum a:hover{color:var(--text)}.g-sum b{color:var(--text)}
