/* Build On Renovations - v2 page design system.
   Generated from the approved homepage (page 11341) custom CSS on 2026-08-21.
   Scope changed from .page-id-11341 to body.bo-v2 so every v2 page inherits it.
   Page-specific additions live in the V2 ADDITIONS block at the end. */
/* ===== Build On Renovations — Homepage Test New (scoped to page content only) ===== */
body.bo-v2 #main-content{
  --bo-ink:#00172b; --bo-ink2:#04223c; --bo-paper:#f6f9fc;
  --bo-blue:#2ea3f2; --bo-blue-d:#1d7fc4; --bo-muted:#5b6b7a;
  --bo-line:rgba(0,23,43,.10);
  --bo-shadow:0 18px 50px -18px rgba(0,23,43,.25);
  --bo-display:"Fraunces",Georgia,serif;
  --bo-body:"Inter",-apple-system,"Segoe UI",Roboto,sans-serif;
  background:var(--bo-paper);
}
body.bo-v2 #main-content .container{width:100%;max-width:100%;padding-top:0}
body.bo-v2 #main-content .container:before{display:none}
body.bo-v2 #main-content .et_pb_row{margin-bottom:0}
body.bo-v2 #main-content .et_pb_column{margin-bottom:0}
body.bo-v2 #main-content .et_pb_column>.et_pb_module{margin-bottom:0}
body.bo-v2 #main-content .bo-setup{display:none!important}
/* Divi's waypoint fade-in leaves blurb images stuck at opacity:0 — the source design has no fade */
body.bo-v2 #main-content .et-waypoint,
body.bo-v2 #main-content .et-waypoint:not(.et-animated),
body.bo-v2 #main-content img.et-waypoint{opacity:1!important;animation:none!important}

/* --- typography --- */
body.bo-v2 #main-content p,body.bo-v2 #main-content li,body.bo-v2 #main-content .et_pb_text,body.bo-v2 #main-content .et_pb_blurb,body.bo-v2 #main-content .et_pb_testimonial{
  font-family:var(--bo-body);color:var(--bo-ink);line-height:1.65;font-size:16.5px}
body.bo-v2 #main-content h1,body.bo-v2 #main-content h2,body.bo-v2 #main-content h3,body.bo-v2 #main-content h4{
  font-family:var(--bo-display);font-weight:600;line-height:1.12;letter-spacing:-.01em;padding:0}
body.bo-v2 #main-content h1{font-size:clamp(2.6rem,6vw,4.4rem)}
body.bo-v2 #main-content h2{font-size:clamp(1.9rem,3.6vw,2.9rem)}
body.bo-v2 #main-content h3{font-size:1.35rem}
body.bo-v2 #main-content .et_pb_text_inner>p:last-child{padding-bottom:0}
body.bo-v2 #main-content .et_pb_text a{color:var(--bo-blue-d)}

/* --- eyebrow --- */
body.bo-v2 #main-content .bo-eyebrow{margin-bottom:1rem!important}
body.bo-v2 #main-content .bo-eyebrow .et_pb_text_inner p,
body.bo-v2 #main-content .bo-eyebrow .et_pb_text_inner h1{
  display:inline-flex;align-items:center;gap:.6rem;font-size:.78rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--bo-blue-d);padding:0;margin:0;
  font-family:var(--bo-body);line-height:1.5;max-width:none}
body.bo-v2 #main-content .bo-eyebrow .et_pb_text_inner p:before,
body.bo-v2 #main-content .bo-eyebrow .et_pb_text_inner h1:before{
  content:"";width:34px;height:1.5px;background:var(--bo-blue);display:inline-block;flex:0 0 34px}

/* --- shared blocks --- */
body.bo-v2 #main-content .bo-h1,body.bo-v2 #main-content .bo-h2{margin-bottom:1.2rem!important}
body.bo-v2 #main-content .bo-body p{color:var(--bo-muted);padding-bottom:1.1rem}
body.bo-v2 #main-content .bo-lead p{font-size:1.12rem;color:var(--bo-muted);max-width:60ch;padding-bottom:0}
body.bo-v2 #main-content .bo-head{margin-bottom:3rem!important}
body.bo-v2 #main-content .bo-head>.et_pb_column{max-width:720px}
body.bo-v2 #main-content .bo-head-center{text-align:center}
body.bo-v2 #main-content .bo-head-center>.et_pb_column{float:none;margin:0 auto!important}
body.bo-v2 #main-content .bo-head-center .et_pb_text_inner{text-align:center}
body.bo-v2 #main-content .bo-head-center .bo-lead p{margin-left:auto;margin-right:auto}
body.bo-v2 #main-content .bo-soft{background:#e9f1f8}

/* --- GRID LAYOUTS (CSS Grid: immune to Divi's flex-basis on columns) --- */
body.bo-v2 #main-content .bo-grid3{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.6rem;align-items:stretch}
body.bo-v2 #main-content .bo-grid4{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;align-items:stretch}
body.bo-v2 #main-content .bo-split-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:4rem;align-items:center}
body.bo-v2 #main-content .bo-cta{display:grid!important;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:2rem;align-items:center}
body.bo-v2 #main-content .bo-grid3>.et_pb_column,
body.bo-v2 #main-content .bo-grid4>.et_pb_column,
body.bo-v2 #main-content .bo-split-row>.et_pb_column,
body.bo-v2 #main-content .bo-cta>.et_pb_column{
  width:auto!important;max-width:none!important;margin:0!important;
  float:none!important;flex:none!important;position:relative}
body.bo-v2 #main-content .bo-grid3:before,body.bo-v2 #main-content .bo-grid3:after,
body.bo-v2 #main-content .bo-grid4:before,body.bo-v2 #main-content .bo-grid4:after,
body.bo-v2 #main-content .bo-split-row:before,body.bo-v2 #main-content .bo-split-row:after,
body.bo-v2 #main-content .bo-cta:after{content:none!important;display:none!important}
body.bo-v2 #main-content .bo-grid3>.et_pb_column>.et_pb_module,
body.bo-v2 #main-content .bo-grid4>.et_pb_column>.et_pb_module{height:100%}
body.bo-v2 #main-content .bo-works-row,body.bo-v2 #main-content .bo-quotes-row{margin-bottom:1.4rem!important}
body.bo-v2 #main-content .bo-steps-row{margin-bottom:3rem!important}
/* additional service rows continue the same 3-up grid */
body.bo-v2 #main-content .bo-svc-more{margin-top:1.6rem!important}
body.bo-v2 #main-content .bo-svc-last>.et_pb_column{grid-column:2}

/* --- buttons (module_class lands on the ) --- */
body.bo-v2 #main-content .et_pb_button_module_wrapper{display:inline-block;vertical-align:top;margin:0 1rem 1rem 0!important}
body.bo-v2 #main-content .et_pb_button.bo-btn,
body.bo-v2 #main-content .et_pb_button.bo-btn:hover{
  display:inline-flex;align-items:center;gap:.55rem;padding:.95rem 1.7rem!important;
  border-radius:999px;font-weight:600;font-size:.95rem;font-family:var(--bo-body);
  border:1.5px solid transparent;transition:.25s;letter-spacing:0;line-height:1.4}
body.bo-v2 #main-content .et_pb_button.bo-btn:after,
body.bo-v2 #main-content .et_pb_button.bo-btn:before{display:none!important;content:none!important;margin:0!important}
body.bo-v2 #main-content .et_pb_button.bo-btn-bronze{background:var(--bo-blue);color:#fff}
body.bo-v2 #main-content .et_pb_button.bo-btn-bronze:hover{background:var(--bo-blue-d);color:#fff;transform:translateY(-2px)}
body.bo-v2 #main-content .et_pb_button.bo-btn-dark{background:var(--bo-ink);color:#fff}
body.bo-v2 #main-content .et_pb_button.bo-btn-dark:hover{background:var(--bo-blue-d);color:#fff;transform:translateY(-2px)}
body.bo-v2 #main-content .et_pb_button.bo-btn-ghost{border-color:rgba(255,255,255,.55);color:#fff;background:transparent}
body.bo-v2 #main-content .et_pb_button.bo-btn-ghost:hover{background:#fff;color:var(--bo-ink);border-color:#fff}
body.bo-v2 #main-content .et_pb_button.bo-btn-outline{border-color:var(--bo-ink);color:var(--bo-ink);background:transparent}
body.bo-v2 #main-content .et_pb_button.bo-btn-outline:hover{background:var(--bo-ink);color:#fff}
body.bo-v2 #main-content .bo-btn-center{text-align:center;margin-top:3rem!important}
body.bo-v2 #main-content .bo-btn-center .et_pb_button_module_wrapper{margin:0!important}

