/* =========================================================================
   Craft Legal — Divi compatibility layer
   Loaded after Divi's stylesheet and craft.css. It strips Divi's default
   section/row/column/module spacing inside Craft sections (.craft-sec) so the
   Craft layouts control spacing, and restores what Divi's resets would break.
   ========================================================================= */

/* Page shell */
#page-container{padding-top:0!important;margin-top:0!important;overflow:visible!important}
#page-container,#et-main-area{max-width:100%;overflow-x:clip}
#main-content,#main-content .container{background:transparent!important}
#main-content .entry-content{padding:0}
.et_pb_pagebuilder_layout .entry-content,.et-l--post{margin:0}

/* Sections: no Divi padding or white background; Craft classes set them */
.et_pb_section.craft-sec{padding:0!important;background-color:transparent}
.et_pb_section.craft-sec.block{padding-top:var(--sec-pad)!important;padding-bottom:var(--sec-pad)!important}
.et_pb_section.craft-sec.block.pad-top-0{padding-top:0!important}
.et_pb_section.craft-sec.block.pad-bottom-0{padding-bottom:0!important}
.et_pb_section.craft-sec:is(.hero,.page-hero,.voices){background-color:var(--ink-2)}
.et_pb_section.craft-sec:is(.approach,.contact,.clients){background-color:var(--surface)}
.et_pb_section.craft-sec.cta-band{background-color:var(--brass)}
.et_pb_section.craft-sec.craft-resources.is-hidden{display:none!important}

/* Rows act as the Craft .wrap container */
.craft-sec .et_pb_row{width:auto!important;max-width:var(--max)!important;margin-left:auto!important;margin-right:auto!important;
  padding:0 var(--gutter)!important;float:none!important;display:block!important}
.craft-sec .et_pb_row::after{content:none!important;display:none!important}
.craft-sec .et_pb_row + .et_pb_row{margin-top:0!important}
.craft-sec.hero .et_pb_row{padding-top:var(--hero-pad)!important;padding-bottom:calc(var(--hero-pad) * .75)!important}
.craft-sec.page-hero .et_pb_row{padding-top:calc(var(--hero-pad) * .85)!important;padding-bottom:var(--hero-pad)!important}
.craft-sec.clients .et_pb_row{padding-top:22px!important;padding-bottom:22px!important}
.craft-sec.cta-band .et_pb_row{padding-top:var(--band-pad)!important;padding-bottom:var(--band-pad)!important}

