/* Shared reset + base typographic rhythm + buttons + utilities
   used across all home prototypes. */
/* =====================================================================
   David Ciardelli — Colors & Type tokens
   Brand: Tuscan-Maritime — warm cream + deep navy + brass accent
   ===================================================================== */

/* ---------- Webfonts ---------- */
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/73f976a9-4fd6-4c78-9652-6bd36692c4d5.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: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/6f4954b2-065a-45f3-9ea8-928194cd9349.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: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/ada3e114-fb03-47a1-9e7e-85e1ddda1e28.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: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/37f45428-4643-410f-821a-9fa80bdda62c.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: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/166621c3-7f3a-40d0-b003-79654ffcaf05.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: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/73f976a9-4fd6-4c78-9652-6bd36692c4d5.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: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/6f4954b2-065a-45f3-9ea8-928194cd9349.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: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/ada3e114-fb03-47a1-9e7e-85e1ddda1e28.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: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/37f45428-4643-410f-821a-9fa80bdda62c.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: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/166621c3-7f3a-40d0-b003-79654ffcaf05.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: italic;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/73f976a9-4fd6-4c78-9652-6bd36692c4d5.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: italic;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/6f4954b2-065a-45f3-9ea8-928194cd9349.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: italic;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/ada3e114-fb03-47a1-9e7e-85e1ddda1e28.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: italic;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/37f45428-4643-410f-821a-9fa80bdda62c.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: italic;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/166621c3-7f3a-40d0-b003-79654ffcaf05.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("../fonts/48eaba93-1944-4553-b617-538ab256f30c.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("../fonts/9a856f1d-c176-4efd-93f5-d69a71032c08.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("../fonts/e87aa7ad-7b83-4c48-9f38-c49986cee0c9.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("../fonts/019841d7-0531-4677-abd9-14cf4c4141bc.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("../fonts/f0785d78-8b35-463a-bf43-99d8570a9c60.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("../fonts/48eaba93-1944-4553-b617-538ab256f30c.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("../fonts/9a856f1d-c176-4efd-93f5-d69a71032c08.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("../fonts/e87aa7ad-7b83-4c48-9f38-c49986cee0c9.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("../fonts/019841d7-0531-4677-abd9-14cf4c4141bc.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("../fonts/f0785d78-8b35-463a-bf43-99d8570a9c60.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("../fonts/48eaba93-1944-4553-b617-538ab256f30c.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("../fonts/9a856f1d-c176-4efd-93f5-d69a71032c08.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("../fonts/e87aa7ad-7b83-4c48-9f38-c49986cee0c9.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("../fonts/019841d7-0531-4677-abd9-14cf4c4141bc.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("../fonts/f0785d78-8b35-463a-bf43-99d8570a9c60.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: 700;
  font-display: swap;
  src: url("../fonts/48eaba93-1944-4553-b617-538ab256f30c.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: 700;
  font-display: swap;
  src: url("../fonts/9a856f1d-c176-4efd-93f5-d69a71032c08.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: 700;
  font-display: swap;
  src: url("../fonts/e87aa7ad-7b83-4c48-9f38-c49986cee0c9.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: 700;
  font-display: swap;
  src: url("../fonts/019841d7-0531-4677-abd9-14cf4c4141bc.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: 700;
  font-display: swap;
  src: url("../fonts/f0785d78-8b35-463a-bf43-99d8570a9c60.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: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/dce49890-19a9-47f6-910a-e6847394d2bc.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: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/42d3c915-6b39-4dc8-82a3-5ea2ffcc9071.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: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/dce49890-19a9-47f6-910a-e6847394d2bc.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: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/42d3c915-6b39-4dc8-82a3-5ea2ffcc9071.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: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/dce49890-19a9-47f6-910a-e6847394d2bc.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: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/42d3c915-6b39-4dc8-82a3-5ea2ffcc9071.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: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/dce49890-19a9-47f6-910a-e6847394d2bc.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: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/42d3c915-6b39-4dc8-82a3-5ea2ffcc9071.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 {
  /* =========================================================
     1. PRIMITIVE COLORS — raw palette, never use directly in
     UI; always go through semantic tokens below.
     ========================================================= */

  /* Navy (Mezzanotte) — primary brand */
  --navy-900: #061727;
  --navy-800: #0A2038;
  --navy-700: #0F2A44;   /* ← brand navy */
  --navy-600: #1B3A58;
  --navy-500: #2C4E70;
  --navy-400: #4A6A8A;
  --navy-300: #7A93AE;
  --navy-200: #B4C3D2;
  --navy-100: #DCE3EB;
  --navy-50:  #EEF2F6;

  /* Brass / Gold (Ottone) — warm accent */
  --brass-900: #6E4E1E;
  --brass-800: #8B6428;
  --brass-700: #A6772E;
  --brass-600: #B9893F;   /* ← brand brass */
  --brass-500: #C8985A;
  --brass-400: #D4A85A;
  --brass-300: #E2BC81;
  --brass-200: #ECD1A7;
  --brass-100: #F4E4C7;
  --brass-50:  #FBF4E2;

  /* Cream / Carta — backgrounds (warm off-white) */
  --carta-900: #6E6552;
  --carta-700: #B8AC8E;
  --carta-500: #E4DCC6;
  --carta-300: #EFE7D3;
  --carta-200: #F2EBDA;
  --carta-100: #F5EFE3;   /* ← brand cream */
  --carta-50:  #FBF7EE;

  /* Salvia (Sage) — welfare / wellbeing accent */
  --salvia-700: #5D6E58;
  --salvia-600: #6E806A;
  --salvia-500: #7B8D74;   /* ← brand sage */
  --salvia-400: #94A48E;
  --salvia-300: #B5C0AF;
  --salvia-200: #D2DACD;
  --salvia-100: #E6EBE2;

  /* Inchiostro / Ink — text */
  --ink-900: #0E1014;
  --ink-700: #1C1E22;     /* ← body text */
  --ink-500: #4A4945;
  --ink-400: #6B6760;     /* ← pietra / muted */
  --ink-300: #948E83;
  --ink-200: #BDB6A6;
  --ink-100: #DDD7C8;

  /* Status (used sparingly — David's brand is not status-heavy) */
  --status-success: #4F7A4A;
  --status-warning: #C28A2A;
  --status-danger:  #9B3A2A;
  --status-info:    #2C5E8A;

  /* =========================================================
     2. SEMANTIC COLOR TOKENS — use these in components
     ========================================================= */

  /* Foreground */
  --fg-default:    var(--ink-700);
  --fg-strong:     var(--ink-900);
  --fg-muted:      var(--ink-400);
  --fg-subtle:     var(--ink-300);
  --fg-on-navy:    var(--carta-100);
  --fg-on-navy-muted: var(--navy-200);
  --fg-accent:     var(--brass-700);
  --fg-link:       var(--navy-700);
  --fg-link-hover: var(--brass-700);

  /* Background */
  --bg-default:    var(--carta-100);   /* the cream canvas */
  --bg-subtle:     var(--carta-50);    /* lighter cream */
  --bg-elevated:   var(--carta-50);
  --bg-inverse:    var(--navy-700);    /* navy hero/footer */
  --bg-inverse-deep: var(--navy-900);
  --bg-accent:     var(--brass-100);   /* warm callout */
  --bg-sage:       var(--salvia-100);

  /* Border */
  --border-hairline:  rgba(185, 137, 63, 0.30); /* brass at 30% */
  --border-default:   rgba(28, 30, 34, 0.12);
  --border-strong:    var(--ink-700);
  --border-inverse:   rgba(245, 239, 227, 0.18);

  /* Brand */
  --brand-primary:    var(--navy-700);
  --brand-accent:     var(--brass-600);
  --brand-canvas:     var(--carta-100);

  /* =========================================================
     3. TYPOGRAPHY — families, scale, semantic styles
     ========================================================= */

  --font-serif:  'Cormorant Garamond', 'EB Garamond', Georgia, serif;
  --font-sans:   'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono:   ui-monospace, 'JetBrains Mono', Menlo, Consolas, monospace;

  /* Modular scale — 1.250 (major third) on a 16 px base */
  --fs-12: 0.750rem;
  --fs-14: 0.875rem;
  --fs-16: 1rem;
  --fs-18: 1.125rem;
  --fs-20: 1.25rem;
  --fs-24: 1.5rem;
  --fs-28: 1.75rem;
  --fs-32: 2rem;
  --fs-40: 2.5rem;
  --fs-48: 3rem;
  --fs-56: 3.5rem;
  --fs-72: 4.5rem;
  --fs-96: 6rem;

  /* Line heights */
  --lh-tight:    1.05;
  --lh-snug:     1.2;
  --lh-normal:   1.5;
  --lh-relaxed:  1.65;

  /* Weights */
  --fw-regular:  400;
  --fw-medium:   500;
  --fw-semibold: 600;
  --fw-bold:     700;

  /* Letter spacing */
  --tracking-tight:  -0.02em;
  --tracking-normal: 0;
  --tracking-wide:   0.04em;
  --tracking-eyebrow: 0.18em;

  /* =========================================================
     4. SPACING — 4 px base, 8pt-friendly
     ========================================================= */

  --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;

  /* =========================================================
     5. RADII
     ========================================================= */

  --radius-xs:   2px;
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   12px;
  --radius-xl:   16px;
  --radius-full: 9999px;

  /* =========================================================
     6. SHADOWS
     ========================================================= */

  --shadow-1: 0 1px 2px rgba(15, 42, 68, 0.06);
  --shadow-2: 0 2px 24px rgba(15, 42, 68, 0.08);
  --shadow-3: 0 24px 60px rgba(15, 42, 68, 0.18);

  /* =========================================================
     7. MOTION
     ========================================================= */

  --ease-out:   cubic-bezier(0.2, 0.7, 0.1, 1);
  --ease-in:    cubic-bezier(0.6, 0, 0.8, 0.3);
  --ease-inout: cubic-bezier(0.4, 0, 0.2, 1);

  --dur-micro:     180ms;
  --dur-component: 320ms;
  --dur-page:      600ms;

  /* =========================================================
     8. LAYOUT
     ========================================================= */
  --container-narrow: 720px;
  --container-default: 1200px;
  --grid-gutter: 24px;
  --header-height: 72px;
}

/* =====================================================================
   SEMANTIC TYPOGRAPHY STYLES — apply directly to elements
   ===================================================================== */

.dc-display {
  font-family: var(--font-serif);
  font-weight: var(--fw-medium);
  font-size: var(--fs-72);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-tight);
  color: var(--fg-strong);
}

.dc-h1, h1.dc {
  font-family: var(--font-serif);
  font-weight: var(--fw-medium);
  font-size: var(--fs-56);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-tight);
  color: var(--fg-strong);
  margin: 0 0 var(--space-5) 0;
}

.dc-h2, h2.dc {
  font-family: var(--font-serif);
  font-weight: var(--fw-medium);
  font-size: var(--fs-40);
  line-height: var(--lh-snug);
  letter-spacing: var(--tracking-tight);
  color: var(--fg-strong);
  margin: 0 0 var(--space-4) 0;
}

.dc-h3, h3.dc {
  font-family: var(--font-serif);
  font-weight: var(--fw-medium);
  font-size: var(--fs-28);
  line-height: var(--lh-snug);
  color: var(--fg-strong);
  margin: 0 0 var(--space-3) 0;
}

.dc-h4, h4.dc {
  font-family: var(--font-sans);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-20);
  line-height: var(--lh-snug);
  color: var(--fg-strong);
  margin: 0 0 var(--space-3) 0;
}

.dc-eyebrow {
  font-family: var(--font-sans);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-12);
  text-transform: uppercase;
  letter-spacing: var(--tracking-eyebrow);
  color: var(--fg-accent);
  margin: 0 0 var(--space-3) 0;
}

.dc-lede {
  font-family: var(--font-serif);
  font-weight: var(--fw-regular);
  font-style: italic;
  font-size: var(--fs-24);
  line-height: var(--lh-relaxed);
  color: var(--fg-default);
}

.dc-body, p.dc {
  font-family: var(--font-sans);
  font-weight: var(--fw-regular);
  font-size: var(--fs-16);
  line-height: var(--lh-relaxed);
  color: var(--fg-default);
  margin: 0 0 var(--space-4) 0;
}

.dc-body-lg {
  font-family: var(--font-sans);
  font-weight: var(--fw-regular);
  font-size: var(--fs-18);
  line-height: var(--lh-relaxed);
  color: var(--fg-default);
}

.dc-small {
  font-family: var(--font-sans);
  font-weight: var(--fw-regular);
  font-size: var(--fs-14);
  line-height: var(--lh-normal);
  color: var(--fg-muted);
}

.dc-caption {
  font-family: var(--font-sans);
  font-weight: var(--fw-medium);
  font-size: var(--fs-12);
  line-height: var(--lh-normal);
  color: var(--fg-muted);
  letter-spacing: var(--tracking-wide);
}

.dc-quote {
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: var(--fw-regular);
  font-size: var(--fs-32);
  line-height: var(--lh-snug);
  color: var(--fg-strong);
}

.dc-logo {
  font-family: var(--font-serif);
  font-weight: var(--fw-medium);
  font-style: italic;
  font-size: var(--fs-24);
  letter-spacing: -0.01em;
  color: var(--brand-primary);
}

/* =====================================================================
   BASELINE — apply when wrapping a section in `.dc-root`
   ===================================================================== */

.dc-root {
  font-family: var(--font-sans);
  color: var(--fg-default);
  background: var(--bg-default);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'kern' 1, 'liga' 1;
}

.dc-root a {
  color: var(--fg-link);
  text-decoration: none;
  background-image: linear-gradient(var(--brass-600), var(--brass-600));
  background-size: 0 1px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  transition: background-size var(--dur-component) var(--ease-out),
              color var(--dur-micro) var(--ease-out);
  padding-bottom: 1px;
}

.dc-root a:hover {
  color: var(--fg-link-hover);
  background-size: 100% 1px;
}


*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-sans);
  color: var(--fg-default);
  background: var(--bg-default);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'kern' 1, 'liga' 1, 'ss01' 1;
  overflow-x: hidden;
}
img, svg, video { display: block; max-width: 100%; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
input, textarea, select { font: inherit; color: inherit; }
::selection { background: var(--brass-200); color: var(--ink-900); }

/* --- shared chrome: header --- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  height: var(--header-height);
  display: flex; align-items: center;
  padding: 0 clamp(20px, 4vw, 56px);
  background: rgba(245, 239, 227, 0);
  border-bottom: 1px solid transparent;
  transition: background var(--dur-component) var(--ease-out),
              border-color var(--dur-component) var(--ease-out),
              backdrop-filter var(--dur-component) var(--ease-out);
}
.site-header[data-scrolled="true"] {
  background: rgba(245, 239, 227, 0.92);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom-color: var(--border-hairline);
}

/* Motion and scrollbar accessibility baseline. */
:root {
  scrollbar-color: var(--brass-500) var(--carta-200);
  scrollbar-width: thin;
}

*::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}

*::-webkit-scrollbar-track {
  background: var(--carta-200);
}

*::-webkit-scrollbar-thumb {
  border: 3px solid var(--carta-200);
  border-radius: 999px;
  background: var(--brass-500);
}

*::-webkit-scrollbar-thumb:hover {
  background: var(--brass-600);
}

@media (forced-colors: active) {
  :root {
    scrollbar-color: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .v2-strip__track {
    animation: none !important;
    transform: none !important;
  }
}
.site-header__inner {
  display: flex; align-items: center; gap: var(--space-7);
  width: 100%; max-width: 1080px; margin: 0 auto;
}
.site-logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 500;
  font-size: var(--fs-24);
  letter-spacing: -0.01em;
  color: var(--brand-primary);
  text-decoration: none;
  white-space: nowrap;
}
.site-logo img {
  width: 38px;
  height: 38px;
  object-fit: contain;
  flex-shrink: 0;
}

.site-logo span {
  display: inline-block;
}

.site-nav {
  display: flex; gap: 28px; align-items: center;
  margin-left: auto;
}
.site-nav__item {
  position: relative;
  padding-bottom: 18px;
  margin-bottom: -18px;
}
.site-nav a {
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 500;
  color: var(--ink-700);
  text-decoration: none;
  position: relative;
  padding: 4px 2px;
  background-image: linear-gradient(var(--brass-600), var(--brass-600));
  background-size: 0 1.5px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  transition: background-size var(--dur-component) var(--ease-out),
              color var(--dur-micro) var(--ease-out);
}
.site-nav a:hover, .site-nav a[aria-current="page"] { background-size: 100% 1.5px; color: var(--brass-700); }
.site-nav a[aria-current="page"] { color: var(--brand-primary); }

.site-nav__dropdown {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 220px;
  padding: 12px;
  border: 1px solid var(--border-hairline);
  border-radius: 8px;
  background: rgba(251, 247, 238, 0.98);
  box-shadow: 0 18px 48px rgba(6, 23, 39, 0.12);
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
  transition: opacity var(--dur-component) var(--ease-out),
              transform var(--dur-component) var(--ease-out);
}

.site-nav__item--has-dropdown::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  height: 18px;
}

.site-nav__item--has-dropdown:hover .site-nav__dropdown,
.site-nav__item--has-dropdown:focus-within .site-nav__dropdown {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.site-nav__dropdown-link {
  display: block;
  padding: 10px 12px !important;
  border-radius: 6px;
  background-image: none !important;
  color: var(--ink-700) !important;
}

.site-nav__dropdown-link:hover,
.site-nav__dropdown-link[aria-current="page"] {
  background: rgba(15, 42, 68, 0.06);
  color: var(--brand-primary) !important;
}

:where(a, button, input, textarea, select):focus-visible {
  outline: 3px solid var(--brass-400);
  outline-offset: 3px;
}

.site-cta {
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 44px;
  padding: 10px 18px;
  background: var(--brand-primary);
  color: var(--fg-on-navy);
  border-radius: 6px;
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: background var(--dur-micro) var(--ease-out), transform var(--dur-micro) var(--ease-out);
}
.site-cta:hover { background: var(--navy-800); }
.site-cta:active { background: var(--navy-900); transform: translateY(1px); }
.site-cta--brass { background: var(--brass-600); color: var(--carta-50); }
.site-cta--brass:hover { background: var(--brass-700); }
.site-cta--ghost {
  background: transparent;
  color: var(--brand-primary);
  border: 1px solid var(--border-hairline);
}
.site-cta--ghost:hover { background: var(--carta-50); border-color: var(--brass-600); }

.menu-toggle { display: none; }

@media (max-width: 880px) {
  .site-header .site-nav,
  .site-header .site-header__inner > .site-cta { display: none; }
  .site-logo {
    gap: 8px;
    font-size: 18px;
  }
  .site-logo img {
    width: 30px;
    height: 30px;
  }
  .menu-toggle {
    display: inline-flex; align-items: center; gap: 8px;
    margin-left: auto;
    padding: 8px 12px;
    border: 1px solid var(--border-hairline);
    border-radius: var(--radius-sm);
    color: var(--ink-700);
    font-size: 13px; font-weight: 500;
  }
}

/* --- mobile menu sheet --- */
.menu-sheet {
  position: fixed; inset: 0; z-index: 100;
  background: var(--carta-100);
  display: flex; flex-direction: column;
  padding: 24px;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  transform: translateY(-8px);
  opacity: 0; pointer-events: none;
  transition: opacity var(--dur-component) var(--ease-out),
              transform var(--dur-component) var(--ease-out);
}
.menu-sheet[data-open="true"] { opacity: 1; transform: none; pointer-events: auto; }
.menu-sheet__top {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-between;
  height: var(--header-height);
  background: var(--carta-100);
}
.menu-sheet__nav { display: flex; flex-direction: column; gap: 4px; margin-top: 24px; }
.menu-sheet__nav a {
  font-family: var(--font-serif);
  font-size: 32px;
  font-style: italic;
  color: var(--brand-primary);
  text-decoration: none;
  padding: 12px 0;
  border-bottom: 1px solid var(--border-hairline);
}
.menu-sheet__nav .menu-sheet__subnav-link {
  padding: 10px 0 10px 18px;
  font-family: var(--font-sans);
  font-size: 16px;
  font-style: normal;
  color: var(--ink-500);
}
.menu-sheet__meta {
  margin-top: auto;
  padding-top: 24px;
  color: var(--ink-400);
  font-size: 14px;
  line-height: 1.7;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.menu-sheet__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.menu-sheet__meta-item svg {
  flex: 0 0 auto;
}

/* --- shared footer --- */
.site-footer {
  background: var(--navy-700);
  color: var(--fg-on-navy);
  padding: 80px clamp(20px, 4vw, 56px) 36px;
  margin: 0;
  position: relative;
  overflow: hidden;
}
.v2-cta + .site-footer {
  margin-top: 0;
}
.site-footer::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(circle at 80% 0%, rgba(185, 137, 63, 0.16), transparent 50%);
  pointer-events: none;
}
.site-footer__inner {
  position: relative;
  max-width: 1080px; margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 48px;
}
@media (max-width: 880px) { .site-footer__inner { grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px) { .site-footer__inner { grid-template-columns: 1fr; } }
.site-footer h4 {
  font-family: var(--font-sans);
  font-size: 12px; font-weight: 600;
  text-transform: uppercase; letter-spacing: var(--tracking-eyebrow);
  color: var(--brass-400);
  margin: 0 0 18px 0;
}
.site-footer ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.site-footer a {
  color: var(--carta-100);
  text-decoration: none;
  font-size: 14px;
  opacity: 0.85;
  transition: opacity var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out);
}
.site-footer a:hover { color: var(--brass-300); opacity: 1; }
.site-footer__brand {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 28px;
  margin: 0 0 12px 0;
}
.site-footer__tag {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 16px;
  color: var(--brass-300);
  opacity: 0.95;
  line-height: 1.5;
}
.site-footer__bottom {
  position: relative;
  max-width: 1080px; margin: 56px auto 0;
  padding-top: 24px;
  border-top: 1px solid var(--border-inverse);
  display: flex; justify-content: space-between; align-items: center;
  font-size: 12px; color: var(--navy-200);
  flex-wrap: wrap; gap: 12px;
}

/* --- shared section header pattern --- */
.eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-sans);
  font-size: 12px; font-weight: 600;
  text-transform: uppercase;
  letter-spacing: var(--tracking-eyebrow);
  color: var(--brass-700);
  margin: 0 0 18px 0;
}
.eyebrow::before {
  content: ""; width: 24px; height: 1px; background: var(--brass-600);
  display: inline-block;
}
.eyebrow--on-navy { color: var(--brass-300); }
.eyebrow--on-navy::before { background: var(--brass-400); }

/* --- scroll reveal --- */
.reveal {
  opacity: 0; transform: translateY(16px);
  transition: opacity 700ms var(--ease-out), transform 700ms var(--ease-out);
}
.reveal[data-visible="true"] {
  opacity: 1; transform: none;
}
.reveal[data-delay="1"] { transition-delay: 80ms; }
.reveal[data-delay="2"] { transition-delay: 160ms; }
.reveal[data-delay="3"] { transition-delay: 240ms; }
.reveal[data-delay="4"] { transition-delay: 320ms; }
.reveal[data-delay="5"] { transition-delay: 400ms; }

/* --- form fields (shared) --- */
.field { display: flex; flex-direction: column; gap: 6px; }
.field label {
  font-size: 12px; font-weight: 600;
  text-transform: uppercase;
  letter-spacing: var(--tracking-eyebrow);
  color: var(--brass-700);
}
.field input, .field textarea, .field select {
  background: transparent;
  border: 0; border-bottom: 1px solid var(--border-hairline);
  padding: 10px 0;
  font-family: var(--font-sans);
  font-size: 16px;
  color: var(--ink-700);
  outline: none;
  transition: border-color var(--dur-micro) var(--ease-out);
}
.field input:focus, .field textarea:focus, .field select:focus {
  border-bottom-color: var(--brass-600);
}
.field textarea { min-height: 100px; resize: vertical; }
.field--on-navy label { color: var(--brass-300); }
.field--on-navy input, .field--on-navy textarea, .field--on-navy select {
  color: var(--carta-100); border-bottom-color: var(--border-inverse);
}
.field--on-navy input:focus, .field--on-navy textarea:focus, .field--on-navy select:focus {
  border-bottom-color: var(--brass-400);
}

/* hide scrollbar visually but keep scroll */
.no-scrollbar { scrollbar-width: none; }
.no-scrollbar::-webkit-scrollbar { display: none; }

/* film grain texture removed for standalone export */


/* Tweaks floating panel — shared across variants */
.tweaks-panel {
  position: fixed;
  bottom: 24px; right: 24px;
  z-index: 1000;
  width: 320px;
  max-height: 70vh; overflow-y: auto;
  background: var(--carta-50);
  border: 1px solid var(--border-hairline);
  border-radius: 12px;
  box-shadow: var(--shadow-3);
  font-family: var(--font-sans);
  animation: panelIn 320ms var(--ease-out);
}
@keyframes panelIn {
  from { opacity: 0; transform: translateY(8px) scale(0.98); }
  to { opacity: 1; transform: none; }
}
.tweaks-panel__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 18px;
  border-bottom: 1px solid var(--border-hairline);
  background: var(--carta-100);
  border-radius: 12px 12px 0 0;
}
.tweaks-panel__title {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 18px;
  color: var(--navy-700);
}
.tweaks-panel__close {
  width: 28px; height: 28px;
  border-radius: 50%;
  font-size: 20px;
  color: var(--ink-400);
  display: grid; place-items: center;
  transition: background var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out);
}
.tweaks-panel__close:hover { background: var(--carta-200); color: var(--ink-700); }

.tweaks-panel__body {
  padding: 18px;
  display: flex; flex-direction: column; gap: 16px;
}
.tweak-row {
  display: flex; flex-direction: column; gap: 8px;
}
.tweak-row__label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: var(--tracking-eyebrow);
  color: var(--brass-700);
}

/* segmented control */
.seg {
  display: inline-flex;
  background: var(--carta-100);
  border: 1px solid var(--border-hairline);
  border-radius: 6px;
  padding: 3px;
  gap: 2px;
}
.seg__opt {
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 500;
  color: var(--ink-500);
  border-radius: 4px;
  transition: background var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out);
  white-space: nowrap;
}
.seg__opt:hover { color: var(--ink-700); }
.seg__opt.is-active {
  background: var(--navy-700);
  color: var(--carta-100);
}

