/*
Theme Name: Donnelly & Associates
Theme URI: https://donnellyandassociates.com
Author: Donnelly & Associates, P.C.
Description: Standalone WordPress theme for Donnelly & Associates, P.C. — insurance defense litigation firm. Case-file / docket visual system.
Version: 1.0
Requires PHP: 7.4
Text Domain: donnelly
*/

:root{
  --ink:#12213C; --ink-deep:#0A1626; --parchment:#EFE9DA; --paper:#F8F5EC;
  --brass:#A9822C; --brass-light:#C9A857; --oxblood:#6E2A2A;
  --charcoal:#24262B; --slate:#5B6472; --rule:#D9CFB6;
}

*{box-sizing:border-box;}
body{
  margin:0; font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  color:var(--charcoal); background:var(--paper); line-height:1.6;
}
h1,h2,h3{font-family:'Spectral',Georgia,serif; margin:0; color:var(--ink);}
a{color:inherit;}
img{max-width:100%; display:block;}
.wrap{max-width:1120px; margin:0 auto; padding:0 28px;}

/* Nav */
.site-nav{background:#171B26; padding:0;}
.site-nav-inner{max-width:1400px; margin:0 auto; padding:14px 32px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px;}
.brand{text-decoration:none; line-height:1.25;}
.brand .name{display:block; font-family:'Inter',sans-serif; font-weight:700; font-size:22px; letter-spacing:.03em; color:#fff; text-transform:uppercase;}
.brand .tagline{display:block; font-family:'Inter',sans-serif; font-size:13px; color:var(--brass-light); margin-top:2px;}
.tabs-menu{display:flex; align-items:center; gap:34px; list-style:none; margin:0; padding:0;}
.tabs-menu li{list-style:none; position:relative;}
.tabs-menu > li > a{
  font-family:'Inter',sans-serif; font-size:15.5px; font-weight:500;
  color:#EDEFF3; text-decoration:none; padding:8px 0; display:inline-flex; align-items:center; gap:5px;
}
.tabs-menu > li > a:hover{color:var(--brass-light);}
.tabs-menu li.menu-item-has-children > a::after{content:"\25BE"; font-size:11px; opacity:.8; margin-top:1px;}
.tabs-menu .sub-menu{
  list-style:none; margin:0; padding:8px 0; position:absolute; top:100%; left:0; min-width:220px;
  background:#1F2433; border-radius:6px; box-shadow:0 12px 28px rgba(0,0,0,.35);
  opacity:0; visibility:hidden; transform:translateY(6px); transition:all .15s ease; z-index:20;
}
.tabs-menu li.menu-item-has-children:hover > .sub-menu{opacity:1; visibility:visible; transform:translateY(0);}
.tabs-menu .sub-menu li a{display:block; padding:9px 18px; font-size:14.5px; color:#D6DAE3; text-decoration:none; white-space:nowrap;}
.tabs-menu .sub-menu li a:hover{background:#2A3044; color:#fff;}

/* Homepage hero — full-bleed video, no text overlay */
.hero{position:relative; background:var(--paper); line-height:0; padding:32px 0 40px;}
.hero-inner{max-width:1920px; margin:0 auto; padding:0 32px;}
.hero-video{display:block; width:auto; height:auto; max-width:100%; max-height:80vh; margin:0 auto;}
@media (prefers-reduced-motion: reduce){ .hero-video{display:none;} .hero-poster-img{display:block; width:auto; height:auto; max-width:100%; max-height:80vh; margin:0 auto;} }
.hero-poster-img{display:none;}

/* Page hero (Practices/Team/Contact) */
.page-hero{background:var(--ink); color:#fff; padding:48px 0; border-bottom:6px solid var(--brass);}
.eyebrow{font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--brass-light); margin-bottom:10px;}
.page-hero h1{font-size:34px; color:#fff;}
.page-hero p{color:#C7CEDC; max-width:70ch; margin-top:12px; font-size:15.5px;}
.hero p.sub{color:#C7CEDC; font-size:17px; max-width:46ch; margin-top:16px;}
.seal{
  width:168px; height:168px; border:2px solid var(--brass); border-radius:50%; margin:0 auto;
  display:flex; align-items:center; justify-content:center; flex-direction:column; text-align:center; position:relative;
}
.seal::before{content:""; position:absolute; inset:8px; border:1px solid var(--brass); border-radius:50%; opacity:.6;}
.seal .yr{font-family:'Spectral',serif; font-size:30px; color:#fff;}
.seal .lbl{font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.12em; color:var(--brass-light); text-transform:uppercase; margin-top:4px;}

.pull{background:var(--parchment); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);}
.pull-inner{padding:38px 28px; max-width:1120px; margin:0 auto; border-left:4px solid var(--oxblood);}
.pull p{font-family:'Spectral',serif; font-size:24px; font-style:italic; color:var(--ink); margin:0 0 0 20px; max-width:70ch;}

.history{padding:64px 0;}
.history-grid{display:grid; grid-template-columns:1.4fr 1fr; gap:48px;}
.history h2{font-size:28px; margin-bottom:16px;}
.history p{color:var(--slate); font-size:15.5px; margin-bottom:14px;}
.stamps{display:flex; flex-direction:column; gap:14px;}
.stamp{border:1.5px solid var(--brass); border-radius:4px; padding:14px 16px; transform:rotate(-1deg); background:#fff;}
.stamp:nth-child(2){transform:rotate(1deg);}
.stamp:nth-child(3){transform:rotate(-.5deg);}
.stamp .num{font-family:'IBM Plex Mono',monospace; font-size:20px; color:var(--oxblood); font-weight:600;}
.stamp .cap{font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--slate);}

.specialties{background:var(--ink); color:var(--parchment); padding:60px 0;}
.specialties h2{color:#fff; font-size:28px; margin-bottom:14px;}
.specialties p{color:#C7CEDC; font-size:15.5px; max-width:80ch; margin-bottom:10px;}
.rule{height:1px; background:var(--brass); width:64px; margin:20px 0;}

/* Diverse Clients — plain quote highlights */
.highlights{background:var(--paper); padding:56px 0;}
.highlight-block{max-width:900px; margin:0 0 32px;}
.highlight-block:last-child{margin-bottom:0;}
.highlight-block h3{font-family:'Inter',sans-serif; font-weight:800; font-size:22px; text-transform:uppercase; letter-spacing:.01em; color:var(--charcoal); margin-bottom:10px;}
.highlight-block p{font-family:'Inter',sans-serif; font-size:16px; color:#4B5361; line-height:1.7; margin:0;}

.citation{padding:56px 0;}
.citation-box{border-left:4px solid var(--brass); background:var(--parchment); padding:24px 28px; border-radius:0 6px 6px 0;}
.citation-box .tag{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--oxblood); letter-spacing:.08em; text-transform:uppercase; margin-bottom:8px; display:block;}
.citation-box p{color:var(--charcoal); font-size:15.5px; margin:0;}

.depo{padding:20px 0 60px;}
.depo-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.depo blockquote{margin:0; background:#fff; border:1px solid var(--rule); border-radius:6px; padding:24px; font-family:'Spectral',serif; font-style:italic; font-size:16.5px; color:var(--ink); position:relative;}
.depo blockquote::before{content:"\201C"; font-family:'Spectral',serif; font-size:48px; color:var(--brass); position:absolute; top:0; left:14px; line-height:1;}
.depo blockquote p{padding-top:22px; margin:0;}
.depo cite{font-family:'IBM Plex Mono',monospace; font-style:normal; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--slate); display:block; margin-top:14px;}

.ledger{background:var(--parchment); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); padding:50px 0;}
.ledger h2{text-align:center; font-size:22px; margin-bottom:8px;}
.ledger .sub{text-align:center; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--slate); margin-bottom:32px;}
.ledger-grid{display:grid; grid-template-columns:repeat(4,1fr);}
.ledger-item{text-align:center; padding:0 12px; border-left:1px solid var(--rule);}
.ledger-item:first-child{border-left:none;}
.ledger-item .num{font-family:'IBM Plex Mono',monospace; font-size:34px; color:var(--oxblood); font-weight:600;}
.ledger-item .cap{font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--slate); margin-top:6px;}

/* Practices page */
.practices{padding:56px 0 64px;}
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:28px;}
.card{background:#fff; border:1px solid var(--rule); border-radius:8px; padding:26px 26px 22px; position:relative;}
.card::before{content:""; position:absolute; top:0; left:26px; width:40px; height:4px; background:var(--brass); border-radius:0 0 3px 3px;}
.card .tag{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--oxblood); letter-spacing:.1em; text-transform:uppercase; display:block; margin:10px 0 6px;}
.card h3{font-size:19px; margin-bottom:12px;}
.card ul{margin:0; padding:0; list-style:none;}
.card li{padding:7px 0 7px 18px; border-top:1px solid #F0ECE0; font-size:14.5px; color:var(--slate); position:relative;}
.card li:first-child{border-top:none;}
.card li::before{content:"\2014"; position:absolute; left:0; color:var(--brass);}
.card.wide{grid-column:1 / -1;}

/* Team page */
.section-label{font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--oxblood); margin:48px 0 18px;}
.section-label:first-of-type{margin-top:52px;}
.team{padding-bottom:60px;}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.person{background:#fff; border:1px solid var(--rule); border-radius:8px; overflow:hidden;}
.person-photo{width:100%; aspect-ratio:4/5; background:var(--parchment) center/cover no-repeat; border-bottom:3px solid var(--brass);}
.person-body{padding:16px 18px 20px;}
.person h3{font-size:17px; margin-bottom:2px;}
.role{font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--slate); margin-bottom:12px; display:block;}
.contact-line{font-size:13.5px; color:var(--slate); display:block; margin-bottom:3px;}
.contact-line a{color:var(--ink); text-decoration:none;}
.profile-link{display:inline-block; margin-top:10px; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--oxblood); text-decoration:none; border-bottom:1px solid var(--oxblood);}

/* Individual attorney profile page */
.attorney-profile{padding:56px 0 64px;}
.attorney-profile-grid{display:grid; grid-template-columns:280px 1fr; gap:40px; align-items:start;}
.attorney-photo-lg{width:100%; aspect-ratio:4/5; background:var(--parchment) center/cover no-repeat; border-radius:8px; border:3px solid var(--brass);}
.attorney-contact-card{background:#fff; border:1px solid var(--rule); border-radius:8px; padding:16px 18px; margin-top:16px;}
.attorney-contact-card .contact-line{font-size:14px;}
.attorney-bio-col{color:var(--charcoal); font-size:15.5px; line-height:1.7;}
.attorney-bio-col p{margin:0 0 16px;}
.bio-placeholder{color:var(--slate);}
@media (max-width:700px){ .attorney-profile-grid{grid-template-columns:1fr;} .attorney-photo-lg{max-width:280px;} }

/* Contact page */
.contact-section{padding:56px 0;}
.offices{display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:48px;}
.office{background:#fff; border:1px solid var(--rule); border-radius:8px; padding:24px; position:relative;}
.office::before{content:""; position:absolute; top:0; left:24px; width:36px; height:4px; background:var(--brass); border-radius:0 0 3px 3px;}
.office .tag{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--oxblood); letter-spacing:.1em; text-transform:uppercase; display:block; margin:8px 0 6px;}
.office address{font-style:normal; color:var(--slate); font-size:15px; line-height:1.6;}
.office iframe{width:100%; height:200px; border:0; border-radius:6px; margin-top:14px; filter:grayscale(20%);}
.call-cta{background:var(--parchment); border:1px solid var(--rule); border-radius:8px; padding:28px; text-align:center; margin-bottom:48px;}
.call-cta .cap{font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--slate);}
.call-cta .num{font-family:'Spectral',serif; font-size:32px; color:var(--ink); margin-top:6px;}
.call-cta .num a{color:var(--oxblood); text-decoration:none;}
.attys-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:16px;}
.atty-mini{background:#fff; border:1px solid var(--rule); border-radius:8px; padding:14px; text-align:center;}
.atty-mini .ph{width:64px; height:64px; border-radius:50%; margin:0 auto 10px; background:var(--parchment) center/cover no-repeat; border:2px solid var(--brass);}
.atty-mini h4{font-family:'Spectral',serif; font-size:14.5px; color:var(--ink); margin:0 0 6px;}
.atty-mini a{display:block; font-size:12px; color:var(--slate); text-decoration:none; margin-bottom:2px;}

/* Bottom-of-home testimonial slider */
.ts-wrap{background:#151515; padding:110px 24px 74px; text-align:center; min-height:420px; position:relative;}
.ts-slide{display:none; max-width:900px; margin:0 auto;}
.ts-slide.is-active{display:block;}
.ts-quote{display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:wrap;}
.ts-mark{font-family:'Spectral',serif; font-size:50px; color:#5B5F66; line-height:1; flex:0 0 auto;}
.ts-quote p{font-family:'Spectral',serif; font-style:italic; font-size:20px; color:#ECEFF1; margin:0; line-height:1.55; max-width:640px;}
.ts-title{font-family:'Inter',sans-serif; font-weight:700; font-size:27px; color:#fff; margin:36px 0 0;}
.ts-dots{display:flex; justify-content:center; gap:10px; margin-top:42px;}
.ts-dot{width:11px; height:11px; border-radius:50%; background:#6B6F76; border:none; cursor:pointer; padding:0;}
.ts-dot.is-active{background:#2F6F82;}
@media (max-width:700px){ .ts-wrap{padding:70px 20px 50px;} .ts-quote p{font-size:17px;} .ts-title{font-size:22px;} }

@media (prefers-reduced-motion: reduce){ .marquee-track{animation:none;} }

/* Footer */
.site-footer{background:var(--ink-deep); color:#8C96AB; padding:28px 0; text-align:center; font-size:12.5px;}
.site-footer a{color:var(--brass-light); text-decoration:none;}

@media (max-width:900px){ .grid-3{grid-template-columns:1fr 1fr;} }
@media (max-width:760px){
  .hero-grid,.history-grid,.depo-grid,.offices,.grid-2{grid-template-columns:1fr;}
  .ledger-grid{grid-template-columns:1fr 1fr; row-gap:24px;}
  .ledger-item{border-left:none;}
  .hero h1{font-size:32px;}
  .attys-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:600px){ .grid-3{grid-template-columns:1fr;} }
