/* Franktown Church — Webfonts
   REAL brand fonts, confirmed from the live Elementor global kit (elementor-kit-16):
     • Nunito Sans       — body, UI, buttons, h1/h3/h4/h5, accents (the workhorse)
     • DM Sans           — primary headings (h2 / section titles)
     • Playfair Display  — editorial display serif & Scripture pull-quotes
     • Brittany Signature— flowing signature script (hero flourish lines)
     • IBM Plex Mono     — incidental / technical
   Nunito Sans, DM Sans, Playfair Display & IBM Plex Mono are Google Fonts.
   Sacramento is loaded as a closer casual-signature FALLBACK for Brittany
   Signature (a licensed, non-Google font self-hosted by the church).

   ✅ Brittany Signature is now self-hosted from assets/fonts/BrittanySignature.ttf
   (supplied by the user). The hosted-URL fallbacks remain for resilience. */

/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/f1a3bb7f-28e0-42c9-a7f8-346fe78abbc0.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: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/85975d4f-81d5-4041-8592-8f6b987e1c4d.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/c231ca32-fd6b-46d4-9701-82647857948c.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/8ef0eadc-e0d9-4d85-8e09-fb25c3a04b61.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/c231ca32-fd6b-46d4-9701-82647857948c.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/8ef0eadc-e0d9-4d85-8e09-fb25c3a04b61.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/c231ca32-fd6b-46d4-9701-82647857948c.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/8ef0eadc-e0d9-4d85-8e09-fb25c3a04b61.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/96ca072a-993a-46fc-90f9-f427192de8aa.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/572e22eb-7879-4c78-aaea-1bb766fc3702.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/1a296b13-1d12-4510-8d24-cb64a491eb51.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/ea635ac7-bb70-4ab5-b4d1-b8a08b785a01.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/857744af-3b87-4c74-be75-d18d58322a43.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/deb07369-fbac-419b-a843-05f2c8057a70.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/5792ba68-9b6b-4b70-850f-19f25ddbec7e.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/c80494a4-61c4-4b67-be96-7ef00a9d2304.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/86de9dcc-3ec9-479f-95b3-ecaee735c952.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/a2055890-eb54-4aa1-9013-a1a4c9d2f250.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: 'Nunito Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/6d586ea1-c629-4da6-92e1-e396f971ad07.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: 'Nunito Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/20d49b15-4541-4f16-bda5-f8cd0fcd9b96.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Nunito Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/143d01f5-18b3-49b9-9651-0fa0a3dc7d10.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: 'Nunito Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/2764a85e-27f1-4a56-9302-a4fe657c43e2.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: 'Nunito Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/7079a45c-553f-4f88-8c0c-1374314cbfec.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/013f68df-8cc2-4b2a-acf2-32fb26eaa4a0.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/33c72071-51f6-4fcc-bab1-c6ebbe2c5882.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/3d3e14a4-a8ce-4ef6-b666-219a8fa2e9ec.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/8fcf1dc9-236e-421e-ba2f-9e605467bb42.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/c814cd70-fc79-4afe-94e1-cc6590ddb8ed.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/013f68df-8cc2-4b2a-acf2-32fb26eaa4a0.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/33c72071-51f6-4fcc-bab1-c6ebbe2c5882.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/3d3e14a4-a8ce-4ef6-b666-219a8fa2e9ec.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/8fcf1dc9-236e-421e-ba2f-9e605467bb42.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/c814cd70-fc79-4afe-94e1-cc6590ddb8ed.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/013f68df-8cc2-4b2a-acf2-32fb26eaa4a0.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/33c72071-51f6-4fcc-bab1-c6ebbe2c5882.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/3d3e14a4-a8ce-4ef6-b666-219a8fa2e9ec.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/8fcf1dc9-236e-421e-ba2f-9e605467bb42.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/c814cd70-fc79-4afe-94e1-cc6590ddb8ed.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/013f68df-8cc2-4b2a-acf2-32fb26eaa4a0.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/33c72071-51f6-4fcc-bab1-c6ebbe2c5882.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/3d3e14a4-a8ce-4ef6-b666-219a8fa2e9ec.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/8fcf1dc9-236e-421e-ba2f-9e605467bb42.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/c814cd70-fc79-4afe-94e1-cc6590ddb8ed.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/013f68df-8cc2-4b2a-acf2-32fb26eaa4a0.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/33c72071-51f6-4fcc-bab1-c6ebbe2c5882.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/3d3e14a4-a8ce-4ef6-b666-219a8fa2e9ec.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/8fcf1dc9-236e-421e-ba2f-9e605467bb42.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/c814cd70-fc79-4afe-94e1-cc6590ddb8ed.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 900;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/013f68df-8cc2-4b2a-acf2-32fb26eaa4a0.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 900;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/33c72071-51f6-4fcc-bab1-c6ebbe2c5882.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 900;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/3d3e14a4-a8ce-4ef6-b666-219a8fa2e9ec.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 900;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/8fcf1dc9-236e-421e-ba2f-9e605467bb42.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 900;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/c814cd70-fc79-4afe-94e1-cc6590ddb8ed.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 */
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/fd51705f-7110-40e6-8098-2eebf2170e27.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/4e235ee5-efb7-464d-81e1-479eb0c0111f.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: 'Playfair Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/917b3495-2c8c-4b7b-86e7-715f62c7cd61.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: 'Playfair Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/b74753c3-382b-4084-9785-265fe6a0c7e2.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 */
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/fd51705f-7110-40e6-8098-2eebf2170e27.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/4e235ee5-efb7-464d-81e1-479eb0c0111f.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: 'Playfair Display';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/917b3495-2c8c-4b7b-86e7-715f62c7cd61.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: 'Playfair Display';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/b74753c3-382b-4084-9785-265fe6a0c7e2.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 */
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/fd51705f-7110-40e6-8098-2eebf2170e27.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/4e235ee5-efb7-464d-81e1-479eb0c0111f.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: 'Playfair Display';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/917b3495-2c8c-4b7b-86e7-715f62c7cd61.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: 'Playfair Display';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/b74753c3-382b-4084-9785-265fe6a0c7e2.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 */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/9ee617a7-b480-486b-9466-7b4e5546b359.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/98e21dc6-9917-45c8-814c-cafc1af4640d.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: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/ffe52c14-f680-4ee8-a448-58db49a3f225.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: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/73a3a84a-73a1-4b39-aeae-ceee84eed5ef.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 */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/9ee617a7-b480-486b-9466-7b4e5546b359.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/98e21dc6-9917-45c8-814c-cafc1af4640d.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: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/ffe52c14-f680-4ee8-a448-58db49a3f225.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: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/73a3a84a-73a1-4b39-aeae-ceee84eed5ef.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 */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/9ee617a7-b480-486b-9466-7b4e5546b359.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/98e21dc6-9917-45c8-814c-cafc1af4640d.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: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/ffe52c14-f680-4ee8-a448-58db49a3f225.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: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/73a3a84a-73a1-4b39-aeae-ceee84eed5ef.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 */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/9ee617a7-b480-486b-9466-7b4e5546b359.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/98e21dc6-9917-45c8-814c-cafc1af4640d.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: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/ffe52c14-f680-4ee8-a448-58db49a3f225.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: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/73a3a84a-73a1-4b39-aeae-ceee84eed5ef.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 */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../fonts/9ee617a7-b480-486b-9466-7b4e5546b359.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../fonts/98e21dc6-9917-45c8-814c-cafc1af4640d.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: 'Playfair Display';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../fonts/ffe52c14-f680-4ee8-a448-58db49a3f225.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: 'Playfair Display';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../fonts/73a3a84a-73a1-4b39-aeae-ceee84eed5ef.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 */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../fonts/9ee617a7-b480-486b-9466-7b4e5546b359.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../fonts/98e21dc6-9917-45c8-814c-cafc1af4640d.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: 'Playfair Display';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../fonts/ffe52c14-f680-4ee8-a448-58db49a3f225.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: 'Playfair Display';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../fonts/73a3a84a-73a1-4b39-aeae-ceee84eed5ef.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: 'Sacramento';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/895b3cfe-8628-49b2-860f-c2dead36091c.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: 'Sacramento';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/6fd5528b-0d83-47ce-bba6-c9d0e1777834.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;
}


