/* ============================================================
   KILCOMMONS LAW — Design System Foundations
   Direction: "Counsel" (classic & symmetric)
   colors_and_type.css — color + type + spacing + elevation tokens
   ============================================================ */

/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/cefbc89d-4ad7-4fc7-aa6f-8eb049e97fb8.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/47159e1d-636a-40b2-a53b-c6e1b1583ca0.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/9b39eddb-ad43-4dce-acbf-697512589dad.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/cefbc89d-4ad7-4fc7-aa6f-8eb049e97fb8.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/47159e1d-636a-40b2-a53b-c6e1b1583ca0.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/9b39eddb-ad43-4dce-acbf-697512589dad.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/cefbc89d-4ad7-4fc7-aa6f-8eb049e97fb8.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/47159e1d-636a-40b2-a53b-c6e1b1583ca0.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/9b39eddb-ad43-4dce-acbf-697512589dad.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/cefbc89d-4ad7-4fc7-aa6f-8eb049e97fb8.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/47159e1d-636a-40b2-a53b-c6e1b1583ca0.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/9b39eddb-ad43-4dce-acbf-697512589dad.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Libre Caslon Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/cfaf9546-52e4-4926-b551-f835e894ca58.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Libre Caslon Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/e7c355c3-332d-4b30-8ceb-b7260224aebb.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Libre Caslon Text';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/f933da6b-0be1-46c5-971d-9036ce7cd79b.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Libre Caslon Text';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/38ee993c-ce67-4318-8b8c-5437b3d5b3f9.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Libre Caslon Text';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/8fad9797-e328-4bdc-a084-c0bfa9886697.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Libre Caslon Text';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/56dddcb8-8f29-4864-ad16-79b4ebc8f3ce.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Libre Caslon Text';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/53d28b34-cff2-40e1-a050-a9d6161aa873.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Libre Caslon Text';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/41322db5-e151-4056-8916-e422acb6f97b.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/efeabd08-b648-435a-a731-eb56bff6dbff.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/f2126898-88b4-4730-9c65-cfa277839683.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/538fabf6-f1ad-4104-a559-f7ef01bcdaf9.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/880e35f7-6971-4f97-941d-9c6bad55ac42.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/b8184227-8b89-4de7-8f8d-e2de59f1cd37.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/378b8721-78c5-49ca-b662-f1247c246c6b.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/dacf8f7c-4322-4499-aeb7-41b46389b6ae.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/558d3960-95a3-4351-a4df-bd3d72889050.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/8a793fc3-4894-4981-8c15-52e4891fe4f6.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/5581a843-2ce9-4de6-b165-eddd54cf59c9.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/142c4485-b7bf-4181-9a28-cd33696a4525.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/138c2074-fcc4-413b-99c1-ec63c317414d.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/dacf8f7c-4322-4499-aeb7-41b46389b6ae.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/558d3960-95a3-4351-a4df-bd3d72889050.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/8a793fc3-4894-4981-8c15-52e4891fe4f6.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/5581a843-2ce9-4de6-b165-eddd54cf59c9.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/142c4485-b7bf-4181-9a28-cd33696a4525.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/138c2074-fcc4-413b-99c1-ec63c317414d.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/dacf8f7c-4322-4499-aeb7-41b46389b6ae.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/558d3960-95a3-4351-a4df-bd3d72889050.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/8a793fc3-4894-4981-8c15-52e4891fe4f6.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/5581a843-2ce9-4de6-b165-eddd54cf59c9.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/142c4485-b7bf-4181-9a28-cd33696a4525.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/138c2074-fcc4-413b-99c1-ec63c317414d.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


