/* One navigation scale on every page, including the homepage. */
.firm-logo { display:block; width:300px; height:auto; max-width:100%; }
footer .firm-logo { filter:brightness(0) invert(1); }
@media(max-width:760px) { .header .firm-logo { width:220px; } }
@media(max-width:380px) { .header .firm-logo { width:180px; } }
body .header .navrow { min-height:100px; }
body .header .brand { font-size:25px; gap:16px; }
body .header .brand small { font-size:11px; }
body .header .monogram { font-size:51px; }
body .header #navigation { font-size:clamp(18px,1.05vw,24px); gap:32px; }
body .header #navigation .button { font-size:18px; padding:13px 24px; min-height:48px; }
.contact-open { overflow:hidden; }
.firm-randy.wrap { grid-template-columns:minmax(240px,420px) minmax(0,600px); justify-content:center; gap:40px; }
.firm-randy .button { margin-top:24px; }
:is(#contact-dialog, #consultation-dialog, .contact-exit-copy) { width:min(680px,calc(100% - 32px)); max-height:90vh; overflow:auto; border:0; padding:36px; color:var(--ink); background:white; box-shadow:0 24px 100px #0005; }
:is(#contact-dialog, #consultation-dialog, .contact-exit-copy)::backdrop { background:transparent; }
.contact-shade { position:fixed; inset:0; z-index:50; background:#122b387a; opacity:0; pointer-events:none; transition:opacity .4s ease; }
.contact-open .contact-shade { opacity:1; pointer-events:auto; transition-duration:0s; }
.contact-open.contact-closing .contact-shade { opacity:0; transition-duration:.5s; }
html { scrollbar-gutter:stable; }
.contact-dialog-top { display:flex; align-items:start; justify-content:space-between; gap:20px; margin-bottom:24px; }
:is(#contact-dialog, #consultation-dialog, .contact-exit-copy) h2 { font-size:clamp(28px,3vw,40px); }
[data-contact-close] { border:0; background:var(--paper); padding:6px 14px; font-size:26px; }
:is(#contact-dialog, #consultation-dialog, .contact-exit-copy) form { display:grid; gap:18px; }
:is(#contact-dialog, #consultation-dialog, .contact-exit-copy) label { display:grid; gap:6px; font-size:16px; }
#consultation-dialog .form-grid label { display:block; }
#email-required, #phone-required { display:inline; white-space:nowrap; }
:is(#contact-dialog, #consultation-dialog, .contact-exit-copy) input,:is(#contact-dialog, #consultation-dialog, .contact-exit-copy) textarea { width:100%; border:1px solid #acb7bc; padding:12px; font:16px/1.5 Arial,sans-serif; }
:is(#contact-dialog, #consultation-dialog, .contact-exit-copy) .contact-fields { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
:is(#contact-dialog, #consultation-dialog, .contact-exit-copy) .contact-preview { background:var(--paper); padding:12px; margin-bottom:22px; font-size:14px; }
:is(#contact-dialog, #consultation-dialog, .contact-exit-copy) [role=status] { font-size:15px; }
:is(#contact-dialog, #consultation-dialog, .contact-exit-copy) .intake-card { padding:0; }
:is(#contact-dialog, #consultation-dialog, .contact-exit-copy) .consent { display:flex; }
:is(#contact-dialog, #consultation-dialog, .contact-exit-copy) input[type=checkbox] { width:18px; flex-shrink:0; }
@media(max-width:760px) { .firm-randy.wrap { grid-template-columns:1fr; gap:24px; } }
@media(max-width:1250px) { body .header #navigation { font-size:16px; gap:18px; } body .header #navigation .button { font-size:15px; } }
@media(max-width:760px) {
 body .header .navrow { min-height:80px; }
 body .header .brand { font-size:18px; gap:10px; }
 body .header .brand small { font-size:7px; }
 body .header .monogram { font-size:40px; }
 :is(#contact-dialog, #consultation-dialog, .contact-exit-copy) { padding:24px; }
 :is(#contact-dialog, #consultation-dialog, .contact-exit-copy) .contact-fields { grid-template-columns:1fr; }
}
.contact-switch { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; margin-top:28px; padding-top:24px; border-top:1px solid var(--line); }
.contact-switch > span { font-size:15px; color:var(--muted); }
.contact-back { flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:0; background:transparent; color:var(--ink); font-size:28px; line-height:1; }
.contact-back:hover { background:var(--paper); }
#consultation-dialog .contact-dialog-top { gap:12px; }
#consultation-dialog .contact-dialog-top h2 { flex:1; }
.intake-review-heading { display:flex; align-items:center; gap:12px; }
.intake-review-heading h3 { flex:1; }
@media (prefers-reduced-motion: no-preference) {
  :is(#contact-dialog, #consultation-dialog, .contact-exit-copy)[open] {
    animation: contact-dialog-enter .6s cubic-bezier(.16, 1, .3, 1) both;
  }
  @keyframes contact-dialog-enter {
    from { transform: translateY(-100vh); }
    to { transform: translateY(0); }
  }
}
@media (prefers-reduced-motion: no-preference) {
  :is(#contact-dialog, #consultation-dialog, .contact-exit-copy)[open].is-closing {
    animation: contact-dialog-exit .2s linear both;
    pointer-events: none;
  }
  @keyframes contact-dialog-exit {
    from { transform: translateY(0); }
    to { transform: translateY(-100vh); }
  }
}
.cta-icon { display:inline-block; width:1.05em; height:1.05em; flex-shrink:0; vertical-align:-.16em; margin-right:.55em; }

.contact-exit-copy { position:fixed; z-index:60; margin:0; pointer-events:none; animation:contact-dialog-exit .2s linear both; }
.contact-exit-copy .form-grid label:has(span) { display:block; }
/* Switch the contents sideways while the popup and shade stay in place. */
:is(#contact-dialog, #consultation-dialog)[open]:is(.switch-forward, .switch-back) {
  animation: none;
  overflow-x: hidden;
}
@media (prefers-reduced-motion: no-preference) {
  .switch-forward > * { animation: form-switch-forward .3s ease-out both; }
  .switch-back > * { animation: form-switch-back .3s ease-out both; }
  @keyframes form-switch-forward {
    from { transform: translateX(-48px); }
    to { transform: translateX(0); }
  }
  @keyframes form-switch-back {
    from { transform: translateX(48px); }
    to { transform: translateX(0); }
  }
}
.mobile-nav-actions { display:none; }
@media (max-width:760px) {
  body .header .navrow { gap:10px; }
  body .header .brand { min-width:0; flex-shrink:1; }
  body .header .firm-logo { width:clamp(110px,38vw,180px); }
  .mobile-nav-actions { display:flex; align-items:center; gap:8px; flex-shrink:0; }
  .mobile-consultation { display:flex; align-items:center; justify-content:center; max-width:106px; min-height:44px; padding:7px 10px; background:var(--navy); color:#fff; font-size:12px; line-height:1.35; font-weight:600; text-align:center; }
  .mobile-nav-actions .menu-toggle { display:flex; align-items:center; justify-content:center; width:44px; height:44px; padding:4px; }
  .mobile-nav-actions .menu-toggle svg { display:block; width:32px; height:32px; }
}

/* Professional membership shared by the attorney introduction and biography. */
a.committee-membership {
 display:flex; flex-direction:column; align-items:flex-start; gap:12px;
 width:100%; max-width:360px; box-sizing:border-box; margin:24px 0;
 padding:20px; border:1px solid var(--line); border-top:3px solid var(--gold);
 background:#fff; color:var(--navy); text-decoration:none;
}
a.committee-membership img { display:block; width:260px; max-width:100%; height:auto; }
a.committee-membership .committee-membership-caption { font-size:.85rem; line-height:1.5; font-weight:600; }
a.committee-membership .committee-membership-link { font-size:.8rem; text-decoration:underline; text-underline-offset:4px; }
a.committee-membership:hover { border-color:var(--gold); }
a.committee-membership:focus-visible { outline:3px solid var(--navy); outline-offset:4px; }

.google-intake-frame{display:block;width:100%;height:1000px;height:min(1000px,80svh);border:0;background:#fff;border-radius:8px}
.google-intake-fallback{text-align:center;font-size:.85rem;margin-top:16px}
.google-intake-fallback a{text-decoration:underline;text-underline-offset:3px}
#consultation .google-intake-fallback a{color:var(--gold)}
#consultation-dialog:has(.google-intake-card){width:min(960px,calc(100% - 32px))}
#consultation-dialog .google-intake-frame{height:70svh}

/* Consistent built-in Google consultation styling on every page and popup. */
.google-intake-card{background:transparent;color:var(--ink);padding:0;border:0;border-radius:0;box-shadow:none;width:100%}
.google-intake-frame{border-radius:0;background:#fff}
.google-intake-fallback{margin-top:12px;text-align:center}
.google-intake-fallback a{color:var(--muted);font-size:.8rem}
#consultation-dialog:has(.google-intake-card){background:#fff;width:min(1000px,calc(100% - 32px));padding:28px}
#consultation-dialog .google-intake-card{padding:0;border:0;box-shadow:none;background:transparent}
#consultation-dialog .google-intake-frame{height:70svh;border-radius:0}
@media(max-width:600px){
 #consultation-dialog:has(.google-intake-card){width:calc(100% - 16px);padding:16px 8px}
 #consultation-dialog:has(.google-intake-card) .contact-dialog-top{padding-inline:8px}
}

/* Keep Google's built-in controls aligned with its centered form content. */
.google-intake-card .google-intake-frame{width:100%;max-width:700px;margin-inline:auto}

#consultation-dialog .google-intake-frame{height:560px;height:min(560px,65svh);max-height:560px}

/* Navy frame for the compact Google consultation form. */
#consultation-dialog .google-intake-card{
 background:var(--navy);padding:24px;border:1px solid #ffffff1a;
 border-radius:14px;box-shadow:0 16px 40px #122b3826;
}
#consultation-dialog .google-intake-frame{border-radius:8px}
@media(max-width:600px){#consultation-dialog .google-intake-card{padding:12px;border-radius:10px}}

/* Keep consultation popups unframed; the navy card belongs to the homepage. */
#consultation-dialog .google-intake-card{background:transparent;padding:0;border:0;border-radius:0;box-shadow:none}
#consultation-dialog .google-intake-frame{border-radius:0}

/* Fit the consultation dialog to the viewport without an outer scrollbar. */
#consultation-dialog:has(.google-intake-card){height:calc(100svh - 32px);max-height:calc(100svh - 32px);overflow:hidden;box-sizing:border-box}
#consultation-dialog[open]:has(.google-intake-card){display:flex;flex-direction:column}
#consultation-dialog:has(.google-intake-card) .contact-dialog-top{flex:0 0 auto}
#consultation-dialog #popup-intake-host{display:flex;flex-direction:column;flex:1;min-height:0}
#consultation-dialog .google-intake-card{display:flex;flex-direction:column;flex:1;min-height:0}
#consultation-dialog .google-intake-frame{height:100%;max-height:none;min-height:0;flex:1}

/* Compact contact popup, retaining scrolling on small screens when necessary. */
#contact-dialog{padding:24px;width:min(760px,calc(100% - 32px));max-height:calc(100svh - 24px)}
#contact-dialog .contact-dialog-top{margin-bottom:14px}
#contact-dialog .contact-dialog-top h2{font-size:clamp(26px,3vw,34px)}
#contact-dialog form{gap:10px}
#contact-dialog .form-grid{gap:10px 18px}
#contact-dialog label{gap:4px;font-size:14px}
#contact-dialog input:not([type=checkbox]),#contact-dialog textarea{padding:8px 10px;min-height:40px}
#contact-dialog textarea{height:80px;min-height:80px}
#contact-dialog .form-consent{margin:2px 0;font-size:12px;line-height:1.4}
#contact-dialog .button{min-height:40px;padding:9px 16px}
#contact-dialog .form-note{font-size:11px;line-height:1.4;margin:0}
#contact-dialog .form-send-status:empty{display:none}
#contact-dialog .contact-switch{margin-top:14px;padding-top:12px;gap:10px;font-size:13px}
@media(max-width:600px){#contact-dialog{padding:18px}}

/* Align footer contact details with the visible emblem inside the logo asset. */
.footer-grid>div:first-child>address,
.footer-grid>div:first-child>a[href^="tel:"]{padding-left:11px}

/* Align footer column headings with the logo's visible lettering. */
.footer-grid>div:nth-child(2),.footer-grid>div:nth-child(3){padding-top:22px}
@media(max-width:760px){.footer-grid>div:nth-child(2),.footer-grid>div:nth-child(3){padding-top:0}}

/* Firm branding remains outside the Google-controlled embed. */
.consultation-form-brand{display:flex;justify-content:center;padding:4px 12px 20px;flex:0 0 auto}
.consultation-form-brand img{width:300px;max-width:100%;height:auto}
#consultation .consultation-form-brand img{filter:brightness(0) invert(1)}
#consultation-dialog .consultation-form-brand img{filter:none}
@media(max-width:600px){.consultation-form-brand{padding-bottom:14px}.consultation-form-brand img{width:250px}}

#contact-dialog .contact-switch [data-intake-open]{background:var(--navy);border-color:var(--navy);color:#fff}
#contact-dialog .contact-switch [data-intake-open]:hover{background:#294653;border-color:#294653}
