/* consultation */
:root {
  --paper:#f8f5ef;
  --ink:#303d33;
  --muted:#696d63;
  --line:#d9d8cb;
  --olive:#354337;
  --accent:#a54d36;
  --serif:Georgia,'Times New Roman',serif
}
* {
  box-sizing:border-box
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:14px/1.6 Arial,Helvetica,sans-serif
}
button,input,select {
  font:inherit
}
button,a,input,select {
  -webkit-tap-highlight-color:transparent
}
button,a {
  touch-action:manipulation
}
button {
  cursor:pointer
}
a {
  color:inherit;
  text-underline-offset:4px
}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:4px
}
[hidden] {
  display:none!important
}
.skip {
  position:absolute;
  left:20px;
  top:-100px;
  background:white;
  padding:12px;
  z-index:10
}
.skip:focus {
  top:10px
}
.prototype-bar {
  padding:8px 5%;
  background:#ece8df;
  color:#484d43;
  display:flex;
  justify-content:space-between;
  font-size:10px;
  letter-spacing:1.5px
}
.prototype-bar span {
  letter-spacing:.2px;
  font-size:11px
}
.site-header {
  margin:0 auto;
  max-width:1550px;
  padding:28px 5%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid var(--line)
}
.brand {
  display:flex;
  align-items:center;
  gap:14px;
  letter-spacing:2px;
  font-size:12px;
  font-weight:bold
}
.brand-icon {
  font:italic 32px var(--serif);
  border:1px solid #8d9786;
  border-radius:50%;
  width:45px;
  height:45px;
  display:grid;
  place-items:center;
  letter-spacing:-5px;
  padding-right:6px
}
.brand small {
  display:block;
  font:12px var(--serif);
  letter-spacing:.3px;
  margin-top:5px
}
.header-note {
  font:italic 16px var(--serif);
  color:var(--muted)
}
.layout {
  max-width:1550px;
  margin:auto;
  display:grid;
  grid-template-columns:minmax(310px,.8fr) minmax(0,1.8fr)
}
.intro {
  background:var(--olive);
  color:#f8f4e9;
  padding:52px 12% 36px;
  position:relative
}
.eyebrow {
  font-size:10px;
  font-weight:bold;
  letter-spacing:1.8px;
  line-height:1.7;
  margin:0 0 18px
}
.intro>.eyebrow {
  color:#d5c7aa
}
.intro h1 {
  font:normal clamp(34px,3.1vw,49px)/1.14 var(--serif);
  letter-spacing:-1.5px;
  margin:26px 0 20px
}
em {
  font-weight:normal
}
.intro h1 em {
  color:#e3c8a0
}
.intro-copy {
  color:#e0e2d6;
  max-width:290px;
  font-size:14px;
  line-height:1.8
}
.editorial-art {
  color:#cbb68c;
  margin:35px auto 30px;
  max-width:330px
}
.editorial-art svg {
  width:100%;
  display:block
}
.consultation {
  border-top:1px solid #74806a;
  padding-top:26px
}
.consultation .eyebrow {
  font-size:9px;
  color:#d5c7aa
}
.consultation h2 {
  font:27px var(--serif);
  margin:12px 0 9px
}
.consultation p {
  font-size:11px;
  color:#d9ddce
}
.consultation ul {
  padding:16px 0 0;
  list-style:none;
  font-size:12px;
  color:#edeedf;
  line-height:2.2
}
.consultation li:before {
  content:'↗';
  margin-right:12px;
  color:#cbb68c
}
.aside-foot {
  font:italic 17px/1.6 var(--serif);
  color:#d5d8c8;
  margin-top:50px
}
.workspace {
  padding:40px 6% 30px
}
.steps {
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:1fr 1fr 1.2fr;
  gap:12px;
  padding-bottom:28px;
  border-bottom:1px solid var(--line);
  font-size:11px;
  font-weight:bold
}
.steps li {
  position:relative;
  padding-left:30px
}
.steps li>span {
  position:absolute;
  left:0;
  top:1px;
  border:1px solid #b5bbac;
  border-radius:50%;
  width:23px;
  height:23px;
  text-align:center;
  font-size:9px;
  line-height:22px
}
.steps li[aria-current] span {
  background:var(--ink);
  color:white
}
.steps small {
  display:block;
  font-size:9px;
  font-weight:normal;
  color:var(--muted);
  margin-top:3px
}
.steps .pending {
  color:var(--muted)
}
.section-heading {
  padding:35px 0 29px
}
.section-heading .eyebrow {
  color:var(--accent);
  margin-bottom:10px
}
.section-heading h2 {
  font:normal clamp(28px,2.5vw,38px)/1.2 var(--serif);
  letter-spacing:-.9px;
  margin:0 0 12px
}
.section-heading>p:last-child {
  color:var(--muted);
  margin:0;
  font-size:13px
}
.booking-grid {
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(220px,1fr);
  gap:32px;
  align-items:start
}
.form-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:21px
}
.form-heading h3,.permissions h3 {
  font-size:10px;
  letter-spacing:1px;
  margin:0;
  font-weight:normal;
  color:var(--accent)
}
.form-heading h3 span,.permissions h3 span {
  margin-left:7px;
  color:var(--ink);
  font-size:14px;
  letter-spacing:0;
  font-weight:bold
}
.muted {
  color:var(--muted);
  font-size:10px;
  font-weight:normal
}
.field {
  margin-bottom:19px
}
.field-pair {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px
}
label {
  font-size:11px;
  font-weight:bold;
  display:block
}
label>span:not(.check-line span) {
  font-weight:normal
}
label>span {
  color:var(--muted)
}
input:not([type=checkbox]),select {
  width:100%;
  border:1px solid #bdc3b5;
  border-radius:3px;
  background:#fffdf8;
  color:var(--ink);
  height:44px;
  padding:10px 12px;
  margin-top:7px;
  min-width:0
}
input[aria-invalid=true] {
  border-color:#a43727;
  background:#fff9f7
}
.field small {
  display:block;
  font-size:10px;
  line-height:1.5;
  color:var(--muted);
  margin-top:6px
}
.error {
  display:block;
  color:#9a3526;
  font-size:11px;
  margin-top:5px
}
.error:empty {
  display:none
}
.error-summary {
  background:#fae9e0;
  border-left:3px solid #a43727;
  padding:12px;
  margin-bottom:20px;
  font-size:12px
}
.error-summary ul {
  padding-left:18px;
  margin-bottom:0
}
.topics {
  border:0;
  margin:26px 0;
  padding:0
}
.topics legend {
  font-size:10px;
  color:var(--accent);
  padding:0;
  letter-spacing:1px
}
.topics legend span {
  font-size:14px;
  color:var(--ink);
  font-weight:bold;
  letter-spacing:0;
  margin:0 6px
}
.topics legend small {
  font-size:10px;
  color:var(--muted);
  letter-spacing:0
}
.topics>p {
  font-size:11px;
  color:var(--muted);
  margin:10px 0 13px
}
.chips {
  display:flex;
  flex-wrap:wrap;
  gap:8px
}
.chips label {
  position:relative;
  font-weight:normal
}
.chips input {
  position:absolute;
  opacity:0;
  width:100%;
  height:100%;
  margin:0
}
.chips span {
  display:block;
  padding:8px 11px;
  border:1px solid #bbc3b3;
  border-radius:4px;
  font-size:10px;
  color:var(--ink);
  cursor:pointer
}
.chips input:checked+span {
  background:var(--olive);
  color:white;
  border-color:var(--olive)
}
.chips input:checked+span:before {
  content:'✓ ';
}
.chips input:focus-visible+span {
  outline:3px solid var(--accent);
  outline-offset:3px
}
.topics .sensitive-note {
  font-size:10px;
  background:#eeece3;
  padding:10px;
  line-height:1.6;
  margin-top:14px
}
.permissions {
  border-top:1px solid var(--line);
  padding-top:22px
}
.permissions h3 {
  margin-bottom:20px
}
.check-line {
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-weight:normal;
  font-size:11px;
  line-height:1.6;
  margin-bottom:12px
}
.check-line input {
  width:17px;
  height:17px;
  flex:0 0 17px;
  accent-color:var(--olive);
  margin:2px 0 0
}
.check-line>span {
  color:var(--ink)
}
.check-line small {
  display:block;
  color:var(--muted);
  font-size:10px;
  margin-top:4px
}
.marketing {
  margin-top:17px
}
.privacy-copy {
  font-size:10px;
  color:var(--muted);
  line-height:1.7;
  margin:18px 0 24px
}
.text-button {
  padding:0;
  background:none;
  border:0;
  border-bottom:1px solid currentColor;
  border-radius:0;
  color:var(--ink);
  font-size:inherit;
  text-align:left
}
.primary {
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:var(--olive);
  color:#fffef5;
  border:1px solid var(--olive);
  padding:14px 18px;
  border-radius:3px;
  font-size:12px;
  min-height:47px
}
.primary:hover {
  background:#243328
}
.primary>span {
  font-size:19px
}
.submit-note {
  text-align:center;
  color:var(--muted);
  font-size:10px;
  line-height:1.8;
  margin-top:12px
}
.scheduler {
  background:#efeee4;
  border:1px solid #d5d6c5;
  padding:23px 22px;
  border-radius:4px;
  position:sticky;
  top:24px
}
.scheduler-top {
  display:flex;
  justify-content:space-between
}
.scheduler-top .eyebrow {
  font-size:9px;
  letter-spacing:1.2px
}
.calendar-icon {
  width:41px;
  height:41px;
  margin:28px 0 22px
}
.calendar-icon svg {
  stroke:var(--ink);
  stroke-width:1.2
}
.scheduler h3 {
  font:27px/1.15 var(--serif);
  letter-spacing:-.5px;
  margin:0 0 16px
}
.scheduler>p {
  font-size:11px;
  color:var(--muted);
  line-height:1.8
}
.connection {
  display:flex;
  align-items:center;
  gap:7px;
  font-size:10px;
  margin-top:23px
}
.status-dot {
  height:6px;
  width:6px;
  background:#a76d37;
  border-radius:50%
}
.scheduler-divider {
  height:1px;
  background:#cfd2c2;
  margin:24px 0
}
.calendar-info {
  display:grid;
  grid-template-columns:1fr;
  gap:3px;
  font-size:10px
}
.calendar-info>span {
  color:var(--muted);
  margin-top:9px
}
.calendar-info>strong {
  font-weight:normal;
  font-size:11px
}
.calendar-disabled {
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:25px;
  padding:12px;
  border:1px solid #bac0af;
  border-radius:3px;
  background:transparent;
  color:#666e60;
  cursor:not-allowed;
  font-size:11px
}
.scheduler .calendar-note {
  font-size:9px;
  line-height:1.7;
  margin-top:14px
}
.bottom-note {
  display:flex;
  gap:12px;
  align-items:center;
  border-top:1px solid var(--line);
  margin-top:25px;
  padding-top:20px
}
.bottom-note>span {
  font-size:32px;
  color:#737f66
}
.bottom-note p {
  font:15px/1.5 var(--serif);
  margin:0
}
.bottom-note p span {
  font:10px Arial;
  color:var(--muted)
}
footer {
  max-width:1550px;
  margin:auto;
  padding:25px 5%;
  border-top:1px solid var(--line);
  display:flex;
  gap:15px;
  justify-content:space-between;
  font-size:9px;
  color:var(--muted)
}
footer>span:first-child {
  letter-spacing:1px
}
#review h3 {
  font:30px/1.2 var(--serif);
  margin:10px 0
}
#review>p {
  font-size:12px;
  color:var(--muted)
}
dl {
  margin:24px 0;
  overflow-wrap:anywhere
}
dt {
  font-size:10px;
  color:var(--muted);
  margin-top:17px
}
dd {
  margin:3px 0;
  font-size:13px
}
.notice {
  padding:16px;
  background:#eeece0;
  border-left:2px solid #9a7a45;
  font-size:12px;
  margin:22px 0
}
.notice p {
  margin:8px 0 0
}
.clear {
  margin-top:20px;
  font-size:11px
}
dialog {
  max-width:560px;
  width:calc(100% - 32px);
  border:1px solid var(--line);
  border-radius:5px;
  padding:0;
  background:var(--paper);
  color:var(--ink)
}
dialog::backdrop {
  background:#1e2b24aa
}
.dialog-content {
  padding:30px
}
.dialog-content h2 {
  font:32px var(--serif)
}
.dialog-content p {
  font-size:13px
}
.dialog-content .eyebrow {
  font-size:10px;
  color:var(--accent)
}
@media(min-width:1450px) {
  .workspace {
    padding-left:7%;
    padding-right:7%
  }
  .booking-grid {
    gap:40px
  }
}
@media(max-width:1100px) {
  .layout {
    grid-template-columns:300px minmax(0,1fr)
  }
  .intro {
    padding:40px 30px
  }
  .intro h1 {
    font-size:39px
  }
  .workspace {
    padding:30px
  }
  .booking-grid {
    grid-template-columns:1fr
  }
  .scheduler {
    position:static;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 22px
  }
  .scheduler-top,.scheduler-divider,.calendar-disabled,.calendar-note {
    grid-column:1/-1
  }
  .calendar-icon {
    display:none
  }
  .scheduler h3 {
    margin-top:15px
  }
  .scheduler>p {
    margin-top:15px
  }
  .connection {
    margin-top:12px;
    grid-column:1/-1
  }
  .scheduler-divider {
    margin:16px 0
  }
  .calendar-info {
    grid-column:1/-1;
    grid-template-columns:1fr 1fr;
    gap:9px
  }
  .calendar-info>span {
    margin:0
  }
  .calendar-info>strong {
    text-align:right
  }
  .calendar-disabled {
    margin-top:18px
  }
  .aside-foot {
    margin-top:35px
  }
}
@media(max-width:720px) {
  .prototype-bar {
    padding:8px 20px;
    display:block;
    font-size:9px
  }
  .prototype-bar span {
    display:block;
    font-size:10px;
    margin-top:2px
  }
  .site-header {
    padding:18px 20px
  }
  .brand {
    font-size:10px;
    gap:10px;
    letter-spacing:1.3px
  }
  .brand small {
    font-size:11px
  }
  .header-note {
    display:none
  }
  .layout {
    display:flex;
    flex-direction:column
  }
  .intro {
    padding:30px 24px
  }
  .intro>.eyebrow {
    margin-bottom:10px
  }
  .intro h1 {
    font-size:37px;
    line-height:1.1;
    margin:16px 0
  }
  .intro h1 br {
    display:none
  }
  .intro h1 em {
    white-space:nowrap
  }
  .intro-copy {
    max-width:460px;
    font-size:13px
  }
  .editorial-art,.consultation ul,.aside-foot {
    display:none
  }
  .consultation {
    margin-top:23px;
    padding-top:18px
  }
  .consultation .eyebrow {
    display:none
  }
  .consultation h2 {
    font-size:22px;
    margin:0
  }
  .consultation p {
    margin-bottom:0
  }
  .workspace {
    padding:28px 24px
  }
  .steps {
    font-size:10px;
    gap:9px;
    padding-bottom:23px;
    grid-template-columns:1fr 1fr 1.2fr
  }
  .steps li {
    padding-left:0;
    padding-top:30px
  }
  .steps small {
    font-size:9px;
    line-height:1.4
  }
  .section-heading {
    padding:28px 0
  }
  .section-heading h2 {
    font-size:33px
  }
  .booking-grid {
    gap:24px
  }
  .field-pair {
    gap:12px
  }
  .scheduler {
    padding:22px
  }
  .scheduler h3 {
    font-size:28px
  }
  .bottom-note {
    margin-top:28px
  }
  footer {
    padding:24px;
    display:block;
    line-height:2.3
  }
  footer>* {
    display:block
  }
  .dialog-content {
    padding:24px
  }
}
@media(prefers-reduced-motion:reduce) {
  * {
    scroll-behavior:auto!important
  }
}
@media(max-width:720px) {
  label,.check-line {
    font-size:13px
  }
  .field small,.check-line small,.privacy-copy,.submit-note,.topics>p,.topics .sensitive-note {
    font-size:12px
  }
  .chips span {
    font-size:12px
  }
  .field input:not([type=checkbox]),.field select {
    font-size:16px
  }
  .scheduler>p {
    font-size:13px
  }
  .scheduler .calendar-note {
    font-size:12px
  }
  .calendar-disabled {
    font-size:13px;
    min-height:44px
  }
  .text-button {
    min-height:24px
  }
  .calendar-info,.calendar-info>strong,.connection {
    font-size:12px
  }
}
.site-header {
  padding-top:12px;
  padding-bottom:12px
}
.brand-logo {
  display:block;
  width:340px;
  max-width:100%;
  height:78px;
  object-fit:cover
}
.footer-logo {
  display:block;
  width:210px;
  height:80px;
  object-fit:contain
}
footer {
  align-items:center
}
@media(max-width:720px) {
  .brand {
    max-width:100%
  }
  .brand-logo {
    width:280px;
    height:65px
  }
  .site-header {
    padding-top:12px;
    padding-bottom:12px
  }
  .footer-logo {
    margin-bottom:12px
  }
}
.calendar-link {
  margin-top:25px;
  text-decoration:none;
  gap:10px;
  font-size:11px
}
.status-dot {
  background:#597752
}
.scheduler .duration-warning {
  font-size:11px;
  padding:12px;
  border-left:2px solid #a54d36;
  background:#f6e9df;
  color:#654431;
  grid-column:1/-1
}
.duration-warning strong {
  font-weight:bold
}
.embedded-booking {
  margin-top:35px;
  padding-top:30px;
  border-top:1px solid var(--line);
  min-width:0
}
.embedded-booking h2 {
  font:32px/1.2 var(--serif);
  margin:8px 0 15px
}
.embedded-booking>p {
  font-size:12px;
  color:var(--muted)
}
#calendar-frame-host {
  width:100%;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:4px;
  overflow:hidden
}
.calendar-frame {
  display:block;
  border:0;
  width:100%;
  height:1050px;
  min-width:0
}
.embed-actions {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  font-size:11px;
  color:var(--muted)
}
.embed-actions p {
  max-width:70%
}
.embed-actions button {
  flex-shrink:0
}
.brand-logo {
  height:auto;
  object-fit:contain
}
.footer-logo {
  height:auto
}
.brand-logo,.footer-logo {
  background:transparent
}
@media(max-width:720px) {
  .calendar-frame {
    height:1150px
  }
  .embedded-booking {
    margin-left:-12px;
    margin-right:-12px
  }
  .embedded-booking>p,.embedded-booking>h2 {
    margin-left:12px;
    margin-right:12px
  }
  .embed-actions {
    display:block;
    padding:0 12px
  }
  .embed-actions p {
    max-width:none
  }
  .embed-actions button {
    min-height:44px
  }
  .brand-logo {
    height:auto
  }
}
.next-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  width:auto;
  max-width:100%;
  min-height:56px;
  padding:13px 23px;
  border:2px solid #25372b;
  border-radius:12px;
  background:#354337;
  color:#fff;
  font-size:15px;
  font-weight:700;
  line-height:1.4;
  box-shadow:0 4px 0 #1e2e23,0 7px 12px #26352a22;
  cursor:pointer;
  transition:background .15s,transform .15s,box-shadow .15s
}
.next-button>span {
  display:grid;
  place-items:center;
  border:1px solid #a8b39f;
  border-radius:50%;
  width:28px;
  height:28px;
  font-size:19px;
  flex-shrink:0
}
.next-button:hover {
  background:#24392c;
  transform:translateY(-1px);
  box-shadow:0 5px 0 #1e2e23,0 9px 14px #26352a30
}
.next-button:active {
  transform:translateY(3px);
  box-shadow:0 1px 0 #1e2e23
}
.next-button:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:5px
}
#intake>.submit-note {
  text-align:left;
  margin-top:18px;
  line-height:1.7
}
.embedded-booking {
  scroll-margin-top:24px
}
#review {
  margin-top:28px;
  padding:20px;
  background:#eeece3;
  border:1px solid var(--line);
  border-radius:5px
}
.review-disclosure>summary {
  cursor:pointer;
  font-weight:bold;
  font-size:12px;
  min-height:32px;
  padding:5px 0
}
.steps li[aria-current=step] {
  color:var(--ink)
}
.steps li[aria-current=step]>span {
  background:var(--ink);
  color:white
}
#review .notice {
  margin-bottom:18px
}
.next-button[aria-expanded=true] {
  background:#354337
}
@media(max-width:720px) {
  .next-button {
    font-size:14px;
    gap:14px;
    padding:12px 17px;
    min-height:54px
  }
  .embedded-booking {
    scroll-margin-top:14px
  }
}
.booking-grid {
  grid-template-columns:minmax(0,1fr)
}
.booking-context {
  line-height:1.8
}
.embedded-booking .duration-warning {
  font-size:12px
}
.embedded-booking .sms-reminder-note {
  padding:16px 18px;
  background:#e8eee4;
  border:1px solid #c2ceba;
  border-radius:6px;
  color:var(--ink);
  font-size:13px;
  line-height:1.7
}
.sms-reminder-note strong {
  display:block;
  margin-bottom:3px
}
:root {
  --header-height:104px
}
.site-header {
  position:sticky;
  top:0;
  z-index:40;
  height:var(--header-height);
  max-width:none;
  width:100%;
  background:rgba(248,245,239,.97);
  backdrop-filter:blur(14px);
  box-shadow:0 3px 18px #26352a0a;
  border-bottom:1px solid #d4d8ca;
  isolation:isolate
}
.brand {
  flex-shrink:0
}
.site-header .brand-logo {
  width:290px;
  height:76px;
  object-fit:contain
}
.header-journey {
  display:flex;
  align-items:center;
  gap:20px
}
.journey-title {
  font:italic 21px/1.25 var(--serif);
  margin:0 0 8px;
  letter-spacing:-.3px
}
.journey-stage {
  font-size:10px;
  letter-spacing:1.3px;
  text-transform:uppercase;
  margin:0;
  color:var(--muted)
}
.journey-mark {
  width:76px;
  height:56px;
  position:relative;
  border-top:1px solid #bdc7b2;
  border-radius:50%
}
.journey-mark:before {
  content:'';
  position:absolute;
  inset:8px 10px 0;
  border-top:1px solid #d0d8c7;
  border-radius:50%
}
.journey-mark span {
  position:absolute;
  width:9px;
  height:9px;
  border-radius:50%;
  background:#f8f5ef;
  border:1px solid #8b9a7c;
  top:13px;
  left:0
}
.journey-mark span:first-child {
  background:#c77d58;
  border-color:#c77d58
}
.journey-mark span:nth-child(2) {
  left:34px;
  top:-5px;
  background:#354337;
  border-color:#354337;
  box-shadow:0 0 0 5px #35433710
}
.journey-mark span:last-child {
  left:67px;
  top:13px
}
.header-journey.is-time .journey-mark span:nth-child(2) {
  background:#8b9a7c;
  border-color:#8b9a7c;
  box-shadow:none
}
.header-journey.is-time .journey-mark span:last-child {
  background:#354337;
  border-color:#354337;
  box-shadow:0 0 0 5px #35433710
}
.layout {
  align-items:start
}
.intro {
  position:sticky;
  top:var(--header-height);
  height:calc(100dvh - var(--header-height));
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  padding-top:35px;
  padding-bottom:24px
}
.intro h1 {
  font-size:clamp(34px,2.9vw,43px);
  margin:22px 0 16px
}
.intro-copy {
  font-size:13px;
  line-height:1.7
}
.editorial-art {
  max-width:240px;
  margin:24px auto
}
.consultation {
  padding-top:20px
}
.consultation ul {
  display:none
}
.aside-foot {
  font-size:16px;
  margin-top:24px
}
.embedded-booking {
  scroll-margin-top:calc(var(--header-height) + 18px)
}
#errors,[id$="-error"],#first,#last,#email,#phone,#service,#review-heading {
  scroll-margin-top:calc(var(--header-height) + 20px)
}
.skip:focus {
  position:fixed;
  z-index:60
}
@media(min-width:721px) and (max-height:800px) {
  .intro {
    padding-top:24px
  }
  .intro>.eyebrow {
    font-size:9px;
    margin-bottom:14px
  }
  .intro h1 {
    font-size:32px;
    margin:16px 0 12px
  }
  .intro-copy {
    font-size:12px;
    line-height:1.6
  }
  .editorial-art {
    max-width:160px;
    margin:18px auto
  }
  .consultation {
    padding-top:17px
  }
  .consultation h2 {
    font-size:24px
  }
  .aside-foot {
    display:none
  }
}
@media(max-width:900px) {
  .header-journey {
    gap:12px
  }
  .journey-title {
    font-size:17px
  }
  .journey-mark {
    display:none
  }
  .site-header .brand-logo {
    width:250px
  }
  .journey-stage {
    letter-spacing:.7px
  }
}
@media(max-width:720px) {
  :root {
    --header-height:82px
  }
  .site-header {
    padding:8px 20px;
    gap:14px
  }
  .site-header .brand-logo {
    width:185px;
    height:60px
  }
  .journey-title {
    display:none
  }
  .journey-stage {
    font-size:9px;
    letter-spacing:.6px;
    line-height:1.7;
    max-width:100px
  }
  .intro {
    position:relative;
    top:auto;
    height:auto;
    overflow:visible;
    padding:30px 24px
  }
  .intro h1 {
    font-size:37px
  }
  .aside-foot {
    display:none
  }
  .embedded-booking {
    scroll-margin-top:calc(var(--header-height) + 12px)
  }
}
@media(max-width:360px) {
  .site-header {
    padding-left:12px;
    padding-right:12px;
    gap:8px
  }
  .site-header .brand-logo {
    width:160px
  }
  .journey-stage {
    font-size:8px;
    max-width:95px
  }
}
.workspace>footer {
  padding:24px 0 0;
  margin-top:28px;
  flex-wrap:wrap;
  gap:12px;
  max-width:none
}
.workspace>footer .footer-logo {
  width:170px
}
.intro {
  min-height:0
}
.journey-mark {
  display:flex;
  align-items:center;
  gap:5px;
  width:76px;
  height:36px;
  border:0;
  border-radius:0;
  transform:skewX(-16deg)
}
.journey-mark:before {
  display:none
}
.journey-mark span,.journey-mark span:first-child,.journey-mark span:nth-child(2),.journey-mark span:last-child {
  position:static;
  display:block;
  left:auto;
  top:auto;
  width:18px;
  height:18px;
  border:0;
  border-radius:4px;
  box-shadow:none;
  background:#dce2d5;
  transition:height .25s ease,background .25s ease
}
.journey-mark span:first-child {
  height:12px;
  background:#c77d58
}
.journey-mark span:nth-child(2) {
  height:30px;
  background:#354337
}
.journey-mark span:last-child {
  height:18px;
  background:#c6d0bc
}
.header-journey.is-time .journey-mark span:nth-child(2) {
  height:18px;
  background:#9eae90;
  box-shadow:none;
  border:0
}
.header-journey.is-time .journey-mark span:last-child {
  height:30px;
  background:#354337;
  box-shadow:none;
  border:0
}
@media(max-width:900px) {
  .journey-mark {
    display:none
  }
}
@media(prefers-reduced-motion:reduce) {
  .journey-mark span {
    transition:none
  }
}
.header-journey {
  padding-left:22px;
  border-left:1px solid #cbbca6;
  gap:0
}
.journey-title {
  font-size:22px;
  letter-spacing:-.4px
}
.journey-stage {
  margin-top:9px;
  letter-spacing:1.5px;
  font-size:9px
}
.intro {
  background:linear-gradient(155deg,#354337 0%,#2b3a31 100%)
}
.intro h1 {
  font-size:clamp(36px,3.2vw,49px);
  line-height:1.13;
  margin-top:32px;
  margin-bottom:23px
}
.intro-copy {
  line-height:1.9;
  max-width:260px;
  color:#dce1d2
}
.consultation {
  margin-top:48px;
  padding-top:27px;
  border-top:1px solid #a6af9366
}
.consultation>.eyebrow {
  color:#ddc6a6;
  letter-spacing:2px
}
.consultation h2 {
  font-size:29px;
  line-height:1.15
}
.consultation p {
  margin-top:13px;
  line-height:1.8
}
.aside-foot {
  margin-top:40px;
  color:#c8cebd
}
@media(min-width:721px) and (max-height:800px) {
  .intro h1 {
    font-size:37px;
    margin-top:26px;
    margin-bottom:19px
  }
  .intro-copy {
    font-size:12px;
    line-height:1.8
  }
  .consultation {
    margin-top:35px;
    padding-top:24px
  }
  .consultation h2 {
    font-size:27px
  }
}
@media(max-width:900px) {
  .journey-title {
    font-size:17px
  }
  .header-journey {
    padding-left:16px
  }
  .journey-stage {
    letter-spacing:.7px
  }
}
@media(max-width:720px) {
  .header-journey {
    padding-left:12px
  }
  .journey-stage {
    margin:0;
    letter-spacing:.6px
  }
  .intro h1 {
    font-size:37px;
    margin-top:18px;
    margin-bottom:18px
  }
  .intro-copy {
    max-width:460px
  }
  .consultation {
    margin-top:25px;
    padding-top:20px
  }
  .consultation h2 {
    font-size:23px
  }
  .consultation p {
    margin-top:8px
  }
}
:root {
  --header-height:126px
}
.site-header {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-rows:60px 30px;
  gap:0 28px;
  padding:12px 4%;
  height:var(--header-height)
}
.site-header .brand-logo {
  width:245px;
  height:58px
}
.brand {
  text-decoration:none
}
.site-nav {
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:22px;
  min-width:0
}
.site-nav>a {
  font-size:12px;
  font-weight:600;
  text-decoration:none;
  white-space:nowrap;
  position:relative
}
.site-nav>a:not(.nav-book):after {
  content:'';
  position:absolute;
  left:0;
  right:100%;
  bottom:-7px;
  height:2px;
  background:var(--accent);
  transition:right .18s ease
}
.site-nav>a:hover:after {
  right:0
}
.site-nav .nav-book {
  padding:11px 14px;
  background:var(--olive);
  color:#fff;
  border-radius:6px;
  display:flex;
  gap:12px;
  align-items:center
}
.site-nav .nav-book:hover {
  background:#24392c
}
.header-journey {
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border:0;
  border-top:1px solid #d9d8cb;
  padding:9px 0 0;
  gap:16px
}
.journey-title {
  font-size:16px;
  margin:0;
  line-height:1.2
}
.journey-stage {
  margin:0;
  font-size:9px;
  letter-spacing:1.3px
}
.menu-toggle {
  display:none
}
.intro {
  padding:23px 8% 24px
}
.intro>.eyebrow {
  font-size:9px;
  letter-spacing:1.5px;
  margin-bottom:16px
}
.intro h1 {
  font-size:32px;
  margin:18px 0 16px
}
.intro-copy {
  font-size:12px;
  line-height:1.7;
  max-width:none
}
.market-card {
  margin:23px 0 0;
  border:1px solid #d9ded0;
  border-radius:10px;
  background:#f8f8f3;
  overflow:hidden;
  color:#303d33;
  box-shadow:0 12px 30px #14251d20
}
.market-card-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:15px 14px 9px
}
.market-card-heading h2 {
  font:16px var(--serif);
  margin:0
}
.market-card-heading>span {
  font-size:7px;
  letter-spacing:1px;
  white-space:nowrap;
  color:#6b7563
}
#market-chart {
  min-height:230px;
  max-width:100%;
  width:100%;
  background:#fff
}
.tradingview-widget-container__widget {
  min-height:210px
}
.tradingview-widget-copyright {
  font-size:9px;
  padding:0 12px 8px;
  color:#536849
}
.market-source {
  font-size:9px;
  line-height:1.6;
  padding:10px 14px;
  margin:0;
  border-top:1px solid #e3e7db;
  color:#68715f
}
.market-status {
  font-size:10px;
  padding:0 14px;
  color:#68715f
}
.market-status:empty {
  display:none
}
.consultation {
  margin-top:24px;
  padding-top:18px
}
.consultation>.eyebrow {
  font-size:8px;
  margin-bottom:10px
}
.consultation h2 {
  font-size:25px
}
.consultation p {
  margin-top:9px
}
.aside-foot {
  display:none
}
@media(max-width:1100px) {
  .site-nav {
    gap:13px
  }
  .site-nav>a {
    font-size:11px
  }
  .site-header .brand-logo {
    width:210px
  }
  .site-nav .nav-book {
    padding:10px
  }
  .site-header {
    column-gap:18px;
    padding-left:3%;
    padding-right:3%
  }
  .intro h1 {
    font-size:29px
  }
  .market-card-heading {
    display:block
  }
  .market-card-heading>span {
    display:block;
    margin-top:5px
  }
}
@media(min-width:721px) and (max-height:800px) {
  .intro {
    padding-top:20px
  }
  .intro h1 {
    font-size:28px;
    margin:16px 0 12px
  }
  .intro-copy {
    font-size:11px;
    line-height:1.6
  }
  .market-card {
    margin-top:18px
  }
  .consultation {
    margin-top:20px
  }
  .consultation h2 {
    font-size:23px
  }
}
@media(max-width:900px) {
  :root {
    --header-height:114px
  }
  .site-header {
    grid-template-columns:1fr auto;
    grid-template-rows:55px 30px;
    padding:10px 20px
  }
  .site-header .brand-logo {
    width:210px;
    height:50px
  }
  .menu-toggle {
    display:flex;
    gap:10px;
    align-items:center;
    padding:9px 13px;
    border:1px solid #aeb9a3;
    border-radius:6px;
    background:#fffdf8;
    color:var(--ink);
    font-size:12px;
    font-weight:bold
  }
  .site-nav {
    display:none;
    position:absolute;
    right:20px;
    top:calc(var(--header-height) - 4px);
    width:245px;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    background:var(--paper);
    border:1px solid #d1d7c9;
    box-shadow:0 14px 28px #26352a25;
    border-radius:9px;
    padding:9px;
    z-index:60
  }
  .site-nav.is-open {
    display:flex
  }
  .site-nav>a {
    padding:12px;
    font-size:13px;
    border-radius:5px
  }
  .site-nav>a:hover {
    background:#e9eee1
  }
  .site-nav>a:after {
    display:none
  }
  .site-nav .nav-book {
    margin-top:5px
  }
  .journey-title {
    font-size:14px;
    display:block
  }
  .journey-stage {
    font-size:8px;
    letter-spacing:.6px
  }
}
@media(max-width:720px) {
  .intro {
    padding:26px 24px
  }
  .intro h1 {
    font-size:36px
  }
  .intro-copy {
    font-size:13px
  }
  .market-card {
    margin-top:22px
  }
  .market-card-heading {
    display:flex
  }
  .market-card-heading>span {
    margin-top:0
  }
  .market-card-heading h2 {
    font-size:18px
  }
  .market-source {
    font-size:10px
  }
  .consultation {
    margin-top:24px
  }
  .journey-title {
    font-size:12px
  }
  .journey-stage {
    max-width:105px;
    font-size:7px
  }
  .header-journey {
    gap:10px
  }
  .market-card {
    max-width:460px
  }
}
@media(max-width:360px) {
  .site-header {
    padding-left:12px;
    padding-right:12px
  }
  .site-header .brand-logo {
    width:185px
  }
  .journey-title {
    font-size:11px
  }
  .journey-stage {
    font-size:6.5px;
    max-width:95px
  }
}
.market-live-frame {
  display:block;
  width:100%;
  height:220px;
  border:0;
  background:#fff
}
.header-journey>div {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  width:100%
}
#main {
  scroll-margin-top:calc(var(--header-height) + 16px)
}
@media(max-width:720px) {
  .header-journey>div {
    gap:10px
  }
  .journey-stage {
    text-align:right;
    flex-shrink:0
  }
}
.market-card {
  background:transparent;
  border:0;
  border-top:1px solid #c1ccb04d;
  border-bottom:1px solid #c1ccb04d;
  border-radius:0;
  box-shadow:none;
  padding:18px 0 13px;
  overflow:visible;
  color:#f5f4e9
}
.market-card-heading {
  padding:0 0 15px;
  align-items:center
}
.market-card-heading h2 {
  font:19px/1.25 var(--serif);
  color:#f5f4e9
}
.market-card-heading>span {
  color:#d0dac3;
  background:#ffffff08;
  border:1px solid #b7c6a345;
  border-radius:20px;
  padding:4px 7px;
  font-size:7px;
  letter-spacing:1px
}
#market-chart,.market-live-frame,.tradingview-widget-container__widget {
  background:transparent
}
.market-source {
  border:0;
  color:#bdc9b2;
  padding:12px 0 0;
  font-size:9px;
  line-height:1.7
}
.tradingview-widget-copyright {
  color:#c3ceb7;
  padding:3px 0 0;
  font-size:9px
}
.tradingview-widget-copyright a {
  color:#c3ceb7;
  text-decoration-color:#879b7580
}
.market-status {
  color:#d0dac3;
  padding:0
}
.consultation {
  border:0;
  margin-top:22px;
  padding-top:0
}
@media(max-width:1100px) {
  .market-card-heading {
    display:flex
  }
  .market-card-heading h2 {
    font-size:17px
  }
  .market-card-heading>span {
    margin:0
  }
}
@media(max-width:720px) {
  .market-card-heading h2 {
    font-size:21px
  }
  .market-card {
    padding-top:20px
  }
  .market-source {
    font-size:10px
  }
}
.workspace .step-title {
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 20px;
  padding:0;
  font:700 14px/1.5 Arial,Helvetica,sans-serif;
  letter-spacing:0;
  color:var(--ink)
}
.workspace .step-title .step-number {
  margin:0;
  color:var(--accent);
  font-size:10px;
  letter-spacing:1px;
  font-weight:400
}
.workspace .step-title .step-name {
  margin:0;
  color:var(--ink);
  font-size:14px;
  letter-spacing:0;
  font-weight:700
}
.workspace .step-title small {
  margin:0;
  color:var(--muted);
  font-size:10px;
  letter-spacing:0;
  font-weight:400
}
.form-heading .step-title {
  margin-bottom:0
}
.topics .step-title {
  margin-bottom:0
}
.embedded-booking>.step-title {
  margin-bottom:12px
}
.next-button {
  width:280px;
  max-width:100%;
  min-height:58px;
  justify-content:space-between
}
@media(max-width:720px) {
  .next-button {
    width:280px;
    min-height:58px
  }
}
#intake .form-heading {
  scroll-margin-top:calc(var(--header-height) + 24px)
}
.market-live-frame {
  height:270px
}
.tradingview-widget-container__widget {
  min-height:270px
}
#market-chart {
  min-height:290px
}
.booking-invitation {
  display:flex;
  align-items:flex-start;
  gap:18px;
  padding:26px 23px;
  margin:0 0 25px;
  background:#edf0e5;
  border:1px solid #d5ddc9;
  border-left:3px solid #bd7756;
  border-radius:0 9px 9px 0;
  text-align:left
}
.booking-symbol {
  width:46px;
  height:46px;
  flex:0 0 46px;
  border:1px solid #a5b598;
  border-radius:8px;
  display:grid;
  place-items:center;
  background:#f8faf2
}
.booking-symbol svg {
  width:30px;
  height:30px;
  stroke:#526b48;
  stroke-width:1.4;
  stroke-linecap:round
}
.booking-invitation .eyebrow {
  font-size:8px;
  letter-spacing:1.3px;
  color:#6f624a;
  margin:0 0 13px
}
.booking-invitation #booking-title {
  font:400 clamp(29px,3vw,39px)/1.12 var(--serif);
  color:var(--ink);
  letter-spacing:-.7px;
  text-align:left;
  margin:0
}
.booking-invitation #booking-title em {
  color:#647b53
}
.booking-invitation-copy {
  font-size:12px;
  line-height:1.7;
  color:var(--muted);
  margin:14px 0 0
}
@media(max-width:480px) {
  .booking-invitation {
    padding:23px 17px;
    gap:12px
  }
  .booking-symbol {
    width:36px;
    height:36px;
    flex-basis:36px
  }
  .booking-symbol svg {
    width:25px;
    height:25px
  }
  .booking-invitation .eyebrow {
    font-size:7px;
    letter-spacing:1px
  }
}
.booking-invitation {
  background:linear-gradient(110deg,#f4f3e9,#fffdf900);
  border:0;
  border-top:1px solid #bcc9ae;
  border-bottom:1px solid #d8dfce;
  border-radius:0;
  padding:26px 12px 25px;
  margin-bottom:22px;
  gap:20px
}
.booking-symbol {
  position:relative;
  width:44px;
  height:49px;
  flex-basis:44px;
  border:0;
  border-radius:0;
  background:transparent;
  margin-top:4px;
  isolation:isolate
}
.booking-symbol:before {
  content:'';
  position:absolute;
  inset:0;
  border:1px solid #adbca0;
  border-radius:5px;
  background:#e4eadb;
  transform:rotate(-8deg);
  z-index:-2
}
.booking-symbol:after {
  content:'';
  position:absolute;
  inset:0;
  border:1px solid #9eb08c;
  border-radius:5px;
  background:#fffdf6;
  z-index:-1
}
.booking-symbol svg {
  width:29px;
  height:29px
}
.booking-invitation .eyebrow {
  font-size:8px;
  letter-spacing:1.5px;
  margin-bottom:13px
}
.booking-invitation #booking-title {
  font-size:clamp(30px,3vw,40px);
  line-height:1.14;
  letter-spacing:-.8px
}
.calendar-jump {
  display:inline-flex;
  align-items:center;
  gap:20px;
  margin-top:18px;
  padding:11px 15px;
  background:var(--olive);
  border:1px solid var(--olive);
  border-radius:6px;
  color:#fffdf6;
  text-decoration:none;
  font:600 12px/1.5 Arial,Helvetica,sans-serif;
  min-height:44px
}
.calendar-jump:hover {
  background:#24392c
}
.calendar-jump span {
  font-size:21px;
  line-height:1
}
#calendar-frame-host {
  position:relative;
  scroll-margin-top:calc(var(--header-height) + 20px)
}
#calendar-frame-host.is-loading:before {
  content:'';
  position:absolute;
  inset:0 0 auto;
  height:360px;
  z-index:1;
  pointer-events:none;
  border-radius:5px;
  background:linear-gradient(100deg,#e9ece2 20%,#f8faf3 45%,#e9ece2 70%);
  background-size:240% 100%;
  animation:calendar-shimmer 1.6s linear infinite
}
@keyframes calendar-shimmer {
  to {
    background-position:-170% 0
  }
}
@media(max-width:480px) {
  .booking-invitation {
    gap:15px;
    padding:24px 7px
  }
  .booking-symbol {
    width:35px;
    height:41px;
    flex-basis:35px
  }
  .booking-symbol svg {
    width:25px;
    height:25px
  }
  .booking-invitation .eyebrow {
    font-size:7px;
    letter-spacing:.9px
  }
  .calendar-jump {
    font-size:11px;
    padding:10px 12px;
    gap:13px
  }
}
@media(prefers-reduced-motion:reduce) {
  #calendar-frame-host.is-loading:before {
    animation:none
  }
}
.public-header #site-nav .opportunity-link,.site-header #site-nav .opportunity-link {
  background:#f0e4d4;
  border:1px solid #c4a785;
  color:#74432f;
  border-radius:6px;
  padding:9px 11px;
  font-size:11px;
  transition:background .2s,border-color .2s
}
.public-header #site-nav .opportunity-link:hover,.site-header #site-nav .opportunity-link:hover {
  background:#e9d7c0;
  border-color:#a77752
}
.social-links {
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  padding-top:22px;
  font:11px/1.7 Arial,Helvetica,sans-serif;
  color:var(--muted)
}
.social-links a {
  text-decoration:none;
  border-bottom:1px solid #aebaa1;
  padding:4px 0
}
.social-links a:hover {
  color:var(--accent)
}
.booking-contact {
  display:flex;
  flex-wrap:wrap;
  gap:8px 20px;
  align-items:center;
  font-size:11px;
  width:100%
}
.workspace>footer .social-links {
  width:100%;
  padding-top:4px;
  font-size:10px
}
.detail-body {
  display:flow-root
}
@media(prefers-reduced-motion:reduce) {
  .topic-nav a,.opportunity-link {
    transition:none!important
  }
}
#consultation-topic {
  font-size:14px;
  min-height:48px
}
.field textarea {
  display:block;
  width:100%;
  border:1px solid #bdc3b5;
  border-radius:4px;
  padding:12px;
  background:#fffdf8;
  color:var(--ink);
  font:14px/1.7 Arial,Helvetica,sans-serif;
  resize:vertical
}
#consultation-topic {
  scroll-margin-top:calc(var(--header-height) + 24px)
}
@media(max-width:720px) {
  #consultation-topic,.field textarea {
    font-size:16px
  }
}
.public-header #site-nav .opportunity-link,.site-header #site-nav .opportunity-link {
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:transparent;
  border:0;
  border-radius:0;
  color:#7b5239;
  padding:12px 2px;
  font-size:11px;
  box-shadow:none;
  transition:color .25s
}
.public-header #site-nav .opportunity-link:before,.site-header #site-nav .opportunity-link:before {
  content:'';
  width:6px;
  height:6px;
  flex:0 0 6px;
  border-radius:50%;
  background:#b68253;
  box-shadow:0 0 0 4px #b6825315
}
.public-header #site-nav .opportunity-link:after,.site-header #site-nav .opportunity-link:after {
  content:'';
  position:absolute;
  left:14px;
  right:0;
  bottom:5px;
  height:1px;
  background:linear-gradient(90deg,#b68253,#b6825300);
  transition:transform .25s;
  transform-origin:left
}
.public-header #site-nav .opportunity-link:hover,.site-header #site-nav .opportunity-link:hover {
  background:transparent;
  border-color:transparent;
  color:#354337
}
.public-header #site-nav .opportunity-link:hover:after,.site-header #site-nav .opportunity-link:hover:after {
  transform:scaleX(.7)
}
.public-header #site-nav .opportunity-link,.site-header #site-nav .opportunity-link {
  color:#a44e32
}
.public-header #site-nav .opportunity-link:before,.site-header #site-nav .opportunity-link:before {
  background:#d77c4a;
  box-shadow:0 0 0 4px #d77c4a18;
  animation:opportunity-pulse 2.6s ease-in-out infinite
}
.public-header #site-nav .opportunity-link:after,.site-header #site-nav .opportunity-link:after {
  background:linear-gradient(90deg,#cf8358,#cf835800)
}
@keyframes opportunity-pulse {
  0%,100% {
    opacity:1;
    box-shadow:0 0 0 3px #d77c4a22
  }
  50% {
    opacity:.45;
    box-shadow:0 0 0 7px #d77c4a00
  }
}
@media(prefers-reduced-motion:reduce) {
  .public-header #site-nav .opportunity-link:before,.site-header #site-nav .opportunity-link:before {
    animation:none
  }
}
.public-header #site-nav .opportunity-link:before,.site-header #site-nav .opportunity-link:before,.card-navigation button.start-action:before {
  content:none!important;
  display:none!important;
  animation:none!important
}
.public-header #site-nav .opportunity-link,.site-header #site-nav .opportunity-link {
  gap:0
}
.public-header #site-nav .opportunity-link:after,.site-header #site-nav .opportunity-link:after {
  left:0;
  transform:none!important;
  transition:none!important
}
*,*:before,*:after {
  animation:none!important
}
#progress-dots {
  display:none!important
}
.steps {
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px
}
.steps li {
  min-width:0;
  font-size:11px
}
.steps small {
  font-size:9px;
  overflow-wrap:anywhere
}
@media(max-width:1000px) {
  .steps {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:21px 16px
  }
}
@media(max-width:720px) {
  .steps {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px
  }
  .steps li {
    padding-left:36px;
    padding-top:0;
    font-size:11px
  }
  .steps li>span {
    top:0
  }
  .steps small {
    font-size:10px
  }
}
.public-header #site-nav .opportunity-link,.site-header #site-nav .opportunity-link {
  gap:10px
}
.public-header #site-nav .opportunity-link:before,.site-header #site-nav .opportunity-link:before {
  content:''!important;
  display:block!important;
  position:static;
  width:6px;
  height:6px;
  flex:0 0 6px;
  border:0;
  border-radius:50%;
  background:#d77c4a;
  animation:opportunity-only 2.6s ease-in-out infinite!important
}
.public-header #site-nav .opportunity-link:after,.site-header #site-nav .opportunity-link:after {
  left:16px
}
@keyframes opportunity-only {
  0%,100% {
    opacity:1;
    box-shadow:0 0 0 3px #d77c4a20
  }
  50% {
    opacity:.35;
    box-shadow:0 0 0 6px #d77c4a00
  }
}
@media(prefers-reduced-motion:reduce) {
  .public-header #site-nav .opportunity-link:before,.site-header #site-nav .opportunity-link:before {
    animation:none!important
  }
}
.ffz-honeypot {
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden
}
button[disabled] {
  cursor:wait;
  opacity:.65
}