@font-face {
  font-family: 'Brittany Signature';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/d7086901-bc02-46c5-8848-17b0a05f95c6.ttf") format('truetype'),
       url('https://franktown.church/wp-content/uploads/2025/11/BrittanySignatureRegular.woff2') format('woff2');
}


/* Franktown Church — Color tokens
   CONFIRMED from the live Elementor global kit (elementor-kit-16):
     --e-global-color-primary    #1C4E80  navy        → headings, primary brand
     --e-global-color-secondary  #3A7CA5  steel blue  → links
     --e-global-color-text       #E2B65F  gold        → BUTTON background
     --e-global-color-accent     #2B2B2B  near-black  → ink / page-transition
     button hover                #CDA31F  deep gold
     others: #3399FF bright blue · #DFA93C gold · #D9C48A soft gold ·
             #F6EBC8 cream gold · #F1F0EC warm gray · #D5D5D8 gray ·
             #53687C slate · #CFD6C5 sage · #FFFFFF · #000000
   The action color on this brand is GOLD; navy & steel-blue carry structure
   and links. The logo cross is a brighter blue (kept as --logo-blue). */
#ftw, .ftkb, .ftk-page-body, .ftk-sheet, .ftk-store, .ftk-admin {
  /* ── Navy / Blue (structure, headings, links) ── */
  --navy-950: #112C49;
  --navy-900: #15314E;
  --navy-800: #1C4E80; /* PRIMARY — headings, brand, focus */
  --navy-700: #265E92;
  --blue-600: #3A7CA5; /* SECONDARY — links, steel blue */
  --blue-500: #3399FF; /* bright accent blue */
  --blue-400: #5C96D5;
  --blue-300: #8AB3E1;
  --blue-200: #B9D2EE;
  --blue-100: #DEEAF8;
  --blue-050: #EFF5FA;
  --logo-blue:       #2974C5; /* the offset-cross mark blue */
  --logo-blue-light: #5C96D5;

  /* ── Gold (the action color — buttons, accents, warmth) ── */
  --gold-700: #A87A14;
  --gold-600: #CDA31F; /* button hover */
  --gold-500: #DFA93C; /* gold */
  --gold-400: #E2B65F; /* ACCENT — button background */
  --gold-300: #D9C48A; /* soft gold */
  --gold-200: #F6EBC8; /* cream gold */
  --gold-100: #FAF1D8;
  --gold-050: #FCF8EE;

  /* ── Warm neutrals & ink ── */
  --white:     #FFFFFF;
  --cream:     #FBF6EB;
  --warm-100:  #F1F0EC; /* warm gray section surface */
  --warm-200:  #E4E2DB;
  --sage:      #CFD6C5; /* muted green-gray accent */
  --slate:     #53687C; /* desaturated blue-gray text */
  --gray-300:  #D5D5D8; /* light gray (kit) */
  --gray-400:  #9AA0A8;
  --gray-500:  #6A7078;
  --gray-700:  #3A3F45;
  --ink:       #2B2B2B; /* accent near-black — body/ink */

  /* ── Semantic status ── */
  --success: #2E7D52;
  --warning: #CDA31F;
  --danger:  #C23B2E;
  --info:    #3A7CA5;

  /* ── Semantic aliases (use these in components) ── */
  --primary:           var(--navy-800); /* brand navy */
  --primary-hover:     var(--navy-900);
  --primary-active:    var(--navy-950);
  --primary-contrast:  #FFFFFF;

  --secondary:         var(--blue-600); /* steel blue — links */
  --secondary-hover:   var(--navy-800);

  --accent:            var(--gold-400); /* gold — the action color */
  --accent-hover:      var(--gold-600);
  --accent-soft:       var(--gold-050);
  --accent-contrast:   #FFFFFF;

  /* Buttons on this brand are gold with white uppercase text, 6px radius */
  --btn-bg:            var(--gold-400);
  --btn-bg-hover:      var(--gold-600);
  --btn-fg:            #FFFFFF;

  --bg-page:           #FFFFFF;
  --bg-inset:          var(--warm-100);
  --surface-card:      #FFFFFF;
  --surface-raised:    #FFFFFF;
  --surface-cream:     var(--gold-050);
  --surface-navy:      var(--navy-800);
  --surface-navy-deep: var(--navy-900);
  --surface-gold:      var(--gold-400);
  --surface-sage:      var(--sage);

  --text-primary:      var(--ink);
  --text-heading:      var(--navy-800); /* navy headlines */
  --text-secondary:    var(--slate);
  --text-muted:        var(--gray-500);
  --text-on-navy:      #FFFFFF;
  --text-on-navy-soft: #C5D6E8;
  --text-on-gold:      #FFFFFF;
  --text-accent:       var(--gold-600); /* eyebrows */
  --text-link:         var(--blue-600);
  --text-link-hover:   var(--navy-800);

  --border:            #E5E7EA;
  --border-warm:       var(--warm-200);
  --border-strong:     var(--gray-300);
  --border-focus:      var(--navy-800);

  --radius-button:     6px; /* the kit's button radius */

  /* ── Legacy aliases ───────────────────────────────────────────────
     Earlier drafts used a blue-primary / pine / clay vocabulary. Kept as
     correctly-valued aliases so existing components & cards render on-brand.
     TODO: migrate component variant names, then drop. */
  --blue-950: var(--navy-950);
  --blue-900: var(--navy-900);
  --blue-800: var(--navy-800);
  --blue-700: var(--navy-700);

  --pine-900: var(--navy-900);
  --pine-800: var(--navy-800);
  --pine-700: var(--navy-800);
  --pine-600: var(--navy-700);
  --pine-500: var(--blue-600);
  --pine-300: var(--blue-300);
  --pine-200: var(--blue-200);
  --pine-100: var(--blue-100);
  --pine-050: var(--blue-050);

  --clay-800: var(--gold-700);
  --clay-700: var(--gold-600);
  --clay-500: var(--gold-500);
  --clay-300: var(--gold-300);
  --clay-200: var(--gold-200);
  --clay-100: var(--gold-100);
  --clay-050: var(--gold-050);

  --sky-800: var(--navy-800);
  --sky-700: var(--navy-700);
  --sky-500: var(--blue-600);
  --sky-300: var(--blue-300);
  --sky-100: var(--blue-100);

  --gray-200: #E5E7EA;
  --parchment:  var(--warm-100);
  --sand:       var(--warm-100);
  --line-warm:  var(--warm-200);
  --ink-900:    var(--ink);
  --ink-700:    var(--gray-700);
  --ink-500:    var(--gray-500);
  --ink-400:    var(--gray-400);
  --ink-300:    var(--gray-300);

  --surface-pine:      var(--surface-navy);
  --surface-pine-deep: var(--surface-navy-deep);
  --text-on-pine:      var(--text-on-navy);
  --text-on-pine-soft: var(--text-on-navy-soft);
}


/* Franktown Church — Typography tokens
   Confirmed from the live Elementor global kit (elementor-kit-16):
     Sans / body / UI:  Nunito Sans  (h1, h3–h5, body, buttons, accents)
     Headings:          DM Sans      (h2 / primary section titles, 700)
     Editorial serif:   Playfair Display (display moments & Scripture, 900)
     Script accent:     Brittany Signature (hero flourish lines)
     Mono:              IBM Plex Mono (incidental) */
