img, video { max-width: 100%; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.gallery-grid img, .gallery-grid video { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.card-grid > *, .blog-grid > *, .content-grid > * { min-width: 0; }
.contact-list, .prose, .card { overflow-wrap: anywhere; }

@media (max-width: 900px) {
    .header { padding-left: 24px; padding-right: 24px; }
    .nav { max-height: calc(100vh - 88px); overflow-y: auto; }
    .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .video-only .hero-video { aspect-ratio: 16 / 9; }
}

@media (max-width: 600px) {
    .wrap { padding-left: 22px; padding-right: 22px; }
    .header { padding-left: 18px; padding-right: 18px; }
    .menu { font-size: 12px; font-weight: 700; color: var(--navy); }
    .nav { top: 74px; max-height: calc(100vh - 74px); gap: 0; }
    .nav a { width: 100%; padding: 12px 0; border-bottom: 1px solid #eee8dc; }
    .nav .nav-cta { width: auto; margin-top: 12px; padding: 12px 18px; border: 0; }
    .video-only .hero-video { aspect-ratio: 16 / 9; min-height: 0; }
    .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; padding-top: 28px; padding-bottom: 28px; }
    .stats div { padding: 18px 12px; border: 0; }
    .stats strong { font-size: 34px; }
    .team-feature { gap: 30px; }
    .team-feature h2 { font-size: 31px; }
    .gallery-grid { grid-template-columns: 1fr; }
    .contact-form input, .contact-form textarea { min-width: 0; }
    footer { padding-left: 22px; padding-right: 22px; gap: 28px; }
    .footer-bottom { align-items: flex-start; flex-direction: column; gap: 10px; }
}

@media (max-width: 380px) {
    .brand img { width: 112px; }
    .page-hero { padding-left: 20px; padding-right: 20px; }
    .page-hero h1 { font-size: 34px; }
    .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Bar Council legal disclaimer */
.disclaimer .disclaimer-card {
    width: min(92vw, 900px);
    max-width: none;
    max-height: min(88vh, 760px);
    padding: 0;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .32);
}
.disclaimer .disclaimer-card > .eyebrow { display: none; }
.disclaimer .disclaimer-card h2 {
    margin: 0;
    padding: 24px 28px;
    background: var(--navy);
    color: #fff;
    font-size: clamp(21px, 1.6vw, 26px);
    font-weight: 700;
    text-transform: uppercase;
}
.disclaimer .disclaimer-text {
    margin: 0;
    padding: 28px 34px 18px;
    overflow-y: auto;
    color: #8b8b8b;
    font-size: 16px;
    line-height: 1.55;
}
.disclaimer .disclaimer-text p { margin: 0 0 20px; }
.disclaimer .disclaimer-text p:last-child { margin-bottom: 0; }
.disclaimer .disclaimer-text ol { margin: 0 0 22px; padding-left: 1.25em; }
.disclaimer .disclaimer-text li { margin-bottom: 16px; padding-left: 4px; }
.disclaimer .disclaimer-card button {
    position: static;
    width: min(290px, calc(100% - 48px));
    min-height: 58px;
    margin: 20px auto 24px;
    padding: 14px 24px;
    border-radius: 4px;
    font: 700 19px Georgia, 'Times New Roman', serif;
    text-transform: none;
    color: #fff;
    background: #c9a45d;
}
.disclaimer .disclaimer-card button { font-size: 0; }
.disclaimer .disclaimer-card button::after { content: 'I Agree / Enter'; font-size: 19px; }

@media (max-width: 600px) {
    .disclaimer { padding: 10px; }
    .disclaimer .disclaimer-card { width: 100%; max-height: 96vh; border-radius: 7px; }
    .disclaimer .disclaimer-card h2 { padding: 22px 20px; font-size: 21px; }
    .disclaimer .disclaimer-text { padding: 24px 20px; font-size: 15px; line-height: 1.55; }
    .disclaimer .disclaimer-text p { margin-bottom: 20px; }
    .disclaimer .disclaimer-text ol { margin-bottom: 20px; }
    .disclaimer .disclaimer-text li { margin-bottom: 16px; }
    .disclaimer .disclaimer-card button { min-height: 58px; margin: 18px auto; }
}
