/* moretrees — shared design system (single source of truth). Generated by tools/extract.js */
/* ============================================================
   More Trees by THG Eco — design tokens
   Single source of truth. Imported by every artifact in the system.
   ============================================================ */

/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/d04439363ec80513.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/d81372bae1f872f1.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/826f73ca737feec0.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/9dc38267bdee93a6.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/5d618c462b7a5b74.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/d04439363ec80513.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/d81372bae1f872f1.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/826f73ca737feec0.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/9dc38267bdee93a6.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/5d618c462b7a5b74.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/d04439363ec80513.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/d81372bae1f872f1.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/826f73ca737feec0.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/9dc38267bdee93a6.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/5d618c462b7a5b74.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/d04439363ec80513.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/d81372bae1f872f1.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/826f73ca737feec0.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/9dc38267bdee93a6.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/5d618c462b7a5b74.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: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url("/assets/fccca918fea40089.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: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url("/assets/aebf2ab4a4ce6810.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url("/assets/a2e2c783ca6f9c20.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url("/assets/46dd4cdca58c26ae.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: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url("/assets/8db00ff46c67b22c.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: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url("/assets/a28eb6d3ccb534ae.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: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url("/assets/c940764593d0fe5d.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: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/fccca918fea40089.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: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/aebf2ab4a4ce6810.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/a2e2c783ca6f9c20.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/46dd4cdca58c26ae.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: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/8db00ff46c67b22c.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: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/a28eb6d3ccb534ae.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: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/c940764593d0fe5d.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: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fccca918fea40089.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: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/aebf2ab4a4ce6810.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/a2e2c783ca6f9c20.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/46dd4cdca58c26ae.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: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/8db00ff46c67b22c.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: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/a28eb6d3ccb534ae.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: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/c940764593d0fe5d.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: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fccca918fea40089.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: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/aebf2ab4a4ce6810.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/a2e2c783ca6f9c20.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/46dd4cdca58c26ae.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: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/8db00ff46c67b22c.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: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/a28eb6d3ccb534ae.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: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/c940764593d0fe5d.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: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fccca918fea40089.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: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/aebf2ab4a4ce6810.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/a2e2c783ca6f9c20.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/46dd4cdca58c26ae.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: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/8db00ff46c67b22c.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: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/a28eb6d3ccb534ae.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: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/c940764593d0fe5d.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: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fccca918fea40089.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: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/aebf2ab4a4ce6810.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/a2e2c783ca6f9c20.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/46dd4cdca58c26ae.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: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/8db00ff46c67b22c.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: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/a28eb6d3ccb534ae.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: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/c940764593d0fe5d.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: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fccca918fea40089.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: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/aebf2ab4a4ce6810.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/a2e2c783ca6f9c20.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/46dd4cdca58c26ae.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: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/8db00ff46c67b22c.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: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/a28eb6d3ccb534ae.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: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/c940764593d0fe5d.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: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/fccca918fea40089.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: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/aebf2ab4a4ce6810.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/a2e2c783ca6f9c20.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/46dd4cdca58c26ae.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: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/8db00ff46c67b22c.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: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/a28eb6d3ccb534ae.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: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/c940764593d0fe5d.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 {
  /* ---------- Core palette (deck-aligned) ---------- */
  --navy:   #0B2545;   /* primary surface, board-room voice  */
  --ink:    #061A33;   /* deepest type, near-black on paper  */
  --paper:  #F6F3EC;   /* warm off-white, the canvas         */
  --white:  #FFFFFF;   /* on-navy body & headlines           */
  --leaf:   #7CC499;   /* signature accent — column highlights, ticks */
  --leaf-mid: #5FB27E; /* mid leaf, supporting accent        */
  --green:  #3B8A5A;   /* deeper green, body emphasis on paper */
  --green-deep: #2F8F5B; /* darker variant, type & strokes   */
  --moss:   #124734;   /* deep forest, large type on leaf    */
  --amber:  #FFD23F;   /* warning / attention — triangle indicators */

  /* ---------- Tonal extensions (derived, OKLCH-balanced) ---------- */
  --navy-900:   #06182E;
  --navy-800:   #0B2545;   /* alias of --navy */
  --navy-700:   #143360;
  --navy-600:   #1F4480;
  --navy-300:   #6E89B0;
  --navy-100:   #C9D3E2;

  --paper-200:  #ECE7DC;   /* card on paper, divider rule */
  --paper-300:  #DCD5C4;   /* hairline rule on paper       */
  --paper-500:  #A89F89;   /* muted body on paper          */

  --leaf-100:   #DDEEE2;
  --leaf-300:   #BFE2CC;
  --leaf-400:   #7CC499;   /* alias of --leaf — the signature */
  --leaf-500:   #5FB27E;
  --leaf-600:   #3B8A5A;   /* alias of --green */
  --leaf-700:   #2F8F5B;
  --leaf-800:   #124734;   /* alias of --moss */
  --leaf-900:   #0E2B1E;

  /* ---------- Semantic ---------- */
  --success:    #3B8A5A;
  --warning:    #C7892B;   /* warm amber, holds against paper */
  --info:       #2E5FA8;   /* cooler than navy, used sparingly */
  --danger:     #B23A3A;
  --muted:      #6F7A8A;

  /* ---------- Surfaces ---------- */
  --bg-paper:       var(--paper);
  --bg-paper-card:  #FBF9F4;
  --bg-navy:        var(--navy);
  --bg-navy-card:   #102C52;

  /* ---------- Foreground ---------- */
  --fg-on-paper:        var(--ink);
  --fg-on-paper-muted:  #4A586B;
  --fg-on-paper-soft:   #7A8492;
  --fg-on-navy:         var(--paper);
  --fg-on-navy-muted:   #B6C2D6;
  --fg-on-navy-soft:    #7E92B0;

  /* ---------- Borders ---------- */
  --rule-on-paper:      #DCD5C4;
  --rule-on-paper-soft: #E8E2D2;
  --rule-on-navy:       #1E3A66;
  --rule-on-navy-soft:  #14284D;

  /* ---------- Type families ---------- */
  --font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-display: 'Cormorant Garamond', 'Times New Roman', Georgia, serif; /* wordmark face only */
  --font-mono: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;

  /* ---------- Type scale (px) ---------- */
  --fs-display-xl: 96px;
  --fs-display-l:  72px;
  --fs-h1:         56px;
  --fs-h2:         40px;
  --fs-h3:         28px;
  --fs-h4:         22px;
  --fs-lead:       20px;
  --fs-body:       16px;
  --fs-small:      14px;
  --fs-caption:    12px;
  --fs-eyebrow:    11px;

  /* line-height */
  --lh-tight:  1.05;
  --lh-snug:   1.15;
  --lh-normal: 1.35;
  --lh-body:   1.55;
  --lh-loose:  1.7;

  /* tracking */
  --tr-tight:    -0.02em;
  --tr-normal:    0;
  --tr-eyebrow:   0.18em;
  --tr-caps:      0.08em;

  /* weight */
  --w-light:    300;
  --w-regular:  400;
  --w-medium:   500;
  --w-semi:     600;
  --w-bold:     700;
  --w-black:    800;

  /* ---------- Spacing (8px base) ---------- */
  --s-0:  0;
  --s-1:  4px;
  --s-2:  8px;
  --s-3:  12px;
  --s-4:  16px;
  --s-5:  24px;
  --s-6:  32px;
  --s-7:  48px;
  --s-8:  64px;
  --s-9:  96px;
  --s-10: 128px;
  --s-11: 160px;

  /* ---------- Radius ---------- */
  --r-0:    0;
  --r-1:    2px;
  --r-2:    4px;
  --r-3:    8px;
  --r-pill: 999px;

  /* ---------- Layout ---------- */
  --container-tight:   960px;
  --container:        1200px;
  --container-wide:   1440px;
  --slide-w:          1920px;
  --slide-h:          1080px;
  --grid-cols:           12;
  --grid-gutter:        24px;

  /* ---------- Elevation (restrained) ---------- */
  --shadow-1: 0 1px 2px rgba(6, 26, 51, 0.06);
  --shadow-2: 0 4px 16px rgba(6, 26, 51, 0.08);
  --shadow-3: 0 12px 32px rgba(6, 26, 51, 0.12);

  /* ---------- Motion ---------- */
  --ease-standard: cubic-bezier(.2, .7, .2, 1);
  --ease-out:      cubic-bezier(.16, 1, .3, 1);
  --dur-fast:    120ms;
  --dur-base:    200ms;
  --dur-slow:    320ms;
}

/* ============================================================
   Element defaults — every artifact picks these up
   ============================================================ */

html, body {
  background: var(--bg-paper);
  color: var(--fg-on-paper);
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  font-weight: var(--w-regular);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 {
  font-family: var(--font-sans);
  color: var(--fg-on-paper);
  letter-spacing: var(--tr-tight);
  line-height: var(--lh-snug);
  font-weight: var(--w-bold);
  margin: 0;
}
h1 { font-size: var(--fs-h1); line-height: var(--lh-tight); font-weight: var(--w-black); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); }
h4 { font-size: var(--fs-h4); font-weight: var(--w-semi); }

p { margin: 0 0 1em; }

/* Eyebrow tag, the unit that opens nearly every section in the brand */
.eyebrow {
  font-size: var(--fs-eyebrow);
  font-weight: var(--w-bold);
  letter-spacing: var(--tr-eyebrow);
  text-transform: uppercase;
  color: var(--green);
}

/* On-navy surfaces */
.on-navy { background: var(--bg-navy); color: var(--fg-on-navy); }
.on-navy h1, .on-navy h2, .on-navy h3, .on-navy h4 { color: var(--fg-on-navy); }
.on-navy .eyebrow { color: var(--leaf); }

/* Mono utility */
.mono { font-family: var(--font-mono); font-size: 12px; }

/* ============================================================
   Site-wide chrome for moretrees.eco
   Header, footer, buttons, eyebrows, containers, primitives.
   Pages import this after tokens.css and add their own styles.
   ============================================================ */

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body { background: var(--paper); color: var(--ink); }

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }

/* ---------- Containers ---------- */
.wrap     { max-width: 1280px; margin: 0 auto; padding: 0 56px; }
.wrap-wide { max-width: 1440px; margin: 0 auto; padding: 0 56px; }
.wrap-tight { max-width: 960px; margin: 0 auto; padding: 0 56px; }

/* ---------- Eyebrow ---------- */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--green);
}
.on-navy .eyebrow { color: var(--leaf); }
.eyebrow .dot {
  width: 6px; height: 6px;
  background: currentColor;
  border-radius: 50%;
  flex: none;
}
.eyebrow .rule {
  display: inline-block;
  width: 32px; height: 1px;
  background: currentColor;
  margin-right: 4px;
}

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 22px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.005em;
  border: 1px solid transparent;
  border-radius: 2px;
  cursor: pointer;
  text-decoration: none;
  transition:
    background var(--dur-fast) var(--ease-standard),
    color var(--dur-fast) var(--ease-standard),
    border-color var(--dur-fast) var(--ease-standard),
    transform 80ms var(--ease-standard);
}
.btn:active { transform: translateY(1px); }
.btn .arr { width: 14px; height: 14px; transition: transform var(--dur-base) var(--ease-standard); }
.btn:hover .arr { transform: translateX(3px); }

