/* GENERATED by scripts/buildChunkAssets.mjs: frillyconcierge's override CSS, from src/clients/frillyconcierge/*.css in filename order. Do not edit; edit the source and rerun the script. */

/* ─ announcement.css ─ */
.fc-callout, .fc-callout * { box-sizing: border-box; }
.fc-callout { font-family: var(--client-font-body), sans-serif; }
.fc-callout__lead {
  font-family: var(--client-type-callout-lead-font), sans-serif;
  font-size: var(--client-type-callout-lead-size);
  line-height: var(--client-type-callout-lead-lh);
  font-weight: var(--client-type-callout-lead-weight);
  letter-spacing: var(--client-type-callout-lead-tracking);
  color: var(--client-type-callout-lead-color);
}
/* The strip itself (its ground, row, head, sentence, links and phone stack) is `callout-strip.css`, shared with the homepage Proof (CLT-65). */

/* ─ article-body.css ─ */
.fc-article, .fc-article * { box-sizing: border-box; }
.fc-article { padding: var(--client-band-article); padding-block-start: 0; font-family: var(--client-font-body), sans-serif; }
/* The frame's one content band is two chunks here; the header zeroes its lower edge, this one its upper. */
.fc-article__inner { max-width: var(--client-measure); margin: 0 auto; display: grid; grid-template-columns: var(--client-article-prose-width) var(--client-article-rail-width); column-gap: var(--client-article-rail-gap); row-gap: var(--client-article-row-gap); align-items: start; }
.fc-article__prose { min-width: 0; font-size: var(--client-type-body-size); line-height: var(--client-type-body-lh); font-weight: var(--client-type-body-weight); color: var(--client-body); }
.fc-article__prose > * { margin: 0; }
.fc-article__prose > * + * { margin-top: 1lh; } /* one line of the prose's own height, whatever unit the role states */
.fc-article__prose > h2 { margin-top: var(--client-article-heading-space-above); 
  font-family: var(--client-type-essay-heading-font), sans-serif;
  font-size: var(--client-type-essay-heading-size);
  line-height: var(--client-type-essay-heading-lh);
  font-weight: var(--client-type-essay-heading-weight);
  color: var(--client-type-essay-heading-color); }
.fc-article__prose > h2:first-child { margin-top: 0; }
.fc-article__prose > h2 + * { margin-top: var(--client-article-heading-space-below); }
.fc-article__prose a { text-decoration: underline; } /* colour: text-links.css (CLT-65) */
.fc-article__prose ul, .fc-article__prose ol { list-style: none; padding: var(--client-article-list-inset); display: flex; flex-direction: column; }
.fc-article__prose > ul, .fc-article__prose > ol { margin-top: var(--client-article-list-space-above); }
.fc-article__prose li { padding-left: var(--client-article-bullet-size); }
/* The glyph hangs in the 24 the copy is indented by (the frame's bullet and its 12 gap); the serializer writes the copy as bare inline runs, so no flex or grid here. */
.fc-article__prose li::before { content: '•'; display: inline-block; width: var(--client-article-bullet-size); margin-left: calc(-1 * var(--client-article-bullet-size)); 
  font-family: var(--client-type-article-bullet-font), sans-serif;
  font-size: var(--client-type-article-bullet-size);
  line-height: var(--client-type-article-bullet-lh);
  font-weight: var(--client-type-article-bullet-weight);
  color: var(--client-type-article-bullet-color); }
.fc-article__prose ol { counter-reset: item; }
.fc-article__prose ol > li::before { counter-increment: item; content: counter(item) '.'; }
.fc-article__prose blockquote { margin-left: var(--client-article-quote-inset); }
.fc-article__prose img { display: block; max-width: 100%; height: auto; border-radius: var(--client-article-image-radius); }
/* Pinned, the menu stops under the sticky nav by the frame's gap between the nav and the content (the article band's
   upper edge, the theme's 20): the nav's height from the theme plus that gap, never 0, so the nav never covers it. */
.fc-article__menu { padding: var(--client-article-rail-padding); display: flex; flex-direction: column; gap: var(--client-article-rail-item-gap); position: sticky; top: calc(var(--client-nav-height) + var(--client-space-md)); align-self: start; }
.fc-article__menu-heading { margin: 0; padding-bottom: var(--client-article-rail-heading-space); border-bottom: var(--client-article-rule-weight) solid var(--client-ds-stroke2); 
  font-family: var(--client-type-outline-heading-font), sans-serif;
  font-size: var(--client-type-outline-heading-size);
  line-height: var(--client-type-outline-heading-lh);
  font-weight: var(--client-type-outline-heading-weight);
  color: var(--client-type-outline-heading-color); }
.fc-article__menu ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--client-article-rail-item-gap); }
.fc-article__menu a { display: flex; align-items: flex-start; gap: var(--client-article-rail-link-gap); text-decoration: none; 
  font-family: var(--client-type-outline-link-font), sans-serif;
  font-size: var(--client-type-outline-link-size);
  line-height: var(--client-type-outline-link-lh);
  font-weight: var(--client-type-outline-link-weight);
  color: var(--client-type-outline-link-color); }
.fc-article__menu svg { display: block; flex: none; width: var(--client-article-rail-chevron-width); height: var(--client-article-rail-chevron-height); margin-top: var(--client-article-rail-chevron-offset); overflow: visible; color: var(--client-ds-form-stroke); }
.fc-article__rule { grid-column: 1 / -1; height: 0; margin: var(--client-article-rule-space); border: 0; border-top: var(--client-article-rule-weight) solid var(--client-ds-stroke2); }
@media (max-width: 779px) {
  .fc-article__inner { grid-template-columns: minmax(0, 1fr); }
  .fc-article__menu { order: -1; padding: 0; position: static; margin-top: 0 !important; }
  .fc-article__prose ul, .fc-article__prose ol { padding-right: 0; }
}

/* ─ article-header.css ─ */
.fc-article-head, .fc-article-head * { box-sizing: border-box; }
.fc-article-head { padding: var(--client-band-article); padding-block-end: 0; font-family: var(--client-font-body), sans-serif; }
/* The frame's one content band is two chunks here; this one zeroes its lower edge, the body its upper, so the band's edges fall where the frame puts them. */
.fc-article-head__inner { max-width: var(--client-measure); margin: 0 auto; display: flex; flex-direction: column; gap: var(--client-article-head-gap); }
.fc-article-head__headline { display: flex; flex-direction: column; gap: var(--client-article-headline-gap); }
.fc-article-head__back { align-self: flex-start; display: inline-flex; align-items: center; gap: var(--client-article-back-gap); text-decoration: none; text-transform: uppercase; 
  font-family: var(--client-type-article-back-font), sans-serif;
  font-size: var(--client-type-article-back-size);
  line-height: var(--client-type-article-back-lh);
  font-weight: var(--client-type-article-back-weight);
  color: var(--client-type-article-back-color); }
.fc-article-head__back svg { display: block; width: var(--client-article-back-chevron-width); height: var(--client-article-back-chevron-height); overflow: visible; }
.fc-article-head__title { margin: 0; 
  font-family: var(--client-type-blog-title-font), sans-serif;
  font-size: var(--client-type-blog-title-size);
  line-height: var(--client-type-blog-title-lh);
  font-weight: var(--client-type-blog-title-weight);
  color: var(--client-type-blog-title-color); }
.fc-article-head__sub { margin: 0; 
  font-family: var(--client-type-blog-sub-font), sans-serif;
  font-size: var(--client-type-blog-sub-size);
  line-height: var(--client-type-blog-sub-lh);
  font-weight: var(--client-type-blog-sub-weight);
  color: var(--client-type-blog-sub-color); }
.fc-article-head__column { width: var(--client-article-prose-width); max-width: 100%; display: flex; flex-direction: column; }
.fc-article-head__figure { margin: 0; }
.fc-article-head__image { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--client-article-image-radius); }
.fc-article-head__meta { display: flex; flex-direction: column; gap: var(--client-article-meta-gap); padding: var(--client-article-meta-padding); }
.fc-article-head__row { display: flex; align-items: center; justify-content: space-between; gap: var(--client-article-meta-gap); }
.fc-article-head__byline { display: flex; align-items: center; gap: var(--client-article-meta-gap); }
.fc-article-head__portrait { display: block; width: var(--client-article-portrait-size); height: var(--client-article-portrait-size); border-radius: 50%; object-fit: cover; }
.fc-article-head__who { display: flex; flex-direction: column; justify-content: center; gap: var(--client-article-who-gap); }
.fc-article-head__name { margin: 0; 
  font-family: var(--client-type-blog-tag-font), sans-serif;
  font-size: var(--client-type-blog-tag-size);
  line-height: var(--client-type-blog-tag-lh);
  font-weight: var(--client-type-blog-tag-weight);
  color: var(--client-type-blog-tag-color); }
.fc-article-head__role { margin: 0; 
  font-family: var(--client-type-article-author-role-font), sans-serif;
  font-size: var(--client-type-article-author-role-size);
  line-height: var(--client-type-article-author-role-lh);
  font-weight: var(--client-type-article-author-role-weight);
  color: var(--client-type-article-author-role-color); }
.fc-article-head__share { display: flex; align-items: center; gap: var(--client-article-share-gap); margin-left: auto; }
.fc-article-head__share-li { display: block; width: var(--client-article-share-size); height: var(--client-article-share-size); }
.fc-article-head__share-li img { display: block; width: var(--client-article-share-size); height: var(--client-article-share-size); }
.fc-article-head__share-link { width: var(--client-article-share-size); height: var(--client-article-share-size); padding: 0; border: var(--client-article-share-ring) solid var(--client-ds-text-blue1); border-radius: 50%; background: transparent; color: var(--client-ds-text-blue1); display: grid; place-items: center; cursor: pointer; }
.fc-article-head__share-link svg { display: block; width: var(--client-article-share-icon-size); height: var(--client-article-share-icon-size); }
.fc-article-head__share-link[data-copied] { background: var(--client-ds-text-blue1); color: var(--client-page); }
.fc-article-head__tag { display: inline-flex; align-items: center; padding: var(--client-article-tag-padding); border-radius: var(--client-article-tag-radius); background: var(--client-brand-tertiary-200); text-transform: capitalize; 
  font-family: var(--client-type-blog-tag-font), sans-serif;
  font-size: var(--client-type-blog-tag-size);
  line-height: var(--client-type-blog-tag-lh);
  font-weight: var(--client-type-blog-tag-weight);
  color: var(--client-type-blog-tag-color); } /* the category as filed is a slug; the label is not fed to chunks (CLT-70) */