:root {
  /* ---------- RAW COLOR PALETTE ---------- */
  /* Blue — the firm's anchor. WARM, lighter slate-blue (was near-black navy).
     Var names kept as --navy-* for compatibility; values are now warm blues. */
  --navy-900: #22425D;   /* deepest warm slate — footer, deepest bands */
  --navy-800: #2F5677;   /* PRIMARY brand blue — nav, dark sections */
  --navy-700: #3C6589;   /* raised blue surfaces, cards on blue */
  --navy-600: #5F84A6;   /* hairline borders / hovers on blue */
  --navy-500: #89A8C6;   /* lightest blue — subtle dividers */

  /* Gold — accent of distinction. Restrained, metallic, never neon. */
  --gold-700: #6F561A;   /* deep gold text on tints/cream (AA, badges) */
  --gold-600: #86691F;   /* gold text/links/labels on light (AA 4.5+) */
  --gold-500: #C2A24C;   /* PRIMARY gold — CTAs, rules, numerals */
  --gold-400: #E2CB93;   /* soft gold — text/accents on navy (AA 4.5+) */
  --gold-200: #ECDFBE;   /* faint gold — tint backgrounds */

  /* Paper & neutrals — warm, archival, "fine stationery". */
  --cream-50:  #FBF8F1;  /* default page background */
  --cream-100: #F4EFE4;  /* alternate band background */
  --cream-200: #E9E0CD;  /* warm divider on cream */
  --sand-300:  #DDD2BC;  /* hairline borders on cream */

  /* Ink & text */
  --ink-900: #14202F;    /* primary text on light */
  --ink-700: #3A4350;    /* secondary text on light */
  --ink-500: #5A6470;    /* muted text / captions */
  --silver-300: #C9D2DD; /* primary text on navy */
  --silver-500: #9FB0C2; /* muted text on navy */
  --white: #FFFFFF;

  /* ---------- SEMANTIC COLOR ROLES ---------- */
  --bg:            var(--cream-50);
  --bg-alt:        var(--cream-100);
  --bg-invert:     var(--navy-800);
  --surface:       var(--white);
  --surface-invert:var(--navy-700);

  --fg:            var(--ink-900);   /* body text on light */
  --fg-muted:      var(--ink-700);
  --fg-subtle:     var(--ink-500);
  --fg-on-invert:  var(--silver-300);
  --fg-on-invert-muted: var(--silver-500);

  --accent:        var(--gold-500);  /* primary accent */
  --accent-text:   var(--gold-600);  /* accent used as text on light */
  --accent-on-invert: var(--gold-400);

  --border:        var(--sand-300);
  --border-strong: var(--cream-200);
  --border-invert: var(--navy-600);

  --link:          var(--gold-600);
  --link-invert:   var(--gold-400);

  /* status (used sparingly in forms) */
  --success: #2E6B4F;
  --error:   #9B3024;

  /* ---------- TYPE FAMILIES ---------- */
  --font-display: 'Libre Caslon Display', 'Times New Roman', serif; /* headlines */
  --font-text:    'Source Serif 4', Georgia, serif;                 /* body copy */
  --font-serif-ui:'Libre Caslon Text', Georgia, serif;             /* serif accents, pull-quotes */
  --font-ui:      'Archivo', 'Helvetica Neue', Arial, sans-serif;  /* labels, nav, buttons, eyebrows */

  /* ---------- TYPE SCALE (desktop) ---------- */
  --t-display: 64px;   /* hero h1 */
  --t-h1:      48px;
  --t-h2:      38px;
  --t-h3:      28px;
  --t-h4:      22px;
  --t-lead:    21px;   /* hero sub / intro paragraph */
  --t-body:    17px;
  --t-small:   15px;
  --t-eyebrow: 13px;   /* uppercase label */
  --t-caption: 12px;

  --lh-tight: 1.08;  /* @kind other */
  --lh-snug:  1.25;  /* @kind other */
  --lh-body:  1.62;  /* @kind other */

  --tracking-eyebrow: 0.3em;
  --tracking-ui:      0.12em;
  --tracking-tight:   -0.01em;

  /* ---------- SPACING (8pt base, warm rhythm) ---------- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 128px;
  --section-y: 96px;     /* vertical padding for page sections */
  --gutter: 56px;        /* horizontal page gutter (desktop) */
  --maxw: 1200px;        /* content max width */
  --maxw-prose: 680px;   /* readable measure */

  /* ---------- RADII (restrained — this brand is mostly square) ---------- */
  --radius-0: 0px;       /* default: crisp corners */
  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-pill: 999px;

  /* ---------- ELEVATION (soft, blue-tinted, never gray) ---------- */
  --shadow-sm: 0 2px 8px -4px rgba(34,66,93,0.22);
  --shadow-md: 0 18px 40px -28px rgba(34,66,93,0.34);
  --shadow-lg: 0 36px 80px -40px rgba(34,66,93,0.40);
  --shadow-gold: 0 14px 34px -18px rgba(176,141,60,0.45);

  /* ---------- MOTION ---------- */
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1); /* @kind other */ /* gentle, decisive */
  --dur-fast: 140ms;  /* @kind other */
  --dur: 240ms;  /* @kind other */
  --dur-slow: 520ms;  /* @kind other */
}

/* ============================================================
   SEMANTIC ELEMENT STYLES
   Apply via classes or element selectors inside a .kc scope.
   ============================================================ */