/* --- hero --- */
body.bo-v2 #main-content .bo-hero{
  position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;
  background-size:cover;background-position:center}
body.bo-v2 #main-content .bo-hero:before{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(100deg,rgba(10,13,17,.86) 18%,rgba(10,13,17,.55) 58%,rgba(10,13,17,.3))}
body.bo-v2 #main-content .bo-hero>.et_pb_row{position:relative;z-index:3;width:92%;max-width:1180px}
body.bo-v2 #main-content .bo-hero .et_pb_section_video_bg{z-index:1}
body.bo-v2 #main-content .bo-hero h1{color:#fff;max-width:14ch}
/* display headline: same look as before, no longer an H1 */
body.bo-v2 #main-content .bo-display{
  font-family:var(--bo-display);font-weight:600;font-size:clamp(2.6rem,6vw,4.4rem);
  line-height:1.12;letter-spacing:-.01em;color:#fff;max-width:14ch}
body.bo-v2 #main-content .bo-hero-p{margin-bottom:2.2rem!important}
body.bo-v2 #main-content .bo-hero-p p{max-width:52ch;font-size:1.15rem;color:rgba(255,255,255,.85);padding-bottom:0}
body.bo-v2 #main-content .bo-hero .bo-eyebrow .et_pb_text_inner p,
body.bo-v2 #main-content .bo-hero .bo-eyebrow .et_pb_text_inner h1{color:var(--bo-blue)}
/* trust strip: auto-width items, left aligned, tight gaps (matches the HTML) */
body.bo-v2 #main-content .bo-hero-trust{
  display:flex!important;grid-template-columns:none!important;flex-wrap:wrap;
  gap:2.4rem;justify-content:flex-start;align-items:flex-start;
  margin-top:3.2rem!important;padding-top:1.8rem!important;
  border-top:1px solid rgba(255,255,255,.22)}
body.bo-v2 #main-content .bo-hero-trust>.et_pb_column{width:auto!important;flex:0 0 auto!important;max-width:none!important;margin:0!important}
body.bo-v2 #main-content .bo-trust-v{font-family:var(--bo-display);font-size:1.7rem;font-weight:600;color:#fff;line-height:1.15}
body.bo-v2 #main-content .bo-trust-l{color:rgba(255,255,255,.72);font-size:.83rem;letter-spacing:.04em;line-height:1.5;white-space:nowrap}

/* --- split --- */
body.bo-v2 #main-content .bo-split-img img{
  border-radius:18px;box-shadow:var(--bo-shadow);width:100%;aspect-ratio:4/3.4;object-fit:cover}
body.bo-v2 #main-content .bo-badge-float{
  position:absolute;left:-1.4rem;bottom:-1.4rem;z-index:4;width:auto!important;
  background:var(--bo-ink);border-radius:16px;padding:1.1rem 1.4rem;box-shadow:var(--bo-shadow)}
body.bo-v2 #main-content .bo-badge-v{font-family:var(--bo-display);font-size:1.6rem;font-weight:600;color:var(--bo-blue);line-height:1}
body.bo-v2 #main-content .bo-badge-l{font-size:.8rem;color:rgba(255,255,255,.75);line-height:1.4}

/* --- tick list (literal glyph: WP strips CSS backslash escapes) --- */
body.bo-v2 #main-content .bo-ticks{margin-bottom:1.4rem!important}
body.bo-v2 #main-content .bo-ticks ul{list-style:none!important;padding:0!important;margin:1.4rem 0 .4rem;display:grid;gap:.7rem}
body.bo-v2 #main-content .bo-ticks li{
  display:flex;gap:.7rem;align-items:flex-start;font-weight:500;padding:0!important;line-height:1.5;list-style:none!important}
body.bo-v2 #main-content .bo-ticks li:before{
  content:"✓";flex:0 0 22px;width:22px;height:22px;border-radius:50%;background:rgba(46,163,242,.14);
  color:var(--bo-blue-d);font-size:.8rem;display:inline-flex;align-items:center;
  justify-content:center;margin-top:.2rem}

/* --- service cards (blurb) --- */
body.bo-v2 #main-content .bo-card{
  background:#fff;border:1px solid var(--bo-line);border-radius:18px;overflow:hidden;
  transition:.3s;display:flex;flex-direction:column}
body.bo-v2 #main-content .bo-card:hover{transform:translateY(-6px);box-shadow:var(--bo-shadow)}
body.bo-v2 #main-content .bo-card .et_pb_blurb_content{
  max-width:none!important;width:100%;display:flex;flex-direction:column;flex:1;text-align:left}
body.bo-v2 #main-content .bo-card .et_pb_main_blurb_image{
  margin:0!important;width:100%;max-width:none;aspect-ratio:16/11;overflow:hidden;display:block}
body.bo-v2 #main-content .bo-card .et_pb_main_blurb_image a,
body.bo-v2 #main-content .bo-card .et_pb_main_blurb_image .et_pb_image_wrap{display:block;width:100%;height:100%}
body.bo-v2 #main-content .bo-card .et_pb_main_blurb_image img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
body.bo-v2 #main-content .bo-card:hover .et_pb_main_blurb_image img{transform:scale(1.06)}
body.bo-v2 #main-content .bo-card .et_pb_blurb_container{
  padding:1.6rem;text-align:left;display:flex;flex-direction:column;gap:.7rem;flex:1}
body.bo-v2 #main-content .bo-card .et_pb_module_header{font-family:var(--bo-display);font-size:1.35rem;padding:0;font-weight:600;line-height:1.2}
body.bo-v2 #main-content .bo-card .et_pb_module_header a{color:var(--bo-ink)}
body.bo-v2 #main-content .bo-card .et_pb_blurb_description{display:flex;flex-direction:column;gap:.7rem;flex:1}
body.bo-v2 #main-content .bo-card .et_pb_blurb_description p{color:var(--bo-muted);font-size:.96rem;padding-bottom:0;flex:1}
body.bo-v2 #main-content .bo-more{display:inline-block;color:var(--bo-blue-d);font-weight:600;font-size:.9rem;
  margin-top:auto;text-decoration:none;transition:color .18s ease}
body.bo-v2 #main-content .bo-more:hover,body.bo-v2 #main-content .bo-more:focus{color:var(--bo-blue);text-decoration:none}
body.bo-v2 #main-content .bo-more:after{content:" →"}

/* --- dark band --- */
body.bo-v2 #main-content .bo-band h2,body.bo-v2 #main-content .bo-band h3{color:#fff}
body.bo-v2 #main-content .bo-band .bo-eyebrow .et_pb_text_inner p{color:var(--bo-blue)}
body.bo-v2 #main-content .bo-band .bo-lead p{color:rgba(255,255,255,.72)}
body.bo-v2 #main-content .bo-step{
  background:var(--bo-ink2);border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:1.9rem}
body.bo-v2 #main-content .bo-num{
  font-family:var(--bo-display);font-size:2.6rem;color:var(--bo-blue);opacity:.9;line-height:1;margin-bottom:1rem}
body.bo-v2 #main-content .bo-step h3{
  font-size:1.02rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.6rem;color:#fff}
body.bo-v2 #main-content .bo-step p{color:rgba(255,255,255,.7);font-size:.93rem;padding-bottom:0}

/* --- stats --- */
body.bo-v2 #main-content .bo-stat .et_pb_text_inner{text-align:center}
body.bo-v2 #main-content .bo-stat-v{
  font-family:var(--bo-display);font-size:clamp(2.2rem,4vw,3.2rem);font-weight:600;
  color:var(--bo-blue);line-height:1.1}
body.bo-v2 #main-content .bo-stat-l{
  color:rgba(255,255,255,.65);letter-spacing:.05em;text-transform:uppercase;font-size:.78rem;line-height:1.5}

/* --- portfolio tiles (blurb) --- */
body.bo-v2 #main-content .bo-work{position:relative;border-radius:18px;overflow:hidden;display:block}
body.bo-v2 #main-content .bo-work .et_pb_blurb_content{max-width:none!important;width:100%;height:100%;position:static}
body.bo-v2 #main-content .bo-work .et_pb_main_blurb_image{
  margin:0!important;width:100%;max-width:none;aspect-ratio:4/3;overflow:hidden;display:block}