/* toggle */
.tgl {
  width: 40px; height: 22px;
  background: var(--carta-500);
  border-radius: 11px;
  position: relative;
  transition: background var(--dur-micro) var(--ease-out);
}
.tgl.is-on { background: var(--navy-700); }
.tgl__dot {
  position: absolute; top: 2px; left: 2px;
  width: 18px; height: 18px;
  background: var(--carta-50);
  border-radius: 50%;
  transition: transform var(--dur-component) var(--ease-out);
}
.tgl.is-on .tgl__dot { transform: translateX(18px); }

/* swatches */
.swatches {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 6px;
}
.swatch {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 8px;
  border: 1px solid var(--border-hairline);
  border-radius: 6px;
  background: var(--carta-50);
  transition: border-color var(--dur-micro) var(--ease-out), background var(--dur-micro) var(--ease-out);
}
.swatch:hover { border-color: var(--brass-600); }
.swatch.is-active { border-color: var(--navy-700); background: var(--carta-100); }
.swatch__chip {
  width: 18px; height: 18px;
  border-radius: 4px;
  border: 1px solid var(--border-default);
}
.swatch__label {
  font-size: 12px;
  color: var(--ink-700);
}



/* ==========================================================
   V2 — MARITIME TRUST
   Navy-dominant, premium financial advisor with maritime soul.
   Big photographic hero, tabbed areas, bold brass accents.
   ========================================================== */