.kc, .kc-body {
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-text);
  font-size: var(--t-body);
  line-height: var(--lh-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* ----- Display & headings ----- */
.kc-display {
  font-family: var(--font-display);
  font-size: var(--t-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-tight);
  font-weight: 400;
  color: var(--ink-900);
}
.kc h1, .kc-h1 { font-family: var(--font-display); font-size: var(--t-h1); line-height: var(--lh-tight); letter-spacing: var(--tracking-tight); font-weight: 400; margin: 0 0 var(--space-5); }
.kc h2, .kc-h2 { font-family: var(--font-display); font-size: var(--t-h2); line-height: var(--lh-snug); font-weight: 400; margin: 0 0 var(--space-4); }
.kc h3, .kc-h3 { font-family: var(--font-display); font-size: var(--t-h3); line-height: var(--lh-snug); font-weight: 400; margin: 0 0 var(--space-3); }
.kc h4, .kc-h4 { font-family: var(--font-serif-ui); font-size: var(--t-h4); line-height: var(--lh-snug); font-weight: 700; margin: 0 0 var(--space-3); }

/* ----- Body ----- */
.kc p, .kc-p { font-family: var(--font-text); font-size: var(--t-body); line-height: var(--lh-body); margin: 0 0 var(--space-5); color: var(--fg-muted); text-wrap: pretty; }
.kc-lead { font-family: var(--font-text); font-size: var(--t-lead); line-height: 1.6; color: var(--fg-muted); }
.kc-small { font-size: var(--t-small); line-height: 1.55; }
.kc-prose { max-width: var(--maxw-prose); }
.kc-prose p { margin-bottom: var(--space-5); }

/* ----- Eyebrow / labels (the brand's signature microtype) ----- */
.kc-eyebrow {
  font-family: var(--font-ui);
  font-size: var(--t-eyebrow);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  font-weight: 600;
  color: var(--accent-text);
}
.kc-eyebrow--invert { color: var(--accent-on-invert); }
.kc-label { font-family: var(--font-ui); font-size: var(--t-caption); letter-spacing: var(--tracking-ui); text-transform: uppercase; font-weight: 600; color: var(--fg-subtle); }

/* ----- Links ----- */
.kc a, .kc-link { color: var(--link); text-decoration: none; border-bottom: 1px solid transparent; transition: border-color var(--dur) var(--ease), color var(--dur) var(--ease); }
.kc a:hover, .kc-link:hover { border-bottom-color: currentColor; }

/* ----- Gold hairline rule (signature divider) ----- */
.kc-rule { width: 64px; height: 2px; background: var(--accent); border: 0; }
.kc-rule--center { margin-left: auto; margin-right: auto; }

/* ----- Inverted (on-navy) context ----- */
.kc-invert { background: var(--bg-invert); color: var(--fg-on-invert); }
.kc-invert .kc-h1, .kc-invert .kc-h2, .kc-invert .kc-h3, .kc-invert .kc-display { color: var(--cream-100); }
.kc-invert p, .kc-invert .kc-p { color: var(--fg-on-invert); }
.kc-invert a { color: var(--link-invert); }

/* ----- Buttons ----- */
.kc-btn {
  font-family: var(--font-ui);
  font-size: 13px;
  letter-spacing: var(--tracking-ui);
  text-transform: uppercase;
  font-weight: 600;
  padding: 15px 28px;
  border: 1px solid transparent;
  border-radius: var(--radius-0);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: background var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur) var(--ease);
}
.kc-btn--primary { background: var(--gold-500); color: var(--ink-900); }
.kc-btn--primary:hover { background: var(--gold-400); box-shadow: var(--shadow-gold); }
.kc-btn--primary:active { transform: translateY(1px); background: var(--gold-600); }
.kc-btn--dark { background: var(--navy-800); color: var(--cream-100); }
.kc-btn--dark:hover { background: var(--navy-700); }
.kc-btn--ghost-light { background: transparent; color: var(--ink-900); border-color: var(--border); }
.kc-btn--ghost-light:hover { border-color: var(--ink-900); }
.kc-btn--ghost-invert { background: transparent; color: var(--cream-100); border-color: rgba(201,210,221,0.4); }
.kc-btn--ghost-invert:hover { border-color: var(--gold-400); color: var(--gold-400); }

/* ----- Cards ----- */
.kc-card {
  background: var(--surface);
  border: 1px solid var(--border-strong);
  box-shadow: var(--shadow-md);
  padding: var(--space-7);
}
.kc-card--flat { box-shadow: none; border-color: var(--border); }
.kc-card--invert { background: linear-gradient(160deg, var(--navy-700), var(--navy-800)); border-color: var(--navy-600); color: var(--fg-on-invert); }

/* ----- Inputs ----- */
.kc-input, .kc-textarea, .kc-select {
  font-family: var(--font-text);
  font-size: var(--t-body);
  color: var(--ink-900);
  background: var(--white);
  border: 1px solid var(--sand-300);
  border-radius: var(--radius-0);
  padding: 14px 16px;
  width: 100%;
  box-sizing: border-box;
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.kc-input:focus, .kc-textarea:focus, .kc-select:focus {
  outline: none;
  border-color: var(--gold-500);
  box-shadow: 0 0 0 3px rgba(194,162,76,0.18);
}

/* ----- Badges / pills ----- */
.kc-badge {
  font-family: var(--font-ui);
  font-size: 11px;
  letter-spacing: var(--tracking-ui);
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gold-700);
  background: var(--gold-200);
  padding: 5px 12px;
  display: inline-block;
}
.kc-badge--invert { color: var(--gold-400); background: rgba(194,162,76,0.14); }