/* Layout rows */
.craft-sec.hero .et_pb_row{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(24px,5vw,72px);align-items:center}
.craft-sec .et_pb_row.page-body{display:grid!important;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(32px,6vw,88px);align-items:start}
.craft-sec .et_pb_row.people{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.craft-sec .et_pb_row.quotes{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,6vw,80px)}
.craft-sec .et_pb_row.pillars{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.craft-sec .et_pb_row.contact-grid{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(32px,6vw,80px)}
@media (max-width:900px){.craft-sec .et_pb_row.page-body{grid-template-columns:1fr}}
@media (max-width:860px){
  .craft-sec.hero .et_pb_row,.craft-sec .et_pb_row.people,.craft-sec .et_pb_row.quotes,.craft-sec .et_pb_row.pillars,.craft-sec .et_pb_row.contact-grid{grid-template-columns:1fr}
  .craft-sec.hero .et_pb_row{align-items:start}
  .craft-sec .et_pb_row.people{max-width:calc(460px + 2 * var(--gutter))!important;margin-left:0!important}
}

/* Columns and modules: no Divi widths, floats, gutters or margins */
.craft-sec .et_pb_column{width:auto!important;margin:0!important;padding:0!important;float:none!important;min-width:0;min-height:0}
.craft-sec .et_pb_column > .et_pb_module + .et_pb_module{margin-top:16px!important}
.craft-sec .et_pb_module{margin-left:0!important;margin-right:0!important;margin-bottom:0!important;padding:0!important}
.craft-sec .et_pb_column > .et_pb_module:first-child{margin-top:0!important}
.craft-sec.page-hero .et_pb_code + .et_pb_text{margin-top:0!important}

/* Divi typography resets that would leak into Craft components */
.craft-sec .et_pb_module :is(p,h1,h2,h3,h4,h5,h6){padding-bottom:0}
:where(.craft-sec) :is(h1,h2,h3,h4,h5,h6){color:inherit;line-height:1.15;font-weight:400}
:where(.craft-sec) a{color:inherit}
.craft-sec blockquote{border:0;padding:0}
.craft-sec .et_pb_text :is(ul,ol){padding:0;list-style:none;line-height:inherit}
.craft-sec .et_pb_text .policy ul{padding-left:22px;list-style:disc}
.craft-sec .entry-content table,.craft-sec .policy table{border:0;margin:0}
.craft-sec .policy :is(th,td){padding:14px 16px;border-top:0}
.site-header :is(h1,h2,h3),.site-footer :is(h1,h2,h3),.drawer :is(h1,h2,h3),.consent :is(h1,h2,h3){padding-bottom:0}

/* Pieces of Craft components that Divi columns split apart */
.craft-sec .pillars > .et_pb_column:not(:first-child) .pillar{padding-left:32px;border-left:1px solid var(--line)}
@media (max-width:860px){.craft-sec .pillars > .et_pb_column:not(:first-child) .pillar{padding-left:0;border-left:0}}
.craft-sec .person{height:100%}
.craft-sec .prose{display:grid;gap:16px;max-width:40em}
.prose h2.first{margin-top:0}

/* Wrapper rows used by the Divi layouts */
.clients-inner{display:flex;align-items:center;gap:32px}
.clients-inner .eyebrow{color:var(--muted);flex:none}
@media (max-width:640px){.clients-inner{flex-direction:column;align-items:flex-start;gap:12px}}
.cta-inner{display:flex;justify-content:space-between;align-items:center;gap:24px 48px;flex-wrap:wrap}
.cta-inner h2{font-family:var(--display);font-weight:400;font-size:clamp(34px,4.4vw,56px);line-height:1.04;max-width:16em}
.cta-inner p{margin-top:12px;max-width:36em;color:var(--ink)}
.seg{margin-bottom:28px}

/* FAQs: written as heading + paragraph pairs in a text module; craft.js turns them into an accordion */
.craft-faq h3{font-family:var(--sans);font-size:20px;font-weight:500;margin-top:24px}
.craft-faq p{color:var(--muted);margin-top:8px}
.craft-faq .faq{max-width:900px}
.craft-faq .faq h3,.craft-faq .faq p{margin:0}



/* Divi 5 columns can be flex boxes that center and shrink their modules; keep every Craft
   module full width and left-aligned so lists don't narrow or re-center as items open and close */
.craft-sec .et_pb_column{display:block!important;text-align:left!important}
.craft-sec .et_pb_module{width:100%!important;max-width:none!important;align-self:stretch!important;text-align:left}
.craft-sec .et_pb_code_inner,.craft-sec .et_pb_text_inner{width:100%}

/* The Practices / Industries switch stays put at the left edge */
.craft-sec .et_pb_code_inner{display:block!important;text-align:left!important}
#view-practices,#view-industries{width:100%}

/* Old staging pages carried their own header and footer sections; never show them under the theme's */
.et_pb_section.craft-native:is(.craft-header,.craft-footer,.craft-assets),
.et_pb_section#page-contact.craft-native{display:none!important}

/* Divi 5 sections, rows and columns can be flex boxes that size to their content and center it.
   Pin every Craft row and column to the full width so nothing narrows, widens or re-centers
   when Practices / Industries items open and close. */
.et_pb_section.craft-sec{display:block!important}
.craft-sec .et_pb_row{width:100%!important;align-self:stretch!important;box-sizing:border-box!important}
.craft-sec .et_pb_row > .et_pb_column{flex:1 1 100%!important;width:100%!important;max-width:100%!important;align-self:stretch!important;align-items:stretch!important}
.craft-sec .et_pb_row:is(.page-body,.people,.quotes,.pillars,.contact-grid) > .et_pb_column,
.craft-sec.hero .et_pb_row > .et_pb_column{flex:none!important;width:auto!important}
.craft-sec .et_pb_code,.craft-sec .et_pb_text{align-self:stretch!important}
.craft-selector{display:block;margin-left:0!important;margin-right:auto!important;text-align:left}