/* shared/buttons */
.public-header {
  gap:20px
}
.site-header {
  column-gap:20px;
  row-gap:0
}
:is(.public-header,.site-header) #site-nav {
  gap:clamp(13px,1.5vw,24px)
}
:is(.public-header,.site-header) #site-nav a.header-action {
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:11px 18px;
  margin:0;
  gap:0;
  border:1px solid;
  border-radius:8px;
  text-align:center;
  text-decoration:none;
  white-space:nowrap;
  font:600 14px/1.4 Arial,Helvetica,sans-serif;
  letter-spacing:0;
  text-shadow:none;
  box-shadow:none;
  filter:none;
  transform:none;
  transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease
}
:is(.public-header,.site-header) #site-nav a.header-action strong {
  font:inherit;
  color:inherit
}
:is(.public-header,.site-header) #site-nav a.header-action:before,:is(.public-header,.site-header) #site-nav a.header-action:after {
  content:none!important;
  display:none!important;
  animation:none!important
}
:is(.public-header,.site-header) #site-nav a.header-opportunity {
  background:#9d4422;
  border-color:#8f3c1e;
  color:#fffaf0
}
:is(.public-header,.site-header) #site-nav a.header-consultation {
  background:#334e3e;
  border-color:#334e3e;
  color:#fffaf0;
  box-shadow:0 2px 5px #273c2e12
}
:is(.public-header,.site-header) #site-nav a.header-opportunity:hover {
  background:#87391d;
  border-color:#783218;
  color:#fffaf0
}
:is(.public-header,.site-header) #site-nav a.header-consultation:hover {
  background:#284332;
  border-color:#284332;
  color:#fffaf0;
  box-shadow:0 3px 7px #273c2e1a
}
:is(.public-header,.site-header) #site-nav a.header-action:focus-visible {
  outline:3px solid #9b5938;
  outline-offset:5px
}
.submit-status.is-success {
  background:#e9eee3;
  border:1px solid #b9c8ad;
  border-left:4px solid #45633e;
  border-radius:8px;
  padding:23px 25px;
  font-size:16px;
  line-height:1.8;
  color:#263f2e
}
@media(min-width:901px) and (max-width:1250px) {
  .public-header .brand img,.site-header .brand img {
    width:190px!important
  }
  :is(.public-header,.site-header) #site-nav {
    gap:15px
  }
  :is(.public-header,.site-header) #site-nav a.header-action {
    font-size:13px;
    padding:10px 15px;
    min-height:44px
  }
}
@media(min-width:901px) and (max-width:1080px) {
  .public-header,.site-header {
    padding-left:3%;
    padding-right:3%
  }
  :is(.public-header,.site-header) #site-nav {
    gap:12px
  }
  :is(.public-header,.site-header) #site-nav>a {
    font-size:12px
  }
  :is(.public-header,.site-header) #site-nav a.header-action {
    padding-left:12px;
    padding-right:12px;
    font-size:13px
  }
}
@media(max-width:900px) {
  :is(.public-header,.site-header) #site-nav a.header-action {
    width:100%;
    min-height:48px;
    flex-shrink:0;
    margin:9px 0 2px;
    padding:12px 10px;
    font-size:14px;
    border-radius:8px
  }
  :is(.public-header,.site-header) #site-nav a.header-consultation {
    margin-bottom:5px
  }
}
@media(prefers-reduced-motion:reduce) {
  :is(.public-header,.site-header) #site-nav a.header-action {
    transition:none
  }
}