.v2 { background: var(--carta-100); color: var(--ink-700); }

/* Header on dark hero -- inverted */
.v2 .site-header { background: transparent; }
.v2 .site-header[data-scrolled="true"] {
  background: rgba(15, 42, 68, 0.88);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom-color: rgba(185, 137, 63, 0.32);
}
.v2 .site-logo { color: var(--carta-100); }
.v2 .site-logo b { color: var(--brass-300); }
.v2 .site-nav a { color: var(--carta-100); }
.v2 .site-nav a:hover, .v2 .site-nav a[aria-current="page"] { color: var(--brass-300); }
.v2 .site-cta { background: var(--brass-600); color: var(--carta-50); }
.v2 .site-cta:hover { background: var(--brass-700); }
.v2 .menu-toggle { color: var(--carta-100); border-color: rgba(245,239,227,0.24); }
.v2 .menu-sheet .menu-toggle {
  color: var(--ink-700);
  border-color: var(--border-hairline);
}

/* ====== HERO ====== */
.v2-hero {
  position: relative;
  min-height: 820px;
  margin-top: calc(-1 * var(--header-height));
  padding-top: var(--header-height);
  background: var(--navy-900);
  overflow: hidden;
  color: var(--carta-100);
}
.admin-bar .v2-hero {
  margin-top: calc(-1 * (var(--header-height) + 32px));
  padding-top: calc(var(--header-height) + 32px);
}
.v2-hero__bg {
  position: absolute; inset: 0;
  background-image: url("../img/hero-background.jpg");
  background-size: cover;
  background-position: center;
  filter: brightness(0.6) saturate(0.85);
  transform: scale(1.04);
  animation: heroBgIn 1800ms var(--ease-out);
}
@keyframes heroBgIn {
  from { transform: scale(1.12); opacity: 0; }
  to { transform: scale(1.04); opacity: 1; }
}
.v2-hero__veil {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(6, 23, 39, 0.55) 0%, rgba(6, 23, 39, 0.4) 35%, rgba(6, 23, 39, 0.92) 100%),
    linear-gradient(90deg, rgba(15, 42, 68, 0.85) 0%, rgba(15, 42, 68, 0.3) 60%, transparent 100%);
}
.v2-hero__inner {
  position: relative;
  max-width: 1080px; margin: 0 auto;
  padding: 64px clamp(20px, 4vw, 56px) 72px;
  display: grid;
  grid-template-columns: 1.4fr 0.85fr;
  gap: 72px;
  min-height: 740px;
  align-items: end;
}
.v2-hero__rail {
  position: absolute;
  left: clamp(20px, 4vw, 56px); top: 30%;
  display: flex; flex-direction: column; gap: 20px;
  font-family: var(--font-sans); font-size: 11px;
  font-weight: 600; text-transform: uppercase; letter-spacing: var(--tracking-eyebrow);
  color: var(--brass-300);
  writing-mode: vertical-rl; transform: rotate(180deg);
}
.v2-hero__rail::before { content: ""; width: 1px; height: 56px; background: var(--brass-400); }

.v2-hero__eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 12px; font-weight: 600;
  text-transform: uppercase; letter-spacing: var(--tracking-eyebrow);
  color: var(--brass-300);
  margin: 0 0 28px 0;
}
.v2-hero__eyebrow::before { display: none; }
.v2-hero__h1 {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: clamp(44px, 6vw, 92px);
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--carta-100);
  margin: 0;
  text-wrap: balance;
}
.v2-hero__h1 em {
  font-style: italic;
  position: relative;
  color: var(--brass-300);
  white-space: nowrap;
}
.v2-hero__h1 em::after {
  content: ""; position: absolute;
  left: 0; right: 0; bottom: 4px;
  height: 4px;
  background: var(--brass-500);
  opacity: 0.4;
  z-index: -1;
}
.v2-hero__lede {
  font-family: var(--font-sans);
  font-size: clamp(16px, 1.3vw, 19px);
  line-height: 1.65;
  color: var(--navy-100);
  max-width: 52ch;
  margin: 32px 0 36px 0;
}
.v2-hero__actions { display: flex; gap: 16px; flex-wrap: wrap; }
.v2-hero__actions .ghost {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 20px;
  border: 1px solid rgba(245, 239, 227, 0.35);
  border-radius: var(--radius-sm);
  color: var(--carta-100);
  font-size: 14px; font-weight: 500;
  text-decoration: none;
  transition: all var(--dur-micro) var(--ease-out);
}
.v2-hero__actions .ghost:hover { border-color: var(--brass-400); background: rgba(245, 239, 227, 0.06); }

.v2-hero__stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-top: 64px;
  padding-top: 32px;
  border-top: 1px solid rgba(185, 137, 63, 0.34);
}
.v2-stat__num {
  font-family: var(--font-serif);
  font-weight: 400;
  font-style: italic;
  font-size: clamp(36px, 4vw, 56px);
  line-height: 1;
  color: var(--brass-300);
}
.v2-stat__num small { font-size: 0.5em; font-style: normal; vertical-align: 8px; opacity: 0.7; }
.v2-stat__label {
  font-size: 12px; font-weight: 600;
  text-transform: uppercase; letter-spacing: var(--tracking-eyebrow);
  color: var(--navy-200);
  margin-top: 8px;
}

/* Right column: portrait + meta card */
.v2-hero__card {
  align-self: end;
  background: rgba(245, 239, 227, 0.06);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(185, 137, 63, 0.34);
  border-radius: 4px;
  padding: 28px;
  display: flex; flex-direction: column; gap: 20px;
}
.v2-hero__card-portrait {
  aspect-ratio: 4/5;
  border-radius: 2px;
  overflow: hidden;
  background: var(--navy-700);
  position: relative;
}
.v2-hero__card-portrait image-slot { width: 100%; height: 100%; }
.v2-hero__card-name {
  font-family: var(--font-serif);
  font-weight: 500;
  font-style: italic;
  font-size: 24px;
  color: var(--carta-100);
}
.v2-hero__card-role {
  font-size: 12px; font-weight: 600;
  text-transform: uppercase; letter-spacing: var(--tracking-eyebrow);
  color: var(--brass-300);
  margin-top: 6px;
}
.v2-hero__card-meta {
  display: grid; gap: 10px;
  font-size: 13px; color: var(--navy-100);
  padding-top: 16px;
  border-top: 1px solid rgba(185, 137, 63, 0.28);
}
.v2-hero__card-meta div { display: flex; gap: 10px; align-items: center; }
.v2-hero__card-meta b { color: var(--carta-100); font-weight: 600; }
.v2-strip__icon-label,
.v2-tab__label--with-icon {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.v2-strip__icon-label svg,
.v2-tab__label--with-icon svg,
.v2-hero__card-meta svg {
  flex: 0 0 auto;
}

@media (max-width: 980px) {
  .v2-hero__inner { grid-template-columns: 1fr; padding-top: 120px; }
  .v2-hero__rail { display: none; }
}

/* ====== TRUST STRIP ====== */
.v2-strip {
  background: var(--navy-800);
  color: var(--carta-100);
  padding: 24px clamp(20px, 4vw, 56px);
  border-bottom: 1px solid rgba(185, 137, 63, 0.22);
}
.v2-strip__inner {
  max-width: 1080px; margin: 0 auto;
  display: flex; align-items: center; gap: 48px;
}
.v2-strip__label {
  flex: 0 0 auto;
  margin: 0;
  font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: var(--tracking-eyebrow);
  color: var(--brass-300);
}
.v2-strip__marquee {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
}
.v2-strip__track {
  display: flex;
  align-items: center;
  gap: 0;
  width: max-content;
  animation: dc-marquee 28s linear infinite;
}
.v2-strip__marquee:hover .v2-strip__track,
.v2-strip__marquee:focus-within .v2-strip__track {
  animation-play-state: paused;
}
.v2-strip__logos {
  display: flex; gap: 32px; flex-wrap: nowrap; align-items: center;
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 18px;
  color: var(--navy-100);
}
.v2-strip__logos span {
  position: relative; padding-right: 32px; flex: 0 0 auto;
}
.v2-strip__logos span:first-child {
  padding-left: 32px;
}
.v2-strip__logos span:first-child::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 1px;
  height: 14px;
  background: rgba(185, 137, 63, 0.32);
  transform: translateY(-50%);
}
.v2-strip__logo-mark {
  display: inline-flex;
  align-items: center;
}

.v2-strip__logo-mark img {
  display: block;
  height: 34px;
  width: auto;
  object-fit: contain;
}
.v2-strip__logo-mark--wide img {
  height: 42px;
}
.v2-strip__logos span:not(:last-child)::after {
  content: ""; position: absolute; right: 0; top: 50%;
  width: 1px; height: 14px;
  background: rgba(185, 137, 63, 0.32);
  transform: translateY(-50%);
}
@keyframes dc-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* ====== SECTION ====== */
.v2-section {
  padding: clamp(80px, 9vw, 128px) clamp(20px, 4vw, 56px);
  max-width: 1080px; margin: 0 auto;
}
.v2-section--navy {
  background: var(--navy-700);
  color: var(--carta-100);
  max-width: none;
  margin: 0;
  position: relative;
  overflow: hidden;
}
.v2-section--navy > * { max-width: 1080px; margin-inline: auto; }
.v2-section--navy::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(circle at 90% 10%, rgba(185, 137, 63, 0.12), transparent 50%);
  pointer-events: none;
}
.v2-section--navy > * { position: relative; }
.v2-section__head {
  display: block;
  margin-bottom: 64px;
}
.v2-section__title {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: clamp(36px, 4.4vw, 60px);
  line-height: 1.04;
  letter-spacing: -0.02em;
  margin: 0 0 20px 0;
  text-wrap: balance;
}
.v2-section--navy .v2-section__title { color: var(--carta-100); }
.v2-section:not(.v2-section--navy) .v2-section__title { color: var(--ink-900); }
.v2-section__title em { font-style: italic; color: var(--brass-600); }
.v2-section--navy .v2-section__title em { color: var(--brass-300); }
.v2-section__lede {
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 1.65;
  max-width: 48ch;
  margin: 0;
}
.v2-section--navy .v2-section__lede { color: var(--navy-100); }
.v2-section:not(.v2-section--navy) .v2-section__lede { color: var(--ink-500); }
@media (max-width: 880px) {
  .v2-section__head { margin-bottom: 40px; }
}

