/* Her two typefaces, served from her own site (not Google): the page never
   waits on a third-party server before it can show text, and no visitor's
   browser contacts Google (German GDPR). Each file is a variable font, so one
   file covers every weight the design uses (300 and 400). Google's own files
   and character ranges: "latin" (English and western Europe) for everything
   on the site, and "latin-ext" (Ł, ő, č, ř …) fetched only if a page shows
   such a letter — a client's own name on the thank-you page, for instance. */
@font-face {
  font-family: "Cormorant Garamond";
  src: url("fonts/cormorant-garamond.woff2") format("woff2");
  font-weight: 300 700; font-style: normal; font-display: swap;
  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: "Cormorant Garamond";
  src: url("fonts/cormorant-garamond-latin-ext.woff2") format("woff2");
  font-weight: 300 700; font-style: normal; font-display: swap;
  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;
}
@font-face {
  font-family: "Jost";
  src: url("fonts/jost.woff2") format("woff2");
  font-weight: 100 900; font-style: normal; font-display: swap;
  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: "Jost";
  src: url("fonts/jost-latin-ext.woff2") format("woff2");
  font-weight: 100 900; font-style: normal; font-display: swap;
  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;
}

/* Returned Essence — the begin, booking and thank-you pages.
   These are rendered by this plugin at request time, so their type lives
   here rather than in Elementor. Values are the site's own tokens. */
