/* Site David v0.3 — verified practices and full education catalogue.
   Extends the approved v0.2 art direction; no remote assets or fonts. */
[hidden] { display: none !important; }
.main-nav>a[aria-current="location"]::after { transform: scaleX(1); }
.home-practice-grid,.practice-catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid #b7a68250; border-left:1px solid #b7a68235; }
.practice-tile { position:relative; min-width:0; display:flex; flex-direction:column; padding:29px 29px 26px; border-right:1px solid #b7a68235; border-bottom:1px solid #b7a68250; text-decoration:none; min-height:245px; transition:background .3s ease; }
.practice-tile::after { content:''; position:absolute; bottom:-1px; left:0; width:100%; height:1px; background:var(--gold-light); transform:scaleX(0); transform-origin:left; transition:transform .4s ease; }
.practice-tile:hover::after,.practice-tile:focus-visible::after { transform:scaleX(1); }
.practice-tile:hover { background:#d5b87a09; }
.tile-top { display:flex; align-items:flex-start; gap:13px; font-size:9px; line-height:1.6; letter-spacing:.06em; color:#cfc7b7; }
.tile-top>span:nth-child(2) { flex:1; min-width:0; }
.tile-no { font-family:var(--serif); font-size:14px; line-height:1; color:var(--gold-light); min-width:19px; }
.tile-top svg { width:17px; height:17px; flex:none; transition:transform .3s; }
.practice-tile:hover .tile-top svg { transform:translate(2px,-2px); }
.practice-tile h3 { font-size:29px; letter-spacing:-.025em; line-height:1.16; margin:27px 0 14px; }
.practice-tile p { font-size:13px; line-height:1.8; color:#c1ceca; margin:0 0 25px; max-width:32em; }
.tile-bottom { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; font-size:10px; letter-spacing:.015em; color:#dfd6c3; }
.tile-bottom svg { width:18px; height:18px; }
.home-practice-grid { margin-top:36px; }
.cinema-areas .section-head { align-items:flex-end; }
.hub-hero-grid,.area-hero-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,.35fr); gap:50px; align-items:center; }
.hub-hero-grid h1 { font-size:clamp(47px,5.2vw,78px); line-height:1.06; }
.hub-count,.area-hero-index { align-self:stretch; display:flex; flex-direction:column; justify-content:center; align-items:center; border-left:1px solid #ac97744a; text-align:center; padding-left:30px; }
.hub-count span,.area-hero-index span { font-size:8px; line-height:1.8; letter-spacing:.2em; color:#c7c2af; }
.hub-count b,.area-hero-index b { font-family:var(--serif); font-size:150px; line-height:1.2; font-weight:400; letter-spacing:-.06em; color:#cbb88e; text-shadow:0 10px 50px #b7aa6829; padding-right:8px; }
.practice-catalog { background:radial-gradient(ellipse at 20% 0,#fdfbf7,transparent 60%),var(--paper); }
.catalog-heading { display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:end; }
.catalog-heading h2 { font-size:46px; margin-top:20px; }
.area-search-form { max-width:400px; width:100%; justify-self:end; }
.area-search-form label,.blog-category-field label,.field-label { display:block; margin-bottom:10px; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:#52666b; }
.area-search-form .search-field { width:100%; }
.area-search-form input { font-size:13px; }
.catalog-status { display:flex; justify-content:space-between; gap:20px; align-items:center; padding:24px 0 18px; border-bottom:0; }
.catalog-status p { margin:0; color:#51676b; font-size:11px; }
.practice-catalog-grid { border-color:#8e7b512b; }
.practice-catalog-grid .practice-tile { border-color:#8e7b512b; }
.practice-catalog-grid .tile-top { color:#546b70; }
.practice-catalog-grid .tile-no { color:#80673e; }
.practice-catalog-grid .practice-tile p { color:#53696c; }
.practice-catalog-grid .tile-bottom { color:#223f47; }
.practice-catalog-grid .practice-tile:hover { background:#fff9; }
.practice-catalog-grid .practice-tile::after { background:#947a48; }
.practice-catalog-grid .practice-tile h3 { color:var(--ink); }
.area-search-empty { padding:56px 25px; text-align:center; border:1px solid var(--line); }
.area-search-empty h3 { font-size:28px; }
.area-search-empty p { font-size:14px; margin:20px 0 0; }
.scope-note { font-size:11px; line-height:1.9; color:#566c70; margin:28px 0 0; max-width:72em; }
/* Education, kept distinct from the twelve practice areas. */
.formation-feature { background:#fbf9f4; border-bottom:1px solid #9a875728; }
.formation-feature-grid { display:grid; grid-template-columns:160px minmax(0,1.25fr) minmax(0,.75fr); align-items:center; gap:50px; }
.formation-seal { display:flex; flex-direction:column; text-align:center; padding:28px 4px; border-top:1px solid #9a875775; border-bottom:1px solid #9a875775; }
.formation-seal>span { font-size:8px; line-height:1.7; letter-spacing:.16em; color:#6b684f; }
.formation-seal b { font-family:var(--serif); font-size:126px; font-weight:400; line-height:1.28; letter-spacing:-.055em; color:var(--ink); padding-right:7px; }
.formation-feature h2 { font-size:44px; line-height:1.12; margin:22px 0; }
.formation-feature h2 em { color:#806c44; }
.formation-feature p:not(.eyebrow) { font-size:14px; color:#53686c; margin:0 0 23px; }
.formation-mini { border-left:1px solid #9a875745; padding-left:30px; }
.formation-mini p:not(.eyebrow) { font-family:var(--serif); font-size:23px; color:var(--ink); margin:0 0 12px; line-height:1.15; }
.formation-mini span { display:block; font-size:12px; line-height:1.8; color:#58696d; }
.formation-mini span+p { margin-top:28px!important; }
.full-formation { background:linear-gradient(150deg,#f5f1e8,#eee8dd); }
.full-formation .section-head { align-items:end; }
.full-formation h2 { font-size:52px; }
.full-formation h2 em { color:#806c44; }
.formation-intro { max-width:370px; font-size:14px; color:#55666b; line-height:1.9; }
.qualification-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:50px; margin-top:50px; }
.qualification-group { min-width:0; }
.qualification-group-head { padding:20px 0; border-top:1px solid #a08b5a; border-bottom:1px solid #9884563b; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px; }
.qualification-group-head h3 { font-size:26px; line-height:1.15; margin:0; }
.qualification-group-head>span { font-size:9px; text-transform:uppercase; letter-spacing:.08em; color:#6b6958; }
.qualification-list { list-style:none; margin:0; padding:0; }
.qualification-list li { display:grid; grid-template-columns:26px minmax(0,1fr); gap:17px; padding:28px 0; border-bottom:1px solid #9884563b; }
.qualification-index { color:#836d43; font-family:var(--serif); font-size:16px; padding-top:5px; }
.qualification-name { font-family:var(--serif); font-size:24px; line-height:1.3; letter-spacing:-.015em; color:var(--ink); margin:0; }
.qualification-note { display:block; color:#5d6b6e; line-height:1.7; font-size:12px; margin-top:9px; }
.qualification-kind { display:block; color:#726c56; font-size:8px; text-transform:uppercase; letter-spacing:.16em; margin-top:14px; }
.formation-source { display:flex; align-items:center; justify-content:space-between; gap:30px; border-top:1px solid #9884563b; padding-top:24px; margin-top:45px; }
.formation-source p { font-size:10px; color:#5d6b6e; margin:0; }
.formation-source .text-link { font-size:10px; flex-shrink:0; }
/* Individual area pages — editorial rather than article content. */
.area-detail-intro h1 { font-size:clamp(43px,5.2vw,78px); line-height:1.06; }
.area-detail-intro .lede { max-width:680px; }
.area-detail-intro .text-link { margin-top:26px; font-size:12px; }
.area-hero-index b { font-size:156px; }
.area-scope { background:#faf8f2; }
.scope-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.45fr); gap:70px; align-items:start; }
.scope-layout>div>h2 { font-size:48px; margin-top:23px; }
.scope-layout h2 em { color:#806c44; }
.scope-topics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 30px; margin-top:40px; }
.scope-topic { border-top:1px solid #98845645; padding:25px 0 20px; }
.scope-index { color:#897446; font-family:var(--serif); font-size:13px; }
.scope-topic h3 { font-size:27px; line-height:1.15; margin:17px 0 13px; }
.scope-topic p { font-size:13px; line-height:1.8; margin:0; color:#576b70; }
.area-profile { background:linear-gradient(140deg,#14313a,#0b222a); color:var(--paper); padding:33px 30px; position:sticky; top:125px; box-shadow:0 15px 36px #102d360e; }
.area-profile h2 { font-size:32px; margin:24px 0; }
.area-profile>p:not(.eyebrow) { font-size:13px; color:#becbc8; }
.area-profile .eyebrow { color:#dac298; font-size:8px; }
.area-profile .text-link { color:#f1ede2; border-color:#b9aa8b66; font-size:11px; margin-top:26px; }
.related-credentials { margin:0; padding:0; list-style:none; }
.related-credentials li { font-size:13px; line-height:1.7; border-top:1px solid #c3b08240; padding:17px 0; color:#dedaca; }
.area-author { display:flex; align-items:center; gap:13px; border-top:1px solid #c3b08240; padding-top:25px; margin-top:35px; }
.area-author .author-initials { border:1px solid #cfb98966; color:#dcc89f; font-family:var(--serif); font-size:24px; display:grid; place-items:center; width:47px; height:47px; flex:none; }
.area-author b { display:block; font-family:var(--serif); font-size:18px; font-weight:400; }
.area-author div>span { display:block; font-size:8px; color:#bfc8c2; margin-top:7px; line-height:1.8; }
.area-reading-band { background:#ece5d9; border-top:1px solid #a28c592b; border-bottom:1px solid #a28c592b; padding:49px 0; }
.area-reading-band>.wrap { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.area-reading-band h2 { font-size:41px; margin-top:18px; }
.area-reading-band p:not(.eyebrow) { font-size:14px; line-height:1.9; color:#53656a; margin:0 0 20px; }
.related-areas { padding-block:70px; }
.related-areas h2 { font-size:43px; }
.related-area-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-block:1px solid #b5a47c60; }
.related-area-links a { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:25px 20px; font-family:var(--serif); font-size:25px; line-height:1.2; }
.related-area-links a+a { border-left:1px solid #b5a47c40; }
.related-area-links a svg { width:20px; height:20px; flex:none; }
.related-area-links a:hover { background:#fff6; }
/* Blog's twelve themes in a native, keyboard-friendly selector. */
.blog-controls .filter-row { display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:end; }
.blog-category-field { max-width:470px; }
.blog-category-field select { width:100%; height:46px; border:0; border-bottom:1px solid #899890; background:transparent; font-family:var(--sans); font-size:13px; color:var(--ink); padding:0 34px 0 0; border-radius:0; cursor:pointer; }
.blog-category-field select option { background:var(--paper); color:var(--ink); }
.blog-controls #article-search-form { width:100%; max-width:470px; justify-self:end; }
.blog-controls .search-field { width:100%; min-height:46px; }
select:focus-visible { outline:2px solid #947b4a; outline-offset:5px; }
/* Full secondary navigation, kept out of the compact main header. */
.footer-practices { padding:26px 0 33px; border-top:1px solid #d5bd8b30; }
.footer-practices>p { color:#d4c39f; font-size:9px; text-transform:uppercase; letter-spacing:.17em; margin:0 0 18px; }
.footer-practices nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px 30px; }
.footer-practices a { font-size:11px; line-height:1.6; color:#c2cdc8; padding-block:6px; }
.footer-practices a:hover { color:var(--gold-light); }
@media (max-width:1100px) {
 .home-practice-grid,.practice-catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .practice-tile { min-height:225px; }
 .formation-feature-grid { grid-template-columns:140px minmax(0,1fr); gap:35px; }
 .formation-mini { grid-column:2; display:grid; grid-template-columns:1fr 1fr; gap:12px 22px; padding-left:0; border-left:0; border-top:1px solid #98845645; padding-top:24px; }
 .formation-mini p:nth-of-type(1) { grid-area:1/1; }.formation-mini span:nth-of-type(1) { grid-area:2/1; }
 .formation-mini p:nth-of-type(2) { grid-area:1/2; margin-top:0!important; }.formation-mini span:nth-of-type(2) { grid-area:2/2; }
 .qualification-groups { gap:35px; }
 .full-formation .section-head { align-items:start; }
 .full-formation h2 { font-size:44px; }
 .formation-intro { max-width:280px; }
 .scope-layout { gap:35px; grid-template-columns:minmax(0,1fr) 280px; }
 .scope-topics { grid-template-columns:1fr; }
 .area-profile { padding:28px 23px; }
 .area-hero-index b,.hub-count b { font-size:120px; }
 .related-area-links a { font-size:23px; padding-inline:15px; }
}
@media (max-width:800px) {
 .hub-hero-grid,.area-hero-layout { grid-template-columns:1fr; }
 .hub-count,.area-hero-index { display:none; }
 .hub-hero-grid h1,.area-detail-intro h1 { font-size:60px; }
 .catalog-heading { gap:30px; }
 .catalog-heading h2 { font-size:37px; }
 .area-search-form input { font-size:12px; }
 .practice-tile { padding:25px; min-height:245px; }
 .practice-tile h3 { font-size:28px; }
 .formation-feature h2 { font-size:40px; }
 .qualification-groups { gap:28px; }
 .qualification-group-head h3 { font-size:23px; }
 .qualification-name { font-size:21px; }
 .full-formation .section-head { display:block; }
 .formation-intro { max-width:600px; margin-top:23px; }
 .scope-layout { grid-template-columns:1fr; }
 .scope-topics { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .area-profile { position:static; max-width:none; }
 .related-area-links a { font-size:21px; }
 .area-reading-band>.wrap { gap:40px; }
 .footer-practices nav { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px 20px; }
 .blog-controls .filter-row { gap:30px; }
}
@media (max-width:580px) {
 .home-practice-grid,.practice-catalog-grid { grid-template-columns:1fr; margin-top:15px; }
 .practice-tile { min-height:0; padding:23px 20px; }
 .practice-tile h3 { font-size:28px; margin:21px 0 13px; }
 .practice-tile p { font-size:13px; margin-bottom:22px; }
 .tile-top { font-size:9px; }
 .home-practice-grid .practice-tile p { display:none; }
 .home-practice-grid .practice-tile h3 { margin:18px 0 21px; }
 .home-practice-grid .tile-bottom { font-size:10px; }
 .hub-hero-grid h1,.area-detail-intro h1 { font-size:47px; }
 .catalog-heading { grid-template-columns:1fr; gap:25px; }
 .catalog-heading h2 { font-size:39px; }
 .area-search-form { max-width:none; }
 .catalog-status { padding-top:21px; }
 .catalog-status p { font-size:10px; }
 .formation-feature-grid { grid-template-columns:80px minmax(0,1fr); gap:25px; align-items:start; }
 .formation-seal { padding-block:21px; }
 .formation-seal>span { font-size:7px; letter-spacing:.08em; }
 .formation-seal b { font-size:77px; line-height:1.4; }
 .formation-feature h2 { font-size:33px; line-height:1.12; margin:17px 0; }
 .formation-feature .eyebrow { font-size:8px; }
 .formation-feature .eyebrow::before { display:none; }
 .formation-feature p:not(.eyebrow) { font-size:13px; }
 .formation-feature .text-link { font-size:11px; line-height:1.7; }
 .formation-mini { grid-column:1/-1; }
 .formation-mini p:not(.eyebrow) { font-size:22px; }
 .formation-mini span { font-size:11px; }
 .full-formation h2 { font-size:39px; }
 .qualification-groups { grid-template-columns:1fr; gap:35px; margin-top:30px; }
 .qualification-group-head h3 { font-size:25px; }
 .qualification-list li { gap:13px; padding:25px 0; }
 .qualification-name { font-size:23px; }
 .qualification-note { font-size:12px; }
 .formation-source { flex-direction:column; align-items:flex-start; gap:20px; margin-top:30px; }
 .formation-source p { font-size:11px; }
 .scope-layout>div>h2 { font-size:39px; }
 .scope-topics { grid-template-columns:1fr; margin-top:30px; }
 .scope-topic h3 { font-size:30px; }
 .area-profile { padding:30px 25px; }
 .area-reading-band { padding:36px 0; }
 .area-reading-band>.wrap { grid-template-columns:1fr; gap:23px; }
 .area-reading-band h2 { font-size:37px; }
 .area-reading-band p:not(.eyebrow) { font-size:13px; }
 .related-areas { padding-block:48px; }
 .related-areas h2 { font-size:37px; }
 .related-area-links { grid-template-columns:1fr; }
 .related-area-links a { padding:22px 5px; font-size:25px; }
 .related-area-links a+a { border-left:0; border-top:1px solid #b5a47c40; }
 .blog-controls .filter-row { grid-template-columns:1fr; gap:24px; }
 .blog-category-field,#article-search-form { max-width:none!important; }
 .blog-category-field select,.blog-controls input { font-size:14px; }
 .footer-practices nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 20px; }
 .footer-practices a { font-size:11px; min-height:40px; display:flex; align-items:center; }
 .main-nav>a[aria-current="location"] { color:var(--gold-light); }
}
@media (max-width:360px) {
 .hub-hero-grid h1,.area-detail-intro h1 { font-size:40px; }
 .formation-feature-grid { grid-template-columns:1fr; }
 .formation-seal { max-width:120px; }
 .formation-feature h2 { font-size:37px; }
 .formation-mini { grid-template-columns:1fr; }
 .formation-mini p:nth-of-type(2) { grid-area:3/1; margin-top:12px!important; }
 .formation-mini span:nth-of-type(2) { grid-area:4/1; }
 .qualification-name { font-size:22px; }
 .practice-tile h3 { font-size:27px; }
 .catalog-heading h2,.full-formation h2 { font-size:36px; }
}
@media print {
 .home-practice-grid,.practice-catalog-grid { display:block; }
 .practice-tile { break-inside:avoid; min-height:0; padding:15px; }
 .practice-tile p,.tile-top,.tile-bottom { color:#333!important; }
 .qualification-groups,.scope-layout,.scope-topics { display:block; }
 .qualification-list li { break-inside:avoid; }
 .area-profile { background:#fff; color:#111; position:static; }
 .area-profile * { color:#111!important; }
 .area-search-form,.catalog-status,.area-hero-index,.hub-count { display:none; }
}
/* Anchor targets remain below the persistent header. */
section[id] { scroll-margin-top:calc(var(--header-h, 96px) + 18px); }