.fc-article-head__date { margin-left: auto; text-align: right; 
  font-family: var(--client-type-blog-date-font), sans-serif;
  font-size: var(--client-type-blog-date-size);
  line-height: var(--client-type-blog-date-lh);
  font-weight: var(--client-type-blog-date-weight);
  color: var(--client-type-blog-date-color); }
@media (max-width: 779px) {
  .fc-article-head__row { flex-wrap: wrap; }
}

/* ─ book-demo-module.css ─ */
/*
 * The Book a demo pop-up (frillyconcierge-book-demo.js) (Frilly Concierge; the FRI-1556 C1b contract): the sheet the module once injected at runtime, now in the
 * client bundle. Every length reads a theme key; the icon files resolve against this bundle (/frilly/clients/…).
 */
dialog:has([data-modal-module-slot="frillyconcierge-book-demo"]) { --client-modal-width: var(--client-demo-dialog-width); background: transparent; border-radius: var(--client-demo-dialog-border-radius); box-shadow: var(--client-drop-shadow); overflow: auto; }
dialog:has([data-modal-module-slot="frillyconcierge-book-demo"]) [data-frilly-modal-close] { top: var(--client-demo-dialog-close-top); right: var(--client-demo-dialog-close-right); width: var(--client-demo-dialog-close-width); height: var(--client-demo-dialog-close-height); background: transparent; color: var(--client-ds-text-blue1); font-size: 0; -webkit-mask: url("../../book-demo/x.svg") center / contain no-repeat; mask: url("../../book-demo/x.svg") center / contain no-repeat; background-color: currentColor; }
.fc-demo, .fc-demo * { box-sizing: border-box; }
.fc-demo { display: flex; flex-direction: column; align-items: center; padding: var(--client-demo-padding); border: var(--client-demo-border-width) solid var(--client-ds-stroke1); border-radius: var(--client-demo-border-radius); background: var(--client-ground-modal-ground); font-family: var(--client-font-body), sans-serif; }
.fc-demo__close-row { height: var(--client-demo-close-row-height); width: 100%; }
.fc-demo__inner { display: flex; flex-direction: column; gap: var(--client-demo-inner-gap); width: var(--client-demo-inner-width); max-width: 100%; }
.fc-demo__title { margin: 0; font-family: var(--client-type-essay-heading-font), sans-serif; font-size: var(--client-type-essay-heading-size); line-height: var(--client-type-essay-heading-lh); font-weight: var(--client-type-essay-heading-weight); color: var(--client-type-essay-heading-color); }
.fc-demo__intro { margin: 0; font-size: var(--client-type-body-size); line-height: var(--client-type-body-lh); font-weight: var(--client-type-body-weight); color: var(--client-body); }
.fc-demo__intro p { margin: 0; }
.fc-demo__form { display: flex; flex-direction: column; gap: var(--client-demo-form-gap); width: 100%; }
.fc-demo__field { display: flex; flex-direction: column; gap: var(--client-demo-field-gap); width: 100%; }
.fc-demo__label { margin: 0; font-family: var(--client-type-form-label-font), sans-serif; font-size: var(--client-type-form-label-size); line-height: var(--client-type-form-label-lh); font-weight: var(--client-type-form-label-weight); color: var(--client-type-form-label-color); }
.fc-demo__label--small { font-family: var(--client-type-form-label-small-font), sans-serif; font-size: var(--client-type-form-label-small-size); line-height: var(--client-type-form-label-small-lh); font-weight: var(--client-type-form-label-small-weight); color: var(--client-type-form-label-small-color); }
.fc-demo__input, .fc-demo__area, .fc-demo__pick select { width: 100%; margin: 0; border: var(--client-demo-input-area-pick-select-border-width) solid var(--client-ds-form-stroke); border-radius: var(--client-demo-input-area-pick-select-border-radius); background: var(--client-ds-form-background); color: var(--client-body); font-family: inherit; font-size: var(--client-type-body-size); line-height: var(--client-type-body-lh); font-weight: var(--client-type-body-weight); }
.fc-demo__input { padding: var(--client-demo-input-padding); }
.fc-demo__area { min-height: var(--client-demo-area-min-height); padding: var(--client-demo-area-padding); resize: vertical; }
.fc-demo__input::placeholder, .fc-demo__area::placeholder { color: var(--client-form-placeholder); opacity: 1; }
.fc-demo__input[aria-invalid="true"], .fc-demo__area[aria-invalid="true"], .fc-demo__pick select[aria-invalid="true"] { border-color: var(--client-ds-error-text); }
.fc-demo__pickers { display: flex; gap: var(--client-demo-pickers-gap); width: 100%; }
.fc-demo__pickers .fc-demo__field { flex: 1 1 0; min-width: 0; }
.fc-demo__pick { position: relative; }
.fc-demo__pick::before { content: ''; position: absolute; left: var(--client-demo-pick-before-left); top: 50%; width: var(--client-demo-pick-before-width); height: var(--client-demo-pick-before-height); transform: translateY(-50%); background: var(--client-ds-form-icons); -webkit-mask: var(--fc-pick-icon) center / contain no-repeat; mask: var(--fc-pick-icon) center / contain no-repeat; pointer-events: none; }
.fc-demo__pick select { height: var(--client-demo-pick-select-height); padding: var(--client-demo-pick-select-padding); border-radius: var(--client-demo-pick-select-border-radius); appearance: none; -webkit-appearance: none; }
.fc-demo__pick select:disabled { color: var(--client-form-placeholder); }
.fc-demo__line { margin: 0; font-size: var(--client-type-body-size); line-height: var(--client-type-body-lh); color: var(--client-body); }
.fc-demo__line--error { color: var(--client-ds-error-text); }
.fc-demo__honeypot { position: absolute; left: var(--client-demo-honeypot-left); width: var(--client-demo-honeypot-width); height: var(--client-demo-honeypot-height); opacity: 0; }
.fc-demo__submit { display: inline-flex; align-items: center; justify-content: center; gap: var(--client-demo-submit-gap); align-self: center; width: var(--client-demo-submit-width); height: var(--client-demo-submit-height); margin: 0; border: 0; border-radius: var(--client-demo-submit-border-radius); background: var(--client-ds-button2-default); color: var(--client-demo-text); cursor: pointer; text-transform: capitalize; font-family: var(--client-type-buttons-font), sans-serif; font-size: var(--client-type-buttons-size); line-height: var(--client-type-buttons-lh); font-weight: var(--client-type-buttons-weight); }
.fc-demo__submit:hover { background: var(--client-ds-button2-hover); }
.fc-demo__submit:active { background: var(--client-ds-button2-pressed); }
.fc-demo__submit:disabled { opacity: .6; cursor: default; }
.fc-demo__submit-icon { flex: none; width: var(--client-demo-submit-icon-width); height: var(--client-demo-submit-icon-height); background: currentColor; -webkit-mask: url("../../join/calendar-chevrons-right.svg") center / contain no-repeat; mask: url("../../join/calendar-chevrons-right.svg") center / contain no-repeat; }
@media (max-width: 779px) {
dialog:has([data-modal-module-slot="frillyconcierge-book-demo"]) { width: 100vw; max-width: 100vw; max-height: 100vh; margin: 0; border-radius: 0; }
.fc-demo { border-radius: 0; }
}

/* the pickers' icons, by name (were a --fc-pick-icon custom property set per picker by the module) */
.fc-demo__pick--calendar { --fc-pick-icon: url("../../book-demo/calendar.svg"); }
.fc-demo__pick--clock { --fc-pick-icon: url("../../book-demo/clock.svg"); }

/* ─ callout-strip.css ─ */
/*
 * Frilly Concierge's lime strip (CLT-65): one Figma design drawn by two
 * renders, the homepage's Proof (`social-proof`, "0 >> 80", 5003:1920) and
 * the Smart Site page's callout (`announcement`, ">> Get your FRS",
 * 5189:8354). Their layout and their links live here, once, each rule naming
 * both, so the two cannot drift apart again. Each render's own sheet keeps
 * only what differs: the homepage's line above the strip, and the type of
 * the figures and the lead.
 *
 * Every value is the theme's:
 *  - The strip: the `proofStrip` ground, its 1px edges and the `proofStrip`
 *    band (Figma 5017:598 / 5189:8357: 80 at the sides; on a phone 5060:830 /
 *    5189:8892).
 *  - The row: 88 high, centred, one line that never wraps, the head then the
 *    sentence 37 after it (5017:614 / 5189:8358), the sentence up to its 698
 *    (5017:599 / 5189:8363) and giving way as the strip narrows rather than
 *    dropping under the head.
 *  - The head: 18 apart, 4 on a phone (5060:876 / 5060:878).
 *  - The links: the theme's callout-link colour, visited included (the
 *    founder: "the blue doesn't really fit there").
 *  - On a phone (5060:830 / 5189:8892): one column, left-aligned, the head
 *    above the sentence with nothing between. The homepage's figures stay
 *    centred on each other (5060:878); the callout's head is top-aligned
 *    (5189:8893), as each frame draws it.
 */
.fc-proof__strip, .fc-callout {
  padding: var(--client-band-proof-strip);
  background: var(--client-proof-strip);
  border-top: var(--client-proof-strip-edge-width) solid var(--client-proof-strip-edge);
  border-bottom: var(--client-proof-strip-edge-width) solid var(--client-proof-strip-edge);
}
.fc-proof__row, .fc-callout__row {
  max-width: var(--client-measure); min-height: var(--client-proof-row-min-height); margin: 0 auto; padding: 0;
  display: flex; flex-wrap: nowrap; align-items: center; justify-content: center; gap: var(--client-proof-row-gap);
}
.fc-proof__figures, .fc-callout__head { flex: none; display: flex; align-items: center; gap: var(--client-proof-head-gap); }
.fc-proof__arrow, .fc-callout__label {
  font-family: var(--client-type-proof-arrow-font), sans-serif;
  font-size: var(--client-type-proof-arrow-size);
  line-height: var(--client-type-proof-arrow-lh);
  font-weight: var(--client-type-proof-arrow-weight);
  color: var(--client-type-proof-arrow-color);
}
.fc-proof__text, .fc-callout__text {
  flex: 0 1 var(--client-proof-text-measure); min-width: 0; margin: 0; text-align: left;
  font-size: var(--client-type-proof-text-size);
  line-height: var(--client-type-proof-text-lh);
  font-weight: var(--client-type-proof-text-weight);
  color: var(--client-type-proof-text-color);
}
.fc-proof__text p { margin: 0; }
.fc-proof__text a, .fc-proof__text a:visited, .fc-callout__text a, .fc-callout__text a:visited { color: var(--client-type-callout-link-color); text-decoration: underline; }
.fc-callout__link, .fc-callout__link:visited { color: var(--client-type-callout-link-color); font-weight: var(--client-type-link-weight); text-decoration: none; }
@media (max-width: 779px) {
  .fc-proof__row, .fc-callout__row { flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 0; min-height: 0; }
  .fc-proof__text, .fc-callout__text { flex: none; width: 100%; }
  .fc-callout__head { align-items: flex-start; }
}