body.bo-v2 #main-content .bo-work .et_pb_main_blurb_image a,
body.bo-v2 #main-content .bo-work .et_pb_main_blurb_image .et_pb_image_wrap{display:block;width:100%;height:100%}
body.bo-v2 #main-content .bo-work .et_pb_main_blurb_image img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
body.bo-v2 #main-content .bo-work:hover .et_pb_main_blurb_image img{transform:scale(1.07)}
body.bo-v2 #main-content .bo-work .et_pb_blurb_container{
  position:absolute;left:0;right:0;bottom:0;padding:2.4rem 1.4rem 1.2rem;text-align:left;
  display:flex;flex-direction:column;
  background:linear-gradient(180deg,transparent,rgba(10,13,17,.85))}
body.bo-v2 #main-content .bo-work .et_pb_blurb_description{order:-1}
body.bo-v2 #main-content .bo-work .et_pb_module_header{
  font-family:var(--bo-body);font-weight:600;font-size:1.02rem;padding:0;color:#fff;line-height:1.3}
body.bo-v2 #main-content .bo-work .et_pb_module_header a{color:#fff}
body.bo-v2 #main-content .bo-work-cat{
  color:var(--bo-blue);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500}

/* --- testimonials --- */
body.bo-v2 #main-content .bo-quote{
  background:#fff;border:1px solid var(--bo-line);border-radius:18px;
  padding:1.8rem 1.8rem 5.4rem!important;position:relative}
body.bo-v2 #main-content .bo-quote:before{display:none!important;content:none!important}
/* Divi makes the description position:relative, which would anchor the absolutely
   positioned author/meta to it instead of the card — force it back to static */
body.bo-v2 #main-content .bo-quote .et_pb_testimonial_description{
  position:static!important;margin-left:0!important;min-height:0!important;width:auto!important}
body.bo-v2 #main-content .bo-quote .et_pb_testimonial_description_inner{padding:0}
body.bo-v2 #main-content .bo-quote p{color:var(--bo-muted);font-size:.95rem;padding-bottom:0}
body.bo-v2 #main-content .bo-stars{color:#e8a63c;letter-spacing:.15em;font-size:.95rem;margin-bottom:.9rem}
body.bo-v2 #main-content .bo-quote .et_pb_testimonial_portrait{
  display:block!important;position:absolute;left:1.8rem;bottom:1.7rem;
  width:44px!important;height:44px!important;min-width:44px;border-radius:50%;
  margin:0!important;background-size:cover;background-position:center}
body.bo-v2 #main-content .bo-quote .et_pb_testimonial_portrait:before{display:none!important;content:none!important}
body.bo-v2 #main-content .bo-quote .et_pb_testimonial_author{
  position:absolute;left:5.1rem;right:1.8rem;bottom:2.6rem;font-size:.95rem;font-weight:700;
  color:var(--bo-ink);font-style:normal;line-height:1.2}
body.bo-v2 #main-content .bo-quote .et_pb_testimonial_meta{
  position:absolute;left:5.1rem;right:1.8rem;bottom:1.5rem;color:var(--bo-muted);
  font-size:.8rem;padding:0;line-height:1.2}

/* --- closing CTA --- */
body.bo-v2 #main-content .bo-cta{
  position:relative;overflow:hidden;border-radius:26px;
  background-size:cover!important;background-position:center!important}
body.bo-v2 #main-content .bo-cta:before{
  content:""!important;position:absolute;inset:0;z-index:1;display:block!important;
  background:linear-gradient(95deg,rgba(10,13,17,.9) 30%,rgba(10,13,17,.5))}
body.bo-v2 #main-content .bo-cta h2{color:#fff}
body.bo-v2 #main-content .bo-cta .bo-eyebrow .et_pb_text_inner p{color:var(--bo-blue)}
body.bo-v2 #main-content .bo-cta .bo-body p{color:rgba(255,255,255,.82);max-width:50ch;padding-bottom:0}
body.bo-v2 #main-content .bo-cta-btns{text-align:right}
body.bo-v2 #main-content .bo-cta-btns .et_pb_button_module_wrapper{margin:0 0 1rem 1rem!important}

/* --- responsive --- */
/* --- services slider: three visible, rest scroll --- */
body.bo-v2 #main-content .bo-slider{position:relative}
body.bo-v2 #main-content .bo-slide-track{
  display:flex;gap:1.6rem;overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;
  padding:.5rem .3rem 1.2rem;margin:-.5rem -.3rem 0;
  scrollbar-width:none;-ms-overflow-style:none}
body.bo-v2 #main-content .bo-slide-track::-webkit-scrollbar{display:none}
body.bo-v2 #main-content .bo-scard{
  flex:0 0 calc((100% - 3.2rem)/3);scroll-snap-align:start;
  background:#fff;border:1px solid var(--bo-line);border-radius:18px;overflow:hidden;
  display:flex;flex-direction:column;transition:transform .3s ease,box-shadow .3s ease}
body.bo-v2 #main-content .bo-scard:hover{transform:translateY(-6px);box-shadow:var(--bo-shadow)}
body.bo-v2 #main-content .bo-scard-media{display:block;width:100%;aspect-ratio:16/11;overflow:hidden;line-height:0}
body.bo-v2 #main-content .bo-scard-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
body.bo-v2 #main-content .bo-scard:hover .bo-scard-media img{transform:scale(1.06)}
body.bo-v2 #main-content .bo-scard-body{padding:1.6rem;display:flex;flex-direction:column;gap:.7rem;flex:1}
body.bo-v2 #main-content .bo-scard-title{
  font-family:var(--bo-display);font-size:1.35rem;font-weight:600;line-height:1.2;
  margin:0;padding:0}
body.bo-v2 #main-content .bo-scard-title a{color:var(--bo-ink);text-decoration:none}
body.bo-v2 #main-content .bo-scard-title a:hover{color:var(--bo-blue-d)}
body.bo-v2 #main-content .bo-scard-body p{color:var(--bo-muted);font-size:.96rem;margin:0;padding:0;flex:1;line-height:1.65}
body.bo-v2 #main-content .bo-sl-nav{
  position:absolute;top:34%;transform:translateY(-50%);z-index:3;
  width:46px;height:46px;padding:0;border-radius:50%;border:1px solid var(--bo-line);
  background:#fff;color:var(--bo-ink);font-size:1.6rem;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 24px -12px rgba(0,23,43,.4);
  transition:background .2s ease,color .2s ease,opacity .2s ease}
body.bo-v2 #main-content .bo-sl-nav:hover{background:var(--bo-blue);color:#fff;border-color:var(--bo-blue)}
body.bo-v2 #main-content .bo-sl-nav:disabled{opacity:0;pointer-events:none}
body.bo-v2 #main-content .bo-sl-prev{left:-20px}
body.bo-v2 #main-content .bo-sl-next{right:-20px}

/* --- credentials --- */
body.bo-v2 #main-content .bo-cred{background:#fff;border:1px solid var(--bo-line);border-radius:18px;padding:2.1rem 1.3rem 1.8rem;height:100%;display:flex;flex-direction:column;align-items:center;text-align:center}
body.bo-v2 #main-content .bo-cred .et_pb_main_blurb_image{margin:0 0 1.1rem!important;width:auto;max-width:none}
body.bo-v2 #main-content .bo-cred .et_pb_main_blurb_image .et_pb_image_wrap{display:inline-block;width:auto}
body.bo-v2 #main-content .bo-cred .et_pb_main_blurb_image img{width:122px;height:122px;object-fit:contain}
body.bo-v2 #main-content .bo-cred .et_pb_blurb_content{max-width:none!important;width:100%;text-align:center}
body.bo-v2 #main-content .bo-cred .et_pb_blurb_container{text-align:center}
body.bo-v2 #main-content .bo-cred .et_pb_module_header{
  font-family:var(--bo-body);font-size:.95rem;font-weight:600;
  color:var(--bo-ink);line-height:1.5;padding:0}
body.bo-v2 #main-content .bo-cred-note{margin-top:2.2rem!important}
body.bo-v2 #main-content .bo-cred-note p{text-align:center;color:var(--bo-muted);max-width:66ch;margin:0 auto;padding-bottom:0}

/* --- founder + enquiry form --- */
/* background mirrors the studio backdrop in Mile-Full-New.webp so the photo dissolves into the section */
body.bo-v2 #main-content .bo-founder{background:linear-gradient(180deg,#f5f5f5 0%,#fbfbfb 46%,#f2f1f0 100%)!important}
body.bo-v2 #main-content .bo-founder-row{display:grid!important;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:3rem;align-items:start}
body.bo-v2 #main-content .bo-founder-row>.et_pb_column{width:auto!important;max-width:none!important;margin:0!important;
  float:none!important;flex:none!important;position:relative}