/* ====== INTRO (about teaser) ====== */
.v2-intro {
  padding: clamp(64px, 9vw, 112px) clamp(20px, 4vw, 56px);
  max-width: 1080px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1.4fr; gap: 80px;
  align-items: center;
}
.v2-intro__img {
  position: relative;
  aspect-ratio: 3/4;
  border-radius: 4px;
  overflow: hidden;
  background: var(--navy-700);
}
.v2-intro__img img { width: 100%; height: 100%; object-fit: cover; }
.v2-intro__img-tag {
  position: absolute; left: 16px; bottom: 16px;
  padding: 8px 12px;
  background: rgba(15, 42, 68, 0.78);
  color: var(--carta-100);
  border-left: 2px solid var(--brass-500);
  border-radius: 2px;
  font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: var(--tracking-eyebrow);
}
.v2-intro__sig {
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 500;
  font-size: 22px;
  color: var(--brass-700);
  margin: 24px 0 0 0;
  text-align: right;
}
.v2-intro p {
  font-size: 17px; line-height: 1.7; color: var(--ink-500);
}
.v2-intro h2,
.v2-intro h3 {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: clamp(32px, 3.6vw, 48px);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--ink-900);
  margin: 0 0 24px 0;
}
.v2-intro .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--brass-700);
  margin: 0 0 18px 0;
}
.v2-intro h2 em,
.v2-intro h3 em { font-style: italic; color: var(--brass-700); }
@media (max-width: 880px) { .v2-intro { grid-template-columns: 1fr; gap: 32px; } }

/* ====== AREE — Tabbed ====== */
.v2-areas-tabs {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 56px;
  align-items: start;
}
.v2-tablist { display: flex; flex-direction: column; }
.v2-tab {
  width: 100%;
  text-align: left;
  padding: 18px 0;
  border-bottom: 1px solid var(--border-hairline);
  display: grid;
  grid-template-columns: 36px 1fr 12px;
  align-items: baseline;
  gap: 12px;
  transition: padding var(--dur-component) var(--ease-out), color var(--dur-micro) var(--ease-out);
  color: var(--navy-100);
}
.v2-tab__n {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 18px;
  color: var(--brass-700);
  font-weight: 400;
}
.v2-tab__label {
  font-family: var(--font-serif);
  font-size: 22px;
  line-height: 1.15;
  font-weight: 500;
}
.v2-tab__arrow { opacity: 0; transition: opacity var(--dur-micro) var(--ease-out); color: var(--brass-700); }
.v2-tab:hover {
  padding-left: 4px;
  color: var(--carta-100);
}
.v2-tab:hover .v2-tab__arrow { opacity: 1; }
.v2-tab.is-active,
.v2-tab[aria-selected="true"] {
  color: var(--carta-100);
  padding-left: 0;
  border-bottom-color: var(--brand-primary);
}
.v2-tab.is-active .v2-tab__label,
.v2-tab.is-active .v2-tab__arrow,
.v2-tab[aria-selected="true"] .v2-tab__label,
.v2-tab[aria-selected="true"] .v2-tab__arrow {
  color: var(--carta-100) !important;
  opacity: 1;
}
.v2-tab.is-active .v2-tab__n,
.v2-tab[aria-selected="true"] .v2-tab__n { color: var(--brass-700) !important; }

.v2-tabpanel {
  position: relative;
  background: var(--carta-50);
  border: 1px solid var(--border-hairline);
  border-radius: 6px;
  overflow: hidden;
  min-height: 560px;
  height: 560px;
}
.v2-tabpanel__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 100%;
  height: 100%;
}
.v2-tabpanel__grid[hidden] {
  display: none !important;
}
.v2-tabpanel__media {
  position: relative;
  background: var(--navy-700);
  min-height: 100%;
  height: 100%;
  overflow: hidden;
}
.v2-tabpanel__media img {
  width: 100%; height: 100%; object-fit: cover; object-position: center center;
  animation: fadeUp 600ms var(--ease-out);
}
.v2-tabpanel__media--simulation img { object-position: center center; }
@keyframes fadeUp { from { opacity: 0; transform: scale(1.04); } to { opacity: 1; transform: none; } }
.v2-tabpanel__tag {
  position: absolute; left: 18px; top: 18px;
  padding: 6px 12px;
  background: rgba(15, 42, 68, 0.85);
  color: var(--carta-100);
  border-left: 2px solid var(--brass-400);
  font-size: 10px; font-weight: 600;
  text-transform: uppercase; letter-spacing: var(--tracking-eyebrow);
}
.v2-tabpanel__body {
  padding: 36px 36px 36px 40px;
  display: flex; flex-direction: column; gap: 16px;
  min-height: 100%;
  height: 100%;
  animation: fadeUp 500ms var(--ease-out);
}
.v2-tabpanel__title {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 30px;
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: var(--ink-900);
  margin: 0;
}
.v2-tabpanel__title em { font-style: italic; color: var(--brass-700); }
.v2-tabpanel__body p {
  font-size: 15px; line-height: 1.65;
  color: var(--ink-500);
  margin: 0;
}
.v2-tabpanel__items {
  list-style: none; padding: 0; margin: 8px 0 0 0;
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px;
}
.v2-tabpanel__items li {
  font-size: 14px; color: var(--ink-700);
  padding-left: 18px; position: relative;
}
.v2-tabpanel__items li::before {
  content: ""; position: absolute; left: 0; top: 9px;
  width: 8px; height: 1px; background: var(--brass-600);
}
.v2-tabpanel__cta {
  margin-top: auto;
  align-self: flex-start;
  display: inline-flex; gap: 8px; align-items: center;
  padding: 10px 16px;
  background: var(--brand-primary);
  color: var(--carta-100);
  border-radius: var(--radius-sm);
  font-size: 14px; font-weight: 600;
  text-decoration: none;
  transition: background var(--dur-micro) var(--ease-out);
}
.v2-tabpanel__cta:hover { background: var(--navy-800); }
.v2-tabpanel__cta--brass { background: var(--brass-600); }
.v2-tabpanel__cta--brass:hover { background: var(--brass-700); }

@media (max-width: 880px) {
  .v2-areas-tabs { grid-template-columns: 1fr; }
  .v2-tab:hover { padding-left: 0; }
  .v2-tabpanel__grid { grid-template-columns: 1fr; }
  .v2-tabpanel {
    min-height: 0;
    height: auto;
  }
  .v2-tabpanel__grid,
  .v2-tabpanel__media,
  .v2-tabpanel__body {
    min-height: 0;
    height: auto;
  }
}

/* ====== METHOD — horizontal stepper ====== */
.v2-method-stepper {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1px;
  background: rgba(185, 137, 63, 0.34);
  border: 1px solid rgba(185, 137, 63, 0.34);
  border-radius: 4px;
  overflow: hidden;
}
.v2-step2 {
  background: var(--navy-700);
  padding: 32px 24px;
  display: flex; flex-direction: column; gap: 12px;
  position: relative;
  transition: background var(--dur-component) var(--ease-out);
}
.v2-step2:hover { background: var(--navy-600); }
.v2-step2__n {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 14px;
  color: var(--brass-300);
}
.v2-step2__t {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 22px;
  line-height: 1.1;
  color: var(--carta-100);
  margin: 0;
}
.v2-step2__b {
  font-size: 13px; line-height: 1.55;
  color: var(--navy-100);
  margin: 0;
}
@media (max-width: 980px) {
  .v2-method-stepper { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 540px) {
  .v2-method-stepper { grid-template-columns: 1fr; }

  .v2-step2 {
    text-align: center;
    align-items: center;
  }
}

/* Aegit panel (inside method) */
.v2-aegit {
  margin-top: 56px;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 48px;
  align-items: center;
  background: var(--brass-50);
  border: 1px solid var(--border-hairline);
  border-radius: 4px;
  padding: 40px;
  position: relative;
  overflow: hidden;
}
.v2-section--navy .v2-aegit { background: rgba(245, 239, 227, 0.06); border-color: rgba(185, 137, 63, 0.32); }
.v2-aegit__eyebrow {
  font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: var(--tracking-eyebrow);
  color: var(--brass-700);
  margin-bottom: 12px;
}
.v2-section--navy .v2-aegit__eyebrow { color: var(--brass-300); }
.v2-aegit__title {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: clamp(26px, 2.6vw, 34px);
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: var(--ink-900);
  margin: 0 0 12px 0;
}
.v2-section--navy .v2-aegit__title { color: var(--carta-100); }
.v2-aegit__title em { font-style: italic; color: var(--brass-700); }
.v2-section--navy .v2-aegit__title em { color: var(--brass-300); }
.v2-aegit__body {
  font-size: 15px; line-height: 1.65;
  color: var(--ink-500);
  margin: 0 0 20px 0;
}
.v2-section--navy .v2-aegit__body { color: var(--navy-100); }

.v2-aegit__radar {
  position: relative;
  aspect-ratio: 1;
  max-width: 360px;
  margin: 0 auto;
}
.v2-aegit__radar svg { width: 100%; height: 100%; }

@media (max-width: 880px) {
  .v2-aegit { grid-template-columns: 1fr; padding: 28px; }
}

/* ====== STORIE (cards w/ category filter) ====== */
.v2-stories {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.v2-story {
  background: var(--carta-50);
  border: 1px solid var(--border-hairline);
  border-radius: 4px;
  padding: 28px;
  display: flex; flex-direction: column;
  transition: transform var(--dur-component) var(--ease-out), border-color var(--dur-component) var(--ease-out);
}
.v2-story:hover { transform: translateY(-3px); border-color: var(--brass-600); }
.v2-story__cat {
  font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: var(--tracking-eyebrow);
  color: var(--brass-700);
  margin-bottom: 16px;
  display: flex; align-items: center; gap: 8px;
}
.v2-story__cat::before { content: ""; width: 16px; height: 1px; background: var(--brass-600); }
.v2-story__q {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 18px;
  line-height: 1.4;
  color: var(--ink-900);
  margin: 0 0 24px 0;
}
.v2-story__meta {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--border-hairline);
  display: flex; align-items: center; gap: 12px;
}
.v2-story__avatar {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--navy-700);
  color: var(--carta-100);
  display: grid; place-items: center;
  font-family: var(--font-serif); font-style: italic;
  font-size: 16px;
  overflow: hidden;
  flex-shrink: 0;
}
.v2-story__avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.v2-story__name { font-size: 13px; font-weight: 600; color: var(--ink-900); }
.v2-story__role { font-size: 12px; color: var(--ink-400); margin-top: 2px; }
@media (max-width: 880px) { .v2-stories { grid-template-columns: 1fr; } }

/* ====== EVENTI (featured + grid) ====== */
.v2-eventi {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 32px;
  align-items: stretch;
}
.v2-event-featured {
  position: relative;
  border-radius: 4px;
  overflow: hidden;
  min-height: 540px;
  height: 100%;
  background: var(--navy-700);
}
.v2-event-featured__img {
  position: absolute; inset: 0;
}
.v2-event-featured__img img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1500ms var(--ease-out);
}
.v2-event-featured:hover .v2-event-featured__img img { transform: scale(1.04); }
.v2-event-featured__veil {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 30%, rgba(6, 23, 39, 0.88) 100%);
}
.v2-event-featured__body {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 36px;
  color: var(--carta-100);
}
.v2-event-featured__date {
  font-size: 12px; font-weight: 600;
  text-transform: uppercase; letter-spacing: var(--tracking-eyebrow);
  color: var(--brass-300);
  margin-bottom: 10px;
}
.v2-event-featured__title {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.1;
  margin: 0 0 16px 0;
  max-width: 28ch;
}
.v2-event-featured__cta {
  display: inline-flex; gap: 8px; align-items: center;
  padding: 10px 16px;
  background: var(--brass-600);
  color: var(--carta-50);
  border-radius: var(--radius-sm);
  text-decoration: none;
  font-size: 14px; font-weight: 600;
  transition: background var(--dur-micro) var(--ease-out);
}
.v2-event-featured__cta:hover { background: var(--brass-700); }