/* ─ card-grid.css ─ */
.fc-cards, .fc-cards * { box-sizing: border-box; }
.fc-cards { padding: var(--client-band-audience); font-family: var(--client-font-body), sans-serif; }
.fc-cards__inner { max-width: var(--client-measure); margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: var(--client-cards-gap); }
.fc-cards__heading {
  margin: 0; text-align: center;
  font-family: var(--client-type-audience-heading-font), sans-serif;
  font-size: var(--client-type-audience-heading-size);
  line-height: var(--client-type-audience-heading-lh);
  font-weight: var(--client-type-audience-heading-weight);
  color: var(--client-type-audience-heading-color);
}
.fc-cards__intro { margin: 0; text-align: center; font-size: var(--client-type-body-size); line-height: var(--client-type-body-lh); color: var(--client-body); }
.fc-cards__grid { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--client-cards-grid-gap); width: 100%; }
.fc-cards__card { width: var(--client-cards-card-width); display: flex; flex-direction: column; gap: var(--client-cards-card-gap); }
.fc-cards__figure { margin: 0; width: var(--client-cards-card-width); max-width: 100%; }
.fc-cards__image { display: block; width: 100%; height: auto; }
.fc-cards__title {
  margin: 0;
  font-family: var(--client-type-card-title-font), sans-serif;
  font-size: var(--client-type-card-title-size);
  line-height: var(--client-type-card-title-lh);
  font-weight: var(--client-type-card-title-weight);
  color: var(--client-type-card-title-color);
}
.fc-cards__text { margin: 0; font-size: var(--client-type-body-size); line-height: var(--client-type-body-lh); font-weight: var(--client-type-body-weight); color: var(--client-body); }
.fc-cards__link { color: var(--client-link); font-weight: var(--client-type-link-weight); text-decoration: none; }
@media (max-width: 779px) {
  .fc-cards__grid { gap: var(--client-cards-grid-gap-phone); }
  .fc-cards__card { max-width: var(--client-cards-card-max-width); }
  .fc-cards__card { width: 100%; }
  .fc-cards__figure { align-self: center; }
  .fc-cards__title { order: -1; } /* headline, image, card text */
}

/* The grid's width is its column count's (the frame's 250 cards, 64 apart); the count rides `data-columns`. */
.fc-cards__grid[data-columns="2"] { max-width: calc(2 * var(--client-cards-card-width) + 1 * var(--client-cards-grid-gap)); }
.fc-cards__grid[data-columns="3"] { max-width: calc(3 * var(--client-cards-card-width) + 2 * var(--client-cards-grid-gap)); }
.fc-cards__grid[data-columns="4"] { max-width: calc(4 * var(--client-cards-card-width) + 3 * var(--client-cards-grid-gap)); }
/* The card's slot (FRI-1496): each piece a row of the card. */
.fc-cards__slot { display: contents; }

/* ─ cta.css ─ */
.fc-cta, .fc-cta * { box-sizing: border-box; }
.fc-cta { padding: var(--client-band-cta); font-family: var(--client-font-body), sans-serif; }
.fc-cta__inner { max-width: var(--client-measure); margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: var(--client-cta-gap); }
.fc-cta--product { padding: var(--client-band-product-cta); }
.fc-cta--product .fc-cta__inner { gap: var(--client-product-cta-gap); }
.fc-cta__header { display: flex; flex-direction: column; align-items: center; gap: var(--client-space-xs); width: 100%; }
.fc-cta__heading {
  margin: 0; text-align: center;
  font-family: var(--client-type-cta-heading-font), sans-serif;
  font-size: var(--client-type-cta-heading-size);
  line-height: var(--client-type-cta-heading-lh);
  font-weight: var(--client-type-cta-heading-weight);
  color: var(--client-type-cta-heading-color);
}
.fc-cta__body, .fc-cta__body p {
  margin: 0; text-align: center; max-width: var(--client-cta-measure);
  font-family: var(--client-type-cta-body-font), sans-serif;
  font-size: var(--client-type-cta-body-size);
  line-height: var(--client-type-cta-body-lh);
  font-weight: var(--client-type-cta-body-weight);
  color: var(--client-type-cta-body-color);
}
.fc-cta__body a { color: var(--client-link); text-decoration: underline; }
.fc-cta__figure { margin: 0; width: 100%; max-width: var(--client-cta-measure); }
.fc-cta__image { display: block; width: 100%; aspect-ratio: 970 / 540; object-fit: cover; border: var(--client-cta-image-edge) solid var(--client-ds-stroke2); border-radius: var(--client-radius); }
.fc-cta__slot { display: flex; justify-content: center; width: 100%; }
@media (max-width: 779px) {
  .fc-cta__body, .fc-cta__body p { text-align: left; }
  /* the closing line stays centred, as the page's other closing lines do (CLT-71) */
  .fc-cta--closing .fc-cta__body, .fc-cta--closing .fc-cta__body p { text-align: center; }
}

/* ─ faq.css ─ */
.fc-faq, .fc-faq * { box-sizing: border-box; }
.fc-faq { padding: var(--client-band-faq); font-family: var(--client-font-body), sans-serif; }
.fc-faq__card { max-width: var(--client-faq-card-max-width); margin: 0 auto; padding: var(--client-faq-card-padding); border-radius: var(--client-radius); background: var(--client-ground-media-panel); box-shadow: var(--client-card-shadow); }
.fc-faq__panel { padding: var(--client-faq-panel-padding); border-radius: var(--client-radius); background: color-mix(in srgb, var(--client-card-surface) 50%, transparent); display: flex; flex-direction: column; gap: var(--client-faq-panel-gap); }
.fc-faq__heading {
  margin: 0; padding: var(--client-faq-heading-padding);
  font-family: var(--client-type-faq-heading-font), sans-serif;
  font-size: var(--client-type-faq-heading-size);
  line-height: var(--client-type-faq-heading-lh);
  font-weight: var(--client-type-faq-heading-weight);
  color: var(--client-type-faq-heading-color);
}
.fc-faq__list { list-style: none; margin: 0; padding: var(--client-faq-list-padding); display: flex; flex-direction: column; gap: var(--client-faq-list-gap); }
.fc-faq__item { display: flex; align-items: flex-start; gap: var(--client-faq-item-gap); }
.fc-faq__number {
  flex: none;
  font-size: var(--client-type-step-number-size);
  line-height: var(--client-type-step-number-lh);
  font-weight: var(--client-type-step-number-weight);
  color: var(--client-type-step-number-color);
}
.fc-faq__copy { display: flex; flex-direction: column; gap: var(--client-faq-copy-gap); min-width: 0; }
.fc-faq__question {
  margin: 0;
  font-size: var(--client-type-step-title-size);
  line-height: var(--client-type-step-title-lh);
  font-weight: var(--client-type-step-title-weight);
  color: var(--client-type-step-title-color);
}
.fc-faq__answer { display: flex; flex-direction: column; gap: var(--client-faq-copy-gap); }
.fc-faq__answer > div { display: contents; }
.fc-faq__answer p { margin: 0; font-size: var(--client-type-body-size); line-height: var(--client-type-body-lh); font-weight: var(--client-type-body-weight); color: var(--client-body); }
.fc-faq__answer a { color: var(--client-link); text-decoration: underline; }
@media (max-width: 779px) {
  .fc-faq__card { padding: 0; }
}

/* ─ footer.css ─ */
.fc-foot, .fc-foot * { box-sizing: border-box; }
.fc-foot {
  display: flex;
  flex-direction: column;
  gap: var(--client-footer-stack-gap);
  padding: var(--client-band-footer);
  font-family: var(--client-font-body), sans-serif;
}
.fc-foot a { text-decoration: none; }
.fc-foot__top { display: flex; align-items: flex-start; gap: var(--client-footer-gap); }
.fc-foot__brand { flex: none; display: flex; flex-direction: column; align-items: flex-start; }
.fc-foot__mark { display: block; width: var(--client-footer-mark-width); height: auto; }
.fc-foot__mark--dark { display: none; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .fc-foot__mark--light { display: none; }
  :root:not([data-theme="light"]) .fc-foot__mark--dark { display: block; }
}
:root[data-theme="dark"] .fc-foot__mark--light { display: none; }
:root[data-theme="dark"] .fc-foot__mark--dark { display: block; }
.fc-foot__name { font-family: var(--client-font-heading), sans-serif; font-weight: var(--client-type-footer-label-weight); color: var(--client-body); }
.fc-foot__address {
  font-size: var(--client-type-footer-address-size);
  line-height: var(--client-type-footer-address-lh);
  font-weight: var(--client-type-footer-address-weight);
  color: var(--client-body);
  white-space: nowrap;
}
.fc-foot__socials { display: flex; align-items: center; gap: var(--client-space-sm); padding: var(--client-footer-socials-top) 0 0; margin: 0; list-style: none; }
.fc-foot__socials img { display: block; }

.fc-foot__cols { flex: 1 1 auto; display: flex; justify-content: flex-end; align-items: flex-start; gap: var(--client-footer-columns-gap); }
.fc-foot__rest { display: contents; }
.fc-foot__col { display: flex; flex-direction: column; align-items: flex-start; gap: var(--client-footer-column-gap); white-space: nowrap; }
.fc-foot__label {
  margin: 0;
  font-size: var(--client-type-footer-label-size);
  line-height: var(--client-type-footer-label-lh);
  font-weight: var(--client-type-footer-label-weight);
  color: var(--client-type-footer-label-color);
}
.fc-foot__link, .fc-foot__social-text {
  font-size: var(--client-type-footer-link-size);
  line-height: var(--client-type-footer-link-lh);
  font-weight: var(--client-type-footer-link-weight);
  color: var(--client-type-footer-link-color);
}
.fc-foot__link:hover, .fc-foot__social-text:hover { text-decoration: underline; }