#ftw, .ftkb, .ftk-page-body, .ftk-sheet, .ftk-store, .ftk-admin {
  --font-sans:    "Nunito Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  --font-heading: "DM Sans", "Nunito Sans", ui-sans-serif, system-ui, -apple-system, Helvetica, Arial, sans-serif;
  --font-serif:   "Playfair Display", "Iowan Old Style", Georgia, "Times New Roman", serif;
  --font-script:  "Brittany Signature", "Sacramento", "Snell Roundhand", "Brush Script MT", cursive;
  --font-mono:    "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  /* Legacy alias: some components reference --font-display */
  --font-display: var(--font-heading);

  /* Type scale — mirrors the site's editorial scale */
  --text-3xs: 0.6875rem;  /* 11px — overline / eyebrow */
  --text-2xs: 0.75rem;    /* 12px */
  --text-xs:  0.8125rem;  /* 13px */
  --text-sm:  0.9375rem;  /* 15px */
  --text-base:1.1875rem;  /* 19px — body default (site uses 19px) */
  --text-lg:  1.375rem;   /* 22px */
  --text-xl:  1.5rem;     /* 24px */
  --text-2xl: 2rem;       /* 32px — h3 */
  --text-3xl: 2.625rem;   /* 42px — Playfair secondary display */
  --text-4xl: 3.75rem;    /* 60px — DM Sans primary heading */
  --text-5xl: 5rem;       /* 80px — hero */

  /* Weights (Nunito Sans ranges 300–900) */
  --weight-light:    300;
  --weight-regular:  400;
  --weight-medium:   500;
  --weight-semibold: 600;
  --weight-bold:     700;
  --weight-extrabold:800;
  --weight-black:    900;

  /* Line heights — the site runs tight headers, ~1.3 body */
  --leading-tight:   1.05;
  --leading-snug:    1.15;
  --leading-normal:  1.3;
  --leading-relaxed: 1.55;

  /* Letter spacing */
  --tracking-tight:  0;
  --tracking-normal: 0;
  --tracking-wide:   0.04em;
  --tracking-eyebrow:0.12em; /* h5 / overlines run ~1.5px */

  /* Semantic roles — which face each thing uses, per the live kit
     - Hero flourish .................. Brittany Signature (script)
     - Hero headline / big display .... Playfair Display (serif, 900)
     - Section headlines (h2) ......... DM Sans (700)
     - Sub-structure (h3) ............. Nunito Sans (900)
     - Body / UI / labels / buttons ... Nunito Sans
     - Scripture / pull-quote ......... Playfair Display (italic) */
  --role-script:     var(--weight-regular) var(--text-5xl)/1.0 var(--font-script);
  --role-hero:       var(--weight-black) var(--text-5xl)/var(--leading-tight) var(--font-serif);
  --role-display:    var(--weight-extrabold) var(--text-4xl)/1.1 var(--font-serif);   /* warm/scripture feature headings (Playfair) */
  --role-h1:         var(--weight-extrabold) var(--text-4xl)/1.1 var(--font-serif);
  --role-section:    var(--weight-bold) var(--text-4xl)/var(--leading-snug) var(--font-heading); /* structural headings (DM Sans) */
  --role-h2:         var(--weight-bold) var(--text-3xl)/var(--leading-snug) var(--font-heading);
  --role-subhead:    var(--weight-extrabold) var(--text-xl)/var(--leading-snug) var(--font-sans);
  --role-h3:         var(--weight-black) var(--text-xl)/var(--leading-snug) var(--font-sans);
  --role-body:       var(--weight-regular) var(--text-base)/var(--leading-relaxed) var(--font-sans);
  --role-body-sm:    var(--weight-regular) var(--text-sm)/var(--leading-normal) var(--font-sans);
  --role-label:      var(--weight-bold) var(--text-sm)/1.2 var(--font-sans);
  --role-eyebrow:    var(--weight-semibold) var(--text-3xs)/1.2 var(--font-sans);
  --role-button:     var(--weight-semibold) var(--text-base)/1 var(--font-sans);
  --role-quote:      400 var(--text-3xl)/1.25 var(--font-serif);
}


/* Franktown Church — Spacing, radius, shadow, layout tokens */
#ftw, .ftkb, .ftk-page-body, .ftk-sheet, .ftk-store, .ftk-admin {
  /* Spacing — 4px base, generous & airy to feel restful */
  --space-0:  0;
  --space-1:  0.25rem;  /* 4 */
  --space-2:  0.5rem;   /* 8 */
  --space-3:  0.75rem;  /* 12 */
  --space-4:  1rem;     /* 16 */
  --space-5:  1.5rem;   /* 24 */
  --space-6:  2rem;     /* 32 */
  --space-7:  3rem;     /* 48 */
  --space-8:  4rem;     /* 64 */
  --space-9:  6rem;     /* 96 */
  --space-10: 8rem;     /* 128 */

  /* Radius — soft, grounded; not pill-heavy */
  --radius-xs:  4px;
  --radius-sm:  8px;
  --radius-md:  12px;
  --radius-lg:  18px;
  --radius-xl:  28px;
  --radius-pill: 999px;

  /* Shadows — soft, low, slightly warm */
  --shadow-xs: 0 1px 2px rgba(35, 31, 32, 0.06);
  --shadow-sm: 0 1px 3px rgba(35, 31, 32, 0.08), 0 1px 2px rgba(35, 31, 32, 0.05);
  --shadow-md: 0 6px 18px rgba(35, 31, 32, 0.09), 0 2px 6px rgba(35, 31, 32, 0.05);
  --shadow-lg: 0 18px 44px rgba(35, 31, 32, 0.12), 0 6px 14px rgba(35, 31, 32, 0.06);
  --shadow-navy: 0 16px 40px rgba(28, 78, 128, 0.28);
  --shadow-pine: var(--shadow-navy); /* legacy alias */

  /* Borders */
  --border-width: 1px;
  --border-width-strong: 1.5px;

  /* Layout */
  --container-sm: 640px;
  --container-md: 880px;
  --container-lg: 1140px;
  --container-xl: 1320px;
  --gutter: var(--space-5);

  /* Motion — calm, no bounce; gentle ease */
  --ease-out: cubic-bezier(0.22, 0.61, 0.36, 1); /* @kind other */
  --ease-in-out: cubic-bezier(0.45, 0, 0.2, 1); /* @kind other */
  --dur-fast: 140ms; /* @kind other */
  --dur-base: 220ms; /* @kind other */
  --dur-slow: 420ms; /* @kind other */
}


/* Franktown Church — base element styles & reusable utility classes.
   Lightweight: sets page defaults and a few brand primitives. */

#ftw, .ftkb {
  background: var(--bg-page);
  color: var(--text-primary);
  font: var(--role-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

#ftw h1, #ftw h2, #ftw h3, #ftw h4,
.ftkb h1, .ftkb h2, .ftkb h3, .ftkb h4 { margin: 0; color: var(--text-primary); text-wrap: balance; }
#ftw p, .ftkb p { margin: 0; text-wrap: pretty; }
#ftw a, .ftkb a { color: var(--text-link); text-decoration: none; }
#ftw a:hover, .ftkb a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ── Brand text roles ── */
.ft-eyebrow {
  font: var(--role-eyebrow);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--text-accent);
}
.ft-hero    { font: var(--role-hero); letter-spacing: var(--tracking-tight); }
.ft-display { font: var(--role-display); letter-spacing: var(--tracking-tight); }
.ft-h1 { font: var(--role-h1); }
.ft-h2 { font: var(--role-h2); }
.ft-h3 { font: var(--role-h3); }
.ft-body { font: var(--role-body); color: var(--text-secondary); }
.ft-lead {
  font: var(--weight-regular) var(--text-lg)/var(--leading-relaxed) var(--font-sans);
  color: var(--text-secondary);
}
.ft-quote {
  font: var(--role-quote);
  font-style: italic;
  color: var(--text-primary);
}

