/* Section builder + single-page layouts. Works with both themes (Studio uses --acc, Noir uses --gold). */
:root{--b-acc:var(--acc,var(--gold,#f5a623));--b-card:var(--card,var(--bg,#fff));--b-alt:var(--bg2,#f4f5f7);--b-line:var(--line,#e4e7ec);--b-mut:var(--mut,#566074);--b-r:var(--r,20px)}
.blk{padding:clamp(48px,6.5vw,88px) 0;position:relative;color:var(--blk-tx,inherit)}
.blk.pad-none{padding:0}.blk.pad-s{padding:clamp(24px,3vw,40px) 0}.blk.pad-l{padding:clamp(80px,10vw,140px) 0}
.blk.bg-alt{background:var(--b-alt);border-top:1px solid var(--b-line);border-bottom:1px solid var(--b-line)}
.blk.bg-dark{background:#0d1321;color:var(--blk-tx,#f4f5f7)}
.blk.bg-dark .lead,.blk.bg-dark .prose,.blk.bg-dark p{color:color-mix(in srgb,currentColor 78%,transparent)}
.blk.bg-dark .prose :is(h1,h2,h3,h4,strong,b,a,li,blockquote),.blk.bg-dark :is(h2,h3,.c-head h2){color:inherit}
.blk.bg-dark .prose{color:rgba(255,255,255,.82)}
.blk.tx-custom,.blk.tx-custom :is(.prose,.lead,h1,h2,h3,h4,p,li,strong,b,.eyebrow,figcaption,blockquote,small){color:var(--blk-tx)}
.blk.bg-accent{background:var(--b-acc);color:var(--blk-tx,#1d1300)}
.blk.bg-accent :is(.eyebrow,.lead,.prose,.prose :is(h1,h2,h3,h4,strong,a),h2,h3,p){color:inherit}
.blk.bg-accent .eyebrow::before{background:currentColor}
.blk.bg-accent .it,.blk.bg-accent .hl{background:none;color:inherit;text-decoration:underline;text-decoration-thickness:3px}
.blk.bg-custom{background:var(--blk-bg)}
.blk .wrap.w-narrow{max-width:820px}.blk .wrap.w-wide{max-width:1440px}.blk .wrap.w-full{max-width:none;padding:0 clamp(16px,3vw,40px)}
.blk.al-center{text-align:center}.blk.al-center .c-head,.blk.al-center .lead,.blk.al-center .prose{margin-left:auto;margin-right:auto}
.blk.al-center .c-head{display:flex;flex-direction:column;align-items:center}
.blk.al-center .blk-actions,.blk.al-center .c-stats{justify-content:center}
.blk.al-right{text-align:right}
.blk .c-head{margin-bottom:clamp(22px,3vw,40px)}
.blk .c-head h2{margin-top:10px}
.blk--heading .c-head{margin-bottom:0}
.blk-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.blk-actions:empty{display:none}
.blk-prose,.blk .prose{max-width:none}
.blk .wrap.w-narrow .prose,.blk--text .wrap:not(.w-wide):not(.w-full) .prose{max-width:820px}
.blk.al-center .blk-prose{margin:0 auto}
.blk-cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px)}
.blk-media{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}
.blk-media.img-left .blk-media-img{order:-1}
.blk-media-img img{width:100%;border-radius:var(--b-r);object-fit:cover;aspect-ratio:4/3}
.blk-media .c-head{margin-bottom:16px}
.blk-image img{width:100%;border-radius:var(--b-r)}
.blk-image figcaption,.blk-gallery-grid figcaption,.blk-cap{color:var(--b-mut);font-size:14px;margin-top:10px;text-align:center}
.blk-gallery-grid{display:grid;grid-template-columns:repeat(var(--cols,3),1fr);gap:16px}
.blk-gallery-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:calc(var(--b-r) * .7)}
.blk-logos-title{text-align:center;color:var(--b-mut);font-size:14px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:22px}
.blk-logos-grid{display:grid;grid-template-columns:repeat(var(--cols,5),1fr);gap:22px;align-items:center}
.blk-logos-grid figure{display:flex;align-items:center;justify-content:center;min-height:70px}
.blk-logos-grid img{max-height:54px;width:auto;object-fit:contain;filter:grayscale(1);opacity:.75;transition:.25s}
.blk-logos-grid img:hover{filter:none;opacity:1}
.blk-features{display:grid;grid-template-columns:repeat(var(--cols,3),1fr);gap:18px}
.blk-feature{background:var(--b-card);border:1px solid var(--b-line);border-radius:var(--b-r);padding:26px 24px;text-align:left}
.blk-feature h3{font-size:21px;margin:16px 0 8px;line-height:1.15}
.blk-feature p{color:var(--b-mut);font-size:15.5px}
.blk.bg-dark .blk-feature{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1)}
.blk .c-stats.blk-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;max-width:none}
.blk.al-center .blk-stats{text-align:center}
.blk-quote{max-width:900px;margin:0 auto;text-align:center}
.blk-quote .q{color:var(--b-acc);margin:0 auto 18px}
.blk-quote blockquote{font-size:clamp(22px,2.6vw,34px);line-height:1.3;letter-spacing:-.02em;font-weight:500}
.blk-quote figcaption{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:26px;text-align:left}
.blk-quote figcaption img{width:54px;height:54px;border-radius:50%;object-fit:cover}
.blk-quote figcaption b{display:block}.blk-quote figcaption small{color:var(--b-mut)}
.blk-cta{margin:0}
.blk-form{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);align-items:start}
.blk-form .contact-quick{margin-top:10px}
.blk-video{position:relative;aspect-ratio:16/9;border-radius:var(--b-r);overflow:hidden;background:#000}
.blk-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.blk-hr{border:0;border-top:1px solid var(--b-line)}
.blk-space{height:clamp(20px,4vw,60px)}
.prose h1{font-size:clamp(34px,4vw,52px);letter-spacing:-.04em;line-height:1.05;color:inherit}
.prose .fs-s{font-size:.85em}.prose .fs-l{font-size:1.25em}.prose .fs-xl{font-size:1.6em}.prose .fs-xxl{font-size:2.1em}
.prose img{border-radius:14px;height:auto}
.prose blockquote{border-left:3px solid var(--b-acc);padding-left:18px;font-style:italic}
.prose table{width:100%;border-collapse:collapse}.prose td,.prose th{border:1px solid var(--b-line);padding:8px 10px;text-align:left}
.prose hr{border:0;border-top:1px solid var(--b-line)}
/* single templates */
.case-band .case-img.full{border-radius:0;margin:0}.case-band .case-img.full img{width:100%;max-height:70vh;object-fit:cover;border-radius:0}
.case-cols.stack{grid-template-columns:1fr!important}
.case-body{margin-top:32px}
.svc-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(28px,5vw,64px);align-items:start}
.svc-body:has(>.prose:only-child){grid-template-columns:1fr}
.svc-incl{position:sticky;top:100px;background:var(--b-card);border:1px solid var(--b-line);border-radius:var(--b-r);padding:24px}
.svc-incl h3{font-size:20px;margin-bottom:14px}
.svc-incl ul{list-style:none;display:grid;gap:10px;margin-bottom:20px}
.svc-incl li{display:flex;gap:10px;align-items:flex-start;font-size:15px}
.svc-incl li svg{flex:none;margin-top:4px;color:var(--b-acc)}
.svc-incl .btn{width:100%}
.post-side{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(28px,5vw,64px);align-items:start}
.post-aside{position:sticky;top:100px;display:grid;gap:16px}
.aside-card,.aside-list{background:var(--b-card);border:1px solid var(--b-line);border-radius:var(--b-r);padding:22px;display:grid;gap:12px}
.aside-card p{color:var(--b-mut);font-size:15px}.aside-card .btn{width:100%}
.aside-list a{font-weight:600;font-size:15px;line-height:1.35;padding:8px 0;border-top:1px solid var(--b-line)}
.post.lay-wide .prose{max-width:none}
.hide-m{}
@media(max-width:860px){
  .blk-cols,.blk-media,.blk-form,.svc-body,.post-side{grid-template-columns:1fr}
  .blk-media.img-left .blk-media-img{order:0}
  .blk-features{grid-template-columns:1fr}
  .blk-gallery-grid{grid-template-columns:1fr 1fr}
  .blk-logos-grid{grid-template-columns:repeat(3,1fr)}
  .svc-incl,.post-aside{position:static}
  .blk.hide-m{display:none}
}
@media(min-width:861px){.blk.hide-d{display:none}}
@media(min-width:861px) and (max-width:1100px){.blk-features{grid-template-columns:repeat(min(var(--cols,3),2),1fr)}}