.btn--primary { background: var(--ink); color: var(--paper); }
.btn--primary:hover { background: var(--navy); }
.btn--secondary { background: transparent; color: var(--ink); border-color: var(--ink); }
.btn--secondary:hover { background: var(--ink); color: var(--paper); }
.btn--ghost { background: transparent; color: var(--ink); padding: 10px 0; border-bottom: 1px solid var(--ink); border-radius: 0; }
.btn--ghost:hover { color: var(--green); border-bottom-color: var(--green); }
.btn--accent { background: var(--green); color: var(--paper); }
.btn--accent:hover { background: var(--moss); }

.on-navy .btn--primary { background: var(--paper); color: var(--ink); }
.on-navy .btn--primary:hover { background: var(--leaf); }
.on-navy .btn--secondary { color: var(--paper); border-color: rgba(246,243,236,0.4); }
.on-navy .btn--secondary:hover { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.on-navy .btn--ghost { color: var(--paper); border-bottom-color: var(--paper); }
.on-navy .btn--ghost:hover { color: var(--leaf); border-bottom-color: var(--leaf); }

/* ---------- Header / nav ---------- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: var(--paper);
  border-bottom: 1px solid var(--rule-on-paper-soft);
  transition: background var(--dur-base) var(--ease-standard),
              border-color var(--dur-base) var(--ease-standard),
              color var(--dur-base) var(--ease-standard);
}
.site-header.on-navy { background: var(--navy); color: var(--paper); border-bottom-color: var(--rule-on-navy); }
.site-header__bar {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 40px;
  height: 72px;
  display: flex;
  align-items: center;
  gap: 32px;
}
.site-header__brand { display: flex; align-items: center; gap: 12px; }
.site-header__brand img { height: 26px; width: auto; }
.site-header__brand .tag {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--green);
  border-left: 1px solid var(--rule-on-paper);
  padding-left: 12px;
}
.site-header.on-navy .site-header__brand .tag { color: var(--leaf); border-left-color: var(--rule-on-navy); }

.site-nav { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.site-nav__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 14px;
  font-size: 14px;
  font-weight: 600;
  color: var(--fg-on-paper);
  letter-spacing: -0.005em;
  border-radius: 2px;
  position: relative;
  transition: color var(--dur-fast) var(--ease-standard);
}
.site-header.on-navy .site-nav__link { color: var(--paper); }
.site-nav__link:hover { color: var(--green); }
.site-header.on-navy .site-nav__link:hover { color: var(--leaf); }
.site-nav__link[aria-current="page"]::after {
  content: '';
  position: absolute;
  left: 14px; right: 14px; bottom: 6px;
  height: 2px;
  background: var(--green);
}
.site-header.on-navy .site-nav__link[aria-current="page"]::after { background: var(--leaf); }
.site-nav__link .caret { width: 10px; height: 10px; opacity: 0.55; }

.site-nav__dropdown {
  position: relative;
}
.site-nav__panel {
  position: absolute;
  top: calc(100% + 8px);
  left: -8px;
  min-width: 260px;
  background: var(--paper);
  border: 1px solid var(--rule-on-paper);
  box-shadow: var(--shadow-2);
  padding: 8px;
  display: none;
  z-index: 60;
}
.site-header.on-navy .site-nav__panel { background: var(--bg-navy-card); border-color: var(--rule-on-navy); }
.site-nav__dropdown:hover .site-nav__panel,
.site-nav__dropdown:focus-within .site-nav__panel { display: block; }
/* Invisible hover bridge across the 8px gap between the trigger and the panel,
   so the dropdown doesn't close while the cursor travels down onto it. */
.site-nav__panel::before {
  content: "";
  position: absolute;
  top: -8px;
  left: 0;
  right: 0;
  height: 8px;
}
.site-nav__panel a {
  display: grid;
  grid-template-columns: 1fr;
  padding: 10px 12px;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
  border-radius: 2px;
}
.site-nav__panel a small {
  display: block;
  font-size: 11px;
  font-weight: 500;
  color: var(--fg-on-paper-muted);
  letter-spacing: 0;
  text-transform: none;
  margin-top: 2px;
}
.site-header.on-navy .site-nav__panel a { color: var(--paper); }
.site-header.on-navy .site-nav__panel a small { color: var(--fg-on-navy-muted); }
.site-nav__panel a:hover { background: var(--paper-200); }
.site-header.on-navy .site-nav__panel a:hover { background: rgba(255,255,255,0.06); }

.site-header__cta { display: flex; align-items: center; gap: 12px; }
.site-header__cta .phone {
  font-size: 12px;
  font-family: var(--font-mono);
  color: var(--fg-on-paper-muted);
  letter-spacing: 0;
}
.site-header.on-navy .site-header__cta .phone { color: var(--fg-on-navy-muted); }

/* The hamburger button is injected by JS on every page but only styled to show
   inside the <=900px media query (mobile.css + per-page CSS). Hide it on desktop
   so the bare <button> doesn't render as an empty bordered rectangle. */
.site-header__burger { display: none; }

/* ---------- Footer ---------- */
.site-footer {
  background: var(--navy);
  color: var(--paper);
  padding: 96px 0 48px;
}
.site-footer__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 64px 40px 64px;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr;
  gap: 40px;
  align-items: start;
  border-bottom: 1px solid var(--rule-on-navy);
}
.site-footer__brand { display: flex; flex-direction: column; }
.site-footer h4 {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--leaf);
  margin: 0 0 20px;
}
.site-footer__brand img { height: 26px; width: auto; align-self: flex-start; margin-bottom: 20px; opacity: 0.95; }
.site-footer__brand p {
  font-size: 14px;
  color: var(--fg-on-navy-muted);
  line-height: 1.55;
  max-width: 38ch;
  margin: 0 0 24px;
}
.site-footer__brand .partner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-top: 20px;
  border-top: 1px solid var(--rule-on-navy);
  font-size: 12px;
  color: var(--fg-on-navy-soft);
  letter-spacing: 0.04em;
}
.site-footer__col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.site-footer__col a {
  font-size: 14px;
  font-weight: 500;
  color: var(--fg-on-navy-muted);
  transition: color var(--dur-fast) var(--ease-standard);
}
.site-footer__col a:hover { color: var(--leaf); }