.fc-foot__bottom {
  display: flex;
  align-items: flex-start;
  padding-top: var(--client-footer-legal-padding);
  border-top: var(--client-footer-edge) solid var(--client-hairline);
}
.fc-foot__legal { display: flex; align-items: center; gap: var(--client-space-md); }
.fc-foot .fc-foot__legal-link {
  font-size: var(--client-type-footer-legal-size);
  line-height: var(--client-type-footer-legal-lh);
  font-weight: var(--client-type-footer-legal-weight);
  color: var(--client-type-footer-legal-color);
  text-decoration: underline;
  white-space: nowrap;
}
.fc-foot .fc-foot__legal-link--end { line-height: var(--client-type-copyright-lh); }
.fc-foot__copyright {
  flex: 1 1 auto;
  margin: 0;
  text-align: center;
  font-size: var(--client-type-copyright-size);
  line-height: var(--client-type-copyright-lh);
  font-weight: var(--client-type-copyright-weight);
  color: var(--client-type-copyright-color);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .fc-foot__copyright { color: var(--client-ds-text-neutral1); }
}
:root[data-theme="dark"] .fc-foot__copyright { color: var(--client-ds-text-neutral1); }
.fc-foot__disclaimer { font-size: var(--client-type-footer-legal-size); line-height: var(--client-type-footer-legal-lh); color: var(--client-type-footer-legal-color); }

@media (max-width: 779px) {
  /* The phone's values come from the theme's 779 breakpoint; only the layout changes here. */
  .fc-foot__top { display: grid; grid-template-columns: 1fr auto; column-gap: var(--client-footer-gap); row-gap: var(--client-footer-stack-gap); }
  .fc-foot__cols { display: contents; }
  .fc-foot__cols > .fc-foot__col:first-child { grid-column: 2; grid-row: 1; }
  .fc-foot__rest { grid-column: 1 / -1; display: flex; align-items: flex-start; gap: var(--client-footer-columns-gap); }
  /* One row of legal links, the last one included, centred; the copyright under it. */
  .fc-foot__bottom { flex-wrap: wrap; justify-content: center; align-items: center; column-gap: var(--client-space-xl); row-gap: var(--client-space-md); }
  .fc-foot__legal { display: contents; }
  .fc-foot__copyright { order: 2; flex: 0 0 100%; }
}

.fc-foot__social-text { text-transform: capitalize; }

/* ─ hero-module.css ─ */
/*
 * The animated hero (frillyconcierge-hero.js) (Frilly Concierge; the FRI-1556 C1b contract): the sheet the module once injected at runtime, now in the
 * client bundle. Every length reads a theme key; the icon files resolve against this bundle (/frilly/clients/…).
 */
.fc-hero, .fc-hero * { box-sizing: border-box; }
.fc-hero { position: relative; overflow: hidden; width: 100%; background: radial-gradient(circle at calc(var(--client-hero-dot-grid) / 2) calc(var(--client-hero-dot-grid) / 2), var(--client-hero-dot) var(--client-hero-dot-radius), transparent var(--client-hero-dot-fade)) 0 0 / var(--client-hero-dot-grid) var(--client-hero-dot-grid); }
[data-fc-hero-ground] .fc-hero { background: none; }
.fc-hero__swarm { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; }
.fc-hero__content { position: relative; z-index: 2; display: flex; align-items: center; justify-content: center; gap: var(--client-space-md); width: 100%; }
.fc-hero__slide { flex: none; display: flex; align-items: center; gap: 0; padding-left: var(--client-hero-swarm-slide-padding-left); }
.fc-hero__slide--flip { flex-direction: row-reverse; padding: var(--client-hero-swarm-slide-flip-padding); }
.fc-hero__slide--flip .fc-hero__box { margin: var(--client-hero-swarm-slide-flip-box-margin); }
.fc-hero__box { flex: none; width: var(--client-hero-swarm-box-width); height: var(--client-hero-swarm-box-height); }
.fc-hero__card { flex: none; display: flex; flex-direction: column; align-items: flex-start; gap: var(--client-hero-swarm-card-gap); padding: var(--client-hero-swarm-card-padding); }
.fc-hero__copy { display: flex; flex-direction: column; gap: var(--client-hero-swarm-copy-gap); width: var(--client-hero-swarm-copy-width); }
.fc-hero__card h2 { margin: 0; white-space: nowrap; font-family: var(--client-type-hero-card-title-font), sans-serif; font-size: var(--client-type-hero-card-title-size); line-height: var(--client-type-hero-card-title-lh); font-weight: var(--client-type-hero-card-title-weight); color: var(--client-type-hero-card-title-color); }
.fc-hero__card .fc-hero__body, .fc-hero__card .fc-hero__body p { margin: 0; font-family: var(--client-font-body), sans-serif; font-size: var(--client-type-hero-card-body-size); line-height: var(--client-type-hero-card-body-lh); font-weight: var(--client-type-hero-card-body-weight); color: var(--client-type-hero-card-body-color); }
.fc-hero__join { flex: none; }
.fc-hero__join--small { display: none; }
.fc-hero.fc-hero--paused .fc-hero__swarm { opacity: 0.999; }
@media (max-width: 1100px) {
.fc-hero__slide--flip { padding-left: var(--client-hero-swarm-slide-flip-padding-left-tablet); }
}
@media (max-width: 779px) {
[data-fc-hero-ground] .fc-hero { background: none; }
.fc-hero__content { flex-direction: column; gap: var(--client-space-xs); }
.fc-hero__slide, .fc-hero__slide--flip { flex-direction: column; gap: var(--client-space-xs); width: 100%; padding: 0; }
.fc-hero__slide--flip .fc-hero__box { margin: 0; }
.fc-hero__card { width: 100%; padding: 0; align-items: center; text-align: center; }
.fc-hero__copy { width: 100%; align-items: center; }
.fc-hero__card h2 { white-space: normal; }
.fc-hero__card h2 br { display: none; }
.fc-hero__card .fc-hero__body { min-height: calc(2 * var(--client-type-hero-card-body-size) * var(--client-type-hero-card-body-lh)); }
.fc-hero__join { display: none; }
.fc-hero__join--small { display: block; }
}

/* the card's copy fades between slides (the module set an inline transition and opacity; both durations are 0.25s) */
.fc-hero__copy { transition: opacity 0.25s ease; }
.fc-hero__copy[data-fade="out"] { opacity: 0; }

/* ─ hero.css ─ */
.fc-hero-section, .fc-hero-section * { box-sizing: border-box; }
.fc-hero-section {
  position: relative;
  padding: var(--client-band-hero);
  border-bottom: var(--client-hero-edge) solid var(--client-ground-section-edge);
  background:
    linear-gradient(180deg, var(--client-ground-hero-from) 10%, transparent 75.481%),
    radial-gradient(circle at calc(var(--client-hero-dot-grid) / 2) calc(var(--client-hero-dot-grid) / 2), var(--client-hero-dot) var(--client-hero-dot-radius), transparent var(--client-hero-dot-fade)) 0 0 / var(--client-hero-dot-grid) var(--client-hero-dot-grid),
    var(--client-page);
  font-family: var(--client-font-body), sans-serif;
}
.fc-hero-section__inner { max-width: var(--client-measure); margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: var(--client-hero-row-gap); }
.fc-hero-section__head { display: flex; flex-direction: column; align-items: center; gap: var(--client-hero-head-gap); text-align: center; }
.fc-hero-section__head h1 {
  margin: 0;
  font-family: var(--client-type-h1-font), sans-serif;
  font-size: var(--client-type-h1-size);
  line-height: var(--client-type-h1-lh);
  font-weight: var(--client-type-h1-weight);
  color: var(--client-type-h1-color);
  text-wrap: balance;
}
.fc-hero-section__head p {
  margin: 0;
  font-family: var(--client-type-hero-sub-font), sans-serif;
  font-size: var(--client-type-hero-sub-size);
  line-height: var(--client-type-hero-sub-lh);
  font-weight: var(--client-type-hero-sub-weight);
  color: var(--client-type-hero-sub-color);
}
.fc-hero-section__slot { width: 100%; }
/* The homepage's slide row is drawn by the page (CLT-65), so the module's words list stays in the page for crawlers, the
   twin and the module's reader, and never shows: the slide row shows its words. */