/* ===== v5: buttons, premium design options, new section types ===== */
.blk-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px;align-items:center}
.blk.al-center .blk-actions{justify-content:center}.blk.al-right .blk-actions{justify-content:flex-end}
.btn .b-ico svg,.btn-link .b-ico svg{width:18px;height:18px;display:block}
.btn .b-ico{display:inline-flex}
.btn-light{background:#fff;color:#0d1321;border-color:#fff}
.btn-light:hover{transform:translateY(-2px)}
.btn-link{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:inherit;text-decoration:underline;text-decoration-color:var(--b-acc);text-decoration-thickness:2px;text-underline-offset:4px;background:none;border:0;cursor:pointer;padding:0;font-size:15.5px}
/* heading sizes */
.blk.hs-s .c-head :is(h1,h2){font-size:clamp(26px,3vw,36px)}
.blk.hs-l .c-head :is(h1,h2){font-size:clamp(40px,5.6vw,72px)}
.blk.hs-xl .c-head :is(h1,h2){font-size:clamp(46px,7.4vw,104px);line-height:.95}
/* entrance animations */
.blk.an-none .rv{opacity:1!important;transform:none!important;transition:none}
.blk.an-fade .rv{transform:none}
.blk.an-zoom .rv{transform:scale(.94)}.blk.an-zoom .rv.in{transform:none}
.blk.an-left .rv{transform:translateX(-30px)}.blk.an-left .rv.in{transform:none}
/* gradient + image backgrounds */
.blk.bg-grad{color:var(--blk-tx,#fff)}
.blk.gr-brand{background:linear-gradient(135deg,var(--b-acc),color-mix(in srgb,var(--b-acc) 55%,#e0521f))}
.blk.gr-sunset{background:linear-gradient(135deg,#f5a623,#e0521f 60%,#b8325b)}
.blk.gr-ocean{background:linear-gradient(135deg,#1e40af,#0891b2)}
.blk.gr-night{background:radial-gradient(1200px 500px at 15% 0%,#2b3a67,transparent),linear-gradient(160deg,#0d1321,#1c2335)}
.blk.gr-mint{background:linear-gradient(135deg,#065f46,#10b981);}
.blk.gr-royal{background:linear-gradient(135deg,#3b0764,#7c3aed)}
.blk.gr-soft{background:linear-gradient(180deg,#fff7e6,#ffffff);color:var(--blk-tx,inherit)}
.blk.bg-grad:not(.gr-soft) :is(.eyebrow,.lead,.prose,.prose :is(h1,h2,h3,h4,strong,a),h1,h2,h3,p,small,figcaption){color:inherit}
.blk.bg-grad:not(.gr-soft) .eyebrow::before{background:currentColor}
.blk.has-img{background-image:linear-gradient(rgba(8,10,18,var(--ov,.55)),rgba(8,10,18,var(--ov,.55))),var(--blk-img);background-size:cover;background-position:center;color:var(--blk-tx,#fff)}
.blk.has-img :is(.eyebrow,.lead,.prose,h1,h2,h3,p,small){color:inherit}
.blk.has-img .eyebrow::before{background:currentColor}
.blk.has-img .c-head .it{color:inherit}
.blk.has-mh{min-height:var(--blk-mh);display:flex;align-items:center}
.blk.has-mh.va-top{align-items:flex-start}.blk.has-mh.va-bottom{align-items:flex-end}
.blk.has-mh>.wrap{width:100%}
/* boxed card style */
.blk.boxed>.wrap>.blk-in{background:var(--b-card);border:1px solid var(--b-line);border-radius:calc(var(--b-r) * 1.4);padding:clamp(26px,4.5vw,64px);box-shadow:0 30px 60px -36px rgba(13,19,33,.35)}
.blk.boxed.bg-dark>.wrap>.blk-in{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12)}
.blk.rad-none{--b-r:0px}.blk.rad-s{--b-r:10px}.blk.rad-l{--b-r:32px}
/* hero */
.blk--hero .c-head h1{font-size:clamp(40px,6.4vw,84px);line-height:1;letter-spacing:-.04em;margin:14px 0 18px}
.blk--hero .lead{font-size:clamp(17px,1.6vw,21px);max-width:680px}
.blk--hero.bg-dark,.blk--hero.has-img{color:var(--blk-tx,#fff)}
.blk--hero.bg-dark :is(h1,.lead,.eyebrow){color:inherit}
.blk--hero .it{color:var(--b-acc)}
/* icon boxes variants */
.blk-features.st-plain .blk-feature{background:none;border:0;padding:6px 0}
.blk-features.st-left .blk-feature{display:flex;gap:18px;align-items:flex-start}
.blk-features.st-left .blk-feature h3{margin-top:2px}
.blk-feature .btn-link{margin-top:12px;font-size:14.5px}
.blk.al-center .blk-features:not(.st-left) .blk-feature{text-align:center}
.blk.al-center .blk-features:not(.st-left) .c-ic{margin:0 auto}
/* icon list */
.blk-iconlist{list-style:none;display:grid;grid-template-columns:repeat(var(--cols,2),1fr);gap:14px 28px}
.blk-iconlist li{display:flex;gap:12px;align-items:flex-start;font-size:17px;font-weight:500}
.il-ic{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:color-mix(in srgb,var(--b-acc) 18%,transparent);color:var(--b-acc)}
.il-ic svg{width:17px;height:17px}
/* image cards */
.blk-cards{display:grid;grid-template-columns:repeat(var(--cols,3),1fr);gap:20px}
.blk-card{background:var(--b-card);border:1px solid var(--b-line);border-radius:var(--b-r);overflow:hidden;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}
.blk-card:hover{transform:translateY(-4px);box-shadow:0 24px 40px -24px rgba(13,19,33,.35)}
.blk-card-img img{width:100%;aspect-ratio:16/10;object-fit:cover}
.blk-card-img .vp-addimg{margin:0;border-radius:0;min-height:160px}
.blk-card-body{padding:22px;display:grid;gap:8px;text-align:left}
.blk-card-body h3{font-size:21px;line-height:1.15}.blk-card-body p{color:var(--b-mut);font-size:15.5px}
/* steps */
.blk-steps{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px;counter-reset:s}
.blk-steps li{position:relative;padding:24px;border-radius:var(--b-r);background:var(--b-card);border:1px solid var(--b-line);text-align:left}
.blk-steps .n{font-family:var(--mono,monospace);font-size:13px;font-weight:700;color:var(--b-acc);letter-spacing:.1em}
.blk-steps h3{font-size:21px;margin:10px 0 6px}.blk-steps p{color:var(--b-mut);font-size:15.5px}
/* progress */
.blk-progress{display:grid;gap:18px;max-width:820px}
.blk.al-center .blk-progress{margin:0 auto}
.pg-top{display:flex;justify-content:space-between;font-weight:600;margin-bottom:8px}
.pg-bar{height:10px;border-radius:99px;background:color-mix(in srgb,currentColor 12%,transparent);overflow:hidden}
.pg-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--b-acc),color-mix(in srgb,var(--b-acc) 60%,#e0521f));transform-origin:left;transform:scaleX(0);transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.pg.go .pg-bar i,body.vp-on .pg-bar i{transform:none}
/* pricing */
.blk-pricing{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;align-items:stretch}
.plan{position:relative;background:var(--b-card);border:1px solid var(--b-line);border-radius:calc(var(--b-r) * 1.2);padding:30px 26px;display:flex;flex-direction:column;gap:10px;text-align:left}
.plan.featured{border:2px solid var(--b-acc);box-shadow:0 30px 60px -30px color-mix(in srgb,var(--b-acc) 70%,transparent);transform:translateY(-6px)}
.plan-badge{position:absolute;top:-13px;left:24px;background:var(--b-acc);color:#1d1300;font-size:12px;font-weight:800;padding:5px 12px;border-radius:99px;letter-spacing:.04em}
.plan h3{font-size:22px}.plan-desc{color:var(--b-mut);font-size:15px}
.plan-price{display:flex;align-items:baseline;gap:6px;margin:6px 0 8px}.plan-price b{font-size:44px;letter-spacing:-.03em;line-height:1}.plan-price span{color:var(--b-mut)}
.plan ul{list-style:none;display:grid;gap:10px;margin-bottom:18px;flex:1}
.plan li{display:flex;gap:10px;align-items:flex-start;font-size:15.5px}.plan li svg{width:17px;height:17px;flex:none;margin-top:3px;color:var(--b-acc)}
.plan .btn{width:100%}
/* tabs */
.tb-list{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--b-line);margin-bottom:24px}
.tb-list button{all:unset;cursor:pointer;padding:12px 18px;font-weight:700;border-bottom:3px solid transparent;margin-bottom:-1px;color:var(--b-mut)}
.tb-list button.on{color:inherit;border-color:var(--b-acc)}
.tb-panel{display:none}.tb-panel.on{display:block}
body.vp-on .tb-panel{display:block;border-top:1px dashed var(--b-line);padding-top:12px;margin-top:12px}
/* reviews + stars */
.blk-stars{color:#f5a623;font-size:20px;letter-spacing:2px;margin-bottom:12px}.blk-stars span{color:color-mix(in srgb,currentColor 25%,transparent)}
.blk-quote .blk-stars{text-align:center}
.blk-reviews{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.rev{background:var(--b-card);border:1px solid var(--b-line);border-radius:var(--b-r);padding:26px;text-align:left;display:flex;flex-direction:column}
.rev blockquote{font-size:17px;line-height:1.55;flex:1}
.rev figcaption{margin-top:16px;display:grid}.rev figcaption small{color:var(--b-mut)}
/* team */
.blk-team{display:grid;grid-template-columns:repeat(var(--cols,4),1fr);gap:20px}
.member{text-align:center}.m-img img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--b-r)}
.m-img .vp-addimg{min-height:200px;margin:0}
.member figcaption{margin-top:12px;display:grid}.member small{color:var(--b-mut)}
/* contact cards */
.blk-contact{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.cc{background:var(--b-card);border:1px solid var(--b-line);border-radius:var(--b-r);padding:22px;display:grid;gap:6px;transition:transform .2s;text-align:left}
.cc:hover{transform:translateY(-3px)}.cc small{color:var(--b-mut);font-size:13px;margin-top:8px}.cc b{font-size:16px;word-break:break-word}
/* map */
.blk-map{border-radius:var(--b-r);overflow:hidden;background:#e5e7eb}.blk-map iframe{width:100%;height:100%;border:0}
.blk-space.sz-s{height:20px}.blk-space.sz-l{height:clamp(60px,9vw,120px)}
/* editor-only */
.vp-hint{display:none}
body.vp-on .vp-hint{display:block;margin-top:14px;padding:10px 14px;border:1px dashed currentColor;border-radius:10px;font:600 13px system-ui,sans-serif;opacity:.75}
body.vp-on .blk.is-hidden{opacity:.4;filter:grayscale(.6)}
body.vp-on [data-vp-icon]{cursor:pointer;outline:1.5px dashed rgba(124,58,237,.7);outline-offset:3px}
body.vp-on [data-vp-icon]:hover{outline-style:solid}
@media(max-width:860px){
  .blk-iconlist,.blk-cards,.blk-team{grid-template-columns:1fr 1fr}
  .blk-cards{grid-template-columns:1fr}
  .plan.featured{transform:none}
  .blk.has-mh{min-height:min(var(--blk-mh),90vh)}
}
@media(max-width:520px){.blk-iconlist{grid-template-columns:1fr}.blk-team{grid-template-columns:1fr 1fr}}
/* cards inside dark / gradient / photo sections */
.blk:is(.bg-dark,.bg-grad:not(.gr-soft),.has-img,.bg-accent) :is(.rev,.plan,.blk-card,.blk-steps li,.cc,.blk-feature){background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);color:inherit}
.blk:is(.bg-dark,.bg-grad:not(.gr-soft),.has-img) :is(.rev small,.plan-desc,.plan-price span,.blk-card-body p,.blk-steps p,.cc small,.blk-feature p,.member small){color:rgba(255,255,255,.72)}
.blk.bg-accent :is(.rev,.plan,.blk-card,.blk-steps li,.cc,.blk-feature){background:rgba(255,255,255,.35);border-color:rgba(0,0,0,.08)}
.m-init{width:100%;aspect-ratio:1;border-radius:var(--b-r);display:grid;place-items:center;font-size:52px;font-weight:800;color:var(--b-acc);background:color-mix(in srgb,var(--b-acc) 14%,transparent)}