/* ── Scripture reference styling ── */
.ft-verse-ref {
  font: var(--role-eyebrow);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--text-accent);
}

/* Decorative thin rule used as a section marker */
.ft-rule {
  width: 48px; height: 2px; border: 0;
  background: var(--clay-500);
  margin: 0;
}


/* Franktown Church Design System — global entry point.
   Consumers link THIS file. It is an @import manifest only. */
/* Franktown Church — Webfonts
   REAL brand fonts, confirmed from the live Elementor global kit (elementor-kit-16):
     • Nunito Sans       — body, UI, buttons, h1/h3/h4/h5, accents (the workhorse)
     • DM Sans           — primary headings (h2 / section titles)
     • Playfair Display  — editorial display serif & Scripture pull-quotes
     • Brittany Signature— flowing signature script (hero flourish lines)
     • IBM Plex Mono     — incidental / technical
   Nunito Sans, DM Sans, Playfair Display & IBM Plex Mono are Google Fonts.
   Sacramento is loaded as a closer casual-signature FALLBACK for Brittany
   Signature (a licensed, non-Google font self-hosted by the church).

   ✅ Brittany Signature is now self-hosted from assets/fonts/BrittanySignature.ttf
   (supplied by the user). The hosted-URL fallbacks remain for resilience. */

/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/f1a3bb7f-28e0-42c9-a7f8-346fe78abbc0.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: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/85975d4f-81d5-4041-8592-8f6b987e1c4d.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/c231ca32-fd6b-46d4-9701-82647857948c.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/8ef0eadc-e0d9-4d85-8e09-fb25c3a04b61.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/c231ca32-fd6b-46d4-9701-82647857948c.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/8ef0eadc-e0d9-4d85-8e09-fb25c3a04b61.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/c231ca32-fd6b-46d4-9701-82647857948c.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/8ef0eadc-e0d9-4d85-8e09-fb25c3a04b61.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/96ca072a-993a-46fc-90f9-f427192de8aa.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/572e22eb-7879-4c78-aaea-1bb766fc3702.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/1a296b13-1d12-4510-8d24-cb64a491eb51.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/ea635ac7-bb70-4ab5-b4d1-b8a08b785a01.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/857744af-3b87-4c74-be75-d18d58322a43.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/deb07369-fbac-419b-a843-05f2c8057a70.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/5792ba68-9b6b-4b70-850f-19f25ddbec7e.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/c80494a4-61c4-4b67-be96-7ef00a9d2304.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/86de9dcc-3ec9-479f-95b3-ecaee735c952.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: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/a2055890-eb54-4aa1-9013-a1a4c9d2f250.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: 'Nunito Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/6d586ea1-c629-4da6-92e1-e396f971ad07.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: 'Nunito Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/20d49b15-4541-4f16-bda5-f8cd0fcd9b96.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Nunito Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/143d01f5-18b3-49b9-9651-0fa0a3dc7d10.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: 'Nunito Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/2764a85e-27f1-4a56-9302-a4fe657c43e2.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: 'Nunito Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/7079a45c-553f-4f88-8c0c-1374314cbfec.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/013f68df-8cc2-4b2a-acf2-32fb26eaa4a0.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/33c72071-51f6-4fcc-bab1-c6ebbe2c5882.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/3d3e14a4-a8ce-4ef6-b666-219a8fa2e9ec.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/8fcf1dc9-236e-421e-ba2f-9e605467bb42.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 300;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/c814cd70-fc79-4afe-94e1-cc6590ddb8ed.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/013f68df-8cc2-4b2a-acf2-32fb26eaa4a0.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/33c72071-51f6-4fcc-bab1-c6ebbe2c5882.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/3d3e14a4-a8ce-4ef6-b666-219a8fa2e9ec.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/8fcf1dc9-236e-421e-ba2f-9e605467bb42.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/c814cd70-fc79-4afe-94e1-cc6590ddb8ed.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/013f68df-8cc2-4b2a-acf2-32fb26eaa4a0.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/33c72071-51f6-4fcc-bab1-c6ebbe2c5882.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/3d3e14a4-a8ce-4ef6-b666-219a8fa2e9ec.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/8fcf1dc9-236e-421e-ba2f-9e605467bb42.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/c814cd70-fc79-4afe-94e1-cc6590ddb8ed.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/013f68df-8cc2-4b2a-acf2-32fb26eaa4a0.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/33c72071-51f6-4fcc-bab1-c6ebbe2c5882.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/3d3e14a4-a8ce-4ef6-b666-219a8fa2e9ec.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/8fcf1dc9-236e-421e-ba2f-9e605467bb42.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/c814cd70-fc79-4afe-94e1-cc6590ddb8ed.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/013f68df-8cc2-4b2a-acf2-32fb26eaa4a0.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/33c72071-51f6-4fcc-bab1-c6ebbe2c5882.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/3d3e14a4-a8ce-4ef6-b666-219a8fa2e9ec.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/8fcf1dc9-236e-421e-ba2f-9e605467bb42.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/c814cd70-fc79-4afe-94e1-cc6590ddb8ed.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 900;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/013f68df-8cc2-4b2a-acf2-32fb26eaa4a0.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 900;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/33c72071-51f6-4fcc-bab1-c6ebbe2c5882.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 900;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/3d3e14a4-a8ce-4ef6-b666-219a8fa2e9ec.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 900;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/8fcf1dc9-236e-421e-ba2f-9e605467bb42.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: 'Nunito Sans';
  font-style: normal;
  font-weight: 900;
  font-stretch: 100%;
  font-display: swap;
  src: url("../fonts/c814cd70-fc79-4afe-94e1-cc6590ddb8ed.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 */
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/fd51705f-7110-40e6-8098-2eebf2170e27.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/4e235ee5-efb7-464d-81e1-479eb0c0111f.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: 'Playfair Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/917b3495-2c8c-4b7b-86e7-715f62c7cd61.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: 'Playfair Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/b74753c3-382b-4084-9785-265fe6a0c7e2.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 */
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/fd51705f-7110-40e6-8098-2eebf2170e27.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/4e235ee5-efb7-464d-81e1-479eb0c0111f.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: 'Playfair Display';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/917b3495-2c8c-4b7b-86e7-715f62c7cd61.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: 'Playfair Display';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/b74753c3-382b-4084-9785-265fe6a0c7e2.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 */
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/fd51705f-7110-40e6-8098-2eebf2170e27.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/4e235ee5-efb7-464d-81e1-479eb0c0111f.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: 'Playfair Display';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/917b3495-2c8c-4b7b-86e7-715f62c7cd61.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: 'Playfair Display';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/b74753c3-382b-4084-9785-265fe6a0c7e2.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 */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/9ee617a7-b480-486b-9466-7b4e5546b359.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/98e21dc6-9917-45c8-814c-cafc1af4640d.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: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/ffe52c14-f680-4ee8-a448-58db49a3f225.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: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/73a3a84a-73a1-4b39-aeae-ceee84eed5ef.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 */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/9ee617a7-b480-486b-9466-7b4e5546b359.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/98e21dc6-9917-45c8-814c-cafc1af4640d.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: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/ffe52c14-f680-4ee8-a448-58db49a3f225.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: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/73a3a84a-73a1-4b39-aeae-ceee84eed5ef.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 */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/9ee617a7-b480-486b-9466-7b4e5546b359.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/98e21dc6-9917-45c8-814c-cafc1af4640d.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: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/ffe52c14-f680-4ee8-a448-58db49a3f225.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: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/73a3a84a-73a1-4b39-aeae-ceee84eed5ef.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 */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/9ee617a7-b480-486b-9466-7b4e5546b359.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/98e21dc6-9917-45c8-814c-cafc1af4640d.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: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/ffe52c14-f680-4ee8-a448-58db49a3f225.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: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/73a3a84a-73a1-4b39-aeae-ceee84eed5ef.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 */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../fonts/9ee617a7-b480-486b-9466-7b4e5546b359.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../fonts/98e21dc6-9917-45c8-814c-cafc1af4640d.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: 'Playfair Display';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../fonts/ffe52c14-f680-4ee8-a448-58db49a3f225.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: 'Playfair Display';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../fonts/73a3a84a-73a1-4b39-aeae-ceee84eed5ef.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 */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../fonts/9ee617a7-b480-486b-9466-7b4e5546b359.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../fonts/98e21dc6-9917-45c8-814c-cafc1af4640d.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: 'Playfair Display';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../fonts/ffe52c14-f680-4ee8-a448-58db49a3f225.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: 'Playfair Display';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../fonts/73a3a84a-73a1-4b39-aeae-ceee84eed5ef.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: 'Sacramento';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/895b3cfe-8628-49b2-860f-c2dead36091c.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: 'Sacramento';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/6fd5528b-0d83-47ce-bba6-c9d0e1777834.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;
}


