/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/fraunces/v38/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCBTeO-U.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: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/fraunces/v38/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCFTeO-U.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: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/fraunces/v38/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxC9TeA.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/fraunces/v38/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCBTeO-U.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: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/fraunces/v38/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCFTeO-U.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: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/fraunces/v38/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxC9TeA.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/fraunces/v38/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCBTeO-U.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: 'Fraunces';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/fraunces/v38/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCFTeO-U.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: 'Fraunces';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/fraunces/v38/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxC9TeA.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.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, [data-theme="light"] {
  /* Insure Horizons palette */
  --ih-charcoal: #1A1A1A;
  --ih-green: #2E7D52;
  --ih-green-deep: #235f3f;
  --ih-green-soft: #e8f2ec;
  --ih-orange: #E8792B;
  --ih-orange-soft: #fdf0e6;

  --color-bg: #f6f8f6;
  --color-surface: #ffffff;
  --color-surface-2: #fbfdfb;
  --color-border: #e2e8e3;
  --color-divider: #eef2ef;
  --color-text: #1a1a1a;
  --color-text-muted: #5c6660;
  --color-text-faint: #9aa39d;
  --color-primary: var(--ih-green);
  --color-primary-hover: var(--ih-green-deep);
  --color-accent: var(--ih-orange);

  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.8125rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.2vw, 0.9375rem);
  --text-base: clamp(1rem, 0.95rem + 0.15vw, 1.0625rem);
  --text-lg: clamp(1.125rem, 1rem + 0.4vw, 1.375rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1vw, 2.125rem);
  --text-2xl: clamp(2rem, 1.4rem + 2vw, 3rem);

  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem;
  --space-5:1.25rem; --space-6:1.5rem; --space-8:2rem; --space-10:2.5rem;
  --space-12:3rem; --space-16:4rem;

  --radius-sm:.5rem; --radius-md:.75rem; --radius-lg:1rem; --radius-xl:1.25rem; --radius-full:9999px;
  --shadow-sm: 0 1px 3px rgba(26,26,26,.06);
  --shadow-md: 0 6px 20px rgba(26,26,26,.08);
  --shadow-lg: 0 16px 44px rgba(26,26,26,.12);
  --transition: 180ms cubic-bezier(0.16,1,0.3,1);

  --font-display: 'Fraunces', Georgia, serif;
  --font-body: 'Inter', system-ui, sans-serif;
}

[data-theme="dark"] {
  --color-bg: #12140f;
  --color-surface: #1a1d17;
  --color-surface-2: #20241c;
  --color-border: #2e332a;
  --color-divider: #262b22;
  --color-text: #e8ece6;
  --color-text-muted: #9aa495;
  --color-text-faint: #6b7365;
  --ih-green: #4faa77;
  --ih-green-soft: #1e2b23;
  --ih-orange-soft: #2e2118;
  --color-primary: #4faa77;
  --color-primary-hover: #5fbf88;
  --shadow-sm: 0 1px 3px rgba(0,0,0,.3);
  --shadow-md: 0 6px 20px rgba(0,0,0,.4);
  --shadow-lg: 0 16px 44px rgba(0,0,0,.5);
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; scroll-behavior:smooth; }
body {
  min-height:100dvh; line-height:1.6; font-family:var(--font-body);
  font-size:var(--text-base); color:var(--color-text); background:var(--color-bg);
  font-variant-numeric: tabular-nums lining-nums;
}
img,svg,canvas { display:block; max-width:100%; }
input,button,select { font:inherit; color:inherit; }
button { cursor:pointer; background:none; border:none; }
a { color:inherit; }
:focus-visible { outline:2px solid var(--color-primary); outline-offset:2px; border-radius:var(--radius-sm); }
h1,h2,h3 { line-height:1.15; text-wrap:balance; }

a,button,input,select { transition: color var(--transition), background var(--transition), border-color var(--transition), box-shadow var(--transition), transform var(--transition); }