body.bo-v2 #main-content .bo-founder-row:before,body.bo-v2 #main-content .bo-founder-row:after{content:none!important;display:none!important}
body.bo-v2 #main-content .bo-founder-img{margin:0 0 0 26px!important;display:block;line-height:0}body.bo-v2 #main-content .bo-founder-img .et_pb_image_wrap{margin:0!important;display:block;line-height:0}
body.bo-v2 #main-content .bo-founder-img img{display:block;width:100%;height:auto;border:0;border-radius:22px;box-shadow:0 26px 60px -32px rgba(0,23,43,.5)}
body.bo-v2 #main-content .bo-founder-badge{position:absolute;left:0;bottom:-.6rem;z-index:4;width:auto!important;background:var(--bo-ink);border-radius:16px;padding:1.05rem 1.5rem;box-shadow:var(--bo-shadow);margin:0!important}body.bo-v2 #main-content .bo-founder-badge .et_pb_text_inner{text-align:left}body.bo-v2 #main-content .bo-form-col{margin-bottom:4.5rem!important}
body.bo-v2 #main-content .bo-quote-form h2{font-family:var(--bo-display);font-weight:600;
  font-size:clamp(2rem,3.2vw,2.9rem);line-height:1.12;letter-spacing:-.01em;
  color:var(--bo-ink);margin:0 0 1.7rem;padding:0}
body.bo-v2 #main-content .bo-qf-eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--bo-body);
  font-size:.78rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  color:var(--bo-blue-d);margin:0 0 .9rem;padding:0}
body.bo-v2 #main-content .bo-qf-eyebrow:before{content:"";width:34px;height:1.5px;background:var(--bo-blue);
  display:inline-block;flex:0 0 34px}
body.bo-v2 #main-content .bo-qf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem 1.4rem}
body.bo-v2 #main-content .bo-qf-field{display:flex;flex-direction:column;gap:.45rem}
body.bo-v2 #main-content .bo-qf-full{grid-column:1/-1}
body.bo-v2 #main-content .bo-quote-form label{font-family:var(--bo-body);font-size:.9rem;font-weight:600;color:var(--bo-ink)}
body.bo-v2 #main-content .bo-quote-form input,body.bo-v2 #main-content .bo-quote-form select,body.bo-v2 #main-content .bo-quote-form textarea{
  font-family:var(--bo-body);font-size:1rem;color:var(--bo-ink);background:#fff;
  border:1px solid var(--bo-line);border-radius:12px;padding:.85rem 1rem;width:100%;
  transition:border-color .18s ease,box-shadow .18s ease}
body.bo-v2 #main-content .bo-quote-form textarea{min-height:132px;resize:vertical}
body.bo-v2 #main-content .bo-quote-form input:focus,body.bo-v2 #main-content .bo-quote-form select:focus,body.bo-v2 #main-content .bo-quote-form textarea:focus{
  outline:none;border-color:var(--bo-blue);box-shadow:0 0 0 3px rgba(46,163,242,.16)}
body.bo-v2 #main-content .bo-quote-form input::placeholder,body.bo-v2 #main-content .bo-quote-form textarea::placeholder{color:#9aa7b4}
body.bo-v2 #main-content .bo-qf-submit{display:inline-block;margin-top:1.5rem;background:var(--bo-blue);color:#fff;
  font-family:var(--bo-body);font-size:1rem;font-weight:600;border:0;border-radius:30px;
  padding:.9rem 1.9rem;cursor:pointer;transition:background .18s ease,transform .18s ease}
body.bo-v2 #main-content .bo-qf-submit:hover{background:var(--bo-blue-d);transform:translateY(-2px)}
body.bo-v2 #main-content .bo-qf-note{font-size:.9rem;color:var(--bo-muted);margin:1rem 0 0;padding:0}
body.bo-v2 #main-content .bo-qf-note a{color:var(--bo-blue-d);font-weight:600;text-decoration:none}
body.bo-v2 #main-content .bo-qf-note a:hover{color:var(--bo-blue)}

@media(max-width:1100px){
  body.bo-v2 #main-content .bo-hero-trust{gap:1.6rem 2rem}
}
@media(max-width:980px){
  body.bo-v2 #main-content .bo-split-row{grid-template-columns:minmax(0,1fr);gap:2.5rem}
  body.bo-v2 #main-content .bo-grid3{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.bo-v2 #main-content .bo-grid4{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.bo-v2 #main-content .bo-svc-last>.et_pb_column{grid-column:auto}
  body.bo-v2 #main-content .bo-founder-row{grid-template-columns:minmax(0,1fr);gap:0}
  body.bo-v2 #main-content .bo-founder-row>.et_pb_column:first-child{order:2}
  body.bo-v2 #main-content .bo-founder-img{max-width:420px;margin:0 auto!important}
  body.bo-v2 #main-content .bo-founder-badge{position:absolute;left:0;bottom:-.6rem;z-index:4;width:auto!important;background:var(--bo-ink);border-radius:16px;padding:1.05rem 1.5rem;box-shadow:var(--bo-shadow);margin:0!important}body.bo-v2 #main-content .bo-founder-badge .et_pb_text_inner{text-align:left}body.bo-v2 #main-content .bo-form-col{margin-bottom:2.5rem!important}
  body.bo-v2 #main-content .bo-scard{flex:0 0 calc((100% - 1.6rem)/2)}
  body.bo-v2 #main-content .bo-cta{grid-template-columns:minmax(0,1fr)}
  body.bo-v2 #main-content .bo-cta-btns{text-align:left}
  body.bo-v2 #main-content .bo-cta-btns .et_pb_button_module_wrapper{margin:0 1rem 1rem 0!important}
  body.bo-v2 #main-content .bo-badge-float{left:0;bottom:-1rem}
}
@media(max-width:767px){
  body.bo-v2 #main-content .bo-grid3,body.bo-v2 #main-content .bo-grid4{grid-template-columns:minmax(0,1fr)}
  body.bo-v2 #main-content .bo-hero{min-height:auto!important}
  body.bo-v2 #main-content .bo-hero h1{max-width:none}
  body.bo-v2 #main-content .bo-hero-trust{gap:1.4rem 2rem}
  body.bo-v2 #main-content .bo-trust-l{white-space:normal}
  body.bo-v2 #main-content .bo-qf-grid{grid-template-columns:minmax(0,1fr)}
  body.bo-v2 #main-content .bo-scard{flex:0 0 100%}
  body.bo-v2 #main-content .bo-sl-prev{left:6px}
  body.bo-v2 #main-content .bo-sl-next{right:6px}
}
/* ===================================================================
   V2 ADDITIONS — inner-page components
   Built on the same tokens as the approved homepage. Nothing here
   overrides a homepage component; these are the pieces the homepage
   never needed (page hero, breadcrumbs, icon tiles, FAQ accordion,
   contact info lines, two-up grid, plain gallery tiles).
   =================================================================== */

/* --- inner page hero --- */
body.bo-v2 #main-content .bo-page-hero{position:relative;overflow:hidden;background-size:cover;background-position:center}
body.bo-v2 #main-content .bo-page-hero:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(10,13,17,.74),rgba(10,13,17,.56))}
body.bo-v2 #main-content .bo-page-hero>.et_pb_row{position:relative;z-index:2;width:92%;max-width:1180px}
body.bo-v2 #main-content .bo-page-hero h1{color:#fff;max-width:22ch}
body.bo-v2 #main-content .bo-page-hero .bo-eyebrow .et_pb_text_inner p{color:var(--bo-blue)}
body.bo-v2 #main-content .bo-page-hero .bo-lead p{color:rgba(255,255,255,.85);font-size:1.1rem;max-width:56ch;padding-bottom:0}
body.bo-v2 #main-content .bo-page-hero .bo-h1{margin-bottom:1rem!important}

/* --- breadcrumbs --- */
body.bo-v2 #main-content .bo-crumbs{margin-bottom:1.2rem!important}
body.bo-v2 #main-content .bo-crumbs p{font-size:.83rem;color:rgba(255,255,255,.65);padding-bottom:0;font-family:var(--bo-body)}
body.bo-v2 #main-content .bo-crumbs a{color:rgba(255,255,255,.82);text-decoration:none}
body.bo-v2 #main-content .bo-crumbs a:hover{color:var(--bo-blue)}

