/* ── SHARED STYLES — Nashville Injury Law Group ── */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700;900&family=DM+Sans:wght@300;400;500;600&display=swap');

:root {
  --red: #A51C30;
  --navy: #1E4A72;
  --gold: #F0B429;
  --cream: #FAF7F2;
  --dark: #0D1B2A;
  --mid: #4A5568;
  --light: #F0EDE8;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'DM Sans',sans-serif; background:var(--cream); color:var(--dark); overflow-x:hidden; padding-top:72px; }

/* ── NAV ── */
#main-nav {
  position:fixed; top:0; left:0; right:0; z-index:200;
  background:rgba(13,27,42,0.97); backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(240,180,41,0.2);
}
.nav-inner { display:flex; align-items:center; justify-content:space-between; padding:0 5%; height:72px; }
.nav-logo { font-family:'Playfair Display',serif; font-size:1.1rem; font-weight:700; color:#fff; letter-spacing:0.02em; line-height:1.2; text-decoration:none; }
.nav-logo span { color:var(--gold); }
.nav-links { display:flex; gap:2rem; list-style:none; }
.nav-links a { color:rgba(255,255,255,0.75); text-decoration:none; font-size:0.82rem; font-weight:500; letter-spacing:0.08em; text-transform:uppercase; transition:color 0.2s; }
.nav-links a:hover { color:var(--gold); }
.nav-cta { background:var(--red)!important; color:#fff!important; padding:0.5rem 1.2rem; border-radius:3px; font-weight:600!important; }
.nav-cta:hover { background:#8a1626!important; }

/* Hamburger */
.hamburger { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:4px; }
.hamburger span { display:block; width:24px; height:2px; background:#fff; border-radius:2px; transition:all 0.3s; }
.hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* Mobile menu */
.mobile-menu { display:none; position:fixed; top:72px; left:0; right:0; background:rgba(13,27,42,0.98); z-index:199; padding:1rem 6%; flex-direction:column; border-bottom:1px solid rgba(240,180,41,0.2); }
.mobile-menu.open { display:flex; }
.mobile-menu a { color:rgba(255,255,255,0.75); text-decoration:none; font-size:1rem; font-weight:500; padding:0.9rem 0; border-bottom:1px solid rgba(255,255,255,0.07); }
.mobile-menu a:last-child { border-bottom:none; }
.mobile-menu .mobile-cta { background:var(--red); color:#fff!important; text-align:center; padding:0.9rem!important; border-radius:4px; margin-top:0.75rem; border-bottom:none!important; font-weight:600!important; }

/* Mobile call bar */
#mobile-call-bar { display:none; position:fixed; bottom:0; left:0; right:0; z-index:198; background:var(--red); padding:1rem 6%; text-align:center; box-shadow:0 -4px 20px rgba(165,28,48,0.4); }
#mobile-call-bar a { color:#fff; text-decoration:none; font-size:1rem; font-weight:600; }

/* ── FOOTER ── */
#main-footer { background:var(--dark); border-top:1px solid rgba(240,180,41,0.2); }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:3rem; padding:4rem 8%; }
.footer-brand .nav-logo { font-size:1rem; display:block; margin-bottom:1rem; }
.footer-brand p { font-size:0.82rem; color:rgba(255,255,255,0.4); line-height:1.7; font-weight:300; margin-bottom:0.5rem; max-width:280px; }
.footer-tagline { font-style:italic; color:rgba(255,255,255,0.3)!important; }
.footer-col h4 { font-size:0.7rem; letter-spacing:0.15em; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:1rem; }
.footer-col a, .footer-col p { display:block; font-size:0.82rem; color:rgba(255,255,255,0.45); text-decoration:none; margin-bottom:0.45rem; font-weight:300; transition:color 0.2s; }
.footer-col a:hover { color:rgba(255,255,255,0.85); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; padding:1.25rem 8%; border-top:1px solid rgba(255,255,255,0.06); }
.footer-bottom p { font-size:0.76rem; color:rgba(255,255,255,0.25); }

/* ── COMMON ── */
.section { padding:5.5rem 8%; }
.section-label { display:flex; align-items:center; gap:0.75rem; margin-bottom:0.75rem; }
.section-label span { display:block; width:28px; height:2px; background:var(--red); }
.section-label p { font-size:0.7rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--red); font-weight:600; }
.section-title { font-family:'Playfair Display',serif; font-size:clamp(1.9rem,3.2vw,2.7rem); font-weight:700; color:var(--dark); line-height:1.15; margin-bottom:0.9rem; }
.section-sub { color:var(--mid); font-size:0.98rem; line-height:1.75; max-width:560px; font-weight:300; }
.btn-primary { display:inline-flex; align-items:center; gap:0.6rem; background:var(--red); color:#fff; padding:0.95rem 1.9rem; font-size:0.95rem; font-weight:600; border-radius:4px; text-decoration:none; transition:all 0.2s; box-shadow:0 4px 20px rgba(165,28,48,0.35); }
.btn-primary:hover { background:#8a1626; transform:translateY(-1px); box-shadow:0 8px 28px rgba(165,28,48,0.45); }
.btn-secondary { display:inline-flex; align-items:center; gap:0.6rem; background:transparent; color:var(--navy); padding:0.95rem 1.9rem; font-size:0.95rem; font-weight:600; border-radius:4px; text-decoration:none; border:2px solid var(--navy); transition:all 0.2s; }
.btn-secondary:hover { background:var(--navy); color:#fff; }
.fade-in { opacity:0; transform:translateY(20px); transition:opacity 0.6s ease,transform 0.6s ease; }
.fade-in.visible { opacity:1; transform:translateY(0); }
.page-hero { min-height:52vh; background:var(--dark); display:flex; align-items:flex-end; padding:5rem 8% 4rem; position:relative; overflow:hidden; }
.page-hero::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 70% 90% at 60% 50%, rgba(30,74,114,0.5) 0%, transparent 70%); }
.page-hero-content { position:relative; z-index:2; }
.page-hero h1 { font-family:'Playfair Display',serif; font-size:clamp(2.5rem,5vw,4rem); font-weight:900; color:#fff; line-height:1.08; margin-bottom:1rem; }
.page-hero h1 em { font-style:normal; color:var(--gold); }
.page-hero p { color:rgba(255,255,255,0.6); font-size:1.05rem; line-height:1.7; max-width:540px; font-weight:300; }

/* ── CHAT WIDGET ── */
#chat-container { position:fixed; bottom:90px; right:24px; z-index:300; }
#chat-bubble { width:58px; height:58px; background:var(--red); border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; cursor:pointer; box-shadow:0 6px 24px rgba(165,28,48,0.45); transition:transform 0.2s; position:relative; }
#chat-bubble:hover { transform:scale(1.08); }
#chat-badge { position:absolute; top:-2px; right:-2px; width:18px; height:18px; background:var(--gold); border-radius:50%; font-size:0.7rem; font-weight:700; color:var(--dark); display:none; align-items:center; justify-content:center; }
#chat-window { position:absolute; bottom:70px; right:0; width:340px; background:#fff; border-radius:14px; box-shadow:0 20px 60px rgba(0,0,0,0.2); display:none; flex-direction:column; overflow:hidden; border:1px solid rgba(0,0,0,0.08); }
#chat-window.open { display:flex; }
#chat-header { background:var(--navy); padding:1rem 1.25rem; display:flex; align-items:center; justify-content:space-between; }
.chat-header-info { display:flex; align-items:center; gap:0.75rem; }
.chat-avatar { width:38px; height:38px; background:rgba(240,180,41,0.25); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Playfair Display',serif; font-weight:700; color:var(--gold); font-size:0.85rem; }
.chat-header-info strong { display:block; color:#fff; font-size:0.88rem; }
.chat-header-info span { color:rgba(255,255,255,0.5); font-size:0.75rem; }
#chat-close { background:none; border:none; color:rgba(255,255,255,0.6); cursor:pointer; font-size:1rem; padding:4px; transition:color 0.2s; }
#chat-close:hover { color:#fff; }
#chat-messages { flex:1; overflow-y:auto; padding:1rem; display:flex; flex-direction:column; gap:0.75rem; max-height:320px; min-height:200px; }
.chat-msg { display:flex; }
.chat-msg.user { justify-content:flex-end; }
.chat-bubble-msg { max-width:80%; padding:0.65rem 0.9rem; border-radius:12px; font-size:0.875rem; line-height:1.5; }
.chat-msg.bot .chat-bubble-msg { background:var(--light); color:var(--dark); border-radius:4px 12px 12px 12px; }
.chat-msg.user .chat-bubble-msg { background:var(--navy); color:#fff; border-radius:12px 4px 12px 12px; }
.typing { display:flex; gap:5px; align-items:center; padding:0.75rem 1rem!important; }
.typing span { width:7px; height:7px; background:var(--mid); border-radius:50%; animation:bounce 1.2s infinite; }
.typing span:nth-child(2) { animation-delay:0.2s; }
.typing span:nth-child(3) { animation-delay:0.4s; }
@keyframes bounce { 0%,60%,100%{transform:translateY(0)} 30%{transform:translateY(-6px)} }
#chat-input-area { display:flex; align-items:center; gap:0.5rem; padding:0.75rem 1rem; border-top:1px solid rgba(0,0,0,0.07); }
#chat-input { flex:1; border:1.5px solid rgba(0,0,0,0.1); border-radius:6px; padding:0.6rem 0.85rem; font-family:'DM Sans',sans-serif; font-size:0.875rem; outline:none; transition:border-color 0.2s; }
#chat-input:focus { border-color:var(--navy); }
#chat-input-area button { width:36px; height:36px; background:var(--red); border:none; border-radius:6px; color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background 0.2s; flex-shrink:0; }
#chat-input-area button:hover { background:#8a1626; }

/* ── MOBILE ── */
@media(max-width:768px){
  .nav-links { display:none; }
  .hamburger { display:flex; }
  #mobile-call-bar { display:block; }
  body { padding-bottom:64px; }
  .footer-grid { grid-template-columns:1fr; gap:2rem; padding:3rem 6%; }
  .footer-bottom { flex-direction:column; gap:0.5rem; text-align:center; padding:1.25rem 6%; }
  .section { padding:4rem 6%; }
  .page-hero { padding:4rem 6% 3rem; min-height:45vh; }
  #chat-container { bottom:78px; right:16px; }
  #chat-window { width:calc(100vw - 32px); right:-8px; }
}

/* ── LOGO IMAGE ── */
.nav-logo-img { display:flex; align-items:center; text-decoration:none; }
.nav-logo-img img { height:44px; width:auto; filter:brightness(0) invert(1); }
@media(max-width:768px) { .nav-logo-img img { height:36px; } }

/* ── PRACTICE CARDS HOME ── */
.practice-card-home {
  background: #fff;
  border-radius: 8px;
  padding: 1.6rem 1.5rem;
  border: 1px solid rgba(0,0,0,0.06);
  display: flex;
  align-items: center;
  gap: 1rem;
  transition: all 0.25s;
  cursor: default;
}
.practice-card-home:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.1);
}
.pcard-icon {
  width: 46px;
  height: 46px;
  background: rgba(165,28,48,0.08);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.pcard-label {
  font-family: 'Playfair Display', serif;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--dark);
  line-height: 1.3;
}
@media(max-width:768px) {
  .practice-card-home { padding: 1.25rem; }
}