.v2-event-list {
  display: grid;
  grid-template-rows: repeat(3, 1fr);
  gap: 16px;
  min-height: 540px;
  height: 100%;
}
.v2-event-row {
  display: grid;
  grid-template-columns: 120px 1fr auto;
  gap: 20px;
  align-items: center;
  padding: 20px;
  background: var(--carta-50);
  border: 1px solid var(--border-hairline);
  border-radius: 4px;
  transition: border-color var(--dur-component) var(--ease-out), transform var(--dur-component) var(--ease-out);
  text-decoration: none;
  min-height: 0;
}
.v2-event-row:hover { border-color: var(--brass-600); transform: translateX(2px); }
.v2-event-row__date {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 14px;
  color: var(--brass-700);
  text-align: right;
  border-right: 1px solid var(--border-hairline);
  padding-right: 20px;
}
.v2-event-row__date b {
  display: block;
  font-family: var(--font-serif);
  font-style: normal;
  font-weight: 500;
  font-size: 28px;
  color: var(--ink-900);
  letter-spacing: -0.01em;
}
.v2-event-row__title {
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 500;
  color: var(--ink-900);
  margin: 0;
  line-height: 1.2;
}
.v2-event-row__kicker {
  font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: var(--tracking-eyebrow);
  color: var(--brass-700);
  margin-bottom: 4px;
}
.v2-event-row__arrow { color: var(--brass-700); }

@media (max-width: 880px) {
  .v2-eventi { grid-template-columns: 1fr; }
  .v2-event-featured {
    min-height: 360px;
    height: auto;
  }
  .v2-event-list {
    grid-template-rows: auto;
    min-height: 0;
    height: auto;
  }
}

/* ====== CTA ====== */
.v2-cta {
  background: var(--navy-700);
  color: var(--carta-100);
  padding: clamp(80px, 9vw, 128px) clamp(20px, 4vw, 56px);
  position: relative;
  overflow: hidden;
}
.v2-cta__bg {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0.18;
  filter: brightness(0.6);
}
.v2-cta__inner {
  position: relative;
  max-width: 1080px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1.1fr; gap: 80px;
}
.v2-cta h3 {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: clamp(40px, 5vw, 64px);
  line-height: 1.04;
  letter-spacing: -0.02em;
  margin: 0;
  text-wrap: balance;
}
.v2-cta .eyebrow {
  margin: 0 0 18px 0;
}
.v2-cta h3 em { font-style: italic; color: var(--brass-300); }
.v2-cta__lede {
  font-family: var(--font-sans);
  font-size: 18px;
  line-height: 1.65;
  color: var(--navy-100);
  margin: 28px 0;
}
.v2-cta__meta {
  display: grid;
  grid-template-columns: auto 1fr;
  row-gap: 14px; column-gap: 20px;
  padding-top: 24px;
  border-top: 1px solid rgba(185, 137, 63, 0.34);
  font-size: 14px;
}
.v2-cta__meta dt {
  font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: var(--tracking-eyebrow);
  color: var(--brass-300);
}
.v2-cta__meta dd { margin: 0; color: var(--carta-100); }
.v2-cta__form-wrap {
  background: rgba(245, 239, 227, 0.06);
  border: 1px solid rgba(185, 137, 63, 0.32);
  border-radius: 4px;
  padding: 36px;
}
@media (max-width: 880px) { .v2-cta__inner { grid-template-columns: 1fr; gap: 40px; } }

/* density */
.v2[data-density="compact"] .v2-section { padding-top: 64px; padding-bottom: 64px; }
.v2[data-density="compact"] .v2-intro { padding-top: 48px; padding-bottom: 48px; }
.v2[data-density="compact"] .v2-hero__inner { padding-top: 100px; padding-bottom: 56px; }

/* hero variant */
.v2[data-hero="centered"] .v2-hero__inner {
  grid-template-columns: 1fr;
  justify-items: center; text-align: center;
}
.v2[data-hero="centered"] .v2-hero__lede { margin-left: auto; margin-right: auto; }
.v2[data-hero="centered"] .v2-hero__actions { justify-content: center; }
.v2[data-hero="centered"] .v2-hero__stats { max-width: 720px; }
.v2[data-hero="centered"] .v2-hero__card { display: none; }
.v2[data-hero="centered"] .v2-hero__eyebrow { justify-content: center; }

.v2-hero__inner > div,
.v2-strip__logos span,
.v2-tab,
.v2-tab__label,
.v2-tabpanel__body,
.v2-tabpanel__items li,
.v2-event-row > div,
.v2-event-row__title,
.v2-cta__inner > div,
.v2-cta__meta dd,
.site-footer__bottom > div {
  min-width: 0;
}

.v2-hero__h1,
.v2-hero__lede,
.v2-tab__label,
.v2-tabpanel__title,
.v2-event-featured__title,
.v2-event-row__title,
.site-footer a,
.site-footer__bottom {
  overflow-wrap: anywhere;
}

@media (max-width: 680px) {
  .admin-bar .v2-hero {
    margin-top: calc(-1 * (var(--header-height) + 46px));
    padding-top: calc(var(--header-height) + 46px);
  }

  .v2-hero {
    min-height: auto;
  }

  .v2-hero__inner {
    min-height: 0;
    gap: 32px;
    padding: 96px 20px 52px;
    align-items: start;
  }

  .v2-hero__eyebrow {
    margin-bottom: 20px;
  }

  .v2-hero__h1 {
    font-size: clamp(36px, 11.5vw, 54px);
    line-height: 1.04;
  }

  .v2-hero__lede {
    max-width: 100%;
    margin: 24px auto 28px;
  }

  .v2-hero__actions {
    width: 100%;
    flex-direction: column;
    gap: 12px;
  }

  .v2-hero__actions .site-cta,
  .v2-hero__actions .ghost {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  .v2-hero__stats {
    gap: 18px 16px;
    margin-top: 40px;
    padding-top: 24px;
  }

  .v2-strip {
    padding-top: 20px;
    padding-bottom: 20px;
  }

  .v2-strip__inner {
    gap: 18px;
    align-items: center;
  }

  .v2-strip__track {
    animation-duration: 24s;
  }

  .v2-strip__logos {
    gap: 20px;
    font-size: 16px;
  }

  .v2-strip__logos span {
    padding-right: 0;
  }

  .v2-strip__logo-mark {
    justify-content: flex-start;
  }

  .v2-strip__logo-mark img {
    height: 30px;
  }
  .v2-strip__logo-mark--wide img {
    height: 36px;
  }

  .v2-strip__logos span:not(:last-child)::after {
    display: none;
  }

  .v2-intro {
    padding-top: 56px;
    padding-bottom: 56px;
  }

  .v2-intro p {
    font-size: 16px;
  }

  .v2-intro__img-tag {
    left: 12px;
    right: 12px;
    bottom: 12px;
    max-width: calc(100% - 24px);
  }

  .v2-intro__sig {
    text-align: right;
  }

  .v2-section {
    padding-top: 64px;
    padding-bottom: 64px;
  }

  .v2-section__head {
    gap: 18px;
    margin-bottom: 40px;
  }

  .v2-section__lede {
    font-size: 16px;
  }

  .v2-areas-tabs {
    gap: 28px;
  }

  .v2-tab {
    grid-template-columns: 32px minmax(0, 1fr) 14px;
    gap: 10px;
    padding-top: 16px;
    padding-bottom: 16px;
  }

  .v2-tab__label {
    font-size: 20px;
  }

  .v2-tabpanel__media {
    min-height: 280px;
    height: 280px;
  }

  .v2-tabpanel__tag {
    left: 14px;
    top: 14px;
    max-width: calc(100% - 28px);
  }

  .v2-tabpanel__body {
    padding: 24px 20px;
  }

  .v2-tabpanel__title {
    font-size: 26px;
  }

  .v2-tabpanel__items {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .v2-tabpanel__cta {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  .v2-step2 {
    padding: 24px 20px;
  }

  .v2-aegit {
    margin-top: 40px;
    gap: 28px;
    padding: 24px 20px;
  }

  .v2-aegit__radar {
    max-width: 280px;
  }

  .v2-story {
    padding: 24px 20px;
  }

  .v2-eventi {
    gap: 20px;
  }

  .v2-event-featured {
    min-height: 320px;
  }

  .v2-event-featured__body {
    padding: 24px 20px;
  }

  .v2-event-featured__title {
    max-width: none;
    font-size: clamp(24px, 8vw, 32px);
  }

  .v2-event-row {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 18px 16px;
  }

  .v2-event-row__date {
    text-align: center;
    border-right: 0;
    border-bottom: 1px solid var(--border-hairline);
    padding-right: 0;
    padding-bottom: 12px;
  }

  .v2-event-row__date b {
    display: inline;
    margin-right: 8px;
  }

  .v2-event-row__arrow {
    display: none;
  }

  .v2-cta {
    padding-top: 64px;
    padding-bottom: 64px;
  }

  .v2-cta__inner {
    gap: 28px;
  }

  .v2-cta__form-wrap {
    padding: 24px 20px;
  }

  .v2-cta__meta {
    grid-template-columns: 1fr;
    row-gap: 8px;
    column-gap: 0;
  }

  .v2-cta__meta dt {
    margin-top: 10px;
  }

  .cf-row {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .site-footer {
    padding-top: 64px;
  }

  .site-footer__bottom {
    margin-top: 40px;
    align-items: flex-start;
  }

  .site-footer__bottom > div:last-child {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 10px !important;
  }
}

@media (max-width: 540px) {
  .v2-hero__stats {
    grid-template-columns: 1fr;
  }

  .v2-strip__inner {
    gap: 14px;
  }

  .v2-strip__track {
    animation-duration: 22s;
  }

  .v2-strip__logos {
    gap: 18px;
    font-size: 15px;
  }

  .v2-strip__logos span {
    padding-right: 0;
    text-align: left;
  }

  .v2-hero__h1 em {
    white-space: normal;
  }

  .v2-cta h2 {
    font-size: clamp(34px, 10vw, 46px);
  }
}

/* ====== GENERIC PAGES ====== */
.dc-page-shell {
  min-height: 100vh;
  background: linear-gradient(180deg, #fbf7f0 0%, #f6f0e6 100%);
}

.dc-page-hero {
  position: relative;
  padding: 140px 24px 88px;
  min-height: 420px;
  background:
    linear-gradient(180deg, rgba(15, 42, 68, 0.94) 0%, rgba(15, 42, 68, 0.88) 100%),
    url("../img/hero-background.jpg") center/cover no-repeat;
  color: var(--carta-100);
  display: flex;
  align-items: center;
}

.dc-page-hero__inner {
  max-width: 1080px;
  margin: 0 auto;
  width: 100%;
  text-align: left;
}

.dc-page-hero__eyebrow {
  margin: 0 0 16px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--brass-300);
}

.dc-page-hero__title {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(42px, 6vw, 72px);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -0.03em;
  text-wrap: balance;
}

.dc-page-hero__lede {
  max-width: 720px;
  margin: 24px 0 0;
  font-size: 19px;
  line-height: 1.7;
  color: var(--navy-100);
}

.dc-page-content {
  padding: 72px 24px 96px;
}

.dc-page-content__inner {
  max-width: 1080px;
  margin: 0 auto;
}

.dc-blog-hero {
  background:
    linear-gradient(180deg, rgba(15, 42, 68, 0.94) 0%, rgba(15, 42, 68, 0.88) 100%),
    url("../img/hero-background.jpg") center/cover no-repeat;
}

.dc-blog-content {
  padding-top: 56px;
}

.dc-blog-async {
  position: relative;
  transition: opacity var(--dur-component) var(--ease-out);
}

.dc-blog-async.is-loading {
  opacity: 1;
}

.dc-blog-async.is-loading .dc-blog-toolbar,
.dc-blog-async.is-loading .dc-blog-results {
  pointer-events: none;
}

.dc-blog-results {
  position: relative;
}

.dc-blog-async.is-loading .dc-blog-results {
  opacity: 0.6;
}

.dc-blog-async.is-loading .dc-blog-results::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(251, 247, 240, 0.36);
  z-index: 2;
}

.dc-blog-async.is-loading .dc-blog-results::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 42px;
  height: 42px;
  margin: -21px 0 0 -21px;
  border: 2px solid rgba(15, 42, 68, 0.14);
  border-top-color: var(--brand-primary);
  border-radius: 999px;
  animation: dc-spin 0.8s linear infinite;
  z-index: 3;
}

.dc-blog-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 24px;
  align-items: start;
  margin-bottom: 36px;
}

.dc-blog-toolbar__group {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.dc-blog-filter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 16px;
  border: 1px solid var(--border-hairline);
  border-radius: 999px;
  background: var(--carta-50);
  color: var(--ink-700);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  transition: border-color var(--dur-component) var(--ease-out), color var(--dur-micro) var(--ease-out), background var(--dur-component) var(--ease-out);
}

.dc-blog-filter:hover,
.dc-blog-filter.is-active {
  color: var(--carta-50);
  background: var(--navy-700);
  border-color: var(--navy-700);
}

.dc-blog-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
}

