/* All rules are scoped to the shortcode so the site's WordPress theme remains intact. */
.ftc {
  --ftc-bg: var(--wp--preset--color--base, #fcfaf7);
  --ftc-ink: var(--wp--preset--color--contrast, #23211f);
  --ftc-accent: var(--wp--preset--color--primary, #ad7959);
  --ftc-border: color-mix(in srgb, var(--ftc-ink) 15%, transparent);
  --ftc-subtle: color-mix(in srgb, var(--ftc-ink) 63%, transparent);
  --ftc-panel: color-mix(in srgb, var(--ftc-bg) 92%, var(--ftc-ink) 8%);
  --ftc-panel-light: color-mix(in srgb, var(--ftc-bg) 97%, var(--ftc-ink) 3%);
  font-family: inherit;
  color: var(--ftc-ink);
  border: 1px solid var(--ftc-border);
  border-radius: 6px;
  padding: clamp(18px, 4.7vw, 52px);
  background: var(--ftc-bg);
  line-height: 1.5;
  max-width: 1240px;
  margin: 1rem auto 2rem;
  position: relative;
  box-sizing: border-box;
  overflow-wrap: break-word;
}
.ftc *, .ftc *::before, .ftc *::after {box-sizing: border-box;}
.ftc [hidden] {display: none !important;}
.ftc :focus-visible {outline: 3px solid var(--ftc-accent);outline-offset: 3px;}
.ftc h2,.ftc h3,.ftc p {margin-top: 0;}
.ftc h2 {font-size: clamp(31px, 5vw, 58px);letter-spacing: -0.045em;line-height:1.06;margin: 10px 0 16px;font-weight: 700;}
.ftc h3 {font-size: clamp(25px, 3.1vw, 37px);letter-spacing: -.034em;line-height:1.14;margin:7px 0 13px;font-weight:650;}
.ftc p {font-size: 15px;line-height:1.68;}
.ftc-head {padding: 4px 0 27px;border-bottom:1px solid var(--ftc-border);}
.ftc-head p {color:var(--ftc-subtle);max-width:640px;margin-bottom:0;font-size:16px;}
.ftc-eyebrow,.ftc-kicker,.ftc-tiny-title {font-size:11px;line-height:1.35;font-weight:750;letter-spacing:.16em;text-transform:uppercase;}
.ftc-eyebrow {color:var(--ftc-accent);}.ftc-eyebrow span{padding:0 9px;color:var(--ftc-subtle);}
.ftc-progress {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:0!important;margin:26px 0 44px!important;list-style:none!important;gap:10px;}
.ftc-progress li {border-top:2px solid var(--ftc-border);padding:13px 0 0;display:flex;align-items:center;gap:10px;font-size:12px;font-weight:650;opacity:.46;transition:opacity .2s,border-color .2s;}
.ftc-progress li span {font-variant-numeric: tabular-nums;letter-spacing:.06em;}
.ftc-progress li.is-active {opacity:1;border-color:var(--ftc-accent);}
.ftc-progress li.is-passed{opacity:.85;border-color:var(--ftc-ink);}
.ftc-step-intro {max-width:760px;margin-bottom:27px;}
.ftc-step-intro p {color:var(--ftc-subtle);max-width:700px;}
.ftc-kicker {color:var(--ftc-accent);}
.ftc-placement-layout {display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.85fr);align-items:start;gap:23px;}
.ftc-map-wrap{min-width:0;}
.ftc-swipe-note{display:none;}
.ftc-map-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;}
.ftc-body-card {min-width:0;border:1px solid var(--ftc-border);border-radius:5px;background:var(--ftc-panel-light);padding:13px 7px 12px;}
.ftc-body-caption {font-size:12px;font-weight:700;text-align:center;letter-spacing:.01em;display:flex;align-items:center;justify-content:center;gap:7px;}
.ftc-caption-dot{background:var(--ftc-accent);border-radius:50%;width:6px;height:6px;display:inline-block;}
.ftc-body-map {display:flex;align-items:center;justify-content:center;margin-top:1px;min-height:320px;}
.ftc-figure{width:100%;max-width:245px;height:auto;max-height:470px;overflow:visible;}
.ftc-body-outline{fill:color-mix(in srgb,var(--ftc-ink) 12%,var(--ftc-bg));stroke:color-mix(in srgb,var(--ftc-ink) 47%,transparent);stroke-width:1.35;pointer-events:none;}
.ftc-body-outline .ftc-body-detail{fill:none;stroke:color-mix(in srgb,var(--ftc-ink) 20%,transparent);stroke-width:1.5;}
.ftc-hotspot{stroke:transparent;stroke-width:2;fill:transparent;cursor:pointer;transition:fill .13s;}
.ftc-hotspot:hover,.ftc-hotspot:focus{fill:color-mix(in srgb,var(--ftc-accent) 36%,transparent);stroke:var(--ftc-accent);outline:none;}
.ftc-hotspot.is-selected{fill:color-mix(in srgb,var(--ftc-accent) 45%,transparent);stroke:var(--ftc-accent);stroke-width:2.4;}
.ftc-choice-panel {background:var(--ftc-panel-light);border:1px solid var(--ftc-border);border-radius:5px;padding:clamp(16px,2.7vw,28px);display:flex;flex-direction:column;gap:17px;}
.ftc-tiny-title{color:var(--ftc-subtle);}
.ftc-selection-summary{font-size:17px;font-weight:650;line-height:1.35;padding:0 0 18px;border-bottom:1px solid var(--ftc-border);min-height:43px;}
.ftc label:not(.ftc-checkbox):not(.ftc-trap),.ftc fieldset {display:flex;flex-direction:column;gap:9px;margin:0;font-weight:650;font-size:13px;}
.ftc label small {font-weight:400;line-height:1.5;color:var(--ftc-subtle);font-size:12px;}
.ftc label > span[aria-hidden]{color:var(--ftc-accent);}
.ftc input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),.ftc textarea,.ftc select{
  font: inherit;font-size:15px;font-weight:450;color:var(--ftc-ink);background:var(--ftc-bg);border:1px solid var(--ftc-border);border-radius:3px;
  display:block;width:100%;padding:13px 12px;min-height:48px;box-shadow:none;max-width:100%;line-height:1.5;
}
.ftc input[type="file"]{width:100%;font:inherit;font-size:13px;font-weight:400;color:var(--ftc-subtle);border:1px dashed var(--ftc-border);padding:18px;border-radius:4px;}
.ftc input[type="file"]::file-selector-button{border:1px solid var(--ftc-border);background:var(--ftc-bg);color:var(--ftc-ink);padding:7px 10px;margin-right:12px;cursor:pointer;}
.ftc textarea{resize:vertical;}
.ftc input:focus,.ftc textarea:focus,.ftc select:focus{border-color:var(--ftc-accent);}
.ftc fieldset.ftc-side-set {border:0;padding:0;min-width:0;}
.ftc fieldset legend{font-size:13px;font-weight:650;padding:0;margin:0 0 10px;}
.ftc-pills {display:flex;flex-wrap:wrap;gap:7px;}
.ftc-pills label{position:relative;display:inline-flex!important;cursor:pointer;margin:0!important;font-weight:550!important;}
.ftc-pills input {position:absolute;opacity:0;pointer-events:none;}
.ftc-pills span{font-size:12px;padding:8px 11px;border:1px solid var(--ftc-border);background:var(--ftc-bg);border-radius:3px;transition:background .2s;}
.ftc-pills input:checked + span{background:var(--ftc-ink);color:var(--ftc-bg);border-color:var(--ftc-ink);}
.ftc-pills input:focus-visible + span{outline:3px solid var(--ftc-accent);outline-offset:2px;}
.ftc-hint{background:var(--ftc-panel);border-left:2px solid var(--ftc-accent);padding:12px 14px;font-size:12px;line-height:1.65;color:var(--ftc-subtle);}
.ftc-hint strong{color:var(--ftc-ink);}
.ftc-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;align-items:center;margin-top:27px;padding-top:22px;border-top:1px solid var(--ftc-border);}
.ftc-button{font:inherit!important;line-height:1.3!important;min-height:49px;display:inline-flex;gap:14px;justify-content:center;align-items:center;padding:14px 24px!important;cursor:pointer;border-radius:3px!important;text-decoration:none!important;letter-spacing:.005em;font-size:13px!important;font-weight:700!important;border:1px solid var(--ftc-ink)!important;transition:transform .15s, opacity .15s;background:none;}
.ftc-button:hover{transform:translateY(-1px);opacity:.88;}
.ftc-button:disabled{opacity:.4;cursor:not-allowed;transform:none;}
.ftc-primary{background:var(--ftc-ink)!important;color:var(--ftc-bg)!important;}
.ftc-secondary{background:transparent!important;color:var(--ftc-ink)!important;}
.ftc-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:19px;}
.ftc-step[data-step="1"] > label,.ftc-step[data-step="3"] > label {margin-bottom:19px!important;}
.ftc-preview-grid{display:grid;grid-template-columns:minmax(260px,1.1fr) minmax(260px,.9fr);gap:23px;}
.ftc-preview-canvas{background:color-mix(in srgb,var(--ftc-bg) 95%,white 5%);border:1px solid var(--ftc-border);border-radius:5px;min-height:440px;display:grid;place-items:center;overflow:hidden;padding:20px;}
.ftc-preview-image{max-width:100%;width:auto;max-height:530px;object-fit:contain;}
.ftc-empty-preview{height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--ftc-subtle);gap:20px;text-align:center;font-size:13px;}
.ftc-preview-icon{font-size:73px;color:var(--ftc-accent);line-height:1;}
.ftc-preview-panel{border:1px solid var(--ftc-border);border-radius:5px;padding:22px;display:flex;flex-direction:column;align-items:stretch;gap:16px;}
.ftc-review dl{margin:0;border-block:1px solid var(--ftc-border);padding:14px 0;display:grid;grid-template-columns:74px 1fr;gap:10px 14px;font-size:12px;}
.ftc-review dt{font-weight:750;color:var(--ftc-subtle);}.ftc-review dd{margin:0;overflow-wrap:anywhere;}
.ftc-caution{font-size:12px!important;color:var(--ftc-subtle);margin:0!important;}
.ftc-checkbox{display:flex;flex-direction:row!important;gap:10px!important;align-items:flex-start;font-size:12px!important;line-height:1.55;font-weight:400!important;margin:8px 0 14px!important;}
.ftc-checkbox input[type="checkbox"]{flex:none;accent-color:var(--ftc-accent);width:18px;height:18px;margin:1px 0 0;}
.ftc-checkbox a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;}
.ftc-form-abstract{border:1px solid var(--ftc-border);background:var(--ftc-panel-light);padding:15px;margin-bottom:25px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:13px;}
.ftc-form-abstract span{color:var(--ftc-subtle);}
.ftc-alert{margin:0 0 23px;border-left:3px solid #a93e3e;background:color-mix(in srgb,#a93e3e 8%,var(--ftc-bg));padding:13px 15px;font-size:13px;line-height:1.55;}
.ftc-alert.is-good{border-left-color:#32805f;background:color-mix(in srgb,#32805f 9%,var(--ftc-bg));}
.ftc-smallprint{font-size:12px!important;color:var(--ftc-subtle);line-height:1.6!important;margin:15px 0 0!important;}
.ftc-trap{position:absolute!important;left:-99999px!important;width:1px!important;height:1px!important;overflow:hidden!important;}
.ftc-done{text-align:center;padding:55px 10px 65px;}
.ftc-done-symbol{font-size:48px;border:1px solid var(--ftc-accent);color:var(--ftc-accent);border-radius:50%;width:100px;height:100px;display:grid;place-items:center;margin:0 auto 27px;}
.ftc-done p{max-width:510px;margin:0 auto 25px;color:var(--ftc-subtle);}
.ftc-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;border-top:1px solid var(--ftc-border);padding-top:20px;margin-top:43px;font-size:10px;font-weight:700;letter-spacing:.13em;color:var(--ftc-subtle);}
.ftc-captcha {max-width:100%;overflow:hidden;min-height:20px;}
@media(max-width:960px){
 .ftc-placement-layout{grid-template-columns:1fr;}
 .ftc-choice-panel{max-width:none;}
 .ftc-map-grid{max-width:650px;margin:auto;width:100%;}
 .ftc-preview-grid{grid-template-columns:1fr;}
 .ftc-preview-canvas{min-height:330px;}
}
@media(max-width:540px){
 .ftc{padding:18px 15px;}
 .ftc-progress{gap:5px;margin:23px 0 28px!important;}
 .ftc-progress li{display:block;font-size:9px;line-height:1.3;}
 .ftc-progress li span{display:block;font-size:13px;margin-bottom:4px;}
 .ftc-swipe-note{display:block;font-size:11px!important;letter-spacing:.02em;text-align:center;color:var(--ftc-subtle);margin:5px 0 0!important;}
 .ftc-map-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:11px;padding-bottom:12px;scrollbar-width:thin;}
 .ftc-body-card{flex:0 0 77%;scroll-snap-align:start;}
 .ftc-body-map{min-height:325px;}
 .ftc-figure{max-height:400px;}
 .ftc-field-grid{grid-template-columns:1fr;gap:14px;}
 .ftc-actions{justify-content:stretch;}
 .ftc-actions .ftc-button{flex:1 1 100%;}
 .ftc-foot{font-size:9px;}
}
@media (prefers-reduced-motion: reduce){.ftc *{transition:none!important;scroll-behavior:auto!important;}}