/* ----- Section scaffold ----- */
.kc-section { padding: var(--section-y) var(--gutter); }
.kc-container { max-width: var(--maxw); margin: 0 auto; }



  html, body { margin: 0; padding: 0; height: 100%; }
  /* #root height rule removed for WP */
  .kc-ico { display: inline-flex; }
  .kc-ico svg { width: var(--s, 20px); height: var(--s, 20px); stroke-width: 1.7; }
  /* real imagery with brand-consistent navy treatment */
  .kc-img { position: relative; overflow: hidden; background: var(--navy-800); }
  .kc-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .kc-img--portrait img { filter: grayscale(0.32) contrast(1.03); object-position: top center; }
  .kc-img--portrait::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(34,66,93,0) 52%, rgba(34,66,93,0.38)); pointer-events: none; }
  .kc-img--duo img { filter: grayscale(0.4) contrast(1.03) brightness(0.98); }
  .kc-img--duo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(155deg, rgba(60,101,137,0.34), rgba(34,66,93,0.46)); mix-blend-mode: multiply; pointer-events: none; }
  /* blue-duotone photography placeholder treatment */
  .photo {
    background:
      radial-gradient(120% 90% at 70% 10%, rgba(194,162,76,0.16), transparent 55%),
      linear-gradient(150deg, #3C6589 0%, #2F5677 60%, #22425D 100%);
    position: relative; overflow: hidden;
  }
  .photo::after {
    content: attr(data-label);
    position: absolute; left: 18px; bottom: 16px;
    font-family: 'Archivo', sans-serif; font-size: 10px; letter-spacing: .16em;
    text-transform: uppercase; color: rgba(216,190,126,0.6);
  }
  .photo.grain::before {
    content: ''; position: absolute; inset: 0;
    background-image: radial-gradient(rgba(255,255,255,0.05) 1px, transparent 1px);
    background-size: 4px 4px; opacity: .5;
  }
  /* Entrance is transform-only so content is ALWAYS fully opaque,
     even if the animation timeline is paused (backgrounded tab / capture). */
  .kc-route { animation: kcRise var(--dur-slow) var(--ease) both; }
  @keyframes kcRise { from { transform: translateY(12px); } to { transform: none; } }
  @media (prefers-reduced-motion: reduce) { .kc-route { animation: none; } }

/* ============================================================
   WordPress theme adaptations (Kilcommons Law)
   ------------------------------------------------------------
   The design used <button>/<span> for nav, buttons and cards.
   In WP they become <a>, which inherit the prose-link underline
   treatment from ".kc a". These rules opt structural anchors out
   and restore the intended button hover states.
   ============================================================ */
.kc a.kc-btn:hover { border-bottom-color: transparent; }
.kc a.kc-btn--ghost-light:hover { border-color: var(--ink-900); }
.kc a.kc-btn--ghost-invert:hover { border-color: var(--gold-400); color: var(--gold-400); }
.kc a.kc-card-link, .kc a.kc-card-link:hover { border-bottom: 0; }
.kc a.kc-card-link { transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease); }
.kc a.kc-card-link:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.kc-primary-nav a { border-bottom-width: 0; }
.kc-primary-nav a:hover { border-bottom: 1px solid var(--gold-400); }
.kc-insights-grid a:hover, .kc-cta-band a.kc-btn:hover { border-bottom-color: transparent; }
#colophon a { border-bottom: 0; transition: color var(--dur) var(--ease); }
#colophon a:hover { color: var(--gold-400); border-bottom: 0; }

/* Body uses the cream page background everywhere */
body.kc { background: var(--bg); }

/* ============================================================
   Responsive (the source UI kit was desktop-only)
   ============================================================ */
@media (max-width: 1040px) {
  .kc-section { padding: 72px 32px; }
  .kc-about-grid { grid-template-columns: 1fr !important; gap: 40px !important; }
  .kc-insights-grid { grid-template-columns: 1fr !important; gap: 32px !important; }
}
/* The primary nav swaps to the hamburger well before the layout breaks:
   the menu's top-level items crowd the logo and CTA once the viewport
   drops under ~1200px. Kept in its own breakpoint so it stays decoupled
   from the section/typography changes at 1040 and 860.
   kc-nav.js mirrors this value as (min-width: 1200px). */
@media (max-width: 1199px) {
  .kc-primary-nav { display: none !important; }
  .kc-nav-toggle { display: inline-flex !important; }
}
@media (max-width: 860px) {
  .kc-navbar { padding: 0 20px !important; height: 72px !important; }
  .kc-topbar { flex-wrap: wrap; gap: 8px 14px !important; height: auto !important; padding: 8px 20px !important; }
  .kc-hero { padding: 64px 24px 56px !important; }
  .kc-display { font-size: 42px !important; }
  .kc h2, .kc-h2 { font-size: 30px !important; }
  .kc-cards-3 { grid-template-columns: 1fr !important; }
  .kc-hero-stats { flex-wrap: wrap; gap: 22px 0; }
  .kc-hero-stats > div { flex: 0 0 50% !important; border-right: 0 !important; box-sizing: border-box !important; }
  .kc-footer-grid { grid-template-columns: 1fr 1fr !important; gap: 32px !important; }
  .kc-cta-band { padding: 64px 24px !important; }
  footer#colophon { padding: 56px 24px 32px !important; }
}
@media (max-width: 520px) {
  .kc-display { font-size: 34px !important; }
  .kc-hero-stats > div { padding: 0 10px !important; }
  .kc-footer-grid { grid-template-columns: 1fr !important; }
}

/* ============================================================
   Button fidelity fix (Kilcommons Law)
   ------------------------------------------------------------
   The design rendered buttons as <button>; the WP build uses
   <a class="kc-btn">. As anchors they (a) inherited the generic
   ".kc a { color: var(--link) }" gold text — overriding each
   variant's text colour — and (b) inherited the body line-height
   (1.62) instead of a button's "normal", making them too tall and
   pushing text off-centre. These higher-specificity rules restore
   the exact variant colours and the button line-height.
   ============================================================ */