.site-footer__base {
  max-width: 1280px;
  margin: 0 auto;
  padding: 32px 40px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  color: var(--fg-on-navy-soft);
}
.site-footer__base .links { display: flex; gap: 24px; }
.site-footer__base a:hover { color: var(--leaf); }

/* ---------- Universal primitives ---------- */
.section { padding: 120px 0; }
.section--tight { padding: 80px 0; }
.section--loose { padding: 160px 0; }

.section-head {
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 64px;
  margin-bottom: 64px;
  align-items: end;
}
.section-head__title { font-size: 56px; font-weight: 800; letter-spacing: -0.028em; line-height: 1.02; margin: 0; }
.section-head__sub { font-size: 18px; color: var(--fg-on-paper-muted); line-height: 1.55; max-width: 52ch; margin: 0; }
.on-navy .section-head__sub { color: var(--fg-on-navy-muted); }

.divider-rule {
  height: 1px;
  background: var(--rule-on-paper);
  margin: 0;
}
.on-navy .divider-rule { background: var(--rule-on-navy); }

/* ---------- Section heading w/ number ---------- */
.numhead { display: flex; align-items: baseline; gap: 24px; margin-bottom: 16px; }
.numhead .num {
  font-size: 14px;
  font-family: var(--font-mono);
  font-weight: 600;
  color: var(--green);
  letter-spacing: 0;
}
.on-navy .numhead .num { color: var(--leaf); }
.numhead .lbl {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink);
}
.on-navy .numhead .lbl { color: var(--paper); }

