:root{
  --ink:#14213d; --ink-2:#2b3a5c; --muted:#5b6478; --line:#e3e1da;
  --paper:#faf8f3; --card:#ffffff; --accent:#a8823a; --accent-2:#8a6a2c;
  --hero:#14213d; --hero-ink:#f4efe4;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ink:#ece7dc; --ink-2:#cfc8b8; --muted:#a2a8b6; --line:#2c3446;
    --paper:#0f1626; --card:#162036; --accent:#c9a45a; --accent-2:#dcb86c;
    --hero:#0b111e; --hero-ink:#f4efe4;
  }
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 Inter,system-ui,sans-serif}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600;line-height:1.15;margin:0 0 .5em}
a{color:inherit}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.eyebrow{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:.8rem}
.btn{display:inline-block;padding:.85rem 1.4rem;border-radius:4px;font-weight:600;text-decoration:none;border:1px solid transparent;transition:.2s}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-2)}
.btn-ghost{border-color:rgba(244,239,228,.4);color:var(--hero-ink)}
.btn-ghost:hover{border-color:var(--hero-ink)}

/* Header */
header{position:sticky;top:0;z-index:20;background:#fff;color:#14213d;border-bottom:1px solid #e3e1da;box-shadow:0 1px 8px rgba(20,33,61,.06)}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px;gap:24px}
.brand{font-family:Fraunces,serif;font-size:1.35rem;text-decoration:none;font-weight:600}
.brand{display:flex;align-items:center}
.brand img{display:block;height:30px;width:auto;max-width:280px}
.brand-text{font-family:Fraunces,serif;font-size:1.35rem;font-weight:600}
.brand-text b{color:#a8823a;font-weight:600}
.nav ul{display:flex;gap:28px;list-style:none;margin:0;padding:0}
.nav ul a{text-decoration:none;font-size:.95rem;opacity:.85}
.nav ul a:hover{opacity:1}
.nav .call{font-weight:600;text-decoration:none;color:#a8823a}
.menu-btn{display:none;background:none;border:0;color:inherit;font-size:1.5rem;cursor:pointer}

/* Hero */
.hero{background:var(--hero);color:var(--hero-ink);padding:96px 0 104px;position:relative;overflow:hidden}
.hero .wrap{position:relative;z-index:1}
.courthouse{position:absolute;right:max(20px,calc((100vw - 1120px)/2 - 40px));bottom:0;width:min(40vw,500px);height:auto;color:var(--accent);opacity:.3;pointer-events:none}
.hero h1{font-size:clamp(2.3rem,5.5vw,3.8rem);max-width:15ch}
.hero p{font-size:1.15rem;max-width:56ch;opacity:.85;margin:0 0 2rem}
.hero .actions{display:flex;gap:12px;flex-wrap:wrap}
.trust{display:flex;gap:40px;flex-wrap:wrap;margin-top:56px;padding-top:28px;border-top:1px solid rgba(255,255,255,.12);font-size:.92rem;opacity:.85}
.trust b{display:block;font-family:Fraunces,serif;font-size:1.15rem;color:var(--accent)}

section{padding:88px 0}
.section-head{max-width:640px;margin-bottom:48px}
.section-head h2{font-size:clamp(1.8rem,3.5vw,2.5rem)}
.section-head p{color:var(--muted);margin:0}

/* Services */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.svc{background:var(--card);padding:28px 26px}
.svc .num{font-family:Fraunces,serif;color:var(--accent);font-size:.9rem}
.svc h3{font-size:1.2rem;margin:.4rem 0 .5rem}
.svc p{color:var(--muted);margin:0;font-size:.95rem}

/* Why */
.why{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.points{display:grid;gap:28px}
.point h3{font-size:1.15rem;margin-bottom:.3rem}
.point p{margin:0;color:var(--muted)}
.point{padding-left:20px;border-left:2px solid var(--accent)}

/* Team */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.person{background:var(--card);border:1px solid var(--line);padding:24px}
.avatar{width:64px;height:64px;border-radius:50%;background:var(--line);display:grid;place-items:center;font-family:Fraunces,serif;color:var(--muted);margin-bottom:16px}
.person h3{font-size:1.1rem;margin-bottom:.2rem}
.person .role{color:var(--accent);font-size:.88rem;font-weight:600}
.person p{color:var(--muted);font-size:.93rem;margin:.6rem 0 0}
.principal{display:grid;grid-template-columns:300px 1fr;gap:48px;background:var(--card);border:1px solid var(--line);padding:36px;align-items:start}
.portrait{aspect-ratio:4/5;background:var(--line);overflow:hidden}
.portrait img{display:block;width:100%;height:100%;object-fit:cover}
.principal h3{font-size:1.7rem;margin-bottom:.2rem}
.principal h3 .postnom{font-family:Inter,system-ui,sans-serif;font-size:.95rem;font-weight:600;letter-spacing:.08em;color:var(--accent);vertical-align:middle;margin-left:6px}
.principal .role{color:var(--accent);font-weight:600;margin-bottom:1rem}
.principal p{color:var(--muted)}
.creds{padding-left:1.1rem;color:var(--muted);margin:0 0 1.6rem}
.creds li{margin-bottom:.3rem}
.placeholder{background:rgba(168,130,58,.12);border-radius:2px;padding:0 3px}

/* Resources */
.res{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.res a{display:block;background:var(--card);border:1px solid var(--line);padding:24px;text-decoration:none;transition:.2s}
.res a:hover{border-color:var(--accent)}
.res h3{font-size:1.1rem}
.res p{color:var(--muted);margin:0;font-size:.93rem}
.res .go{color:var(--accent);font-weight:600;font-size:.88rem;display:block;margin-top:14px}

/* Contact */
.contact{background:var(--hero);color:var(--hero-ink)}
.contact .section-head p{color:rgba(244,239,228,.75)}
.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:48px}
.details dl{margin:0;display:grid;gap:18px}
.contact-logo{display:block;height:34px;width:auto;max-width:100%;margin:0 0 28px}
.details dt{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:600}
.details dd{margin:2px 0 0}
.details a{text-decoration:none}
.map{margin-top:28px;border:0;width:100%;height:220px;filter:grayscale(.4)}
form{background:var(--card);color:var(--ink);padding:32px;display:grid;gap:16px}
label{font-size:.85rem;font-weight:600;display:grid;gap:6px}
input,textarea,select{font:inherit;padding:.75rem;border:1px solid var(--line);border-radius:3px;background:var(--paper);color:var(--ink);width:100%}
textarea{min-height:130px;resize:vertical}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.note{font-size:.8rem;color:var(--muted);margin:0}
.hint{font-weight:400;color:var(--muted)}
.wordcount{font-size:.8rem;color:var(--muted);margin:-8px 0 0;text-align:right}
.wordcount.over{color:#b42318;font-weight:600}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-error{background:#fbeaea;color:#8a1f1f;padding:12px 14px;border-radius:3px;margin:0;font-size:.92rem}

footer{background:#0b111e;color:#a2a8b6;padding:36px 0;font-size:.88rem}
.foot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}

@media (max-width:900px){
  .grid,.res,.team{grid-template-columns:1fr 1fr}
  .why-grid,.contact-grid,.principal{grid-template-columns:1fr;gap:32px}
  .portrait{max-width:280px}
}
@media (max-width:640px){
  .menu-btn{display:block}
  .brand img{height:24px}
  .nav ul{display:none;position:absolute;top:76px;left:0;right:0;background:#fff;border-bottom:1px solid #e3e1da;flex-direction:column;gap:0;padding:8px 20px 20px}
  .nav ul.open{display:flex}
  .nav ul li a{display:block;padding:12px 0}
  .nav .call{display:none}
  .grid,.res,.team,.row{grid-template-columns:1fr}
  section{padding:64px 0}
  .hero{padding:72px 0 80px}
  .trust{gap:24px}
  .courthouse{width:85vw;opacity:.12}
  .principal{padding:24px}
}

/* Service cards as links */
a.svc{text-decoration:none;transition:background .2s;display:block}
a.svc:hover{background:var(--paper)}
a.svc .more{display:inline-block;margin-top:12px;color:var(--accent);font-weight:600;font-size:.88rem}

/* Key practice areas */
.key-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:20px;margin-bottom:56px}
.key-grid > a{grid-column:span 2}
.key-grid > a:nth-child(4),.key-grid > a:nth-child(5){grid-column:span 3}
.key-points{list-style:none;margin:0 0 1.1rem;padding:0;display:grid;gap:6px;align-content:start}
.key-points li{position:relative;padding-left:18px;font-size:.9rem;color:var(--ink-2)}
.key-points li:before{content:"";position:absolute;left:2px;top:.6em;width:7px;height:7px;border-radius:50%;background:var(--accent)}
a.key{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-top:3px solid var(--accent);padding:24px 20px;text-decoration:none;transition:transform .2s,box-shadow .2s}
a.key:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(20,33,61,.1)}
a.key .tag{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:600}
a.key h3{font-size:1.3rem;margin:.6rem 0 .6rem}
a.key p{color:var(--muted);margin:0 0 1rem;font-size:.95rem}
a.key .key-points{flex:1}
a.key .more{color:var(--accent);font-weight:600;font-size:.88rem}
.sub-head{font-family:Fraunces,serif;font-size:1.3rem;margin:0 0 20px}
.side-card li.divider{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:14px 0 4px}
.side-card li.divider:first-child{padding-top:0}
#services .grid > a:last-child:nth-child(3n+1){grid-column:1/-1}
#services .grid > a:last-child:nth-child(3n+2){grid-column:span 2}
.hero .trust{max-width:700px;display:grid;grid-template-columns:auto auto;gap:24px 56px;justify-content:start}
.hero .trust > div:first-child{grid-column:1/-1}
@media (max-width:640px){.hero .trust{grid-template-columns:1fr}}
@media (max-width:900px){.key-grid{grid-template-columns:1fr 1fr}
  .key-grid > a,.key-grid > a:nth-child(4),.key-grid > a:nth-child(5){grid-column:auto}
  .key-grid > a:last-child{grid-column:1/-1}
  #services .grid > a:last-child:nth-child(3n+1),#services .grid > a:last-child:nth-child(3n+2){grid-column:auto}
  #services .grid > a:last-child:nth-child(2n+1){grid-column:1/-1}}
@media (max-width:640px){.key-grid{grid-template-columns:1fr}.key-grid > a:last-child{grid-column:auto}}

/* Service pages */
.page-hero{background:var(--hero);color:var(--hero-ink);padding:64px 0 72px}
.page-hero h1{font-size:clamp(2rem,4.5vw,3.1rem);max-width:20ch}
.page-hero p{font-size:1.1rem;max-width:60ch;opacity:.85;margin:0}
.crumbs{font-size:.85rem;opacity:.7;margin-bottom:1.2rem}
.crumbs a{text-decoration:none}
.svc-layout{display:grid;grid-template-columns:1fr 320px;gap:56px;align-items:start}
.prose h2{font-size:1.6rem;margin-top:2.2rem}
.prose h2:first-child{margin-top:0}
.prose p{color:var(--ink-2)}
.checks{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.checks li{background:var(--card);border:1px solid var(--line);padding:14px 16px 14px 44px;position:relative}
.checks li:before{content:"";position:absolute;left:16px;top:20px;width:12px;height:7px;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg)}
details{border-bottom:1px solid var(--line);padding:16px 0}
summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:16px}
summary::-webkit-details-marker{display:none}
summary:after{content:"+";color:var(--accent);font-size:1.3rem;line-height:1}
details[open] summary:after{content:"\2013"}
details p{margin:.7rem 0 0;color:var(--muted)}
aside{position:sticky;top:100px;display:grid;gap:20px}
.side-card{background:var(--card);border:1px solid var(--line);padding:24px}
.side-card.dark{background:var(--hero);color:var(--hero-ink);border:0}
.side-card h3{font-size:1.15rem}
.side-card.dark p{opacity:.8;font-size:.93rem}
.side-card ul{list-style:none;margin:0;padding:0}
.side-card li a{display:block;padding:9px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:.93rem}
.side-card li a:hover,.side-card li a[aria-current]{color:var(--accent)}
.side-card .tel{display:block;font-family:Fraunces,serif;font-size:1.4rem;color:var(--accent);text-decoration:none;margin:.2rem 0 1rem}
.cta-band{background:var(--card);border-top:1px solid var(--line);padding:56px 0}
.cta-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.cta-band h2{font-size:1.7rem;margin:0}
@media (max-width:900px){.svc-layout{grid-template-columns:1fr}aside{position:static}}

/* Collapse main menu on tablets and phones */
@media (max-width:980px){
  .menu-btn{display:block}
  .nav ul{display:none;position:absolute;top:76px;left:0;right:0;background:#fff;border-bottom:1px solid #e3e1da;flex-direction:column;gap:0;padding:8px 20px 20px;box-shadow:0 8px 16px rgba(20,33,61,.08)}
  .nav ul.open{display:flex}
  .nav ul li a{display:block;padding:12px 0}
}
.contact-top{display:flex;flex-direction:column;align-items:flex-end;gap:2px;line-height:1.25}
.nav .mail{font-size:.85rem;color:#2b3a5c;text-decoration:none}
.nav .mail:hover{color:#a8823a}
@media (max-width:980px){.contact-top{margin-left:auto;margin-right:16px}}
@media (max-width:640px){.nav .contact-top{display:none}}

/* Hero photo with blue gradient overlay */
section.hero{background:linear-gradient(90deg,rgba(6,20,42,.95) 0%,rgba(10,36,72,.86) 45%,rgba(20,70,125,.55) 100%),url(images/courthouse.jpg) right center/cover no-repeat,#0f2a4f}
.foot .credit{flex-basis:100%;font-size:.75rem;opacity:.65}
.foot .credit a{color:inherit}
@media (max-width:900px){section.hero{background:linear-gradient(180deg,rgba(6,20,42,.9) 0%,rgba(10,36,72,.88) 60%,rgba(20,70,125,.75) 100%),url(images/courthouse.jpg) center/cover no-repeat,#0f2a4f}}

/* Blue gradient colour scheme */
:root{--paper:#f5f8fc;--line:#dde5ef;--hero:#0f2a4f}
.hero,.page-hero,.contact{background:linear-gradient(135deg,#081a35 0%,#0f3363 48%,#1c5896 100%)}
.side-card.dark{background:linear-gradient(160deg,#0b2244 0%,#174a85 100%)}
.why{background:linear-gradient(180deg,#ffffff 0%,#eaf1fa 100%)}
#services{background:linear-gradient(180deg,#f5f8fc 0%,#edf3fa 100%)}
.cta-band{background:linear-gradient(90deg,#eef4fb 0%,#ffffff 100%)}
footer{background:#06142a}
.ico{background:rgba(28,88,150,.10)}
.page-hero .ico{background:rgba(255,255,255,.12)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--paper:#0b1626;--line:#22324a}
  .why{background:linear-gradient(180deg,#0f1d33 0%,#0b1626 100%)}#services{background:transparent}.cta-band{background:#0f1d33}}
@media (max-width:980px) and (min-width:641px){.courthouse{width:60vw;opacity:.12}}

/* Service icons */
.ico{width:46px;height:46px;border-radius:50%;background:rgba(168,130,58,.12);color:var(--accent);display:grid;place-items:center;margin-bottom:14px;flex:none}
.ico svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
a.key .ico{margin-bottom:12px}
.page-hero .ico{width:60px;height:60px;background:rgba(168,130,58,.18);margin-bottom:18px}
.page-hero .ico svg{width:30px;height:30px}

.memberships{margin-top:48px;padding-top:28px;border-top:1px solid rgba(15,42,79,.12)}
.mem-label{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:20px}
.mem-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.mem-tile{background:#fff;border:1px solid rgba(15,42,79,.08);border-radius:12px;height:132px;display:flex;align-items:center;justify-content:center;padding:16px 18px;box-shadow:0 1px 2px rgba(15,42,79,.04)}
.mem-tile img{display:block;max-width:100%;width:auto}
.mem-tile img.mem-ls{height:auto;max-height:76px}
.mem-tile img.mem-cta{height:92px}
.mem-tile img.mem-badge{height:100px}
.mem-tile.mem-cap{flex-direction:column;gap:6px}.mem-tile.mem-cap img.mem-badge{height:84px}.mem-cap small{font-size:.78rem;color:var(--accent);font-weight:600;text-align:center;line-height:1.2}
.mem-tile.mem-text{flex-direction:column;align-items:flex-start;justify-content:center;line-height:1.2;text-align:left}
.mem-text span{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.mem-text b{font-family:Fraunces,Georgia,serif;font-size:1.15rem;font-weight:600;color:var(--ink,#0f2a4f);margin-top:4px}
.mem-text small{font-size:.78rem;color:var(--accent);font-weight:600;margin-top:6px}
@media (max-width:1000px){.mem-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.mem-grid{grid-template-columns:repeat(2,1fr);gap:12px}.mem-tile{height:112px;padding:12px}.mem-tile img.mem-ls{max-height:60px}.mem-tile img.mem-cta{height:78px}.mem-tile img.mem-badge{height:84px}.mem-tile.mem-cap img.mem-badge{height:66px}.mem-tile.mem-text{grid-column:span 2;height:auto;padding:16px 18px}.mem-grid .mem-tile:first-child{grid-column:span 2}.mem-tile img.mem-ls{max-height:72px}}

.foot-links{display:flex;gap:20px}.foot-links a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.legal{max-width:780px}.legal .updated{font-size:.85rem;color:var(--muted);margin-bottom:1.5rem}
.legal ul{padding-left:1.2rem;color:var(--ink-2)}.legal li{margin:.35rem 0}.legal h2{font-size:1.35rem}

:root{--accent-text:#8a6a2c}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--accent-text:var(--accent)}}
:root[data-theme="dark"]{--accent-text:var(--accent)}
.eyebrow,.mem-label,.mem-tile small,a.key .tag{color:var(--accent-text)}
.nav .call,.person .role,.principal .role,.res .go,a.svc .more,a.key .more,.side-card li a:hover,.side-card li a[aria-current]{color:var(--accent-text)}
section.hero .eyebrow,.page-hero .eyebrow,.contact .eyebrow,.cta-band .eyebrow{color:var(--accent)}

footer{font-size:.76rem;padding:28px 0}.foot{gap:10px 20px}.foot .credit{font-size:.68rem}