.fc-hero-section > [data-module-content~="frillyconcierge-hero"] { display: none; }
.fc-hero-section--page { background: var(--client-page); border-bottom: 0; padding: var(--client-band-hero-page); }
.fc-hero-section--page .fc-hero-section__inner { align-items: flex-start; gap: var(--client-hero-page-gap); }
.fc-hero-section__eyebrow {
  margin: 0;
  font-family: var(--client-type-eyebrow-font), sans-serif;
  font-size: var(--client-type-eyebrow-size);
  line-height: var(--client-type-eyebrow-lh);
  font-weight: var(--client-type-eyebrow-weight);
  color: var(--client-type-eyebrow-color);
}
.fc-hero-section--page h1 {
  margin: 0;
  font-family: var(--client-type-product-title-font), sans-serif;
  font-size: var(--client-type-product-title-size);
  line-height: var(--client-type-product-title-lh);
  font-weight: var(--client-type-product-title-weight);
  color: var(--client-type-product-title-color);
}
.fc-hero-section--page .fc-hero-section__text p {
  margin: 0;
  font-family: var(--client-type-product-sub-font), sans-serif;
  font-size: var(--client-type-product-sub-size);
  line-height: var(--client-type-product-sub-lh);
  font-weight: var(--client-type-product-sub-weight);
  color: var(--client-type-product-sub-color);
}
.fc-hero-section__figure { margin: 0; width: 100%; }
.fc-hero-section__figure img { display: block; width: 100%; height: auto; }
.fc-hero-section--product .fc-hero-section__inner { flex-direction: row; align-items: flex-start; justify-content: center; gap: var(--client-hero-product-gap); }
.fc-hero-section__copy { display: flex; flex-direction: column; gap: var(--client-hero-copy-gap); width: var(--client-hero-copy-width); max-width: 100%; padding-left: var(--client-hero-copy-inset); }
.fc-hero-section__copy h1 {
  margin: 0;
  font-family: var(--client-type-product-title-font), sans-serif;
  font-size: var(--client-type-product-title-size);
  line-height: var(--client-type-product-title-lh);
  font-weight: var(--client-type-product-title-weight);
  color: var(--client-type-product-title-color);
}
.fc-hero-section__text { display: flex; flex-direction: column; gap: var(--client-hero-text-gap); }
.fc-hero-section__text > div { display: contents; }
.fc-hero-section__text h2 {
  margin: 0;
  font-family: var(--client-type-product-sub-font), sans-serif;
  font-size: var(--client-type-product-sub-size);
  line-height: var(--client-type-product-sub-lh);
  font-weight: var(--client-type-product-sub-weight);
  color: var(--client-type-product-sub-color);
}
.fc-hero-section__text p { margin: 0; font-size: var(--client-type-body-size); line-height: var(--client-type-body-lh); font-weight: var(--client-type-body-weight); color: var(--client-body); }
.fc-hero-section__text p + p { margin-top: calc(1lh - var(--client-hero-text-gap)); }
.fc-hero-section__text a { color: var(--client-link); text-decoration: underline; }
.fc-hero-section__below { display: flex; }
.fc-hero-section__card { flex: none; width: var(--client-hero-card-width); max-width: 100%; margin: 0; padding: var(--client-hero-card-padding); border: var(--client-hero-card-edge) dashed var(--client-ds-form-stroke); border-radius: var(--client-hero-card-radius); }
.fc-hero-section__card img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border: var(--client-hero-card-image-edge) solid var(--client-ds-stroke2); border-radius: var(--client-hero-card-radius); }
.fc-hero-section--product .fc-hero-section__text { gap: var(--client-hero-product-text-gap); }
/* Elastic between the frames (CLT-65): the photo card gives way as the row narrows instead of holding its 464 (Figma 5085:3063) and pushing the page wide, so it shrinks with the space and the copy keeps its own measure; the phone frame's 340 (5189:8899) takes over at the stack. */
.fc-hero-section--product .fc-hero-section__card { flex: 0 1 var(--client-hero-card-width); min-width: 0; }
/* The product mark (CLT-65): in the copy inset, left of the column (Figma 5089:3531: 52, 12 before the copy, top-aligned). */
.fc-hero-section__title { display: flex; align-items: flex-start; gap: var(--client-hero-mark-gap); margin-left: calc(-1 * (var(--client-hero-mark-size) + var(--client-hero-mark-gap))); }
.fc-hero-section__mark { flex: none; display: block; width: var(--client-hero-mark-size); height: var(--client-hero-mark-size); }
.fc-hero-section__mark svg, .fc-hero-section__mark img { display: block; width: 100%; height: 100%; }
/* Dark mode, chosen the theme's way (the site's explicit choice over the system's): the mark's fill as its Mode=Dark variant (5218:9617). */
:root[data-theme="dark"] .fc-hero-section__mark svg [fill]:not([fill="none"]) { fill: var(--client-hero-mark-dark-ink); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .fc-hero-section__mark svg [fill]:not([fill="none"]) { fill: var(--client-hero-mark-dark-ink); }
}
@media (max-width: 779px) {
  /* Phone (5116:7213): the mark beside the title, centred on it. */
  .fc-hero-section--product .fc-hero-section__title { order: 1; margin-left: 0; align-items: center; }
  .fc-hero-section--product .fc-hero-section__card { max-width: var(--client-hero-card-max-width); }
  .fc-hero-section { background: linear-gradient(180deg, var(--client-ground-hero-from-phone) 10%, transparent 75.481%), radial-gradient(circle at calc(var(--client-hero-dot-grid) / 2) calc(var(--client-hero-dot-grid) / 2), var(--client-hero-dot) var(--client-hero-dot-radius), transparent var(--client-hero-dot-fade)) 0 0 / var(--client-hero-dot-grid) var(--client-hero-dot-grid), var(--client-page); }
  .fc-hero-section__head { text-align: left; align-items: flex-start; width: 100%; }
  .fc-hero-section--product .fc-hero-section__inner { display: grid; grid-template-columns: minmax(0, 1fr); }
  .fc-hero-section--product .fc-hero-section__copy { display: contents; }
  .fc-hero-section--product .fc-hero-section__copy h1 { order: 1; }
  .fc-hero-section--product .fc-hero-section__card { order: 2; width: 100%; justify-self: center; }
  .fc-hero-section--product .fc-hero-section__text { order: 3; }
  .fc-hero-section--product .fc-hero-section__below { order: 4; }
}

/* The subline's measure: the theme's `heroSubMeasure` (the frame's 980 on the homepage, 5003:1817). */
.fc-hero-section__sub { max-width: var(--client-hero-sub-measure); }

/* ─ join-module.css ─ */
/*
 * The join block and the small join card (frillyconcierge-join.js) (Frilly Concierge; the FRI-1556 C1b contract): the sheet the module once injected at runtime, now in the
 * client bundle. Every length reads a theme key; the icon files resolve against this bundle (/frilly/clients/…).
 */
.fc-join, .fc-join * { box-sizing: border-box; }
.fc-join { display: flex; flex-direction: column; align-items: center; gap: var(--client-join-gap); padding: var(--client-space-lg) var(--client-space-sm); border-radius: var(--client-radius); width: var(--client-join-width); max-width: 100%; }
.fc-join--wide { width: var(--client-join-wide-width); }
.fc-join__row { display: flex; flex-direction: column; align-items: center; gap: var(--client-join-row-gap); }
.fc-join--wide .fc-join__row { flex-direction: row; gap: var(--client-join-wide-row-gap); }
.fc-join .fc-join__pill, .fc-join .fc-join__pill * { text-decoration: none; }
.fc-join__pill { display: inline-flex; align-items: center; justify-content: center; gap: var(--client-join-pill-gap); width: var(--client-join-pill-width); height: var(--client-join-pill-height); border-radius: var(--client-radius-pill); border: 0; cursor: pointer; text-decoration: none; text-transform: capitalize;
  font-family: var(--client-type-buttons-font), sans-serif; font-size: var(--client-type-buttons-size); line-height: var(--client-type-buttons-lh); font-weight: var(--client-type-buttons-weight); }
.fc-join__pill * { color: inherit; text-decoration: none; }
.fc-join__pill--email { gap: var(--client-join-pill-email-gap); background: var(--client-ds-button1-default); color: var(--client-ds-button-light-text); }
.fc-join__pill--email:hover { background: var(--client-ds-button1-hover); }
.fc-join__pill--email:active { background: var(--client-ds-button1-pressed); }
.fc-join__pill--google { background: var(--client-google-bg); color: var(--client-google-text); border: var(--client-join-pill-google-border-width) solid var(--client-google-border); font-weight: var(--client-type-helper-weight); }
.fc-join__pill--demo { background: var(--client-ds-button2-default); color: var(--client-demo-text); }
.fc-join__pill--demo:hover { background: var(--client-ds-button2-hover); }
.fc-join__pill--demo:active { background: var(--client-ds-button2-pressed); }
.fc-join__icon { flex: none; width: var(--client-join-icon-width); height: var(--client-join-icon-height); background: currentColor; -webkit-mask: var(--fc-icon) center / contain no-repeat; mask: var(--fc-icon) center / contain no-repeat; }
.fc-join__g { flex: none; width: var(--client-join-gwidth); height: var(--client-join-gheight); display: block; }
.fc-join__signin { display: flex; align-items: center; justify-content: center; gap: var(--client-join-signin-gap); height: var(--client-join-signin-height); margin: 0; white-space: nowrap;
  font-family: var(--client-font-body), sans-serif; font-size: var(--client-type-helper-size); line-height: var(--client-type-helper-lh); font-weight: var(--client-type-helper-weight); color: var(--client-ds-text-neutral1); }
.fc-join__signin a { color: var(--client-ds-text-blue1); text-decoration: underline; }
.fc-join__signin p, .fc-join__signin a p { display: inline; margin: 0; }
.fc-join__or { display: flex; align-items: center; justify-content: center; gap: var(--client-join-or-gap); height: var(--client-join-or-height); padding: var(--client-join-or-padding); width: 100%; text-transform: uppercase; color: var(--client-brand-tertiary-500);
  font-family: var(--client-type-buttons-font), sans-serif; font-size: var(--client-type-buttons-size); line-height: var(--client-type-buttons-lh); font-weight: var(--client-type-buttons-weight); }
.fc-join__or::before, .fc-join__or::after { content: ""; width: var(--client-join-or-rule-width); height: var(--client-join-or-rule-height); background: var(--client-brand-tertiary-500); }
.fc-join__or p { margin: 0; }
.fc-join__pill:focus-visible, .fc-join__signin a:focus-visible, .fc-join__round:focus-visible { outline: var(--client-join-pill-signin-round-outline-width) solid var(--client-ds-primary); outline-offset: var(--client-join-pill-signin-round-outline-offset); }
.fc-join--small { flex-direction: row; align-items: center; justify-content: center; gap: var(--client-join-small-gap); padding: var(--client-space-xs) 0; width: auto; }
.fc-join__group { display: flex; flex-direction: column; align-items: flex-start; gap: var(--client-join-group-gap); }
.fc-join__label { margin: 0; white-space: nowrap; font-family: var(--client-font-body), sans-serif; font-size: var(--client-type-mobile-nav-link-size); line-height: var(--client-type-mobile-nav-link-lh); font-weight: var(--client-type-buttons-weight); color: var(--client-ds-text-neutral1); }
.fc-join__label p { margin: 0; }
.fc-join__label a { color: inherit; text-decoration: none; }
.fc-join__rounds { display: flex; align-items: center; gap: var(--client-join-rounds-gap); }
.fc-join__round { display: inline-flex; align-items: center; justify-content: center; width: var(--client-join-round-width); height: var(--client-join-round-height); border-radius: var(--client-radius-pill); border: 0; cursor: pointer; text-decoration: none; }
.fc-join__round--email { background: var(--client-ds-button1-default); color: var(--client-ds-button-light-text); }
.fc-join__round--email:hover { background: var(--client-ds-button1-hover); }
.fc-join__round--google { background: var(--client-google-bg); border: var(--client-join-round-google-border-width) solid var(--client-google-border); }
.fc-join__round--demo { background: var(--client-ds-button2-default); color: var(--client-demo-text); }
.fc-join__round--demo:hover { background: var(--client-ds-button2-hover); }
.fc-join__or--small { width: auto; padding: var(--client-space-lg) var(--client-join-or-small-padding) 0; align-self: stretch; }
.fc-join__or--small::before, .fc-join__or--small::after { display: none; }

.fc-join__icon--mail { --fc-icon: url("../../join/mail.svg"); }
.fc-join__icon--calendar-chevrons-right { --fc-icon: url("../../join/calendar-chevrons-right.svg"); }