/* ---------- Card primitive ---------- */
.card {
  background: var(--bg-paper-card);
  border: 1px solid var(--rule-on-paper);
  padding: 32px;
  transition: border-color var(--dur-base) var(--ease-standard),
              transform var(--dur-base) var(--ease-standard);
}
.card:hover { border-color: var(--ink); }
.card--link { cursor: pointer; }
.card--link:hover { transform: translateY(-2px); }
.on-navy .card { background: var(--bg-navy-card); border-color: var(--rule-on-navy); }
.on-navy .card:hover { border-color: var(--leaf); }

/* ---------- KPI ---------- */
.kpi { display: flex; flex-direction: column; gap: 4px; }
.kpi .v { font-size: 64px; font-weight: 900; letter-spacing: -0.035em; line-height: 0.95; color: var(--ink); }
.kpi .v .u { font-size: 36px; color: var(--green); font-weight: 800; margin-left: 4px; }
.kpi .l { font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg-on-paper-soft); margin-top: 12px; }
.kpi .d { font-size: 13px; color: var(--fg-on-paper-muted); margin-top: 4px; line-height: 1.5; }
.on-navy .kpi .v { color: var(--paper); }
.on-navy .kpi .v .u { color: var(--leaf); }
.on-navy .kpi .l { color: var(--fg-on-navy-soft); }
.on-navy .kpi .d { color: var(--fg-on-navy-muted); }

/* ---------- Chips ---------- */
.chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: 999px;
  background: var(--paper-200);
  color: var(--ink);
}
.chip--leaf { background: var(--leaf-100); color: var(--leaf-800); }
.chip--navy { background: var(--navy); color: var(--paper); }
.chip--ghost { background: transparent; border: 1px solid var(--rule-on-paper); color: var(--fg-on-paper-muted); }
.on-navy .chip--ghost { border-color: var(--rule-on-navy); color: var(--fg-on-navy-muted); }

/* ---------- Tag w/ tick ---------- */
.tick-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.tick-list li {
  padding-left: 28px;
  position: relative;
  font-size: 15px;
  line-height: 1.5;
  color: var(--fg-on-paper-muted);
}
.tick-list li::before {
  content: '';
  position: absolute;
  left: 0; top: 9px;
  width: 16px; height: 8px;
  border-bottom: 1.5px solid var(--green);
  border-left: 1.5px solid var(--green);
  transform: rotate(-45deg);
  transform-origin: left;
}
.on-navy .tick-list li { color: var(--fg-on-navy-muted); }
.on-navy .tick-list li::before { border-color: var(--leaf); }

/* ---------- Reveal on scroll ---------- */
.reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.6s var(--ease-out), transform 0.6s var(--ease-out);
}
.reveal.is-in { opacity: 1; transform: none; }
.reveal[data-delay="1"] { transition-delay: 0.05s; }
.reveal[data-delay="2"] { transition-delay: 0.12s; }
.reveal[data-delay="3"] { transition-delay: 0.2s; }
.reveal[data-delay="4"] { transition-delay: 0.28s; }
.reveal[data-delay="5"] { transition-delay: 0.36s; }

/* ---------- Image slot styling base ---------- */
image-slot {
  display: block;
  background: var(--bg-navy-card);
  border: 1px solid var(--rule-on-navy);
  position: relative;
  overflow: hidden;
}
image-slot::part(placeholder) { color: var(--paper); }

/* ---------- Fillable photo overlay ----------
   Laid over an existing CSS photo by js/photo-slots.js (opt-in via
   data-slot). Empty → fully transparent, so the container's background
   photo shows through, with a subtle drop affordance on hover only.
   Filled → the user's dropped image covers the stock photo. */
image-slot.photo-fill {
  position: absolute;
  inset: 0;
  width: auto;
  height: auto;
  display: block;
  background: transparent;
  border: 0;
  z-index: 0;
}
image-slot.photo-fill::part(frame) { background: transparent; }
image-slot.photo-fill::part(ring) { display: none; }
image-slot.photo-fill::part(empty) {
  opacity: 0;
  transition: opacity 180ms var(--ease-standard);
  background: linear-gradient(0deg, rgba(6,24,46,0.62), rgba(6,24,46,0.34));
  color: var(--paper);
  gap: 8px;
}
image-slot.photo-fill[data-editable]:hover::part(empty) { opacity: 1; }

