/* Cawley Legal design system v2. Light warm base, navy for authority, desert gold for action. */
:root {
  --navy:#0B2545; --navy-2:#13305A; --gold:#C19B4A; --gold-dark:#A78236; --gold-text:#7A5E12;
  --ink:#1F2937; --muted:#5B6472; --bg:#FBF7EE; --sand:#FFF8EF; --paper:#FFFFFF; --rule:#E4DCCB; --soft:#F3EEE2;
  --ok:#2E6B3A; --warn:#8A3B12;
  --serif:"Source Serif 4", Georgia, "Times New Roman", serif; --sans:"Inter", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  --max:1120px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:var(--sans); font-size:17px; line-height:1.6; }
a { color:var(--navy); }
h1,h2,h3,h4 { font-family:var(--serif); color:var(--navy); line-height:1.15; margin:0 0 14px; font-weight:600; }
h1 { font-size:clamp(2rem, 4.2vw, 3rem); }
h2 { font-size:clamp(1.55rem, 2.6vw, 2.1rem); }
h3 { font-size:1.2rem; margin-bottom:8px; }
h4 { font-size:1rem; color:var(--gold-text); text-transform:uppercase; letter-spacing:.08em; margin-bottom:10px; }
p { margin:0 0 16px; }
.wrap { max-width:var(--max); margin:0 auto; padding:0 20px; }
.wrap.narrow { max-width:760px; }
.eyebrow { font-family:var(--sans); font-size:.85rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-text); font-weight:600; margin:0 0 12px; }
.lead { font-size:1.15rem; max-width:680px; }
.note { font-size:.92rem; color:var(--muted); }
.sub { color:var(--muted); max-width:640px; margin-top:-6px; margin-bottom:24px; }
.center { text-align:center; }
.warn { color:var(--warn); }
.link { font-weight:600; text-decoration:none; border-bottom:2px solid var(--gold); padding-bottom:1px; }
.link:hover { color:var(--gold-dark); }