@font-face {
  font-family: 'Brittany Signature';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/d7086901-bc02-46c5-8848-17b0a05f95c6.ttf") format('truetype'),
       url('https://franktown.church/wp-content/uploads/2025/11/BrittanySignatureRegular.woff2') format('woff2');
}

/* Franktown Church — Color tokens
   CONFIRMED from the live Elementor global kit (elementor-kit-16):
     --e-global-color-primary    #1C4E80  navy        → headings, primary brand
     --e-global-color-secondary  #3A7CA5  steel blue  → links
     --e-global-color-text       #E2B65F  gold        → BUTTON background
     --e-global-color-accent     #2B2B2B  near-black  → ink / page-transition
     button hover                #CDA31F  deep gold
     others: #3399FF bright blue · #DFA93C gold · #D9C48A soft gold ·
             #F6EBC8 cream gold · #F1F0EC warm gray · #D5D5D8 gray ·
             #53687C slate · #CFD6C5 sage · #FFFFFF · #000000
   The action color on this brand is GOLD; navy & steel-blue carry structure
   and links. The logo cross is a brighter blue (kept as --logo-blue). */
#ftw, .ftkb, .ftk-page-body, .ftk-sheet, .ftk-store, .ftk-admin {
  /* ── Navy / Blue (structure, headings, links) ── */
  --navy-950: #112C49;
  --navy-900: #15314E;
  --navy-800: #1C4E80; /* PRIMARY — headings, brand, focus */
  --navy-700: #265E92;
  --blue-600: #3A7CA5; /* SECONDARY — links, steel blue */
  --blue-500: #3399FF; /* bright accent blue */
  --blue-400: #5C96D5;
  --blue-300: #8AB3E1;
  --blue-200: #B9D2EE;
  --blue-100: #DEEAF8;
  --blue-050: #EFF5FA;
  --logo-blue:       #2974C5; /* the offset-cross mark blue */
  --logo-blue-light: #5C96D5;

  /* ── Gold (the action color — buttons, accents, warmth) ── */
  --gold-700: #A87A14;
  --gold-600: #CDA31F; /* button hover */
  --gold-500: #DFA93C; /* gold */
  --gold-400: #E2B65F; /* ACCENT — button background */
  --gold-300: #D9C48A; /* soft gold */
  --gold-200: #F6EBC8; /* cream gold */
  --gold-100: #FAF1D8;
  --gold-050: #FCF8EE;

  /* ── Warm neutrals & ink ── */
  --white:     #FFFFFF;
  --cream:     #FBF6EB;
  --warm-100:  #F1F0EC; /* warm gray section surface */
  --warm-200:  #E4E2DB;
  --sage:      #CFD6C5; /* muted green-gray accent */
  --slate:     #53687C; /* desaturated blue-gray text */
  --gray-300:  #D5D5D8; /* light gray (kit) */
  --gray-400:  #9AA0A8;
  --gray-500:  #6A7078;
  --gray-700:  #3A3F45;
  --ink:       #2B2B2B; /* accent near-black — body/ink */

  /* ── Semantic status ── */
  --success: #2E7D52;
  --warning: #CDA31F;
  --danger:  #C23B2E;
  --info:    #3A7CA5;

  /* ── Semantic aliases (use these in components) ── */
  --primary:           var(--navy-800); /* brand navy */
  --primary-hover:     var(--navy-900);
  --primary-active:    var(--navy-950);
  --primary-contrast:  #FFFFFF;

  --secondary:         var(--blue-600); /* steel blue — links */
  --secondary-hover:   var(--navy-800);

  --accent:            var(--gold-400); /* gold — the action color */
  --accent-hover:      var(--gold-600);
  --accent-soft:       var(--gold-050);
  --accent-contrast:   #FFFFFF;

  /* Buttons on this brand are gold with white uppercase text, 6px radius */
  --btn-bg:            var(--gold-400);
  --btn-bg-hover:      var(--gold-600);
  --btn-fg:            #FFFFFF;

  --bg-page:           #FFFFFF;
  --bg-inset:          var(--warm-100);
  --surface-card:      #FFFFFF;
  --surface-raised:    #FFFFFF;
  --surface-cream:     var(--gold-050);
  --surface-navy:      var(--navy-800);
  --surface-navy-deep: var(--navy-900);
  --surface-gold:      var(--gold-400);
  --surface-sage:      var(--sage);

  --text-primary:      var(--ink);
  --text-heading:      var(--navy-800); /* navy headlines */
  --text-secondary:    var(--slate);
  --text-muted:        var(--gray-500);
  --text-on-navy:      #FFFFFF;
  --text-on-navy-soft: #C5D6E8;
  --text-on-gold:      #FFFFFF;
  --text-accent:       var(--gold-600); /* eyebrows */
  --text-link:         var(--blue-600);
  --text-link-hover:   var(--navy-800);

  --border:            #E5E7EA;
  --border-warm:       var(--warm-200);
  --border-strong:     var(--gray-300);
  --border-focus:      var(--navy-800);

  --radius-button:     6px; /* the kit's button radius */

  /* ── Legacy aliases ───────────────────────────────────────────────
     Earlier drafts used a blue-primary / pine / clay vocabulary. Kept as
     correctly-valued aliases so existing components & cards render on-brand.
     TODO: migrate component variant names, then drop. */
  --blue-950: var(--navy-950);
  --blue-900: var(--navy-900);
  --blue-800: var(--navy-800);
  --blue-700: var(--navy-700);

  --pine-900: var(--navy-900);
  --pine-800: var(--navy-800);
  --pine-700: var(--navy-800);
  --pine-600: var(--navy-700);
  --pine-500: var(--blue-600);
  --pine-300: var(--blue-300);
  --pine-200: var(--blue-200);
  --pine-100: var(--blue-100);
  --pine-050: var(--blue-050);

  --clay-800: var(--gold-700);
  --clay-700: var(--gold-600);
  --clay-500: var(--gold-500);
  --clay-300: var(--gold-300);
  --clay-200: var(--gold-200);
  --clay-100: var(--gold-100);
  --clay-050: var(--gold-050);

  --sky-800: var(--navy-800);
  --sky-700: var(--navy-700);
  --sky-500: var(--blue-600);
  --sky-300: var(--blue-300);
  --sky-100: var(--blue-100);

  --gray-200: #E5E7EA;
  --parchment:  var(--warm-100);
  --sand:       var(--warm-100);
  --line-warm:  var(--warm-200);
  --ink-900:    var(--ink);
  --ink-700:    var(--gray-700);
  --ink-500:    var(--gray-500);
  --ink-400:    var(--gray-400);
  --ink-300:    var(--gray-300);

  --surface-pine:      var(--surface-navy);
  --surface-pine-deep: var(--surface-navy-deep);
  --text-on-pine:      var(--text-on-navy);
  --text-on-pine-soft: var(--text-on-navy-soft);
}

