/* Batista Law Firm: Canva "Modern Law" layout, darker palette, the current site's images and practice-area format. */
:root {
  --forest: #17352b;
  --forest-deep: #0d211b;
  --forest-mid: #142b24;
  --card: #1d332c;
  --card-line: rgba(255, 255, 255, .09);
  --sage: #b8c8bb;
  --sage-light: #c7d3ca;
  --cream: #f5f1e9;
  --brown: #a77b55;
  --brown-dark: #8a6142;
  --gold: #d5ad85;
  --frame: rgba(196, 154, 114, .6);
  --ink: #22312a;
  --body-dark: #2d3d34;
  --on-dark: #d9dfd7;
  --on-dark-2: #aebbb2;
  --max: 1360px;
}
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: 'Libre Franklin', system-ui, sans-serif; font-size: 16px; line-height: 1.65; color: var(--ink); background: var(--cream); -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3 { font-family: 'Fraunces', Georgia, serif; font-weight: 500; line-height: 1.12; letter-spacing: -.02em; margin: 0; }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
:focus-visible { outline: 3px solid #c89568; outline-offset: 3px; }
.wrap { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 clamp(20px, 4vw, 56px); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip { position: absolute; left: -9999px; top: 0; z-index: 100; background: var(--brown); color: #fff; padding: 10px 16px; }
.skip:focus { left: 12px; top: 12px; }

/* Type helpers */
.eyebrow { font-size: 12px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; margin: 0 0 18px; }
.rule { width: 43px; height: 2px; background: var(--brown); border: 0; margin: 0 0 28px; }
.on-dark .eyebrow, .eyebrow.gold { color: var(--gold); }
.on-light .eyebrow { color: #6f4f36; }
.on-light h2 { color: var(--forest); }
.on-dark { color: #fff; }

/* Buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 15px 28px; border: 1px solid transparent; border-radius: 2px; font: 600 16px/1.2 'Libre Franklin', sans-serif; text-decoration: none; text-align: center; cursor: pointer; transition: background .2s, color .2s, border-color .2s, transform .2s; }
.btn:hover { transform: translateY(-2px); }
.btn:disabled { opacity: .6; cursor: wait; transform: none; }
.btn-brown { background: var(--brown); color: #fff; }
.btn-brown:hover { background: var(--brown-dark); }
.btn-dark { background: var(--forest); color: #fff; }
.btn-dark:hover { background: var(--forest-deep); }
.btn-ghost { border-color: rgba(255, 255, 255, .45); color: #fff; background: transparent; }
.btn-ghost:hover { border-color: #fff; }
.btn-outline { border-color: var(--forest); color: var(--forest); background: transparent; }
.btn-outline:hover { background: var(--forest); color: #fff; }
.link-arrow { color: var(--gold); font-weight: 600; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 3px; }
.link-arrow:hover { color: #fff; }

/* Top bar and header */
.topbar { background: var(--forest-deep); color: var(--on-dark); font-size: 13px; }
.topbar-in { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 38px; }
.topbar .es { color: var(--gold); font-weight: 600; letter-spacing: .2em; text-transform: uppercase; font-size: 12px; }
.topbar a { color: #fff; font-weight: 600; text-decoration: none; letter-spacing: .04em; }
.topbar a:hover { color: var(--gold); }
.site-header { position: sticky; top: 0; z-index: 50; background: var(--forest); color: #fff; box-shadow: 0 1px 0 rgba(255, 255, 255, .06), 0 8px 24px rgba(0, 0, 0, .12); }
.header-in { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 88px; }
.brand { flex: none; }
.brand img { height: 60px; width: auto; }
.nav > ul { display: flex; align-items: center; gap: clamp(22px, 3vw, 44px); list-style: none; margin: 0; padding: 0; }
.nav > ul > li { padding: 30px 0; }
.nav a { color: var(--cream); font-size: 16px; text-decoration: none; transition: color .2s; }
.nav a:hover, .nav a[aria-current="page"] { color: var(--gold); }
.has-sub { position: relative; }
.has-sub > a::after { content: ""; display: inline-block; width: 6px; height: 6px; margin: 0 0 3px 9px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }
.sub { position: absolute; top: 100%; left: -18px; min-width: 260px; list-style: none; margin: 0; padding: 10px 0; background: var(--forest-deep); border: 1px solid var(--card-line); box-shadow: 0 18px 40px rgba(0, 0, 0, .3); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .18s, transform .18s, visibility .18s; }
.has-sub:hover .sub, .has-sub:focus-within .sub { opacity: 1; visibility: visible; transform: none; }
.sub a { display: block; padding: 10px 20px; font-size: 15px; }
.menu-toggle { display: none; align-items: center; justify-content: center; padding: 8px; color: #fff; background: none; border: 1px solid rgba(255, 255, 255, .4); border-radius: 4px; cursor: pointer; }
.mobile-nav { border-top: 1px solid rgba(255, 255, 255, .15); padding: 10px clamp(20px, 4vw, 56px) 22px; }
.mobile-nav a { display: block; padding: 11px 0; color: var(--cream); text-decoration: none; }
.mobile-nav a[aria-current="page"] { color: var(--gold); }
.mobile-nav .indent a { padding-left: 16px; font-size: 15px; color: var(--on-dark-2); }
.mobile-nav .btn { margin-top: 12px; color: #fff; }
@media (max-width: 980px) {
  .nav, .header-cta { display: none; }
  .menu-toggle { display: inline-flex; }
  .header-in { min-height: 74px; }
  .brand img { height: 50px; }
}
@media (min-width: 981px) { .mobile-nav { display: none !important; } }

/* Sections */
.section { padding: clamp(64px, 8vw, 112px) 0; scroll-margin-top: 90px; }
.bg-sage { background: var(--sage); }
.bg-sage-light { background: var(--sage-light); }
.bg-cream { background: var(--cream); }
.bg-forest { background: var(--forest); }
.bg-forest-mid { background: var(--forest-mid); }
.section-head { max-width: 46rem; margin-bottom: clamp(36px, 4vw, 56px); }
.section-head h2 { font-size: clamp(32px, 3.4vw, 46px); letter-spacing: -.035em; margin-bottom: 18px; }
.section-head p { font-size: 17px; }
.on-light .section-head p { color: #34483b; }
.on-dark .section-head p { color: var(--on-dark); }
.reveal { animation: rise .7s ease-out; }
.reveal-2 { animation-duration: .9s; }
@keyframes rise { from { transform: translateY(14px); } to { transform: none; } }

/* Home hero: Canva hero, with the firm's team photo framed on the right */
.hero { color: #fff; background: radial-gradient(ellipse at 85% 15%, rgba(52, 98, 78, .5), transparent 60%), linear-gradient(135deg, var(--forest-deep), var(--forest) 60%, #1a3c30); overflow: hidden; }
.hero-in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: clamp(36px, 5vw, 84px); padding-top: clamp(56px, 8vw, 112px); padding-bottom: clamp(64px, 8vw, 120px); }
.hero h1 { font-size: clamp(40px, 5vw, 68px); letter-spacing: -.035em; margin-bottom: 26px; }
.hero .lead { font-size: clamp(17px, 1.35vw, 19px); color: #e6e8e1; max-width: 34em; margin-bottom: 34px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }
/* Home photo frame: one thin gold line around the photo (ARB 11-13-2026; replaced the double line, which
   replaced the offset gold line). */
.hero-photo { position: relative; }
.hero-photo img { position: relative; display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border: 1px solid var(--gold); box-shadow: 0 30px 60px rgba(0, 0, 0, .35); }
@media (max-width: 900px) { .hero-in { grid-template-columns: 1fr; } }

/* Practice-area cards: the current site's format (photo, title band, list, Learn More) in the dark palette */
.cards-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2vw, 30px); }
@media (max-width: 860px) { .cards-3 { grid-template-columns: 1fr; max-width: 560px; } }
.pcard { display: flex; flex-direction: column; overflow: hidden; color: #fff; background: var(--card); border: 1px solid rgba(213, 173, 133, .35); border-radius: 4px 4px 20px 20px; transition: transform .25s, box-shadow .25s; }
.pcard:hover { transform: translateY(-5px); box-shadow: 0 18px 40px rgba(0, 0, 0, .22); }
.pcard img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.pcard-title { margin: 0; padding: 18px 26px; background: var(--forest-deep); border-bottom: 2px solid var(--brown); font-size: 18px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.pcard-body { display: flex; flex: 1; flex-direction: column; padding: 24px 26px 28px; }
.pcard ul { flex: 1; list-style: none; margin: 0 0 26px; padding: 0; }
.pcard li { padding: 9px 0; color: var(--on-dark); text-align: center; border-bottom: 1px solid var(--card-line); }
.pcard li:last-child { border-bottom: 0; }
.pcard p { flex: 1; color: var(--on-dark); margin-bottom: 26px; text-align: justify; hyphens: auto; }
.pcard-title { display: flex; flex-direction: column; justify-content: center; min-height: 86px; text-align: center; }
.pcard-where { display: block; margin-top: 5px; color: var(--gold); font-size: 13px; letter-spacing: .2em; }
.pcard .btn { align-self: center; }
/* The whole card is clickable: the Learn More link stretches over the card. */
.pcard { position: relative; cursor: pointer; }
.pcard .btn::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.pcard .btn:hover { transform: none; }
.pcard:hover .btn { background: var(--brown-dark); }
.pcard:hover .pcard-title { color: var(--gold); }
.footer-practices a { color: var(--on-dark-2); }
.footer-practices a:hover { color: var(--gold); }
.footer-social a { display: inline-flex; align-items: center; gap: 8px; }
.footer-social svg { flex: none; }

/* About */
.about { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.about h2 { font-size: clamp(30px, 3.2vw, 44px); letter-spacing: -.03em; }
.about-body p { font-size: 17.5px; color: var(--body-dark); }
@media (max-width: 860px) { .about { grid-template-columns: 1fr; } }

/* Team cards */
.team-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(18px, 2vw, 28px); }
.tcard { grid-column: span 2; display: flex; flex-direction: column; overflow: hidden; color: #fff; text-decoration: none; background: var(--card); border: 1px solid var(--card-line); border-radius: 3px; transition: transform .25s, box-shadow .25s; }
.tcard:hover { transform: translateY(-5px); box-shadow: 0 18px 40px rgba(0, 0, 0, .22); }
.team-grid .tcard:nth-child(4) { grid-column: 2 / span 2; }
.team-grid .tcard:nth-child(5) { grid-column: 4 / span 2; }
.tcard img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; }
.tcard-body { display: flex; flex: 1; flex-direction: column; padding: 24px 26px 28px; }
.tcard h3 { font-size: 25px; margin-bottom: 8px; }
.role { color: var(--gold); font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 14px; }
.tcard p { flex: 1; color: var(--on-dark); }
.tcard .more { margin-top: 18px; color: var(--gold); font-weight: 600; }
@media (max-width: 1000px) {
  .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tcard, .team-grid .tcard:nth-child(4), .team-grid .tcard:nth-child(5) { grid-column: auto; }
}
@media (max-width: 560px) { .team-grid { grid-template-columns: 1fr; } }

/* Hear From Our Clients: the current site's format */
.clients { text-align: center; }
.clients h2 { font-size: clamp(34px, 3.6vw, 50px); letter-spacing: -.03em; color: var(--forest); margin-bottom: 18px; }
.clients p { max-width: 36rem; margin: 0 auto 30px; color: var(--body-dark); font-size: 17px; }
.clients .stars { color: var(--brown); font-size: 20px; letter-spacing: .3em; margin-bottom: 14px; }
.btn-row { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }

/* Contact */
.contact { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(36px, 6vw, 96px); align-items: start; }
.contact h2 { font-size: clamp(32px, 3.4vw, 46px); letter-spacing: -.035em; color: var(--forest); margin-bottom: 22px; }
.contact-copy > p { color: var(--body-dark); font-size: 17px; max-width: 30rem; }
.contact .note { font-size: 14px; color: #536257; max-width: 28rem; }
.office { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 28px; margin-top: 34px; padding-top: 30px; border-top: 1px solid rgba(23, 53, 43, .18); }
.office h3 { font: 600 12px/1.4 'Libre Franklin', sans-serif; letter-spacing: .2em; text-transform: uppercase; color: #6f4f36; margin-bottom: 8px; }
.office p { margin: 0; color: var(--body-dark); font-size: 15.5px; }
.office a { color: var(--forest); font-weight: 600; text-decoration: none; }
.office a:hover { text-decoration: underline; }
@media (max-width: 980px) { .contact { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .office { grid-template-columns: 1fr; } }

/* The Wix form */
.form-panel { padding: clamp(26px, 3.5vw, 46px); color: #fff; background: var(--card); border-radius: 3px; box-shadow: 0 18px 55px rgba(16, 33, 28, .14); }
.form-panel h3 { font-size: 29px; font-weight: 400; margin-bottom: 26px; }
.fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.field-wide { grid-column: 1 / -1; }
.field label, .field legend { display: block; margin-bottom: 8px; padding: 0; color: #eef2ee; font-size: 14px; font-weight: 600; }
.field fieldset { border: 0; margin: 0; padding: 0; }
.field input[type="text"], .field input[type="email"], .field input[type="tel"], .field input[type="url"], .field input[type="number"], .field input[type="date"], .field input[type="time"], .field input[type="datetime-local"], .field select, .field textarea { width: 100%; padding: 13px 15px; color: #f4f6f3; font: 16px/1.4 'Libre Franklin', sans-serif; background: #203b32; border: 1px solid #40564d; border-radius: 4px; }
.field select { appearance: none; padding-right: 42px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23d5ad85' stroke-width='1.6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; }
.field option { color: #111; background: #fff; }
.field textarea { min-height: 130px; resize: vertical; }
.field input::placeholder, .field textarea::placeholder { color: #8b928b; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--brown); box-shadow: 0 0 0 3px rgba(167, 123, 85, .2); }
.field [aria-invalid="true"] { border-color: #e08a7d; }
.field .choice { display: flex; align-items: flex-start; gap: 10px; margin: 6px 0; font-weight: 400; color: var(--on-dark); }
.field .choice input { margin-top: 5px; accent-color: var(--brown); }
.field-help { margin: 6px 0 0; color: var(--on-dark-2); font-size: 13px; }
.field-error { margin: 6px 0 0; color: #f0a597; font-size: 13.5px; }
.field-error:empty { display: none; }
.form-loading { color: var(--on-dark-2); margin: 0; }
.form-error { margin: 18px 0 0; color: #f0a597; font-weight: 600; }
.form-error:empty { display: none; }
.form-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 26px; }
.form-note { margin: 18px 0 0; color: var(--on-dark-2); font-size: 13px; }
.form-note a { color: var(--gold); }
.form-thanks { padding: 10px 0; }
.form-thanks p { font-family: 'Fraunces', Georgia, serif; font-size: 22px; line-height: 1.45; }
.form-thanks:focus { outline: none; }
@media (max-width: 640px) { .fields { grid-template-columns: 1fr; } }

/* Page banner: the current site's format (photo with a framed title box) */
.banner { position: relative; display: grid; place-items: center; min-height: clamp(260px, 30vw, 440px); overflow: hidden; color: #fff; background: var(--forest-deep); }
.banner img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.banner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(13, 33, 27, .3), rgba(13, 33, 27, .62)); }
.banner-box { position: relative; z-index: 1; max-width: 680px; margin: 40px 20px; padding: clamp(22px, 3vw, 34px) clamp(28px, 5vw, 64px); text-align: center; background: rgba(13, 33, 27, .66); border: 1px solid rgba(213, 173, 133, .55); }
.banner-box h1 { font-size: clamp(25px, 3vw, 40px); font-weight: 500; letter-spacing: .14em; line-height: 1.3; text-transform: uppercase; }
@media (min-width: 900px) { .banner-box { max-width: none; } .banner-box h1 { white-space: nowrap; } }

/* Language switch and translated-review note */
.topbar .lang-link { color: var(--gold); font-weight: 600; letter-spacing: .2em; text-transform: uppercase; font-size: 12px; text-decoration: none; border-bottom: 1px solid rgba(213, 173, 133, .45); padding-bottom: 1px; }
.topbar .lang-link:hover { color: #fff; border-color: #fff; }
.mobile-nav .lang-link { color: var(--gold); }
.t-note { margin: 16px 0 0; text-align: center; color: #536257; font-size: 13px; font-style: italic; }
.page-head { padding: clamp(56px, 7vw, 96px) 0 clamp(40px, 5vw, 64px); color: #fff; background: linear-gradient(135deg, var(--forest-deep), var(--forest)); }
.page-head h1 { font-size: clamp(36px, 4.4vw, 58px); letter-spacing: -.035em; }

/* Practice pages: intro and the numbered 01-04 cards */
.intro { max-width: 54rem; margin-bottom: clamp(36px, 4vw, 56px); }
.intro h2 { font-size: clamp(30px, 3.2vw, 44px); letter-spacing: -.03em; margin-bottom: 20px; }
.intro p { font-size: 17.5px; color: var(--on-dark); }
.steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(18px, 2vw, 28px); }
.step { padding: clamp(26px, 3vw, 42px); background: var(--card); border: 1px solid var(--card-line); border-radius: 3px; transition: transform .25s, box-shadow .25s; }
.step:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(0, 0, 0, .2); }
.step .num { display: block; margin-bottom: 18px; font-family: 'Fraunces', Georgia, serif; font-size: 46px; line-height: 1; color: var(--gold); }
.step h3 { margin-bottom: 14px; font-size: 18px; letter-spacing: .14em; text-transform: uppercase; }
.step p { color: var(--on-dark); }
@media (max-width: 760px) { .steps { grid-template-columns: 1fr; } }
.story { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(28px, 5vw, 72px); align-items: center; margin-top: clamp(56px, 6vw, 88px); padding-top: clamp(56px, 6vw, 88px); border-top: 1px solid var(--card-line); }
.story h2 { font-size: clamp(28px, 3vw, 40px); margin-bottom: 18px; }
.story p { color: var(--on-dark); font-size: 17px; }
.story img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border: 1px solid var(--frame); }
@media (max-width: 860px) { .story { grid-template-columns: 1fr; } }
.cta-band { padding: clamp(44px, 5vw, 68px) 0; text-align: center; background: var(--sage-light); }
.cta-band h2 { font-size: clamp(26px, 2.6vw, 34px); color: var(--forest); margin-bottom: 22px; }

/* Testimonials: the current site's star-quote box */
.tbox { position: relative; max-width: 940px; margin: 0 auto; padding: clamp(34px, 5vw, 64px) clamp(26px, 6vw, 88px); text-align: center; color: #fff; background: var(--forest); border-radius: 3px; box-shadow: 0 24px 60px rgba(13, 33, 27, .18); }
.tbox .stars { margin-bottom: 18px; color: var(--gold); font-size: 18px; letter-spacing: .3em; }
.tbox blockquote { margin: 0; font-family: 'Fraunces', Georgia, serif; font-size: clamp(19px, 1.8vw, 24px); font-style: italic; line-height: 1.55; }
.tbox cite { display: block; margin-top: 22px; color: var(--gold); font-size: 13px; font-style: normal; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.t-controls { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 28px; }
.t-controls > button { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; color: #fff; background: none; border: 1px solid rgba(255, 255, 255, .35); border-radius: 50%; cursor: pointer; font-size: 18px; }
.t-controls > button:hover { border-color: var(--gold); color: var(--gold); }
.dots { display: flex; gap: 10px; }
.dots button { width: 10px; height: 10px; padding: 0; background: rgba(255, 255, 255, .35); border: 0; border-radius: 50%; cursor: pointer; }
.dots button[aria-current="true"] { background: var(--gold); }

/* Team page */
.profile { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(28px, 5vw, 76px); align-items: start; padding: clamp(52px, 6vw, 84px) 0; border-bottom: 1px solid var(--card-line); scroll-margin-top: 100px; }
.profile:last-child { border-bottom: 0; }
.profile img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; border: 1px solid var(--frame); }
.profile h2 { font-size: clamp(32px, 3.4vw, 46px); letter-spacing: -.03em; margin-bottom: 10px; }
.profile .role { margin-bottom: 26px; }
.bio p { color: var(--on-dark); font-size: 17px; }
.facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; margin-top: 30px; padding-top: 28px; border-top: 1px solid var(--card-line); }
.facts h3 { margin-bottom: 10px; color: var(--gold); font: 600 12px/1.4 'Libre Franklin', sans-serif; letter-spacing: .2em; text-transform: uppercase; }
.facts ul { list-style: none; margin: 0; padding: 0; color: var(--on-dark); font-size: 15px; }
.facts li { margin-bottom: 8px; }
.facts a { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(213, 173, 133, .5); }
.facts a:hover { color: var(--gold); }
@media (max-width: 960px) { .facts { grid-template-columns: 1fr 1fr; } }
@media (max-width: 820px) { .profile { grid-template-columns: 1fr; } .profile img { max-width: 360px; } }
@media (max-width: 520px) { .facts { grid-template-columns: 1fr; } }

/* Privacy policy */
.prose { max-width: 50rem; }
.prose h2 { margin: 2.2em 0 .7em; font-size: 26px; color: var(--forest); }
.prose p, .prose li { color: var(--body-dark); font-size: 17px; }
.prose ul { padding-left: 1.3em; }
.prose li { margin-bottom: .45em; }
.prose .updated { color: #6f4f36; font-weight: 600; }

/* Footer */
.site-footer { color: var(--on-dark-2); font-size: 14.5px; background: var(--forest-deep); }
.footer-top { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 36px; padding: clamp(52px, 6vw, 76px) 0 42px; }
.footer-top h2 { margin-bottom: 14px; color: var(--gold); font: 600 12px/1.4 'Libre Franklin', sans-serif; letter-spacing: .2em; text-transform: uppercase; }
.footer-top p { margin: 0 0 4px; }
.footer-top a { color: #fff; text-decoration: none; }
.footer-top a:hover { color: var(--gold); }
.footer-brand img { height: 64px; width: auto; margin-bottom: 18px; }
.footer-legal { padding: 28px 0 38px; font-size: 12.5px; line-height: 1.7; border-top: 1px solid rgba(255, 255, 255, .1); }
.footer-legal p { max-width: 64rem; margin-bottom: .6em; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 16px; }
.footer-bottom a { color: #fff; }
@media (max-width: 900px) { .footer-top { grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px) { .footer-top { grid-template-columns: 1fr; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Website assistant chat window */
.chat { position: fixed; right: 24px; bottom: 24px; z-index: 80; display: flex; flex-direction: column; width: min(400px, calc(100vw - 32px)); height: min(620px, calc(100vh - 48px)); overflow: hidden; color: var(--ink); background: var(--cream); border: 1px solid rgba(23, 53, 43, .2); border-radius: 10px; box-shadow: 0 24px 70px rgba(0, 0, 0, .35); }
.chat-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; color: #fff; background: var(--forest); border-bottom: 2px solid var(--brown); }
.chat-title { margin: 0; font-family: 'Fraunces', Georgia, serif; font-size: 18px; }
.chat-sub { margin: 2px 0 0; color: var(--gold); font-size: 12px; letter-spacing: .04em; }
.chat-x { width: 36px; height: 36px; color: #fff; background: none; border: 1px solid rgba(255, 255, 255, .35); border-radius: 50%; font-size: 22px; line-height: 1; cursor: pointer; }
.chat-x:hover { border-color: var(--gold); color: var(--gold); }
.chat-log { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 10px; }
.chat-msg { max-width: 86%; padding: 10px 13px; font-size: 15px; line-height: 1.5; white-space: pre-wrap; border-radius: 12px; }
.chat-msg a { color: inherit; font-weight: 600; }
.chat-assistant { align-self: flex-start; background: #fff; border: 1px solid rgba(23, 53, 43, .12); border-bottom-left-radius: 3px; }
.chat-user { align-self: flex-end; color: #fff; background: var(--forest); border-bottom-right-radius: 3px; }
.chat-typing { color: #69746d; font-style: italic; }
.chat-actions { padding: 0 16px 10px; }
.chat-lead-btn { width: 100%; padding: 10px 14px; color: var(--forest); background: transparent; border: 1px solid var(--forest); border-radius: 3px; font: 600 14px/1.2 'Libre Franklin', sans-serif; cursor: pointer; }
.chat-lead-btn:hover { color: #fff; background: var(--forest); }
.chat-input { display: flex; gap: 8px; padding: 0 16px 10px; }
.chat-input textarea { flex: 1; min-height: 44px; max-height: 120px; padding: 11px 12px; font: 15px/1.4 'Libre Franklin', sans-serif; color: var(--ink); background: #fff; border: 1px solid rgba(23, 53, 43, .3); border-radius: 4px; resize: none; }
.chat-input textarea:focus { outline: none; border-color: var(--brown); box-shadow: 0 0 0 3px rgba(167, 123, 85, .18); }
.chat-input .btn { padding: 0 16px; }
.chat-fine { margin: 0; padding: 0 16px 12px; color: #69746d; font-size: 11.5px; line-height: 1.45; }
.chat-lead { flex: 1; overflow-y: auto; padding: 12px; }
.chat-back { margin: 0 0 10px; padding: 4px 0; color: var(--forest); background: none; border: 0; font: 600 14px 'Libre Franklin', sans-serif; cursor: pointer; }
.chat-form { padding: 18px; }
.chat-form h3 { font-size: 22px; margin-bottom: 16px; }
.chat-form .fields { grid-template-columns: 1fr; gap: 14px; }
.chat-launcher { display: none; position: fixed; right: 18px; bottom: 18px; z-index: 79; width: 58px; height: 58px; align-items: center; justify-content: center; color: #fff; background: var(--brown); border: 0; border-radius: 50%; box-shadow: 0 10px 28px rgba(0, 0, 0, .3); cursor: pointer; }
.chat-open .chat-launcher { display: none !important; }
@media (max-width: 980px) { .chat-launcher { display: inline-flex; } }
@media (max-width: 560px) { .chat { right: 0; bottom: 0; width: 100vw; height: 100dvh; border-radius: 0; border: 0; } }

/* Floating Contact Us button (every page except Contact) */
.float-contact { position: fixed; right: 24px; bottom: 24px; z-index: 78; display: inline-flex; align-items: center; gap: 8px; padding: 13px 20px; color: #fff; background: var(--brown); border-radius: 999px; font: 600 15px/1 'Libre Franklin', sans-serif; text-decoration: none; box-shadow: 0 10px 28px rgba(0, 0, 0, .3); transition: background .2s, transform .2s; }
.float-contact:hover { background: var(--brown-dark); transform: translateY(-2px); }
.chat-open .float-contact { display: none; }
@media (max-width: 980px) { .float-contact { right: 88px; bottom: 22px; padding: 12px 16px; font-size: 14px; } }

/* Cards side by side share one title-band height, so a title that wraps never leaves the others uneven */
@media (min-width: 861px) {
  @supports (grid-template-rows: subgrid) {
    .cards-3 > .pcard { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 0; }
  }
}

/* The office address opens directions in Google Maps */
.addr-link, .office .addr-link { display: block; color: inherit; font-weight: inherit; text-decoration: none; }
.addr-link:hover p { text-decoration: underline; }
.addr-cta { display: inline-block; margin-top: 6px; font-size: 13px; font-weight: 600; letter-spacing: .04em; color: var(--gold); }
.office .addr-cta { color: var(--forest); }
.addr-link:hover .addr-cta { text-decoration: underline; }

/* Footer: one practice area per line */
.footer-practice-list a { display: block; width: fit-content; padding: 2px 0; }

/* Phones and tablets: the Google Reviews badge (from the Google Reviews app) runs along the bottom of the
   screen, so the floating Contact Us button (and the chat button, when the chat is on) sit above it.
   With the chat off, Contact Us takes the chat button's corner. */
@media (max-width: 980px) {
  .float-contact { bottom: 90px; }
  .chat-launcher { bottom: 86px; }
  .no-chat .float-contact { right: 16px; }
}