.dc-blog-search input {
  width: 100%;
  min-height: 48px;
  padding: 0 16px;
  border: 1px solid var(--border-hairline);
  border-radius: 6px;
  background: var(--carta-50);
  color: var(--ink-900);
  font: inherit;
}

.dc-blog-search input::placeholder {
  color: var(--ink-400);
}

.dc-blog-search input:focus {
  outline: none;
  border-color: var(--brass-600);
}

.dc-blog-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: start;
}

.dc-blog-featured {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
  gap: 0;
  background: var(--navy-700);
  color: var(--carta-100);
  border-radius: 8px;
  overflow: hidden;
  text-decoration: none;
}

.dc-blog-featured__media {
  position: relative;
  min-height: 300px;
}

.dc-blog-featured__media img {
  width: 100%;
  height: 100%;
  min-height: 300px;
  object-fit: cover;
}

.dc-blog-featured__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15, 42, 68, 0.08) 0%, rgba(15, 42, 68, 0.9) 100%);
}

.dc-blog-featured__content {
  display: grid;
  gap: 14px;
  padding: 28px;
}

.dc-blog-card__meta {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--brass-300);
}

.dc-blog-featured__title {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(30px, 3.4vw, 44px);
  font-weight: 500;
  line-height: 1.06;
  color: var(--carta-100);
}

.dc-blog-featured__excerpt {
  margin: 0;
  font-size: 16px;
  line-height: 1.75;
  color: var(--navy-100);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
}

.dc-blog-featured__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  color: var(--brass-300);
  font-size: 14px;
  font-weight: 600;
}

.dc-blog-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.dc-blog-card {
  display: grid;
  gap: 12px;
  padding: 24px;
  border: 1px solid var(--border-hairline);
  border-radius: 8px;
  background: var(--carta-50);
  text-decoration: none;
  transition: border-color var(--dur-component) var(--ease-out), transform var(--dur-component) var(--ease-out), background var(--dur-component) var(--ease-out);
}

.dc-blog-card:hover {
  border-color: var(--brass-600);
  transform: translateY(-2px);
  background: #fcf8f0;
}

.dc-blog-card .dc-blog-card__meta {
  color: var(--brass-700);
}

.dc-blog-card__title {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(24px, 2.4vw, 32px);
  font-weight: 500;
  line-height: 1.12;
  color: var(--ink-900);
}

.dc-blog-card__excerpt {
  margin: 0;
  font-size: 15px;
  line-height: 1.72;
  color: var(--ink-500);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
}

.dc-blog-card__cta {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-top: 4px;
  color: var(--navy-700);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.dc-blog-pagination {
  margin-top: 36px;
}

.dc-blog-pagination .page-numbers {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 0;
  margin: 0;
}

.dc-blog-pagination .page-numbers a,
.dc-blog-pagination .page-numbers span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  min-height: 42px;
  padding: 0 14px;
  border: 1px solid var(--border-hairline);
  border-radius: 999px;
  background: var(--carta-50);
  color: var(--ink-700);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
}

.dc-blog-pagination .page-numbers .current {
  background: var(--navy-700);
  border-color: var(--navy-700);
  color: var(--carta-50);
}

.dc-blog-empty {
  max-width: 760px;
  padding: 32px;
  border: 1px solid var(--border-hairline);
  border-radius: 8px;
  background: var(--carta-50);
}

@keyframes dc-spin {
  to {
    transform: rotate(360deg);
  }
}

.dc-contact-layout {
  display: grid;
  grid-template-columns: minmax(300px, 0.8fr) minmax(0, 1.2fr);
  gap: 28px;
  align-items: stretch;
}

.dc-contact-main,
.dc-contact-aside {
  min-width: 0;
}

.dc-contact-aside {
  display: grid;
  gap: 18px;
  grid-template-rows: 1fr 1fr;
  align-self: stretch;
}

.dc-contact-card {
  padding: 28px;
  border: 1px solid var(--border-hairline);
  border-radius: 8px;
  background: var(--carta-50);
}

.dc-contact-aside .dc-contact-card {
  height: 100%;
}

.dc-contact-card--navy {
  background: var(--navy-700);
  border-color: rgba(245, 239, 227, 0.12);
  color: var(--carta-100);
}

.dc-contact-card__head {
  max-width: 720px;
  margin-bottom: 28px;
}

.dc-contact-card__title {
  margin: 0 0 12px;
  font-family: var(--font-serif);
  font-size: clamp(30px, 3.8vw, 42px);
  font-weight: 500;
  line-height: 1.08;
  color: var(--ink-900);
}

.dc-contact-card__body {
  margin: 0;
  font-size: 16px;
  line-height: 1.72;
  color: var(--ink-700);
}

.dc-contact-card--navy .dc-contact-card__title {
  color: var(--carta-100);
}

.dc-contact-card--navy .dc-contact-card__body {
  color: var(--navy-100);
}

.dc-contact-form-shell .contact-placeholder__form,
.dc-contact-form-shell .wpcf7 form {
  display: grid;
  gap: 22px;
}

.dc-contact-form-shell .field label,
.dc-contact-form-shell .wpcf7-form label {
  color: var(--brass-700);
}

.dc-contact-form-shell .field .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio),
.dc-contact-form-shell .field input,
.dc-contact-form-shell .field select,
.dc-contact-form-shell .field textarea {
  color: var(--ink-700);
}

.dc-contact-form-shell .field .wpcf7-form-control::placeholder,
.dc-contact-form-shell .field input::placeholder,
.dc-contact-form-shell .field textarea::placeholder {
  color: var(--ink-500);
  opacity: 1;
}

.dc-contact-form-shell select {
  color: var(--ink-700);
}

.dc-contact-form-shell select:invalid {
  color: var(--ink-500);
}

.dc-contact-form-shell select option {
  color: var(--ink-700);
}

.dc-contact-form-shell .dc-cf7-consent label,
.dc-contact-form-shell .dc-cf7-consent span {
  color: var(--ink-500);
}

.dc-contact-form-shell .dc-cf7-consent a {
  color: var(--ink-700);
}

.dc-contact-form-shell .dc-cf7-consent a:hover {
  color: var(--brass-700);
}

.dc-contact-form-shell [style*="font-size:12px"] {
  color: var(--ink-400) !important;
}

.dc-contact-form-shell .wpcf7-response-output {
  margin-bottom: 0 !important;
}

.dc-contact-card--studio {
  margin-top: 28px;
}

.dc-contact-studio {
  display: grid;
  grid-template-columns: minmax(280px, 0.72fr) minmax(0, 1.28fr);
  gap: 24px;
  align-items: stretch;
}

.dc-contact-studio__copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.dc-contact-studio__map {
  border-radius: 8px;
  overflow: hidden;
  min-height: 360px;
  background: rgba(15, 42, 68, 0.06);
}

.dc-contact-studio__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 360px;
  border: 0;
}

.dc-contact-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  font-family: var(--font-sans);
  font-size: 15px;
  color: var(--ink-700);
}

.dc-contact-bar--stack {
  flex-direction: column;
  gap: 14px;
}

.dc-contact-aside .dc-contact-bar--stack {
  margin-top: 18px;
}

.dc-contact-bar__item {
  display: inline-flex;
  align-items: flex-start;
  gap: 10px;
  text-decoration: none;
  color: inherit;
  transition: color var(--dur-micro) var(--ease-out);
}

.dc-contact-bar__item:hover {
  color: var(--brass-700);
}

.dc-contact-bar__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  margin-top: 2px;
}

.dc-about-hero {
  padding-bottom: 88px;
}

.dc-area-hero {
  padding-bottom: 88px;
}

.dc-area-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(280px, 0.82fr);
  gap: 28px;
  align-items: end;
}

.dc-area-hero__card {
  align-self: start;
  padding: 26px 28px;
  border: 1px solid rgba(236, 209, 167, 0.18);
  border-radius: 10px;
  background: rgba(245, 239, 227, 0.05);
  backdrop-filter: blur(10px);
}

.dc-area-hero__card .dc-sidebar-card__eyebrow {
  margin-bottom: 18px;
  color: var(--brass-300);
}

.dc-area-hero__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 12px;
}

.dc-area-hero__list li {
  position: relative;
  padding-left: 22px;
  color: var(--carta-100);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.6;
}

.dc-area-hero__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.78em;
  width: 10px;
  height: 1px;
  background: var(--brass-400);
}

.dc-area-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

.dc-area-content {
  padding-top: 88px;
}

.dc-area-overview {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(320px, 0.96fr);
  gap: 44px;
  align-items: start;
}

.dc-area-overview__copy {
  display: grid;
  gap: 20px;
  align-content: start;
}

.dc-area-overview__richtext {
  display: grid;
  gap: 18px;
}

.dc-area-overview__richtext p {
  margin: 0;
  font-size: 17px;
  line-height: 1.78;
  color: var(--ink-500);
}

.dc-area-overview__media {
  display: block;
}

.dc-area-overview__image-wrap {
  position: relative;
  min-height: 520px;
  border-radius: 10px;
  overflow: hidden;
  background: rgba(15, 42, 68, 0.08);
}

.dc-area-overview__image-wrap img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.dc-area-overview__image-wrap--simulazione-scenari img {
  object-position: center center;
}

.dc-area-overview__tag {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 18px;
  display: inline-flex;
  width: fit-content;
  max-width: calc(100% - 36px);
  padding: 10px 14px;
  background: rgba(15, 42, 68, 0.82);
  border-left: 2px solid var(--brass-500);
  border-radius: 3px;
  color: var(--carta-100);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
}

.dc-area-overview__note {
  grid-column: 1 / -1;
  margin-top: 30px;
  padding: 28px;
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(251, 247, 238, 0.98) 0%, rgba(245, 239, 227, 0.9) 100%);
  border: 1px solid var(--border-hairline);
}

.dc-area-overview__note .dc-sidebar-card__eyebrow::before {
  content: none;
  display: none;
}

.dc-area-map,
.dc-area-services,
.dc-area-process {
  margin-top: 112px;
}

.dc-area-map {
  position: relative;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 88px max(24px, calc((100vw - 1080px) / 2)) 96px;
  background: var(--navy-700);
  overflow: hidden;
}

.dc-area-map::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at top left, rgba(212, 168, 90, 0.12), transparent 46%);
  pointer-events: none;
}

.dc-area-map .dc-section-head,
.dc-area-map__rows {
  position: relative;
}

.dc-area-map .dc-about-title,
.dc-area-map .dc-about-lede {
  color: var(--carta-100);
}

.dc-area-map .dc-about-lede {
  color: var(--navy-100);
}

.dc-area-map__rows {
  display: grid;
  gap: 0;
  margin-top: 64px;
  border-top: 1px solid rgba(236, 209, 167, 0.18);
}

.dc-area-map__row {
  display: grid;
  grid-template-columns: 88px minmax(220px, 0.72fr) minmax(0, 1.28fr);
  gap: 24px;
  align-items: start;
  padding: 24px 0;
  border-bottom: 1px solid rgba(236, 209, 167, 0.18);
}

.dc-area-map__index {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--brass-300);
  padding-top: 8px;
}

.dc-area-map__row h3,
.dc-area-process__step h3 {
  margin: 0;
  font-family: var(--font-serif);
  font-weight: 500;
  line-height: 1.06;
}

.dc-area-map__row h3 {
  font-size: 34px;
  color: var(--carta-100);
}

.dc-area-map__row p {
  margin: 0;
  font-size: 16px;
  line-height: 1.8;
  color: var(--navy-100);
}

.dc-area-services__columns {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.dc-area-services__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.dc-area-services__list li {
  position: relative;
  min-height: 100%;
  padding: 22px 22px 22px 52px;
  border: 1px solid rgba(15, 42, 68, 0.1);
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(245, 239, 227, 0.78) 0%, rgba(251, 247, 238, 0.96) 100%);
  box-shadow: 0 10px 22px rgba(6, 23, 39, 0.04);
  font-size: 18px;
  line-height: 1.65;
  color: var(--ink-700);
}

.dc-area-services__list li::before {
  content: "";
  position: absolute;
  left: 22px;
  top: 28px;
  width: 16px;
  height: 16px;
  border: 1.5px solid var(--brass-500);
  border-radius: 50%;
  background:
    radial-gradient(circle at center, var(--brass-500) 0 2px, transparent 3px);
}