/* --- two-up grid (same mechanics as bo-grid3/4) --- */
body.bo-v2 #main-content .bo-grid2{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem;align-items:stretch}
body.bo-v2 #main-content .bo-grid2>.et_pb_column{width:auto!important;max-width:none!important;margin:0!important;float:none!important;flex:none!important;position:relative}
body.bo-v2 #main-content .bo-grid2:before,body.bo-v2 #main-content .bo-grid2:after{content:none!important;display:none!important}
body.bo-v2 #main-content .bo-grid2>.et_pb_column>.et_pb_module{height:100%}

/* --- reversed split (image on the right) --- */
body.bo-v2 #main-content .bo-split-rev>.et_pb_column:first-child{order:2}

/* --- icon tiles --- */
body.bo-v2 #main-content .bo-tile{background:#fff;border:1px solid var(--bo-line);border-radius:18px;padding:1.9rem;height:100%;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
body.bo-v2 #main-content .bo-tile:hover{transform:translateY(-5px);box-shadow:var(--bo-shadow);border-color:rgba(46,163,242,.45)}
body.bo-v2 #main-content .bo-tile .bo-ico{width:52px;height:52px;border-radius:14px;background:rgba(46,163,242,.12);color:var(--bo-blue-d);display:flex;align-items:center;justify-content:center;margin-bottom:1.1rem;font-size:1.35rem;line-height:1}
body.bo-v2 #main-content .bo-tile h3{font-size:1.12rem;margin-bottom:.5rem;color:var(--bo-ink)}
body.bo-v2 #main-content .bo-tile p{color:var(--bo-muted);font-size:.95rem;padding-bottom:0}
body.bo-v2 #main-content .bo-band .bo-tile{background:var(--bo-ink2);border-color:rgba(255,255,255,.09)}
body.bo-v2 #main-content .bo-band .bo-tile h3{color:#fff}
body.bo-v2 #main-content .bo-band .bo-tile p{color:rgba(255,255,255,.7)}

/* --- FAQ accordion --- */
body.bo-v2 #main-content .bo-faq{max-width:820px;margin-inline:auto;display:grid;gap:.9rem}
body.bo-v2 #main-content .bo-faq details{background:#fff;border:1px solid var(--bo-line);border-radius:14px;padding:1.2rem 1.5rem;transition:border-color .25s ease,box-shadow .25s ease}
body.bo-v2 #main-content .bo-faq details[open]{border-color:rgba(46,163,242,.5);box-shadow:var(--bo-shadow)}
body.bo-v2 #main-content .bo-faq summary{font-family:var(--bo-body);font-weight:600;font-size:1.05rem;color:var(--bo-ink);cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem}
body.bo-v2 #main-content .bo-faq summary::-webkit-details-marker{display:none}
body.bo-v2 #main-content .bo-faq summary:after{content:"+";font-family:var(--bo-display);font-size:1.5rem;line-height:1;color:var(--bo-blue-d);transition:transform .25s ease;flex:0 0 auto}
body.bo-v2 #main-content .bo-faq details[open] summary:after{transform:rotate(45deg)}
body.bo-v2 #main-content .bo-faq .bo-a{padding-top:.9rem;color:var(--bo-muted);font-size:.97rem;line-height:1.65}
body.bo-v2 #main-content .bo-faq .bo-a p{padding-bottom:0;color:var(--bo-muted)}
body.bo-v2 #main-content .bo-faq .bo-a p+p{margin-top:.7rem}
body.bo-v2 #main-content .bo-faq .bo-a ul{list-style:disc;padding-left:1.2rem;margin:.7rem 0 0;display:grid;gap:.35rem}
body.bo-v2 #main-content .bo-faq .bo-a li{color:var(--bo-muted);font-size:.97rem}

/* --- contact info lines --- */
body.bo-v2 #main-content .bo-infolist{display:grid;gap:1.1rem}
body.bo-v2 #main-content .bo-info-line{display:flex;gap:1rem;align-items:flex-start;background:#fff;border:1px solid var(--bo-line);border-radius:14px;padding:1.2rem 1.4rem}
body.bo-v2 #main-content .bo-info-line .bo-ico{width:44px;height:44px;flex:0 0 44px;border-radius:12px;background:rgba(46,163,242,.12);color:var(--bo-blue-d);display:flex;align-items:center;justify-content:center;font-size:1.15rem;line-height:1}
body.bo-v2 #main-content .bo-info-line b{display:block;font-size:.95rem;color:var(--bo-ink);line-height:1.5}
body.bo-v2 #main-content .bo-info-line a,body.bo-v2 #main-content .bo-info-line span{color:var(--bo-muted);font-size:.93rem;text-decoration:none}
body.bo-v2 #main-content .bo-info-line a:hover{color:var(--bo-blue-d)}

/* --- plain gallery tiles (portfolio page) --- */
body.bo-v2 #main-content .bo-gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem}
body.bo-v2 #main-content .bo-gal-item{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/3;display:block}
body.bo-v2 #main-content .bo-gal-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
body.bo-v2 #main-content .bo-gal-item:hover img{transform:scale(1.07)}
body.bo-v2 #main-content .bo-gal-cap{position:absolute;left:0;right:0;bottom:0;padding:2.4rem 1.4rem 1.2rem;background:linear-gradient(180deg,transparent,rgba(10,13,17,.85))}
body.bo-v2 #main-content .bo-gal-cap small{display:block;font-weight:500;color:var(--bo-blue);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;line-height:1.5}
body.bo-v2 #main-content .bo-gal-cap b{display:block;color:#fff;font-weight:600;font-size:1.02rem;line-height:1.3;font-family:var(--bo-body)}

/* --- shared helper --- */
body.bo-v2 #main-content .bo-note p{text-align:center;color:var(--bo-muted);max-width:66ch;margin:0 auto;padding-bottom:0}

/* --- v2 additions: responsive --- */
@media(max-width:980px){
  body.bo-v2 #main-content .bo-grid2{grid-template-columns:minmax(0,1fr)}
  body.bo-v2 #main-content .bo-gal{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.bo-v2 #main-content .bo-split-rev>.et_pb_column:first-child{order:0}
  body.bo-v2 #main-content .bo-page-hero h1{max-width:none}
}
@media(max-width:767px){
  body.bo-v2 #main-content .bo-gal{grid-template-columns:minmax(0,1fr)}
}

/* --- stat rows outside the dark band need dark labels (homepage only ever used them on navy) --- */
body.bo-v2 #main-content .bo-section:not(.bo-band) .bo-stat-l{color:var(--bo-muted)}
body.bo-v2 #main-content .bo-stats-row{margin-bottom:0!important}

