/* ===== About Digital: base styles (from homepage) ===== */
:root{
  --bg:#FFFFFF; --surface:#FFFFFF; --alt:#F7F6F5; --ink:#181818; --muted:#63605D; --line:#E5E2DF;
  --accent:#ED3223; --accent-ink:#FFFFFF; --mark:#FFC9C2; --soft:#FDEAE7;
  --deep:#F7F6F5; --deep-ink:#181818; --deep-muted:#63605D; --deep-line:#E5E2DF;
  --display:"Urbanist","Google Sans",system-ui,sans-serif;
  --body:"Google Sans","Google Sans Text","Product Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"DM Mono",ui-monospace,Menlo,Consolas,monospace;
  --r:14px;
}
.logo-on-dark{display:none}
:root{color-scheme:light}
.value,.stats,.member,.crow{box-shadow:0 1px 0 rgba(24,24,24,.02),0 10px 30px -22px rgba(24,24,24,.25)}
input,select,textarea{background:var(--alt)}
.tabs{background:var(--alt)!important}
.svc{background:var(--surface)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.6;margin:0}
.wrap{max-width:1180px;margin:0 auto;padding-inline:clamp(16px,4vw,40px)}
a{color:inherit}
h1,h2,h3{font-family:var(--display);line-height:1.04;margin:0;text-wrap:balance;letter-spacing:-.025em}
p{margin:0}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;font-weight:600;text-decoration:none;border:1.5px solid var(--ink);font-family:var(--body);font-size:15px;cursor:pointer;background:transparent;color:var(--ink);transition:transform .2s,background .2s,color .2s}
.btn:hover{transform:translateY(-2px)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
mark{background:linear-gradient(transparent 58%,var(--mark) 58%);color:inherit;padding:0 .08em}

/* header (transparent over hero, turns solid on scroll) */
html{scroll-padding-top:84px}
header.top{position:fixed;left:0;right:0;top:0;z-index:40;padding-top:env(safe-area-inset-top,0px);background:transparent;border-bottom:1px solid transparent;transition:background .3s ease,border-color .3s ease,box-shadow .3s ease}
header.top.solid,header.top.open{background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom-color:var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:80px;gap:16px;transition:height .3s ease}
header.top.solid .nav{height:66px}
.logo{display:flex;align-items:center;text-decoration:none}
.logo svg{height:38px;width:auto;max-width:100%;display:block}
.foot-logo{height:28px;width:auto}
@media (max-width:480px){.logo svg{height:30px}}
.links{display:flex;gap:30px;font-size:15px;font-weight:500}
.links a{position:relative;text-decoration:none;color:var(--ink);opacity:.75;padding-block:6px;transition:opacity .2s}
.links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.links a:hover{opacity:1}.links a:hover::after{transform:scaleX(1)}
.hdr-cta{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border-radius:12px;background:var(--ink);color:#fff;text-decoration:none;font-weight:600;font-size:14.5px;transition:background .2s ease}
.hdr-cta:hover{background:var(--accent)}
.hdr-cta svg{width:16px;height:16px}
.menu-btn{display:none;background:rgba(255,255,255,.75);border:1px solid var(--line);border-radius:10px;width:42px;height:42px;color:var(--ink);cursor:pointer;font-size:18px}
.mobile-menu{display:none}
@media (max-width:900px){
  .links,.hdr-cta{display:none}
  .menu-btn{display:block}
  .mobile-menu:not([hidden]){display:flex;flex-direction:column;gap:4px;padding-block:4px 18px}
  .mobile-menu a{padding:12px 4px;text-decoration:none;font-weight:500;border-bottom:1px solid var(--line)}
}

/* hero slider */
.hs{position:relative;overflow:hidden;padding-top:calc(80px + env(safe-area-inset-top,0px));border-bottom:1px solid var(--line);
  background:radial-gradient(900px 520px at 88% 8%,rgba(237,50,35,.11),transparent 62%),radial-gradient(700px 420px at 0% 100%,rgba(237,50,35,.05),transparent 60%),#FBFAF9}
.hs::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(rgba(24,24,24,.10) 1px,transparent 1.3px);background-size:26px 26px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 85%);mask-image:linear-gradient(180deg,#000,transparent 85%)}
.hs-inner{position:relative;padding-block:clamp(16px,2.4vw,32px) 22px}
.hs-viewport{display:grid;touch-action:pan-y}
.slide{grid-area:1/1;display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(32px,5vw,72px);align-items:center;opacity:0;visibility:hidden;transform:translateX(28px);transition:opacity .6s ease,transform .6s ease,visibility 0s linear .6s}
.slide.is-active{opacity:1;visibility:visible;transform:none;transition:opacity .6s ease,transform .6s ease}
.slide .eyebrow{color:var(--ink);font-weight:500;letter-spacing:.18em;display:flex;align-items:center;gap:10px}
.slide .eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent)}
.hs-title{font-size:clamp(30px,3.6vw,50px);font-weight:700;line-height:1.08;margin-top:14px;max-width:17ch}
.hs-title em{font-style:normal;color:var(--accent)}
.slide .lede{margin-top:16px;font-size:clamp(15.5px,1.25vw,17.5px);line-height:1.65;color:var(--muted);max-width:48ch}
.hs-btn{margin-top:24px;display:inline-flex;align-items:center;gap:12px;padding:15px 24px;border-radius:12px;background:var(--accent);color:#fff;text-decoration:none;font-weight:600;font-size:15.5px;box-shadow:0 14px 30px -16px rgba(237,50,35,.8);transition:transform .2s ease,background .2s ease}
.hs-btn:hover{transform:translateY(-2px);background:#D42A1C}
.hs-btn svg{width:17px;height:17px}

/* visual frame; everything inside scales with the frame (cqw units) */
.visual{position:relative;container-type:inline-size;aspect-ratio:4/3;width:100%;max-width:100%;border-radius:24px;border:1px solid var(--line);background:#fff;box-shadow:0 40px 80px -50px rgba(24,24,24,.45);overflow:hidden;isolation:isolate}
.slide .visual{transform:scale(.97);transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.slide.is-active .visual{transform:none}
.fl{animation:bob 5s ease-in-out infinite}
.fl.d2{animation-delay:-2.5s}
@keyframes bob{50%{translate:0 -1.4cqw}}
.fchip{position:absolute;z-index:3;display:flex;align-items:center;gap:1.2cqw;padding:1.4cqw 2.2cqw;border-radius:99px;background:#fff;font-size:2.3cqw;font-weight:600;color:var(--ink);box-shadow:0 1.6cqw 4cqw -1.6cqw rgba(24,24,24,.35);white-space:nowrap}
.fchip i{width:1.5cqw;height:1.5cqw;border-radius:50%}
.bar-l{display:block;height:1.3cqw;border-radius:1cqw;background:#ECE9E6}

.visual.photo{background:#EDEBE9}
.visual.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.06);transition:transform 6s ease-out}
.slide.is-active .visual.photo img{transform:scale(1)}
.fchip-p{position:absolute;z-index:2;left:18px;bottom:18px;display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:99px;background:rgba(255,255,255,.94);font-size:13px;font-weight:600;color:var(--ink);box-shadow:0 10px 24px -12px rgba(0,0,0,.45)}
.fchip-p i{width:8px;height:8px;border-radius:50%;background:var(--accent)}
@media (prefers-reduced-motion:reduce){.visual.photo img{transition:none;transform:none}}
/* v1 social */
.v-social{background:linear-gradient(140deg,#FDEAE7,#fff 62%)}
.post{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:54cqw;border-radius:3.2cqw;background:#fff;overflow:hidden;box-shadow:0 4cqw 8cqw -4cqw rgba(24,24,24,.4)}
.post-h{display:flex;align-items:center;gap:1.8cqw;padding:2.4cqw}
.post-h .av{width:6cqw;height:6cqw;border-radius:50%;background:var(--accent);display:grid;place-items:center;color:#fff}
.post-h .av svg{width:3.4cqw;height:3.4cqw}
.post-h b{display:block;font-size:2.4cqw;line-height:1.2}
.post-h small{font-size:1.9cqw;color:var(--muted)}
.post-img{height:32cqw;background:radial-gradient(circle at 80% 20%,#FF6A5C,transparent 55%),linear-gradient(150deg,#ED3223,#B81E12);display:flex;align-items:flex-end;padding:3cqw;color:#fff;font-family:var(--display);font-weight:800;font-size:5cqw;line-height:1.02;position:relative;overflow:hidden}
.post-img::after{content:"";position:absolute;right:-8cqw;top:-8cqw;width:26cqw;height:26cqw;border-radius:50%;border:1.6cqw solid rgba(255,255,255,.18)}
.post-a{display:flex;gap:2.4cqw;padding:2cqw 2.4cqw;color:var(--ink)}
.post-a svg{width:3.6cqw;height:3.6cqw}
.post-cta{margin:0 2.4cqw 2.4cqw;padding:1.8cqw 2.2cqw;border-radius:1.6cqw;background:var(--soft);color:var(--accent);font-size:2.2cqw;font-weight:700;display:flex;justify-content:space-between}
.fcard{position:absolute;z-index:3;border-radius:2.4cqw;padding:2.4cqw 2.8cqw;background:var(--ink);color:#fff;box-shadow:0 2cqw 5cqw -2cqw rgba(24,24,24,.5)}
.fcard small{display:block;font-size:1.8cqw;color:#A9A5A1;letter-spacing:.08em;text-transform:uppercase}
.fcard b{display:block;font-size:2.5cqw;margin-top:.6cqw}

/* v2 web */
.v-web{background:linear-gradient(160deg,#F2F0EE,#fff 70%)}
.browser{position:absolute;left:6cqw;top:8cqw;width:72cqw;height:60cqw;border-radius:2.4cqw;background:#fff;border:1px solid var(--line);overflow:hidden;box-shadow:0 4cqw 8cqw -4cqw rgba(24,24,24,.35)}
.b-bar{height:6cqw;background:#F6F5F4;display:flex;align-items:center;gap:1cqw;padding-inline:2.2cqw;border-bottom:1px solid var(--line)}
.b-bar i{width:1.4cqw;height:1.4cqw;border-radius:50%;background:#DAD6D2}.b-bar i:first-child{background:var(--accent)}
.b-bar span{margin-left:2cqw;padding:.7cqw 2.6cqw;border-radius:99px;background:#fff;border:1px solid var(--line);font-size:1.8cqw;color:var(--muted)}
.b-page{padding:3.6cqw 4cqw;display:flex;flex-direction:column;gap:1.6cqw}
.b-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:2cqw}
.b-nav em{width:9cqw;height:1.8cqw;border-radius:1cqw;background:var(--ink)}
.b-nav span{display:flex;gap:1.6cqw}.b-nav span i{width:5cqw;height:1cqw;border-radius:1cqw;background:#DAD6D2}
.b-h{height:3.2cqw;border-radius:1cqw;background:var(--ink)}
.b-btn{margin-top:1.4cqw;width:15cqw;height:4.6cqw;border-radius:1.2cqw;background:var(--accent)}
.b-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:2cqw;margin-top:3cqw}
.b-cards i{height:12cqw;border-radius:1.6cqw;background:#F6F5F4;border:1px solid var(--line)}
.b-cards i:nth-child(2){background:var(--soft);border-color:transparent}
.phone{position:absolute;z-index:3;right:6cqw;bottom:5cqw;width:21cqw;height:40cqw;border-radius:3.6cqw;background:var(--ink);padding:1.2cqw;box-shadow:0 4cqw 8cqw -3cqw rgba(24,24,24,.5)}
.phone-s{height:100%;border-radius:2.6cqw;background:#fff;padding:3cqw 2cqw;display:flex;flex-direction:column;gap:1.3cqw}
.phone-s .img{height:12cqw;border-radius:1.6cqw;background:linear-gradient(150deg,#ED3223,#B81E12)}
.phone-s .btn2{margin-top:auto;height:4.4cqw;border-radius:1.2cqw;background:var(--accent)}

/* v3 seo / ads */
.v-seo{background:linear-gradient(200deg,#FDEAE7,#fff 58%)}
.search{position:absolute;left:7cqw;right:7cqw;top:8cqw;height:9cqw;border-radius:99px;background:#fff;display:flex;align-items:center;gap:2cqw;padding-inline:3cqw;font-size:2.5cqw;color:var(--ink);box-shadow:0 2cqw 5cqw -2.4cqw rgba(24,24,24,.4)}
.search svg{width:3.6cqw;height:3.6cqw;color:var(--accent);flex-shrink:0}
.search .caret{width:.3cqw;height:3.6cqw;background:var(--accent);animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.result{position:absolute;left:7cqw;width:56cqw;border-radius:2.4cqw;background:#fff;padding:3cqw;box-shadow:0 2cqw 5cqw -2.4cqw rgba(24,24,24,.35);display:flex;flex-direction:column;gap:1.2cqw}
.result.r1{top:21cqw}.result.r2{top:45cqw;opacity:.5;transform:scale(.96);transform-origin:left top}
.result .tag{font-size:1.9cqw;font-weight:700}
.result .tag span{color:var(--muted);font-weight:500}
.result .t{font-size:3cqw;font-weight:700;color:var(--accent);line-height:1.2}
.chart{position:absolute;z-index:3;right:7cqw;bottom:7cqw;width:32cqw;border-radius:2.4cqw;padding:2.6cqw;background:var(--ink);color:#fff;box-shadow:0 3cqw 6cqw -3cqw rgba(24,24,24,.55)}
.chart small{font-size:1.8cqw;color:#A9A5A1;letter-spacing:.08em;text-transform:uppercase}
.bars{display:flex;align-items:flex-end;gap:1.2cqw;height:16cqw;margin-top:2cqw}
.bars i{flex:1;border-radius:.8cqw .8cqw 0 0;background:#3A3735}
.bars i:last-child{background:var(--accent)}

/* v4 brand */
.v-brand{background:#fff}
.board{position:absolute;inset:5cqw;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:1.25fr 1fr;gap:2.4cqw}
.tile{border-radius:2.4cqw;padding:2.8cqw;display:flex;flex-direction:column;justify-content:space-between;font-size:1.9cqw;font-family:var(--mono);overflow:hidden;position:relative}
.tile.mark{grid-column:span 2;background:var(--ink);color:#fff}
.tile.mark .m{width:13cqw;height:13cqw;border-radius:50%;background:var(--accent);display:grid;place-items:center;box-shadow:0 0 0 2.4cqw rgba(237,50,35,.18),0 0 0 4.8cqw rgba(237,50,35,.08)}
.tile.mark .m svg{width:7cqw;height:7cqw;color:#fff}
.tile.type{background:#F6F5F4;color:var(--ink)}
.tile.type b{font-family:var(--display);font-size:11cqw;font-weight:800;line-height:1;letter-spacing:-.03em}
.tile.sw1{background:#ED3223;color:#fff}.tile.sw2{background:#181818;color:#fff}.tile.sw3{background:#F6F5F4;color:var(--ink);border:1px solid var(--line)}
.tile span{opacity:.85}

/* bottom bar */
.hs-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px 32px;flex-wrap:wrap;margin-top:clamp(22px,3vw,34px);padding-top:18px;border-top:1px solid var(--line)}
.hs-stats{display:flex;flex-wrap:wrap;gap:12px clamp(20px,3vw,44px);margin-top:10px}
.hs-stats div{display:flex;align-items:baseline;gap:8px}
.hs-stats b{font-family:var(--display);font-size:clamp(22px,2vw,28px);font-weight:800;font-variant-numeric:tabular-nums}
.hs-stats span{font-size:13.5px;color:var(--muted)}
.hs-ctrl{display:flex;align-items:center;gap:16px}
.hs-count{font-family:var(--mono);font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.hs-count b{color:var(--ink);font-weight:500}
.hs-progress{width:110px;height:2px;background:var(--line);position:relative;overflow:hidden;border-radius:2px}
.hs-progress i{position:absolute;inset:0;background:var(--accent);transform-origin:left;transform:scaleX(0)}
.hs-progress i.run{animation:hsfill 6s linear forwards}
.hs.paused .hs-progress i.run{animation-play-state:paused}
@keyframes hsfill{to{transform:scaleX(1)}}
.hs-arrows{display:flex;gap:6px}
.hs-arrow{width:52px;height:52px;display:grid;place-items:center;border-radius:12px;border:1px solid transparent;background:transparent;color:var(--ink);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.hs-arrow svg{width:24px;height:24px}
.hs-arrow.next{border-color:var(--accent);color:var(--accent)}
.hs-arrow:hover{background:var(--accent);border-color:var(--accent);color:#fff}

@media (max-width:900px){
  .slide{grid-template-columns:1fr;gap:28px;align-content:start}
  .hs-title{max-width:18ch}
  .visual{aspect-ratio:4/3.4;max-width:560px}
  .hs-bottom{align-items:center}
}
@media (max-width:520px){
  .hs-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
  .hs-stats div{flex-direction:column;gap:2px}
  .hs-ctrl{width:100%;justify-content:space-between}
  .hs-progress{flex:1}
  .hs-arrow{width:46px;height:46px}
}
@media (prefers-reduced-motion:reduce){.fl{animation:none}}


/* partnerships */
.aff-sec{padding-block:clamp(32px,4vw,48px) clamp(40px,5vw,64px);border-top:1px solid var(--line)}
#about{padding-bottom:clamp(32px,4vw,48px)}
#news{padding-bottom:clamp(32px,4vw,48px)}
#contact{padding-top:clamp(16px,2vw,24px)}
.aff-head{text-align:center;max-width:860px;margin:0 auto clamp(32px,4vw,48px)}
.aff-head h2{font-size:clamp(28px,4vw,46px);font-weight:800;margin-top:12px}
.aff-head h2 em{font-style:normal;color:var(--accent)}
.aff-head p{margin-top:12px;color:var(--muted)}
.aff-marquee{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.aff-list{list-style:none;margin:0;padding:6px 0;display:flex;gap:18px;width:max-content;animation:aff-scroll var(--aff-dur,40s) linear infinite}
.aff-marquee:hover .aff-list{animation-play-state:paused}
@keyframes aff-scroll{to{transform:translateX(calc(-50% - 9px))}}
.aff{flex:0 0 auto;width:200px;height:120px;display:grid;place-items:center;padding:18px 22px;border-radius:18px;background:#FAF9F8;border:1px solid transparent;transition:background .3s,border-color .3s,box-shadow .3s}
.aff img{max-height:76px;max-width:100%;width:auto;height:auto;object-fit:contain;mix-blend-mode:multiply;filter:grayscale(1);opacity:.7;transition:filter .3s,opacity .3s}
.aff:hover{background:#fff;border-color:var(--line);box-shadow:0 18px 36px -24px rgba(24,24,24,.35)}
.aff:hover img{filter:none;opacity:1}
@media (hover:none){.aff img{filter:none;opacity:1}}
@media (max-width:560px){.aff{width:150px;height:96px;padding:14px 16px}.aff img{max-height:60px}.aff-list{gap:12px}}
@media (prefers-reduced-motion:reduce){.aff-list{animation:none;flex-wrap:wrap;justify-content:center;width:auto}.aff-marquee{-webkit-mask-image:none;mask-image:none}}


/* marquee */
.ticker{background:var(--accent);color:#fff;overflow:hidden}
.ticker-track{display:flex;gap:40px;padding-block:14px;width:max-content;animation:slide 32s linear infinite;font-family:var(--display);font-weight:700;font-size:clamp(16px,1.8vw,22px)}
.ticker-track span{display:flex;align-items:center;gap:40px;white-space:nowrap}
.ticker-track span::after{content:"";width:8px;height:8px;border-radius:50%;background:#181818}
@keyframes slide{to{transform:translateX(-50%)}}

section.block{padding-block:clamp(40px,5vw,64px)}
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:24px 48px;align-items:end;margin-bottom:48px}
.sec-head h2{font-size:clamp(28px,4vw,46px);font-weight:800;margin-top:12px}
.sec-head p{color:var(--muted);max-width:48ch}
@media (max-width:760px){.sec-head{grid-template-columns:1fr}}

/* about */
.about{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.about .big{font-size:clamp(20px,2.3vw,28px);line-height:1.4;font-weight:500}
.about-h{font-size:clamp(30px,4.2vw,52px);font-weight:800;margin-top:12px;max-width:14ch}
.about-h em{font-style:normal;color:var(--accent)}
.about .about-h + p{margin-top:20px;color:var(--muted);max-width:60ch;font-size:clamp(15.5px,1.3vw,17.5px)}
.stats{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.stat{padding:26px 24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat:nth-child(2n){border-right:0}.stat:nth-last-child(-n+2){border-bottom:0}
.stat b{display:block;font-family:var(--display);font-size:clamp(38px,4.4vw,54px);font-weight:900;font-variant-numeric:tabular-nums;color:var(--accent)}
.stat span{font-size:14px;color:var(--muted)}
@media (max-width:860px){.about{grid-template-columns:1fr}}

.about-img{margin:0}
.about-img img{display:block;width:100%;height:auto;max-width:100%;mix-blend-mode:multiply}

/* services */
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.svc{background:var(--surface);padding:32px 28px 30px;display:flex;flex-direction:column;gap:14px;position:relative;transition:background .25s,color .25s}
.svc .ico{width:48px;height:48px;border-radius:12px;background:var(--soft);display:grid;place-items:center;color:var(--accent)}
.svc h3{font-size:19px;font-weight:600}
.svc p{color:var(--muted);font-size:15px}
.svc{text-decoration:none;color:inherit;cursor:pointer}
.svc-foot{margin-top:auto;padding-top:10px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.svc .tag{font-family:var(--mono);font-size:12px;color:var(--muted)}
.svc-go{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:var(--accent);transition:gap .25s}
.svc-go svg{width:15px;height:15px}
.svc:hover .svc-go{gap:10px}
.svc:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.svc:hover{background:#FEF4F2;color:var(--ink)}
.svc:hover h3{color:var(--accent)}
.svc:hover .ico{background:var(--accent);color:#fff}
.svc h3,.svc .ico{transition:color .25s,background .25s}
@media (max-width:900px){.services{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.services{grid-template-columns:1fr}}

/* case studies */
.cs-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px 40px;flex-wrap:wrap;margin-bottom:36px}
.cs-head h2{font-size:clamp(30px,4.2vw,52px);font-weight:800;margin-top:12px;max-width:15ch}
.cs-head h2 em{font-style:normal;color:var(--accent)}
.cs-head p{margin-top:12px;color:var(--muted);max-width:48ch}
.cs-ctrl{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cs-all{display:inline-flex;align-items:center;gap:8px;padding:13px 20px;border-radius:12px;border:1.5px solid var(--ink);font-weight:600;font-size:14.5px;color:var(--ink);text-decoration:none;margin-right:8px;transition:background .2s,color .2s}
.cs-all:hover{background:var(--ink);color:#fff}
.cs-all svg{width:16px;height:16px}
.cs-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 2*22px)/3);gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding:4px 2px 12px}
.cs-track::-webkit-scrollbar{display:none}
.case{scroll-snap-align:start;text-decoration:none;color:inherit;display:flex;flex-direction:column}
.case-cover{position:relative;container-type:inline-size;aspect-ratio:4/3;max-width:100%;border-radius:20px;overflow:hidden;isolation:isolate}
.case-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.case-cover::before{content:"";position:absolute;z-index:0;right:-18cqw;bottom:-26cqw;width:70cqw;height:70cqw;border-radius:50%;border:2px solid currentColor;outline:2px solid currentColor;outline-offset:7cqw;opacity:.18;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.cv-red{background:linear-gradient(150deg,#ED3223,#B81E12);color:#fff}
.cv-ink{background:#181818;color:#ED3223}
.cv-soft{background:#FDEAE7;color:#ED3223}
.cv-paper{background:#F4F2F0;color:#181818}
.mini{position:absolute;z-index:1;left:9cqw;right:9cqw;top:13cqw;background:#fff;color:var(--ink);border-radius:3cqw;padding:4cqw;box-shadow:0 4cqw 8cqw -4cqw rgba(0,0,0,.45);display:flex;flex-direction:column;gap:2.4cqw;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.mini-top{display:flex;align-items:center;gap:3cqw}
.mini-ico{width:10cqw;height:10cqw;border-radius:2.6cqw;background:var(--soft);color:var(--accent);display:grid;place-items:center;flex-shrink:0}
.mini-ico svg{width:5.6cqw;height:5.6cqw}
.mini-top b{font-size:4.2cqw;line-height:1.2}
.mini-top small{display:block;font-size:3cqw;color:var(--muted)}
.mini i{display:block;height:2.2cqw;border-radius:2cqw;background:#ECE9E6}
.mini .bars{display:flex;align-items:flex-end;gap:1.6cqw;height:14cqw;margin-top:1cqw}
.mini .bars i{flex:1;height:auto;border-radius:1cqw 1cqw 0 0;background:#ECE9E6}
.mini .bars i:last-child{background:var(--accent)}
.case-num{position:absolute;z-index:2;left:5cqw;bottom:4.4cqw;font-family:var(--mono);font-size:3.4cqw;letter-spacing:.1em;opacity:.85}
.case-go{position:absolute;z-index:2;right:4.4cqw;bottom:4.4cqw;width:11cqw;height:11cqw;border-radius:50%;background:#fff;color:var(--accent);display:grid;place-items:center;transform:scale(.7);opacity:0;transition:transform .35s,opacity .35s}
.case-go svg{width:5cqw;height:5cqw}
.case:hover .case-cover::before{transform:scale(1.12)}
.case:hover .mini{transform:translateY(-2cqw) rotate(-1.5deg)}
.case:hover .case-go,.case:focus-visible .case-go{transform:none;opacity:1}
.case-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.case-tags span{font-size:12px;font-weight:600;padding:5px 11px;border-radius:99px;background:#F6F5F4;color:var(--muted)}
.case-tags span:first-child{background:var(--soft);color:var(--accent)}
.case h3{font-family:var(--body);font-size:18.5px;font-weight:600;letter-spacing:0;line-height:1.35;margin-top:12px;transition:color .25s}
.case p{margin-top:6px;font-size:14.5px;color:var(--muted)}
.case:hover h3{color:var(--accent)}
.cs-bar{margin-top:18px;height:3px;border-radius:3px;background:var(--line);overflow:hidden}
.cs-bar i{display:block;height:100%;width:50%;background:var(--accent);border-radius:3px;transition:transform .35s ease,width .35s ease}
@media (max-width:1000px){.cs-track{grid-auto-columns:calc((100% - 22px)/2)}}
@media (max-width:620px){.cs-track{grid-auto-columns:88%}.cs-all{order:3;margin:0}}

/* why choose us */
.why{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,72px);align-items:center}
.why h2{font-size:clamp(30px,4.2vw,52px);font-weight:800;margin-top:12px;max-width:14ch}
.why h2 em{font-style:normal;color:var(--accent)}
.why-lede{margin-top:14px;color:var(--muted);max-width:52ch}
.why-list{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.why-item{display:flex;gap:14px;align-items:flex-start;padding:18px;border-radius:16px;border:1px solid var(--line);background:#fff;transition:border-color .25s,background .25s}
.why-item:hover{border-color:var(--accent);background:#FEF4F2}
.why-ico{width:44px;height:44px;border-radius:12px;background:var(--soft);color:var(--accent);display:grid;place-items:center;flex-shrink:0}
.why-ico svg{width:22px;height:22px}
.why-item h3{font-family:var(--body);font-size:16px;font-weight:700;letter-spacing:0}
.why-item p{margin-top:4px;font-size:14px;line-height:1.55;color:var(--muted)}
.why-cta{margin-top:26px}
.why-media{position:relative;padding:0 0 28px 28px}
.why-media::before{content:"";position:absolute;left:0;bottom:0;width:70%;height:70%;border-radius:24px;background-image:radial-gradient(rgba(237,50,35,.35) 1.4px,transparent 1.6px);background-size:18px 18px;z-index:0}
.why-img{position:relative;z-index:1;margin:0;border-radius:24px;overflow:hidden;aspect-ratio:3/4;max-width:100%;box-shadow:0 40px 80px -45px rgba(24,24,24,.55)}
.why-img img{width:100%;height:100%;object-fit:cover;display:block}
.why-badge{position:absolute;z-index:2;display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:16px;background:#fff;box-shadow:0 20px 40px -22px rgba(24,24,24,.5)}
.why-badge b{font-family:var(--display);font-size:30px;font-weight:800;line-height:1;color:var(--accent)}
.why-badge span{font-size:13px;font-weight:600;line-height:1.3}
.why-badge.b1{left:0;top:12%}
.why-badge.b2{right:-14px;bottom:18%;background:var(--ink);color:#fff}
.why-badge.b2 b{color:#fff}
@media (max-width:960px){.why{grid-template-columns:1fr}.why-media{max-width:460px;width:100%;margin-inline:auto}}
@media (max-width:520px){.why-list{grid-template-columns:1fr}.why-badge.b2{right:0}.why-badge b{font-size:24px}}

/* faq */
.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,5vw,72px);align-items:start}
.faq h2{font-size:clamp(30px,4.2vw,52px);font-weight:800;margin-top:12px}
.faq h2 em{font-style:normal;color:var(--accent)}
.faq-side p{margin-top:14px;color:var(--muted);max-width:40ch}
.faq-side .btn{margin-top:22px}
.faq-list{display:flex;flex-direction:column;gap:12px}
.faq-list details{border:1px solid var(--line);border-radius:16px;background:#fff;transition:border-color .25s,background .25s}
.faq-list details[open]{border-color:var(--accent);background:#FEF8F7}
.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;font-weight:600;font-size:16.5px}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary i{width:32px;height:32px;border-radius:50%;background:var(--soft);color:var(--accent);flex-shrink:0;position:relative;transition:transform .3s,background .3s}
.faq-list summary i::before,.faq-list summary i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;background:currentColor;border-radius:2px;transform:translate(-50%,-50%)}
.faq-list summary i::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .3s}
.faq-list details[open] summary i{background:var(--accent);color:#fff}
.faq-list details[open] summary i::after{transform:translate(-50%,-50%) rotate(0)}
.faq-list summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:16px}
.faq-a{padding:0 22px 20px;color:var(--muted);font-size:15px;line-height:1.7;max-width:70ch}
@media (max-width:900px){.faq{grid-template-columns:1fr}}

/* products */
.prod-head{display:grid;grid-template-columns:1fr 1fr;gap:20px 56px;align-items:end;margin-bottom:44px}
.prod-head h2{font-size:clamp(30px,4.2vw,52px);font-weight:800;margin-top:12px}
.prod-head p{color:var(--muted);font-size:clamp(15.5px,1.3vw,17.5px);max-width:52ch}
.prods{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.prod{position:relative;display:grid;grid-template-columns:64px 1fr;gap:20px;align-items:start;padding:26px 28px;border-radius:20px;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:inherit;overflow:hidden;transition:border-color .3s,box-shadow .3s,transform .3s}
.prod-ico{width:64px;height:64px;border-radius:16px;background:var(--soft);color:var(--accent);display:grid;place-items:center;transition:background .3s,color .3s,transform .3s}
.prod-ico svg{width:30px;height:30px}
.prod-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.prod h3{font-size:22px;font-weight:700;letter-spacing:-.01em}
.prod .cat{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:5px 10px;border-radius:99px;background:#F6F5F4}
.prod p{margin-top:8px;font-size:15px;line-height:1.6;color:var(--muted);max-width:52ch}
.prod .go{margin-top:14px;display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ink);transition:color .3s,gap .3s}
.prod .go svg{width:16px;height:16px}
.prod::after{content:"";position:absolute;right:-60px;bottom:-60px;width:160px;height:160px;border-radius:50%;border:2px solid var(--soft);outline:2px solid var(--soft);outline-offset:18px;opacity:0;transition:opacity .35s}
.prod:hover,.prod:focus-visible{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 24px 44px -30px rgba(237,50,35,.6);outline:none}
.prod:hover .prod-ico,.prod:focus-visible .prod-ico{background:var(--accent);color:#fff;transform:rotate(-6deg)}
.prod:hover .go,.prod:focus-visible .go{color:var(--accent);gap:12px}
.prod:hover::after,.prod:focus-visible::after{opacity:1}
@media (max-width:860px){.prod-head,.prods{grid-template-columns:1fr}}
@media (max-width:480px){.prod{grid-template-columns:1fr;padding:22px}.prod-ico{width:54px;height:54px}}

/* values + skills */
.split{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.values{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.value{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px}
.value h3{font-size:16px;font-weight:600;margin-bottom:6px;display:flex;align-items:center;gap:10px}
.value h3::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--accent);transform:rotate(45deg)}
.value p{font-size:14.5px;color:var(--muted)}
.skills{display:flex;flex-direction:column;gap:22px}
.skill-row{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;font-weight:600}
.skill-row span{font-family:var(--mono);font-weight:400;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.bar{height:10px;border-radius:999px;background:var(--soft);overflow:hidden}
.bar i{display:block;height:100%;border-radius:999px;background:var(--accent);transform-origin:left;animation:grow 1.4s cubic-bezier(.2,.8,.2,1) both}
@keyframes grow{from{transform:scaleX(.08)}}
.skills .note{font-size:13px;color:var(--muted);font-family:var(--mono)}
@media (max-width:860px){.split{grid-template-columns:1fr}}
@media (max-width:460px){.values{grid-template-columns:1fr}}

/* team */
.team{display:flex;flex-wrap:wrap;justify-content:center;gap:18px}
.member{flex:0 1 calc((100% - 4*18px)/5);min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:transform .3s,box-shadow .3s}
.member:hover{transform:translateY(-4px);box-shadow:0 24px 44px -30px rgba(24,24,24,.45)}
.avatar{aspect-ratio:4/5;max-width:100%;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:44px;color:var(--accent-ink);background:var(--accent);position:relative;overflow:hidden}
.avatar::after{content:"";position:absolute;width:140%;aspect-ratio:1;border-radius:50%;border:28px solid rgba(255,255,255,.1);left:40%;top:30%}
.avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.avatar.photo{background:#EDEBE9}
.avatar.photo::after{display:none}
.member:hover .avatar img{transform:scale(1.05)}
.member:nth-child(3) .avatar{background:#181818;color:#fff}
.member:nth-child(4) .avatar{background:var(--soft);color:var(--accent)}
.member:nth-child(5) .avatar{background:#181818;color:var(--accent)}
.member .info{padding:16px 18px 18px}
.member h3{font-family:var(--body);font-size:16.5px;font-weight:600;letter-spacing:0}
.member p{font-size:14px;color:var(--muted)}
.member .quip{font-family:var(--mono);font-size:12px;color:var(--accent);margin-top:10px}
@media (max-width:1100px){.member{flex-basis:calc((100% - 2*18px)/3)}}
@media (max-width:620px){.team{gap:12px}.member{flex-basis:calc((100% - 12px)/2)}.member .info{padding:12px 14px 14px}.avatar{font-size:34px}}

/* client voices (chat bubbles, 2 per view) */
.tv{position:relative}
.tv-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px 40px;flex-wrap:wrap;margin-bottom:36px}
.tv-head h2{font-size:clamp(30px,4.2vw,52px);font-weight:800;margin-top:12px;max-width:16ch}
.tv-head h2 em{font-style:normal;color:var(--accent)}
.tv-head p{margin-top:12px;color:var(--muted);max-width:46ch}
.tv-ctrl{display:flex;align-items:center;gap:12px}
.tv-count{font-family:var(--mono);font-size:13px;color:var(--muted);margin-right:6px;font-variant-numeric:tabular-nums}
.tv-count b{color:var(--ink);font-weight:500}
.tv-btn{width:52px;height:52px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.tv-btn svg{width:22px;height:22px}
.tv-btn:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.tv-btn.next{background:var(--accent);border-color:var(--accent);color:#fff}
.tv-btn.next:hover{background:#D42A1C}
.tv-btn:disabled{opacity:.35;cursor:default;background:#fff;color:var(--ink);border-color:var(--line)}
.tv-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 24px)/2);gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding:6px 2px 10px}
.tv-track::-webkit-scrollbar{display:none}
.tmsg{scroll-snap-align:start;display:flex;flex-direction:column;gap:22px}
.bubble{position:relative;border-radius:28px 28px 28px 8px;padding:clamp(26px,4vw,52px);background:#FAF9F8;border:1px solid var(--line);display:flex;flex-direction:column;gap:20px;overflow:hidden}
.bubble::before{content:"";position:absolute;right:-90px;top:-90px;width:260px;height:260px;border-radius:50%;border:2px solid var(--soft);outline:2px solid var(--soft);outline-offset:30px;pointer-events:none}
.bubble .mark{font-family:Georgia,serif;font-size:84px;line-height:.6;height:34px;color:var(--accent)}
.bubble blockquote{margin:0;font-family:var(--display);font-size:clamp(18px,1.7vw,22px);font-weight:600;line-height:1.4;max-width:40ch;position:relative}
.bubble blockquote.ph{font-weight:500;font-style:italic;color:var(--muted)}
.bubble .tagline{display:flex;gap:8px;flex-wrap:wrap}
.bubble .tagline span{font-size:12.5px;font-weight:600;padding:6px 12px;border-radius:99px;background:#fff;border:1px solid var(--line)}
.tav{width:50px;height:50px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:15px;flex-shrink:0;box-shadow:0 0 0 4px #FAF9F8,0 0 0 5px var(--line)}
.twho{display:flex;align-items:center;gap:14px;margin-top:6px;padding-top:22px;border-top:1px solid var(--line);text-align:left}
.twho b{display:block;font-size:16px}
.twho div span{display:block;font-size:13.5px;color:var(--muted)}
.typing{display:inline-flex;gap:4px;margin-left:8px;vertical-align:middle}
.typing i{width:5px;height:5px;border-radius:50%;background:var(--muted);animation:typ 1.2s infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes typ{0%,60%,100%{opacity:.25}30%{opacity:1}}
@media (prefers-reduced-motion:reduce){.typing i{animation:none}.tv-track{scroll-behavior:auto}}

/* blogs */
.blog-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding-bottom:18px;border-bottom:2px solid var(--ink);margin-bottom:32px}
.blog-head h2{font-size:clamp(30px,4.2vw,52px);font-weight:800;margin-top:10px}
.blog-all{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--ink);text-decoration:none;white-space:nowrap}
.blog-all:hover{color:var(--accent)}
.blog-all svg{width:18px;height:18px;transition:transform .25s}
.blog-all:hover svg{transform:translateX(4px)}
.blogs{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,4vw,56px);align-items:start}
.feat{text-decoration:none;color:inherit;display:block}
.cover{position:relative;aspect-ratio:16/9;max-width:100%;border-radius:22px;background:var(--ink);color:#fff;padding:clamp(18px,2.4vw,28px);display:flex;flex-direction:column;overflow:hidden;isolation:isolate}
.cover::after{content:"";position:absolute;z-index:-1;right:-70px;bottom:-110px;width:300px;height:300px;border-radius:50%;border:2px solid rgba(237,50,35,.55);outline:2px solid rgba(237,50,35,.25);outline-offset:34px;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.cover-top{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#A9A5A1;padding-bottom:12px;border-bottom:1px solid #353331}
.cover-top b{color:var(--accent);font-weight:500}
.cover h3{margin-top:auto;font-family:var(--display);font-size:clamp(28px,4vw,52px);font-weight:900;line-height:.98;letter-spacing:-.02em;text-transform:uppercase;max-width:11ch}
.cover h3 span{color:var(--accent)}
.cover-foot{margin-top:16px;padding-top:12px;border-top:1px solid #353331;display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:#A9A5A1;letter-spacing:.06em}
.feat:hover .cover::after{transform:scale(1.12)}
.meta{display:flex;align-items:center;gap:12px;margin-top:16px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.meta b{color:var(--accent);font-weight:500}
.meta i{flex:1;height:1px;background:var(--line)}
.feat h4{margin:12px 0 0;font-family:var(--display);font-size:clamp(22px,2.4vw,32px);font-weight:700;line-height:1.15;letter-spacing:-.01em;transition:color .25s}
.feat p{margin-top:10px;color:var(--muted);max-width:60ch}
.feat:hover h4{color:var(--accent)}
.blist{list-style:none;margin:0;padding:0;counter-reset:b}
.blist li{border-bottom:1px solid var(--line)}
.blist a{display:grid;grid-template-columns:40px 1fr 24px;gap:10px;align-items:start;padding:18px 4px;text-decoration:none;color:inherit}
.blist a::before{counter-increment:b;content:"0" counter(b);font-family:var(--mono);font-size:12.5px;color:var(--muted);padding-top:4px}
.blist h5{font-family:var(--body);font-size:17px;font-weight:600;line-height:1.4;margin:0;transition:color .25s}
.blist small{display:block;margin-top:6px;font-family:var(--mono);font-size:12px;color:var(--muted)}
.blist small b{color:var(--accent);font-weight:500}
.blist .arr{width:20px;height:20px;margin-top:3px;color:var(--muted);opacity:0;transform:translate(-6px,6px);transition:opacity .25s,transform .25s,color .25s}
.blist a:hover h5{color:var(--accent)}
.blist a:hover .arr{opacity:1;transform:none;color:var(--accent)}
.blist a:hover::before{color:var(--accent)}
@media (max-width:900px){.blogs{grid-template-columns:1fr}}
@media (max-width:480px){.blist a{grid-template-columns:32px 1fr}.blist .arr{display:none}.cover-foot span:last-child{display:none}}
#blogs{padding-top:clamp(16px,2vw,24px)}

/* news & events */
.news-head{display:grid;grid-template-columns:1fr 1fr;gap:20px 56px;align-items:end;margin-bottom:40px}
.news-head h2{font-size:clamp(30px,4.2vw,52px);font-weight:800;margin-top:12px}
.news-head p:not(.eyebrow){color:var(--muted);font-size:clamp(15.5px,1.3vw,17.5px);max-width:48ch}
.news-head .btn{margin-top:18px;border-color:var(--accent);color:var(--accent);padding:11px 20px;font-size:14.5px}
.news-head .btn:hover{background:var(--accent);color:#fff}
.news{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ev{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.ev-img{position:relative;aspect-ratio:4/3;max-width:100%;border-radius:20px;overflow:hidden;background:#F2F0EE}
.ev-img img{width:100%;height:100%;object-fit:cover;object-position:center 25%;display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.ev-tag{position:absolute;left:14px;top:14px;display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:99px;background:rgba(255,255,255,.94);font-size:12.5px;font-weight:600;color:var(--ink)}
.ev-tag svg{width:14px;height:14px;color:var(--accent)}
.ev-arrow{position:absolute;right:14px;bottom:14px;width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;transform:scale(.6);opacity:0;transition:transform .35s,opacity .35s}
.ev-arrow svg{width:18px;height:18px}
.ev h3{font-family:var(--body);font-size:18px;font-weight:600;letter-spacing:0;line-height:1.35;margin-top:18px;transition:color .25s}
.ev p{margin-top:8px;font-size:15px;line-height:1.6;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ev:hover .ev-img img,.ev:focus-visible .ev-img img{transform:scale(1.06)}
.ev:hover .ev-arrow,.ev:focus-visible .ev-arrow{transform:none;opacity:1}
.ev:hover h3,.ev:focus-visible h3{color:var(--accent)}
@media (max-width:960px){.news{grid-template-columns:1fr 1fr}}
@media (max-width:860px){.news-head{grid-template-columns:1fr}}
@media (max-width:600px){.news{grid-template-columns:1fr;gap:28px}}

/* cta band */
.band{background:var(--accent);color:var(--accent-ink);border-radius:24px;padding:clamp(32px,6vw,64px);display:grid;grid-template-columns:1.4fr auto;gap:28px;align-items:center;position:relative;overflow:hidden}
.band h2{font-size:clamp(28px,4.4vw,52px);font-weight:800}
.band p{margin-top:12px;opacity:.85;max-width:46ch}
.band .btn{background:#181818;color:#fff;border-color:#181818}
.band::after{content:"";position:absolute;right:-80px;bottom:-120px;width:320px;height:320px;border-radius:50%;border:40px solid rgba(255,255,255,.12)}
@media (max-width:760px){.band{grid-template-columns:1fr}}

/* contact */
.cband{position:relative;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,5vw,64px);align-items:center;padding:clamp(28px,5vw,64px);border-radius:28px;background:#FBFAF9;border:1px solid var(--line);overflow:hidden;isolation:isolate}
.cband::before{content:"";position:absolute;inset:0;z-index:-1;background-image:radial-gradient(rgba(24,24,24,.09) 1px,transparent 1.3px);background-size:24px 24px;-webkit-mask-image:linear-gradient(120deg,#000,transparent 60%);mask-image:linear-gradient(120deg,#000,transparent 60%)}
.cband h2{font-size:clamp(30px,4vw,50px);font-weight:800;margin-top:12px;max-width:14ch}
.cband h2 em{font-style:normal;color:var(--accent)}
.csteps{list-style:none;margin:36px 0 0;padding:0;display:flex;flex-direction:column}
.cstep{position:relative;display:grid;grid-template-columns:48px 1fr;gap:18px;padding-bottom:26px}
.cstep:not(:last-child)::before{content:"";position:absolute;left:23px;top:50px;bottom:4px;width:2px;background:repeating-linear-gradient(180deg,var(--accent) 0 6px,transparent 6px 12px);opacity:.45}
.cstep .n{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1.5px solid var(--accent);color:var(--accent);font-family:var(--mono);font-size:14px}
.cstep:first-child .n{background:var(--accent);color:#fff}
.cstep h3{font-size:20px;font-weight:700;margin-top:4px}
.cstep p{margin-top:6px;color:var(--muted);font-size:15.5px;max-width:46ch}
.cdirect{margin-top:10px;padding-top:24px;border-top:1px solid var(--line)}
.cdirect > p{font-size:14px;font-weight:600;margin-bottom:12px}
.cinfo{display:flex;flex-direction:column;gap:10px}
.crow{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px 12px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.crow small{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.crow strong{font-weight:600;font-size:15px;word-break:break-word}
.copy{border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:8px;padding:6px 10px;font:500 12px var(--mono);cursor:pointer;flex-shrink:0}
.copy:hover{border-color:var(--accent);color:var(--accent)}

.cform{background:#fff;border:1px solid var(--line);border-radius:24px;padding:clamp(22px,3.2vw,40px);display:flex;flex-direction:column;gap:16px;box-shadow:0 40px 80px -50px rgba(24,24,24,.45)}
.cform h3{font-size:clamp(24px,2.4vw,30px);font-weight:800;margin-bottom:6px}
.cform h3 em{font-style:normal;color:var(--accent)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fld{position:relative}
.fld input,.fld select,.fld textarea{font:15.5px var(--body);width:100%;padding:24px 16px 10px;border-radius:12px;border:1.5px solid var(--line);background:#fff;color:var(--ink);appearance:none;-webkit-appearance:none;transition:border-color .2s,box-shadow .2s}
.fld textarea{min-height:130px;resize:vertical}
.fld label{position:absolute;left:17px;right:36px;top:17px;font-size:15px;color:var(--muted);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:top .18s,font-size .18s,color .18s}
.fld select{padding-right:42px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px rgba(237,50,35,.1)}
.fld input:focus + label,.fld input:not(:placeholder-shown) + label,.fld textarea:focus + label,.fld textarea:not(:placeholder-shown) + label,.fld select:focus + label,.fld select:valid + label{top:8px;font-size:11.5px;font-weight:600}
.fld input:focus + label,.fld textarea:focus + label,.fld select:focus + label{color:var(--accent)}
.fld.sel::after{content:"";position:absolute;right:18px;top:24px;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);pointer-events:none}
.fld.tel{display:flex;border:1.5px solid var(--line);border-radius:12px;transition:border-color .2s,box-shadow .2s}
.fld.tel:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px rgba(237,50,35,.1)}
.fld.tel .cc{display:flex;align-items:center;gap:6px;padding:0 12px 0 14px;border-right:1.5px solid var(--line);font-size:15px;font-weight:600;white-space:nowrap}
.fld.tel .cc small{font-size:11px;color:var(--muted);font-weight:600}
.fld.tel .in{position:relative;flex:1;min-width:0}
.fld.tel input{border:0;box-shadow:none!important;padding-left:14px}
.fld.tel .in label{left:14px;right:8px}
.chk{display:flex;align-items:center;gap:10px;font-size:14.5px;cursor:pointer;width:fit-content}
.chk input{appearance:none;-webkit-appearance:none;width:20px;height:20px;border-radius:6px;border:1.5px solid var(--line);display:grid;place-items:center;cursor:pointer;margin:0}
.chk input:checked{background:var(--accent);border-color:var(--accent)}
.chk input:checked::after{content:"";width:5px;height:10px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:translateY(-1px) rotate(45deg)}
.chk span{color:var(--muted);font-size:13px}
.cform .submit{width:100%;justify-content:center;padding:17px 22px;border-radius:12px;font-size:16px;margin-top:4px}
.status{font-size:14px;color:var(--muted);text-align:center}
.status a{color:var(--accent);font-weight:600}
@media (max-width:900px){.cband{grid-template-columns:1fr}}
@media (max-width:520px){.chk span{display:none}.row{grid-template-columns:1fr}.cband{padding:22px 16px;border-radius:22px}}

footer{border-top:1px solid var(--line);margin-top:clamp(24px,3vw,40px)}
.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding-block:28px;font-size:14px;color:var(--muted)}

.wa{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:30;background:#1FAF5A;color:#fff;text-decoration:none;font-weight:600;font-size:14px;padding:12px 18px;border-radius:999px;display:flex;align-items:center;gap:8px;box-shadow:0 12px 30px -10px rgba(0,0,0,.4)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .ring.pulse{display:none}
}

/* testimonials: 1 per view on smaller screens */
@media (max-width:820px){.tv-track{grid-auto-columns:100%}}
/* mobile sliders: team + news */
@media (max-width:620px){
  .team{display:grid;grid-auto-flow:column;grid-auto-columns:72%;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;justify-content:start;padding-bottom:6px}
  .team::-webkit-scrollbar,.news::-webkit-scrollbar{display:none}
  .team .member{scroll-snap-align:start}
  .news{display:grid;grid-auto-flow:column;grid-auto-columns:86%;grid-template-columns:none;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:6px}
  .news .ev{scroll-snap-align:start}
  .swipe-hint{display:flex}
}
.swipe-hint{display:none;align-items:center;gap:8px;margin-top:14px;font-family:var(--mono);font-size:12px;color:var(--muted)}
.swipe-hint svg{width:16px;height:16px;color:var(--accent)}


/* equal-height testimonial boxes */
.tmsg .bubble{flex:1}
.tmsg .twho{margin-top:auto}

/* all buttons: 50px radius */
.btn,.hs-btn,.hdr-cta,.hs-arrow,.cs-all,.cform .submit,.tv-btn,.menu-btn,.copy,.wa,.news-head .btn,.faq-side .btn,.tabs button,button{border-radius:50px!important}

/* hero stats: 3 columns on mobile */
@media (max-width:520px){
  .hs-bottom > div:first-child{width:100%}
  .hs-stats{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:10px!important}
  .hs-stats div{flex-direction:column;gap:2px!important;align-items:flex-start}
  .hs-stats b{font-size:22px}
  .hs-stats span{font-size:11.5px;line-height:1.3}
}

/* featured blog photo cover */
.cover.photo{padding:0;background:#EDEBE9}
.cover.photo::after{display:none}
.cover.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.feat:hover .cover.photo img{transform:scale(1.04)}

/* ===================================================================
   Inner pages: About, Services, Products, News & Events, Blogs, Contact
   =================================================================== */

/* logo as image + nav states */
.logo img{height:38px;width:auto;display:block}
@media (max-width:480px){.logo img{height:30px}}
.links{gap:26px}
.links a.active{opacity:1}
.links a.active::after{transform:scaleX(1)}
.mobile-menu a.active{color:var(--accent)}
@media (max-width:1060px){
  .links,.hdr-cta{display:none}
  .menu-btn{display:block}
  .mobile-menu:not([hidden]){display:flex;flex-direction:column;gap:4px;padding-block:4px 18px}
  .mobile-menu a{padding:12px 4px;text-decoration:none;font-weight:500;border-bottom:1px solid var(--line)}
}

/* shared heading helpers */
em.ac,h1 em,h2 em,h3 em{font-style:normal;color:var(--accent)}
.h2{font-size:clamp(28px,4vw,46px);font-weight:800;margin-top:12px}
.muted{color:var(--muted)}
.center{text-align:center}
.sec-head h2 em{font-style:normal;color:var(--accent)}
.sec-center{text-align:center;max-width:760px;margin:0 auto 44px}
.sec-center p:not(.eyebrow){margin-top:12px;color:var(--muted)}
.alt-bg{background:#FBFAF9;border-block:1px solid var(--line)}
.hs-btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ink);box-shadow:none}
.hs-btn.ghost:hover{background:var(--ink);color:#fff}

/* ---------- page hero ---------- */
.ph{position:relative;overflow:hidden;padding-top:calc(80px + env(safe-area-inset-top,0px));border-bottom:1px solid var(--line);
  background:radial-gradient(900px 520px at 88% 8%,rgba(237,50,35,.11),transparent 62%),radial-gradient(700px 420px at 0% 100%,rgba(237,50,35,.05),transparent 60%),#FBFAF9}
.ph::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(rgba(24,24,24,.10) 1px,transparent 1.3px);background-size:26px 26px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 85%);mask-image:linear-gradient(180deg,#000,transparent 85%)}
.ph-inner{position:relative;display:grid;grid-template-columns:1fr 1.02fr;gap:clamp(32px,5vw,72px);align-items:center;padding-block:clamp(28px,5vw,64px) clamp(40px,5vw,64px)}
.ph-inner.solo{grid-template-columns:1fr;max-width:900px;text-align:center;justify-items:center}
.crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.crumbs a{text-decoration:none;transition:color .2s}
.crumbs a:hover{color:var(--accent)}
.crumbs i{width:5px;height:5px;border-radius:50%;background:var(--accent)}
.crumbs span{color:var(--ink)}
.ph h1{font-size:clamp(36px,5.2vw,66px);font-weight:800;line-height:1.04;margin-top:18px;max-width:15ch}
.ph-inner.solo h1{max-width:18ch}
.ph .lede{margin-top:18px;font-size:clamp(16px,1.35vw,18.5px);line-height:1.65;color:var(--muted);max-width:54ch}
.ph-actions{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.ph-inner.solo .ph-actions{justify-content:center}
.ph-actions .hs-btn{margin-top:0}
.ph-stats{display:flex;flex-wrap:wrap;gap:14px clamp(22px,3vw,44px);margin-top:34px;padding-top:22px;border-top:1px solid var(--line)}
.ph-stats div{display:flex;flex-direction:column}
.ph-stats b{font-family:var(--display);font-size:clamp(24px,2.4vw,32px);font-weight:800;line-height:1.1}
.ph-stats span{font-size:13.5px;color:var(--muted)}
.ph .visual{box-shadow:0 40px 80px -50px rgba(24,24,24,.45)}
.ph .visual.photo img{transform:none;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.ph .visual.photo:hover img{transform:scale(1.03)}
@media (max-width:900px){
  .ph-inner{grid-template-columns:1fr}
  .ph .visual{max-width:620px}
}
@media (max-width:520px){.ph-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.ph-stats b{font-size:22px}.ph-stats span{font-size:12px;line-height:1.3}}

/* ---------- check lists ---------- */
.checks{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}
.checks.one{grid-template-columns:1fr}
.checks li{position:relative;padding-left:32px;font-size:15px;line-height:1.5}
.checks li::before{content:"";position:absolute;left:0;top:1px;width:22px;height:22px;border-radius:50%;background:var(--soft)}
.checks li::after{content:"";position:absolute;left:8px;top:6px;width:5px;height:10px;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(45deg)}
@media (max-width:520px){.checks{grid-template-columns:1fr}}

/* ---------- feature rows (services / products) ---------- */
.feature{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center;padding-block:clamp(32px,4vw,56px);scroll-margin-top:90px}
.feature + .feature{border-top:1px solid var(--line)}
.feature.rev .feature-media{order:2}
.feature h2{font-size:clamp(28px,3.6vw,44px);font-weight:800;margin-top:12px;max-width:16ch}
.feature .lead{margin-top:14px;color:var(--muted);font-size:clamp(15.5px,1.25vw,17px);max-width:54ch}
.feature .hs-btn{margin-top:28px}
.feature-media{position:relative}
.feature-media .visual{aspect-ratio:5/4}
.feature-media .visual.photo img{transform:none}
.feature-kpi{position:absolute;z-index:3;right:-12px;bottom:24px;display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:16px;background:var(--ink);color:#fff;box-shadow:0 20px 40px -22px rgba(24,24,24,.6)}
.feature-kpi b{font-family:var(--display);font-size:28px;font-weight:800;line-height:1;color:var(--accent)}
.feature-kpi span{font-size:13px;font-weight:600;line-height:1.3}
@media (max-width:900px){.feature{grid-template-columns:1fr}.feature.rev .feature-media{order:0}.feature-kpi{right:12px}}

/* ---------- process (4 steps) ---------- */
.steps4{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:st}
.step4{position:relative;padding:28px 24px 26px;border-radius:20px;background:#fff;border:1px solid var(--line);transition:border-color .25s,transform .25s,box-shadow .25s}
.step4:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 24px 44px -30px rgba(237,50,35,.55)}
.step4 .n{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1.5px solid var(--accent);color:var(--accent);font-family:var(--mono);font-size:14px;background:#fff}
.step4:first-child .n{background:var(--accent);color:#fff}
.step4:not(:last-child)::after{content:"";position:absolute;top:50px;right:-19px;width:20px;height:2px;background:repeating-linear-gradient(90deg,var(--accent) 0 5px,transparent 5px 9px);opacity:.5}
.step4 h3{font-size:20px;font-weight:700;margin-top:18px}
.step4 p{margin-top:8px;font-size:15px;color:var(--muted)}
@media (max-width:960px){.steps4{grid-template-columns:1fr 1fr}.step4::after{display:none}}
@media (max-width:540px){.steps4{grid-template-columns:1fr}}

/* ---------- chips / filters ---------- */
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{appearance:none;border:1.5px solid var(--line);background:#fff;color:var(--ink);font:600 14px var(--body);padding:10px 18px;border-radius:50px;cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.chip:hover{border-color:var(--ink)}
.chip.on,.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.chip small{font-family:var(--mono);font-size:11px;opacity:.65;margin-left:4px}
.chips.scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;-webkit-mask-image:linear-gradient(90deg,#000 90%,transparent);mask-image:linear-gradient(90deg,#000 90%,transparent)}
.chips.scroll::-webkit-scrollbar{display:none}
.chips.scroll .chip{flex-shrink:0}
.is-hidden{display:none!important}

/* ---------- platform pills ---------- */
.pills{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.pill{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border-radius:50px;background:#fff;border:1px solid var(--line);font-weight:600;font-size:15px}
.pill i{width:9px;height:9px;border-radius:50%;background:var(--accent)}

/* ---------- about page ---------- */
.mv{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.mv-card{position:relative;overflow:hidden;padding:clamp(28px,4vw,44px);border-radius:24px;border:1px solid var(--line);background:#fff}
.mv-card.dark{background:var(--ink);color:#fff;border-color:var(--ink)}
.mv-card.dark p{color:#C9C5C1}
.mv-card::after{content:"";position:absolute;right:-70px;bottom:-90px;width:220px;height:220px;border-radius:50%;border:2px solid rgba(237,50,35,.35);outline:2px solid rgba(237,50,35,.15);outline-offset:26px}
.mv-card .eyebrow{display:flex;align-items:center;gap:10px}
.mv-card .eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent)}
.mv-card.dark .eyebrow{color:#A9A5A1}
.mv-card h3{font-size:clamp(24px,2.6vw,32px);font-weight:800;margin-top:14px;max-width:20ch}
.mv-card p{margin-top:12px;color:var(--muted);max-width:52ch}
@media (max-width:820px){.mv{grid-template-columns:1fr}}
.values.v4{grid-template-columns:repeat(4,1fr);margin-top:18px}
@media (max-width:960px){.values.v4{grid-template-columns:1fr 1fr}}
@media (max-width:460px){.values.v4{grid-template-columns:1fr}}

.gallery{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:240px 240px;gap:16px}
.gallery figure{position:relative;margin:0;border-radius:20px;overflow:hidden;background:#EDEBE9}
.gallery figure:first-child{grid-row:span 2}
.gallery img{width:100%;height:100%;object-fit:cover;object-position:center 25%;display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.gallery figure:hover img{transform:scale(1.05)}
.gallery figcaption{position:absolute;left:12px;bottom:12px;right:12px;display:inline-flex;width:fit-content;align-items:center;gap:7px;padding:7px 12px;border-radius:99px;background:rgba(255,255,255,.94);font-size:12.5px;font-weight:600}
.gallery figcaption svg{width:14px;height:14px;color:var(--accent);flex-shrink:0}
@media (max-width:860px){.gallery{grid-template-columns:1fr 1fr;grid-template-rows:auto}.gallery figure{aspect-ratio:4/3}.gallery figure:first-child{grid-column:span 2;grid-row:auto;aspect-ratio:16/10}}
@media (max-width:480px){.gallery{grid-template-columns:1fr}.gallery figure:first-child{grid-column:auto}}

/* ---------- services grid (4 col variant) ---------- */
.svc{scroll-margin-top:90px}
.services.s4{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.services.s4{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.services.s4{grid-template-columns:1fr}}

/* ---------- products page ---------- */
.ptabs{display:flex;gap:8px;padding:6px;border-radius:50px;background:var(--alt);border:1px solid var(--line);width:fit-content;max-width:100%;margin:0 auto 36px;overflow-x:auto;scrollbar-width:none}
.ptabs::-webkit-scrollbar{display:none}
.ptabs button{flex-shrink:0;appearance:none;border:0;background:transparent;color:var(--muted);font:600 14.5px var(--body);padding:11px 20px;border-radius:50px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:background .2s,color .2s}
.ptabs button svg{width:17px;height:17px}
.ptabs button:hover{color:var(--ink)}
.ptabs button[aria-selected="true"]{background:#fff;color:var(--accent);box-shadow:0 6px 18px -10px rgba(24,24,24,.35)}
.ppanel{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(32px,5vw,64px);align-items:center;padding:clamp(24px,4vw,48px);border-radius:28px;background:#FBFAF9;border:1px solid var(--line)}
.ppanel[hidden]{display:none}
.ppanel .prod-ico{width:58px;height:58px}
.ppanel h3{font-size:clamp(30px,3.6vw,44px);font-weight:800;margin-top:18px}
.ppanel .cat{display:inline-block;margin-top:10px;font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:5px 10px;border-radius:99px;background:#fff;border:1px solid var(--line)}
.ppanel .lead{margin-top:14px;color:var(--muted);max-width:52ch}
.ppanel .ph-actions{margin-top:26px}
@media (max-width:900px){.ppanel{grid-template-columns:1fr}}
@media (max-width:600px){.ptabs{width:100%;border-radius:18px}}

/* product dashboard mock */
.dashc{container-type:inline-size;min-width:0;width:100%}
.dash{position:relative;aspect-ratio:4/3;border-radius:22px;background:#fff;border:1px solid var(--line);box-shadow:0 40px 80px -50px rgba(24,24,24,.45);overflow:hidden;display:grid;grid-template-columns:20cqw 1fr}
.dash-side{background:var(--ink);padding:4cqw 3cqw;display:flex;flex-direction:column;gap:2.6cqw}
.dash-side .lg{width:8cqw;height:8cqw;border-radius:2.2cqw;background:var(--accent);display:grid;place-items:center;color:#fff;margin-bottom:2cqw}
.dash-side .lg svg{width:4.6cqw;height:4.6cqw}
.dash-side i{display:block;height:1.6cqw;border-radius:1cqw;background:#3A3735}
.dash-side i:nth-child(3){background:var(--accent);width:80%}
.dash-main{padding:4cqw;display:flex;flex-direction:column;gap:3cqw;min-width:0}
.dash-top{display:flex;justify-content:space-between;align-items:center;gap:2cqw}
.dash-top b{font-family:var(--display);font-size:4.4cqw;font-weight:800;letter-spacing:-.02em}
.dash-top span{font-family:var(--mono);font-size:2.2cqw;color:var(--muted);padding:1cqw 2cqw;border-radius:99px;background:var(--alt)}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:2cqw}
.kpis div{border:1px solid var(--line);border-radius:2.4cqw;padding:2.4cqw}
.kpis small{display:block;font-size:2cqw;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpis strong{display:block;font-family:var(--display);font-size:4.4cqw;font-weight:800;margin-top:.6cqw}
.kpis div:first-child{background:var(--soft);border-color:transparent}
.kpis div:first-child strong{color:var(--accent)}
.dash-chart{flex:1;display:flex;align-items:flex-end;gap:1.6cqw;padding:3cqw;border-radius:2.4cqw;background:var(--alt);min-height:0}
.dash-chart i{flex:1;border-radius:1cqw 1cqw 0 0;background:#DCD8D4}
.dash-chart i:nth-last-child(2){background:#F28A80}
.dash-chart i:last-child{background:var(--accent)}
.dash-rows{display:flex;flex-direction:column;gap:1.6cqw}
.dash-rows i{display:flex;align-items:center;gap:2cqw;height:5cqw;border-radius:1.6cqw;border:1px solid var(--line);padding-inline:2cqw}
.dash-rows i::before{content:"";width:2.6cqw;height:2.6cqw;border-radius:50%;background:var(--soft)}
.dash-rows i::after{content:"";height:1.4cqw;border-radius:1cqw;background:#ECE9E6;flex:1}

.ind{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ind-card{display:flex;gap:16px;align-items:flex-start;padding:22px;border-radius:18px;border:1px solid var(--line);background:#fff;transition:border-color .25s,background .25s}
.ind-card:hover{border-color:var(--accent);background:#FEF4F2}
.ind-card h3{font-family:var(--body);font-size:16.5px;font-weight:700;letter-spacing:0}
.ind-card p{margin-top:4px;font-size:14.5px;color:var(--muted)}
@media (max-width:900px){.ind{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ind{grid-template-columns:1fr}}

/* ---------- news page ---------- */
.nfeat{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(28px,4vw,56px);align-items:center;text-decoration:none;color:inherit}
.nfeat .ev-img{aspect-ratio:16/11;border-radius:24px}
.nfeat .ev-img img{object-position:center 30%}
.nfeat:hover .ev-img img{transform:scale(1.04)}
.nfeat:hover .ev-arrow{transform:none;opacity:1}
.nfeat h2{font-size:clamp(28px,3.4vw,42px);font-weight:800;margin-top:14px;transition:color .25s}
.nfeat:hover h2{color:var(--accent)}
.nfeat p:not(.eyebrow){margin-top:14px;color:var(--muted);max-width:52ch}
.nfeat .read{margin-top:22px;display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--accent)}
.nfeat .read svg{width:16px;height:16px;transition:transform .25s}
.nfeat:hover .read svg{transform:translate(3px,-3px)}
@media (max-width:860px){.nfeat{grid-template-columns:1fr}}

.ev-meta{display:flex;align-items:center;gap:10px;margin-top:16px;font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ev-meta b{color:var(--accent);font-weight:500}
.ev-meta i{width:4px;height:4px;border-radius:50%;background:var(--line)}
.ev-meta + h3{margin-top:8px}
.list-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px 24px;margin-bottom:32px;padding-bottom:20px;border-bottom:2px solid var(--ink)}
.list-bar h2{font-size:clamp(26px,3.4vw,40px);font-weight:800}
.news.stack{row-gap:40px}
@media (max-width:620px){
  .news.stack{display:grid;grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:1fr;overflow:visible;gap:32px}
}
.empty{display:none;text-align:center;padding:40px 16px;border:1px dashed var(--line);border-radius:20px;color:var(--muted)}
.empty.show{display:block}

/* newsletter band */
.nl{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;gap:28px 48px;align-items:center;padding:clamp(28px,5vw,56px);border-radius:28px;background:var(--ink);color:#fff;isolation:isolate}
.nl::after{content:"";position:absolute;z-index:-1;right:-80px;top:-120px;width:340px;height:340px;border-radius:50%;border:2px solid rgba(237,50,35,.55);outline:2px solid rgba(237,50,35,.25);outline-offset:40px}
.nl .eyebrow{color:#A9A5A1}
.nl h2{font-size:clamp(28px,3.6vw,44px);font-weight:800;margin-top:12px;max-width:16ch}
.nl p:not(.eyebrow){margin-top:12px;color:#C9C5C1;max-width:46ch}
.nl-form{display:flex;gap:10px;padding:6px;border-radius:50px;background:#fff}
.nl-form input{flex:1;min-width:0;border:0;background:transparent;font:15.5px var(--body);padding:12px 18px;color:var(--ink)}
.nl-form input:focus{outline:none}
.nl-form button{appearance:none;border:0;background:var(--accent);color:#fff;font:600 15px var(--body);padding:13px 22px;cursor:pointer;white-space:nowrap;transition:background .2s}
.nl-form button:hover{background:#D42A1C}
.nl-status{margin-top:10px;font-size:13.5px;color:#A9A5A1;min-height:1.4em}
.nl-status a{color:#fff;font-weight:600}
@media (max-width:860px){.nl{grid-template-columns:1fr}}
@media (max-width:420px){.nl-form{flex-direction:column;border-radius:20px}.nl-form button{width:100%}}

/* ---------- blogs page ---------- */
.bsearch{position:relative;width:100%;max-width:560px;margin-top:28px}
.bsearch svg{position:absolute;left:20px;top:50%;width:20px;height:20px;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.bsearch input{width:100%;font:16px var(--body);padding:17px 20px 17px 52px;border-radius:50px;border:1.5px solid var(--line);background:#fff;color:var(--ink);box-shadow:0 20px 40px -32px rgba(24,24,24,.5);transition:border-color .2s,box-shadow .2s}
.bsearch input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px rgba(237,50,35,.1)}
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 24px}
.pcard{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.pcard .cover{aspect-ratio:4/3;border-radius:20px}
.pcard .cover h3{font-size:clamp(24px,2.6vw,34px);max-width:10ch}
.pcard .cover.c-red{background:linear-gradient(150deg,#ED3223,#B81E12)}
.pcard .cover.c-red .cover-top,.pcard .cover.c-red .cover-foot{color:#FFD9D4;border-color:rgba(255,255,255,.25)}
.pcard .cover.c-red .cover-top b,.pcard .cover.c-red h3 span{color:#181818}
.pcard .cover.c-red::after{border-color:rgba(255,255,255,.35);outline-color:rgba(255,255,255,.15)}
.pcard .cover.c-soft{background:var(--soft);color:var(--ink)}
.pcard .cover.c-soft .cover-top,.pcard .cover.c-soft .cover-foot{color:var(--muted);border-color:rgba(24,24,24,.12)}
.pcard .cover.c-paper{background:#F4F2F0;color:var(--ink)}
.pcard .cover.c-paper .cover-top,.pcard .cover.c-paper .cover-foot{color:var(--muted);border-color:rgba(24,24,24,.12)}
.pcard:hover .cover::after{transform:scale(1.12)}
.pcard .meta{margin-top:16px}
.pcard h4{margin:10px 0 0;font-family:var(--body);font-size:19px;font-weight:600;line-height:1.35;transition:color .25s}
.pcard p{margin-top:8px;font-size:15px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pcard:hover h4{color:var(--accent)}
.author{display:flex;align-items:center;gap:10px;margin-top:16px;font-size:13.5px;color:var(--muted)}
.author .tav{width:32px;height:32px;font-size:11px;box-shadow:none}
.author b{color:var(--ink);font-weight:600}
.more-wrap{display:flex;justify-content:center;margin-top:44px}
@media (max-width:960px){.posts{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.posts{grid-template-columns:1fr;gap:36px}}
.blogs-top{margin-bottom:28px}
.blogs-top h3{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}

/* topic cards */
.topics{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.topic{appearance:none;font:inherit;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:12px;padding:18px;border-radius:18px;border:1px solid var(--line);background:#fff;color:inherit;transition:border-color .25s,background .25s,transform .25s}
.topic:hover{border-color:var(--accent);background:#FEF4F2;transform:translateY(-2px)}
.topic .why-ico{width:40px;height:40px}
.topic .why-ico svg{width:20px;height:20px}
.topic b{font-size:15px}
.topic small{font-family:var(--mono);font-size:12px;color:var(--muted)}
@media (max-width:960px){.topics{grid-template-columns:repeat(3,1fr)}}
@media (max-width:520px){.topics{grid-template-columns:1fr 1fr}}

/* ---------- contact page ---------- */
.cinfo.lg .crow{padding:16px 16px 16px 18px}
.crow .ci{width:44px;height:44px;border-radius:12px;background:var(--soft);color:var(--accent);display:grid;place-items:center;flex-shrink:0}
.crow .ci svg{width:20px;height:20px}
.crow .cl{display:flex;align-items:center;gap:14px;min-width:0}
.crow a{text-decoration:none}
.crow a:hover strong{color:var(--accent)}
.map-wrap{display:grid;grid-template-columns:1.25fr .75fr;gap:18px}
.map{position:relative;border-radius:24px;overflow:hidden;border:1px solid var(--line);min-height:420px;background:#EDEBE9}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.25)}
.office{padding:clamp(24px,3vw,36px);border-radius:24px;background:var(--ink);color:#fff;display:flex;flex-direction:column;gap:22px;position:relative;overflow:hidden;isolation:isolate}
.office::after{content:"";position:absolute;z-index:-1;right:-70px;bottom:-100px;width:240px;height:240px;border-radius:50%;border:2px solid rgba(237,50,35,.55);outline:2px solid rgba(237,50,35,.25);outline-offset:30px}
.office .eyebrow{color:#A9A5A1}
.office h3{font-size:clamp(24px,2.4vw,30px);font-weight:800;margin-top:10px}
.office dl{margin:0;display:flex;flex-direction:column;gap:16px}
.office dt{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#A9A5A1}
.office dd{margin:4px 0 0;font-size:15.5px;line-height:1.5}
.office dd a{color:#fff;text-decoration:none}
.office dd a:hover{color:var(--accent)}
.hours{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.hours li{display:flex;justify-content:space-between;gap:12px;font-size:14.5px;padding-bottom:6px;border-bottom:1px dashed #353331}
.hours li span:last-child{color:#C9C5C1;font-variant-numeric:tabular-nums}
.office .btn{margin-top:auto;border-color:#fff;color:#fff;justify-content:center}
.office .btn:hover{background:#fff;color:var(--ink)}
@media (max-width:900px){.map-wrap{grid-template-columns:1fr}.map{min-height:340px}}

/* ---------- site footer ---------- */
.sf{border-top:1px solid var(--line);margin-top:clamp(32px,4vw,56px);background:#FBFAF9}
.sf-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:36px 40px;padding-block:clamp(40px,5vw,64px) 32px}
.sf-brand img{height:34px;width:auto;display:block}
.sf-brand p{margin-top:16px;color:var(--muted);font-size:15px;max-width:36ch}
.sf h4{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 16px}
.sf ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.sf ul a{text-decoration:none;font-size:15px;transition:color .2s}
.sf ul a:hover{color:var(--accent)}
.sf-contact li{font-size:15px;line-height:1.5}
.sf-contact small{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.sf-social{display:flex;gap:10px;margin-top:20px}
.sf-social a{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;background:#fff;transition:background .2s,color .2s,border-color .2s}
.sf-social a:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.sf-social svg{width:17px;height:17px}
.sf .foot{border-top:1px solid var(--line)}
.sf .foot a{text-decoration:none}
.sf .foot a:hover{color:var(--accent)}
@media (max-width:900px){.sf-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.sf-grid{grid-template-columns:1fr}}
footer.sf{margin-top:0}

/* CTA band spacing on inner pages */
.band-sec{padding-block:clamp(16px,2vw,24px) clamp(48px,6vw,80px)}
.band .btn:hover{background:#fff;color:var(--ink);border-color:#fff}
.band .btns{display:flex;gap:12px;flex-wrap:wrap}
.band .btn.light{background:transparent;border-color:#fff;color:#fff}

/* reveal on scroll */
.js .rv{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none}}
[hidden]{display:none!important}

/* fixes */
.svc .ico svg{width:24px;height:24px}
.ph + #contact{padding-top:clamp(40px,5vw,64px)}
.ppanel > *{min-width:0}

/* ===================================================================
   Service & product detail pages: illustrated visuals + sections
   =================================================================== */
.visual .fchip{position:absolute}
.ph .visual:not(.photo){background:#fff}

/* phones (mobile apps / product mobile view) */
.v-app{background:linear-gradient(150deg,#FDEAE7,#fff 65%)}
.v-app .phone{right:auto;bottom:auto;top:8cqw;width:25cqw;height:50cqw}
.v-app .phone.p1{left:19cqw;transform:rotate(-6deg)}
.v-app .phone.p2{left:50cqw;top:12cqw;transform:rotate(5deg);background:#fff;border:1px solid var(--line)}
.v-app .phone.p2 .phone-s{background:var(--alt)}
.v-app .phone.solo{left:37cqw;transform:none}
.phone-s .row2{display:grid;grid-template-columns:1fr 1fr;gap:1.2cqw}
.phone-s .row2 i{height:7cqw;border-radius:1.4cqw;background:#F6F5F4;border:1px solid var(--line)}
.phone-s .row2 i:first-child{background:var(--soft);border-color:transparent}
.phone-s .hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:1cqw}
.phone-s .hd b{font-family:var(--display);font-size:2.6cqw;font-weight:800;color:var(--ink)}
.phone-s .hd span{width:4cqw;height:4cqw;border-radius:50%;background:var(--accent)}
.phone-s .ln{display:flex;align-items:center;gap:1.2cqw;padding:1.2cqw;border-radius:1.4cqw;background:#fff;border:1px solid var(--line)}
.phone-s .ln::before{content:"";width:3.4cqw;height:3.4cqw;border-radius:50%;background:var(--soft);flex-shrink:0}
.phone-s .ln::after{content:"";height:1.2cqw;border-radius:1cqw;background:#ECE9E6;flex:1}

/* graphic design canvas */
.v-graphic{background:#F6F5F4;background-image:radial-gradient(rgba(24,24,24,.12) 1px,transparent 1.3px);background-size:3.2cqw 3.2cqw}
.art{position:absolute;border-radius:2cqw;overflow:hidden;box-shadow:0 3cqw 6cqw -3cqw rgba(24,24,24,.45)}
.art.a1{left:7cqw;top:8cqw;width:38cqw;height:50cqw;background:linear-gradient(150deg,#ED3223,#B81E12);color:#fff;padding:3.4cqw;display:flex;flex-direction:column;justify-content:space-between}
.art.a1 small{font-family:var(--mono);font-size:1.8cqw;letter-spacing:.1em;opacity:.8}
.art.a1 b{font-family:var(--display);font-weight:900;font-size:6.6cqw;line-height:.95;letter-spacing:-.02em;text-transform:uppercase}
.art.a1::after{content:"";position:absolute;right:-10cqw;top:-10cqw;width:30cqw;height:30cqw;border-radius:50%;border:1.6cqw solid rgba(255,255,255,.18)}
.art.a2{left:49cqw;top:8cqw;width:44cqw;height:24cqw;background:var(--ink);color:#fff;padding:3cqw;display:flex;align-items:flex-end;gap:2cqw}
.art.a2 b{font-family:var(--display);font-size:4.4cqw;font-weight:800;line-height:1}
.art.a2 b span{color:var(--accent)}
.art.a3{left:49cqw;top:35cqw;width:21cqw;height:23cqw;background:#fff;display:grid;place-items:center}
.art.a3 i{width:12cqw;height:12cqw;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2cqw var(--soft)}
.art.a4{left:72cqw;top:35cqw;width:21cqw;height:23cqw;background:var(--soft);display:grid;place-items:center;font-family:var(--display);font-size:9cqw;font-weight:800;color:var(--accent)}
.sel{position:absolute;left:6.4cqw;top:7.4cqw;width:39.2cqw;height:51.2cqw;border:.3cqw solid #3B82F6;border-radius:2.2cqw;pointer-events:none}
.sel i{position:absolute;width:1.6cqw;height:1.6cqw;background:#fff;border:.3cqw solid #3B82F6}
.sel i:nth-child(1){left:-1cqw;top:-1cqw}.sel i:nth-child(2){right:-1cqw;top:-1cqw}.sel i:nth-child(3){left:-1cqw;bottom:-1cqw}.sel i:nth-child(4){right:-1cqw;bottom:-1cqw}
.toolbar{position:absolute;z-index:3;left:50%;bottom:4.6cqw;transform:translateX(-50%);display:flex;gap:1.6cqw;padding:1.4cqw 2.2cqw;border-radius:99px;background:#fff;box-shadow:0 2cqw 5cqw -2cqw rgba(24,24,24,.4)}
.toolbar i{width:4cqw;height:4cqw;border-radius:50%;background:#ECE9E6}
.toolbar i:first-child{background:var(--accent)}.toolbar i:nth-child(2){background:var(--ink)}

/* photography viewfinder overlay on a real photo */
.vfo{position:absolute;inset:0;z-index:2;pointer-events:none}
.vfo .c{position:absolute;width:7cqw;height:7cqw;border:.5cqw solid #fff;opacity:.9}
.vfo .c1{left:5cqw;top:5cqw;border-right:0;border-bottom:0}.vfo .c2{right:5cqw;top:5cqw;border-left:0;border-bottom:0}
.vfo .c3{left:5cqw;bottom:5cqw;border-right:0;border-top:0}.vfo .c4{right:5cqw;bottom:5cqw;border-left:0;border-top:0}
.vfo .focus{position:absolute;left:50%;top:46%;width:14cqw;height:14cqw;transform:translate(-50%,-50%);border:.35cqw solid rgba(255,255,255,.9);border-radius:1cqw}
.vfo .rec{position:absolute;left:9cqw;top:8cqw;display:flex;align-items:center;gap:1cqw;font-family:var(--mono);font-size:2.2cqw;color:#fff;letter-spacing:.1em}
.vfo .rec::before{content:"";width:1.8cqw;height:1.8cqw;border-radius:50%;background:var(--accent);animation:blink 1.4s steps(1) infinite}
.vfo .set{position:absolute;right:9cqw;bottom:8cqw;font-family:var(--mono);font-size:2.2cqw;color:#fff;letter-spacing:.06em;padding:.8cqw 1.6cqw;border-radius:99px;background:rgba(24,24,24,.55)}

/* e-commerce store */
.v-shop{background:linear-gradient(200deg,#FDEAE7,#fff 60%)}
.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2cqw;margin-top:1cqw}
.shop-grid div{border:1px solid var(--line);border-radius:1.6cqw;padding:1.2cqw;display:flex;flex-direction:column;gap:1cqw}
.shop-grid .im{height:11cqw;border-radius:1.2cqw;background:#F6F5F4}
.shop-grid div:nth-child(2) .im{background:linear-gradient(150deg,#ED3223,#B81E12)}
.shop-grid div:nth-child(3) .im{background:var(--ink)}
.shop-grid div:nth-child(4) .im{background:var(--soft)}
.shop-grid i{height:1.2cqw;border-radius:1cqw;background:#ECE9E6;width:80%}
.shop-grid em{height:1.4cqw;width:45%;border-radius:1cqw;background:var(--accent)}

/* paid ads */
.v-ads{background:linear-gradient(160deg,#F2F0EE,#fff 70%)}
.v-ads .post{left:8cqw;top:9cqw;transform:none;width:44cqw}
.v-ads .post-img{height:22cqw;font-size:4.2cqw}
.v-ads .chart{right:6cqw;bottom:auto;top:30cqw;width:40cqw}
.v-ads .fcard{right:6cqw;top:9cqw}

/* product hero: dash + phone */
.dual{position:relative}
.dual .phone-float{position:absolute;z-index:3;right:-10px;bottom:-26px;width:27%;container-type:inline-size}
.phone-float .phone{position:relative;right:auto;bottom:auto;width:100%;height:auto;aspect-ratio:1/2;border-radius:16cqw;padding:5cqw}
.phone-float .phone-s{border-radius:12cqw;padding:12cqw 8cqw;gap:5cqw}
.phone-float .phone-s .hd b{font-size:11cqw}
.phone-float .phone-s .hd span{width:14cqw;height:14cqw}
.phone-float .phone-s .ln{padding:5cqw;border-radius:6cqw;gap:5cqw}
.phone-float .phone-s .ln::before{width:13cqw;height:13cqw}
.phone-float .phone-s .ln::after{height:5cqw}
.phone-float .phone-s .btn2{height:16cqw;border-radius:6cqw}
.phone-float .phone-s .img{height:40cqw;border-radius:6cqw}
@media (max-width:520px){.dual .phone-float{right:-4px;width:30%}}

/* detail: feature grid */
.fgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.fitem{padding:24px;border-radius:20px;border:1px solid var(--line);background:#fff;transition:border-color .25s,background .25s,transform .25s}
.fitem:hover{border-color:var(--accent);background:#FEF4F2;transform:translateY(-3px)}
.fitem .why-ico{margin-bottom:16px}
.fitem h3{font-family:var(--body);font-size:17px;font-weight:700;letter-spacing:0}
.fitem p{margin-top:6px;font-size:14.5px;line-height:1.6;color:var(--muted)}
@media (max-width:900px){.fgrid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.fgrid{grid-template-columns:1fr}}

/* detail: overview split */
.split2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.split2 h2{font-size:clamp(28px,3.6vw,44px);font-weight:800;margin-top:12px;max-width:17ch}
.split2 .lead{margin-top:14px;color:var(--muted);font-size:clamp(15.5px,1.25vw,17px);max-width:56ch}
.split2 .lead + .lead{margin-top:12px}
.split2 .visual{aspect-ratio:5/4}
.split2 .visual.photo img{transform:none}
@media (max-width:900px){.split2{grid-template-columns:1fr}}

/* tag row in hero */
.tagrow{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.tagrow span{font-size:12.5px;font-weight:600;padding:6px 12px;border-radius:99px;background:#fff;border:1px solid var(--line)}
.tagrow span:first-child{background:var(--soft);color:var(--accent);border-color:transparent}

/* related cards */
.related{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.rel{display:flex;flex-direction:column;gap:12px;padding:24px;border-radius:20px;border:1px solid var(--line);background:#fff;text-decoration:none;color:inherit;transition:border-color .25s,transform .25s,box-shadow .25s}
.rel:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 24px 44px -30px rgba(237,50,35,.55)}
.rel .why-ico{transition:background .25s,color .25s}
.rel:hover .why-ico{background:var(--accent);color:#fff}
.rel h3{font-family:var(--body);font-size:18px;font-weight:700;letter-spacing:0}
.rel p{font-size:14.5px;color:var(--muted)}
.rel .go{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--accent)}
.rel .go svg{width:15px;height:15px}
@media (max-width:900px){.related{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.related{grid-template-columns:1fr}}

/* problem / solution */
.ps{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ps .mv-card ul{margin:16px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.ps .mv-card li{position:relative;padding-left:26px;font-size:15px;line-height:1.5}
.ps .mv-card.dark li{color:#E5E2DF}
.ps .mv-card.dark li::before{content:"×";position:absolute;left:0;top:-1px;color:var(--accent);font-weight:700}
.ps .mv-card:not(.dark) li::before{content:"✓";position:absolute;left:0;top:0;color:var(--accent);font-weight:700}
@media (max-width:820px){.ps{grid-template-columns:1fr}}