/* shared/readability */
:root {
  --ink:#23382b;
  --muted:#465348;
  --accent:#87422e;
  --olive:#304b38
}
body {
  color:var(--ink);
  font-size:16px;
  line-height:1.8
}
body main p:not(.eyebrow),body main li,body main dd {
  font-size:15px;
  line-height:1.85
}
body main p:not(.eyebrow) {
  color:var(--muted)
}
body main p.lead {
  font-size:18px;
  line-height:1.85;
  color:#3e4f41
}
body main .eyebrow {
  font-size:11px;
  font-weight:700;
  letter-spacing:1.5px;
  color:#87422e
}
body h1 em,body h2 em {
  color:#526b42
}
:is(.public-header,.site-header) #site-nav>a:not(.header-action) {
  font-size:13px;
  font-weight:700;
  color:#293d30
}
:is(.public-header,.site-header) #site-nav>a:not(.header-action):hover,:is(.public-header,.site-header) #site-nav>a:not(.header-action)[aria-current] {
  color:#87422e
}
body .field label,body label,body .written-label {
  color:#263b2d;
  font-size:14px
}
body .check-line,body .check-line>span {
  font-size:14px;
  line-height:1.75;
  color:#354735
}
body input:not([type=checkbox]):not([type=radio]),body textarea,body select {
  font-size:16px;
  color:#243a2c;
  border-color:#9ba994
}
body input::placeholder,body textarea::placeholder {
  color:#626c61;
  opacity:1
}
body .field small,body .question-help,body .form-help,body .privacy-copy,body .submit-note,body .muted {
  font-size:13px;
  line-height:1.75;
  color:#4a5949
}
body .error,body .card-error {
  font-size:14px;
  color:#8a2f20
}
body .button,body .underlink,body .text-button,body .calendar-jump {
  font-size:14px
}
body .section-heading>p:last-child,body .hero-foot,body .about-copy p,body .service-copy p,body .story-question {
  color:#41513f
}
body .tile-content>span:not(.service-tags) {
  font-size:15px;
  line-height:1.7;
  color:#3f503e
}
body .service-kicker,body .service-explore {
  font-size:11px;
  font-weight:700
}
body .service-tags span {
  font-size:12px;
  color:#3d4b3a
}
body .life-event-list a>small {
  font-size:14px;
  color:#4c5745
}
body main .decision-board article p,body main .approach-strip p {
  color:#f0f3e9;
  font-size:15px
}
body .decision-board .decision-board-label {
  color:#eed4a7;
  font-size:11px
}
body main .intro p:not(.eyebrow),body main .respect-note p,body main .photo-caption p,body main .consultation p {
  color:#f0f2e7
}
body main .photo-caption p {
  font:400 38px/1.2 Georgia,'Times New Roman',serif;
  color:#fffaf0
}
body .intro .eyebrow,body .consultation .eyebrow,body .approach-strip .eyebrow {
  color:#ead0a5
}
body .intro h1 em {
  color:#ecd3aa
}
body .service-protection .tile-content>span:not(.service-tags),body .service-protection .service-tags span {
  color:#edf3e5
}
body .service-protection .service-kicker {
  color:#ecd4aa
}
body .market-source,body .market-status,body .market-card-heading>span {
  font-size:11px;
  color:#e5ebdc
}
body .booking-invitation-copy,body .sms-reminder-note {
  font-size:15px;
  color:#43503e
}
body .steps {
  font-size:13px
}
body .steps small {
  font-size:11px;
  color:#4d5948
}
body .answer span {
  color:#293d2b;
  font-size:16px;
  line-height:1.7
}
body .answer:has(input:checked) span {
  color:inherit
}
body .welcome-copy p {
  font-size:15px;
  line-height:1.85
}
body .respect-note strong {
  color:#fffaf0;
  font-size:15px
}
body .respect-note p {
  font-size:14px
}
body .contact-direct,body .contact-direct a,body .contact-business {
  font-size:15px;
  color:#354936
}
body .public-footer,body .public-footer a,body .public-footer span,body footer a {
  font-size:13px;
  line-height:1.9;
  color:#43523f
}
body .public-footer .footer-bottom,body .footer-bottom span {
  font-size:12px
}
body .journey-stage,body .journey-title {
  color:#3a4d3a
}
@media(max-width:720px) {
  body main p:not(.eyebrow),body main li,body main dd {
    font-size:15px
  }
  body main p.lead {
    font-size:17px
  }
  body main .photo-caption p {
    font-size:34px
  }
  body .steps {
    font-size:11px
  }
  body .steps small {
    font-size:10px
  }
  body .check-line,body .check-line>span {
    font-size:14px
  }
}
#intake .topics>.field:first-of-type {
  margin-top:20px
}
#contact-form #submit-status {
  font:400 14px/1.65 Arial,Helvetica,sans-serif;
  padding:12px 16px;
  margin-top:16px;
  border-radius:6px;
  border-left-width:2px
}
#contact-form #submit-status:focus {
  outline:none
}