/*
 * A card the PAGE drew into a module's slot (CLT-65: `slots.ts`, so the first paint holds the card before the script
 * runs). Its words list beside the slot never shows: the card shows the words. And it lays out as the script's card
 * does, wide or stacked, with no measurement: as wide as the component (`--client-join-wide-width`, Figma
 * `join-card-bottom-light` 5089:3861) at most, its row wrapping, so the two join buttons, which fill exactly the
 * component's width inside its padding (280 + 40 + 280), sit side by side when the slot gives the card its full width
 * and stack when it does not: the script's own test (`fc-join--wide` at a 632 slot), made by the layout.
 */
:is([data-cta-module-slot], [data-piece-module-slot]):has(> .fc-join) ~ [data-module-content] { display: none; }
.fc-join--fluid { width: var(--client-join-wide-width); }
.fc-join--fluid .fc-join__row { flex-direction: row; flex-wrap: wrap; justify-content: center; column-gap: var(--client-join-wide-row-gap); row-gap: var(--client-join-row-gap); }

/* ─ media-text.css ─ */
/* from CSS */
.fc-essay, .fc-essay * { box-sizing: border-box; }
.fc-essay { padding: var(--client-band-essay); font-family: var(--client-font-body), sans-serif; }
.fc-essay__inner { max-width: var(--client-measure); margin: 0 auto; display: grid; grid-template-columns: minmax(0, var(--client-essay-prose-width)) var(--client-essay-panel-width); justify-content: space-between; column-gap: var(--client-essay-column-gap); align-items: center; }
.fc-essay__copy { display: flex; flex-direction: column; gap: var(--client-essay-copy-gap); }
.fc-essay__rule { width: 100%; height: 0; margin: var(--client-essay-rule-space); border: 0; border-bottom: var(--client-essay-rule-weight) solid var(--client-ds-stroke2); }
.fc-essay__heading {
  margin: 0;
  font-family: var(--client-type-essay-heading-font), sans-serif;
  font-size: var(--client-type-essay-heading-size);
  line-height: var(--client-type-essay-heading-lh);
  font-weight: var(--client-type-essay-heading-weight);
  color: var(--client-type-essay-heading-color);
}
.fc-essay__body { display: flex; flex-direction: column; gap: var(--client-essay-body-gap); }
.fc-essay__body > div { display: contents; }
.fc-essay__body h3 {
  margin: 0;
  font-size: var(--client-type-step-title-size);
  line-height: var(--client-type-step-title-lh);
  font-weight: var(--client-type-step-title-weight);
  color: var(--client-type-step-title-color);
}
.fc-essay__body h3:not(:first-child) { margin-top: var(--client-essay-heading-space); }
.fc-essay__body p, .fc-essay__body li { margin: 0; font-size: var(--client-type-body-size); line-height: var(--client-type-body-lh); font-weight: var(--client-type-body-weight); color: var(--client-body); }
.fc-essay__body p + p { margin-top: calc(1lh - var(--client-essay-body-gap)); }
.fc-essay__body ul, .fc-essay__body ol { margin: 0; padding-left: var(--client-essay-list-inset); }
.fc-essay__body a { color: var(--client-link); text-decoration: underline; }
.fc-essay__link { align-self: flex-start; color: var(--client-link); font-weight: var(--client-type-link-weight); text-decoration: none; }
.fc-essay__panel { position: relative; max-width: var(--client-essay-panel-max-width); }
.fc-essay__panel img, .fc-essay__panel video { display: block; width: 100%; height: auto; }
.fc-essay--split .fc-essay__inner { display: flex; flex-direction: column; gap: var(--client-essay-split-gap); }
.fc-essay--split .fc-essay__copy { gap: var(--client-essay-split-gap); }
.fc-essay__grid { display: grid; grid-template-columns: 1fr 1fr; align-items: start; width: 100%; }
.fc-essay__cell { display: flex; align-items: flex-start; gap: var(--client-essay-cell-gap); padding: var(--client-essay-cell-padding); }
.fc-essay__num { flex: none; font-size: var(--client-type-step-title-size); line-height: var(--client-type-step-title-lh); font-weight: var(--client-type-step-title-weight); color: var(--client-type-step-title-color); }
.fc-essay__cellcopy { display: flex; flex-direction: column; gap: var(--client-essay-cell-copy-gap); min-width: 0; }
.fc-essay__cellcopy .fc-essay__body { gap: var(--client-essay-body-gap); }
.fc-essay__cellcopy h3:not(:first-child) { margin-top: 0; }
.fc-essay__grid .fc-essay__panel { grid-column: 1 / -1; justify-self: center; width: var(--client-essay-grid-panel-width); max-width: 100%; }
@media (max-width: 779px) {
  .fc-essay__grid { row-gap: var(--client-essay-row-gap); }
  .fc-essay__inner { row-gap: var(--client-essay-row-gap); }
  .fc-essay__inner { grid-template-columns: minmax(0, 1fr); }
  .fc-essay__copy { display: contents; }
  .fc-essay__eyebrow { order: 1; }
  .fc-essay__heading { order: 2; }
  .fc-essay__panel { order: 4; width: 100%; margin: 0 auto; }
  .fc-essay__body { order: 5; }
  .fc-essay__link { order: 6; }
  .fc-essay__pieces { order: 7; }
  .fc-essay__rule { order: 8; }
  .fc-essay--split .fc-essay__copy { display: flex; }
  .fc-essay--split .fc-essay__grid { order: 5; } /* after the lead, in DOM order among equals: headline, lead, blocks 1 and 2, illustration, 3 and 4 */
  .fc-essay__grid { grid-template-columns: minmax(0, 1fr); }
  .fc-essay__cell { padding: 0; }
  .fc-essay__grid .fc-essay__panel { order: 0; }
}

/* from SHARED_PHONE_CSS */
@media (max-width: 779px) {
  .fc-media > section > div { --client-media-panel-order: -1; }
  .fc-media > section > div > div:has(> h2) { display: contents !important; }
  .fc-media > section > div > div:has(> h2) > .frilly-eyebrow { order: -3; }
  .fc-media > section > div > div:has(> h2) > h2 { order: -2; }
}

/* The wrappers the render once styled inline: boxes that are not boxes, so the shared chunk's and the essay's own rows lay out as if the wrapper were not there. */
.fc-media { display: contents; }
.fc-essay__pieces { display: contents; }
.fc-essay__beside { display: contents; }
/* The over-the-media slot (FRI-1496): a grid of its pieces; over a panel it covers the panel and sits its pieces at the bottom. */
.fc-essay__over { display: grid; gap: var(--client-space-xs); }
.fc-essay__over--panel { position: absolute; inset: 0; display: grid; align-content: end; padding: var(--client-space-md); gap: 0; }

/* The wide look (CLT-65, Pricing 5273:3240 and the divider 5273:3134): the illustration across the measure inside the
   gutter, at its own aspect; the rule across the page, its space and weight the theme's. */
.fc-wide { padding: var(--client-band-wide); }
.fc-wide__panel { box-sizing: content-box; max-width: var(--client-measure); margin: 0 auto; padding: 0 var(--client-gutter); }
.fc-wide__panel img { display: block; width: 100%; height: auto; }
.fc-wide__rule { height: 0; margin: var(--client-wide-rule-space); border: 0; border-bottom: var(--client-wide-rule-weight) solid var(--client-ds-stroke2); }

/* The notice look (CLT-65, Smart Commerce 5282:2406): the heading alone, centred in a dashed rounded panel across the
   measure; its band, height, radius, edge and type are the theme's. */
.fc-notice { padding: var(--client-band-notice); }
.fc-notice__panel { box-sizing: border-box; display: flex; align-items: center; justify-content: center; max-width: var(--client-measure); min-height: var(--client-notice-height); margin: 0 auto; padding: var(--client-notice-padding); border: var(--client-notice-border-width) dashed var(--client-notice-border); border-radius: var(--client-notice-radius); }
.fc-notice__line {
  margin: 0;
  text-align: center;
  font-family: var(--client-type-notice-font), sans-serif;
  font-size: var(--client-type-notice-size);
  line-height: var(--client-type-notice-lh);
  font-weight: var(--client-type-notice-weight);
  color: var(--client-type-notice-color);
}

/* ─ nav.css ─ */
.fc-nav, .fc-nav * { box-sizing: border-box; }
.fc-nav {
  --fc-nav-h: var(--client-nav-height);
  --fc-logo-w: var(--client-nav-logo-width);
  --fc-logo-ratio: var(--fc-logo-ratio-main);
  --fc-logo-h: calc(var(--fc-logo-w) * var(--fc-logo-ratio));
  --fc-cell: var(--client-nav-cell-width);
  --fc-cell-link: var(--client-nav-cell-link-width);
  --fc-head-lh: calc(var(--client-type-nav-link-size) * var(--client-type-nav-link-lh));
  position: relative;
  display: block;
  height: var(--fc-nav-h);
  font-family: var(--client-font-body), sans-serif;
}
.fc-nav a { text-decoration: none; }
/* Below 1024 the logo is its mobile version, at that version's own width and shape. */
@media (max-width: 1023px) {
  .fc-nav { --fc-logo-w: var(--client-nav-logo-stacked-width); --fc-logo-ratio: var(--fc-logo-ratio-stacked); }
}

/* The one box everything is drawn in: closed it is the bar, open it grows. */
.fc-nav__box {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  background: var(--section-bg, var(--client-page));
  -webkit-backdrop-filter: var(--section-backdrop, none);
  backdrop-filter: var(--section-backdrop, none);
}
.fc-nav__bar {
  display: flex;
  align-items: flex-start;
  gap: var(--client-nav-gap);
  min-height: var(--fc-nav-h);
  padding: var(--client-band-nav);
}
.fc-nav[data-open] .fc-nav__bar,
.fc-nav:has(.fc-nav__menu:focus-within) .fc-nav__bar { padding-bottom: var(--client-space-lg); }

/* The logo. */
.fc-nav__brand { display: flex; align-items: flex-start; flex: none; color: var(--client-ds-primary); }
.fc-nav__mark { display: block; width: var(--fc-logo-w); height: auto; }

/* The groups and the flat links, right-aligned before the actions. */
.fc-nav__menu {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  gap: var(--client-nav-group-gap);
  padding-right: var(--client-nav-menu-end);
  padding-top: calc((var(--fc-logo-h) - var(--fc-head-lh)) / 2);
}
.fc-nav__cell { flex: 0 1 var(--fc-cell); min-width: max-content; display: flex; flex-direction: column; align-items: flex-start; gap: var(--client-nav-item-gap); }
.fc-nav__cell--link { flex-basis: var(--fc-cell-link); }
.fc-nav__head {
  display: block;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  text-align: left;
  white-space: nowrap;
  font-family: var(--client-type-nav-link-font, var(--client-font-body)), sans-serif;
  font-size: var(--client-type-nav-link-size);
  line-height: var(--client-type-nav-link-lh);
  font-weight: var(--client-type-nav-link-weight);
  color: var(--client-ds-primary);
}
.fc-nav__head:hover { color: var(--client-ds-primary2); text-decoration: underline; }
.fc-nav__head[data-current] { color: var(--client-ds-text-green1); text-decoration: none; }