.kc a.kc-btn { line-height: normal; }
.kc a.kc-btn--primary { color: var(--ink-900); }
.kc a.kc-btn--dark { color: var(--cream-100); }
.kc a.kc-btn--ghost-light { color: var(--ink-900); border-color: var(--border); }
.kc a.kc-btn--ghost-invert { color: var(--cream-100); border-color: rgba(201,210,221,0.4); }
.kc a.kc-btn--ghost-light:hover { color: var(--ink-900); border-color: var(--ink-900); }
.kc a.kc-btn--ghost-invert:hover { color: var(--gold-400); border-color: var(--gold-400); }

/* ============================================================
   Subpage responsive (Practice Area / About / Insights / Contact)
   These templates use their own grid classes (not the home-page
   ones), so collapse them to a single column on tablet/mobile to
   prevent horizontal overflow and cramped multi-column text.
   ============================================================ */
@media (max-width: 1040px) {
  .kc-pa-grid,
  .kc-about-hero,
  .kc-about-body-grid,
  .kc-insights-feat,
  .kc-contact-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 40px !important; }
  .kc-pa-aside { position: static !important; }       /* unstick the CTA card once stacked */
  .kc-insights-cards { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 640px) {
  .kc-pa-list { grid-template-columns: minmax(0, 1fr) !important; }   /* service bullet items */
  .kc-insights-cards { grid-template-columns: minmax(0, 1fr) !important; }
  .kc-form-row { grid-template-columns: minmax(0, 1fr) !important; }  /* name/phone, email/area pairs */
}

/* Long unbroken strings (bare URLs pasted into body copy) otherwise set a
   min-content floor wider than the phone viewport and push the page sideways. */
.kc-prose,
.kc-prose p,
.kc-prose li { overflow-wrap: anywhere; }

/* ============================================================
   Mobile navigation (hamburger menu)
   Toggle is hidden on desktop and revealed at <=1199px (see the
   1199 breakpoint above). The panel drops below the sticky header.
   ============================================================ */
.kc-nav-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  background: transparent;
  color: var(--silver-300);
  border: 1px solid var(--navy-600);
  border-radius: var(--radius-0);
  cursor: pointer;
  transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.kc-nav-toggle:hover { color: var(--gold-400); border-color: var(--gold-400); }
.kc-nav-toggle svg { width: 22px; height: 22px; display: block; }
.kc-nav-toggle__close { display: none; }
.kc-nav-toggle[aria-expanded="true"] .kc-nav-toggle__open { display: none; }
.kc-nav-toggle[aria-expanded="true"] .kc-nav-toggle__close { display: inline-flex; }

.kc-mobile-nav {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  flex-direction: column;
  background: var(--navy-800);
  border-bottom: 1px solid var(--navy-600);
  box-shadow: var(--shadow-lg);
  padding: 6px 20px 20px;
}
.kc-mobile-nav.is-open { display: flex; }
.kc-mobile-nav .kc-mobile-menu { list-style: none; margin: 0; padding: 0; }
.kc-mobile-nav .kc-mobile-menu li { margin: 0; }
.kc-mobile-nav .kc-mobile-menu a {
  display: block;
  font-family: var(--font-ui);
  font-size: 13px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--silver-300);
  text-decoration: none;
  padding: 15px 2px;
  border-bottom: 1px solid var(--navy-600);
  transition: color var(--dur) var(--ease);
}
.kc-mobile-nav .kc-mobile-menu a:hover,
.kc-mobile-nav .kc-mobile-menu .current-menu-item > a,
.kc-mobile-nav .kc-mobile-menu .current_page_item > a { color: var(--gold-400); }
.kc-mobile-nav a.kc-mobile-cta { margin-top: 20px; justify-content: center; text-decoration: none; }

/* Free Consultation stays beside the hamburger down to 640px, then moves
   inside the panel so it does not crowd the logo on phones. The bar copy
   and the panel copy are mutually exclusive: exactly one shows at any
   width, otherwise both are visible at once while the panel is open. */
@media (max-width: 639px) {
  .kc-cta-bar { display: none; }
}
@media (min-width: 640px) {
  .kc-mobile-nav a.kc-mobile-cta { display: none; }
}

/* ============================================================
   Logo size + WordPress primary-menu (wp_nav_menu) styling
   ============================================================ */
.kc-logo-img { height: 46px; width: auto; display: block; }
.kc-primary-nav .kc-menu { list-style: none; margin: 0; padding: 0; display: flex; gap: 28px; align-items: center; }
.kc-primary-nav .kc-menu li { margin: 0; }
.kc-primary-nav .kc-menu a {
  font-family: var(--font-ui);
  font-size: 12.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--silver-300);
  text-decoration: none;
  padding-bottom: 4px;
  border-bottom: 1px solid transparent;
  transition: color var(--dur) var(--ease);
}
.kc-primary-nav .kc-menu a:hover { color: var(--gold-400); }
.kc-primary-nav .kc-menu .current-menu-item > a,
.kc-primary-nav .kc-menu .current_page_item > a,
.kc-primary-nav .kc-menu .current-menu-parent > a { color: var(--gold-400); border-bottom-color: var(--gold-400); }

/* ----- Primary nav dropdown -----
   Top-level items take the full navbar height so the panel can hang off the
   navbar's bottom edge with no dead gap for the pointer to fall through.
   focus-within keeps it reachable by keyboard. */