/* --- contact page: form left, details right --- */
body.bo-v2 #main-content .bo-contact-row{display:grid!important;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:3.5rem;align-items:start}
body.bo-v2 #main-content .bo-contact-row>.et_pb_column{width:auto!important;max-width:none!important;margin:0!important;float:none!important;flex:none!important;position:relative}
body.bo-v2 #main-content .bo-contact-row:before,body.bo-v2 #main-content .bo-contact-row:after{content:none!important;display:none!important}
body.bo-v2 #main-content .bo-contact-form .bo-quote-form h2{margin-top:0}
@media(max-width:980px){body.bo-v2 #main-content .bo-contact-row{grid-template-columns:minmax(0,1fr);gap:2.5rem}}

/* --- service cards: wpautop wraps the 'read more' link in its own <p>, so both
   paragraphs inherited flex:1 and split the spare space. Grow the copy only and
   pin the link to the bottom, so links line up across a row of uneven cards. --- */
body.bo-v2 #main-content .bo-card .et_pb_blurb_description>p{flex:0 0 auto;padding-bottom:0}
body.bo-v2 #main-content .bo-card .et_pb_blurb_description>p:first-child{flex:1 1 auto}
body.bo-v2 #main-content .bo-card .et_pb_blurb_description>*:last-child{margin-top:auto}

/* --- tile grids wrap onto several Divi rows; match the vertical gap to the
   1.6rem column gap so the grid reads as one block --- */
body.bo-v2 #main-content .bo-tiles-row+.bo-tiles-row{margin-top:1.6rem!important}

/* ===================================================================
   V2 ROUND 2 — gallery hub, photo galleries, service areas, blog
   Same tokens as the approved homepage. Divi's own Gallery and Blog
   modules are restyled in place so both stay editable in the builder.
   =================================================================== */

/* --- gallery hub: category tiles --- */
body.bo-v2 #main-content .bo-cat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.6rem}
body.bo-v2 #main-content .bo-cat{position:relative;display:block;border-radius:18px;overflow:hidden;min-height:330px;box-shadow:0 14px 30px -18px rgba(0,23,43,.35);transition:transform .35s ease,box-shadow .35s ease}
body.bo-v2 #main-content .bo-cat:hover{transform:translateY(-6px);box-shadow:var(--bo-shadow)}
body.bo-v2 #main-content .bo-cat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
body.bo-v2 #main-content .bo-cat:hover img{transform:scale(1.07)}
body.bo-v2 #main-content .bo-cat-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,13,17,0) 14%,rgba(10,13,17,.42) 44%,rgba(10,13,17,.84) 70%,rgba(10,13,17,.96) 100%)}
body.bo-v2 #main-content .bo-cat-body{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:1.6rem;display:block}
body.bo-v2 #main-content .bo-cat-eyebrow{display:block;color:var(--bo-blue);font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;margin-bottom:.4rem}
body.bo-v2 #main-content .bo-cat-title{display:block;font-family:var(--bo-display);font-weight:600;font-size:1.35rem;line-height:1.2;color:#fff;margin-bottom:.5rem}
body.bo-v2 #main-content .bo-cat-desc{display:block;color:rgba(255,255,255,.8);font-size:.94rem;line-height:1.55;margin-bottom:.8rem}
body.bo-v2 #main-content .bo-cat-cta{display:inline-block;color:var(--bo-blue);font-weight:600;font-size:.9rem;transition:gap .2s ease}
body.bo-v2 #main-content .bo-cat:hover .bo-cat-cta{color:#fff}

/* --- Divi Gallery module, restyled --- */
body.bo-v2 #main-content .bo-gallery .et_pb_gallery_items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem}
body.bo-v2 #main-content .bo-gallery .et_pb_gallery_item{width:auto!important;margin:0!important;clear:none!important;float:none!important}
body.bo-v2 #main-content .bo-gallery .et_pb_gallery_items:before,
body.bo-v2 #main-content .bo-gallery .et_pb_gallery_items:after{content:none!important;display:none!important}
body.bo-v2 #main-content .bo-gallery .et_pb_gallery_image{border-radius:18px;overflow:hidden;aspect-ratio:4/3;display:block;box-shadow:0 14px 30px -20px rgba(0,23,43,.35)}
body.bo-v2 #main-content .bo-gallery .et_pb_gallery_image img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
body.bo-v2 #main-content .bo-gallery .et_pb_gallery_item:hover .et_pb_gallery_image img{transform:scale(1.07)}
body.bo-v2 #main-content .bo-gallery .et_overlay{border-radius:18px;background:rgba(0,23,43,.35)}
body.bo-v2 #main-content .bo-gallery .et_pb_gallery_title,
body.bo-v2 #main-content .bo-gallery .et_pb_gallery_caption{display:none}

/* --- service areas: jump pills --- */
body.bo-v2 #main-content .bo-jump{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;max-width:900px;margin:0 auto}
body.bo-v2 #main-content .bo-jump a{display:inline-block;padding:.5rem 1.05rem;border-radius:999px;border:1px solid var(--bo-line);background:#fff;color:var(--bo-ink);font-size:.9rem;font-weight:500;text-decoration:none;transition:background .2s ease,color .2s ease,border-color .2s ease}
body.bo-v2 #main-content .bo-jump a:hover{background:var(--bo-blue);border-color:var(--bo-blue);color:#fff}

/* --- service areas: alternating map + copy rows --- */
body.bo-v2 #main-content .bo-areas{display:grid;gap:2.6rem;scroll-behavior:smooth}
body.bo-v2 #main-content .bo-area{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2.6rem;align-items:center;scroll-margin-top:110px}
body.bo-v2 #main-content .bo-area:nth-child(even) .bo-area-map{order:2}
body.bo-v2 #main-content .bo-area-map{position:relative;border-radius:18px;overflow:hidden;box-shadow:var(--bo-shadow);aspect-ratio:16/11;background:#e9f1f8}
body.bo-v2 #main-content .bo-area-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
body.bo-v2 #main-content .bo-area-tag{position:absolute;left:1rem;bottom:1rem;z-index:2;background:var(--bo-ink);color:#fff;border-radius:14px;padding:.7rem 1rem;line-height:1.3;pointer-events:none}
body.bo-v2 #main-content .bo-area-tag b{display:block;font-family:var(--bo-display);font-size:1.05rem;font-weight:600;color:#fff}
body.bo-v2 #main-content .bo-area-tag span{display:block;font-size:.78rem;color:rgba(255,255,255,.72)}
body.bo-v2 #main-content .bo-area-num{display:block;font-family:var(--bo-display);font-size:2.2rem;line-height:1;color:var(--bo-blue);margin-bottom:.6rem}
body.bo-v2 #main-content .bo-area h3{font-size:1.6rem;margin-bottom:.6rem;color:var(--bo-ink)}
body.bo-v2 #main-content .bo-area-pill{display:inline-block;padding:.28rem .8rem;border-radius:999px;background:rgba(46,163,242,.12);color:var(--bo-blue-d);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.9rem}
body.bo-v2 #main-content .bo-area p{color:var(--bo-muted);font-size:1rem;line-height:1.65;margin-bottom:1.2rem}
body.bo-v2 #main-content .bo-area p a{color:var(--bo-blue-d);font-weight:600;text-decoration:none}
body.bo-v2 #main-content .bo-area p a:hover{color:var(--bo-blue)}
body.bo-v2 #main-content .bo-area-link{display:inline-flex;align-items:center;gap:.55rem;padding:.8rem 1.5rem;border-radius:999px;background:var(--bo-ink);color:#fff;font-weight:600;font-size:.9rem;text-decoration:none;transition:background .2s ease,transform .2s ease}
body.bo-v2 #main-content .bo-area-link:hover{background:var(--bo-blue-d);color:#fff;transform:translateY(-2px)}

/* --- Divi Blog module, restyled as cards --- */
body.bo-v2 #main-content .bo-blog .et_pb_ajax_pagination_container{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.6rem}
body.bo-v2 #main-content .bo-blog .et_pb_post{width:auto!important;margin:0!important;padding:0;background:#fff;border:1px solid var(--bo-line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;transition:transform .3s ease,box-shadow .3s ease}
body.bo-v2 #main-content .bo-blog .et_pb_post:hover{transform:translateY(-6px);box-shadow:var(--bo-shadow)}
body.bo-v2 #main-content .bo-blog .et_pb_image_container,
body.bo-v2 #main-content .bo-blog .entry-featured-image-url{margin:0 0 1.2rem!important;display:block;aspect-ratio:16/11;overflow:hidden}
body.bo-v2 #main-content .bo-blog .et_pb_image_container img,
body.bo-v2 #main-content .bo-blog .entry-featured-image-url img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
body.bo-v2 #main-content .bo-blog .et_pb_post:hover img{transform:scale(1.06)}
body.bo-v2 #main-content .bo-blog .entry-title{font-family:var(--bo-display);font-size:1.25rem;font-weight:600;line-height:1.25;padding:0 1.6rem;margin-bottom:.6rem}
body.bo-v2 #main-content .bo-blog .entry-title a{color:var(--bo-ink);text-decoration:none}
body.bo-v2 #main-content .bo-blog .entry-title a:hover{color:var(--bo-blue-d)}
body.bo-v2 #main-content .bo-blog .post-meta{padding:0 1.6rem;margin-bottom:.7rem;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--bo-blue-d);font-weight:600}
body.bo-v2 #main-content .bo-blog .post-meta a{color:var(--bo-blue-d);text-decoration:none}
body.bo-v2 #main-content .bo-blog .post-content{padding:0 1.6rem 1.6rem;display:flex;flex-direction:column;flex:1}
body.bo-v2 #main-content .bo-blog .post-content p{color:var(--bo-muted);font-size:.96rem;flex:1;padding-bottom:.9rem}
body.bo-v2 #main-content .bo-blog .more-link{align-self:flex-start;color:var(--bo-blue-d);font-weight:600;font-size:.9rem;text-decoration:none;margin-top:auto}
body.bo-v2 #main-content .bo-blog .more-link:after{content:" \2192"}
body.bo-v2 #main-content .bo-blog .pagination{grid-column:1/-1;margin-top:2rem}

/* --- round 2: responsive --- */
@media(max-width:980px){
  body.bo-v2 #main-content .bo-cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.bo-v2 #main-content .bo-gallery .et_pb_gallery_items{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.bo-v2 #main-content .bo-blog .et_pb_ajax_pagination_container{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.bo-v2 #main-content .bo-area{grid-template-columns:minmax(0,1fr);gap:1.6rem}
  body.bo-v2 #main-content .bo-area:nth-child(even) .bo-area-map{order:0}
}
@media(max-width:767px){
  body.bo-v2 #main-content .bo-cat-grid,
  body.bo-v2 #main-content .bo-gallery .et_pb_gallery_items,
  body.bo-v2 #main-content .bo-blog .et_pb_ajax_pagination_container{grid-template-columns:minmax(0,1fr)}
  body.bo-v2 #main-content .bo-jump a{font-size:.85rem;padding:.45rem .9rem}
}

/* ===================================================================
   V2 ROUND 2b — single article + single project case study
   =================================================================== */

/* --- post meta strip under the page-hero H1 --- */
body.bo-v2 #main-content .bo-postmeta{margin-top:1.1rem!important}
body.bo-v2 #main-content .bo-postmeta p{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem;padding-bottom:0;font-size:.85rem;color:rgba(255,255,255,.72);font-family:var(--bo-body)}
body.bo-v2 #main-content .bo-postmeta .bo-cat-chip{display:inline-block;padding:.28rem .8rem;border-radius:999px;background:rgba(46,163,242,.18);color:var(--bo-blue);font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}

/* --- article body: one readable measure, generous rhythm --- */
body.bo-v2 #main-content .bo-article{max-width:760px;margin-inline:auto}
body.bo-v2 #main-content .bo-article p{color:var(--bo-ink);font-size:1.06rem;line-height:1.78;padding-bottom:1.35rem}
body.bo-v2 #main-content .bo-article h2{font-size:clamp(1.6rem,2.6vw,2.1rem);margin:2.6rem 0 1rem}
body.bo-v2 #main-content .bo-article h3{font-size:1.25rem;margin:2rem 0 .8rem}
body.bo-v2 #main-content .bo-article h2:first-child,
body.bo-v2 #main-content .bo-article h3:first-child{margin-top:0}
body.bo-v2 #main-content .bo-article ul,
body.bo-v2 #main-content .bo-article ol{margin:0 0 1.35rem;padding-left:0;display:grid;gap:.6rem}
body.bo-v2 #main-content .bo-article ul li{list-style:none;display:flex;gap:.7rem;align-items:flex-start;line-height:1.7;padding:0}
body.bo-v2 #main-content .bo-article ul li:before{content:"✓";flex:0 0 22px;width:22px;height:22px;border-radius:50%;background:rgba(46,163,242,.14);color:var(--bo-blue-d);font-size:.8rem;display:inline-flex;align-items:center;justify-content:center;margin-top:.25rem}
body.bo-v2 #main-content .bo-article ol{counter-reset:boart;padding-left:0}
body.bo-v2 #main-content .bo-article ol li{list-style:none;counter-increment:boart;display:flex;gap:.7rem;align-items:flex-start;line-height:1.7;padding:0}
body.bo-v2 #main-content .bo-article ol li:before{content:counter(boart);flex:0 0 22px;width:22px;height:22px;border-radius:50%;background:var(--bo-ink);color:#fff;font-size:.75rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;margin-top:.25rem}
body.bo-v2 #main-content .bo-article a{color:var(--bo-blue-d);font-weight:600}
body.bo-v2 #main-content .bo-article a:hover{color:var(--bo-blue)}
body.bo-v2 #main-content .bo-article img{border-radius:18px;box-shadow:var(--bo-shadow);margin:1.6rem 0}
body.bo-v2 #main-content .bo-article blockquote{margin:2rem 0;padding:1.4rem 1.6rem;border-left:3px solid var(--bo-blue);background:#fff;border-radius:0 14px 14px 0;box-shadow:var(--bo-shadow)}
body.bo-v2 #main-content .bo-article blockquote p{font-family:var(--bo-display);font-size:1.15rem;line-height:1.5;color:var(--bo-ink);padding-bottom:0}
body.bo-v2 #main-content .bo-article table{width:100%;border-collapse:collapse;margin:0 0 1.6rem;font-size:.96rem}
body.bo-v2 #main-content .bo-article th,
body.bo-v2 #main-content .bo-article td{border:1px solid var(--bo-line);padding:.75rem .9rem;text-align:left}
body.bo-v2 #main-content .bo-article th{background:#e9f1f8;font-weight:600}

/* --- project case study: facts strip --- */
body.bo-v2 #main-content .bo-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem}
body.bo-v2 #main-content .bo-fact{background:#fff;border:1px solid var(--bo-line);border-radius:18px;padding:1.5rem}
body.bo-v2 #main-content .bo-fact b{display:block;font-family:var(--bo-body);font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--bo-blue-d);margin-bottom:.45rem}
body.bo-v2 #main-content .bo-fact span{display:block;font-family:var(--bo-display);font-size:1.2rem;font-weight:600;line-height:1.3;color:var(--bo-ink)}

@media(max-width:980px){
  body.bo-v2 #main-content .bo-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px){
  body.bo-v2 #main-content .bo-facts{grid-template-columns:minmax(0,1fr)}
  body.bo-v2 #main-content .bo-article p{font-size:1.02rem}
}

/* --- bo-cat title wrap guard: two-line titles must not push the eyebrow into the bright part of the photo --- */
body.bo-v2 #main-content .bo-cat{min-height:360px}
body.bo-v2 #main-content .bo-cat-eyebrow{text-shadow:0 1px 6px rgba(10,13,17,.85)}
body.bo-v2 #main-content .bo-cat-title{text-shadow:0 1px 8px rgba(10,13,17,.5)}

/* --- facts strip needs air before the copy that follows it --- */
body.bo-v2 #main-content .bo-facts-row{margin-bottom:2.6rem!important}
body.bo-v2 #main-content .bo-jump-row{margin-bottom:0!important}

/* ===================================================================
   V2 ROUND 3 — Divi native contact form, thank-you, sitemap,
   404 / archive / search previews
   =================================================================== */

/* --- Divi's own contact form, restyled to match the hand-built one --- */
body.bo-v2 #main-content .bo-diviform .et_pb_contact_main_title{display:none}
body.bo-v2 #main-content .bo-diviform .et_pb_contact_form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem 1.4rem}
body.bo-v2 #main-content .bo-diviform .et_pb_contact_field{width:auto!important;padding:0!important;margin:0!important;float:none!important}
body.bo-v2 #main-content .bo-diviform .et_pb_contact_field_last,
body.bo-v2 #main-content .bo-diviform .et_pb_contact_field.et_pb_contact_field_last{margin:0!important}
body.bo-v2 #main-content .bo-diviform .et_pb_contact_field[data-type="text"],
body.bo-v2 #main-content .bo-diviform .et_pb_contact_field_full{grid-column:1/-1}
body.bo-v2 #main-content .bo-diviform .et_pb_contact_form:before,
body.bo-v2 #main-content .bo-diviform .et_pb_contact_form:after{content:none!important;display:none!important}
body.bo-v2 #main-content .bo-diviform .et_pb_contact_field_options_title{display:block;font-family:var(--bo-body);font-size:.9rem;font-weight:600;color:var(--bo-ink);margin-bottom:.45rem}
body.bo-v2 #main-content .bo-diviform input[type=text],
body.bo-v2 #main-content .bo-diviform input[type=email],
body.bo-v2 #main-content .bo-diviform input[type=tel],
body.bo-v2 #main-content .bo-diviform select,
body.bo-v2 #main-content .bo-diviform textarea{
  font-family:var(--bo-body)!important;font-size:1rem!important;color:var(--bo-ink)!important;background:#fff!important;
  border:1px solid var(--bo-line)!important;border-radius:12px!important;padding:.85rem 1rem!important;width:100%!important;
  transition:border-color .18s ease,box-shadow .18s ease}
