:root{
  --beige:        #F4EEE3;
  --beige-deep:   #E9DFCC;
  --charcoal:     #2B2A28;
  --charcoal-70:  rgba(43,42,40,.7);
  --black:        #161513;
  --silver:       #C9C6BE;
  --silver-light: #E8E5DE;
  --white:        #FFFFFF;
  --bronze:       #A8834F;
  --bronze-dark:  #8A6B3E;
  --success:      #3E6B4F;

  --font-serif: "Cormorant Garamond", "Georgia", serif;
  --font-sans:  "Jost", "Helvetica Neue", Arial, sans-serif;

  --radius-sm: 4px;
  --radius-md: 10px;
  --radius-lg: 22px;

  --shadow-soft: 0 18px 40px -20px rgba(22,21,19,.25);
  --container: 1180px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-sans);
  color:var(--charcoal);
  background:var(--beige);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:var(--font-serif);
  font-weight:600;
  line-height:1.15;
  margin:0 0 .5em;
  color:var(--black);
}
h1{ font-size:clamp(2.2rem,4.2vw,3.6rem); }
h2{ font-size:clamp(1.7rem,2.8vw,2.4rem); }
h3{ font-size:1.3rem; }
p{ margin:0 0 1em; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
ul{ margin:0; padding:0; list-style:none; }
.container{ max-width:var(--container); margin:0 auto; padding:0 24px; }
.eyebrow{
  font-family:var(--font-sans);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.72rem;
  color:var(--bronze-dark);
  font-weight:600;
}
section{ padding:88px 0; }
@media (max-width:768px){ section{ padding:56px 0; } }
.section-head{ max-width:640px; margin-bottom:44px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }

.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 26px;
  border-radius:var(--radius-sm);
  font-size:.92rem; font-weight:600;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .15s ease, background .2s ease, color .2s ease, border-color .2s ease;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); }
.btn-primary{ background:var(--bronze); color:var(--white); }
.btn-primary:hover{ background:var(--bronze-dark); }
.btn-outline{ background:transparent; border-color:var(--charcoal); color:var(--charcoal); }
.btn-outline:hover{ background:var(--charcoal); color:var(--white); }
.btn-ghost-light{ background:transparent; border-color:rgba(255,255,255,.5); color:var(--white); }
.btn-ghost-light:hover{ background:rgba(255,255,255,.12); }
.btn-sm{ padding:10px 18px; font-size:.82rem; }

.utility-bar{
  background:var(--charcoal); color:var(--silver-light);
  font-size:.78rem;
}
.utility-bar .container{
  display:flex; justify-content:space-between; align-items:center; padding-top:8px; padding-bottom:8px; gap:16px; flex-wrap:wrap;
}
.utility-bar a{ color:var(--silver-light); }
.utility-bar a:hover{ color:var(--white); }
.utility-bar .u-links{ display:flex; gap:20px; flex-wrap:wrap; }