.kc-primary-nav .kc-menu > li { position: relative; height: 88px; display: flex; align-items: center; }
.kc-primary-nav .kc-menu .sub-menu {
  list-style: none;
  margin: 0;
  padding: 8px 0;
  position: absolute;
  top: 100%;
  left: -18px;
  min-width: 232px;
  background: var(--navy-800);
  border: 1px solid var(--navy-600);
  border-top: 2px solid var(--gold-500);
  box-shadow: var(--shadow-lg);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease), visibility var(--dur);
  z-index: 60;
}
.kc-primary-nav .kc-menu > li:hover > .sub-menu,
.kc-primary-nav .kc-menu > li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.kc-primary-nav .kc-menu .sub-menu li { display: block; width: 100%; }
.kc-primary-nav .kc-menu .sub-menu a {
  display: block;
  padding: 10px 18px;
  font-size: 12px;
  letter-spacing: .08em;
  border-bottom: 0;
  white-space: nowrap;
}
.kc-primary-nav .kc-menu .sub-menu a:hover { background: var(--navy-700); color: var(--gold-400); }
.kc-primary-nav .kc-menu .sub-menu .current-menu-item > a,
.kc-primary-nav .kc-menu .sub-menu .current_page_item > a { border-bottom-color: transparent; }
/* Caret on a parent item. */
.kc-primary-nav .kc-menu > li.menu-item-has-children > a::after {
  content: '';
  display: inline-block;
  width: 5px;
  height: 5px;
  margin-left: 7px;
  vertical-align: 2px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  opacity: .75;
}

/* ----- Mobile nav submenu: always expanded, indented under its parent ----- */
.kc-mobile-nav .kc-mobile-menu .sub-menu {
  list-style: none;
  margin: 0;
  padding: 0 0 0 16px;
  border-left: 1px solid var(--navy-600);
}
.kc-mobile-nav .kc-mobile-menu .sub-menu a {
  font-size: 12px;
  padding: 12px 2px;
  color: var(--silver-300); /* 5.06:1 on navy-800 — meets WCAG AA for small text */
}

@media (max-width: 860px) { .kc-logo-img { height: 30px; } }

/* ============================================================
   Gravity Forms — match the Kilcommons consultation form look
   (scoped to the contact card so other forms are unaffected).
   ============================================================ */
.kc-card .gform_wrapper .gform_fields { grid-row-gap: 20px; grid-column-gap: 20px; }
.kc-card .gform_wrapper .gfield_label {
  font-family: var(--font-ui);
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--ink-700);
  margin: 0 0 8px;
}
.kc-card .gform_wrapper .gfield_required { display: none; }
.kc-card .gform_wrapper input[type="text"],
.kc-card .gform_wrapper input[type="email"],
.kc-card .gform_wrapper input[type="tel"],
.kc-card .gform_wrapper input[type="number"],
.kc-card .gform_wrapper select,
.kc-card .gform_wrapper textarea {
  font-family: var(--font-text);
  font-size: var(--t-body);
  color: var(--ink-900);
  background: var(--white);
  border: 1px solid var(--sand-300);
  border-radius: var(--radius-0);
  padding: 14px 16px;
  width: 100%;
  box-sizing: border-box;
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.kc-card .gform_wrapper input:focus,
.kc-card .gform_wrapper select:focus,
.kc-card .gform_wrapper textarea:focus {
  outline: none;
  border-color: var(--gold-500);
  box-shadow: 0 0 0 3px rgba(194,162,76,0.18);
}
.kc-card .gform_wrapper textarea { min-height: 120px; resize: vertical; }
.kc-card .gform_wrapper .gform_footer { margin: 28px 0 0; padding: 0; }
.kc-card .gform_wrapper .kc-gf-submit,
.kc-card .gform_wrapper .gform_button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  font-family: var(--font-ui);
  font-size: 13px;
  letter-spacing: var(--tracking-ui);
  text-transform: uppercase;
  font-weight: 600;
  line-height: normal;
  color: var(--ink-900);
  background: var(--gold-500);
  border: 1px solid transparent;
  border-radius: var(--radius-0);
  padding: 15px 28px;
  cursor: pointer;
  transition: background var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.kc-card .gform_wrapper .kc-gf-submit:hover,
.kc-card .gform_wrapper .gform_button:hover { background: var(--gold-400); box-shadow: var(--shadow-gold); }
/* validation + confirmation messaging */
.kc-card .gform_wrapper .gfield_validation_message,
.kc-card .gform_wrapper .validation_message {
  font-family: var(--font-text);
  font-size: 13px;
  color: #9b2c2c;
  margin-top: 6px;
}
.kc-card .gform_confirmation_message {
  font-family: var(--font-text);
  font-size: 17px;
  line-height: 1.6;
  color: var(--ink-700);
}
/* GF orbital sets a strong button color — force the brand gold button. */
.kc-card .gform_wrapper .gform_footer .kc-gf-submit,
.kc-card .gform_wrapper .gform_footer .gform_button,
.kc-card .gform_wrapper button.kc-gf-submit {
  background: var(--gold-500) !important;
  color: var(--ink-900) !important;
  border: 1px solid transparent !important;
}
.kc-card .gform_wrapper .gform_footer .kc-gf-submit:hover,
.kc-card .gform_wrapper button.kc-gf-submit:hover {
  background: var(--gold-400) !important;
  box-shadow: var(--shadow-gold) !important;
}
.kc-card .gform_wrapper .gform_footer { display: block; width: 100%; }
.kc-card .gform_wrapper button.kc-gf-submit { width: 100% !important; }
/* GF orbital overrides the button font — force the UI font to match .kc-btn. */
.kc-card .gform_wrapper .gform_footer .kc-gf-submit,
.kc-card .gform_wrapper button.kc-gf-submit,
.kc-card .gform_wrapper .gform_button {
  font-family: var(--font-ui) !important;
  font-size: 13px !important;
  letter-spacing: var(--tracking-ui) !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
}

/* ============================================================
   Accessibility — skip link + visible keyboard focus
   ============================================================ */
.kc-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 1000;
  background: var(--navy-900);
  color: var(--cream-100);
  font-family: var(--font-ui);
  font-size: 13px;
  letter-spacing: .06em;
  padding: 12px 18px;
  text-decoration: none;
}
.kc-skip-link:focus {
  left: 8px;
  top: 8px;
  outline: 2px solid var(--gold-400);
  outline-offset: 2px;
}
.kc a:focus-visible,
.kc button:focus-visible,
.kc .kc-btn:focus-visible,
.kc-nav-toggle:focus-visible,
.kc input:focus-visible,
.kc select:focus-visible,
.kc textarea:focus-visible,
.kc-card .gform_wrapper .kc-gf-submit:focus-visible {
  outline: 2px solid var(--gold-500);
  outline-offset: 2px;
}
/* Fix GF <select> (Practice area): one dropdown arrow on the right, never tiled. */
.kc-card .gform_wrapper select,
.kc-card .gform_wrapper select.gfield_select {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  background-color: var(--white) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%232F5677' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 16px center !important;
  background-size: 16px 16px !important;
  padding-right: 44px !important;
}
/* Select sizing: use line-height (not vertical padding) so the selected value
   isn't clipped by appearance:none, while matching the inputs' height. */