/* A column's links: always in the markup and always holding the column's
   width, shown only while the nav is open. */
.fc-nav__subs { display: flex; flex-direction: column; align-items: flex-start; gap: var(--client-nav-item-gap); visibility: hidden; height: 0; overflow: hidden; }
.fc-nav[data-open] .fc-nav__subs,
.fc-nav__menu:focus-within .fc-nav__subs { visibility: visible; height: auto; overflow: visible; }
.fc-nav__sub {
  font-family: var(--client-type-nav-sub-link-font, var(--client-font-body)), sans-serif;
  font-size: var(--client-type-nav-sub-link-size);
  line-height: var(--client-type-nav-sub-link-lh);
  font-weight: var(--client-type-nav-sub-link-weight);
  white-space: nowrap;
  color: var(--client-ds-button2-default);
}
.fc-nav__sub:hover { color: var(--client-ds-button2-hover); text-decoration: underline; }
.fc-nav__sub:active { color: var(--client-ds-button2-pressed); text-decoration: underline; }

/* The CTA (the theme's primary button at the navButton size) and the toggle. */
.fc-nav__actions {
  flex: none;
  display: flex;
  align-items: center;
  gap: var(--client-nav-actions-gap);
  padding-top: calc((var(--fc-logo-h) - var(--client-button-small-height)) / 2);
}
.fc-nav__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--client-nav-cta-width);
  min-width: max-content;
  height: var(--client-button-small-height);
  padding: var(--client-button-small-padding);
  border-radius: var(--client-radius);
  white-space: nowrap;
  font-family: var(--client-type-nav-button-font, var(--client-font-body)), sans-serif;
  font-size: var(--client-type-nav-button-size);
  line-height: var(--client-type-nav-button-lh);
  font-weight: var(--client-type-nav-button-weight);
  background: var(--client-button-primary-bg);
  color: var(--client-button-primary-text);
}
.fc-nav__cta:hover { background: var(--client-button-primary-hover); }
.fc-nav__cta:active { background: var(--client-button-primary-pressed); }

/* The design's icon files, drawn in the current colour so the theme colours them. */
.fc-nav__icon {
  display: block;
  width: 100%;
  height: 100%;
  background: currentColor;
  -webkit-mask: var(--fc-icon) center / contain no-repeat;
  mask: var(--fc-icon) center / contain no-repeat;
}
.fc-nav__theme {
  flex: none;
  width: var(--client-nav-toggle-size);
  height: var(--client-nav-toggle-size);
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  color: var(--client-ds-button2-default);
}
.fc-nav__theme:hover { color: var(--client-ds-button2-hover); }
.fc-nav__theme:active { color: var(--client-ds-button2-pressed); }
.fc-nav__theme:focus-visible, .fc-nav__head:focus-visible, .fc-nav__drawer > summary:focus-visible { outline: var(--client-focus-ring); outline-offset: var(--client-focus-ring-offset); }
/* Light shows the moon (go dark), dark shows the sun (go light). */
.fc-nav__icon--sun { display: none; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .fc-nav__icon--moon { display: none; }
  :root:not([data-theme="light"]) .fc-nav__icon--sun { display: block; }
}
:root[data-theme="dark"] .fc-nav__icon--moon { display: none; }
:root[data-theme="dark"] .fc-nav__icon--sun { display: block; }
/* Scoped to the one switch, so a restored theme never animates in on first paint. */
[data-theme-switching] * { transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease, fill 180ms ease; }

/* ── the phone layout, 779 and below (top-nav-mobile-*) ── */
.fc-nav__drawer { display: none; }
.fc-nav__drawer > summary { list-style: none; cursor: pointer; }
.fc-nav__drawer > summary::-webkit-details-marker { display: none; }

@media (max-width: 779px) {
  .fc-nav { height: var(--client-mobile-nav-height); }
  .fc-nav__bar,
  .fc-nav[data-open] .fc-nav__bar { align-items: center; min-height: var(--client-mobile-nav-height); padding: var(--client-mobile-nav-band); }
  .fc-nav__mark { width: var(--client-mobile-nav-logo-width); }
  .fc-nav__menu, .fc-nav__actions { display: none; }
  .fc-nav__drawer { display: block; margin-left: auto; }
  .fc-nav__drawer > summary { display: block; width: var(--client-nav-drawer-button-size); height: var(--client-nav-drawer-button-size); color: var(--client-ds-primary); }
  .fc-nav__drawer .fc-nav__icon--x, .fc-nav__drawer[open] .fc-nav__icon--menu { display: none; }
  .fc-nav__drawer[open] .fc-nav__icon--x { display: block; }
  /* Open, the drop-down is the Expanded frame's solid ground, bar included: a
     panel cannot frost inside a frosted box (the box is its backdrop root). */
  .fc-nav__box:has(.fc-nav__drawer[open]) {
    background: var(--client-page);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: var(--client-drop-shadow);
  }
  .fc-nav__panel {
    position: absolute;
    top: var(--client-mobile-nav-height);
    left: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    gap: var(--client-mobile-nav-row-gap);
    padding: var(--client-mobile-nav-panel);
    background: var(--client-page);
    box-shadow: var(--client-drop-shadow);
    /* The shadow falls below and beside the panel, never up onto the bar. */
    clip-path: inset(0 calc(-1 * var(--client-nav-panel-bleed)) calc(-1 * var(--client-nav-panel-bleed)) calc(-1 * var(--client-nav-panel-bleed)));
  }
  .fc-nav__panel-groups {
    display: grid;
    grid-template-columns: repeat(2, var(--client-mobile-nav-column));
    column-gap: var(--client-nav-gap);
    row-gap: var(--client-mobile-nav-row-gap);
  }
  .fc-nav__panel-col { display: flex; flex-direction: column; align-items: flex-start; gap: var(--client-mobile-nav-item-gap); }
  .fc-nav__panel-head {
    font-family: var(--client-type-mobile-nav-group-font, var(--client-font-body)), sans-serif;
    font-size: var(--client-type-mobile-nav-group-size);
    line-height: var(--client-type-mobile-nav-group-lh);
    font-weight: var(--client-type-mobile-nav-group-weight);
    color: var(--client-ds-primary);
  }
  .fc-nav__panel-head[data-current] { color: var(--client-ds-text-green1); }
  .fc-nav__panel-link {
    font-family: var(--client-type-mobile-nav-link-font, var(--client-font-body)), sans-serif;
    font-size: var(--client-type-mobile-nav-link-size);
    line-height: var(--client-type-mobile-nav-link-lh);
    font-weight: var(--client-type-mobile-nav-link-weight);
    color: var(--client-ds-button2-default);
  }
  .fc-nav__panel-link:hover { color: var(--client-ds-button2-hover); }
  .fc-nav__panel-link:active { color: var(--client-ds-button2-pressed); }
  .fc-nav__panel-actions { display: flex; align-items: center; gap: var(--client-mobile-nav-actions-gap); }
  .fc-nav__panel-actions .fc-nav__cta {
    width: var(--client-mobile-nav-cta-width);
    height: var(--client-mobile-nav-cta-height);
    padding: var(--client-mobile-nav-cta-padding);
    border-radius: var(--client-mobile-nav-cta-radius);
    font-family: var(--client-type-mobile-nav-sign-in-font, var(--client-font-body)), sans-serif;
    font-size: var(--client-type-mobile-nav-sign-in-size);
    line-height: var(--client-type-mobile-nav-sign-in-lh);
    font-weight: var(--client-type-mobile-nav-sign-in-weight);
  }
  .fc-nav__panel-actions .fc-nav__theme { width: var(--client-nav-drawer-button-size); height: var(--client-nav-drawer-button-size); }
}

/* The box carries the ground: the placement sheet paints the wrapper's child (sectionBackground.ts), and this
   rule must outrank it the way the inline value did, so the bar never gets a second layer under its box. */
.fc-nav { background: transparent !important; }
/* The variant the editor picks. */
.fc-nav--sticky { position: sticky; top: 0; z-index: 50; }
/* The logo's shapes, the theme's `navLogoRatio` and `navLogoStackedRatio` (each file's height over its width),
   so the headers and the button centre on the logo. */
.fc-nav { --fc-logo-ratio-main: var(--client-nav-logo-ratio); --fc-logo-ratio-stacked: var(--client-nav-logo-stacked-ratio); }
/* The design's icon files, masked in the current colour: theme tokens (`navIconMoon` and its kin), so the theme's one
   writer gives each `url(/chrome/…)` the site's base path, as it does the slideshow's arrows (CLT-65, the staging walk). */
.fc-nav__icon--moon { --fc-icon: var(--client-nav-icon-moon); }
.fc-nav__icon--sun { --fc-icon: var(--client-nav-icon-sun); }
.fc-nav__icon--menu { --fc-icon: var(--client-nav-icon-menu); }
.fc-nav__icon--x { --fc-icon: var(--client-nav-icon-x); }

/* ─ post-index.css ─ */
.fc-posts, .fc-posts * { box-sizing: border-box; }
.fc-posts { padding: var(--client-band-blog-index); font-family: var(--client-font-body), sans-serif; }
.fc-posts__inner { max-width: var(--client-measure); margin: 0 auto; display: flex; flex-direction: column; gap: var(--client-posts-gap); }
.fc-posts__heading { margin: 0; 
  font-family: var(--client-type-h2-font), sans-serif;
  font-size: var(--client-type-h2-size);
  line-height: var(--client-type-h2-lh);
  font-weight: var(--client-type-h2-weight);
  color: var(--client-type-h2-color); }
.fc-posts__row { display: flex; flex-wrap: wrap; gap: var(--client-posts-row-gap); padding-bottom: var(--client-posts-row-space-below); }
.fc-posts__card { width: var(--client-posts-card-width); max-width: 100%; display: flex; flex-direction: column; gap: var(--client-posts-card-gap); }
.fc-posts__top { display: flex; align-items: center; justify-content: space-between; gap: var(--client-posts-card-gap); }
.fc-posts__tag { display: inline-flex; align-items: center; padding: var(--client-article-tag-padding); border-radius: var(--client-article-tag-radius); background: var(--client-brand-tertiary-200); text-transform: capitalize; 
  font-family: var(--client-type-blog-tag-font), sans-serif;
  font-size: var(--client-type-blog-tag-size);
  line-height: var(--client-type-blog-tag-lh);
  font-weight: var(--client-type-blog-tag-weight);
  color: var(--client-type-blog-tag-color); } /* the category as filed is a slug; the label is not fed to chunks (CLT-70) */