.dc-area-process__timeline {
  display: grid;
  gap: 16px;
  margin-top: 30px;
}

.dc-area-process__step {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  padding: 0 0 22px;
}

.dc-area-process__step:not(:last-child) {
  border-bottom: 1px solid rgba(15, 42, 68, 0.1);
}

.dc-area-process__step-index {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--brass-700);
  padding-top: 8px;
}

.dc-area-process__step-copy {
  display: grid;
  gap: 10px;
}

.dc-area-process__step h3 {
  font-size: 34px;
  color: var(--ink-900);
}

.dc-area-process__step p {
  margin: 0;
  max-width: 760px;
  font-size: 16px;
  line-height: 1.8;
  color: var(--ink-500);
}

.dc-area-contact {
  margin-top: 112px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.dc-area-contact__intro {
  max-width: 760px;
  margin-bottom: 28px;
}

.dc-area-contact__intro .dc-page-cta__body {
  margin-bottom: 0;
}

.dc-area-form-intro {
  display: grid;
  gap: 12px;
  max-width: 980px;
  margin-bottom: 30px;
  padding-top: 18px;
  border-top: 1px solid rgba(27, 46, 74, 0.12);
}

.dc-area-form-intro__eyebrow {
  margin: 0;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--brass-700);
}

.dc-area-form-intro__content {
  display: grid;
  grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1.2fr);
  gap: 18px 28px;
  align-items: start;
}

.dc-area-form-intro__title,
.dc-area-form-intro__body {
  margin: 0;
}

.dc-area-form-intro__title {
  font-family: var(--font-sans);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--ink-900);
}

.dc-area-form-intro__body {
  max-width: 720px;
  font-size: 15px;
  line-height: 1.7;
  color: var(--ink-500);
}

.dc-area-form-selector {
  display: grid;
  gap: 28px;
}

.dc-area-form-selector__options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.dc-area-form-selector__options.is-single {
  grid-template-columns: minmax(0, 1fr);
  max-width: 720px;
}

.dc-area-form-selector__options.is-four {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dc-area-form-option {
  display: grid;
  gap: 12px;
  min-width: 0;
  padding: 24px;
  border: 1px solid var(--border-hairline);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.42);
  text-align: left;
  transition: border-color 180ms ease, background-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.dc-area-form-option:hover {
  border-color: rgba(177, 138, 70, 0.42);
  background: rgba(255, 255, 255, 0.82);
  transform: translateY(-1px);
}

.dc-area-form-option.is-active {
  border-color: rgba(177, 138, 70, 0.52);
  background: rgba(255, 250, 239, 0.82);
  box-shadow: 0 12px 28px rgba(27, 46, 74, 0.06);
}

.dc-area-form-option__label {
  font-family: var(--font-serif);
  font-size: 1.55rem;
  line-height: 1.08;
  color: var(--ink-900);
}

.dc-area-form-option__description {
  font-size: 0.96rem;
  line-height: 1.6;
  color: var(--ink-600);
}

.dc-area-form-option__cta {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  width: 100%;
  margin-top: 4px;
  color: var(--brass-700);
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 20px;
  font-weight: 500;
}

.dc-area-form-option__cta-text {
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;
}

.dc-area-form-option__cta-arrow {
  font-style: normal;
  line-height: 1;
  text-decoration: none;
}

.dc-area-form-panel {
  padding: 12px 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.dc-area-form-panel__meta {
  margin-bottom: 18px;
}

.dc-area-form-panel__meta h4 {
  margin: 0 0 8px;
  font-family: var(--font-serif);
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 500;
  line-height: 1.06;
  color: var(--ink-900);
}

.dc-area-form-panel__meta p {
  margin: 0;
  max-width: 760px;
  color: var(--ink-600);
}

.dc-area-form-panel__frame {
  overflow: hidden;
  border-radius: 10px;
  background: #fff;
  border: 1px solid rgba(27, 46, 74, 0.1);
}

.dc-area-form-panel__frame iframe {
  display: block;
  width: 100%;
  height: clamp(560px, 72vh, var(--dc-jotform-height, 720px));
  min-height: 0;
  border: 0;
  overflow: auto;
  background: #fff;
  overscroll-behavior: contain;
  touch-action: pan-y;
}

.dc-area-form-placeholder {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  padding: 30px;
  border: 1px solid var(--border-hairline);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.58);
}

.dc-area-form-placeholder__marker {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--navy-700);
  color: var(--carta-100);
  font-size: 19px;
  line-height: 1;
}

.dc-area-form-placeholder__content {
  max-width: 760px;
}

.dc-area-form-placeholder__eyebrow {
  margin: 0 0 9px;
  color: var(--brass-700);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
}

.dc-area-form-placeholder__title {
  margin: 0 0 10px;
  font-family: var(--font-serif);
  font-size: clamp(26px, 3vw, 34px);
  font-weight: 500;
  line-height: 1.08;
  color: var(--ink-900);
}

.dc-area-form-placeholder__body {
  margin: 0;
  max-width: 680px;
  color: var(--ink-600);
  line-height: 1.7;
}

.dc-area-form-placeholder__status {
  display: inline-flex;
  margin-top: 18px;
  padding-top: 10px;
  border-top: 1px solid rgba(27, 46, 74, 0.12);
  color: var(--ink-500);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.dc-area-contact__form .contact-placeholder__panel {
  padding: 0;
  border: 0;
  background: transparent;
}

.dc-area-contact__form .dc-cf7-shell,
.dc-area-contact__form .contact-placeholder {
  display: block;
  padding: 28px;
  border: 1px solid var(--border-hairline);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.62);
}

.dc-area-contact__form .contact-placeholder__form {
  gap: 26px;
}

.dc-area-contact__form .field {
  gap: 10px;
}

.dc-area-contact__form .field label {
  color: var(--brass-700);
}

.dc-area-contact__form .cf-grid {
  gap: 22px 26px;
}

.dc-area-contact__form .field .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio),
.dc-area-contact__form .field input,
.dc-area-contact__form .field textarea,
.dc-area-contact__form .field select {
  color: var(--ink-700);
  border-bottom-color: rgba(27, 46, 74, 0.24);
}

.dc-area-contact__form .field .wpcf7-form-control::placeholder,
.dc-area-contact__form .field input::placeholder,
.dc-area-contact__form .field textarea::placeholder,
.dc-area-contact__form .field select:invalid {
  color: var(--ink-500);
  opacity: 1;
}

.dc-area-contact__form .dc-cf7-consent label,
.dc-area-contact__form .dc-cf7-consent span {
  color: var(--ink-500);
}

.dc-area-contact__form .dc-cf7-consent a {
  color: var(--ink-700);
}

.dc-area-contact__form .dc-cf7-consent a:hover {
  color: var(--brass-700);
}

.dc-area-contact__form [style*="font-size:12px"] {
  color: var(--ink-400) !important;
}

.dc-about-content {
  padding-top: 72px;
}

.dc-section-head {
  display: grid;
  gap: 18px;
  margin-bottom: 32px;
}

.dc-section-head--compact {
  margin-bottom: 0;
}

.dc-section-head--split {
  grid-template-columns: minmax(0, 1.1fr) minmax(300px, 0.9fr);
  align-items: end;
  gap: 28px;
}

.dc-about-title {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(34px, 4vw, 56px);
  font-weight: 500;
  line-height: 1.05;
  color: var(--ink-900);
}

.dc-about-lede {
  margin: 0;
  font-size: 17px;
  line-height: 1.7;
  color: var(--ink-500);
}

.dc-about-intro {
  display: grid;
  grid-template-columns: minmax(300px, 0.9fr) minmax(0, 1.1fr);
  gap: 44px;
  align-items: center;
}

.dc-about-intro__media {
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  min-height: 560px;
  background: rgba(15, 42, 68, 0.08);
}

.dc-about-intro__media img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.dc-about-intro__tag {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 18px;
  display: inline-flex;
  width: fit-content;
  max-width: calc(100% - 36px);
  padding: 10px 14px;
  background: rgba(15, 42, 68, 0.82);
  border-left: 2px solid var(--brass-500);
  border-radius: 3px;
  color: var(--carta-100);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
}

.dc-about-intro__copy {
  display: grid;
  gap: 18px;
}

.dc-about-intro__copy p {
  margin: 0;
  font-size: 17px;
  line-height: 1.75;
  color: var(--ink-500);
}

.dc-about-intro__copy .eyebrow {
  font-size: 12px;
  line-height: 1.2;
  color: var(--brass-700);
}

.dc-about-intro__signature {
  margin-top: 6px;
  font-family: var(--font-serif);
  font-size: 24px;
  font-style: italic;
  line-height: 1.1;
  color: var(--brass-700);
  text-align: right;
}

.dc-about-principles {
  margin-top: 72px;
}

.dc-about-principles__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.dc-about-principle-card {
  min-height: 280px;
  padding: 28px;
  border: 1px solid var(--border-hairline);
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(251, 247, 238, 0.98) 0%, rgba(245, 239, 227, 0.9) 100%);
  display: grid;
  gap: 16px;
  align-content: start;
}

.dc-about-principle-card__index {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--brass-700);
}

.dc-about-principle-card h3 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 32px;
  font-weight: 500;
  line-height: 1.05;
  color: var(--ink-900);
  min-height: 2.1em;
}

.dc-about-principle-card p {
  margin: 0;
  font-size: 15px;
  line-height: 1.75;
  color: var(--ink-500);
}

.dc-about-events {
  padding: 88px 0;
  background: var(--navy-700);
  position: relative;
}

.dc-about-events::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at top left, rgba(212, 168, 90, 0.1), transparent 48%);
  pointer-events: none;
}

.dc-about-events .dc-page-content__inner {
  position: relative;
}

.dc-about-events .dc-page-hero__eyebrow,
.dc-about-events .dc-about-title {
  color: var(--carta-100);
}

.dc-about-events .dc-about-lede {
  color: var(--navy-100);
}

.dc-about-events__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr);
  gap: 20px;
}

.dc-about-events__featured {
  display: grid;
  grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.1fr);
  min-height: 340px;
  text-decoration: none;
  background: rgba(245, 239, 227, 0.06);
  border: 1px solid rgba(236, 209, 167, 0.18);
  border-radius: 10px;
  overflow: hidden;
}

.dc-about-events__featured-media {
  min-height: 340px;
}

.dc-about-events__featured-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dc-about-events__featured-copy {
  display: grid;
  align-content: start;
  gap: 18px;
  padding: 28px;
}

.dc-about-events__featured-copy .dc-blog-card__meta,
.dc-about-story-card .dc-blog-card__meta {
  color: var(--brass-300);
}

.dc-about-events__featured-copy h3,
.dc-about-story-card h3,
.dc-about-company-card h3 {
  margin: 0;
  font-family: var(--font-serif);
  font-weight: 500;
  line-height: 1.06;
}

.dc-about-events__featured-copy h3 {
  font-size: clamp(34px, 3.8vw, 48px);
  color: var(--carta-100);
}

.dc-about-events__featured-copy p {
  margin: 0;
  font-size: 16px;
  line-height: 1.75;
  color: var(--navy-100);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.dc-about-events__stack {
  display: grid;
  gap: 20px;
}

.dc-about-story-card {
  display: grid;
  gap: 14px;
  align-content: start;
  align-items: start;
  padding: 24px;
  text-decoration: none;
  border-radius: 10px;
  border: 1px solid rgba(236, 209, 167, 0.18);
  background: rgba(245, 239, 227, 0.04);
  min-height: 0;
}

.dc-about-story-card h3 {
  font-size: 34px;
  color: var(--carta-100);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.dc-about-story-card p {
  margin: 0;
  font-size: 15px;
  line-height: 1.75;
  color: var(--navy-100);
}

.dc-about-events__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  color: var(--brass-300);
  font-size: 14px;
  font-weight: 600;
}

.dc-about-story-card--link {
  background: rgba(212, 168, 90, 0.12);
}

.dc-about-companies {
  padding-top: 80px;
}

.dc-about-companies__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.dc-about-company-card {
  display: grid;
  gap: 18px;
  align-content: start;
  min-height: 100%;
  padding: 28px;
  border: 1px solid var(--border-hairline);
  border-radius: 10px;
  background: var(--carta-50);
  text-decoration: none;
}

.dc-about-company-card__brand {
  min-height: 84px;
  display: flex;
  align-items: center;
}

.dc-about-company-card__brand img {
  max-width: 100%;
  max-height: 72px;
  object-fit: contain;
}

.dc-about-company-card__wordmark {
  font-family: var(--font-serif);
  font-size: 44px;
  font-style: italic;
  color: var(--brand-primary);
}

.dc-about-company-card h3 {
  font-size: 30px;
  color: var(--ink-900);
}

.dc-about-company-card p {
  margin: 0;
  font-size: 15px;
  line-height: 1.75;
  color: var(--ink-500);
}

.dc-page-cta--about {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  margin-top: 48px;
}

.dc-editorial-link {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  width: 100%;
  margin-top: 22px;
  color: var(--brass-700);
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 22px;
  font-weight: 500;
  text-decoration: none;
}

.dc-editorial-link:hover {
  color: var(--brass-600);
}

.dc-editorial-link__text {
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;
}

.dc-editorial-link--light {
  color: var(--brass-300);
}

.dc-editorial-link--light:hover {
  color: var(--brass-200);
}

.dc-article-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 48px;
  align-items: start;
}