.kc-card .gform_wrapper select,
.kc-card .gform_wrapper select.gfield_select {
  height: 38px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  line-height: 36px !important;
}

/* ============================================================
   SINGLE POST — editorial article layout + social share
   ============================================================ */

/* Hero band */
.kc-single-back {
  font-family: var(--font-ui);
  font-size: 12px;
  letter-spacing: var(--tracking-ui);
  text-transform: uppercase;
  color: var(--gold-400);
  text-decoration: none;
  border-bottom: 0;
}
.kc .kc-single-back:hover { color: var(--cream-100); }
.kc h1.kc-single-title {
  color: var(--cream-100);
  font-size: 52px;
  line-height: 1.1;
  max-width: 860px;
  margin: 0 auto;
}
.kc-single-meta {
  font-family: var(--font-ui);
  font-size: 12.5px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--silver-300);
  margin-top: 24px;
  display: flex;
  gap: 12px;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}
.kc-single-meta__dot { color: var(--gold-500); }

/* Featured image lifted onto the page */
.kc-single-media {
  max-width: 960px;
  margin: -84px auto 0;
  padding: 0 48px;
  position: relative;
  z-index: 2;
}
.kc-single-media img {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid var(--sand-300);
  box-shadow: var(--shadow-md);
  background: var(--cream-100);
}

/* Body: sticky share rail + centered article column */
.kc-single-body { padding-top: 56px; }
.kc-single-grid {
  display: grid;
  grid-template-columns: 56px minmax(0, 720px);
  gap: 44px;
  justify-content: center;
  align-items: start;
}
.kc-single-col { min-width: 0; }

/* ---- Social share ---- */
.kc-share { display: flex; align-items: center; gap: 14px; }
.kc-share__set { display: flex; gap: 10px; }
.kc-share__label {
  font-family: var(--font-ui);
  font-size: 11px;
  letter-spacing: var(--tracking-ui);
  text-transform: uppercase;
  color: var(--ink-500);
}
.kc .kc-share__btn {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--sand-300);
  background: var(--white);
  color: var(--ink-700);
  transition: background var(--dur) var(--ease), color var(--dur) var(--ease),
    border-color var(--dur) var(--ease), transform var(--dur-fast) var(--ease);
}
.kc .kc-share__btn:hover {
  background: var(--navy-800);
  color: var(--cream-100);
  border-color: var(--navy-800);
  transform: translateY(-2px);
}
.kc .kc-share__btn:focus-visible {
  outline: 2px solid var(--gold-500);
  outline-offset: 2px;
}
.kc-share__btn svg { width: 18px; height: 18px; fill: currentColor; display: block; }

/* Vertical rail (desktop) */
.kc-share-rail { position: sticky; top: 128px; align-self: start; }
.kc-share--rail { flex-direction: column; align-items: flex-start; gap: 14px; }
.kc-share--rail .kc-share__set { flex-direction: column; }

/* Inline share (mobile only, above article) */
.kc-share-inline { display: none; margin-bottom: 28px; }