body.bo-v2 #main-content .bo-diviform textarea{min-height:132px!important;resize:vertical}
body.bo-v2 #main-content .bo-diviform input:focus,
body.bo-v2 #main-content .bo-diviform select:focus,
body.bo-v2 #main-content .bo-diviform textarea:focus{outline:none!important;border-color:var(--bo-blue)!important;box-shadow:0 0 0 3px rgba(46,163,242,.16)!important}
body.bo-v2 #main-content .bo-diviform .et_contact_bottom_container{grid-column:1/-1;float:none!important;text-align:left;margin:0!important;padding:0}
body.bo-v2 #main-content .bo-diviform .et_pb_contact_submit{
  display:inline-block!important;background:var(--bo-blue)!important;color:#fff!important;
  font-family:var(--bo-body)!important;font-size:1rem!important;font-weight:600!important;
  border:0!important;border-radius:30px!important;padding:.9rem 1.9rem!important;letter-spacing:0!important;
  transition:background .18s ease,transform .18s ease}
body.bo-v2 #main-content .bo-diviform .et_pb_contact_submit:hover{background:var(--bo-blue-d)!important;color:#fff!important;transform:translateY(-2px)}
body.bo-v2 #main-content .bo-diviform .et_pb_contact_submit:after,
body.bo-v2 #main-content .bo-diviform .et_pb_contact_submit:before{display:none!important;content:none!important}
body.bo-v2 #main-content .bo-diviform .et-pb-contact-message{grid-column:1/-1;color:var(--bo-ink)}
body.bo-v2 #main-content .bo-diviform .et-pb-contact-message ul{list-style:none;padding:0}