header.site-header{
  background:var(--white); border-bottom:1px solid var(--silver-light); position:sticky; top:0; z-index:60;
  box-shadow:0 10px 30px -24px rgba(22,21,19,.45);
}
.nav-row{ display:flex; align-items:center; justify-content:space-between; padding:16px 0; gap:24px; }
.logo{ display:flex; align-items:center; gap:12px; font-family:var(--font-serif); font-weight:700; font-size:1.35rem; color:var(--black); }
.logo .mark{
  width:42px; height:42px; border-radius:50%; background:var(--bronze); color:var(--white);
  display:flex; align-items:center; justify-content:center; font-size:1.15rem;
  box-shadow:0 6px 14px -6px rgba(168,131,79,.6);
  flex-shrink:0;
}
.logo .sub{ display:block; font-family:var(--font-sans); font-size:.6rem; letter-spacing:.2em; color:var(--charcoal-70); text-transform:uppercase; font-weight:500; margin-top:2px; }
nav.main-nav{ display:flex; align-items:center; gap:28px; }
nav.main-nav > ul{ display:flex; gap:28px; }
nav.main-nav a.nav-link{ font-size:.9rem; font-weight:500; padding:10px 0; position:relative; }
nav.main-nav a.nav-link::after{
  content:""; position:absolute; left:0; right:100%; bottom:4px; height:2px; background:var(--bronze);
  transition:right .2s ease;
}
nav.main-nav a.nav-link:hover{ color:var(--bronze-dark); }
nav.main-nav a.nav-link:hover::after{ right:0; }
.nav-cta{ display:flex; align-items:center; gap:12px; }
.has-mega{ position:relative; }
.caret{ display:inline-block; font-size:.7em; transition:transform .2s ease; margin-left:2px; }
.has-mega:hover .caret{ transform:rotate(180deg); }
.mega-menu{
  position:absolute; left:50%; transform:translateX(-50%) translateY(8px); top:100%;
  background:var(--white); box-shadow:var(--shadow-soft); border-top:3px solid var(--bronze);
  padding:30px; display:grid; grid-template-columns:180px repeat(4,190px); gap:24px 28px;
  border-radius:0 0 var(--radius-md) var(--radius-md);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .18s ease, transform .18s ease, visibility .18s;
}
.has-mega:hover .mega-menu{ opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0); }
.mega-menu .col h4{ font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--bronze-dark); margin-bottom:10px; font-family:var(--font-sans); font-weight:700; padding-bottom:8px; border-bottom:1px solid var(--silver-light); }
.mega-menu .col a{ display:block; padding:5px 0; font-size:.86rem; color:var(--charcoal); transition:transform .15s ease, color .15s ease; }
.mega-menu .col a:hover{ color:var(--bronze-dark); transform:translateX(2px); }
.mega-menu .col.featured{
  background:var(--beige); border-radius:var(--radius-sm); padding:18px; margin:-30px 0 -30px -30px; padding:22px 20px;
  display:flex; flex-direction:column; justify-content:space-between;
}
.mega-menu .col.featured h4{ border-bottom:none; color:var(--charcoal); font-size:.95rem; text-transform:none; letter-spacing:0; font-family:var(--font-serif); font-weight:600; }
.mega-menu .col.featured p{ font-size:.8rem; color:var(--charcoal-70); margin-bottom:14px; }
.nav-toggle{ display:none; background:none; border:none; font-size:1.4rem; cursor:pointer; }
@media (max-width:1100px){
  .mega-menu{ grid-template-columns:repeat(2,180px); }
  .mega-menu .col.featured{ grid-column:1/-1; margin:0; background:var(--beige); padding:16px 20px; }
}
@media (max-width:960px){
  nav.main-nav{ display:none; }
  .nav-toggle{ display:block; }
  .utility-bar .u-links{ display:none; }
}

.hero{ position:relative; overflow:hidden; }
.hero .container{ position:relative; z-index:2; }
.hero-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; }
@media (max-width:900px){ .hero-grid{ grid-template-columns:1fr; } }
.hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-top:28px; }
.hero-ctas-secondary{ display:flex; gap:20px; margin-top:20px; flex-wrap:wrap; }
.hero-ctas-secondary a{ font-size:.85rem; font-weight:600; border-bottom:1px solid currentColor; padding-bottom:2px; }

.hero-seam::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px; z-index:3;
  background:linear-gradient(90deg, transparent, var(--bronze) 20%, var(--bronze) 80%, transparent);
  opacity:.55;
}

.arch-pattern{
  position:absolute; inset:0; opacity:.12; pointer-events:none;
  background-image:
    repeating-linear-gradient(90deg, var(--charcoal) 0 1px, transparent 1px 80px),
    repeating-linear-gradient(0deg, var(--charcoal) 0 1px, transparent 1px 80px);
}
.arch-pattern.light{ background-image:
    repeating-linear-gradient(90deg, var(--white) 0 1px, transparent 1px 80px),
    repeating-linear-gradient(0deg, var(--white) 0 1px, transparent 1px 80px);
  opacity:.08;
}

.pillars{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
@media (max-width:900px){ .pillars{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .pillars{ grid-template-columns:1fr; } }
.pillar{ padding:26px; border:1px solid var(--silver-light); border-radius:var(--radius-md); background:var(--white); }
.pillar .icon{ width:44px; height:44px; border-radius:50%; background:var(--beige); display:flex; align-items:center; justify-content:center; margin-bottom:14px; color:var(--bronze-dark); font-size:1.2rem; }
.pillar h3{ font-size:1.05rem; margin-bottom:6px; }
.pillar p{ font-size:.88rem; color:var(--charcoal-70); margin:0; }

.practice-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
@media (max-width:960px){ .practice-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .practice-grid{ grid-template-columns:1fr; } }
.practice-card{
  padding:28px 22px; background:var(--white); border:1px solid var(--silver-light); border-radius:var(--radius-md);
  transition:box-shadow .2s ease, transform .2s ease, border-color .2s ease;
  position:relative; overflow:hidden;
}
.practice-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--bronze);
  transform:scaleX(0); transform-origin:left; transition:transform .25s ease;
}
.practice-card:hover{ box-shadow:var(--shadow-soft); transform:translateY(-4px); border-color:var(--bronze); }
.practice-card:hover::before{ transform:scaleX(1); }
.practice-card .num{ font-family:var(--font-serif); font-size:1.6rem; color:var(--bronze); margin-bottom:8px; display:block; }
.practice-card h3{ font-size:1.02rem; margin-bottom:8px; }
.practice-card p{ font-size:.85rem; color:var(--charcoal-70); margin:0 0 10px; }
.practice-card .link{ font-size:.8rem; font-weight:700; color:var(--bronze-dark); }