/* ---- Article prose ---- */
.entry-content {
  font-family: var(--font-text);
  font-size: 18px;
  line-height: 1.75;
  color: var(--ink-700);
}
.entry-content > *:first-child { margin-top: 0; }
.entry-content p { margin: 0 0 24px; }
.entry-content h2 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 30px;
  line-height: 1.2;
  color: var(--navy-800);
  margin: 46px 0 16px;
}
.entry-content h3 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 24px;
  line-height: 1.25;
  color: var(--navy-800);
  margin: 36px 0 14px;
}
.entry-content h4 {
  font-family: var(--font-ui);
  font-size: 13px;
  letter-spacing: var(--tracking-ui);
  text-transform: uppercase;
  color: var(--gold-600);
  margin: 32px 0 12px;
}
.entry-content ul, .entry-content ol { margin: 0 0 24px; padding-left: 22px; }
.entry-content li { margin-bottom: 8px; }
.entry-content ul { list-style: none; padding-left: 0; }
.entry-content ul > li {
  position: relative;
  padding-left: 26px;
}
.entry-content ul > li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 12px;
  width: 8px;
  height: 8px;
  background: var(--gold-500);
  transform: rotate(45deg);
}
.entry-content ol { padding-left: 22px; }
.entry-content img { max-width: 100%; height: auto; margin: 28px 0; border: 1px solid var(--sand-300); }
.entry-content a { color: var(--gold-600); }
.entry-content blockquote {
  margin: 32px 0;
  padding: 4px 0 4px 28px;
  border-left: 3px solid var(--gold-500);
  font-family: var(--font-serif-ui);
  font-style: italic;
  font-size: 22px;
  line-height: 1.5;
  color: var(--navy-800);
}
.entry-content blockquote p { margin-bottom: 0; }
.entry-content figure { margin: 28px 0; }
.entry-content figcaption {
  font-family: var(--font-ui);
  font-size: 12px;
  letter-spacing: 0.02em;
  color: var(--ink-500);
  margin-top: 8px;
  text-align: center;
}

/* ---- Tags ---- */
.kc-tags { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 40px; }
.kc .kc-tags a.kc-badge { text-decoration: none; transition: color var(--dur) var(--ease); }
.kc .kc-tags a.kc-badge:hover { color: var(--gold-700); }

/* ---- Footer share row ---- */
.kc-single-share-foot {
  margin-top: 36px;
  padding-top: 28px;
  border-top: 1px solid var(--sand-300);
}

/* ---- Author bio ---- */
.kc-author {
  display: flex;
  gap: 22px;
  align-items: flex-start;
  background: var(--cream-100);
  border: 1px solid var(--sand-300);
  padding: 28px;
  margin-top: 40px;
}
.kc-author__avatar img {
  width: 66px;
  height: 66px;
  border-radius: var(--radius-pill);
  display: block;
}
.kc-author__role {
  font-family: var(--font-ui);
  font-size: 11px;
  letter-spacing: var(--tracking-ui);
  text-transform: uppercase;
  color: var(--gold-600);
  margin-bottom: 4px;
}
.kc-author__name {
  font-family: var(--font-display);
  font-size: 24px;
  color: var(--navy-800);
  margin-bottom: 10px;
}
.kc-author__bio {
  font-family: var(--font-text);
  font-size: 15.5px;
  line-height: 1.6;
  color: var(--ink-700);
  margin: 0;
}

/* ---- Prev / next ---- */
.kc-postnav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  margin-top: 52px;
  padding-top: 32px;
  border-top: 1px solid var(--sand-300);
}
.kc .kc-postnav__link { text-decoration: none; border-bottom: 0; display: block; }
.kc-postnav__next { text-align: right; }
.kc-postnav__label {
  display: block;
  font-family: var(--font-ui);
  font-size: 11px;
  letter-spacing: var(--tracking-ui);
  text-transform: uppercase;
  color: var(--ink-500);
  margin-bottom: 8px;
}
.kc-postnav__title {
  display: block;
  font-family: var(--font-display);
  font-size: 18px;
  line-height: 1.3;
  color: var(--navy-800);
  transition: color var(--dur) var(--ease);
}
.kc .kc-postnav__link:hover .kc-postnav__title { color: var(--gold-600); }

/* ---- Responsive ---- */
@media (max-width: 1040px) {
  .kc-single-grid { grid-template-columns: minmax(0, 720px); }
  .kc-share-rail { display: none; }
  .kc-share-inline { display: flex; }
}
@media (max-width: 720px) {
  .kc-single-title { font-size: 36px; }
  .kc-single-media { margin-top: -56px; padding: 0 20px; }
  .kc-single-body { padding-left: 20px; padding-right: 20px; }
  .entry-content { font-size: 17px; }
  .entry-content h2 { font-size: 26px; }
  .kc-postnav { grid-template-columns: 1fr; gap: 20px; }
  .kc-postnav__next { text-align: left; }
  .kc-author { flex-direction: column; gap: 16px; }
}
@media (max-width: 520px) {
  .kc-share--row { flex-direction: column; align-items: flex-start; gap: 10px; }
}

/* Logo link: never underline on hover */
.kc a.kc-logo-link, .kc a.kc-logo-link:hover { border-bottom: 0; }