/* Franktown Church — Typography tokens
   Confirmed from the live Elementor global kit (elementor-kit-16):
     Sans / body / UI:  Nunito Sans  (h1, h3–h5, body, buttons, accents)
     Headings:          DM Sans      (h2 / primary section titles, 700)
     Editorial serif:   Playfair Display (display moments & Scripture, 900)
     Script accent:     Brittany Signature (hero flourish lines)
     Mono:              IBM Plex Mono (incidental) */
#ftw, .ftkb, .ftk-page-body, .ftk-sheet, .ftk-store, .ftk-admin {
  --font-sans:    "Nunito Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  --font-heading: "DM Sans", "Nunito Sans", ui-sans-serif, system-ui, -apple-system, Helvetica, Arial, sans-serif;
  --font-serif:   "Playfair Display", "Iowan Old Style", Georgia, "Times New Roman", serif;
  --font-script:  "Brittany Signature", "Sacramento", "Snell Roundhand", "Brush Script MT", cursive;
  --font-mono:    "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  /* Legacy alias: some components reference --font-display */
  --font-display: var(--font-heading);

  /* Type scale — mirrors the site's editorial scale */
  --text-3xs: 0.6875rem;  /* 11px — overline / eyebrow */
  --text-2xs: 0.75rem;    /* 12px */
  --text-xs:  0.8125rem;  /* 13px */
  --text-sm:  0.9375rem;  /* 15px */
  --text-base:1.1875rem;  /* 19px — body default (site uses 19px) */
  --text-lg:  1.375rem;   /* 22px */
  --text-xl:  1.5rem;     /* 24px */
  --text-2xl: 2rem;       /* 32px — h3 */
  --text-3xl: 2.625rem;   /* 42px — Playfair secondary display */
  --text-4xl: 3.75rem;    /* 60px — DM Sans primary heading */
  --text-5xl: 5rem;       /* 80px — hero */

  /* Weights (Nunito Sans ranges 300–900) */
  --weight-light:    300;
  --weight-regular:  400;
  --weight-medium:   500;
  --weight-semibold: 600;
  --weight-bold:     700;
  --weight-extrabold:800;
  --weight-black:    900;

  /* Line heights — the site runs tight headers, ~1.3 body */
  --leading-tight:   1.05;
  --leading-snug:    1.15;
  --leading-normal:  1.3;
  --leading-relaxed: 1.55;

  /* Letter spacing */
  --tracking-tight:  0;
  --tracking-normal: 0;
  --tracking-wide:   0.04em;
  --tracking-eyebrow:0.12em; /* h5 / overlines run ~1.5px */

  /* Semantic roles — which face each thing uses, per the live kit
     - Hero flourish .................. Brittany Signature (script)
     - Hero headline / big display .... Playfair Display (serif, 900)
     - Section headlines (h2) ......... DM Sans (700)
     - Sub-structure (h3) ............. Nunito Sans (900)
     - Body / UI / labels / buttons ... Nunito Sans
     - Scripture / pull-quote ......... Playfair Display (italic) */
  --role-script:     var(--weight-regular) var(--text-5xl)/1.0 var(--font-script);
  --role-hero:       var(--weight-black) var(--text-5xl)/var(--leading-tight) var(--font-serif);
  --role-display:    var(--weight-extrabold) var(--text-4xl)/1.1 var(--font-serif);   /* warm/scripture feature headings (Playfair) */
  --role-h1:         var(--weight-extrabold) var(--text-4xl)/1.1 var(--font-serif);
  --role-section:    var(--weight-bold) var(--text-4xl)/var(--leading-snug) var(--font-heading); /* structural headings (DM Sans) */
  --role-h2:         var(--weight-bold) var(--text-3xl)/var(--leading-snug) var(--font-heading);
  --role-subhead:    var(--weight-extrabold) var(--text-xl)/var(--leading-snug) var(--font-sans);
  --role-h3:         var(--weight-black) var(--text-xl)/var(--leading-snug) var(--font-sans);
  --role-body:       var(--weight-regular) var(--text-base)/var(--leading-relaxed) var(--font-sans);
  --role-body-sm:    var(--weight-regular) var(--text-sm)/var(--leading-normal) var(--font-sans);
  --role-label:      var(--weight-bold) var(--text-sm)/1.2 var(--font-sans);
  --role-eyebrow:    var(--weight-semibold) var(--text-3xs)/1.2 var(--font-sans);
  --role-button:     var(--weight-semibold) var(--text-base)/1 var(--font-sans);
  --role-quote:      400 var(--text-3xl)/1.25 var(--font-serif);
}

/* Franktown Church — Spacing, radius, shadow, layout tokens */
#ftw, .ftkb, .ftk-page-body, .ftk-sheet, .ftk-store, .ftk-admin {
  /* Spacing — 4px base, generous & airy to feel restful */
  --space-0:  0;
  --space-1:  0.25rem;  /* 4 */
  --space-2:  0.5rem;   /* 8 */
  --space-3:  0.75rem;  /* 12 */
  --space-4:  1rem;     /* 16 */
  --space-5:  1.5rem;   /* 24 */
  --space-6:  2rem;     /* 32 */
  --space-7:  3rem;     /* 48 */
  --space-8:  4rem;     /* 64 */
  --space-9:  6rem;     /* 96 */
  --space-10: 8rem;     /* 128 */

  /* Radius — soft, grounded; not pill-heavy */
  --radius-xs:  4px;
  --radius-sm:  8px;
  --radius-md:  12px;
  --radius-lg:  18px;
  --radius-xl:  28px;
  --radius-pill: 999px;

  /* Shadows — soft, low, slightly warm */
  --shadow-xs: 0 1px 2px rgba(35, 31, 32, 0.06);
  --shadow-sm: 0 1px 3px rgba(35, 31, 32, 0.08), 0 1px 2px rgba(35, 31, 32, 0.05);
  --shadow-md: 0 6px 18px rgba(35, 31, 32, 0.09), 0 2px 6px rgba(35, 31, 32, 0.05);
  --shadow-lg: 0 18px 44px rgba(35, 31, 32, 0.12), 0 6px 14px rgba(35, 31, 32, 0.06);
  --shadow-navy: 0 16px 40px rgba(28, 78, 128, 0.28);
  --shadow-pine: var(--shadow-navy); /* legacy alias */

  /* Borders */
  --border-width: 1px;
  --border-width-strong: 1.5px;

  /* Layout */
  --container-sm: 640px;
  --container-md: 880px;
  --container-lg: 1140px;
  --container-xl: 1320px;
  --gutter: var(--space-5);

  /* Motion — calm, no bounce; gentle ease */
  --ease-out: cubic-bezier(0.22, 0.61, 0.36, 1); /* @kind other */
  --ease-in-out: cubic-bezier(0.45, 0, 0.2, 1); /* @kind other */
  --dur-fast: 140ms; /* @kind other */
  --dur-base: 220ms; /* @kind other */
  --dur-slow: 420ms; /* @kind other */
}

/* Franktown Church — base element styles & reusable utility classes.
   Lightweight: sets page defaults and a few brand primitives. */