/* shared/transitions */
html {
  scrollbar-gutter:stable;
  background:#f8f5ef
}
@media(prefers-reduced-motion:no-preference) {
  @view-transition {
    navigation:auto
  }
  ::view-transition-old(root) {
    animation:ffz-page-out 160ms ease-out both
  }
  ::view-transition-new(root) {
    animation:ffz-page-in 160ms ease-out both
  }
  ::view-transition-group(root) {
    animation-duration:160ms
  }
}
@keyframes ffz-page-out {
  from {
    opacity:1
  }
  to {
    opacity:0
  }
}
@keyframes ffz-page-in {
  from {
    opacity:0
  }
  to {
    opacity:1
  }
}
@media(prefers-reduced-motion:reduce) {
  @view-transition {
    navigation:none
  }
  ::view-transition-old(root),::view-transition-new(root),::view-transition-group(root) {
    animation:none!important
  }
}

/* shared/chrome */
/* Quiet separation for the shared header and footer. */
body>.public-header,
body>.site-header {
  background:rgba(241,240,232,.97);
  border-bottom:1px solid #d7ddcf;
  box-shadow:0 3px 14px rgba(43,62,43,.035);
}
body>.public-footer {
  max-width:none;
  width:100%;
  padding:44px max(5vw,calc((100vw - 1152px)/2)) 24px;
  background:#eaf0e5;
  border-top:1px solid #d0dac8;
}
body .workspace>footer {
  background:#edf1e8;
  border:1px solid #d7dfcf;
  border-radius:12px;
  padding:22px 24px;
}
@media(max-width:720px) {
  body>.public-footer {padding:32px 6% 22px;}
  body .workspace>footer {padding:20px;}
}