.fc-posts__date { margin-left: auto; 
  font-family: var(--client-type-blog-date-font), sans-serif;
  font-size: var(--client-type-blog-date-size);
  line-height: var(--client-type-blog-date-lh);
  font-weight: var(--client-type-blog-date-weight);
  color: var(--client-type-blog-date-color); }
.fc-posts__figure { position: relative; margin: 0; }
.fc-posts__figure a { display: block; }
.fc-posts__image { display: block; width: 100%; aspect-ratio: 260 / 146; object-fit: cover; border-radius: var(--client-posts-image-radius); }
.fc-posts__flag { position: absolute; top: var(--client-posts-flag-top); left: calc(-1 * var(--client-posts-flag-overhang)); padding: var(--client-posts-flag-padding); background: var(--client-ds-primary); 
  font-family: var(--client-type-blog-flag-font), sans-serif;
  font-size: var(--client-type-blog-flag-size);
  line-height: var(--client-type-blog-flag-lh);
  font-weight: var(--client-type-blog-flag-weight);
  color: var(--client-type-blog-flag-color); }
.fc-posts__text { display: flex; flex-direction: column; gap: var(--client-posts-text-gap); flex: 1 0 auto; }
.fc-posts__title { margin: 0; 
  font-family: var(--client-type-blog-card-title-font), sans-serif;
  font-size: var(--client-type-blog-card-title-size);
  line-height: var(--client-type-blog-card-title-lh);
  font-weight: var(--client-type-blog-card-title-weight);
  color: var(--client-type-blog-card-title-color); }
.fc-posts__title a { color: inherit; text-decoration: none; }
.fc-posts__sub { margin: 0; font-size: var(--client-type-body-size); line-height: var(--client-type-body-lh); font-weight: var(--client-type-body-weight); color: var(--client-body); }
.fc-posts__byline { display: flex; align-items: center; gap: var(--client-posts-byline-gap); }
.fc-posts__portrait { display: block; width: var(--client-posts-portrait-size); height: var(--client-posts-portrait-size); border-radius: 50%; object-fit: cover; }
.fc-posts__name { margin: 0; 
  font-family: var(--client-type-blog-byline-font), sans-serif;
  font-size: var(--client-type-blog-byline-size);
  line-height: var(--client-type-blog-byline-lh);
  font-weight: var(--client-type-blog-byline-weight);
  color: var(--client-type-blog-byline-color); }
.fc-posts__divider { padding: var(--client-posts-divider-padding); }
.fc-posts__rule { height: 0; margin: 0; border: 0; border-top: var(--client-article-rule-weight) solid var(--client-ds-stroke2); }
@media (max-width: 779px) {
  .fc-posts__card { max-width: var(--client-posts-card-max-width); }
  .fc-posts__row { flex-direction: column; align-items: center; }
  .fc-posts__card { width: 100%; }
  /* The founder's phone rule for content cards: headline, image, card text. */
  .fc-posts__text { display: contents; }
  .fc-posts__top { order: 0; }
  .fc-posts__title { order: 1; }
  .fc-posts__figure { order: 2; }
  .fc-posts__sub { order: 3; }
  .fc-posts__byline { order: 4; }
}

/* ─ process-steps.css ─ */
.fc-process, .fc-process * { box-sizing: border-box; }
.fc-process { padding: var(--client-band-process); font-family: var(--client-font-body), sans-serif; }
.fc-process__inner { max-width: var(--client-measure); margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: var(--client-process-gap); }
.fc-process__heading {
  margin: 0; padding: var(--client-process-heading-padding); text-align: center;
  font-family: var(--client-type-h2-font), sans-serif;
  font-size: var(--client-type-h2-size);
  line-height: var(--client-type-h2-lh);
  font-weight: var(--client-type-h2-weight);
  letter-spacing: var(--client-type-h2-tracking);
  color: var(--client-type-h2-color);
}
.fc-process__steps { display: flex; align-items: flex-start; gap: var(--client-process-steps-gap); padding: var(--client-process-steps-padding); width: 100%; max-width: var(--client-process-steps-max-width); margin: 0; list-style: none; }
.fc-process__step { flex: 1 1 0; display: flex; align-items: flex-start; gap: var(--client-process-step-gap); }
.fc-process__number {
  flex: none;
  font-size: var(--client-type-step-number-size);
  line-height: var(--client-type-step-number-lh);
  font-weight: var(--client-type-step-number-weight);
  color: var(--client-type-step-number-color);
}
.fc-process__copy { display: flex; flex-direction: column; gap: var(--client-space-xs); }
.fc-process__title {
  margin: 0;
  font-size: var(--client-type-step-title-size);
  line-height: var(--client-type-step-title-lh);
  font-weight: var(--client-type-step-title-weight);
  color: var(--client-type-step-title-color);
}
.fc-process__text, .fc-process__text p {
  margin: 0;
  font-size: var(--client-type-step-body-size);
  line-height: var(--client-type-step-body-lh);
  font-weight: var(--client-type-step-body-weight);
  color: var(--client-type-step-body-color);
}
@media (max-width: 779px) {
  .fc-process__steps { flex-direction: column; gap: var(--client-space-lg); }
}

/* ─ social-proof.css ─ */
.fc-proof, .fc-proof * { box-sizing: border-box; }
.fc-proof { padding: var(--client-band-proof); background: var(--client-ground-proof-fade); font-family: var(--client-font-body), sans-serif; }
.fc-proof__line {
  margin: 0; padding: var(--client-proof-line-padding); text-align: center;
  font-family: var(--client-type-proof-line-font), sans-serif;
  font-size: var(--client-type-proof-line-size);
  line-height: var(--client-type-proof-line-lh);
  font-weight: var(--client-type-proof-line-weight);
  letter-spacing: var(--client-type-proof-line-tracking);
  color: var(--client-type-proof-line-color);
}
.fc-proof__line p { margin: 0; display: inline; }
.fc-proof__figure {
  font-family: var(--client-type-proof-figure-font), sans-serif;
  font-size: var(--client-type-proof-figure-size);
  line-height: var(--client-type-proof-figure-lh);
  font-weight: var(--client-type-proof-figure-weight);
  letter-spacing: var(--client-type-proof-figure-tracking);
  color: var(--client-type-proof-figure-color);
}
/* The strip itself (its ground, row, figures, sentence, links and phone stack) is `callout-strip.css`, shared with the Smart Site callout (CLT-65). */

/* ─ team-grid.css ─ */
.fc-team, .fc-team * { box-sizing: border-box; }
.fc-team { padding: var(--client-band-team); font-family: var(--client-font-body), sans-serif; }
.fc-team__inner { max-width: var(--client-measure); margin: 0 auto; display: flex; flex-direction: column; gap: var(--client-team-gap); padding-bottom: var(--client-team-space-below); border-bottom: var(--client-team-edge) solid var(--client-ds-stroke2); }
.fc-team__heading {
  margin: 0;
  font-family: var(--client-type-h2-font), sans-serif;
  font-size: var(--client-type-h2-size);
  line-height: var(--client-type-h2-lh);
  font-weight: var(--client-type-h2-weight);
  letter-spacing: var(--client-type-h2-tracking);
  color: var(--client-type-h2-color);
}
.fc-team__intro { margin: 0; font-size: var(--client-type-body-size); line-height: var(--client-type-body-lh); color: var(--client-body); }
.fc-team__people { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--client-team-gap); }
.fc-team__person { display: grid; grid-template-columns: var(--client-team-portrait-width) minmax(0, 1fr); column-gap: var(--client-team-column-gap); align-items: start; }
.fc-team__portrait { margin: 0; width: var(--client-team-portrait-width); }
.fc-team__portrait img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50%; }
.fc-team__copy { display: flex; flex-direction: column; gap: var(--client-team-copy-gap); padding-bottom: var(--client-team-copy-space-below); }
.fc-team__name {
  margin: 0;
  font-size: var(--client-type-person-name-size);
  line-height: var(--client-type-person-name-lh);
  font-weight: var(--client-type-person-name-weight);
  color: var(--client-type-person-name-color);
}
.fc-team__role {
  margin: 0;
  font-size: var(--client-type-person-role-size);
  line-height: var(--client-type-person-role-lh);
  font-weight: var(--client-type-person-role-weight);
  color: var(--client-type-person-role-color);
}
.fc-team__bio { display: flex; flex-direction: column; gap: var(--client-team-copy-gap); }
.fc-team__bio > div { display: contents; }
.fc-team__bio p { margin: 0; font-size: var(--client-type-body-size); line-height: var(--client-type-body-lh); font-weight: var(--client-type-body-weight); color: var(--client-body); }
.fc-team__bio a { color: var(--client-link); text-decoration: underline; }
@media (max-width: 779px) {
  .fc-team__person { row-gap: var(--client-team-row-gap); }
  .fc-team__person { grid-template-columns: minmax(0, 1fr); }
}

/* ─ text-links.css ─ */
/*
 * Frilly Concierge: every link inside body text (CLT-65, the founder's
 * staging walk). His ruling: "The links should be `headline-1-light` and
 * `text-blue-1-dark`", the theme's `link` per mode, compiled to
 * `--client-link`.
 *
 * ONE RULE FOR EVERY RICH TEXT. A link an editor writes in any rich-text
 * field is drawn by the platform's one Lexical render as `a.p-link`
 * (`src/lib/lexical.ts`), whichever chunk holds it, Frilly's override or a
 * shared chunk this client does not override (the content section on the
 * legal pages; media-text's body under Frilly's `.fc-media`). The shared
 * chunks give that class no colour, so the browser's own blue and visited
 * purple showed through. This sheet gives it the token, in both states.
 *
 * Not under the client's prefix (C1b), deliberately: the class is the
 * platform's, and this sheet ships in Frilly's bundle alone. `:where()` keeps
 * it at zero specificity, as Gesund's primitive does, so a placement whose own
 * sheet names a link colour still wins; a Frilly sheet that set `color:
 * inherit` on its links was dropped to let this through.
 */
:where(.p-link, .p-link:visited) { color: var(--client-link); text-decoration: underline; }
