/* Figtree and Libre Caslon Display (SIL Open Font License 1.1, see /fonts/OFL-*.txt), self-hosted.
   The files and these rules are exactly what Google Fonts served the approved previews on 2026-10-30. */
/* latin-ext */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/figtree-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/figtree-latin.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: 'Figtree';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/figtree-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/figtree-latin.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: 'Figtree';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/figtree-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/figtree-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Libre Caslon Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/libre-caslon-display-latin-ext.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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Libre Caslon Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/libre-caslon-display-latin.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;
}

/* Size-adjusted fallbacks, so nothing moves when the web fonts swap in.
   Until Figtree and Libre Caslon Display arrive, text is set in a font the visitor already has, resized to the web
   font's width and given its ascent and descent, so it takes the same room. --display and --text (in the page
   stylesheets) list these families straight after the web font; the first one installed is used (Big Caslon and
   Helvetica Neue on a Mac, Georgia and Arial on Windows, then Times New Roman). Where none is (Android), the plain
   fallbacks at the end of the stack apply as before. Each local font is its own family because each needs its own
   numbers; Figtree's three weights each map to the local font's own weight (Arial has no medium, so 500 is Arial).
   The numbers were measured in Chrome on 2026-10-30 over the site's own text, at widths from 320 to 1920 px:
   - size-adjust is the web font's width over the local font's. For the headings it sits a little under the average
     (Big Caslon 91.1%, Georgia 83.7%, Times New Roman 91.2%), so a heading that just fits a line in Libre Caslon
     Display also fits in the fallback ("Schedule a tasting" at 430 px, "Wedding cakes" at 820 px).
   - ascent-override and descent-override are the web font's ascent and descent (Libre Caslon Display 97% and 26.6%,
     Figtree 95% and 25%) divided by size-adjust. Neither web font has a line gap, hence line-gap-override 0%.
   Headings capped in ch (max-width: 13ch, below the first screen) can still rewrap: ch is the width of the
   fallback's own "0", which size-adjust cannot match. */
@font-face {
  font-family: 'Caslon fallback Big Caslon';
  font-style: normal;
  font-weight: 400;
  src: local('Big Caslon Medium'), local('BigCaslon-Medium');
  size-adjust: 89%;
  ascent-override: 109%;
  descent-override: 29.9%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Caslon fallback Georgia';
  font-style: normal;
  font-weight: 400;
  src: local('Georgia');
  size-adjust: 82.5%;
  ascent-override: 117.6%;
  descent-override: 32.2%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Caslon fallback Times New Roman';
  font-style: normal;
  font-weight: 400;
  src: local('Times New Roman'), local('TimesNewRomanPSMT');
  size-adjust: 90%;
  ascent-override: 107.8%;
  descent-override: 29.6%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Figtree fallback Helvetica Neue';
  font-style: normal;
  font-weight: 400;
  src: local('Helvetica Neue'), local('HelveticaNeue');
  size-adjust: 99.4%;
  ascent-override: 95.6%;
  descent-override: 25.2%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Figtree fallback Helvetica Neue';
  font-style: normal;
  font-weight: 500;
  src: local('Helvetica Neue Medium'), local('HelveticaNeue-Medium');
  size-adjust: 97.4%;
  ascent-override: 97.5%;
  descent-override: 25.7%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Figtree fallback Helvetica Neue';
  font-style: normal;
  font-weight: 600;
  src: local('Helvetica Neue Bold'), local('HelveticaNeue-Bold');
  size-adjust: 95.1%;
  ascent-override: 99.9%;
  descent-override: 26.3%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Figtree fallback Arial';
  font-style: normal;
  font-weight: 400;
  src: local('Arial'), local('ArialMT');
  size-adjust: 100.8%;
  ascent-override: 94.2%;
  descent-override: 24.8%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Figtree fallback Arial';
  font-style: normal;
  font-weight: 500;
  src: local('Arial'), local('ArialMT');
  size-adjust: 101.2%;
  ascent-override: 93.9%;
  descent-override: 24.7%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Figtree fallback Arial';
  font-style: normal;
  font-weight: 600;
  src: local('Arial Bold'), local('Arial-BoldMT');
  size-adjust: 95%;
  ascent-override: 100%;
  descent-override: 26.3%;
  line-gap-override: 0%;
}