/* --- link list (sitemap) --- */
body.bo-v2 #main-content .bo-linkcols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.6rem}
body.bo-v2 #main-content .bo-linkcard{background:#fff;border:1px solid var(--bo-line);border-radius:18px;padding:1.8rem;height:100%}
body.bo-v2 #main-content .bo-linkcard h3{font-size:1.15rem;margin-bottom:1rem;color:var(--bo-ink)}
body.bo-v2 #main-content .bo-linkcard ul{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
body.bo-v2 #main-content .bo-linkcard li{padding:0;line-height:1.5}
body.bo-v2 #main-content .bo-linkcard a{color:var(--bo-muted);font-size:.96rem;text-decoration:none;display:inline-flex;gap:.5rem;align-items:baseline;transition:color .18s ease}
body.bo-v2 #main-content .bo-linkcard a:before{content:"→";color:var(--bo-blue);font-size:.85rem}
body.bo-v2 #main-content .bo-linkcard a:hover{color:var(--bo-blue-d)}

/* --- 404 / empty-state --- */
body.bo-v2 #main-content .bo-empty{text-align:center;max-width:640px;margin-inline:auto}
body.bo-v2 #main-content .bo-empty .bo-code{display:block;font-family:var(--bo-display);font-size:clamp(4.5rem,12vw,8rem);font-weight:600;line-height:1;color:var(--bo-blue);opacity:.9;margin-bottom:.6rem}
body.bo-v2 #main-content .bo-empty p{color:var(--bo-muted);font-size:1.06rem;padding-bottom:0}

/* --- search form --- */
body.bo-v2 #main-content .bo-searchbar{display:flex;gap:.8rem;max-width:560px;margin:0 auto;flex-wrap:wrap}
body.bo-v2 #main-content .bo-searchbar input[type=search],
body.bo-v2 #main-content .bo-searchbar input[type=text]{flex:1 1 260px;font-family:var(--bo-body);font-size:1rem;color:var(--bo-ink);background:#fff;border:1px solid var(--bo-line);border-radius:999px;padding:.85rem 1.3rem}
body.bo-v2 #main-content .bo-searchbar input:focus{outline:none;border-color:var(--bo-blue);box-shadow:0 0 0 3px rgba(46,163,242,.16)}
body.bo-v2 #main-content .bo-searchbar button{background:var(--bo-ink);color:#fff;border:0;border-radius:999px;padding:.85rem 1.7rem;font-family:var(--bo-body);font-weight:600;font-size:.95rem;cursor:pointer;transition:background .18s ease,transform .18s ease}
body.bo-v2 #main-content .bo-searchbar button:hover{background:var(--bo-blue-d);transform:translateY(-2px)}

/* --- search / archive result rows --- */
body.bo-v2 #main-content .bo-results{display:grid;gap:1.1rem;max-width:820px;margin-inline:auto}
body.bo-v2 #main-content .bo-result{display:block;background:#fff;border:1px solid var(--bo-line);border-radius:16px;padding:1.4rem 1.6rem;text-decoration:none;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
body.bo-v2 #main-content .bo-result:hover{transform:translateY(-4px);box-shadow:var(--bo-shadow);border-color:rgba(46,163,242,.4)}
body.bo-v2 #main-content .bo-result-kind{display:block;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--bo-blue-d);margin-bottom:.35rem}
body.bo-v2 #main-content .bo-result h3{font-size:1.15rem;margin-bottom:.4rem;color:var(--bo-ink)}
body.bo-v2 #main-content .bo-result p{color:var(--bo-muted);font-size:.95rem;padding-bottom:0;line-height:1.6}

@media(max-width:980px){
  body.bo-v2 #main-content .bo-linkcols{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px){
  body.bo-v2 #main-content .bo-diviform .et_pb_contact_form{grid-template-columns:minmax(0,1fr)}
  body.bo-v2 #main-content .bo-linkcols{grid-template-columns:minmax(0,1fr)}
}

/* ===================================================================
   V2 SPACING — single source of truth for vertical rhythm.

   The homepage CSS zeroes every Divi row and module margin
   (.et_pb_row{margin-bottom:0}) and then hand-spaces the handful of
   rows the homepage happens to use. Every new row type therefore
   landed at 0px against its neighbour: galleries ran straight into
   the caption beneath them, and buttons collided with the last line
   of copy above them.

   This block sets a sane default gap between stacked rows and then
   steps back out of the way wherever a row already carries its own
   spacing. Keep all row/button spacing here rather than scattering
   overrides through the file.
   =================================================================== */

/* --- A. default gap between two rows stacked inside one section --- */
body.bo-v2 #main-content .et_pb_row + .et_pb_row{margin-top:2.8rem!important}

/* --- B. previous row already supplies its own bottom margin --- */
body.bo-v2 #main-content .bo-head + .et_pb_row,
body.bo-v2 #main-content .bo-steps-row + .et_pb_row,
body.bo-v2 #main-content .bo-facts-row + .et_pb_row,
body.bo-v2 #main-content .bo-credrow + .et_pb_row,
body.bo-v2 #main-content .bo-page-hero-row + .et_pb_row{margin-top:0!important}

/* --- C. multi-row grids: the row gap should match the column gap --- */
body.bo-v2 #main-content .bo-tiles-row + .bo-tiles-row,
body.bo-v2 #main-content .bo-works-row + .bo-works-row,
body.bo-v2 #main-content .bo-quotes-row + .bo-quotes-row{margin-top:1.6rem!important}

/* --- D. the centred call-to-action row keeps its wider lead-in --- */
body.bo-v2 #main-content .bo-btn-center{margin-top:3rem!important}

/* --- E. image-heavy rows need real air before whatever follows.
        A gallery or card grid butting straight into a caption reads
        as though the text belongs to the last image. --- */
body.bo-v2 #main-content .bo-gallery-row + .et_pb_row,
body.bo-v2 #main-content .bo-gal-row + .et_pb_row,
body.bo-v2 #main-content .bo-cat-row + .et_pb_row,
body.bo-v2 #main-content .bo-blog-row + .et_pb_row,
body.bo-v2 #main-content .bo-works-row + .bo-note-row,
body.bo-v2 #main-content .bo-tiles-row + .bo-note-row{margin-top:3.4rem!important}

/* --- F. buttons that follow copy.
        Divi button wrappers ship with no top margin; the homepage only
        ever placed one after a tick list, which carries its own gap. --- */
body.bo-v2 #main-content .et_pb_column>.et_pb_button_module_wrapper{margin-top:2rem!important}

/* A tick list already leaves a gap, so trim the lead-in there — and trim it
   for every button after it too, or the pair lands on two different baselines. */
body.bo-v2 #main-content .bo-ticks + .et_pb_button_module_wrapper,
body.bo-v2 #main-content .bo-ticks + .et_pb_button_module_wrapper ~ .et_pb_button_module_wrapper{margin-top:1rem!important}

/* Buttons that own their row handle their own spacing. */
body.bo-v2 #main-content .bo-btn-center .et_pb_button_module_wrapper{margin-top:0!important}

/* --- G. closing CTA: both buttons on one line.
        The 1.35fr/.65fr split left the button column a few pixels too
        narrow, so the second button wrapped. 1.2fr/.8fr matches the
        source design and gives them room. --- */
body.bo-v2 #main-content .bo-cta{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}
body.bo-v2 #main-content .bo-cta-btns{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:1rem}
body.bo-v2 #main-content .bo-cta-btns>.et_pb_button_module_wrapper{margin:0!important}

@media(max-width:980px){
  body.bo-v2 #main-content .bo-cta{grid-template-columns:minmax(0,1fr)}
  body.bo-v2 #main-content .bo-cta-btns{justify-content:flex-start;margin-top:2rem!important}
  body.bo-v2 #main-content .et_pb_row + .et_pb_row{margin-top:2.2rem!important}
}