/* ---------- New photo band ----------
   A self-contained, fillable image zone for photo-light pages. Unlike an
   overlay slot, there's no stock photo behind it, so the empty state shows a
   visible "add a photo" affordance until the user drops an image. */
.photo-band { background: var(--paper); padding: 8px 0 40px; }
.photo-band--navy { background: var(--navy); }
.photo-band__inner { max-width: 1280px; margin: 0 auto; padding: 0 40px; }
.photo-band__frame {
  position: relative;
  aspect-ratio: 21 / 8;
  border-radius: 20px;
  overflow: hidden;
  background: var(--bg-paper-card);
  border: 1px solid var(--rule-on-paper);
}
.photo-band--navy .photo-band__frame { background: var(--bg-navy-card); border-color: var(--rule-on-navy); }
.photo-band__frame .caption { position: absolute; left: 22px; bottom: 18px; z-index: 2; }
.photo-band__frame image-slot.photo-fill::part(empty) {
  opacity: 1;
  background: transparent;
  color: var(--fg-on-paper-soft);
}
.photo-band__frame image-slot.photo-fill::part(ring) {
  display: block;
  border: 1.5px dashed var(--rule-on-paper);
}
.photo-band--navy .photo-band__frame image-slot.photo-fill::part(empty) { color: var(--fg-on-navy-soft); }
.photo-band--navy .photo-band__frame image-slot.photo-fill::part(ring) { border-color: var(--rule-on-navy); }
.photo-band__frame image-slot.photo-fill[data-editable]:hover::part(empty) {
  background: linear-gradient(0deg, rgba(6,24,46,0.45), rgba(6,24,46,0.25));
  color: var(--paper);
}

/* ---------- Caption (cartographic) ---------- */
.caption {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg-on-paper-soft);
}
.on-navy .caption { color: var(--leaf); }

/* ---------- Tabs (used on Integrations & Home) ---------- */
.tabs__strip {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--rule-on-paper);
  margin-bottom: 48px;
}
.on-navy .tabs__strip { border-bottom-color: var(--rule-on-navy); }
.tabs__tab {
  appearance: none;
  background: transparent;
  border: 0;
  padding: 18px 24px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.005em;
  color: var(--fg-on-paper-muted);
  cursor: pointer;
  position: relative;
  transition: color var(--dur-fast) var(--ease-standard);
}
.tabs__tab .num {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--fg-on-paper-soft);
  margin-right: 8px;
  font-weight: 500;
}
.on-navy .tabs__tab { color: var(--fg-on-navy-muted); }
.on-navy .tabs__tab .num { color: var(--leaf); }
.tabs__tab:hover { color: var(--ink); }
.on-navy .tabs__tab:hover { color: var(--paper); }
.tabs__tab[aria-selected="true"] { color: var(--ink); }
.on-navy .tabs__tab[aria-selected="true"] { color: var(--paper); }
.tabs__tab[aria-selected="true"]::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  height: 2px;
  background: var(--green);
}
.on-navy .tabs__tab[aria-selected="true"]::after { background: var(--leaf); }

.tabs__panel { display: none; }
.tabs__panel[aria-hidden="false"] { display: block; animation: fadein 320ms var(--ease-out); }
@keyframes fadein {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}

/* ---------- Accordion ---------- */
.accordion { border-top: 1px solid var(--rule-on-paper); }
.on-navy .accordion { border-top-color: var(--rule-on-navy); }
.acc-item { border-bottom: 1px solid var(--rule-on-paper); }
.on-navy .acc-item { border-bottom-color: var(--rule-on-navy); }
.acc-item__head {
  appearance: none;
  background: transparent;
  border: 0;
  width: 100%;
  padding: 28px 0;
  text-align: left;
  display: grid;
  grid-template-columns: 56px 1fr auto;
  align-items: center;
  gap: 24px;
  cursor: pointer;
  font: inherit;
}
.acc-item__num { font-family: var(--font-mono); font-size: 12px; color: var(--green); font-weight: 600; }
.on-navy .acc-item__num { color: var(--leaf); }
.acc-item__title { font-size: 22px; font-weight: 700; letter-spacing: -0.015em; color: var(--ink); }
.on-navy .acc-item__title { color: var(--paper); }
.acc-item__plus {
  width: 24px; height: 24px;
  border: 1px solid var(--ink);
  border-radius: 50%;
  display: grid; place-items: center;
  position: relative;
  transition: background var(--dur-fast) var(--ease-standard),
              transform var(--dur-base) var(--ease-standard);
}
.on-navy .acc-item__plus { border-color: var(--paper); }
.acc-item__plus::before,
.acc-item__plus::after {
  content: '';
  position: absolute;
  background: var(--ink);
  transition: opacity var(--dur-base) var(--ease-standard);
}
.on-navy .acc-item__plus::before,
.on-navy .acc-item__plus::after { background: var(--paper); }
.acc-item__plus::before { width: 10px; height: 1.5px; }
.acc-item__plus::after  { width: 1.5px; height: 10px; }
.acc-item[data-open="true"] .acc-item__plus::after { opacity: 0; }
.acc-item[data-open="true"] .acc-item__plus { transform: rotate(180deg); }
.acc-item__body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows var(--dur-slow) var(--ease-standard);
}
.acc-item[data-open="true"] .acc-item__body { grid-template-rows: 1fr; }
.acc-item__body > div {
  overflow: hidden;
  padding: 0 0 0 80px;
}
.acc-item[data-open="true"] .acc-item__body > div { padding-bottom: 32px; }
.acc-item__body p {
  font-size: 16px;
  color: var(--fg-on-paper-muted);
  line-height: 1.6;
  max-width: 64ch;
}
.on-navy .acc-item__body p { color: var(--fg-on-navy-muted); }