/* Seven navigation items: keep the existing menu usable on tablet widths. */
@media(min-width:901px) and (max-width:1200px){
:is(.public-header,.site-header){flex-wrap:wrap;justify-content:center;gap:8px;}
:is(.public-header,.site-header) #site-nav{flex-wrap:wrap;justify-content:center;gap:9px 16px;}
}
/* Shared form feedback: real step progress and indeterminate sending state. */
.ffz-form-progress,.ffz-sending progress {display:block;width:100%;height:8px;margin:12px 0 24px;border:0;border-radius:20px;overflow:hidden;accent-color:#6f8b58;background:#e2e8da;}
.ffz-form-progress::-webkit-progress-bar,.ffz-sending progress::-webkit-progress-bar {background:#e2e8da;border-radius:20px;}
.ffz-form-progress::-webkit-progress-value,.ffz-sending progress::-webkit-progress-value {background:#6f8b58;border-radius:20px;transition:width .18s ease;}
.ffz-form-progress::-moz-progress-bar,.ffz-sending progress::-moz-progress-bar {background:#6f8b58;border-radius:20px;}
.ffz-sending {padding:16px 20px;margin:18px 0;background:#edf2e7;border:1px solid #d1dcc5;border-radius:9px;color:#304b38;}
body .ffz-sending p {margin:0;font:400 15px/1.6 Arial,sans-serif;color:#304b38;}
.ffz-sending progress {margin:12px 0 0;}
.ffz-sending progress:indeterminate {background:linear-gradient(90deg,#e2e8da 20%,#6f8b58 50%,#e2e8da 80%);background-size:200% 100%;animation:ffz-sending 1.4s linear infinite;}
.ffz-sending progress:indeterminate::-webkit-progress-bar {background:linear-gradient(90deg,#e2e8da 20%,#6f8b58 50%,#e2e8da 80%);background-size:200% 100%;animation:ffz-sending 1.4s linear infinite;}
@keyframes ffz-sending {to{background-position:-200% 0;}}
@media(prefers-reduced-motion:reduce){.ffz-sending progress:indeterminate,.ffz-sending progress:indeterminate::-webkit-progress-bar{animation:none;}.ffz-form-progress::-webkit-progress-value{transition:none;}}

/* shared/booking */
/* A consistent booking step around Calendly's supported inline embed. */
body .embedded-booking {background:#fdfbf7;border:1px solid #d6ddcc;border-radius:14px;padding:28px;margin:24px 0 0;scroll-margin-top:130px;}
body .booking-invitation {display:flex;align-items:flex-start;gap:16px;margin:0 0 20px;padding:0;background:transparent;border:0;box-shadow:none;}
body .booking-symbol {width:44px;height:44px;flex:0 0 44px;padding:10px;border-radius:10px;background:#e7eedf;color:#354b3e;box-sizing:border-box;}
body .booking-symbol svg {width:24px;height:24px;stroke:currentColor;stroke-width:1.5;}
body .booking-invitation .eyebrow {font:600 11px/1.5 Arial,sans-serif;letter-spacing:1.3px;color:#65774f;margin:0 0 8px;}
body .booking-invitation .card-title {font:400 32px/1.2 var(--serif);letter-spacing:-.5px;color:#283e32;margin:0 0 10px;}
body .booking-invitation-copy {font:400 15px/1.7 Arial,sans-serif;color:#526250;margin:0;}
body .calendar-jump {display:none;}
body .booking-context {font:500 13px/1.6 Arial,sans-serif;color:#354b3e;margin:0 0 12px;}
body .sms-reminder-note {font:400 12px/1.6 Arial,sans-serif;color:#526250;margin:0 0 16px;padding:0;background:transparent;border:0;border-radius:0;}
body #calendar-frame-host {background:#fdfbf7;border:1px solid #d6ddcc;border-radius:10px;overflow:hidden;min-width:0;scroll-margin-top:130px;}
body .calendar-frame {display:block;width:100%;height:1050px;border:0;background:#fdfbf7;color-scheme:light;}
body #review {margin:0 0 18px;padding:14px 16px;background:#edf2e7;border:1px solid #d6ddcc;border-radius:8px;}
body #review h3 {font:500 15px/1.5 Arial,sans-serif;margin:0 0 8px;color:#283e32;}
body #review .review-disclosure {margin:0;}
body #review #edit {display:inline-flex;width:auto;min-height:36px;padding:8px 0;margin:8px 0 0;border:0;background:transparent;box-shadow:none;font:500 13px/1.5 Arial,sans-serif;color:#354b3e;text-decoration:underline;}
body .survey-panel[data-step="13"] {padding:28px;}
body .survey-panel[data-step="13"] .review-disclosure {background:#edf2e7;border:1px solid #d6ddcc;border-radius:8px;padding:12px 16px;margin:0 0 18px;}
body .embed-actions {font:400 12px/1.6 Arial,sans-serif;color:#526250;margin-top:10px;}
@media(max-width:720px){body .embedded-booking{padding:20px 14px;margin:20px 0 0;}body .survey-panel[data-step="13"]{padding:22px 14px;}body .booking-invitation{gap:12px;}body .booking-invitation .card-title{font-size:27px;}body .calendar-frame{height:1150px;}body .embedded-booking>p,body .embedded-booking>h2{margin-left:0;margin-right:0;}}