.director-block{ display:grid; grid-template-columns:320px 1fr; gap:48px; align-items:center; }
@media (max-width:820px){ .director-block{ grid-template-columns:1fr; } }
.portrait-frame{
  aspect-ratio:4/5; border-radius:var(--radius-md); background:linear-gradient(145deg,var(--beige-deep),var(--silver-light));
  display:flex; align-items:center; justify-content:center; color:var(--charcoal-70); font-size:.85rem; text-align:center; padding:20px;
  border:1px dashed var(--silver);
}
.people-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
@media (max-width:820px){ .people-grid{ grid-template-columns:repeat(2,1fr); } }
.person-card{ text-align:left; }
.person-card .portrait-frame{ aspect-ratio:1/1; margin-bottom:12px; font-size:.72rem; }
.person-card h4{ font-size:.95rem; margin:0 0 2px; font-family:var(--font-sans); font-weight:700; }
.person-card span{ font-size:.78rem; color:var(--charcoal-70); }

.experience-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:820px){ .experience-grid{ grid-template-columns:1fr; } }
.experience-card{ padding:26px; border-radius:var(--radius-md); background:var(--beige); }
.experience-card h3{ font-size:1.05rem; margin-bottom:8px; }
.experience-card p{ font-size:.85rem; color:var(--charcoal-70); margin:0; }
.confirm-note{ font-size:.78rem; color:var(--bronze-dark); border-left:3px solid var(--bronze); padding-left:12px; margin-top:18px; }

.check-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px 32px; }
@media (max-width:600px){ .check-grid{ grid-template-columns:1fr; } }
.check-item{ display:flex; gap:10px; align-items:flex-start; font-size:.92rem; }
.check-item .tick{ color:var(--success); font-weight:700; }

.assistant-panel{
  background:var(--charcoal); color:var(--white); border-radius:var(--radius-lg); padding:28px; box-shadow:var(--shadow-soft);
}
.assistant-panel .disclaimer{ font-size:.74rem; color:var(--silver-light); border-top:1px solid rgba(255,255,255,.15); margin-top:16px; padding-top:14px; }
.chat-window{ background:var(--white); color:var(--charcoal); border-radius:var(--radius-md); padding:16px; max-height:360px; overflow-y:auto; display:flex; flex-direction:column; gap:10px; }
.chat-msg{ max-width:82%; padding:10px 14px; border-radius:14px; font-size:.86rem; line-height:1.45; }
.chat-msg.bot{ background:var(--beige); align-self:flex-start; border-bottom-left-radius:4px; }
.chat-msg.user{ background:var(--bronze); color:var(--white); align-self:flex-end; border-bottom-right-radius:4px; }
.chat-options{ display:flex; flex-wrap:wrap; gap:8px; margin-top:6px; }
.chat-options button{
  background:var(--white); border:1px solid var(--bronze); color:var(--bronze-dark); border-radius:999px;
  padding:8px 14px; font-size:.8rem; cursor:pointer; font-family:var(--font-sans); font-weight:600;
}
.chat-options button:hover{ background:var(--bronze); color:var(--white); }
.chat-input-row{ display:flex; gap:8px; margin-top:10px; }
.chat-input-row input{ flex:1; padding:10px 14px; border-radius:999px; border:1px solid var(--silver); font-family:var(--font-sans); }
.chat-input-row button{ background:var(--bronze); color:var(--white); border:none; border-radius:999px; padding:0 18px; cursor:pointer; font-weight:700; }
.ref-badge{ display:inline-block; background:var(--beige); color:var(--bronze-dark); font-family:monospace; padding:4px 10px; border-radius:6px; font-size:.8rem; }