/* ---------- Marquee / logo strip ---------- */
.logo-strip {
  overflow: hidden;
  position: relative;
  padding: 32px 0;
}
.logo-strip::before,
.logo-strip::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 80px;
  z-index: 2;
  pointer-events: none;
}
.logo-strip::before { left: 0; background: linear-gradient(90deg, var(--paper), rgba(246,243,236,0)); }
.logo-strip::after { right: 0; background: linear-gradient(-90deg, var(--paper), rgba(246,243,236,0)); }
.on-navy .logo-strip::before { background: linear-gradient(90deg, var(--navy), rgba(11,37,69,0)); }
.on-navy .logo-strip::after { background: linear-gradient(-90deg, var(--navy), rgba(11,37,69,0)); }

.logo-strip__track {
  display: flex;
  gap: 80px;
  align-items: center;
  animation: marquee 50s linear infinite;
  width: max-content;
}
@keyframes marquee {
  to { transform: translateX(-50%); }
}
.logo-strip__item {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--fg-on-paper-soft);
  font-style: italic;
  white-space: nowrap;
  opacity: 0.7;
}
.on-navy .logo-strip__item { color: var(--fg-on-navy-muted); }


/* ---------- Footer · newsletter band + socials (pass 6) ---------- */
.site-footer__news {
  background: var(--ink);
  color: var(--paper);
  border-bottom: 1px solid var(--rule-on-navy);
  position: relative;
  overflow: hidden;
}
.site-footer__news::before {
  /* subtle eyebrow rule across the band */
  content: '';
  position: absolute;
  top: 0; left: 40px; right: 40px;
  height: 1px;
  background: rgba(124,196,153,0.18);
}
.site-footer__news-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 72px 40px;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 80px;
  align-items: center;
}
.site-footer__news-art {
  display: none; /* removed — was unbalancing the band */
}
.site-footer__news-copy .eyb {
  font-size: 11px; font-weight: 800;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--leaf);
  margin-bottom: 14px; display: inline-flex; align-items: center; gap: 12px;
}
.site-footer__news-copy .eyb::before {
  content: '';
  width: 32px; height: 1.5px;
  background: var(--leaf);
  display: inline-block;
}
.site-footer__news-copy h3 {
  font-size: 44px;
  font-weight: 700;
  letter-spacing: -0.028em;
  line-height: 0.98;
  color: var(--white);
  margin: 0 0 14px;
  text-wrap: balance;
}
.site-footer__news-copy h3 em {
  font-style: italic; font-family: var(--font-display);
  font-weight: 400; color: var(--leaf);
}
.site-footer__news-copy p {
  font-size: 15px;
  color: var(--fg-on-navy-muted);
  line-height: 1.55;
  margin: 0; max-width: 48ch;
}
.site-footer__news-form {
  display: grid;
  gap: 12px;
}
.site-footer__news-form label {
  font-size: 11px; font-weight: 800;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--leaf);
}
.site-footer__news-form .row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 6px;
  background: var(--bg-navy-card);
  border: 1px solid rgba(124,196,153,0.25);
  border-radius: 12px;
  padding: 6px;
  transition: border-color 180ms var(--ease-standard);
}
.site-footer__news-form .row:focus-within { border-color: var(--leaf); }
.site-footer__news-form input {
  background: transparent; border: 0;
  color: var(--white);
  font-size: 15px;
  font-family: inherit;
  padding: 12px 14px;
  width: 100%;
}
.site-footer__news-form input::placeholder { color: var(--fg-on-navy-soft); }
.site-footer__news-form input:focus { outline: none; }
.site-footer__news-form button {
  background: var(--leaf);
  color: var(--ink);
  border: 0; cursor: pointer;
  padding: 12px 22px;
  font: inherit;
  font-weight: 700; font-size: 13px;
  letter-spacing: 0.02em;
  border-radius: 8px;
  display: inline-flex; align-items: center; gap: 8px;
  transition: background 180ms var(--ease-standard);
}
.site-footer__news-form button:hover { background: var(--white); }
.site-footer__news-form small {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.06em;
  color: var(--fg-on-navy-soft);
}

.site-footer__socials {
  display: flex; gap: 10px;
  margin-top: 24px;
}
.site-footer__socials a {
  width: 40px; height: 40px;
  border-radius: 50%;
  border: 1px solid var(--rule-on-navy);
  background: transparent;
  color: var(--fg-on-navy-muted);
  display: grid; place-items: center;
  transition: border-color 180ms, color 180ms, background 180ms;
}
.site-footer__socials a:hover {
  border-color: var(--leaf);
  color: var(--leaf);
  background: rgba(124,196,153,0.08);
}
.site-footer__socials svg { width: 16px; height: 16px; }

/* Mobile CTA clone injected by JS — hidden on desktop, only visible
   inside the mobile drawer (see css/mobile.css for the open-state styles). */
.site-nav__cta-mobile { display: none; }

@media (max-width: 960px) {
  .site-footer__news-inner {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 56px 32px;
  }
  .site-footer__news-copy h3 { font-size: 32px; }
}


/* ============================================================
   V2 SHELL (July 2026 redesign) — header / nav / footer / announce
   Appended so legacy pages render the new shared shell. Later rules
   override the legacy shell styling above.
   ============================================================ */