.dc-richtext {
  max-width: 760px;
  min-width: 0;
}

.dc-richtext p,
.dc-richtext li {
  font-size: 17px;
  line-height: 1.75;
  color: var(--ink-700);
}

.dc-richtext h2,
.dc-richtext h3 {
  font-family: var(--font-serif);
  font-weight: 500;
  color: var(--ink-900);
  letter-spacing: -0.01em;
}

.dc-richtext h2 {
  margin: 56px 0 18px;
  font-size: clamp(34px, 4vw, 48px);
  line-height: 1.04;
}

.dc-richtext h3 {
  margin: 42px 0 16px;
  font-size: clamp(26px, 3vw, 34px);
  line-height: 1.12;
}

.dc-richtext > :first-child {
  margin-top: 0;
}

.dc-richtext p {
  margin: 0 0 20px;
}

.dc-richtext ul {
  margin: 0 0 24px 20px;
}

.dc-post-sidebar {
  position: sticky;
  top: 112px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.dc-sidebar-card {
  padding: 24px;
  border: 1px solid var(--border-hairline);
  border-radius: 6px;
  background: var(--carta-50);
}

.dc-sidebar-card--navy {
  background: var(--navy-700);
  border-color: rgba(245, 239, 227, 0.12);
  color: var(--carta-100);
}

.dc-sidebar-card__eyebrow {
  margin: 0 0 10px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--brass-700);
}

.dc-sidebar-card--navy .dc-sidebar-card__eyebrow {
  color: var(--brass-300);
}

.dc-sidebar-card__title {
  margin: 0 0 10px;
  font-family: var(--font-serif);
  font-size: 30px;
  font-weight: 500;
  line-height: 1.08;
  color: var(--ink-900);
}

.dc-sidebar-card--navy .dc-sidebar-card__title {
  color: var(--carta-100);
}

.dc-sidebar-card__body {
  margin: 0;
  font-size: 15px;
  line-height: 1.65;
  color: var(--ink-500);
}

.dc-sidebar-card--navy .dc-sidebar-card__body {
  color: var(--navy-100);
}
.dc-sidebar-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 22px;
  width: 100%;
  margin-left: auto;
  justify-content: flex-end;
  color: var(--brass-300);
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 22px;
  font-weight: 500;
  text-decoration: none;
}
.dc-sidebar-link:hover {
  color: var(--brass-200);
}
.dc-sidebar-link__text {
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;
}
.dc-sidebar-link span:last-child {
  font-size: 17px;
  line-height: 1;
  font-style: normal;
  text-decoration: none;
}

.dc-sidebar-card__hint {
  margin: 12px 0 0;
  font-size: 12px;
  line-height: 1.6;
  color: var(--ink-400);
}

.dc-sidebar-tag {
  display: inline-flex;
  align-items: center;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(44, 78, 112, 0.08);
  color: var(--brand-primary);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.dc-sidebar-newsletter {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 18px;
}

.dc-sidebar-newsletter input {
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  border: 1px solid var(--border-hairline);
  border-radius: 4px;
  background: var(--paper);
  color: var(--ink-900);
  font: inherit;
}

.dc-sidebar-newsletter input::placeholder {
  color: var(--ink-400);
}

.dc-related-posts {
  padding: 0 24px 96px;
}

.dc-related-posts__inner {
  max-width: 1080px;
  margin: 0 auto;
}

.dc-related-posts__eyebrow {
  margin: 0 0 18px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--brass-700);
}

.dc-related-posts__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.dc-related-post {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 28px;
  border: 1px solid var(--border-hairline);
  border-radius: 6px;
  background: var(--carta-50);
  text-decoration: none;
  transition: border-color var(--dur-component) var(--ease-out), transform var(--dur-component) var(--ease-out);
}

.dc-related-post:hover {
  border-color: var(--brass-600);
  transform: translateY(-2px);
}

.dc-related-post__tag {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(44, 78, 112, 0.08);
  color: var(--brand-primary);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
}

.dc-related-post__title {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 500;
  line-height: 1.08;
  color: var(--ink-900);
}

.dc-related-post__excerpt {
  margin: 0;
  font-size: 15px;
  line-height: 1.7;
  color: var(--ink-500);
}

.dc-related-post__cta {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--brass-700);
  font-size: 14px;
  font-weight: 600;
}

.dc-page-cta {
  margin-top: 56px;
  padding: 32px;
  border: 1px solid var(--border-hairline);
  border-radius: 4px;
  background: var(--carta-50);
  max-width: 760px;
}

.dc-page-cta__eyebrow {
  margin: 0 0 10px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--brass-700);
}

.dc-page-cta__title {
  margin: 0 0 14px;
  font-family: var(--font-serif);
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 500;
  color: var(--ink-900);
  overflow-wrap: anywhere;
  word-break: break-word;
}

.dc-page-cta__body {
  margin: 0 0 24px;
  font-size: 16px;
  line-height: 1.7;
  color: var(--ink-500);
}

.contact-placeholder__success {
  padding: 40px 32px;
  border: 1px solid rgba(245, 239, 227, 0.18);
  border-radius: 8px;
  text-align: center;
  color: var(--carta-100);
}

.contact-placeholder__success-title {
  margin: 0 0 8px;
  font-family: var(--font-serif);
  font-size: 28px;
  font-style: italic;
  line-height: 1.3;
}

.contact-placeholder__success p {
  margin: 0;
  font-size: 15px;
  opacity: 0.84;
}

.dc-cf7-shell .contact-placeholder__form {
  display: grid;
  gap: 22px;
}

.dc-cf7-shell .wpcf7-form-control-wrap {
  display: block;
}

.dc-cf7-shell .field .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio) {
  width: 100%;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--border-hairline);
  padding: 10px 0;
  font-family: var(--font-sans);
  font-size: 16px;
  color: var(--ink-700);
  outline: none;
  transition: border-color var(--dur-micro) var(--ease-out);
}
.field input:not([type="checkbox"]):not([type="radio"]),
.field select { min-height: 44px; }

.dc-cf7-shell .field--on-navy .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio) {
  color: var(--carta-100);
  border-bottom-color: var(--border-inverse);
}

.dc-cf7-shell .field .wpcf7-form-control:focus {
  border-bottom-color: var(--brass-600);
}

.dc-cf7-shell .field--on-navy .wpcf7-form-control:focus {
  border-bottom-color: var(--brass-400);
}

.dc-cf7-shell textarea.wpcf7-form-control {
  min-height: 100px;
  resize: vertical;
}

.dc-cf7-consent {
  margin-top: 4px;
}

.dc-cf7-consent .wpcf7-list-item {
  margin: 0;
}

.dc-cf7-consent label {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px;
  align-items: start;
  font-size: 13px;
  line-height: 1.6;
  color: var(--navy-100);
  cursor: pointer;
}

.dc-cf7-consent input[type="checkbox"] {
  margin: 3px 0 0;
  accent-color: var(--brass-500);
}

.dc-cf7-consent a {
  color: var(--carta-100);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.dc-cf7-consent a:hover {
  color: var(--brass-300);
}

.dc-cf7-shell .wpcf7-not-valid-tip {
  margin-top: 8px;
  font-size: 12px;
  color: #f4c9c0;
}

.dc-cf7-shell .wpcf7-response-output {
  margin: 12px 0 0 !important;
  padding: 14px 16px !important;
  border: 1px solid rgba(245, 239, 227, 0.18) !important;
  border-radius: 8px;
  color: var(--carta-100);
  background: rgba(245, 239, 227, 0.06);
}

.dc-cf7-shell .wpcf7-spinner {
  margin: 0 0 0 12px;
  vertical-align: middle;
}

@media (max-width: 880px) {
  .menu-toggle {
    min-height: 44px;
  }

  .dc-page-hero {
    padding-top: 116px;
    padding-bottom: 72px;
  }

  .dc-page-content {
    padding-top: 56px;
    padding-bottom: 72px;
  }

  .dc-blog-toolbar {
    grid-template-columns: 1fr;
  }

  .dc-blog-search {
    grid-template-columns: 1fr;
  }

  .dc-blog-grid {
    grid-template-columns: 1fr;
  }

  .dc-blog-featured {
    grid-template-columns: 1fr;
  }

  .dc-blog-featured__media,
  .dc-blog-featured__media img {
    min-height: 280px;
  }

  .dc-blog-cards {
    grid-template-columns: 1fr;
  }

  .dc-contact-layout {
    grid-template-columns: 1fr;
  }

  .dc-section-head--split,
  .dc-about-intro,
  .dc-area-overview,
  .dc-about-events__grid,
  .dc-about-events__featured,
  .dc-about-companies__grid,
  .dc-about-principles__grid {
    grid-template-columns: 1fr;
  }

  .dc-area-hero__inner,
  .dc-area-map__row,
  .dc-area-process__step {
    grid-template-columns: 1fr;
  }

  .dc-area-map {
    width: auto;
    margin-left: -24px;
    margin-right: -24px;
    padding-left: 24px;
    padding-right: 24px;
  }

  .dc-area-form-selector__options,
  .dc-area-form-selector__options.is-four {
    grid-template-columns: 1fr;
  }

  .dc-area-form-intro__content {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .dc-area-services__list {
    grid-template-columns: 1fr;
  }

  .dc-about-intro__media {
    min-height: 420px;
  }

  .dc-area-overview__image-wrap {
    min-height: 420px;
  }

  .dc-about-events__featured-media {
    min-height: 280px;
  }

  .dc-contact-aside {
    grid-template-rows: none;
  }

  .dc-contact-aside .dc-contact-bar--stack {
    margin-top: 12px;
  }

  .dc-contact-studio {
    grid-template-columns: 1fr;
  }

  .dc-contact-studio__map,
  .dc-contact-studio__map iframe {
    min-height: 320px;
  }

  .dc-article-layout {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .dc-post-sidebar {
    position: static;
  }

  .dc-sidebar-link {
    margin-top: 18px;
  }

  .dc-related-posts__grid {
    grid-template-columns: 1fr;
  }

  .dc-page-cta {
    padding: 24px;
  }
}

@media (max-width: 540px) {
  .dc-blog-toolbar {
    margin-bottom: 28px;
  }

  .dc-blog-toolbar__group {
    gap: 10px;
  }

  .dc-blog-filter,
  .dc-blog-pagination .page-numbers a,
  .dc-blog-pagination .page-numbers span {
    min-height: 40px;
    font-size: 12px;
  }

  .dc-blog-featured__content,
  .dc-blog-card,
  .dc-blog-empty,
  .dc-contact-card {
    padding: 20px;
  }

  .dc-blog-featured__title {
    font-size: clamp(28px, 9vw, 36px);
  }

  .dc-contact-bar {
    gap: 18px;
    font-size: 14px;
  }

  .dc-about-title {
    font-size: clamp(30px, 10vw, 40px);
  }

  .dc-about-principle-card,
  .dc-about-company-card,
  .dc-about-events__featured-copy,
  .dc-about-story-card,
  .dc-area-overview__note,
  .dc-area-services__columns,
  .dc-area-form-panel {
    padding: 20px;
  }

  .dc-area-form-option {
    padding: 20px;
  }

  .dc-area-form-placeholder {
    grid-template-columns: 1fr;
    padding: 22px;
  }

  .dc-area-contact__form .dc-cf7-shell,
  .dc-area-contact__form .contact-placeholder {
    padding: 20px;
  }

  .dc-area-form-option__cta {
    font-size: 18px;
  }

  .dc-about-principle-card h3 {
    min-height: 0;
  }

  .dc-about-intro__media {
    min-height: 320px;
  }

  .dc-area-overview__image-wrap {
    min-height: 320px;
  }

  .dc-area-map {
    padding-top: 72px;
    padding-bottom: 76px;
  }

  .dc-area-content {
    padding-top: 72px;
  }

  .dc-area-map,
  .dc-area-services,
  .dc-area-process,
  .dc-area-contact {
    margin-top: 88px;
  }
}