.portal-shell{ background:var(--white); border:1px solid var(--silver-light); border-radius:var(--radius-lg); box-shadow:var(--shadow-soft); overflow:hidden; }
.portal-topbar{ background:var(--charcoal); color:var(--white); padding:14px 20px; display:flex; justify-content:space-between; align-items:center; font-size:.85rem; }
.portal-body{ display:grid; grid-template-columns:200px 1fr; min-height:380px; }
@media (max-width:700px){ .portal-body{ grid-template-columns:1fr; } }
.portal-nav{ background:var(--beige); padding:20px; font-size:.85rem; }
.portal-nav li{ padding:9px 0; color:var(--charcoal-70); }
.portal-nav li.active{ color:var(--bronze-dark); font-weight:700; }
.portal-main{ padding:24px; }
.portal-stat-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:20px; }
.portal-stat{ background:var(--beige); border-radius:var(--radius-sm); padding:14px; text-align:center; }
.portal-stat b{ display:block; font-size:1.4rem; font-family:var(--font-serif); color:var(--bronze-dark); }
.portal-stat span{ font-size:.72rem; color:var(--charcoal-70); }
.portal-table{ width:100%; border-collapse:collapse; font-size:.82rem; }
.portal-table th,.portal-table td{ text-align:left; padding:9px 8px; border-bottom:1px solid var(--silver-light); }
.tag{ font-size:.7rem; padding:3px 9px; border-radius:999px; background:var(--beige); color:var(--bronze-dark); font-weight:700; }
.tag.done{ background:#e4efe6; color:var(--success); }
.demo-flag{ background:#FBF3E4; border:1px dashed var(--bronze); color:var(--bronze-dark); font-size:.78rem; padding:10px 14px; border-radius:8px; margin-bottom:16px; }

.faq-item{ border-bottom:1px solid var(--silver-light); }
.faq-q{ display:flex; justify-content:space-between; align-items:center; padding:18px 0; cursor:pointer; font-weight:600; font-family:var(--font-sans); background:none; border:none; width:100%; text-align:left; font-size:.98rem; color:var(--black); }
.faq-q .plus{ transition:transform .2s ease; color:var(--bronze); font-size:1.2rem; }
.faq-item.open .faq-q .plus{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .25s ease; font-size:.9rem; color:var(--charcoal-70); }
.faq-item.open .faq-a{ max-height:300px; padding-bottom:18px; }

.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:600px){ .form-grid{ grid-template-columns:1fr; } }
.field{ display:flex; flex-direction:column; gap:6px; }
.field label{ font-size:.8rem; font-weight:600; }
.field input,.field select,.field textarea{
  padding:12px 14px; border:1px solid var(--silver); border-radius:var(--radius-sm); font-family:var(--font-sans); font-size:.92rem; background:var(--white);
}
.field input:focus,.field select:focus,.field textarea:focus{ outline:2px solid var(--bronze); outline-offset:1px; }
.field.full{ grid-column:1/-1; }
.form-msg{ font-size:.85rem; padding:10px 14px; border-radius:8px; display:none; }
.form-msg.success{ background:#e4efe6; color:var(--success); }
.form-msg.error{ background:#fbe7e4; color:#a83e2f; }

footer.site-footer{
  background:var(--black); color:var(--silver-light); padding:64px 0 24px; position:relative;
}
footer.site-footer::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, transparent, var(--bronze), transparent);
}
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; margin-bottom:40px; }
@media (max-width:820px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
.footer-grid > div{ padding-left:24px; border-left:1px solid rgba(255,255,255,.08); }
.footer-grid > div:first-child{ padding-left:0; border-left:none; }
@media (max-width:820px){ .footer-grid > div{ border-left:none; padding-left:0; } }
.footer-grid h4{ color:var(--white); font-size:.8rem; text-transform:uppercase; letter-spacing:.1em; margin-bottom:16px; font-family:var(--font-sans); position:relative; padding-bottom:10px; }
.footer-grid h4::after{ content:""; position:absolute; left:0; bottom:0; width:26px; height:2px; background:var(--bronze); }
.footer-grid a,.footer-grid li{ font-size:.85rem; color:var(--silver); padding:5px 0; display:block; transition:color .15s ease, padding-left .15s ease; }
.footer-grid a:hover{ color:var(--bronze); padding-left:4px; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.12); padding-top:20px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:.76rem; color:var(--silver); }

.sticky-actions{ position:fixed; right:20px; bottom:20px; display:flex; flex-direction:column; gap:10px; z-index:80; }
.sticky-actions a{
  width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:var(--white); font-size:1.2rem; box-shadow:0 10px 24px -8px rgba(0,0,0,.4);
}
.sticky-actions .call{ background:var(--charcoal); }
.sticky-actions .whatsapp{ background:#3fae5b; }

.inner-hero{
  background:var(--charcoal); color:var(--white);
  padding:60px 0 52px; position:relative; overflow:hidden;
}
.inner-hero .eyebrow{ color:var(--bronze); }
.inner-hero h1{ color:var(--white); }
.inner-hero p{ color:var(--silver-light); }
.inner-hero .section-head{ margin-bottom:0; }
.inner-hero .btn-outline{ border-color:rgba(255,255,255,.5); color:var(--white); }
.inner-hero .btn-outline:hover{ background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.5); }