/* ---------- HEADER ---------- */
.site-header {
  position:sticky; top:0; z-index:50;
  background:color-mix(in srgb, var(--color-surface) 88%, transparent);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--color-border);
}
.header-inner {
  max-width:1200px; margin:0 auto; padding:var(--space-3) var(--space-6);
  display:flex; align-items:center; justify-content:space-between; gap:var(--space-4);
}
.brand { display:flex; align-items:center; }
.brand-logo { height:64px; width:auto; border-radius:var(--radius-sm); }
[data-theme="dark"] .brand-logo,
[data-theme="dark"] .footer-logo { background:#ffffff; padding:var(--space-1) var(--space-2); }
.header-right { display:flex; align-items:center; gap:var(--space-4); }
.header-phone {
  display:inline-flex; align-items:center; gap:var(--space-2);
  font-size:var(--text-sm); font-weight:600; text-decoration:none;
  color:var(--color-text); padding:var(--space-2) var(--space-3);
  border-radius:var(--radius-full); border:1px solid var(--color-border);
}
.header-phone svg { color:var(--color-primary); }
.header-phone:hover { border-color:var(--color-primary); color:var(--color-primary); }
.theme-toggle {
  display:grid; place-items:center; width:40px; height:40px;
  border-radius:var(--radius-full); border:1px solid var(--color-border); color:var(--color-text-muted);
}
.theme-toggle:hover { color:var(--color-primary); border-color:var(--color-primary); }

/* ---------- PAGE ---------- */
.page { max-width:1200px; margin:0 auto; padding:var(--space-10) var(--space-6) var(--space-16); }
.intro { text-align:center; max-width:680px; margin:0 auto var(--space-10); }
.eyebrow {
  display:inline-block; font-size:var(--text-xs); font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:var(--color-primary);
  background:var(--ih-green-soft); padding:var(--space-1) var(--space-3);
  border-radius:var(--radius-full); margin-bottom:var(--space-4);
}
.page-title { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:600; letter-spacing:-0.01em; }
.subtitle { color:var(--color-text-muted); font-size:var(--text-base); margin-top:var(--space-3); }

/* ---------- GRID ---------- */
.app-grid { display:grid; grid-template-columns:minmax(300px,380px) 1fr; gap:var(--space-6); align-items:start; }
@media (max-width:880px){ .app-grid{ grid-template-columns:1fr; } }

.card {
  background:var(--color-surface); border:1px solid var(--color-border);
  border-radius:var(--radius-xl); padding:var(--space-6); box-shadow:var(--shadow-sm);
}
.card-title { font-family:var(--font-display); font-size:var(--text-lg); font-weight:600; margin-bottom:var(--space-5); }

/* ---------- FIELDS ---------- */
.field { margin-bottom:var(--space-5); }
.field.compact { margin-bottom:var(--space-3); }
.field label {
  display:flex; align-items:center; justify-content:space-between; gap:var(--space-2);
  font-size:var(--text-sm); font-weight:600; margin-bottom:var(--space-2); color:var(--color-text);
}
.val-badge {
  font-family:var(--font-body); font-size:var(--text-xs); font-weight:700; color:var(--color-primary);
  background:var(--ih-green-soft); padding:var(--space-1) var(--space-2); border-radius:var(--radius-sm);
}
.input-inline {
  display:inline-flex; align-items:center; gap:var(--space-1);
  background:var(--ih-green-soft); border:1px solid transparent;
  border-radius:var(--radius-sm); padding:var(--space-1) var(--space-2);
}
.input-inline:focus-within { border-color:var(--color-primary); }
.input-inline input[type=number] {
  width:3.2em; padding:0; border:none; background:transparent;
  font-size:var(--text-sm); font-weight:700; color:var(--color-primary);
  text-align:right; -moz-appearance:textfield; appearance:textfield;
}
.input-inline input[type=number]::-webkit-outer-spin-button,
.input-inline input[type=number]::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.input-inline input[type=number]:focus { outline:none; }
.input-inline .unit { font-size:var(--text-xs); font-weight:700; color:var(--color-primary); }
.input-money { position:relative; display:flex; align-items:center; }
.input-money .prefix {
  position:absolute; left:var(--space-4); color:var(--color-text-muted); font-weight:600; pointer-events:none; z-index:1;
}
input[type=text], input[type=tel], select {
  width:100%; padding:var(--space-3) var(--space-4);
  border:1px solid var(--color-border); border-radius:var(--radius-md);
  background:var(--color-surface-2); color:var(--color-text); font-size:var(--text-base); font-weight:500;
}
.input-money input { padding-left:2.5rem; }
input[type=text]:focus, input[type=tel]:focus, select:focus { border-color:var(--color-primary); background:var(--color-surface); }
.select-wrap { position:relative; }
.select-wrap::after {
  content:""; position:absolute; right:var(--space-4); top:50%; width:9px; height:9px;
  border-right:2px solid var(--color-text-muted); border-bottom:2px solid var(--color-text-muted);
  transform:translateY(-65%) rotate(45deg); pointer-events:none;
}
select { appearance:none; padding-right:var(--space-10); cursor:pointer; }

/* Range sliders */
input[type=range]{
  -webkit-appearance:none; appearance:none; width:100%; height:6px; border-radius:var(--radius-full);
  background:linear-gradient(to right, var(--color-primary) var(--pct,50%), var(--color-divider) var(--pct,50%));
  cursor:pointer; margin-top:var(--space-2);
}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none; width:22px; height:22px; border-radius:50%;
  background:var(--color-surface); border:3px solid var(--color-primary); box-shadow:var(--shadow-sm);
}
input[type=range]::-moz-range-thumb{
  width:22px; height:22px; border-radius:50%; background:var(--color-surface);
  border:3px solid var(--color-primary); box-shadow:var(--shadow-sm);
}

