/* Adapted from TFS _forms.scss, _form-panel.scss and scheduler compositions.
   The component geometry and controls are retained; tokens use Captain Frost. */
.cf-intake {
    --color-primary: #114c52;
    --color-card: #fffefa;
    --color-paper: #f7f6f1;
    --color-line: #d7dfdc;
    --color-fg: #19393d;
    --color-text-muted: #5c6e70;
    --field-bg: var(--color-card);
    --field-border: #cbd4d2;
    --field-border-hover: #a3b5b2;
    --field-text: #19393d;
    --field-placeholder: #7c8c8e;
    --error-text: #a53524;
    --radius: .5rem;
    --focus-ring: 0 0 0 4px rgb(17 76 82 / 20%);
    --space-sm: .75rem;
    --space-md: 1.15rem;
    box-sizing: border-box;
    padding: calc(var(--header-size, 110px) + 2.5rem) 1.25rem 4.5rem;
    background: radial-gradient(ellipse at top, #24535a, #1b272c 45rem);
    color: var(--color-fg);
    font-family: var(--font-body, sans-serif);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
}
.cf-intake *, .cf-intake *::before, .cf-intake *::after { box-sizing: border-box; }
.cf-intake [hidden] { display: none !important; }
/* Main already provides header clearance and bottom spacing inside its gradient. */
.cf-intake > .intake-shell { width: min(100%, 40rem); margin-inline: auto; padding-top: 0; }
.cf-intake ~ footer { margin-top: 0; }
.cf-intake .intake-heading { text-align: center; margin-block-end: 1.6rem; color: #fff8ef; }
.cf-intake .intake-eyebrow { color: #ffb15c; font-size: .76rem; font-weight: 650; text-transform: uppercase; letter-spacing: .1em; margin: 0 0 .5rem; }
.cf-intake .intake-heading h1 { margin: 0 0 .65rem; font-family: var(--font-display); font-size: clamp(1.9rem, 5vw, 2.5rem); line-height: 1.2; color: inherit; font-weight: 400; }
.cf-intake .intake-heading > p:last-child { font-size: .94rem; line-height: 1.5; margin: 0; color: #d5e5e3; }
.cf-intake .form-panel { background: var(--color-paper); border: 1px solid var(--color-line); border-radius: 1.1rem; box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 16%); padding: 1.5rem; }
.cf-intake .wizard-form { position: relative; background: transparent; border: 0; padding: 0; margin: 0; scroll-margin-top: 7rem; }
.cf-intake .wizard-viewport, .cf-intake .wizard-step { min-inline-size: 0; }
.cf-intake .wizard-progress { margin-block-end: 1.35rem; }
.cf-intake .wizard-progress__meta { display: flex; justify-content: space-between; gap: .6rem; align-items: baseline; margin-block-end: .65rem; }
.cf-intake .wizard-progress__meta h2 { margin: 0; max-inline-size: 65%; font-family: var(--font-body); font-size: .91rem; font-weight: 750; line-height: 1.2; color: var(--color-fg); }
.cf-intake .wizard-progress__meta p { color: var(--color-text-muted); margin: 0; font-size: .76rem; white-space: nowrap; }
.cf-intake .wizard-progress__track { height: .25rem; overflow: hidden; border-radius: 999px; background: #dbe5e2; }
.cf-intake .wizard-progress__track span { display: block; height: 100%; border-radius: inherit; background: var(--color-primary); transition: width 220ms ease; }
.cf-intake .wizard-step { margin: 0; border: 0; padding: 0; }
.cf-intake .wizard-step__description { margin: 0 0 1rem; color: var(--color-text-muted); font-size: .85rem; }
.cf-intake .wizard-field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: .75rem; row-gap: .85rem; min-inline-size: 0; }
.cf-intake .wizard-field--span-full { grid-column: 1 / -1; }
.cf-intake .wizard-field--span-half { grid-column: span 1; }
.cf-intake .wizard-field { min-inline-size: 0; }
.cf-intake .wizard-field > label, .cf-intake .wizard-field legend, .cf-intake .intake-section-label { display: block; padding: 0; color: var(--field-text); font-size: .79rem; font-weight: 720; line-height: 1.25; margin-block-end: .45rem; }
.cf-intake .intake-section-label { padding-block-start: .4rem; }
.cf-intake .wizard-field fieldset { min-inline-size: 0; margin: 0; border: 0; padding: 0; }
.cf-intake input, .cf-intake select, .cf-intake textarea, .cf-intake button { font-family: inherit; }
.cf-intake .wizard-field input:not([type=radio]):not([type=checkbox]):not([type=file]), .cf-intake .wizard-field textarea, .cf-intake .wizard-field select {
    appearance: none; inline-size: 100%; min-block-size: 2.7rem; box-sizing: border-box; font: inherit; font-size: .91rem; line-height: 1.4; color: var(--field-text); background: var(--field-bg); border: 1px solid var(--field-border); border-radius: var(--radius); padding: .65rem .85rem; box-shadow: 0 1px 0 rgb(15 23 42 / 2%); transition: border-color 140ms ease, box-shadow 140ms ease;
}
.cf-intake .wizard-field input::placeholder, .cf-intake .wizard-field textarea::placeholder { color: var(--field-placeholder); }
.cf-intake .wizard-field input:hover, .cf-intake .wizard-field select:hover, .cf-intake .wizard-field textarea:hover { border-color: var(--field-border-hover); }
.cf-intake .wizard-field textarea { min-block-size: 5rem; resize: vertical; }
.cf-intake .wizard-field select { padding-inline-end: 2.3rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M6 8l4 4 4-4' stroke='%235c6e70' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .85rem center; }
.cf-intake .wizard-choice-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .45rem; }
.cf-intake .wizard-choice-list--icon-grid { grid-template-columns: repeat(2,minmax(0,1fr)); grid-auto-rows: 1fr; }
.cf-intake .wizard-choice-list--icon-grid[data-choice-count="2"] { grid-template-columns: repeat(2,minmax(0,1fr)); justify-content: stretch; }
.cf-intake .wizard-choice { position: relative; min-block-size: 3.25rem; padding: .55rem .6rem; border: 1px solid var(--field-border); border-radius: .72rem; background: var(--field-bg); cursor: pointer; transition: border-color 140ms ease, background-color 140ms ease; }
.cf-intake .wizard-choice:hover { border-color: var(--color-primary); }
.cf-intake .wizard-choice:has(input:checked) { border-color: var(--color-primary); background: #eaf0ec; }
.cf-intake .wizard-choice:has(input:focus-visible) { box-shadow: var(--focus-ring); }
.cf-intake .wizard-choice strong { display: block; font-size: .84rem; font-weight: 650; line-height: 1.15; }
.cf-intake .wizard-choice--icon-tile { display: grid; grid-template-columns: minmax(0,1fr); grid-template-rows: auto minmax(1.8rem,auto); align-content: center; align-items: center; justify-items: center; gap: .2rem; min-block-size: 5.15rem; padding: .55rem .45rem; text-align: center; }
.cf-intake .wizard-choice--icon-tile::after { content: ""; position: absolute; inset-block-start: .45rem; inset-inline-end: .45rem; inline-size: .68rem; block-size: .68rem; border: 1px solid var(--field-border); border-radius: 999px; background: var(--field-bg); }
.cf-intake .wizard-choice--icon-tile:has(input:checked) { box-shadow: inset 0 0 0 1px var(--color-primary); }
.cf-intake .wizard-choice--icon-tile:has(input:checked)::after { background: var(--color-primary); border-color: var(--color-primary); box-shadow: inset 0 0 0 2px var(--field-bg); }
.cf-intake .wizard-choice--icon-tile > input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; }
.cf-intake .wizard-choice__icon { display: block; inline-size: 1.9rem; block-size: 1.9rem; background: var(--color-primary); mask: var(--wizard-choice-icon) center / contain no-repeat; -webkit-mask: var(--wizard-choice-icon) center / contain no-repeat; }
.cf-intake .wizard-choice__copy { max-inline-size: 26ch; }
.cf-intake .intake-inline-choices { display: flex; align-items: start; flex-wrap: wrap; gap: .65rem 1rem; margin-block-start: .65rem; }
.cf-intake .intake-inline-choices label { display: flex; align-items: start; gap: .4rem; color: var(--field-text); font-size: .79rem; font-weight: 500; line-height: 1.5; cursor: pointer; }
.cf-intake input[type=radio] { appearance: auto; accent-color: var(--color-primary); width: 1rem; height: 1rem; margin: .1rem 0 0; flex: 0 0 auto; }
.cf-intake .wizard-continue-agreement { max-inline-size: 38rem; margin: 1.2rem 0 0 auto; color: var(--color-text-muted); font-size: .72rem; line-height: 1.5; text-align: end; }
.cf-intake .intake-contact-help { margin: .85rem 0 0; }
.cf-intake .wizard-actions { display: flex; justify-content: flex-end; align-items: center; gap: .65rem; margin-block-start: 1.2rem; min-inline-size: 0; }
.cf-intake .wizard-field__error { margin: .3rem 0 0; color: var(--error-text); font-size: .76rem; line-height: 1.4; }
.cf-intake .wizard-field__error:empty { display: none; }
.cf-intake [aria-invalid=true] { border-color: var(--error-text) !important; }
.cf-intake .wizard-status { margin: 0 0 1rem; padding: .7rem .85rem; border: 1px solid #e2b3a9; border-radius: .7rem; background: #fcf0eb; color: var(--error-text); font-size: .83rem; line-height: 1.45; }
.cf-intake .intake-save-status { min-height: 1.15em; margin: .65rem 0 0; color: var(--color-text-muted); font-size: .72rem; text-align: end; }
.cf-intake .intake-save-status:empty { display: none; }
.cf-intake .intake-loading { margin: .7rem 0 0; color: var(--color-text-muted); font-size: .8rem; text-align: end; }
.cf-intake .intake-call { margin: 1rem 0 0; color: #d5e5e3; text-align: center; font-size: .8rem; }
.cf-intake .intake-call a { color: #ffb15c; white-space: nowrap; }
.cf-intake .wizard-field__help { margin: .35rem 0 0; color: var(--color-text-muted); font-size: .75rem; }
.cf-intake input[type=file] { width: 100%; font-size: .8rem; }
.cf-intake input[type=file]::file-selector-button { padding: .5rem .75rem; border: 1px solid var(--field-border); border-radius: .5rem; background: var(--field-bg); color: var(--color-primary); font: inherit; margin-inline-end: .6rem; cursor: pointer; }
.cf-intake .intake-files { margin: .4rem 0 0; padding: 0; list-style: none; font-size: .78rem; overflow-wrap: anywhere; }
.cf-intake .wizard-completion:focus { outline: none; }
.cf-intake .intake-result { display: grid; gap: .85rem; }
.cf-intake .intake-result h3 { margin: 0; font-size: 1.35rem; font-weight: 400; color: var(--color-fg); }
.cf-intake .intake-result p { margin: 0; color: var(--color-text-muted); font-size: .86rem; }
.cf-intake .scheduler-picker { display: grid; grid-template-columns: minmax(0,1fr); min-inline-size: 0; overflow: hidden; background: var(--color-card); border: 1px solid var(--color-line); border-radius: .9rem; }
.cf-intake .scheduler-calendar, .cf-intake .scheduler-time-panel { min-inline-size: 0; padding: 1.1rem; }
.cf-intake .scheduler-time-panel { background: #f3f6f0; border-block-start: 1px solid var(--color-line); }
.cf-intake .scheduler-calendar__header { display: grid; grid-template-columns: 2.75rem minmax(0,1fr) 2.75rem; align-items: center; gap: .5rem; margin-block-end: .8rem; }
.cf-intake .scheduler-calendar__header h3 { margin: 0; font-family: var(--font-body); color: var(--color-fg); font-size: .9rem; font-weight: 750; line-height: 1.25; text-align: center; }
.cf-intake .scheduler-month-nav { appearance: none; display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 1px solid var(--color-line); border-radius: .6rem; color: var(--color-fg); font: inherit; font-size: 1.5rem; line-height: 1; padding: 0; inline-size: 2.75rem; block-size: 2.75rem; cursor: pointer; }
.cf-intake .scheduler-month-nav:disabled { opacity: .3; cursor: default; }
.cf-intake .scheduler-calendar__grid, .cf-intake .scheduler-calendar__days { display: grid; gap: .4rem; }
.cf-intake .scheduler-calendar__weekdays, .cf-intake .scheduler-calendar__week { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: .4rem; }
.cf-intake .scheduler-calendar__weekdays span { color: var(--color-text-muted); padding-block: .25rem; font-size: .7rem; font-weight: 750; text-align: center; }
.cf-intake .scheduler-date, .cf-intake .scheduler-time { appearance: none; background: var(--color-card); border: 1px solid var(--color-line); border-radius: .65rem; color: var(--color-fg); cursor: pointer; font: inherit; font-size: .82rem; font-weight: 700; line-height: 1.25; min-block-size: 2.9rem; padding: .65rem .7rem; }
.cf-intake .scheduler-date { display: inline-flex; align-items: center; justify-content: center; aspect-ratio: 1; min-block-size: 0; min-inline-size: 0; inline-size: 100%; padding: .2rem; text-align: center; }
.cf-intake .scheduler-date:hover:not(:disabled), .cf-intake .scheduler-time:hover { background: #eaf0ec; border-color: var(--color-primary); }
.cf-intake .scheduler-date.is-selected, .cf-intake .scheduler-time.is-selected { background: var(--color-primary); border-color: var(--color-primary); color: #fffefa; }
.cf-intake .scheduler-date:disabled { background: transparent; border-color: transparent; color: #aab7b4; cursor: default; }
.cf-intake .scheduler-date--outside { border-color: transparent; pointer-events: none; }
.cf-intake .scheduler-date:focus-visible, .cf-intake .scheduler-time:focus-visible, .cf-intake .scheduler-month-nav:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.cf-intake .scheduler-times { border: 0; margin: 0; padding: 0; min-inline-size: 0; }
.cf-intake .scheduler-times > legend { padding: 0; margin-block-end: .75rem; font-size: .85rem; font-weight: 700; }
.cf-intake .scheduler-times__list { display: grid; gap: .55rem; grid-template-columns: repeat(2,minmax(0,1fr)); }
.cf-intake .scheduler-notice { margin: 0 0 1rem; padding: .75rem .85rem; border: 1px solid var(--color-line); border-radius: .6rem; background: #eaf0ec; color: var(--color-fg); font-size: .8rem; line-height: 1.45; }
.cf-intake .scheduler-book-actions { display: grid; gap: .75rem; grid-column: 1/-1; padding: 1.1rem; background: var(--color-card); border-block-start: 1px solid var(--color-line); }
.cf-intake .scheduler-book-actions p { margin: 0; font-size: .85rem; }
.cf-intake .scheduler-book-actions .intake-payment-note { color: var(--color-text-muted); font-size: .75rem; }
.cf-intake .scheduler-empty { margin: 0; font-size: .82rem; color: var(--color-text-muted); }
.cf-intake .intake-text-action { appearance: none; border: 0; background: transparent; font: inherit; font-size: .8rem; font-weight: 650; color: var(--color-primary); text-decoration: underline; text-underline-offset: .17em; cursor: pointer; padding: .3rem 0; }
.cf-intake .intake-sr-only, .cf-intake .wizard-honeypot { position: absolute !important; inline-size: 1px !important; block-size: 1px !important; margin: -1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%); white-space: nowrap; border: 0 !important; }
@media (max-width: 42rem) {
    .cf-intake { padding-inline: .85rem; padding-block-start: calc(var(--header-size,110px) + 1.25rem); }
    .cf-intake .form-panel { padding: 1.15rem; border-radius: .9rem; }
    .cf-intake .wizard-field-grid { grid-template-columns: 1fr; row-gap: .75rem; }
    .cf-intake .wizard-field--span-half { grid-column: 1/-1; }
    .cf-intake .wizard-choice-list--icon-grid, .cf-intake .wizard-choice-list--icon-grid[data-choice-count="2"] { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .cf-intake .wizard-actions { justify-content: stretch; }
    .cf-intake .wizard-continue-agreement { text-align: start; }
}
@media (max-width: 30rem) {
    .cf-intake .wizard-choice--icon-tile { grid-template-columns: 1.55rem minmax(0,1fr); grid-template-rows: auto; justify-items: start; column-gap: .4rem; min-block-size: 3.7rem; padding: .5rem 1.25rem .5rem .55rem; text-align: start; }
    .cf-intake .wizard-choice__icon { inline-size: 1.55rem; block-size: 1.55rem; }
    .cf-intake .wizard-choice__copy { max-inline-size: none; }
    .cf-intake .scheduler-calendar, .cf-intake .scheduler-time-panel, .cf-intake .scheduler-book-actions { padding: .85rem; }
    .cf-intake .scheduler-calendar__weekdays, .cf-intake .scheduler-calendar__week { gap: .25rem; }
}
@media (prefers-reduced-motion: reduce) { .cf-intake *, .cf-intake *::before, .cf-intake *::after { transition: none !important; animation: none !important; } }

.cf-intake .intake-project-details { margin-block-start: .25rem; font-size: .8rem; }
.cf-intake .intake-project-details summary { font-weight: 650; cursor: pointer; }
.cf-intake .intake-project-details > .wizard-field-grid { padding-block-start: .85rem; }

/* Native site button surfaces: the existing gradients, label geometry and 7px corners. */
.cf-intake .intake-action { appearance: none; padding: 0; border: 0; background: transparent; font: inherit; cursor: pointer; text-decoration: none; }
.cf-intake .intake-action > .button { font-family: var(--font-body); min-height: 44px; }
.cf-intake .intake-action:focus-visible, .cf-intake .intake-text-action:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; border-radius: var(--border-radius); }
.cf-intake .intake-action:disabled { opacity: .55; cursor: wait; }
.cf-intake .intake-action:disabled > .button { transform: none; box-shadow: none; }
.cf-intake .wizard-actions .intake-action { min-inline-size: 0; }
.cf-intake .intake-result .intake-action { justify-self: start; }
.cf-intake .scheduler-book-actions .intake-action { width: 100%; }
.cf-intake .wizard-field:has(> input[required]:not(:disabled)) > label::after,
.cf-intake .wizard-field:has(> select[required]:not(:disabled)) > label::after,
.cf-intake .wizard-field:has(> textarea[required]:not(:disabled)) > label::after,
.cf-intake .wizard-field:not([data-contact-group]):has(> fieldset input[required]:not(:disabled)) > fieldset > legend::after,
.cf-intake .intake-required-group::after { content: " *"; color: #bc302c; }
.cf-intake .scheduler-date.is-unknown:disabled { border: 1px dashed #ccd5d2; color: #7d8e89; }
.cf-intake .scheduler-timezone { margin: .4rem 0 .8rem; font-size: .72rem; color: var(--color-text-muted); text-align: end; }
@media (max-width: 42rem) {
    .cf-intake .wizard-actions .intake-action { flex: 1; }
    .cf-intake .wizard-actions .intake-action > .button { min-width: 0; }
}

/* Group headings stay prominent; labels sit quietly within each group. */
.cf-intake .form-panel { container: intakepanel / inline-size; }
.cf-intake .intake-group { border-block-start: 1px solid var(--color-line); padding-block-start: 1rem; margin-block-start: .3rem; }
.cf-intake .wizard-step > .wizard-field-grid > .intake-group:first-of-type { border: 0; padding-block-start: 0; margin-block-start: 0; }
.cf-intake .wizard-field > label { font-size: .73rem; font-weight: 500; color: #506669; }
.cf-intake .intake-group-title, .cf-intake .intake-section-label, .cf-intake .wizard-field--group > label { font-family: var(--font-body); font-size: .79rem; font-weight: 720; color: var(--field-text); line-height: 1.3; margin: 0 0 .7rem; padding: 0; }
.cf-intake .intake-group > fieldset > legend { margin-block-end: .7rem; }
.cf-intake .wizard-actions { justify-content: space-between; padding-block-start: 1rem; margin-block-start: 1rem; border-block-start: 1px solid var(--color-line); }
.cf-intake .wizard-actions .intake-action { --button-padding: .55em clamp(1rem, 3vw, 1.75rem); flex: 0 1 auto; min-inline-size: min(8rem, calc(50% - .35rem)); max-inline-size: calc(50% - .35rem); }
.cf-intake .wizard-actions [data-continue] { margin-inline-start: auto; }
.cf-intake .wizard-actions .intake-action > .button { inline-size: 100%; min-inline-size: 0; }
.cf-intake .intake-help { padding-block-start: .8rem; }
.cf-intake .intake-help-options, .cf-intake .intake-help-mode { display: flex; justify-content: center; align-items: baseline; gap: .35rem 1rem; flex-wrap: wrap; }
.cf-intake .intake-help .intake-text-action { font-size: .75rem; font-weight: 500; }
.cf-intake .intake-help-mode > span { font-size: .75rem; color: var(--color-text-muted); }
.cf-intake .intake-error-actions { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin-block-start: 1rem; }
.cf-intake .scheduler-calendar { inline-size: 100%; max-inline-size: 360px; padding: .7rem; justify-self: center; }
.cf-intake .scheduler-calendar__grid { max-inline-size: 332px; margin-inline: auto; }
.cf-intake .scheduler-calendar__weekdays, .cf-intake .scheduler-calendar__week { grid-template-columns: repeat(7,minmax(0,44px)); justify-content: center; gap: 4px; }
.cf-intake .scheduler-calendar__days { gap: 4px; }
.cf-intake .scheduler-date { max-inline-size: 44px; max-block-size: 44px; border-radius: 5px; }
.cf-intake .scheduler-month-nav { border-radius: 5px; }
.cf-intake .scheduler-time { border-radius: 5px; min-block-size: 40px; padding: .5rem .4rem; }
.cf-intake .scheduler-times > legend { margin-block-end: .2rem; }
.cf-intake .scheduler-timezone { text-align: start; font-size: .68rem; margin: 0 0 .8rem; }
.cf-intake .scheduler-book-actions { padding: .8rem 1rem; gap: .35rem; }
@container intakepanel (min-width: 560px) {
    .cf-intake .scheduler-picker { grid-template-columns: minmax(0,340px) minmax(0,1fr); }
    .cf-intake .scheduler-time-panel { border-block-start: 0; border-inline-start: 1px solid var(--color-line); }
}
@container intakepanel (max-width: 300px) {
    .cf-intake .wizard-choice-list--icon-grid, .cf-intake .wizard-choice-list--icon-grid[data-choice-count="2"] { grid-template-columns: 1fr; }
}
@media (max-width: 380px) {
    .cf-intake .wizard-choice-list--icon-grid, .cf-intake .wizard-choice-list--icon-grid[data-choice-count="2"] { grid-template-columns: 1fr; }
    .cf-intake .scheduler-date, .cf-intake .scheduler-time, .cf-intake .scheduler-month-nav { border-radius: 4px; }
}

.cf-intake .wizard-field input:focus-visible, .cf-intake .wizard-field select:focus-visible, .cf-intake .wizard-field textarea:focus-visible { outline: none; border-color: var(--color-primary); box-shadow: var(--focus-ring); }