.breadcrumb{ font-size:.78rem; color:var(--charcoal-70); padding:16px 0; }
.breadcrumb a:hover{ color:var(--bronze-dark); }

.tag-band{ background:var(--white); }
.band-dark{ background:var(--charcoal); color:var(--white); }
.band-dark h2, .band-dark h3{ color:var(--white); }
.band-dark p{ color:var(--silver-light); }
.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
@media (max-width:820px){ .two-col{ grid-template-columns:1fr; } }
.badge-row{ display:flex; gap:10px; flex-wrap:wrap; margin-top:18px; }
.badge{ font-size:.72rem; background:var(--beige); color:var(--bronze-dark); padding:6px 12px; border-radius:999px; font-weight:700; letter-spacing:.03em; }
.skip-link{ position:absolute; left:-999px; top:0; background:var(--bronze); color:#fff; padding:10px 16px; z-index:999; }
.skip-link:focus{ left:12px; top:12px; }

/* --- Elementor wrapper reset (added post-integration) --- */
.elementor-section.elementor-top-section{ padding-top:0 !important; padding-bottom:0 !important; }

/* --- Native-widget rebuild overrides ---
   Elementor's _css_classes field lands on the OUTER per-widget wrapper div, not on Elementor's own inner
   semantic element (.elementor-heading-title, .elementor-button, .elementor-button-text, etc). Every rule below
   that needs to reach the inner element uses a descendant combinator (a space), not a compound class, for that
   reason. Elementor also generates its own per-element CSS via a compound .elementor-element.elementor-element-XXXX
   selector, which outranks a single external class for backgrounds/colors — those rules carry !important. */

/* Sticky action buttons (native Button widgets) — strip Elementor's own button chrome, keep the circular badge look */
.sticky-actions .elementor-button{ padding:0; border:none; }
.sticky-actions .elementor-button-content-wrapper{ width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
.sticky-actions .elementor-button-text{ font-size:1.2rem; line-height:1; }
.sticky-actions.e-con{ position:fixed !important; right:20px !important; bottom:20px !important; left:auto !important; width:auto !important; }
.sticky-actions .call .elementor-button{ background:var(--charcoal) !important; color:var(--white) !important; }
.sticky-actions .whatsapp .elementor-button{ background:#3fae5b !important; color:var(--white) !important; }

/* Footer logo mark (heading widget) + link paragraphs (text-editor widget) */
.footer-grid .logo{ align-items:center; }
.footer-grid .logo .elementor-heading-title{ margin:0; }
.footer-grid p{ margin:0; }
.footer-grid .logo p{ margin:0 0 1em; }
.site-footer.e-con{ background:var(--black) !important; color:var(--silver-light) !important; }

/* Header: utility bar, main nav, mega-menu */
.utility-bar.e-con{ background:var(--charcoal) !important; color:var(--silver-light) !important; }
header.site-header.e-con{ background:var(--white) !important; }

/* main-nav's flat <ul> is now a Container div — recreate the flex row via a class instead of the old nav.main-nav > ul selector */
.main-nav-items{ display:flex; align-items:center; gap:28px; }
@media (max-width:960px){ .main-nav-items{ display:none; } }

/* Heading widgets used for nav-link items — the visible text sits in Elementor's inner .elementor-heading-title span */
.nav-link .elementor-heading-title{ margin:0; font-size:.9rem; font-weight:500; font-family:var(--font-sans); color:var(--charcoal); }
.nav-link a{ color:inherit; }
.nav-link .elementor-heading-title:hover{ color:var(--bronze-dark); }

/* Logo heading/text widgets — strip margins so the mark + wordmark sit inline like the original single logo block */
.logo .elementor-heading-title{ margin:0; }
.logo .elementor-widget-text-editor,.logo .elementor-widget-text-editor p{ margin:0; }
.logo{ text-decoration:none; }

/* Mega-menu column headings/links */
.mega-menu .elementor-heading-title{ margin-bottom:10px; }
.mega-menu .col.featured .elementor-heading-title{ margin-bottom:0; }
.mega-menu p{ margin:0; }
.mega-menu.e-con{ background:var(--white) !important; }
.mega-menu .col.featured.e-con{ background:var(--beige) !important; }

/* .btn buttons rendered as native Button widgets inside the nav-cta / mega-menu (Elementor's own default button color would otherwise win) */
.nav-cta .btn .elementor-button, .mega-menu .btn .elementor-button{ background:var(--bronze) !important; color:var(--white) !important; border-radius:var(--radius-sm) !important; padding:14px 26px !important; font-size:.92rem !important; font-weight:600 !important; }
.nav-cta .btn .elementor-button:hover, .mega-menu .btn .elementor-button:hover{ background:var(--bronze-dark) !important; }
.nav-cta .btn.btn-sm .elementor-button, .mega-menu .btn.btn-sm .elementor-button{ padding:10px 18px !important; font-size:.82rem !important; }

/* --- Nav row flex sizing fix --- */
/* Elementor's default flex sizing on Container children squeezes .main-nav down to content-basis instead of
   filling the row, causing every nav label to wrap. Force explicit basis so logo/nav-cta stay auto-sized and
   the nav itself takes the remaining space, matching the original flat-flexbox nav-row layout. */
.nav-row{ flex-wrap:nowrap !important; }
.nav-row > .logo{ flex:0 0 auto !important; }
.nav-row > .main-nav{ flex:1 1 auto !important; min-width:0; }
.nav-row > .nav-cta{ flex:0 0 auto !important; }
.main-nav-items{ flex-wrap:nowrap !important; }
.main-nav-items > *{ flex:0 0 auto !important; }
.nav-link .elementor-heading-title{ white-space:nowrap; }
.has-mega{ position:relative; flex:0 0 auto !important; }

/* --- Nav row width override (defeat e-con-full self-stretch) --- */
.nav-row{ display:flex !important; flex-direction:row !important; align-items:center !important; justify-content:space-between !important; flex-wrap:nowrap !important; }
.nav-row > .logo{ flex:0 0 auto !important; width:auto !important; max-width:none !important; }
.nav-row > .main-nav{ flex:1 1 auto !important; width:auto !important; min-width:0 !important; max-width:none !important; overflow:visible; }
.nav-row > .nav-cta{ flex:0 0 auto !important; width:auto !important; max-width:none !important; }
.main-nav-items{ width:auto !important; max-width:none !important; }
.main-nav-items > *{ width:auto !important; max-width:none !important; }

/* --- Mega-menu: force original CSS Grid layout instead of Elementor flex --- */
/* The original .mega-menu design (including the featured column's negative-margin bleed trick) was authored for
   CSS Grid. Elementor's Container renders as flex by default — force grid display back on so the untouched
   original rules (grid-template-columns, the featured panel's negative margin) behave exactly as designed. */
.mega-menu.e-con{ display:grid !important; grid-template-columns:180px repeat(4,190px) !important; gap:24px 28px !important; padding:30px !important; width:max-content !important; max-width:90vw; flex-wrap:unset !important; }
@media (max-width:1100px){ .mega-menu.e-con{ grid-template-columns:repeat(2,180px) !important; } .mega-menu .col.featured.e-con{ grid-column:1/-1 !important; margin:0 !important; } }

/* --- Homepage grid layouts: force original CSS Grid instead of Elementor flex --- */
/* Same rationale as the mega-menu fix: these classes were authored as CSS Grid with specific column ratios.
   Force grid back on over Elementor Container's default flex so the untouched original rules apply exactly. */
.hero-grid.e-con{ display:grid !important; grid-template-columns:1.1fr .9fr !important; gap:48px !important; }
@media (max-width:900px){ .hero-grid.e-con{ grid-template-columns:1fr !important; } }
.pillars.e-con{ display:grid !important; grid-template-columns:repeat(4,1fr) !important; gap:24px !important; }
@media (max-width:900px){ .pillars.e-con{ grid-template-columns:repeat(2,1fr) !important; } }
@media (max-width:520px){ .pillars.e-con{ grid-template-columns:1fr !important; } }
.practice-grid.e-con{ display:grid !important; grid-template-columns:repeat(4,1fr) !important; gap:20px !important; }
@media (max-width:960px){ .practice-grid.e-con{ grid-template-columns:repeat(2,1fr) !important; } }
@media (max-width:560px){ .practice-grid.e-con{ grid-template-columns:1fr !important; } }
.director-block.e-con{ display:grid !important; grid-template-columns:320px 1fr !important; gap:48px !important; }
@media (max-width:820px){ .director-block.e-con{ grid-template-columns:1fr !important; } }
.experience-grid.e-con{ display:grid !important; grid-template-columns:repeat(3,1fr) !important; gap:20px !important; }
@media (max-width:820px){ .experience-grid.e-con{ grid-template-columns:1fr !important; } }
.check-grid.e-con{ display:grid !important; grid-template-columns:repeat(2,1fr) !important; gap:10px 32px !important; }
@media (max-width:600px){ .check-grid.e-con{ grid-template-columns:1fr !important; } }
.two-col.e-con{ display:grid !important; grid-template-columns:1fr 1fr !important; gap:48px !important; align-items:start; }
@media (max-width:820px){ .two-col.e-con{ grid-template-columns:1fr !important; } }
/* Elementor per-element generated CSS wins over single-class background rules on native containers — reassert */
.pillar.e-con{ background:var(--white) !important; }
.practice-card.e-con{ background:var(--white) !important; }
.experience-card.e-con{ background:rgba(255,255,255,.06) !important; }
.band-dark.e-con{ background:var(--charcoal) !important; color:var(--silver-light) !important; }
.band-dark .elementor-heading-title{ color:var(--white) !important; }
.assistant-panel.e-con{ background:var(--charcoal) !important; color:var(--white) !important; }
.assistant-panel .elementor-heading-title{ color:var(--white) !important; }
/* Widget-level text elements need their own margin reset since Elementor wraps each in its own widget div */
.pillar .elementor-heading-title{ margin-bottom:6px; }
.pillar .elementor-widget-text-editor p{ margin:0; font-size:.88rem; color:var(--charcoal-70); }
.practice-card .elementor-heading-title{ margin-bottom:8px; }
.practice-card .elementor-widget-text-editor p{ margin:0 0 10px; font-size:.85rem; color:var(--charcoal-70); }
.experience-card .elementor-heading-title{ margin-bottom:8px; }
.experience-card .elementor-widget-text-editor p{ margin:0; font-size:.85rem; color:var(--charcoal-70); }
.section-head .elementor-heading-title{ margin:0 0 .5em; }
.section-head .elementor-widget-text-editor p{ margin:0; }


/* --- Homepage: page-specific styling ported from original prototype <style> block --- */
.hero-approachable{ background:var(--charcoal) !important; color:var(--silver-light); padding:112px 0 96px !important; position:relative; overflow:hidden; }
.hero-approachable.e-con::before{ content:""; position:absolute; width:560px; height:560px; border-radius:50%; background:radial-gradient(circle at 32% 32%, rgba(168,131,79,.3), rgba(168,131,79,0) 68%); top:-230px; right:-170px; pointer-events:none; }
.hero-approachable.e-con::after{ content:""; position:absolute; width:360px; height:360px; border-radius:50%; background:radial-gradient(circle, rgba(255,255,255,.06), rgba(255,255,255,0) 70%); bottom:-180px; left:-120px; pointer-events:none; }
.hero-approachable .elementor-heading-title{ color:var(--white) !important; margin:0 0 .3em; }
.hero-approachable .eyebrow .elementor-heading-title{ color:var(--bronze) !important; }
.hero-approachable .elementor-widget-text-editor p{ color:var(--silver-light) !important; margin:0 0 1.4em; }
.hero-approachable .hero-ctas-secondary .elementor-heading-title{ font-size:.9rem; font-weight:500; color:var(--silver-light) !important; }
.hero-approachable .btn-outline .elementor-button{ border-color:rgba(255,255,255,.5) !important; color:var(--white) !important; background:transparent !important; }
.hero-approachable .btn-outline .elementor-button:hover{ background:rgba(255,255,255,.12) !important; }
.hero-ctas, .hero-ctas-secondary{ display:flex !important; flex-wrap:wrap; gap:14px; align-items:center; }
.hero-ctas-secondary{ margin-top:14px; gap:22px; }
.portrait-frame{ min-height:320px; display:flex; align-items:center; justify-content:center; text-align:center; padding:24px; font-size:.9rem; border-radius:var(--radius-lg); }
.hero-approachable .portrait-frame{ background:rgba(255,255,255,.06) !important; border:1px solid rgba(255,255,255,.25) !important; color:var(--silver-light) !important; }
.director-block .portrait-frame{ background:var(--beige) !important; border:1px dashed var(--bronze) !important; color:var(--bronze-dark) !important; }
.pillar.e-con{ border-radius:var(--radius-lg) !important; }
.practice-card.e-con{ border-radius:var(--radius-lg) !important; }
.practice-card .num{ background:var(--beige); width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.1rem; margin-bottom:10px; }
.experience-card.e-con{ border-radius:var(--radius-lg) !important; }
.assistant-panel.e-con{ border-radius:var(--radius-lg) !important; max-width:640px; margin:0 auto !important; text-align:center; }
#intro{ padding-top:64px !important; }
#intro .section-head{ position:relative; }
.band-dark .eyebrow .elementor-heading-title{ color:var(--bronze) !important; }
.assistant-panel .eyebrow .elementor-heading-title{ color:var(--bronze) !important; }
.director-block .elementor-heading-title{ margin:0 0 .3em; }
.director-block .elementor-widget-text-editor p{ margin:0 0 1em; }
.faq-wrap.e-con{ max-width:760px; margin:0 auto !important; }
.mh-faq .elementor-accordion-item{ border:1px solid var(--beige); border-radius:8px; margin-bottom:10px; overflow:hidden; }
.mh-faq .elementor-tab-title{ font-weight:600; padding:16px 20px !important; font-family:var(--font-sans); }
.mh-faq .elementor-tab-content{ padding:0 20px 18px !important; }
.closing-cta.e-con{ text-align:center; background:var(--beige) !important; }
.closing-cta .hero-ctas{ justify-content:center !important; }
.check-grid > .elementor-widget-text-editor{ margin:0; }


/* --- Homepage: fix round 2 (flex-direction, btn-outline chrome, dark-bg text contrast) --- */
.hero-ctas, .hero-ctas-secondary{ display:flex !important; flex-direction:row !important; flex-wrap:wrap; gap:14px; align-items:center; }
.hero-ctas-secondary{ margin-top:14px; gap:22px; }
.closing-cta .hero-ctas{ justify-content:center !important; }

.btn-outline .elementor-button{ background:transparent !important; border:1px solid var(--charcoal) !important; color:var(--charcoal) !important; }
.btn-outline .elementor-button:hover{ background:rgba(0,0,0,.06) !important; }
.hero-approachable .btn-outline .elementor-button,
.band-dark .btn-outline .elementor-button,
.assistant-panel .btn-outline .elementor-button{ border-color:rgba(255,255,255,.5) !important; color:var(--white) !important; }
.hero-approachable .btn-outline .elementor-button:hover,
.band-dark .btn-outline .elementor-button:hover,
.assistant-panel .btn-outline .elementor-button:hover{ background:rgba(255,255,255,.12) !important; }

.hero-approachable .portrait-frame .elementor-widget-text-editor p,
.hero-approachable .portrait-frame .elementor-widget-text-editor{ color:var(--silver-light) !important; }
.experience-card .elementor-widget-text-editor p{ color:var(--silver-light) !important; }
.assistant-panel .elementor-widget-text-editor p{ color:var(--silver-light) !important; }
.assistant-panel .elementor-widget-text-editor p.disclaimer{ color:var(--silver) !important; font-size:.8rem; margin-top:14px; }


/* --- Inner pages: shared native-widget overrides --- */
.inner-hero .eyebrow .elementor-heading-title{ color:var(--bronze) !important; }
.people-grid.e-con{ display:grid !important; grid-template-columns:repeat(4,1fr) !important; gap:20px !important; }
@media (max-width:820px){ .people-grid.e-con{ grid-template-columns:repeat(2,1fr) !important; } }
.person-card .elementor-heading-title{ margin:0 0 2px; }
.map-placeholder{ min-height:220px; display:flex; align-items:center; justify-content:center; text-align:center; padding:20px; font-size:.85rem; color:var(--charcoal-70); background:var(--beige); border:1px dashed var(--bronze); border-radius:var(--radius-lg); }
.min-statement.e-con{ max-width:760px !important; margin:0 auto !important; text-align:center; }
.filter-row{ display:flex !important; flex-wrap:wrap; gap:10px; margin-bottom:24px; }
.filter-row .elementor-button{ background:var(--beige) !important; color:var(--charcoal) !important; border-radius:999px !important; padding:8px 18px !important; font-size:.8rem !important; }
.filter-row .active .elementor-button{ background:var(--bronze) !important; color:var(--white) !important; }
.breadcrumb.e-con{ padding:16px 0; }
.breadcrumb .elementor-widget-text-editor{ font-size:.78rem; color:var(--charcoal-70); }
.breadcrumb .elementor-widget-text-editor a{ color:var(--charcoal-70); text-decoration:underline; }


/* --- Inner pages: fix round 2 (filter-row direction, btn-ghost-light chrome) --- */
.filter-row.e-con{ display:flex !important; flex-direction:row !important; flex-wrap:wrap; gap:10px; }
.btn-ghost-light .elementor-button{ background:transparent !important; border:1px solid rgba(255,255,255,.5) !important; color:var(--white) !important; }
.btn-ghost-light .elementor-button:hover{ background:rgba(255,255,255,.12) !important; }