/* ---------- RESULTS ---------- */
.results-card { display:flex; flex-direction:column; gap:var(--space-6); }
.result-hero {
  text-align:center; padding:var(--space-6);
  background:linear-gradient(135deg, var(--ih-green-soft), color-mix(in srgb, var(--ih-orange-soft) 60%, var(--ih-green-soft)));
  border-radius:var(--radius-lg); border:1px solid var(--color-border);
}
.result-label { font-size:var(--text-sm); font-weight:600; color:var(--color-text-muted); text-transform:uppercase; letter-spacing:.05em; }
.result-value {
  font-family:var(--font-display); font-size:var(--text-2xl); font-weight:700;
  color:var(--color-primary); margin:var(--space-2) 0; line-height:1;
}
.result-sub { font-size:var(--text-sm); color:var(--color-text-muted); }

.stat-row { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-3); }
@media (max-width:480px){ .stat-row{ grid-template-columns:1fr; } }
.stat {
  padding:var(--space-4); background:var(--color-surface-2);
  border:1px solid var(--color-border); border-radius:var(--radius-md); text-align:center;
}
.stat-label { display:block; font-size:var(--text-xs); color:var(--color-text-muted); margin-bottom:var(--space-1); }
.stat-value { display:block; font-size:var(--text-lg); font-weight:700; }
.accent-green { color:var(--color-primary); }

.chart-wrap { position:relative; height:280px; padding:var(--space-2); }

/* ---------- DELIVERY ---------- */
.delivery { border-top:1px solid var(--color-divider); padding-top:var(--space-6); }
.delivery-title { font-family:var(--font-display); font-size:var(--text-lg); font-weight:600; }
.delivery-note { font-size:var(--text-sm); color:var(--color-text-muted); margin-top:var(--space-1); margin-bottom:var(--space-4); }
.delivery-fields { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-3); }
.delivery-fields .field-full { grid-column:1 / -1; }
@media (max-width:520px){ .delivery-fields{ grid-template-columns:1fr; } }
.delivery-buttons { display:flex; gap:var(--space-3); margin-top:var(--space-4); flex-wrap:wrap; }
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:var(--space-2);
  padding:var(--space-3) var(--space-5); border-radius:var(--radius-md);
  font-size:var(--text-sm); font-weight:600; flex:1; min-width:180px;
}
.btn:active { transform:translateY(1px); }
.btn-whatsapp { background:#25D366; color:#fff; }
.btn-whatsapp:hover { background:#1eb958; }
.btn-secondary { background:var(--color-surface-2); color:var(--color-text); border:1px solid var(--color-border); }
.btn-secondary:hover { border-color:var(--color-primary); color:var(--color-primary); }
.disclaimer { font-size:var(--text-xs); color:var(--color-text-muted); margin-top:var(--space-3); min-height:1em; }
.disclaimer.error { color:var(--color-accent); font-weight:600; }
.disclaimer.success { color:var(--color-primary); font-weight:600; }

.global-disclaimer {
  max-width:760px; margin:var(--space-12) auto 0; text-align:center;
  font-size:var(--text-xs); color:var(--color-text-faint); line-height:1.5;
}

/* ---------- FOOTER ---------- */
.site-footer { border-top:1px solid var(--color-border); background:var(--color-surface); }
.footer-inner {
  max-width:1200px; margin:0 auto; padding:var(--space-8) var(--space-6);
  display:flex; align-items:center; gap:var(--space-5); flex-wrap:wrap;
}
.footer-logo { height:60px; width:auto; }
.footer-text p { font-size:var(--text-sm); color:var(--color-text-muted); }
.footer-text a { color:var(--color-primary); text-decoration:none; font-weight:600; }
.footer-text a:hover { text-decoration:underline; }

@media print {
  .site-header, .site-footer, .delivery, .theme-toggle, input[type=range]{ display:none !important; }
  body { background:#fff; }
  .card { box-shadow:none; border:1px solid #ccc; }
}