/* ---------- Header / nav ---------- */
.site-header{
  position: sticky; top: 0; z-index: 50;
  background: var(--paper);
  border-bottom: 1px solid var(--rule-on-paper-soft);
  transition: background var(--dur-base) var(--ease-standard),
              border-color var(--dur-base) var(--ease-standard),
              color var(--dur-base) var(--ease-standard);
}
.site-header.on-navy{ background: var(--navy); color: var(--paper); border-bottom-color: var(--rule-on-navy); }
.site-header__bar{
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 40px;
  height: 72px;
  display: flex;
  align-items: center;
  gap: 32px;
}
.site-header__brand{ display: flex; align-items: center; gap: 12px; }
.site-header__brand img{ height: 26px; width: auto; }
.site-header__brand .tag{
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--green);
  border-left: 1px solid var(--rule-on-paper);
  padding-left: 12px;
}
.site-header.on-navy .site-header__brand .tag{ color: var(--leaf); border-left-color: var(--rule-on-navy); }
.site-nav{ display: flex; align-items: center; gap: 4px; margin-left: auto; }
.site-nav__link{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 14px;
  font-size: 14px;
  font-weight: 600;
  color: var(--fg-on-paper);
  letter-spacing: -0.005em;
  border-radius: 2px;
  position: relative;
  transition: color var(--dur-fast) var(--ease-standard);
}
.site-header.on-navy .site-nav__link{ color: var(--paper); }
.site-nav__link:hover{ color: var(--green); }
.site-header.on-navy .site-nav__link:hover{ color: var(--leaf); }
.site-nav__link[aria-current="page"]::after{
  content: '';
  position: absolute;
  left: 14px; right: 14px; bottom: 6px;
  height: 2px;
  background: var(--green);
}
.site-header.on-navy .site-nav__link[aria-current="page"]::after{ background: var(--leaf); }
.site-nav__link .caret{ width: 10px; height: 10px; opacity: 0.55; }
.site-nav__dropdown{
  position: relative;
}
.site-nav__panel{
  position: absolute;
  top: calc(100% + 8px);
  left: -8px;
  min-width: 260px;
  background: var(--paper);
  border: 1px solid var(--rule-on-paper);
  box-shadow: var(--shadow-2);
  padding: 8px;
  display: none;
  z-index: 60;
}
.site-header.on-navy .site-nav__panel{ background: var(--bg-navy-card); border-color: var(--rule-on-navy); }
.site-nav__dropdown:hover .site-nav__panel,
.site-nav__dropdown:focus-within .site-nav__panel{ display: block; }
.site-nav__panel a{
  display: grid;
  grid-template-columns: 1fr;
  padding: 10px 12px;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
  border-radius: 2px;
}
.site-nav__panel a small{
  display: block;
  font-size: 11px;
  font-weight: 500;
  color: var(--fg-on-paper-muted);
  letter-spacing: 0;
  text-transform: none;
  margin-top: 2px;
}
.site-header.on-navy .site-nav__panel a{ color: var(--paper); }
.site-header.on-navy .site-nav__panel a small{ color: var(--fg-on-navy-muted); }
.site-nav__panel a:hover{ background: var(--paper-200); }
.site-header.on-navy .site-nav__panel a:hover{ background: rgba(255,255,255,0.06); }
.site-nav__group{ font-size: 10px; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: var(--green); padding: 12px 12px 4px; }
.site-nav__group:first-child{ padding-top: 4px; }
.site-header.on-navy .site-nav__panel .site-nav__group{ color: var(--leaf); }
.site-header__cta{ display: flex; align-items: center; gap: 12px; }
.site-header__cta .phone{
  font-size: 12px;
  font-family: var(--font-mono);
  color: var(--fg-on-paper-muted);
  letter-spacing: 0;
}
.site-header.on-navy .site-header__cta .phone{ color: var(--fg-on-navy-muted); }
/* ---------- Footer ---------- */
.site-footer{
  background: var(--navy);
  color: var(--paper);
  padding: 0 0 48px;
}
.site-footer__inner{
  max-width: 1440px;
  margin: 0 auto;
  padding: 64px 40px 64px;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr;
  gap: 40px;
  align-items: start;
  border-bottom: 1px solid var(--rule-on-navy);
}
.site-footer__brand{ display: flex; flex-direction: column; }
.site-footer h4{
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--leaf);
  margin: 0 0 20px;
}
.site-footer__brand img{ height: 26px; width: auto; align-self: flex-start; margin-bottom: 20px; opacity: 0.95; }
.site-footer__brand p{
  font-size: 14px;
  color: var(--fg-on-navy-muted);
  line-height: 1.55;
  max-width: 38ch;
  margin: 0 0 24px;
}
.site-footer__brand .partner{
  display: flex;
  align-items: center;
  gap: 12px;
  padding-top: 20px;
  border-top: 1px solid var(--rule-on-navy);
  font-size: 12px;
  color: var(--fg-on-navy-soft);
  letter-spacing: 0.04em;
}
.site-footer__col ul{ list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.site-footer__col a{
  font-size: 14px;
  font-weight: 500;
  color: var(--fg-on-navy-muted);
  transition: color var(--dur-fast) var(--ease-standard);
}
.site-footer__col a:hover{ color: var(--leaf); }
.site-footer__base{
  max-width: 1440px;
  margin: 0 auto;
  padding: 32px 40px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  color: var(--fg-on-navy-soft);
}
.site-footer__base .links{ display: flex; gap: 24px; }
.site-footer__base a:hover{ color: var(--leaf); }
/* ---------- Footer · newsletter band + socials (pass 6) ---------- */
.site-footer__news{
  background: var(--ink);
  color: var(--paper);
  border-bottom: 1px solid var(--rule-on-navy);
  position: relative;
  overflow: hidden;
}
.site-footer__news::before{
  /* subtle eyebrow rule across the band */
  content: '';
  position: absolute;
  top: 0; left: 40px; right: 40px;
  height: 1px;
  background: rgba(124,196,153,0.18);
}
.site-footer__news-inner{
  max-width: 1280px;
  margin: 0 auto;
  padding: 72px 40px;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 80px;
  align-items: center;
}
.site-footer__news-art{
  display: none; /* removed — was unbalancing the band */
}
.site-footer__news-copy .eyb{
  font-size: 11px; font-weight: 800;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--leaf);
  margin-bottom: 14px; display: inline-flex; align-items: center; gap: 12px;
}
.site-footer__news-copy .eyb::before{
  content: '';
  width: 32px; height: 1.5px;
  background: var(--leaf);
  display: inline-block;
}
.site-footer__news-copy h3{
  font-size: 44px;
  font-weight: 700;
  letter-spacing: -0.028em;
  line-height: 0.98;
  color: var(--white);
  margin: 0 0 14px;
  text-wrap: balance;
}
.site-footer__news-copy h3 em{
  font-style: italic; font-family: var(--font-display);
  font-weight: 400; color: var(--leaf);
}
.site-footer__news-copy p{
  font-size: 15px;
  color: var(--fg-on-navy-muted);
  line-height: 1.55;
  margin: 0; max-width: 48ch;
}
.site-footer__news-form{
  display: grid;
  gap: 12px;
}
.site-footer__news-form label{
  font-size: 11px; font-weight: 800;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--leaf);
}
.site-footer__news-form .row{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 6px;
  background: var(--bg-navy-card);
  border: 1px solid rgba(124,196,153,0.25);
  border-radius: 12px;
  padding: 6px;
  transition: border-color 180ms var(--ease-standard);
}
.site-footer__news-form .row:focus-within{ border-color: var(--leaf); }
.site-footer__news-form input{
  background: transparent; border: 0;
  color: var(--white);
  font-size: 15px;
  font-family: inherit;
  padding: 12px 14px;
  width: 100%;
}
.site-footer__news-form input::placeholder{ color: var(--fg-on-navy-soft); }
.site-footer__news-form input:focus{ outline: none; }
.site-footer__news-form button{
  background: var(--leaf);
  color: var(--ink);
  border: 0; cursor: pointer;
  padding: 12px 22px;
  font: inherit;
  font-weight: 700; font-size: 13px;
  letter-spacing: 0.02em;
  border-radius: 8px;
  display: inline-flex; align-items: center; gap: 8px;
  transition: background 180ms var(--ease-standard);
}
.site-footer__news-form button:hover{ background: var(--white); }
.site-footer__news-form small{
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.06em;
  color: var(--fg-on-navy-soft);
}
.site-footer__socials{
  display: flex; gap: 10px;
  margin-top: 24px;
}
.site-footer__socials a{
  width: 40px; height: 40px;
  border-radius: 50%;
  border: 1px solid var(--rule-on-navy);
  background: transparent;
  color: var(--fg-on-navy-muted);
  display: grid; place-items: center;
  transition: border-color 180ms, color 180ms, background 180ms;
}
.site-footer__socials a:hover{
  border-color: var(--leaf);
  color: var(--leaf);
  background: rgba(124,196,153,0.08);
}
.site-footer__socials svg{ width: 16px; height: 16px; }
/* Mobile CTA clone injected by JS — hidden on desktop, only visible
   inside the mobile drawer (see css/mobile.css for the open-state styles). */
