/* ============================================================
   DIGIBRO v5 - light editorial layout (WordPress build)
   Source of truth: homev5.html. Mega menu removed by decision.
   Token layer is bound to Elementor Global Colors (kit 14).
   ============================================================ */
/* Declared on :root AND body: Elementor writes its global colours on
   .elementor-kit-14, which sits on <body>, so the token layer has to be
   defined there too for var(--e-global-color-*) to resolve. */
:root,body{
  /* Elementor kit 14 global colours are the single control point.
     Site Settings -> Global Colors changes every one of these. */
  --blue:var(--e-global-color-primary,#0600F0);        /* Digibro Blue */
  --blue-deep:var(--e-global-color-secondary,#0400A8); /* Blue Deep */
  --blue-soft:var(--e-global-color-dgbls,#EFEEFF);
  --blue-soft-2:var(--e-global-color-dgbl2,#DEDCFF);
  --grey:var(--e-global-color-dggrey,#8A8A95);
  --ink:var(--e-global-color-dgink,#0B0B12);
  --white:#fff;
  --accent:var(--e-global-color-accent,#0A9F6E);       /* Accent Green */
  --accent-deep:var(--e-global-color-dgacd,#07805A);
  --accent-soft:var(--e-global-color-dgacs,#E6F6F0);
  --paper:var(--e-global-color-dgwht,#ffffff);
  --paper-2:var(--e-global-color-dgpp2,#F7F8FA);
  --paper-3:var(--e-global-color-dgpp3,#EEF0F4);
  --line:var(--e-global-color-dgline,#E4E6EC);
  --line-dark:rgba(255,255,255,.15);
  --body:var(--e-global-color-text,#4C4C58);           /* Body */
  --body-dark:rgba(255,255,255,.74);
  --font:"Helvetica Neue",Helvetica,Inter,Arial,system-ui,sans-serif;
  --r:12px; --r-sm:8px; --r-lg:16px;
  --shadow:0 1px 2px rgba(11,11,18,.05),0 8px 24px rgba(11,11,18,.06);
  --shadow-lg:0 18px 46px rgba(11,11,18,.13);
  --wrap:1180px; --pad:clamp(1.15rem,4vw,2.5rem); --sec:clamp(3.5rem,6.5vw,5.75rem);
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:92px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--paper);
  font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg,video{max-width:100%;display:block;height:auto}
.digibro-page ul,.digibro-page ol,.site-foot ul,#hdr ul{margin:0;padding:0;list-style:none}
a{color:inherit}
button{font:inherit;color:inherit}
.digibro-page p{margin:0}
[hidden]{display:none!important}

.digibro-page h1,.digibro-page h2,.digibro-page h3,.digibro-page h4,.site-foot h4{margin:0;font-weight:700;letter-spacing:-.026em;line-height:1.15}
.digibro-page h1{font-size:clamp(2.05rem,1.5rem + 1.9vw,3.3rem);line-height:1.08}
.digibro-page h2{font-size:clamp(1.55rem,1.25rem + 1.15vw,2.25rem)}
.digibro-page h3{font-size:clamp(1.02rem,.97rem + .25vw,1.16rem);letter-spacing:-.015em}
.digibro-page h4{font-size:.95rem}
.lede{color:var(--body);font-size:clamp(1rem,.97rem + .22vw,1.12rem);max-width:60ch}
.dark .lede{color:var(--body-dark)}
.eyebrow{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent-deep);background:var(--accent-soft);padding:.35rem .65rem;border-radius:999px;margin-bottom:1rem}
.dark .eyebrow{color:#fff;background:rgba(255,255,255,.12)}
.wrap{width:min(100% - var(--pad)*2,var(--wrap));margin-inline:auto}
.sec{padding-block:var(--sec)}
.dark{background:var(--ink);color:#fff}
.tint{background:var(--paper-2)}
.head{max-width:66ch;margin-bottom:clamp(1.9rem,3.5vw,2.75rem)}
.head.center{margin-inline:auto;text-align:center}
.head p{margin-top:.85rem}
.head.center .lede{margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:.5rem;top:-100px;z-index:300;background:var(--blue);color:#fff;padding:.7rem 1rem;border-radius:var(--r-sm);font-weight:700}
.skip:focus{top:.5rem}
.digibro-page :focus-visible,#hdr :focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.dark :focus-visible{outline-color:#fff}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  background:var(--blue);color:#fff;text-decoration:none;font-weight:600;font-size:.94rem;
  padding:.8rem 1.35rem;min-height:48px;border:1px solid transparent;border-radius:var(--r-sm);cursor:pointer;
  transition:background .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease),border-color .18s}
.btn:hover{background:var(--blue-deep);box-shadow:0 8px 20px rgba(6,0,240,.22);transform:translateY(-1px);color:#fff}
.btn:active{transform:none}
.btn-accent{background:var(--accent)}
.btn-accent:hover{background:var(--accent-deep);box-shadow:0 8px 20px rgba(10,159,110,.26)}
.btn-outline{background:transparent;color:var(--blue);border-color:#C9C6FF}
.btn-outline:hover{background:var(--blue-soft);color:var(--blue-deep);box-shadow:none}
.btn-soft{background:var(--paper-3);color:var(--ink);border-color:transparent}
.btn-soft:hover{background:#E4E7ED;box-shadow:none;color:var(--ink)}
.dark .btn-outline{color:#fff;border-color:rgba(255,255,255,.35)}
.dark .btn-outline:hover{background:rgba(255,255,255,.12);color:#fff}
.btn-sm{padding:.55rem 1rem;min-height:42px;font-size:.87rem}
.btn-lg{padding:.95rem 1.7rem;min-height:54px;font-size:1rem}
.btns{display:flex;flex-wrap:wrap;gap:.7rem}
.tlink{display:inline-flex;align-items:center;gap:.35rem;color:var(--blue);font-weight:600;font-size:.88rem;text-decoration:none}
.tlink::after{content:"\2192";transition:transform .18s var(--ease)}
.tlink:hover::after{transform:translateX(3px)}

/* header */
.top{background:var(--ink);color:#fff;font-size:.8rem;text-align:center;padding:.55rem var(--pad)}
.top a{color:#8CE8C4;font-weight:600}
#hdr{position:sticky;top:0;z-index:120;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.admin-bar #hdr{top:32px}
@media (max-width:782px){.admin-bar #hdr{top:46px}}
#hdr .nav{display:flex;align-items:center;gap:1rem;min-height:70px}
.brand{display:flex;align-items:center;text-decoration:none;font-weight:700;color:var(--ink)}
/* the Digibro lockup is a two-line mark, so it needs more height than a
   single-line wordmark would at the same optical size */
#hdr .brand img{height:40px;width:auto}
/* #hdr ul in the reset above outranks a bare .mainnav rule, so the
   auto margin that pushes the nav to the right has to match it */
#hdr .mainnav{display:flex;align-items:center;gap:.1rem;margin-left:auto}
.mainnav{display:flex;align-items:center;gap:.1rem;margin-left:auto}
.mainnav>li{position:relative}
.mainnav>li>a{display:inline-flex;align-items:center;gap:.35rem;background:none;border:0;cursor:pointer;
  color:#2C2C38;text-decoration:none;font-weight:600;font-size:.9rem;padding:.6rem .7rem;border-radius:var(--r-sm)}
.mainnav>li>a:hover,.mainnav>li.open>a,.mainnav>li.current-menu-item>a,.mainnav>li.current-menu-ancestor>a{color:var(--blue);background:var(--blue-soft)}
.caret{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg) translateY(-2px);transition:transform .2s var(--ease)}
.mainnav>li.open .caret{transform:rotate(-135deg) translateY(-2px)}
.mainnav .sub{position:absolute;left:0;top:calc(100% + .4rem);min-width:262px;background:#fff;
  border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-lg);padding:.45rem;
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .16s var(--ease),transform .16s var(--ease),visibility .16s;z-index:130}
.mainnav li.open>.sub{opacity:1;visibility:visible;transform:none}
.mainnav .sub a{display:block;padding:.6rem .7rem;border-radius:var(--r-sm);font-size:.9rem;font-weight:600;
  color:#2C2C38;text-decoration:none}
.mainnav .sub a:hover{background:var(--blue-soft);color:var(--blue)}
.nav-side{display:flex;align-items:center;gap:.55rem;margin-left:.7rem}
.burger{display:none;margin-left:auto;background:none;border:1px solid var(--line);width:46px;height:46px;
  align-items:center;justify-content:center;cursor:pointer;border-radius:var(--r-sm)}
.burger i{display:block;width:19px;height:2px;background:var(--ink);position:relative}
.burger i::before,.burger i::after{content:"";position:absolute;left:0;width:19px;height:2px;background:var(--ink)}
.burger i::before{top:-6px}.burger i::after{top:6px}
@media (max-width:1080px){#hdr .mainnav,.mainnav,.nav-side{display:none}.burger{display:flex}}

/* drawer */
#drawer{position:fixed;inset:0;z-index:140;background:#fff;padding:4.6rem var(--pad) 3rem;display:none;overflow-y:auto}
#drawer[data-open="true"]{display:block}
#drawer .d-x{position:absolute;top:1rem;right:var(--pad);width:46px;height:46px;background:none;border:1px solid var(--line);
  font-size:1.4rem;cursor:pointer;border-radius:var(--r-sm)}
#drawer .d-group>button{width:100%;display:flex;justify-content:space-between;align-items:center;background:none;border:0;
  border-bottom:1px solid var(--line);padding:.95rem 0;font-size:1.05rem;font-weight:700;cursor:pointer;text-align:left}
#drawer .d-group>div{display:none;padding:.4rem 0 .9rem}
#drawer .d-group[data-open="true"]>div{display:block}
#drawer .d-group a{display:block;padding:.45rem 0;color:var(--body);text-decoration:none;font-size:.95rem}
#drawer>a{display:block;padding:.95rem 0;border-bottom:1px solid var(--line);font-size:1.05rem;font-weight:700;text-decoration:none}
#drawer .btn{width:100%;margin-top:1.3rem}

/* hero */
.hero{background:linear-gradient(180deg,#F7F8FF 0%,#fff 72%);padding-block:clamp(2.5rem,5vw,4.25rem) clamp(2rem,4vw,3.25rem);
  border-bottom:1px solid var(--line)}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(1.8rem,4vw,3.2rem);align-items:center}
@media (max-width:940px){.hero-grid{grid-template-columns:1fr}}
.hero h1 span{color:var(--blue)}
.hero .lede{margin:1.05rem 0 1.6rem}
.quickform{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.7rem;max-width:520px}
.quickform input{flex:1 1 240px;font:inherit;font-size:.95rem;padding:.8rem .95rem;min-height:48px;
  border:1px solid var(--line);border-radius:var(--r-sm);background:#fff}
.quickform input:focus{border-color:var(--blue);outline:2px solid var(--blue-soft-2);outline-offset:0}
.microcopy{font-size:.83rem;color:var(--grey)}
.hero-trust{display:flex;flex-wrap:wrap;gap:1.1rem;margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid var(--line)}
.hero-trust li{display:flex;align-items:center;gap:.45rem;font-size:.86rem;font-weight:600;color:var(--body)}
.hero-trust svg{width:17px;height:17px;color:var(--accent)}
.media-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow:hidden}
.media-card .vid-frame{position:relative;aspect-ratio:16/9;background:#0B0B12}
.media-card .cap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.1rem;border-top:1px solid var(--line)}
.media-card .cap b{font-size:.93rem}
.media-card .cap span{font-size:.8rem;color:var(--grey);display:block}
.vid-frame img,.vid-frame iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0}
.vid-play{position:absolute;inset:0;width:100%;height:100%;background:rgba(11,11,18,.18);border:0;cursor:pointer;display:grid;place-items:center;transition:background .2s}
.vid-play:hover{background:rgba(11,11,18,.32)}
.vid-play .disc{width:62px;height:62px;border-radius:50%;background:#fff;color:var(--blue);display:grid;place-items:center;box-shadow:0 8px 24px rgba(0,0,0,.28);transition:transform .2s var(--ease)}
.vid-play:hover .disc{transform:scale(1.07)}
.vid-play .disc svg{width:24px;height:24px;margin-left:3px}

/* strip */
.strip{border-bottom:1px solid var(--line);background:#fff}
.strip .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.6rem;padding-block:1.1rem}
.strip b{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--grey)}
.strip li{font-size:.9rem;font-weight:600;color:#33333F}

/* cards */
.grid{display:grid;gap:1.05rem}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media (max-width:980px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.g2,.g3,.g4{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.5rem;
  display:flex;flex-direction:column;gap:.6rem;height:100%;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#CFCFE0}
.card p{color:var(--body);font-size:.94rem}
.dark .card{background:rgba(255,255,255,.05);border-color:var(--line-dark)}
.dark .card p{color:var(--body-dark)}
.ic{width:44px;height:44px;border-radius:var(--r-sm);background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;margin-bottom:.3rem}
.ic svg{width:21px;height:21px}
.ic.green{background:var(--accent-soft);color:var(--accent-deep)}
.card .tags{margin-top:auto;padding-top:.85rem;font-size:.78rem;color:var(--grey);font-weight:500}
.card .tlink{margin-top:auto;padding-top:.85rem}
.num{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--blue);color:#fff;
  font-size:.85rem;font-weight:700;letter-spacing:.02em;margin-bottom:.4rem}
.num.g{background:var(--accent)}
.dark .num{background:var(--accent)}

/* tiles */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem}
@media (max-width:900px){.tiles{grid-template-columns:repeat(3,1fr)}}
@media (max-width:600px){.tiles{grid-template-columns:repeat(2,1fr)}}
.tile{display:flex;align-items:center;gap:.6rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
  padding:.85rem .9rem;font-size:.87rem;font-weight:600;transition:border-color .18s,background .18s}
.tile:hover{border-color:var(--blue);background:var(--blue-soft)}
.tile svg{width:17px;height:17px;color:var(--accent-deep);flex:0 0 auto}

/* work */
.work{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.work:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.work-img{position:relative;overflow:hidden;background:var(--paper-2);border-bottom:1px solid var(--line)}
.work-img img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top center;transition:transform .5s var(--ease)}
.work:hover .work-img img{transform:scale(1.04)}
.work-cat{position:absolute;left:.7rem;top:.7rem;background:#fff;color:var(--ink);font-size:.7rem;font-weight:700;
  padding:.3rem .6rem;border-radius:999px;box-shadow:var(--shadow)}
.work-b{padding:1.2rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.work-b dl{margin:0;display:grid;gap:.3rem}
.work-b dt{font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--grey)}
.work-b dd{margin:0;font-size:.91rem;color:var(--body)}
.filters{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1.4rem}
.filters button{background:#fff;border:1px solid var(--line);border-radius:999px;padding:.5rem 1rem;min-height:42px;
  font-weight:600;font-size:.86rem;cursor:pointer;transition:background .18s,color .18s,border-color .18s}
.filters button:hover{border-color:var(--blue);color:var(--blue)}
.filters button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}

/* video grid */
.vid{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.vid:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.vid .vid-frame{aspect-ratio:16/9;position:relative;background:#0B0B12}
.vid-b{padding:1rem 1.1rem}
.vid-b h3{font-size:.98rem}
.vid-b p{font-size:.83rem;color:var(--grey);margin-top:.25rem}

/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.05rem}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.steps{grid-template-columns:1fr}}

/* audit */
.audit{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(1.6rem,4vw,3rem);align-items:start}
@media (max-width:900px){.audit{grid-template-columns:1fr}}
.checklist{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:1.3rem}
@media (max-width:520px){.checklist{grid-template-columns:1fr}}
.checklist li{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;color:var(--body)}
.checklist svg{width:16px;height:16px;color:var(--accent);flex:0 0 auto}
form.lead{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);
  padding:clamp(1.4rem,3vw,2rem);display:grid;gap:.9rem}
.step-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.step-count{font-size:.75rem;font-weight:600;color:var(--grey)}
.bar{height:5px;background:var(--paper-3);border-radius:999px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .35s var(--ease)}
.fstep{display:grid;gap:.9rem}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
@media (max-width:560px){.f2{grid-template-columns:1fr}}
.field{display:grid;gap:.3rem}
.field label{font-size:.82rem;font-weight:600}
.field input,.field select,.field textarea{font:inherit;font-size:.95rem;padding:.75rem .85rem;border:1px solid var(--line);
  border-radius:var(--r-sm);background:#fff;color:var(--ink);min-height:48px;width:100%}
.field textarea{min-height:96px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);outline:2px solid var(--blue-soft-2)}
.form-msg{font-weight:600;font-size:.89rem;padding:.7rem .9rem;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent-deep);display:none}
.form-msg[data-show="true"]{display:block}

/* plans */
.plan{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.7rem;display:flex;flex-direction:column;gap:.6rem;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.plan:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.plan.featured{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.plan .who{font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-deep)}
.plan h3{font-size:1.35rem}
.plan p{color:var(--body);font-size:.93rem}
.ticks{display:grid;gap:.45rem;margin:.7rem 0 1.1rem}
.ticks li{position:relative;padding-left:1.6rem;font-size:.92rem;color:var(--body)}
.ticks li::before{content:"";position:absolute;left:0;top:.36em;width:16px;height:16px;border-radius:50%;background:var(--accent-soft)}
.ticks li::after{content:"";position:absolute;left:5px;top:.62em;width:5px;height:8px;border-right:2px solid var(--accent-deep);
  border-bottom:2px solid var(--accent-deep);transform:rotate(40deg)}
.dark .ticks li{color:var(--body-dark)}
.dark .ticks li::before{background:rgba(10,159,110,.25)}
.dark .ticks li::after{border-color:#6EE7B7}
.plan .btn{margin-top:auto}

/* founder */
.founder{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(1.6rem,4vw,3rem);align-items:center}
@media (max-width:860px){.founder{grid-template-columns:1fr}}
.founder-card{background:var(--blue);color:#fff;border-radius:var(--r-lg);padding:clamp(1.5rem,3.5vw,2.2rem);display:grid;gap:.45rem}
.founder-card img{width:80px;margin-bottom:.5rem}
.founder-card .role{font-size:.78rem;font-weight:600;opacity:.85}
.skills{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.2rem}
.skills li{border:1px solid var(--line-dark);border-radius:999px;padding:.4rem .8rem;font-size:.83rem;font-weight:500}

/* posts */
.post{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.4rem;display:flex;flex-direction:column;gap:.5rem;
  text-decoration:none;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.post:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.post .cat{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-deep)}
.post h3{font-size:1.04rem;line-height:1.35}
.post p{font-size:.9rem;color:var(--body)}
.post .tlink{margin-top:auto;padding-top:.7rem}

/* faq */
.faq{max-width:860px;margin-inline:auto}
.faq details{border:1px solid var(--line);border-radius:var(--r);margin-bottom:.6rem;background:#fff;transition:border-color .18s}
.faq details[open]{border-color:#CFCFE0;box-shadow:var(--shadow)}
.faq summary{cursor:pointer;list-style:none;padding:1rem 3rem 1rem 1.2rem;font-weight:600;font-size:.99rem;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--blue)}
.faq summary::after{content:"";position:absolute;right:1.2rem;top:1.35rem;width:9px;height:9px;
  border-right:2px solid var(--blue);border-bottom:2px solid var(--blue);transform:rotate(45deg);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(-135deg);top:1.5rem}
.faq .ans{padding:0 1.2rem 1.15rem;color:var(--body);font-size:.95rem;max-width:74ch}

/* final cta */
.final{background:var(--ink);color:#fff;text-align:center}
.final .lede{color:var(--body-dark);margin-inline:auto}
.final .eyebrow{color:#fff;background:rgba(255,255,255,.12)}
.final .btn-outline{color:#fff;border-color:rgba(255,255,255,.4)}
.final .btn-outline:hover{background:rgba(255,255,255,.14);color:#fff}
.final :focus-visible{outline-color:#fff}
.final .btns{justify-content:center;margin-top:1.6rem}

/* footer */
.site-foot{background:#fff;border-top:1px solid var(--line);padding-block:clamp(2.6rem,5vw,3.75rem) 0}
.foot-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:1.8rem}
@media (max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.foot-grid{grid-template-columns:1fr}}
.site-foot h4{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--grey);margin-bottom:.9rem;font-weight:700}
.site-foot ul{display:grid;gap:.5rem}
.site-foot a{color:var(--body);text-decoration:none;font-size:.91rem}
.site-foot a:hover{color:var(--blue)}
.site-foot .btn{color:#fff}
.foot-brand img{width:104px;margin-bottom:.9rem}
.foot-brand p{color:var(--body);font-size:.91rem;max-width:34ch;margin:0}
.foot-fw{font-size:.78rem;font-weight:600;color:var(--accent-deep);margin-top:.9rem}
.social{display:flex;gap:.5rem;margin-top:1rem}
.social a{width:40px;height:40px;border:1px solid var(--line);border-radius:var(--r-sm);display:grid;place-items:center;color:var(--body)}
.social a:hover{border-color:var(--blue);color:var(--blue)}
.social svg{width:17px;height:17px}
.legal{border-top:1px solid var(--line);margin-top:2.4rem;padding-block:1.2rem;display:flex;flex-wrap:wrap;gap:.8rem;
  justify-content:space-between;font-size:.84rem;color:var(--grey)}

/* mobile sticky cta removed 2026-09-12 (was .mobile-cta: Free audit + WhatsApp) */
.mobile-cta{display:none!important}

/* reveal */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
#progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--accent);z-index:200;transition:width .1s linear}

/* ============================================================
   WordPress / Astra / Elementor integration layer
   Only neutralises theme + builder wrappers so the v5 rules
   above stay in charge. No new design decisions here.
   ============================================================ */
.ast-container,.site-content .ast-container{max-width:none;padding:0;margin:0}
#content.site-content,#primary,.entry-content{margin:0;padding:0;max-width:none;width:100%}
.ast-separate-container #primary,.ast-plain-container #primary{margin:0;padding:0}
.ast-separate-container .ast-article-single{padding:0;background:none;border:0}
.page .entry-header,.ast-single-post .entry-header{display:none}
body.elementor-page .site-content>.ast-container{max-width:none}
.digibro-page .e-con,.digibro-page .e-con-inner{max-width:none;width:100%;padding:0;margin:0;display:block;
  --container-default-padding-top:0px;--container-default-padding-right:0px;
  --container-default-padding-bottom:0px;--container-default-padding-left:0px}
/* the reset above also zeroes the v5 section rhythm - restore it at the
   same weight, values unchanged from .sec / .hero */
.digibro-page .e-con.sec{padding-block:var(--sec)}
.digibro-page .e-con.hero{padding-block:clamp(2.5rem,5vw,4.25rem) clamp(2rem,4vw,3.25rem)}
/* the inner container IS the .wrap - it keeps the 1180px measure */
.digibro-page .e-con.wrap,.digibro-page .e-con.wrap>.e-con-inner{width:min(100% - var(--pad)*2,var(--wrap));margin-inline:auto}
/* two .wrap variants are themselves grids in v5 */
.digibro-page .e-con.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(1.8rem,4vw,3.2rem);align-items:center}
.digibro-page .e-con.audit{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(1.6rem,4vw,3rem);align-items:start}
@media (max-width:940px){.digibro-page .e-con.hero-grid{grid-template-columns:1fr}}
@media (max-width:900px){.digibro-page .e-con.audit{grid-template-columns:1fr}}
.digibro-page .elementor-widget-html>.elementor-widget-container{display:contents}
/* Inside the two grid containers the HTML widget itself must dissolve too,
   otherwise the widget is the only grid item and column 2 stays empty. */
.digibro-page .e-con.hero-grid>.elementor-widget-html,
.digibro-page .e-con.audit>.elementor-widget-html{display:contents}
.digibro-page .elementor-widget{width:100%}
.digibro-page .elementor-element{--widgets-spacing:0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px}
.site-footer,.ast-small-footer,footer.site-footer{display:none!important}
.ast-main-header-wrap,#masthead>.ast-main-header-wrap,.site-header{display:none!important}

/* The Elementor kit writes body colour and link colour on .elementor-kit-14,
   which outranks a bare body{} rule. These re-assert the v5 values at the
   same weight without !important. Colours still come from Global Colors. */
body.digibro-page{color:var(--ink);font-family:var(--font);background:var(--paper)}
body.digibro-page a{color:inherit;text-decoration:none}
/* Astra's .ast-single-post .entry-content a underlines every link on
   singular views and outranks the rule above - match its weight. */
body.digibro-page .entry-content a,body.digibro-page .site-foot a,body.digibro-page #hdr a{text-decoration:none}
body.digibro-page .lede{color:var(--body)}
body.digibro-page .dark .lede,body.digibro-page .final .lede{color:var(--body-dark)}
body.digibro-page .card p,body.digibro-page .plan p,body.digibro-page .post p{color:var(--body)}
body.digibro-page h1,body.digibro-page h2,body.digibro-page h3,body.digibro-page h4{color:inherit}
body.digibro-page .btn{color:#fff}
body.digibro-page .btn-outline{color:var(--blue)}
body.digibro-page .btn-soft{color:var(--ink)}
body.digibro-page .dark .btn-outline,body.digibro-page .final .btn-outline{color:#fff}
body.digibro-page .tlink,body.digibro-page .mainnav .sub a:hover{color:var(--blue)}
body.digibro-page .site-foot a{color:var(--body)}
body.digibro-page .site-foot a:hover{color:var(--blue)}
/* the footer's CTA is a button, not a footer link - keep it white on blue */
body.digibro-page .site-foot a.btn,body.digibro-page .site-foot a.btn:hover{color:#fff}
body.digibro-page .site-foot a.btn-outline{color:var(--blue)}
/* Astra's scroll-to-top bubble is not part of the v5 design */
#ast-scroll-top,.ast-scroll-top-icon,#ast-scroll-top-wrap{display:none!important}

/* Astra and the Elementor kit both style bare <button> elements (the kit
   paints them Digibro Blue). Every v5 button that is not a .btn has to
   re-declare its own background at the same weight. */
body.digibro-page .vid-play{background:rgba(11,11,18,.18);border:0;padding:0}
body.digibro-page .vid-play:hover{background:rgba(11,11,18,.32)}
body.digibro-page .filters button{background:#fff;color:var(--ink);border:1px solid var(--line)}
body.digibro-page .filters button:hover{border-color:var(--blue);color:var(--blue)}
body.digibro-page .filters button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
body.digibro-page .burger{background:none;color:var(--ink);border:1px solid var(--line)}
body.digibro-page #drawer .d-x{background:none;color:var(--ink);border:1px solid var(--line)}
body.digibro-page #drawer .d-group>button{background:none;color:var(--ink);border:0;border-bottom:1px solid var(--line)}
body.digibro-page .top a{color:#8CE8C4}

/* ============================================================
   NATIVE WIDGET BRIDGE
   The About page (48) is built from Elementor Free + Crocoblock
   widgets only - no HTML widget. Elementor Free has no per-widget
   custom CSS, so the v5 look is attached through CSS classes set
   in Advanced -> CSS Classes. Container classes are prefixed
   nothing (they reuse v5 names); widget classes are prefixed dw-.
   Values are copied from the v5 components above - no new
   colours, radii or spacing scales.
   ============================================================ */
/* --- containers (must outrank the .digibro-page .e-con reset) --- */
.digibro-page .e-con.head{max-width:66ch;margin-bottom:clamp(1.9rem,3.5vw,2.75rem)}
.digibro-page .e-con.grid{display:grid;gap:1.05rem}
.digibro-page .e-con.grid.g2{grid-template-columns:repeat(2,1fr)}
.digibro-page .e-con.grid.g3{grid-template-columns:repeat(3,1fr)}
.digibro-page .e-con.grid.g4{grid-template-columns:repeat(4,1fr)}
@media (max-width:980px){.digibro-page .e-con.grid.g3,.digibro-page .e-con.grid.g4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.digibro-page .e-con.grid.g2,.digibro-page .e-con.grid.g3,.digibro-page .e-con.grid.g4{grid-template-columns:1fr}}
.digibro-page .e-con.card{display:flex;flex-direction:column;gap:.6rem;height:100%;
  background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.5rem;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s}
.digibro-page .e-con.card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#CFCFE0}
.digibro-page .e-con.card.quiet{background:var(--paper-2);border-style:dashed}
.digibro-page .e-con.btns{display:flex;flex-direction:row;flex-wrap:wrap;gap:.7rem;width:auto}
.digibro-page .e-con.btns>.elementor-widget{width:auto}
/* widget spacing: Elementor's --widgets-spacing is zeroed by the reset, so the
   stacking containers carry the rhythm themselves */
.digibro-page .e-con.col,.digibro-page .e-con.head{display:flex;flex-direction:column;align-items:flex-start;gap:.95rem}
.digibro-page .final .e-con.wrap{display:flex;flex-direction:column;align-items:center;gap:1rem}
.digibro-page .e-con.col>.e-con.btns,.digibro-page .final .e-con.btns{margin-top:.7rem}

/* --- widgets --- */
.digibro-page .dw-eyebrow .elementor-heading-title{display:inline-block;font-size:.72rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--accent-deep);background:var(--accent-soft);
  padding:.35rem .65rem;border-radius:999px;line-height:1.4}
.digibro-page .final .dw-eyebrow .elementor-heading-title{color:#fff;background:rgba(255,255,255,.12)}
/* Elementor 4 ships optimized DOM output - there is NO .elementor-widget-container
   wrapper any more, so widget bridges target the widget element itself. */
.digibro-page .dw-lede{color:var(--body);font-size:clamp(1rem,.97rem + .22vw,1.12rem);max-width:60ch}
.digibro-page .final .dw-lede{color:var(--body-dark);margin-inline:auto}
/* the kit paints headings with the primary colour and its own type scale -
   put the v5 scale back at higher weight. Colours still come from the kit. */
.digibro-page .elementor-widget-heading .elementor-heading-title{color:var(--ink);font-family:var(--font);
  font-weight:700;letter-spacing:-.026em;line-height:1.15}
.digibro-page .elementor-widget-heading h1.elementor-heading-title{font-size:clamp(2.05rem,1.5rem + 1.9vw,3.3rem);line-height:1.08}
.digibro-page .elementor-widget-heading h2.elementor-heading-title{font-size:clamp(1.55rem,1.25rem + 1.15vw,2.25rem)}
.digibro-page .elementor-widget-heading h3.elementor-heading-title{font-size:clamp(1.02rem,.97rem + .25vw,1.16rem);letter-spacing:-.015em}
.digibro-page .hero .elementor-heading-title span{color:var(--blue)}
.digibro-page .final .elementor-widget-heading .elementor-heading-title{color:#fff}
.digibro-page .dw-num .elementor-heading-title{display:inline-grid;place-items:center;width:38px;height:38px;
  border-radius:50%;background:var(--blue);color:#fff;font-size:.85rem;font-weight:700}
.digibro-page .dw-num.g .elementor-heading-title{background:var(--accent)}
.digibro-page .dw-mono .elementor-heading-title{display:grid;place-items:center;width:44px;height:44px;
  border-radius:var(--r-sm);background:var(--blue-soft);color:var(--blue);font-size:1rem;font-weight:700;
  letter-spacing:-.02em}
.digibro-page .dw-mono.g .elementor-heading-title{background:var(--accent-soft);color:var(--accent-deep)}
.digibro-page .dw-role .elementor-heading-title{font-size:.75rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--accent-deep)}
.digibro-page .dw-pull{border-left:3px solid var(--accent);background:var(--paper-2);
  border-radius:0 var(--r) var(--r) 0;padding:1.15rem 1.3rem;font-size:1.02rem;font-weight:500;color:var(--ink);
  margin-bottom:1.3rem}
.digibro-page .dw-note{font-size:.89rem;color:var(--grey);max-width:70ch;margin-top:1.1rem}
.digibro-page .dw-lede+.dw-lede,.digibro-page .dw-lede p+p{margin-top:.9rem}
.digibro-page .elementor-widget-text-editor p+p{margin-top:.9rem}
/* icon-list icons follow the v5 accent, not the kit's primary */
.digibro-page .dw-trust .elementor-icon-list-icon svg,
.digibro-page .dw-tiles .elementor-icon-list-icon svg{fill:var(--accent);width:16px;height:16px}
.digibro-page .dw-tiles .elementor-icon-list-icon svg{fill:var(--accent-deep)}
.digibro-page .dw-ic .elementor-icon{width:44px;height:44px;border-radius:var(--r-sm);background:var(--blue-soft);
  color:var(--blue);display:grid;place-items:center;font-size:20px}
.digibro-page .dw-ic.g .elementor-icon{background:var(--accent-soft);color:var(--accent-deep)}
.digibro-page .dw-ic .elementor-icon-wrapper{text-align:left}

/* buttons rendered by the native Button widget */
.digibro-page .dw-btn .elementor-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  background:var(--blue);color:#fff;font-weight:600;font-size:.94rem;padding:.95rem 1.7rem;min-height:54px;
  border:1px solid transparent;border-radius:var(--r-sm);
  transition:background .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease)}
.digibro-page .dw-btn .elementor-button:hover{background:var(--blue-deep);box-shadow:0 8px 20px rgba(6,0,240,.22);
  transform:translateY(-1px);color:#fff}
.digibro-page .dw-btn.outline .elementor-button{background:transparent;color:var(--blue);border-color:#C9C6FF}
.digibro-page .dw-btn.outline .elementor-button:hover{background:var(--blue-soft);color:var(--blue-deep);box-shadow:none}
.digibro-page .dw-btn.accent .elementor-button{background:var(--accent)}
.digibro-page .dw-btn.accent .elementor-button:hover{background:var(--accent-deep);box-shadow:0 8px 20px rgba(10,159,110,.26)}
.digibro-page .final .dw-btn.outline .elementor-button{color:#fff;border-color:rgba(255,255,255,.4)}
.digibro-page .final .dw-btn.outline .elementor-button:hover{background:rgba(255,255,255,.14);color:#fff}

/* icon-list based lists */
.digibro-page .dw-trust .elementor-icon-list-items{display:flex;flex-wrap:wrap;gap:1.1rem;
  margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid var(--line)}
.digibro-page .dw-trust .elementor-icon-list-item{font-size:.86rem;font-weight:600;color:var(--body)}
.digibro-page .dw-trust .elementor-icon-list-icon{color:var(--accent)}
.digibro-page .dw-tiles .elementor-icon-list-items{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem}
@media (max-width:900px){.digibro-page .dw-tiles .elementor-icon-list-items{grid-template-columns:repeat(3,1fr)}}
@media (max-width:600px){.digibro-page .dw-tiles .elementor-icon-list-items{grid-template-columns:repeat(2,1fr)}}
.digibro-page .dw-tiles .elementor-icon-list-item{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
  font-size:.87rem;font-weight:600;transition:border-color .18s,background .18s}
.digibro-page .dw-tiles .elementor-icon-list-item:hover{border-color:var(--blue);background:var(--blue-soft)}
.digibro-page .dw-tiles .elementor-icon-list-item>a,
.digibro-page .dw-tiles .elementor-icon-list-item>span{display:flex;align-items:center;gap:.6rem;padding:.85rem .9rem;width:100%}
.digibro-page .dw-tiles .elementor-icon-list-icon{color:var(--accent-deep)}
.digibro-page .dw-tiles .elementor-icon-list-item a,
.digibro-page .dw-tiles .elementor-icon-list-text{color:var(--ink)}
.digibro-page .dw-tiles .elementor-icon-list-item:hover .elementor-icon-list-text{color:var(--blue)}

/* ---- components that follow the About artifact's design ---- */
/* hairline between sections, as in the artifact */
.digibro-page .e-con.sec.line{border-top:1px solid var(--line)}

/* the 7-step loop is a numbered vertical list, not a card grid */
.digibro-page .e-con.steps{display:block;background:#fff;border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden}
.digibro-page .e-con.step{display:grid;grid-template-columns:64px 1fr;gap:1.1rem;align-items:start;
  padding:1.15rem 1.3rem;border-bottom:1px solid var(--line)}
.digibro-page .e-con.steps>.e-con.step:last-child{border-bottom:0}
@media (max-width:520px){.digibro-page .e-con.step{grid-template-columns:1fr;gap:.5rem}}
.digibro-page .dw-stepnum .elementor-heading-title{display:grid;place-items:center;width:44px;height:30px;
  border-radius:999px;background:var(--accent-soft);color:var(--accent-deep);font-weight:600;font-size:.78rem;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:0}
.digibro-page .e-con.stepbody{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem}
.digibro-page .e-con.stepbody .elementor-widget-text-editor{color:var(--body);font-size:.93rem}
.digibro-page .dw-stepsnote{font-size:.88rem;color:var(--grey);margin-top:.9rem}

/* the four principles share one bordered block, divided by 1px gaps */
.digibro-page .e-con.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.digibro-page .e-con.cardflat{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;
  background:#fff;padding:1.4rem;height:100%}
.digibro-page .e-con.cardflat .elementor-widget-text-editor{color:var(--body);font-size:.92rem}
.digibro-page .dw-lbl .elementor-heading-title{font-size:.7rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--grey)}

/* team cards carry the artifact's larger monogram and soft shadow */
.digibro-page .e-con.card.person{box-shadow:var(--shadow)}
.digibro-page .person .dw-mono .elementor-heading-title{width:56px;height:56px;font-size:1.15rem}

/* industries render as chips */
.digibro-page .dw-chips .elementor-icon-list-items{display:flex;flex-wrap:wrap;gap:.55rem}
.digibro-page .dw-chips .elementor-icon-list-icon{display:none}
.digibro-page .dw-chips .elementor-icon-list-item{background:#fff;border:1px solid var(--line);
  border-radius:999px;font-size:.85rem;font-weight:500;transition:border-color .18s,background .18s}
.digibro-page .dw-chips .elementor-icon-list-item>a,
.digibro-page .dw-chips .elementor-icon-list-item>span{display:block;padding:.45rem .9rem;color:var(--ink)}
.digibro-page .dw-chips .elementor-icon-list-item:hover{border-color:var(--blue);background:var(--blue-soft)}
.digibro-page .dw-chips .elementor-icon-list-text{color:var(--ink)}
.digibro-page .dw-chips .elementor-icon-list-item:hover>a,
.digibro-page .dw-chips .elementor-icon-list-item:hover .elementor-icon-list-text{color:var(--blue)}

/* the closing CTA is a left-aligned dark band, not a centred one */
.digibro-page .final.band{text-align:left}
.digibro-page .final.band .e-con.wrap{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}
.digibro-page .final.band .dw-lede{margin-inline:0;max-width:52ch}
.digibro-page .final.band .e-con.btns{justify-content:flex-start;margin-top:1.5rem}

/* the facts panel is a normal WYSIWYG table so it stays editable.
   Astra puts a 1px border on every cell and a 1.5em margin under the table -
   both are cleared here so the panel reads as rows, not as a spreadsheet. */
.digibro-page .dw-facts{margin:0}
.digibro-page .dw-facts table{width:100%;border:0;border-collapse:collapse;margin:0;table-layout:fixed}
.digibro-page .dw-facts td{border:0;border-bottom:1px solid var(--line);padding:.9rem 1.2rem;
  vertical-align:baseline;font-size:.92rem;font-weight:500;line-height:1.5;background:none}
.digibro-page .dw-facts tr:last-child td{border-bottom:0}
.digibro-page .dw-facts td:first-child{width:118px;padding-right:0;font-size:.7rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--grey);line-height:1.6}
.digibro-page .dw-facts td:last-child{padding-left:0}
@media (max-width:420px){.digibro-page .dw-facts td:first-child{width:92px}}
/* the panel is edge-to-edge like the artifact: the rows carry the padding */
.digibro-page .e-con.card.facts{padding:0;border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden}
/* percentage height on a grid item resolves against the row, which stretched
   the facts card to the height of the hero copy - keep it content-sized */
.digibro-page .e-con.hero-grid>.e-con.card{height:auto;align-self:center}

/* rotating word in the hero headline - words come from data-words on the span,
   so they stay editable in the Heading widget */
.digibro-page .hero .elementor-heading-title span.dg-word{white-space:nowrap;color:var(--ink)}
/* only the rotating service word carries the brand blue */
.digibro-page .hero .elementor-heading-title span.dg-rotate{display:inline-block;color:var(--blue);
  transition:opacity .25s var(--ease),transform .25s var(--ease)}
.digibro-page .hero .elementor-heading-title span.dg-rotate.out{opacity:0;transform:translateY(-.3em)}
@media (prefers-reduced-motion:reduce){.digibro-page .hero .elementor-heading-title span.dg-rotate{transition:none}}

/* ============================================================
   About page components (page 48). Built from the v5 token
   layer only - no new colours, radii or spacing scales.
   ============================================================ */
.factlist{display:grid;gap:0;margin:0}
.factlist>div{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:baseline;
  padding:.85rem 0;border-bottom:1px solid var(--line)}
.factlist>div:last-child{border-bottom:0;padding-bottom:0}
.factlist>div:first-child{padding-top:0}
.factlist dt{margin:0;min-width:80px;font-size:.7rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--grey)}
.factlist dd{margin:0;font-size:.92rem;font-weight:500;color:var(--ink)}
.pull{border-left:3px solid var(--accent);background:var(--paper-2);
  border-radius:0 var(--r) var(--r) 0;padding:1.15rem 1.3rem;font-size:1.02rem;font-weight:500}
.ic.mono{font-weight:700;font-size:1rem;letter-spacing:-.02em}
.card .role{display:block;font-size:.75rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--accent-deep);margin-top:-.25rem}
.tile.soon{background:var(--paper-2);color:var(--grey)}
.note{font-size:.89rem;color:var(--grey);margin-top:1.1rem;max-width:70ch}

/* ============================================================
   CONTACT PAGE components
   Source: "Contact Digibro" artifact (1 Sep 2026).
   Same tokens as the rest of the site - no new colours here.
   ============================================================ */
.digibro-page .e-con.wrap.narrow{--wrap:1080px}
.digibro-page .e-con.hero-grid.contact{grid-template-columns:1.35fr .85fr;align-items:start}
@media (max-width:860px){.digibro-page .e-con.hero-grid.contact{grid-template-columns:1fr}}
.sec-title{max-width:56ch;margin-bottom:.6rem}
.sec-intro{color:var(--body);max-width:62ch;margin:0 0 2rem}
.dark .sec-intro{color:var(--body-dark)}

/* hero facts strip */
.facts{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden;margin-top:1.8rem}
.facts li{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:baseline;padding:.9rem 1.2rem;border-bottom:1px solid var(--line)}
.facts li:last-child{border-bottom:0}
.facts .k{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--grey);font-weight:600;min-width:74px}
.facts .v{font-size:.93rem;font-weight:500}

/* form card */
.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:clamp(1.3rem,3vw,1.9rem)}
.form-card h2{font-size:1.25rem;margin-bottom:.35rem}
.form-card .sub{color:var(--body);font-size:.92rem;margin-bottom:1.4rem}
.form-foot{font-size:.82rem;color:var(--grey);margin:.9rem 0 0;text-align:center}

/* JetFormBuilder markup, dressed as the v5 .field pattern */
.form-card .jet-form-builder{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-card .jet-form-builder-row{grid-column:1/-1;display:grid;gap:.35rem;margin:0}
.form-card .jet-form-builder-row:has(input[type="email"]),
.form-card .jet-form-builder-row:has(input[type="tel"]){grid-column:span 1}
@media (max-width:520px){.form-card .jet-form-builder-row:has(input[type="email"]),
  .form-card .jet-form-builder-row:has(input[type="tel"]){grid-column:1/-1}}
.form-card .jet-form-builder__label{margin:0}
.form-card .jet-form-builder__label-text{font-size:.8rem;font-weight:600;letter-spacing:.02em;color:var(--ink);display:block}
.form-card .jet-form-builder__required{color:var(--grey)}
.form-card .jet-form-builder__field{font:inherit;font-size:.94rem;color:var(--ink);background:var(--paper);
  border:1px solid var(--line);border-radius:var(--r-sm);padding:.7rem .85rem;min-height:48px;width:100%;
  transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}
.form-card textarea.jet-form-builder__field{min-height:96px;resize:vertical;line-height:1.5}
.form-card .jet-form-builder__field:hover{border-color:#C9C6FF}
.form-card .jet-form-builder__field:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.form-card .jet-form-builder-row.field-type-submit-field{margin-top:.2rem}
.form-card .jet-form-builder__submit{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;
  background:var(--blue);color:#fff;font-weight:600;font-size:1rem;padding:.95rem 1.7rem;min-height:54px;
  border:1px solid transparent;border-radius:var(--r-sm);cursor:pointer;
  transition:background .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease)}
.form-card .jet-form-builder__submit:hover{background:var(--blue-deep);box-shadow:0 8px 20px rgba(6,0,240,.22);transform:translateY(-1px)}
.form-card .jet-form-builder-message,.form-card .jet-form-builder-messages-wrap{grid-column:1/-1}
.form-card .jet-form-builder-message{font-weight:600;font-size:.89rem;padding:.7rem .9rem;border-radius:var(--r-sm)}
.form-card .jet-form-builder-message--success{background:var(--accent-soft);color:var(--accent-deep)}
.form-card .jet-form-builder-message--error{background:#FDEEE6;color:#7A2A08}
.form-card .jet-form-builder__field-error,.form-card .error-message{font-size:.8rem;color:#C2410C;font-weight:600}

/* what happens next */
.next{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
@media (max-width:760px){.next{grid-template-columns:1fr}}
.next .n{background:#fff;padding:1.3rem}
.next .when{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:600;
  color:var(--accent-deep);background:var(--accent-soft);display:inline-block;padding:.25rem .6rem;border-radius:999px;margin-bottom:.8rem}
.next h3{margin-bottom:.35rem}
.next p{margin:0;color:var(--body);font-size:.92rem}

/* other ways to reach us */
.ways{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.1rem}
.way{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.3rem;display:flex;flex-direction:column;gap:.5rem}
.way .ico{width:40px;height:40px;border-radius:var(--r-sm);background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;margin-bottom:.4rem}
.way .ico svg{width:19px;height:19px}
.way.alt .ico{background:var(--accent-soft);color:var(--accent-deep)}
.way.quiet .ico{background:var(--paper-3);color:var(--body)}
.way h3{font-size:1rem}
.way p{margin:0;color:var(--body);font-size:.91rem;flex:1}
.way .go{font-size:.91rem;font-weight:600;color:var(--blue);text-decoration:none;margin-top:.5rem}
.way .go:hover{text-decoration:underline}
.way.quiet .go{color:var(--body)}

/* hours strip */
.hours{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-top:1.4rem}
.hours>div{background:#fff;padding:1.1rem 1.2rem}
.hours .k{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--grey);font-weight:600;display:block;margin-bottom:.3rem}
.hours .v{font-size:.95rem;font-weight:500}
.hours small{display:block;color:var(--body);font-size:.85rem;font-weight:400;margin-top:.2rem}

/* contact FAQ - one bordered panel, +/- marker (v5's .faq is separate cards) */
.faq-panel{border:1px solid var(--line);border-radius:var(--r);background:#fff;overflow:hidden}
.faq-panel details{border-bottom:1px solid var(--line)}
.faq-panel details:last-child{border-bottom:0}
.faq-panel summary{cursor:pointer;list-style:none;padding:1.05rem 1.3rem;font-weight:600;font-size:.98rem;
  display:flex;justify-content:space-between;gap:1rem;align-items:center}
.faq-panel summary::-webkit-details-marker{display:none}
.faq-panel summary::after{content:"+";color:var(--blue);font-weight:700;font-size:1.15rem;flex:none}
.faq-panel details[open] summary::after{content:"\2212"}
.faq-panel summary:hover{background:var(--paper-2)}
.faq-panel .a{padding:0 1.3rem 1.15rem;color:var(--body);font-size:.93rem;max-width:66ch}
.faq-panel .a p{margin:0}

/* dark cta band (left aligned, unlike the home page's centred .final) */
.band{background:var(--ink);color:#fff}
.band h2{color:#fff}
.band p{color:var(--body-dark);max-width:52ch;margin:0}
.band .btns{margin-top:1.5rem}

/* --- native rebuild: home section 2 (The Gap) --- */
.digibro-page .e-con.head.center{align-items:center;text-align:center;margin-inline:auto}
.digibro-page .e-con.head.center .dw-lede{margin-inline:auto}
.digibro-page .dw-ic .elementor-icon svg{width:21px;height:21px;fill:none;stroke:currentColor}
.digibro-page .e-con.card>.dw-ic{width:auto}


/* --- native rebuild: home hero --- */
/* copy column spacing */
.digibro-page .hero .dw-lede{margin:1.05rem 0 1.6rem}
.digibro-page .hero .dw-micro{font-size:.83rem;color:var(--grey);margin-top:.7rem;max-width:60ch}
/* hero quick form (JetFormBuilder) */
.digibro-page .hero .dg-quickform .jet-form-builder{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;max-width:520px}
.digibro-page .hero .dg-quickform .jet-form-builder-row{margin:0;display:grid;gap:.3rem}
.digibro-page .hero .dg-quickform .jet-form-builder-row.field-type-submit-field,
.digibro-page .hero .dg-quickform .jet-form-builder-message,
.digibro-page .hero .dg-quickform .jet-form-builder-messages-wrap{grid-column:1/-1}
.digibro-page .hero .dg-quickform .jet-form-builder__label{margin:0}
.digibro-page .hero .dg-quickform .jet-form-builder__label-text{font-size:.78rem;font-weight:600;color:var(--ink)}
.digibro-page .hero .dg-quickform .jet-form-builder__required{color:var(--grey)}
.digibro-page .hero .dg-quickform .jet-form-builder__field{font:inherit;font-size:.95rem;color:var(--ink);
  padding:.8rem .95rem;min-height:48px;width:100%;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-sm);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}
.digibro-page .hero .dg-quickform .jet-form-builder__field:hover{border-color:#C9C6FF}
.digibro-page .hero .dg-quickform .jet-form-builder__field:focus{outline:none;border-color:var(--blue);
  box-shadow:0 0 0 3px var(--blue-soft)}
.digibro-page .hero .dg-quickform .jet-form-builder__submit{display:inline-flex;align-items:center;justify-content:center;
  gap:.5rem;width:100%;background:var(--blue);color:#fff;font-weight:600;font-size:1rem;padding:.95rem 1.7rem;
  min-height:54px;border:1px solid transparent;border-radius:var(--r-sm);cursor:pointer;
  transition:background .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease)}
.digibro-page .hero .dg-quickform .jet-form-builder__submit:hover{background:var(--blue-deep);
  box-shadow:0 8px 20px rgba(6,0,240,.22);transform:translateY(-1px)}
.digibro-page .hero .dg-quickform .jet-form-builder-message{font-weight:600;font-size:.89rem;padding:.7rem .9rem;
  border-radius:var(--r-sm)}
.digibro-page .hero .dg-quickform .jet-form-builder-message--success{background:var(--accent-soft);color:var(--accent-deep)}
.digibro-page .hero .dg-quickform .jet-form-builder-message--error{background:#FDEEE6;color:#7A2A08}
/* media card + native video widget */
.digibro-page .e-con.media-card{display:block;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow:hidden}
.digibro-page .e-con.media-card .elementor-widget-video{line-height:0}
.digibro-page .media-card .elementor-wrapper{aspect-ratio:16/9;background:#0B0B12;position:relative}
.digibro-page .media-card .elementor-wrapper iframe,
.digibro-page .media-card .elementor-custom-embed-image-overlay{position:absolute;inset:0;width:100%;height:100%;border:0}
.digibro-page .media-card .elementor-custom-embed-image-overlay{background-size:cover;background-position:center;
  display:grid;place-items:center;cursor:pointer}
.digibro-page .media-card .elementor-custom-embed-image-overlay::before{content:"";position:absolute;inset:0;
  background:rgba(11,11,18,.18);transition:background .2s var(--ease)}
.digibro-page .media-card .elementor-custom-embed-image-overlay:hover::before{background:rgba(11,11,18,.32)}
.digibro-page .media-card .elementor-custom-embed-image-overlay img{width:100%;height:100%;object-fit:cover}
.digibro-page .media-card .elementor-custom-embed-play{position:relative;inset:auto;top:auto;left:auto;transform:none;
  width:62px;height:62px;border-radius:50%;background:#fff;display:grid;place-items:center;opacity:1;
  box-shadow:0 8px 24px rgba(0,0,0,.28);transition:transform .2s var(--ease)}
.digibro-page .media-card .elementor-custom-embed-image-overlay:hover .elementor-custom-embed-play{transform:scale(1.07)}
.digibro-page .media-card .elementor-custom-embed-play i,
.digibro-page .media-card .elementor-custom-embed-play svg{width:24px;height:24px;font-size:24px;line-height:1;
  color:var(--blue);fill:var(--blue);margin-left:3px;opacity:1;text-shadow:none;filter:none;background:none;
  box-shadow:none;border-radius:0}
.digibro-page .e-con.cap{display:flex;flex-direction:row;--flex-direction:row;align-items:center;justify-content:space-between;gap:1rem;
  padding:.9rem 1.1rem;border-top:1px solid var(--line)}
.digibro-page .e-con.cap>.elementor-widget{width:auto}
.digibro-page .media-card .cap b{font-size:.93rem;color:var(--ink)}
.digibro-page .media-card .cap span{font-size:.8rem;color:var(--grey);display:block}
@media (max-width:760px){
  .digibro-page .hero .dg-quickform .jet-form-builder{grid-template-columns:1fr}
}


/* --- hero: form card in the right column --- */
.digibro-page .e-con.form-card{display:block;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-lg);box-shadow:var(--shadow);padding:clamp(1.3rem,3vw,1.9rem)}
.digibro-page .e-con.hero-grid>.e-con.form-card{align-self:center;height:auto}
.digibro-page .form-card .elementor-widget-heading h2.elementor-heading-title{font-size:1.25rem}
.digibro-page .e-con.form-card .sub{color:var(--body);font-size:.92rem;margin:.35rem 0 1.4rem}
.digibro-page .e-con.form-card.hero-form .jet-form-builder{grid-template-columns:1fr;gap:.9rem}
.digibro-page .e-con.form-card .form-foot{font-size:.82rem;color:var(--grey);margin-top:.9rem;text-align:center}

/* --- third-level nav: a trade under a sector (Industries > Home Services > HVAC).
   Interim treatment until the mega menu is built (decision 2026-09-07). --- */
.mainnav .sub .sub-deep{padding:.1rem 0 .35rem .7rem;margin-left:.35rem;border-left:1px solid var(--line)}
.mainnav .sub .sub-deep a{padding:.42rem .7rem;font-size:.85rem;font-weight:500;color:var(--body)}
.mainnav .sub .sub-deep a:hover{background:var(--blue-soft);color:var(--blue)}
#drawer .d-group a.deep{padding-left:1rem;font-size:.9rem;color:var(--grey)}
#drawer .d-group a.deep:hover{color:var(--blue)}
/* ============================================================
   Header - JetThemeCore template 119 + JetMenu mega menu
   (2026-09-10). Matches homev5.html: sticky white bar, pill hover,
   full-width mega panels, slide-out mobile menu.

   The "integration layer" reset above flattens every Elementor
   container to display:block; the header opts back out of it.
   ============================================================ */
#jet-theme-core-header{position:sticky;top:0;z-index:120}
.admin-bar #jet-theme-core-header{top:32px}
@media (max-width:782px){.admin-bar #jet-theme-core-header{top:46px}}
#jet-theme-core-header .jet-theme-core-location__inner{display:block}

.digibro-page #jet-theme-core-header .e-con:not(.mega-in){
  display:flex;flex-direction:var(--flex-direction,row);align-items:var(--align-items,center);
  justify-content:var(--justify-content,flex-start);gap:var(--gap,0);flex-wrap:nowrap;
  width:auto;max-width:none;margin:0;
  padding:var(--padding-top,0) var(--padding-right,0) var(--padding-bottom,0) var(--padding-left,0);
}
/* only the two top-level bands span the viewport; nested containers size to
   their content (`:not()` counts toward specificity, so a plain .dg-jet-cta
   rule would lose to the reset above) */
.digibro-page #jet-theme-core-header .e-con.dg-jet-top,
.digibro-page #jet-theme-core-header .e-con.dg-jet-hdr{width:100%}
.digibro-page #jet-theme-core-header .e-con.dg-jet-hdr>.e-con{width:100%}
.digibro-page #jet-theme-core-header .e-con:not(.mega-in)>.e-con-inner,
.digibro-page #jet-theme-core-header>.jet-theme-core-location__inner .e-con:not(.mega-in) .e-con-inner{
  display:flex;flex-direction:row;align-items:center;justify-content:space-between;
  gap:var(--gap,16px);flex-wrap:nowrap;
  width:100%;max-width:var(--content-width,1180px);margin-inline:auto;padding:0;
  min-height:var(--min-height,70px);
}

/* announcement bar - collapses as soon as the page scrolls (any page) */
.dg-jet-top{position:relative;justify-content:center;overflow:hidden;
  max-height:var(--dg-top-h,72px);opacity:1;
  transition:max-height .28s var(--ease),opacity .2s var(--ease)}
.dg-jet-top p{margin:0}
body.dg-scrolled .dg-jet-top,
body.dg-scrolled .top{max-height:0;opacity:0;pointer-events:none;
  --padding-top:0px;--padding-bottom:0px;border-block:0;
  padding-block:0!important;padding-block-start:0!important;padding-block-end:0!important}
.top{overflow:hidden;transition:max-height .28s var(--ease),opacity .2s var(--ease);max-height:var(--dg-top-h,72px)}
@media (prefers-reduced-motion:reduce){.dg-jet-top,.top{transition:none}}

/* header bar */
.dg-jet-hdr{position:relative;flex-direction:column;
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.dg-jet-hdr .jet-logo__img{height:54px;width:auto;display:block}
@media (max-width:1024px){.dg-jet-hdr .jet-logo__img{height:46px}}
.dg-jet-hdr a{text-decoration:none}
.digibro-page #jet-theme-core-header .elementor-widget{width:auto}
/* The nav widget takes the leftover space of the header row and right-aligns
   its items - v5's .mainnav{margin-left:auto}. Sizing it from content instead
   collapses it to zero: JetMenu's roots are width:100%, and 100% of a
   content-sized flex item resolves to 0, which wraps every item onto its own line. */
.digibro-page #jet-theme-core-header .elementor-widget-jet-mega-menu{flex:1 1 auto;width:auto;min-width:0}
.digibro-page #jet-theme-core-header .elementor-widget-jet-mega-menu>.elementor-widget-container,
.dg-jet-hdr .jet-mega-menu,
.dg-jet-hdr .jet-mega-menu-container{width:100%}
.dg-jet-hdr .jet-mega-menu-list{display:flex;flex-wrap:nowrap;justify-content:flex-end;
  align-items:center;width:100%;margin:0;padding:0;list-style:none}
.digibro-page #jet-theme-core-header .elementor-widget-jet-logo{flex:0 0 auto}
.digibro-page #jet-theme-core-header .elementor-widget-jet-logo>.elementor-widget-container,
.dg-jet-hdr .elementor-jet-logo,
.dg-jet-hdr .jet-logo{width:auto;max-width:none}
.digibro-page #jet-theme-core-header .dg-jet-cta{flex:0 0 auto;width:auto}
.digibro-page #jet-theme-core-header .dg-jet-cta{flex:0 0 auto;width:auto}

/* v5 pill hover on top-level items */
.dg-jet-hdr .jet-mega-menu-item__link--top-level{border-radius:var(--r-sm);transition:background .15s,color .15s}
.dg-jet-hdr .jet-mega-menu-item__dropdown{transition:transform .2s var(--ease)}

/* header buttons */
.dg-jet-hdr .elementor-button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;
  transition:background-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}
.dg-jet-hdr .elementor-button:hover{transform:translateY(-1px)}
@media (prefers-reduced-motion:reduce){.dg-jet-hdr .elementor-button:hover{transform:none}}
.dg-jet-hdr .jet-mega-menu-item__link:focus-visible,
.dg-jet-hdr .elementor-button:focus-visible,
.dg-jet-hdr .jet-mega-menu-mobile-trigger:focus-visible{outline:3px solid var(--accent);outline-offset:2px}

/* ---------- mega panels (templates 121/122/123) ---------- */
.jet-mega-menu-mega-container{border-bottom:1px solid var(--line)}
.digibro-page #jet-theme-core-header .jet-mega-menu-mega-container .e-con.mega-in,
.digibro-page .jet-mega-menu-mega-container .e-con.mega-in{
  display:grid;grid-template-columns:1fr 1fr .85fr;gap:2rem;
  width:min(100% - var(--pad)*2,var(--wrap));margin-inline:auto;
  padding:1.8rem 0 2rem;max-width:none}
@media (max-width:1080px){
  .digibro-page #jet-theme-core-header .jet-mega-menu-mega-container .e-con.mega-in{grid-template-columns:1fr 1fr}
}
.digibro-page #jet-theme-core-header .jet-mega-menu-mega-container .elementor-widget{width:auto}
.digibro-page .jet-mega-menu-mega-container .elementor-widget-html>.elementor-widget-container{display:contents}

.mega-col h4{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--grey);margin:0 0 .8rem}
.mega-col ul{display:grid;gap:.1rem;margin:0;padding:0;list-style:none}
.m-item{display:flex;gap:.7rem;align-items:flex-start;padding:.6rem;border-radius:var(--r-sm);
  text-decoration:none;transition:background .15s}
.m-item:hover{background:var(--paper-2)}
.m-item .ic{width:34px;height:34px;flex:0 0 auto;background:var(--blue-soft);color:var(--blue);
  border-radius:var(--r-sm);display:grid;place-items:center;transition:background .15s,color .15s}
.m-item:hover .ic{background:var(--blue);color:#fff}
.m-item svg{width:16px;height:16px}
.m-item b{display:block;font-size:.92rem;color:var(--ink)}
.m-item span{display:block;font-size:.8rem;color:var(--body);line-height:1.45}
.m-item>span:last-child{min-width:0}
.mega-promo{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);
  padding:1.4rem;display:flex;flex-direction:column;gap:.55rem;align-items:flex-start}
.mega-promo>b{font-size:1.05rem;color:var(--ink)}
.mega-promo p{font-size:.87rem;color:var(--body);margin:0}
.mega-promo .btn{margin-top:auto}
@media (max-width:1080px){.mega-promo{display:none}}

/* ---------- mobile ---------- */
@media (max-width:1024px){
  .digibro-page #jet-theme-core-header .elementor-widget-jet-mega-menu{order:3;margin-left:0;flex:0 0 auto}
  .digibro-page #jet-theme-core-header .dg-jet-cta{order:2;margin-left:auto}
  .digibro-page #jet-theme-core-header .e-con:not(.mega-in)>.e-con-inner,
.digibro-page #jet-theme-core-header>.jet-theme-core-location__inner .e-con:not(.mega-in) .e-con-inner{gap:10px}
  /* the panel is pinned under the whole bar, not under the 36px toggle -
     every ancestor up to .dg-jet-hdr must be static for that */
  .digibro-page #jet-theme-core-header .elementor-widget-jet-mega-menu,
  .digibro-page #jet-theme-core-header .elementor-widget-jet-mega-menu>.elementor-widget-container,
  .dg-jet-hdr .jet-mega-menu{position:static}
  .dg-jet-hdr .jet-mega-menu--layout-dropdown .jet-mega-menu-container{
    position:absolute;top:100%;left:0;right:0;width:auto;max-width:none;z-index:130;
    background:var(--paper);border-top:1px solid var(--line);box-shadow:var(--shadow-lg);
    max-height:78vh;overflow-y:auto;padding:.35rem 0 1rem}
  /* closed state: the max-height above beats JetMenu's max-height:0, so the
     panel sat open (and unclickable) until this was added (2026-09-11) */
  .dg-jet-hdr .jet-mega-menu--layout-dropdown:not(.jet-mega-menu--dropdown-open) .jet-mega-menu-container{
    max-height:0;padding-block:0;border-top-width:0;box-shadow:none;visibility:hidden}
  .dg-jet-hdr .jet-mega-menu--layout-dropdown .jet-mega-menu-list{flex-direction:column;align-items:stretch;
    justify-content:flex-start;width:100%}
  .dg-jet-hdr .jet-mega-menu--layout-dropdown .jet-mega-menu-item__link{padding:.85rem var(--pad);font-size:1rem}
}

/* ---------- tablet & mobile: no mega menu (2026-09-11) ----------
   JetMenu switches to --layout-dropdown at <=1024px. There the mega panels
   (templates 121/122/123) never show. Services & Industries open their plain
   WP sub-menu as an accordion from the arrow; the label itself links to the
   hub page. Work has no sub-menu, so it is a plain link with no arrow.
   Behaviour lives in digibro-v5.js ("header menu: no mega on tablet/mobile"). */
.dg-jet-hdr .jet-mega-menu--layout-dropdown .jet-mega-menu-mega-container{display:none!important}
.dg-jet-hdr .jet-mega-menu--layout-dropdown .ast-header-navigation-arrow{display:none}
.dg-jet-hdr .jet-mega-menu--layout-dropdown .jet-mega-menu-list .jet-mega-menu-item__inner{
  display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:0;background:transparent}
.dg-jet-hdr .jet-mega-menu--layout-dropdown .jet-mega-menu-item__link{flex:1 1 auto;min-width:0}
.dg-jet-hdr .jet-mega-menu--layout-dropdown .jet-mega-menu-item--top-level:not(:has(>.jet-mega-menu-sub-menu))>.jet-mega-menu-item__inner>.jet-mega-menu-item__dropdown,
.dg-jet-hdr .jet-mega-menu--layout-dropdown .jet-mega-menu-sub-menu .jet-mega-menu-item__dropdown{display:none}
.dg-jet-hdr .jet-mega-menu--layout-dropdown .jet-mega-menu-item--top-level>.jet-mega-menu-item__inner>.jet-mega-menu-item__dropdown{
  flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;margin-right:calc(var(--pad) - 14px);
  border-radius:var(--r-sm);cursor:pointer;transform:none}
.dg-jet-hdr .jet-mega-menu--layout-dropdown .jet-mega-menu-item__dropdown svg{width:13px;height:13px;transition:transform .2s var(--ease)}
.dg-jet-hdr .jet-mega-menu--layout-dropdown .dg-sub-open>.jet-mega-menu-item__inner>.jet-mega-menu-item__dropdown{background:var(--blue-soft);color:var(--blue)}
.dg-jet-hdr .jet-mega-menu--layout-dropdown .dg-sub-open>.jet-mega-menu-item__inner>.jet-mega-menu-item__dropdown svg{transform:rotate(180deg)}
/* accordion: the open item's sub-menu, and its nested levels, stay expanded */
.dg-jet-hdr .jet-mega-menu--layout-dropdown .jet-mega-menu-list .dg-sub-open>.jet-mega-menu-sub-menu,
.dg-jet-hdr .jet-mega-menu--layout-dropdown .jet-mega-menu-list .dg-sub-open .jet-mega-menu-sub-menu{
  height:auto;overflow:visible;visibility:visible;pointer-events:auto;margin:0}
.dg-jet-hdr .jet-mega-menu--layout-dropdown .jet-mega-menu-sub-menu__list{padding:0 0 .5rem;margin:0;background:transparent}
.dg-jet-hdr .jet-mega-menu--layout-dropdown .jet-mega-menu-item__link--sub-level{
  padding:.6rem var(--pad) .6rem calc(var(--pad) + .9rem);font-size:.95rem}
.dg-jet-hdr .jet-mega-menu--layout-dropdown .jet-mega-menu-item__link--sub-level .jet-mega-menu-item__title{font-weight:500;color:var(--body)}
.dg-jet-hdr .jet-mega-menu--layout-dropdown .jet-mega-menu-sub-menu .jet-mega-menu-sub-menu .jet-mega-menu-item__link--sub-level{
  padding-left:calc(var(--pad) + 1.9rem);font-size:.9rem}
.dg-jet-hdr .jet-mega-menu--layout-dropdown .jet-mega-menu-sub-menu .jet-mega-menu-sub-menu__list{padding-bottom:0}
@media (max-width:600px){
  .dg-jet-hdr .jet-logo__img{height:40px}
}
/* ---- teardown CTA cards (homepage) 2026-09-12 ----
   The two homepage forms are gone; both slots now carry the single CTA
   that points at /contact/. One-column checklists because these cards are
   narrow. ---- */
.td-cta .checklist,.hero-form-list{grid-template-columns:1fr;margin-top:0}
.td-cta .step-count{text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;font-weight:700}
.td-cta .btn{width:100%}
.digibro-page .e-con.form-card .hero-form-list{display:grid;gap:.5rem;margin:.4rem 0 0}
.digibro-page .e-con.form-card .hero-form-list li{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--body)}
.digibro-page .e-con.form-card .hero-form-list svg{width:16px;height:16px;flex:0 0 16px;color:var(--accent)}

/* <button> carrying .btn — Astra styles bare <button> (background, border,
   font) with rules that outrank the .btn classes, so restate them here.
   Needed by the homepage 'Load more' triggers (#dg-work-more, #dg-vid-more). */
.digibro-page button.btn{background:var(--blue);color:#fff;border:1px solid transparent;font-family:inherit;font-size:.94rem;line-height:1.2}
.digibro-page button.btn:hover{background:var(--blue-deep);color:#fff}
.digibro-page button.btn.btn-outline{background:transparent;color:var(--blue);border-color:#C9C6FF}
.digibro-page button.btn.btn-outline:hover{background:var(--blue-soft);color:var(--blue-deep)}
.digibro-page .dark button.btn.btn-outline{color:#fff;border-color:rgba(255,255,255,.35)}

/* ---- header 2026-09-12: no CTA buttons, prominent logo, taller bar ----
   Nav is now 9 top-level items and owns the whole right side. ---- */
.digibro-page #jet-theme-core-header .e-con.dg-jet-hdr>.e-con{--min-height:92px}
@media (max-width:1120px){.dg-jet-hdr .jet-mega-menu-item__link--top-level{padding-inline:7px}
  .dg-jet-hdr .jet-mega-menu-item__title{font-size:.85rem}}
@media (max-width:1024px){.digibro-page #jet-theme-core-header .e-con.dg-jet-hdr>.e-con{--min-height:78px}
  .digibro-page #jet-theme-core-header .elementor-widget-jet-mega-menu{order:2;margin-left:auto}}
@media (max-width:600px){.digibro-page #jet-theme-core-header .e-con.dg-jet-hdr>.e-con{--min-height:68px}}

/* open mobile panel: state rule must outrank JetMenu's own closed rule
   (.jet-mega-menu.jet-mega-menu--layout-dropdown .jet-mega-menu-container{max-height:0}) */
@media (max-width:1024px){
  .dg-jet-hdr .jet-mega-menu--layout-dropdown.jet-mega-menu--dropdown-open .jet-mega-menu-container{
    max-height:78vh;visibility:visible;padding:.35rem 0 1rem;border-top-width:1px}
}


/* ============================================================
   PHOTO HERO - site-wide (13 Sep 2026)
   Same recipe as the /work/ hero: the photo sits on the container in
   Elementor (Background > Classic > Image), so swapping it never needs a
   CSS edit. Everything on-dark lives here.
   Markup: container/section classes "hero dark hero-photo".
   ============================================================ */
.digibro-page .e-con.hero.hero-photo,
.digibro-page section.hero.hero-photo{
  position:relative;isolation:isolate;
  background-color:var(--ink);
  background-size:cover;background-position:center center;background-repeat:no-repeat;
  border-bottom:0;
  padding-block:clamp(3rem,5.5vw,4.75rem) clamp(2.4rem,4.5vw,3.6rem);
}
.digibro-page .e-con.hero.hero-photo::before,
.digibro-page section.hero.hero-photo::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(180deg,rgba(8,8,20,.82) 0%,rgba(8,8,20,.70) 42%,rgba(8,8,20,.92) 100%);
}
.digibro-page .e-con.hero.hero-photo > *,
.digibro-page section.hero.hero-photo > *{position:relative;z-index:1}

/* type on the photo */
.digibro-page .hero.hero-photo h1,
.digibro-page .hero.hero-photo h2,
.digibro-page .hero.hero-photo .elementor-heading-title{color:#fff}
.digibro-page .hero.hero-photo h1 span,
.digibro-page .hero.hero-photo .dg-rotate{color:#A9A4FF}
.digibro-page .hero.hero-photo .lede,
.digibro-page .hero.hero-photo .lede p,
.digibro-page .hero.hero-photo p,
.digibro-page .hero.hero-photo li{color:var(--body-dark)}
.digibro-page .hero.hero-photo .eyebrow{color:#fff;background:rgba(255,255,255,.14)}
.digibro-page .hero.hero-photo .elementor-icon-list-text{color:rgba(255,255,255,.82)}
.digibro-page .hero.hero-photo .btn-outline{color:#fff;border-color:rgba(255,255,255,.38)}
.digibro-page .hero.hero-photo .btn-outline:hover{background:rgba(255,255,255,.12);color:#fff}

/* cards that sit on the photo turn to glass; form cards stay white so
   inputs keep their contrast */
.digibro-page .hero.hero-photo .facts,
.digibro-page .hero.hero-photo .card{
  background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.20);
  backdrop-filter:blur(8px);box-shadow:none;color:#fff;
}
.digibro-page .hero.hero-photo .facts li{border-bottom-color:rgba(255,255,255,.16)}
.digibro-page .hero.hero-photo .facts .k{color:rgba(255,255,255,.62)}
.digibro-page .hero.hero-photo .facts .v{color:#fff}
.digibro-page .hero.hero-photo .card table td{color:rgba(255,255,255,.82);border-color:rgba(255,255,255,.16)}
.digibro-page .hero.hero-photo .card table td:first-child{color:rgba(255,255,255,.62)}
.digibro-page .hero.hero-photo .form-card{background:#fff;color:var(--ink)}
.digibro-page .hero.hero-photo .form-card p,
.digibro-page .hero.hero-photo .form-card li{color:var(--body)}
.digibro-page .hero.hero-photo .form-card h2,
.digibro-page .hero.hero-photo .form-card h3{color:var(--ink)}
.digibro-page .hero.hero-photo .head{margin-bottom:0;max-width:70ch}
.digibro-page .hero.hero-photo .dg-ixmeta{color:rgba(255,255,255,.62)}
.digibro-page .hero.hero-photo .elementor-icon-list-icon,
.digibro-page .hero.hero-photo .elementor-icon-list-icon svg{color:#8CE8C4;fill:#8CE8C4}
.digibro-page .hero.hero-photo .crumb,
.digibro-page .hero.hero-photo .crumb a{color:rgba(255,255,255,.66)}

/* dw-* widget bridges on a photo hero (About page uses them outside .digibro-industry) */
.digibro-page .hero.hero-photo .dw-eyebrow .elementor-heading-title{color:#fff;background:rgba(255,255,255,.14)}
.digibro-page .hero.hero-photo .dw-lede,
.digibro-page .hero.hero-photo .dw-lede p{color:var(--body-dark)}
.digibro-page .hero.hero-photo .dw-note{color:rgba(255,255,255,.60)}
.digibro-page .hero.hero-photo .dw-btn.outline .elementor-button{background:transparent;color:#fff;border-color:rgba(255,255,255,.38)}
.digibro-page .hero.hero-photo .dw-btn.outline .elementor-button:hover{background:rgba(255,255,255,.12);color:#fff}
.digibro-page .hero.hero-photo .elementor-heading-title span{color:#A9A4FF}
.digibro-page .hero.hero-photo .elementor-heading-title span.dg-word{color:#fff}
.digibro-page .hero.hero-photo .elementor-heading-title span.dg-rotate{color:#A9A4FF}