#ftw, .ftkb {
  background: var(--bg-page);
  color: var(--text-primary);
  font: var(--role-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

#ftw h1, #ftw h2, #ftw h3, #ftw h4,
.ftkb h1, .ftkb h2, .ftkb h3, .ftkb h4 { margin: 0; color: var(--text-primary); text-wrap: balance; }
#ftw p, .ftkb p { margin: 0; text-wrap: pretty; }
#ftw a, .ftkb a { color: var(--text-link); text-decoration: none; }
#ftw a:hover, .ftkb a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ── Brand text roles ── */
.ft-eyebrow {
  font: var(--role-eyebrow);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--text-accent);
}
.ft-hero    { font: var(--role-hero); letter-spacing: var(--tracking-tight); }
.ft-display { font: var(--role-display); letter-spacing: var(--tracking-tight); }
.ft-h1 { font: var(--role-h1); }
.ft-h2 { font: var(--role-h2); }
.ft-h3 { font: var(--role-h3); }
.ft-body { font: var(--role-body); color: var(--text-secondary); }
.ft-lead {
  font: var(--weight-regular) var(--text-lg)/var(--leading-relaxed) var(--font-sans);
  color: var(--text-secondary);
}
.ft-quote {
  font: var(--role-quote);
  font-style: italic;
  color: var(--text-primary);
}

/* ── Scripture reference styling ── */
.ft-verse-ref {
  font: var(--role-eyebrow);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--text-accent);
}

/* Decorative thin rule used as a section marker */
.ft-rule {
  width: 48px; height: 2px; border: 0;
  background: var(--clay-500);
  margin: 0;
}



/* ============================================================
   Franktown Church — "Tap to Connect" welcome page
   Page-specific layout. Brand tokens come from the design system
   (tokens/*.css + styles.css). Everything scoped under #ftw.
   Mobile-first: designed at ~390px, scales up gracefully.
   ============================================================ */

#ftw, .ftkb, .ftk-page-body, .ftk-sheet, .ftk-store, .ftk-admin { --ftw-wrap: 600px; }

/* [global html/body reset removed — full-screen routes use .ftk-page-body; shortcode must not touch the host page] */

#ftw, #ftw *, #ftw *::before, #ftw *::after { box-sizing: border-box; }

#ftw {
  font-family: var(--font-sans);
  color: var(--text-primary);
  background: #fff;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  position: relative;
  /* page responds to its OWN width (phone frame or full screen), not the viewport */
  container-type: inline-size;
}

/* Full-bleed bands with an inner centered column */
#ftw .band {
  width: 100%;
  margin-left: 0;
  position: relative;
}
#ftw .wrap {
  width: 92%;
  max-width: var(--ftw-wrap);
  margin: 0 auto;
}

/* ---------- Header / hero ---------- */
#ftw .hero {
  color: #fff;
  isolation: isolate;
  overflow: hidden;
}
#ftw .hero--photo {
  background: var(--navy-900);
}
#ftw .hero--photo .hero__bg {
  position: absolute;
  inset: 0;
  background-image: var(--hero-img);
  background-size: cover;
  background-position: center 38%;
  z-index: -2;
}
#ftw .hero--photo .hero__scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(17,44,73,0.62) 0%,
    rgba(17,44,73,0.58) 42%,
    rgba(17,44,73,0.88) 100%);
  z-index: -1;
}
#ftw .hero--navy {
  background:
    radial-gradient(120% 80% at 50% -10%, var(--navy-700) 0%, var(--navy-900) 70%);
}

#ftw .hero__inner {
  padding: 22px 0 34px;
  text-align: center;
}

/* Compact header variant — shorter hero so the actions sit higher */
#ftw .hero--compact .hero__inner { padding: 15px 0 22px; }
#ftw .hero--compact .brandbar { padding-bottom: 32px; }
#ftw .hero--compact .hero__script { font-size: clamp(34px, 12vw, 50px); }
#ftw .hero--compact .hero__welcome {
  font-size: clamp(18px, 5vw, 23px);
  margin-top: 26px;
}
#ftw .hero--compact .chip { margin-top: 15px; padding: 10px 16px; }
#ftw .hero--compact .chip__row { font-size: var(--text-xs); }
#ftw .hero--compact .chip__row svg { width: 15px; height: 15px; }
#ftw .brandbar {
  display: flex;
  justify-content: center;
  padding-bottom: 26px;
}
#ftw .hero__script {
  font-family: var(--font-script);
  font-weight: 400;
  font-size: clamp(46px, 17vw, 76px);
  line-height: 0.9;
  color: var(--gold-400);
  text-shadow: 0 2px 18px rgba(17,44,73,0.45);
  margin: 0;
}
#ftw .hero__welcome {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(23px, 6.6vw, 30px);
  line-height: 1.18;
  margin: 10px auto 0;
  max-width: 18ch;
  color: #fff;
  text-wrap: balance;
}

/* Logistics chip */
#ftw .chip {
  display: inline-flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 22px;
  padding: 13px 20px;
  background: rgba(255,255,255,0.10);
  border: 1px solid rgba(255,255,255,0.22);
  border-radius: var(--radius-lg);
  backdrop-filter: blur(2px);
  text-align: left;
}
#ftw .chip__row {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: 0.01em;
}
#ftw .chip__row svg { width: 17px; height: 17px; color: var(--gold-400); flex: none; }

/* Tappable "add to calendar" row */
#ftw button.chip__cal {
  font: inherit;
  color: #fff;
  background: transparent;
  border: 0;
  margin: 0;
  padding: 0;
  width: 100%;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
#ftw button.chip__cal > span:not(.chip__add) { flex: 1; }
#ftw .chip__add {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  flex: none;
  font-size: var(--text-2xs);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--gold-400);
  padding: 4px 9px 4px 7px;
  border: 1px solid rgba(226,182,95,0.5);
  border-radius: 999px;
  transition: background var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);
}
#ftw .chip__add svg { width: 13px; height: 13px; color: currentColor; }
#ftw button.chip__cal:hover .chip__add { background: var(--gold-400); color: var(--navy-900); }
#ftw button.chip__cal:active .chip__add { transform: translateY(1px); }
#ftw a.chip__map {
  color: #fff;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,0.4);
  padding-bottom: 1px;
}
#ftw a.chip__map:hover { border-color: var(--gold-400); }

/* ---------- Body sections ---------- */
#ftw .stack { padding: 34px 0 8px; }
#ftw .blk { margin-bottom: 16px; }

#ftw .section-eyebrow {
  font: var(--role-eyebrow);
  font-size: var(--text-2xs);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--text-accent);
  margin: 26px 0 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}
#ftw .section-eyebrow::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--border-warm);
}

/* Primary Connect block */
#ftw .connect {
  background: var(--gold-050);
  border: 1px solid var(--gold-200);
  border-radius: var(--radius-lg);
  padding: 22px 20px 24px;
  box-shadow: var(--shadow-sm);
}
#ftw .connect__sub {
  font-size: var(--text-base);
  line-height: 1.4;
  color: var(--text-primary);
  margin: 0 0 18px;
  text-wrap: pretty;
}
#ftw .connect__sub strong { color: var(--navy-800); font-weight: 800; }

/* Tap tiles (secondary actions) */
#ftw a.tile,
#ftw button.tile {
  display: flex;
  align-items: center;
  gap: 15px;
  min-height: 66px;
  width: 100%;
  padding: 15px 17px;
  background: #fff;
  border: 1px solid var(--border-warm);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-xs);
  text-decoration: none;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: border-color var(--dur-base) var(--ease-out),
              box-shadow var(--dur-base) var(--ease-out),
              transform var(--dur-fast) var(--ease-out);
}
#ftw a.tile:hover,
#ftw button.tile:hover {
  border-color: var(--navy-700);
  box-shadow: var(--shadow-md);
}
#ftw a.tile:active,
#ftw button.tile:active { transform: translateY(1px); }
#ftw .tile__icon {
  flex: none;
  width: 46px; height: 46px;
  display: grid; place-items: center;
  border-radius: var(--radius-sm);
  background: var(--blue-050);
  color: var(--navy-800);
}
#ftw .tile__icon svg { width: 23px; height: 23px; }
#ftw .tile__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
#ftw .tile__label,
#ftw .tile__cap { display: block; }
#ftw .tile__label {
  font-family: var(--font-sans);
  font-weight: 800;
  font-size: var(--text-lg);
  color: var(--navy-800);
  line-height: 1.1;
}
#ftw .tile__cap {
  font-size: var(--text-sm);
  color: var(--text-secondary);
  margin-top: 3px;
  line-height: 1.3;
}
#ftw .tile__chev { flex: none; color: var(--gray-400); }
#ftw .tile__chev svg { width: 20px; height: 20px; display: block; }