.site-nav__cta-mobile{ display: none; }
@media (max-width: 960px){.site-footer__news-inner{
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 56px 32px;
  }.site-footer__news-copy h3{ font-size: 32px; }}
.site-header__brand img{ height: 28px; }
/* ---------- Announce bar ---------- */
  .announce{ background: var(--ink); color: var(--paper); font-size: 12px; letter-spacing: 0.04em; }
.announce__inner{ max-width: 1440px; margin: 0 auto; padding: 10px 40px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.announce__left{ display: flex; align-items: center; gap: 16px; }
.announce .pill{ font-size: 10px; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; color: var(--leaf); padding: 3px 10px; border: 1px solid rgba(124,196,153,0.4); border-radius: 999px; }
.announce a{ color: var(--leaf); border-bottom: 1px solid rgba(124,196,153,0.35); padding-bottom: 1px; }
.announce a:hover{ color: var(--paper); border-bottom-color: var(--paper); }

/* ===== Breadcrumb styles for doc-shell pages (v2 shell patch addition) ===== */
.crumbs { background: var(--paper); border-bottom: 1px solid var(--rule-on-paper-soft); }
.crumbs__inner {
  max-width: 1440px; margin: 0 auto; padding: 14px 40px;
  display: flex; align-items: center; gap: 12px;
  font-size: 12px; color: var(--fg-on-paper-soft); letter-spacing: 0.02em;
}
.crumbs__inner a { color: var(--fg-on-paper-muted); }
.crumbs__inner a:hover { color: var(--ink); }
.crumbs__inner .sep { color: var(--paper-500); }
.crumbs__inner .cur { color: var(--ink); font-weight: 700; }
.crumbs__inner .right {
  margin-left: auto; font-family: var(--font-mono);
  font-size: 11px; color: var(--fg-on-paper-soft); letter-spacing: 0;
}

/* ===== Dropdown hover forgiveness (July 2026) =====
   The panel sits 8px below its trigger; crossing that gap used to drop :hover
   and snap the menu shut. Bridge the gap with an invisible hover extension and
   give the close a 250ms grace period so the menu tolerates pointer drift. */
@media (min-width: 901px) {
  /* Desktop-only: on mobile the panel is static inside the fixed drawer, so the
     absolutely-positioned ::before bridge anchored to the drawer and poked 8px
     past both screen edges (horizontal overflow). Hover forgiveness is
     meaningless on touch, so scope all of it to desktop widths. */
  .site-nav__panel {
    display: block;
    visibility: hidden;
    opacity: 0;
    transition: opacity 120ms ease, visibility 0s linear 250ms;
  }
  .site-nav__panel::before {
    content: "";
    position: absolute;
    left: -8px;
    right: -8px;
    top: -10px;
    height: 10px;
  }
  .site-nav__dropdown:hover .site-nav__panel,
  .site-nav__dropdown:focus-within .site-nav__panel {
    visibility: visible;
    opacity: 1;
    transition-delay: 0s, 0s;
  }
}
@media (max-width: 900px) {
  .site-nav.is-open { overflow-x: hidden; }
}
/* Mobile burger state: panels are inline and always visible when open */
.site-nav.is-open .site-nav__panel {
  visibility: visible;
  opacity: 1;
  transition: none;
}