.re-begin { max-width: 640px; }
.re-begin h1 {
  font-family: "Cormorant Garamond", Georgia, serif; font-weight: 300;
  font-size: 54px; line-height: 1.08; color: #14100E; margin: 0 0 20px;
}
@media (max-width: 767px) { .re-begin h1 { font-size: 38px; } }
.re-begin-label {
  display: flex; align-items: center; gap: 16px; margin: 0 0 22px;
  font-family: "Jost", sans-serif; font-size: 11px; font-weight: 400;
  letter-spacing: 2.42px; text-transform: uppercase; color: #5F5E5A;
}
.re-diamond { width: 5px; height: 5px; background: #D7B679; transform: rotate(45deg); flex: none; }
.re-begin-head { margin-bottom: 36px; }
.re-begin-lead { font-size: 19px; line-height: 1.75; margin: 0; }
.re-begin .re-price { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 300;
                      font-size: 43px; line-height: 1.1; margin: 0 0 6px; }
.re-begin p { margin: 0 0 14px; }
.re-begin-msg { font-family: "Jost", sans-serif; font-weight: 300; font-size: 17px;
                line-height: 1.75; color: #14100E; }
.re-begin-msg form { margin-top: 24px; }
.re-book-head { max-width: 860px; margin-bottom: 32px; }
/* Same size as the Elementor heading on /complimentary-call/ (54.4 / 34). */
.re-book-head h1 { font-size: 54.4px; line-height: 1.12; margin: 0; }
@media (max-width: 767px) { .re-book-head h1 { font-size: 34px; } }
.re-dark .re-begin-label { color: #D7B679; }
.re-dark .re-begin h1, .re-dark .re-begin-msg { color: #FBF7F1; }

.re-begin { font-family: "Jost", sans-serif; font-weight: 300; color: #14100E;
            font-size: 17px; line-height: 1.7; }
.re-begin fieldset { border: 0; padding: 0; margin: 0 0 28px; }
.re-begin legend { font-size: 11px; font-weight: 400; letter-spacing: 2.42px;
                   text-transform: uppercase; color: #5F5E5A; margin-bottom: 14px; }
.re-begin .re-choice { display: flex; gap: 14px; align-items: flex-start;
                       padding: 16px 18px; border: 1px solid rgba(20,16,14,.18);
                       border-radius: 8px; margin-bottom: 12px; cursor: pointer;
                       background: #FBF7F1; }
.re-begin .re-choice:has(input:checked) { border-color: #D7B679;
                                          box-shadow: 0 0 0 1px #D7B679; }
.re-begin .re-choice strong { font-weight: 400; display: block; }
.re-begin input[type=radio], .re-begin input[type=checkbox] {
  width: 20px; height: 20px; margin-top: 4px; accent-color: #14100E; flex: none; }
.re-begin label.re-field { display: block; margin-bottom: 18px; }
.re-begin label.re-field span { display: block; font-size: 11px; font-weight: 400;
  letter-spacing: 2.42px; text-transform: uppercase; color: #5F5E5A; margin-bottom: 8px; }
.re-begin input[type=text], .re-begin input[type=email] {
  width: 100%; box-sizing: border-box; font: inherit; color: #14100E;
  padding: 14px 16px; border: 1px solid rgba(20,16,14,.28); border-radius: 8px;
  background: #fff; }
/* VIP: her email is fixed to her application — show it as text, not a box. */
.re-begin input[readonly] { background: transparent; border-color: transparent;
  padding-left: 0; padding-right: 0; }
.re-begin input:focus-visible { outline: 2px solid #14100E; outline-offset: 2px; }
.re-begin .re-consent { display: flex; gap: 14px; align-items: flex-start;
                        margin-bottom: 16px; }
.re-begin .re-agreement { margin: 0 0 24px; }
.re-begin .re-agreement a, .re-begin .re-small a, .re-begin-msg a {
  color: #14100E; text-decoration: underline; text-decoration-color: #D7B679;
  text-decoration-thickness: 2px; text-underline-offset: 4px; }
.re-begin button, .re-begin-msg .re-button {
  display: inline-block; font-family: "Jost", sans-serif; font-size: 11px;
  font-weight: 400; letter-spacing: 2.42px; text-transform: uppercase;
  line-height: 1; padding: 16px 32px; border: 1px solid #D7B679; border-radius: 8px;
  background: #D7B679; color: #14100E; cursor: pointer; text-decoration: none;
  transition: background .3s; }
.re-begin button:hover, .re-begin-msg .re-button:hover { background: #C9A461; border-color: #C9A461; }
.re-begin button:focus-visible { outline: 2px solid #14100E; outline-offset: 3px; }
.re-begin .re-error { border-left: 2px solid #A33A2B; padding: 4px 0 4px 14px;
                      margin: 0 0 24px; color: #7A2A1F; }
.re-begin .re-small { font-size: 15px; color: #14100E; }
.re-begin button + .re-small { margin-top: 20px; }
.re-begin .re-total { font-size: 15px; display: block; }
/* Calendly sizes its iframe to 100% of this box, so the box needs a real
   height (a min-height resolves the iframe to 150px). Calendly's own
   guidance is 700px; its phone layout stacks the calendar and the times. */
.re-calendly { height: 760px; width: 100%; }
@media (max-width: 767px) { .re-calendly { height: 1060px; } }
/* The fallback link: shown with scripts off (and the empty box collapsed);
   with scripts on, site.js shows it only if no calendar has arrived. */
.re-calendly-alt { margin: 24px 0 0; font-family: "Jost", sans-serif;
  font-weight: 300; font-size: 17px; line-height: 1.6; }
.re-calendly-alt a { color: #14100E; text-decoration: underline;
  text-decoration-color: #D7B679; text-decoration-thickness: 2px;
  text-underline-offset: 4px; }
.re-dark .re-calendly-alt a { color: #FBF7F1; }
html:not(.re-js) .re-calendly { height: auto; }
.re-js .re-calendly-alt { display: none; }
.re-js .re-calendly-alt.is-shown { display: block; }
.re-calendly.is-empty { height: auto; }

/* The theme resets <label> to line-height 1 and inline-block, and form
   controls do not inherit the page font; both are put back here. */
.re-begin, .re-begin-msg { font-family: "Jost", "Helvetica Neue", Arial, sans-serif; }
.re-begin label, .re-begin span, .re-begin input, .re-begin button,
.re-begin legend, .re-begin p {
  font-family: inherit; line-height: 1.6;
}
.re-begin label.re-choice, .re-begin label.re-consent { display: flex; }
.re-begin .re-choice span, .re-begin .re-consent span { font-weight: 300; font-size: 17px; }
.re-begin .re-choice span.re-total { font-size: 15px; margin-top: 4px; }
.re-begin legend, .re-begin label.re-field span { line-height: 1; }
.re-begin button { line-height: 1; }

/* v5: body text 17px on phone — last, so it wins over the rules above. */
@media (max-width: 767px) {
  .re-begin .re-small, .re-begin .re-total,
  .re-begin .re-choice span.re-total { font-size: 17px; }
}

/* The phone menu takes focus itself when it opens (site.js): no ring on
   the panel; its links keep theirs. */
#re-menu:focus { outline: none; }

/* Her nine forms (/vip-application/, /intake/…, /reflection/…): Fluent Forms
   in the site's own type, fields and button. Scoped to .re-form, so a form
   Judith adds elsewhere keeps Fluent Forms' look. Fluent's stylesheets load
   after this one, so every rule names .fluentform twice to win on
   specificity rather than on order. */
.re-form-head { margin-bottom: 44px; }
.re-form-head .re-begin-lead { margin: 0 0 14px; }
.re-form-required { font-size: 15px; color: #5F5E5A; margin: 22px 0 0; }
.re-form-star { color: #A33A2B; }
.re-form { max-width: 640px; font-family: "Jost", "Helvetica Neue", Arial, sans-serif;
           font-weight: 300; font-size: 17px; line-height: 1.7; color: #14100E; }
.re-form .fluentform.fluentform .ff-el-group { margin-bottom: 34px; }
.re-form .fluentform.fluentform .ff-el-input--label { margin-bottom: 10px; }
.re-form .fluentform.fluentform .ff-el-input--label { text-wrap: pretty; }
.re-form .fluentform.fluentform .ff-el-input--label label {
  font-family: inherit; font-weight: 400; font-size: 17px; line-height: 1.55;
  color: #14100E; display: inline; }
/* A no-break space before the asterisk: it never ends up alone on a line. */
.re-form .fluentform.fluentform .ff-el-is-required.asterisk-right label:after {
  content: "\00a0*"; color: #A33A2B; margin-left: 0; }
.re-form .ff-message-success:focus { outline: none; }
.re-form .fluentform.fluentform .ff-el-form-control {
  font: inherit; color: #14100E; padding: 14px 16px; height: auto;
  border: 1px solid rgba(20,16,14,.28); border-radius: 8px; background: #fff;
  box-shadow: none; }
.re-form .fluentform.fluentform select.ff-el-form-control { padding-right: 40px; background-color: #fff; }
.re-form .fluentform.fluentform textarea.ff-el-form-control { min-height: 132px; resize: vertical; }
.re-form .fluentform.fluentform .ff-el-form-control:focus { border-color: #14100E; outline: 2px solid #14100E; outline-offset: 2px; }
.re-form .fluentform.fluentform .ff-el-form-check { margin: 0 0 10px; }
.re-form .fluentform.fluentform .ff-el-form-check label {
  display: flex; gap: 12px; align-items: flex-start; font-family: inherit;
  font-weight: 300; font-size: 17px; line-height: 1.6; color: #14100E; cursor: pointer; }
.re-form .fluentform.fluentform input[type=radio] { width: 20px; height: 20px; margin: 3px 0 0;
  accent-color: #14100E; flex: none; }
/* The "Other:" box sits right under its choice; its label is for screen readers. */
.re-form .fluentform.fluentform .re-ff-other { margin-top: -22px; }
.re-form .fluentform.fluentform .re-ff-other .ff-el-input--label {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
/* 1–10 scales: ten equal columns on every screen, her two end labels on the
   line under them (and any error under those). */
.re-form .fluentform.fluentform .re-ff-scale .ff-el-input--content {
  display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); }
.re-form .fluentform.fluentform .re-ff-scale .ff-el-input--content > :not(.ff-el-form-check) { grid-column: 1 / -1; }
.re-form .fluentform.fluentform .re-ff-scale .ff-el-form-check { margin: 0; min-width: 0; }
.re-form .fluentform.fluentform .re-ff-scale .ff-el-form-check label {
  flex-direction: column; align-items: center; gap: 6px; font-size: 15px; padding: 4px 0; }
.re-form .fluentform.fluentform .re-ff-scale input[type=radio] { margin: 0; }
.re-form .fluentform.fluentform .re-ff-scale .ff-el-help-message {
  display: flex; justify-content: space-between; gap: 16px;
  margin-top: 10px; font-style: normal; font-size: 15px; line-height: 1.4; color: #5F5E5A; }
.re-form .fluentform.fluentform .re-ff-scale .ff-el-help-message span:last-child { text-align: right; }
.re-form .fluentform.fluentform .ff-btn-submit {
  font-family: "Jost", sans-serif; font-size: 11px; font-weight: 400;
  letter-spacing: 2.42px; text-transform: uppercase; line-height: 1;
  padding: 16px 32px; border: 1px solid #D7B679; border-radius: 8px;
  background: #D7B679; color: #14100E; cursor: pointer; transition: background .3s; }
.re-form .fluentform.fluentform .ff-btn-submit:hover { background: #C9A461; border-color: #C9A461; opacity: 1; }
.re-form .fluentform.fluentform .ff-btn-submit:focus-visible { outline: 2px solid #14100E; outline-offset: 3px; }
.re-form .fluentform.fluentform .error.text-danger { color: #7A2A1F; font-size: 15px; margin-top: 6px; }
.re-form .fluentform.fluentform .ff-el-is-error .ff-el-form-control { border-color: #A33A2B; }
.re-form .ff-message-success.ff-message-success {
  border: 0; border-left: 2px solid #D7B679; box-shadow: none; background: transparent;
  padding: 4px 0 4px 18px; margin: 0; font-family: inherit; font-size: 19px;
  line-height: 1.75; color: #14100E; }
.re-form .ff-message-success p { margin: 0 0 14px; }
.re-form .ff-message-success p:last-child { margin-bottom: 0; }
.re-form .ff-errors-in-stack { color: #7A2A1F; font-size: 15px; }
/* v5: body text 17px on phone — errors, the scale's end labels, the note. */
@media (max-width: 767px) {
  .re-form .fluentform.fluentform .error.text-danger,
  .re-form .fluentform.fluentform .re-ff-scale .ff-el-help-message,
  .re-form-required { font-size: 17px; }
  .re-form .fluentform.fluentform .re-ff-scale .ff-el-form-check label { font-size: 15px; gap: 4px; }
}