/* Buttons */
.cta { display:inline-block; background:var(--navy); color:#fff; text-decoration:none; padding:14px 22px; border-radius:6px; font-weight:600; font-size:1rem; border:2px solid var(--navy); cursor:pointer; font-family:var(--sans); line-height:1.2; transition:background .15s, color .15s; }
.cta:hover { background:var(--navy-2); }
.cta.gold { background:var(--gold); border-color:var(--gold); color:var(--navy); }
.cta.gold:hover { background:var(--gold-dark); border-color:var(--gold-dark); }
.cta.ghost { background:transparent; color:var(--navy); }
.cta.ghost:hover { background:var(--soft); }
.cta.small { padding:10px 14px; font-size:.92rem; }
.cta[disabled] { opacity:.5; cursor:default; }
.ctas { display:flex; gap:14px; flex-wrap:wrap; align-items:center; }
.ctas.center { justify-content:center; }
.link-light { color:#fff; font-weight:500; text-decoration:underline; text-underline-offset:3px; }

/* Header */
header.site { position:sticky; top:0; z-index:100; background:rgba(251,247,238,.96); backdrop-filter:blur(6px); border-bottom:1px solid var(--rule); }
header.site .wrap { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 20px; }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--navy); }
.brand .mark-img { width:34px; height:auto; flex:none; }
.brand .mark { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:8px; background:var(--navy); color:var(--gold); font-family:var(--serif); font-weight:700; font-size:1.05rem; flex:none; }
.brand .name { display:block; font-family:var(--serif); font-weight:700; font-size:1.3rem; line-height:1.1; }
.brand .tag { display:block; font-size:.72rem; color:var(--gold-text); letter-spacing:.04em; }
.brand.foot { margin-bottom:10px; }
.brand.foot .name { color:#fff; }
nav.main { display:flex; align-items:center; gap:22px; }
nav.main a { text-decoration:none; color:var(--navy); font-weight:500; font-size:.97rem; }
nav.main a.on { border-bottom:2px solid var(--gold); padding-bottom:2px; }
nav.main a.phone { font-weight:700; }
nav.main a.cta { color:#fff; }
nav.main a.cta:hover { color:#fff; }
.menu-btn { display:none; background:none; border:1px solid var(--rule); border-radius:6px; padding:8px 12px; font:inherit; color:var(--navy); }
@media (max-width: 900px) {
  .brand .tag { display:none; }
  .brand .name { font-size:1.15rem; }
  .menu-btn { display:inline-block; }
  nav.main { display:none; position:absolute; left:0; right:0; top:100%; background:var(--bg); border-bottom:1px solid var(--rule); flex-direction:column; align-items:flex-start; padding:14px 20px 20px; gap:14px; }
  body.nav-open nav.main { display:flex; }
  header.site { position:relative; }
}

/* Hero */
.hero { position:relative; min-height:78vh; display:flex; align-items:center; color:#fff; overflow:hidden; background:var(--navy) url(/assets/hero-poster.jpg) center/cover no-repeat; }
.hero-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(100deg, rgba(11,37,69,.88) 0%, rgba(11,37,69,.72) 45%, rgba(11,37,69,.35) 100%); }
.hero-inner { position:relative; display:grid; grid-template-columns:1fr; gap:28px; padding-top:72px; padding-bottom:72px; align-items:end; }
@media (min-width: 900px) { .hero-inner { grid-template-columns:1.6fr 1fr; } }
.hero h1 { color:#fff; margin-bottom:16px; }
.hero .eyebrow { color:var(--gold); }
.hero .lead { color:rgba(255,255,255,.92); }
.hero-card { display:flex; align-items:center; gap:14px; background:rgba(255,255,255,.97); color:var(--ink); border-radius:10px; padding:14px 16px; max-width:380px; justify-self:start; box-shadow:0 12px 30px rgba(0,0,0,.25); }
@media (min-width: 900px) { .hero-card { justify-self:end; } }
.hero-card img { width:84px; height:84px; border-radius:50%; object-fit:cover; border:3px solid var(--gold); flex:none; }
.hero-card b { display:block; font-family:var(--serif); color:var(--navy); font-size:1.05rem; }
.hero-card span { display:block; font-size:.86rem; color:var(--muted); }
.hero-card a { display:inline-block; margin-top:4px; font-weight:700; text-decoration:none; }
@media (max-width: 700px) { .hero { min-height:auto; } .hero-video { display:none; } .hero-inner { padding-top:56px; padding-bottom:48px; } }
@media (prefers-reduced-motion: reduce) { .hero-video { display:none; } }

/* Page hero (inner pages) */
.page-hero { padding:64px 0 40px; background:var(--sand); border-bottom:1px solid var(--rule); }
.page-hero h1 { margin-bottom:12px; }
.page-hero .note { margin-left:4px; }

/* Sections */
section { padding:64px 0; }
section.alt { background:var(--soft); }
section.trust-wrap { padding:0; background:var(--paper); border-bottom:1px solid var(--rule); }
.trust { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr; }
@media (min-width: 720px) { .trust { grid-template-columns:repeat(4,1fr); } }
.trust li { padding:20px 18px; border-bottom:1px solid var(--rule); }
@media (min-width: 720px) { .trust li { border-bottom:0; border-right:1px solid var(--rule); } .trust li:last-child { border-right:0; } }
.trust b { display:block; font-family:var(--serif); color:var(--navy); font-size:1.2rem; margin-bottom:2px; }
.trust span { font-size:.92rem; color:var(--muted); }
.two { display:grid; grid-template-columns:1fr; gap:20px 48px; }
@media (min-width: 820px) { .two { grid-template-columns:5fr 7fr; } .two h2 { position:sticky; top:90px; } }
.cards { display:grid; grid-template-columns:1fr; gap:18px; }
@media (min-width: 720px) { .cards { grid-template-columns:repeat(2,1fr); } .cards.four { grid-template-columns:repeat(2,1fr); } }
.card { display:block; background:var(--paper); border:1px solid var(--rule); border-radius:10px; padding:24px; text-decoration:none; color:var(--ink); transition:transform .15s, box-shadow .15s; }
a.card:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(11,37,69,.08); }
.card.featured { border-color:var(--gold); background:linear-gradient(180deg, #fff, var(--sand)); }
.card .ic { display:inline-block; font-size:1.5rem; color:var(--gold-text); margin-bottom:10px; }
.card .more { display:inline-block; margin-top:6px; font-weight:600; color:var(--navy); border-bottom:2px solid var(--gold); }
.card.static { padding:24px; }
.steps { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr; gap:18px; counter-reset:step; margin-bottom:28px; }
@media (min-width: 900px) { .steps { grid-template-columns:repeat(4,1fr); } }
.steps li { background:var(--paper); border:1px solid var(--rule); border-radius:10px; padding:22px; }
.steps .n { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; background:var(--gold); color:var(--navy); font-weight:700; margin-bottom:10px; }
.checks { list-style:none; padding:0; margin:0 0 16px; }
.checks li { padding-left:28px; position:relative; margin-bottom:10px; }
.checks li::before { content:"\2713"; position:absolute; left:0; top:0; color:var(--gold-text); font-weight:700; }
.bio { display:grid; grid-template-columns:1fr; gap:28px; align-items:center; }
@media (min-width: 820px) { .bio { grid-template-columns:360px 1fr; } .bio-hero .bio { grid-template-columns:400px 1fr; } }
.portrait-wrap { display:flex; justify-content:center; }
.portrait { width:100%; max-width:360px; aspect-ratio:4/5; object-fit:cover; border-radius:12px; border:3px solid var(--gold); box-shadow:0 16px 36px rgba(11,37,69,.14); background:var(--soft); }
.portrait-wrap.big .portrait { max-width:400px; }
.license { color:var(--gold-text); font-weight:600; margin-bottom:12px; }
.states { display:flex; gap:10px; flex-wrap:wrap; margin-top:6px; }
.states span { display:inline-block; padding:8px 16px; border:1px solid var(--gold); border-radius:999px; color:var(--navy); font-weight:600; background:#fff; }
.faq details { background:var(--paper); border:1px solid var(--rule); border-radius:8px; padding:0 18px; margin-bottom:10px; }
.faq summary { cursor:pointer; padding:16px 0; font-family:var(--serif); font-size:1.08rem; color:var(--navy); font-weight:600; list-style:none; position:relative; padding-right:28px; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:"+"; position:absolute; right:0; top:14px; color:var(--gold-text); font-size:1.3rem; }
.faq details[open] summary::after { content:"\2013"; }
.faq p { padding-bottom:16px; margin:0; }
.close { text-align:center; max-width:720px; margin:0 auto; }
.close h2 { font-size:clamp(1.8rem, 3vw, 2.4rem); }

/* Forms */
form label.main { display:block; font-weight:600; margin:16px 0 6px; color:var(--navy); }
form input[type=text], form input[type=tel], form input[type=email], form select, form textarea { width:100%; padding:12px 13px; border:1px solid var(--rule); border-radius:6px; font:inherit; background:#fff; color:var(--ink); }
form textarea { min-height:130px; resize:vertical; }
form input:focus, form select:focus, form textarea:focus { outline:2px solid var(--gold); outline-offset:1px; }
.form-row { align-items:start; }
.big-phone { font-family:var(--serif); font-size:1.6rem; font-weight:700; text-decoration:none; }
.ok { background:#EEF6EF; border:1px solid #BFD9C4; border-radius:8px; padding:18px; }
.hp { position:absolute; left:-9999px; }

/* Footer */
footer.site { background:var(--navy); color:rgba(255,255,255,.85); padding:48px 0 32px; font-size:.95rem; }
footer.site a { color:#fff; }
footer.site h4 { color:var(--gold); }
footer.site .cols { display:grid; grid-template-columns:1fr; gap:28px; margin-bottom:28px; }
@media (min-width: 720px) { footer.site .cols { grid-template-columns:1.2fr 1fr 1fr; } }
footer.site .legal { border-top:1px solid rgba(255,255,255,.15); padding-top:20px; font-size:.84rem; color:rgba(255,255,255,.7); }
footer.site .legal p { margin-bottom:8px; }