/* tighten the two watch & study tiles together */
#ftw .tile + .tile { margin-top: 10px; }

/* Give — quieter */
#ftw .give {
  margin-top: 8px;
  text-align: center;
  padding: 6px 0 2px;
}
#ftw .give__line {
  font-size: var(--text-sm);
  color: var(--text-secondary);
  margin: 0 0 12px;
}

/* ---------- Footer ---------- */
#ftw .foot {
  background: var(--ink);
  color: #fff;
  margin-top: 38px;
}
#ftw .foot__inner { padding: 40px 0 34px; }
#ftw .foot__mark { display: flex; justify-content: center; margin-bottom: 24px; }
#ftw .foot__times {
  display: flex;
  justify-content: center;
  gap: 0;
  flex-wrap: wrap;
  border-top: 1px solid rgba(255,255,255,0.14);
  border-bottom: 1px solid rgba(255,255,255,0.14);
  padding: 18px 0;
  margin-bottom: 22px;
}
#ftw .foot__time { padding: 6px 18px; text-align: center; }
#ftw .foot__time .lab {
  font: var(--role-eyebrow);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--gold-300);
  display: block;
  margin-bottom: 3px;
}
#ftw .foot__time .val { font-weight: 700; font-size: var(--text-sm); }
#ftw .foot__contact {
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 9px;
  font-size: var(--text-sm);
}
#ftw .foot__contact a {
  color: rgba(255,255,255,0.88);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  justify-content: center;
}
#ftw .foot__contact a:hover { color: var(--gold-400); }
#ftw .foot__contact svg { width: 16px; height: 16px; color: var(--gold-400); flex: none; }
#ftw .foot__tag {
  margin-top: 22px;
  text-align: center;
  font-family: var(--font-script);
  font-size: 27px;
  color: var(--gold-300);
}

/* ---------- Scroll/entrance reveal (progressive enhancement) ----------
   Pure CSS animation gated on a class added to #ftw (which React does NOT
   control), so re-renders can't strip it. If JS never runs, or reduced
   motion, .reveal has no hidden state and everything shows. */
#ftw.reveal-on .reveal {
  animation: ftw-rise 0.55s var(--ease-out) both;
}
@keyframes ftw-rise {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  #ftw.reveal-on .reveal { animation: none; }
}

/* ---------- Wider-screen niceties (container query: based on page width) ---------- */
@container (min-width: 680px) {
  #ftw .hero__inner { padding: 30px 0 44px; }
  #ftw .stack { padding: 44px 0 8px; }
}

/* ============================================================
   Desktop phone-frame preview
   On a phone (<760px viewport) the page fills the screen as normal.
   On a computer it sits inside a switchable phone bezel.
   ============================================================ */
/* .stage neutralized */
/* .devbar neutralized */

/* [device-frame preview chrome removed for production] */

/* ============================================================
   Church Center app — bottom sheet / modal
   Rendered outside #ftw, so styles are unscoped.
   ============================================================ */
.ftk-sheet {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  background: rgba(17,28,42,0.55);
  backdrop-filter: blur(3px);
  font-family: var(--font-sans);
  animation: sheet-fade .22s var(--ease-out);
}
@keyframes sheet-fade { from { opacity: 0; } to { opacity: 1; } }

.sheet__panel {
  position: relative;
  width: 100%;
  max-width: 560px;
  max-height: 92vh;
  background: #fff;
  border-radius: 24px 24px 0 0;
  box-shadow: 0 -16px 50px -12px rgba(0,0,0,0.4);
  animation: sheet-rise .3s var(--ease-out);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
@keyframes sheet-rise { from { transform: translateY(28px); } to { transform: none; } }

.sheet__close {
  position: absolute;
  top: 14px; right: 14px;
  z-index: 2;
  width: 38px; height: 38px;
  display: grid; place-items: center;
  border: 0;
  border-radius: 999px;
  background: rgba(17,28,42,0.06);
  color: var(--ink);
  cursor: pointer;
  transition: background .15s;
}
.sheet__close:hover { background: rgba(17,28,42,0.13); }
.sheet__close svg { width: 20px; height: 20px; }

.sheet__scroll {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 30px 24px 28px;
}

.sheet__eyebrow {
  font: var(--role-eyebrow);
  font-size: var(--text-2xs);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--text-accent);
  margin: 0 0 8px;
}
.sheet__title {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(24px, 6.4vw, 30px);
  line-height: 1.16;
  color: var(--navy-900);
  margin: 0 0 8px;
  max-width: 20ch;
  text-wrap: balance;
}
.sheet__lede {
  font-size: var(--text-base);
  line-height: 1.45;
  color: var(--text-secondary);
  margin: 0 0 20px;
  text-wrap: pretty;
}

.sheet__video {
  position: relative;
  width: 100%;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--navy-900);
  margin-bottom: 22px;
  box-shadow: var(--shadow-sm);
}
.sheet__video video,
.sheet__video iframe {
  display: block;
  width: 100%;
  max-height: 60vh;
  aspect-ratio: 9 / 16;
  border: 0;
  background: #000;
  object-fit: contain;
}
.sheet__poster {
  aspect-ratio: 16 / 9;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: rgba(255,255,255,0.9);
}
.sheet__posterplay {
  width: 58px; height: 58px;
  display: grid; place-items: center;
  border-radius: 999px;
  background: var(--gold-400);
  color: var(--navy-900);
}
.sheet__posterplay svg { width: 30px; height: 30px; }
.sheet__posterlbl { font-size: var(--text-sm); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }

.sheet__steps {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.sheet__step {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  font-size: var(--text-base);
  line-height: 1.4;
  color: var(--text-primary);
}
.sheet__step strong { color: var(--navy-900); font-weight: 800; }
.sheet__num {
  flex: none;
  width: 30px; height: 30px;
  display: grid; place-items: center;
  border-radius: 999px;
  background: var(--navy-800);
  color: #fff;
  font-weight: 800;
  font-size: var(--text-sm);
  font-variant-numeric: tabular-nums;
}

.sheet__stores {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 11px;
  margin-bottom: 14px;
}
.ftk-store {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-width: 0;
  min-height: 56px;
  padding: 8px 10px;
  background: var(--ink);
  color: #fff;
  border-radius: var(--radius-md);
  text-decoration: none;
  transition: background .15s, transform var(--dur-fast) var(--ease-out);
}
.ftk-store:hover { background: #000; }
.ftk-store:active { transform: translateY(1px); }
.ftk-store svg { width: 22px; height: 22px; flex: none; fill: currentColor; stroke: none; }
.ftk-store span { font-weight: 800; font-size: 15px; min-width: 0; white-space: nowrap; }

.sheet__web {
  display: block;
  text-align: center;
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--blue-600, #3A7CA5);
  text-decoration: none;
  padding: 6px 0 2px;
}
.sheet__web:hover { color: var(--navy-800); }

@media (prefers-reduced-motion: reduce) {
  .sheet, .sheet__panel { animation: none; }
}

/* On wide screens, center the sheet as a dialog rather than a bottom sheet */
@media (min-width: 760px) {
  .ftk-sheet { align-items: center; padding: 24px; }
  .sheet__panel { border-radius: 24px; max-height: 88vh; }
}