/* Version 0.2: upload-first, cost-free direct submission. */
.ftc-upload-start{border:1px solid var(--ftc-border);background:var(--ftc-panel-light);padding:clamp(17px,3vw,25px);margin-bottom:25px;border-radius:4px;}
.ftc-upload-start h4{font-size:clamp(19px,2.4vw,25px)!important;margin:5px 0 8px!important;line-height:1.25;}
.ftc-upload-start p{font-size:13px;line-height:1.55;color:var(--ftc-subtle);}
.ftc-upload-start input[type="file"]{background:var(--ftc-bg);margin-top:8px;}
.ftc-reference-options{border:0!important;margin-top:14px!important;padding:0!important;}
.ftc-reference-options legend{margin:0 0 8px!important;}
.ftc-reference-options label{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:10px;font-size:13px!important;font-weight:500!important;margin-bottom:10px!important;}
.ftc-reference-options input[type="radio"]{accent-color:var(--ftc-accent);margin-top:3px;flex:none;}
.ftc-upload-start [data-upload-message]{margin:10px 0 0;font-size:12px;}


/* 0.4.1: theme-resistant contrast modes. Intentionally isolated to the shortcode. */
.ftc.ftc-theme-dark {
  --ftc-bg: #171717;
  --ftc-ink: #f7f7f7;
  --ftc-accent: #ddb18b;
  --ftc-border: #515151;
  --ftc-subtle: #d0d0d0;
  --ftc-panel: #242424;
  --ftc-panel-light: #202020;
  color-scheme: dark;
  background-color: var(--ftc-bg) !important;
  color: var(--ftc-ink) !important;
}
.ftc.ftc-theme-light {
  --ftc-bg: #fbfaf8;
  --ftc-ink: #242424;
  --ftc-accent: #875333;
  --ftc-border: #b6b6b6;
  --ftc-subtle: #515151;
  --ftc-panel: #ededed;
  --ftc-panel-light: #f3f2f0;
  color-scheme: light;
  background-color: var(--ftc-bg) !important;
  color: var(--ftc-ink) !important;
}
/* Restore readable text even where themes declare high-specificity heading/label colors. */
.ftc:is(.ftc-theme-dark,.ftc-theme-light) :is(h2,h3,h4,h5,h6,legend,label,li,dt,dd,p,.ftc-body-caption,.ftc-selection-summary) {
  color: var(--ftc-ink) !important;
}
.ftc:is(.ftc-theme-dark,.ftc-theme-light) :is(.ftc-head p,.ftc-step-intro p,.ftc-upload-start p,.ftc-hint,.ftc-tiny-title,.ftc-review dt,.ftc-caution,.ftc-smallprint,.ftc-foot,.ftc-empty-preview,.ftc-form-abstract span,.ftc-swipe-note) {
  color: var(--ftc-subtle) !important;
}
.ftc:is(.ftc-theme-dark,.ftc-theme-light) :is(.ftc-kicker,.ftc-eyebrow,.ftc-preview-icon) {
  color: var(--ftc-accent) !important;
}
.ftc:is(.ftc-theme-dark,.ftc-theme-light) .ftc-eyebrow span,
.ftc:is(.ftc-theme-dark,.ftc-theme-light) label small,
.ftc:is(.ftc-theme-dark,.ftc-theme-light) .ftc-hint:not(strong) {
  color: var(--ftc-subtle) !important;
}
.ftc:is(.ftc-theme-dark,.ftc-theme-light) .ftc-hint strong {
  color: var(--ftc-ink) !important;
}
.ftc:is(.ftc-theme-dark,.ftc-theme-light) :is(.ftc-body-card,.ftc-choice-panel,.ftc-upload-start,.ftc-form-abstract) {
  background: var(--ftc-panel-light) !important;
  border-color: var(--ftc-border) !important;
}
.ftc:is(.ftc-theme-dark,.ftc-theme-light) :is(input:not([type="radio"]):not([type="checkbox"]),textarea,select) {
  background-color: var(--ftc-bg) !important;
  color: var(--ftc-ink) !important;
  border-color: var(--ftc-border) !important;
  -webkit-text-fill-color: var(--ftc-ink);
}
.ftc:is(.ftc-theme-dark,.ftc-theme-light) select option {
  background: var(--ftc-bg) !important;
  color: var(--ftc-ink) !important;
}
.ftc:is(.ftc-theme-dark,.ftc-theme-light) input::placeholder,
.ftc:is(.ftc-theme-dark,.ftc-theme-light) textarea::placeholder {
  color: var(--ftc-subtle) !important;
  opacity: 1;
}
.ftc:is(.ftc-theme-dark,.ftc-theme-light) .ftc-pills label span {
  background: var(--ftc-bg) !important;
  color: var(--ftc-ink) !important;
  border-color: var(--ftc-border) !important;
}
.ftc:is(.ftc-theme-dark,.ftc-theme-light) .ftc-pills input:checked + span {
  background: var(--ftc-ink) !important;
  color: var(--ftc-bg) !important;
  border-color: var(--ftc-ink) !important;
}
.ftc:is(.ftc-theme-dark,.ftc-theme-light) .ftc-button.ftc-primary,
.ftc:is(.ftc-theme-dark,.ftc-theme-light) .ftc-button.ftc-primary span {
  background-color: var(--ftc-ink) !important;
  color: var(--ftc-bg) !important;
}
.ftc:is(.ftc-theme-dark,.ftc-theme-light) .ftc-button.ftc-secondary,
.ftc:is(.ftc-theme-dark,.ftc-theme-light) .ftc-button.ftc-secondary span {
  color: var(--ftc-ink) !important;
}
.ftc:is(.ftc-theme-dark,.ftc-theme-light) .ftc-progress li { opacity: .72; }
.ftc:is(.ftc-theme-dark,.ftc-theme-light) .ftc-progress li.is-active { opacity: 1; }

/* 0.4.2: clearly disclosed demo with the existing contrast modes. */
.ftc .ftc-demo-banner {
  display: flex; flex-wrap: wrap; gap: 9px 15px; align-items: baseline;
  background: var(--ftc-panel); border: 1px solid var(--ftc-accent);
  color: var(--ftc-ink) !important; padding: 13px 16px; margin-bottom: 22px;
  border-radius: 4px; font-size: 13px; line-height: 1.6;
}
.ftc .ftc-demo-banner strong { color: var(--ftc-accent) !important; letter-spacing: .07em; white-space: nowrap; }
.ftc .ftc-demo-banner span { color: var(--ftc-ink) !important; flex: 1 1 260px; }
.ftc[data-demo-mode="1"] .ftc-preview-canvas { background: #f8f7f4; }
