/* Sourwood add-on: visit finder, insurance quick check. Soft, rounded, calm. */

/* ---------- two-tap visit finder ---------- */
.vf { --sw-blush: color-mix(in srgb, var(--c-accent) 20%, #fff); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.vf-q { display: grid; gap: 28px; }
.vf fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.vf-q legend { display: flex; align-items: center; gap: 12px; padding: 0; margin-bottom: 14px; font: 600 1.35rem var(--f-heading); color: var(--c-dark); }
.vf-q legend span { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--c-primary); color: #fff; font: 700 1rem var(--f-body); }
.vf-opts { display: flex; flex-wrap: wrap; gap: 10px; }
.vf-opts label, .vf-slots label { position: relative; cursor: pointer; }
.vf input[type="radio"] { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.vf-opts span { display: inline-flex; align-items: center; min-height: 50px; padding: 12px 22px; border-radius: 999px; border: 2px solid var(--c-line); background: var(--c-white); font-weight: 700; color: var(--c-ink); transition: background .2s, border-color .2s, color .2s, transform .15s; }
.vf-opts label:hover span { border-color: var(--c-accent); }
.vf input:checked + span { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }
.vf input:focus-visible + span { outline: 3px solid var(--c-accent); outline-offset: 3px; }
.vf-result { position: relative; display: grid; gap: 10px; padding: 34px; border-radius: var(--radius); background: var(--sw-blush); justify-items: start; overflow: hidden; }
.vf-result::before { content: ""; position: absolute; right: -60px; top: -60px; width: 200px; height: 200px; border-radius: 50%; background: color-mix(in srgb, var(--c-accent) 30%, transparent); pointer-events: none; }
.vf-result > * { position: relative; }
.vf-for { font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--c-primary); }
.vf-result h3 { font-size: clamp(1.6rem, 3vw, 2.1rem); }
.vf-length { display: inline-flex; align-items: center; gap: 8px; padding: 5px 14px; border-radius: 999px; background: var(--c-white); font-weight: 700; font-size: .92rem; }
.vf-length::before { content: ""; width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--c-primary); }
.vf-extra { padding: 12px 16px; border-left: 3px solid var(--c-primary); background: rgba(255, 255, 255, .6); border-radius: 0 12px 12px 0; }
.vf-urgent { font-weight: 700; } .vf-urgent a { color: var(--c-primary); }
.vf-times { width: 100%; margin-top: 8px; display: grid; gap: 10px; }
.vf-times legend { padding: 0; margin-bottom: 10px; font-weight: 700; }
.vf-slots { display: flex; flex-wrap: wrap; gap: 8px; }
.vf-slots span { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; border-radius: 12px; border: 2px solid transparent; background: var(--c-white); font-weight: 600; font-variant-numeric: tabular-nums; }
.vf-note { font-size: .85rem; color: var(--c-muted); }
.vf-result .btn { margin-top: 10px; }
@media (prefers-reduced-motion: no-preference) { .vf-result.swap > * { animation: vf-in .35s ease both; } }
@keyframes vf-in { from { opacity: 0; transform: translateY(6px); } }
@media (max-width: 900px) { .vf { grid-template-columns: 1fr; gap: 24px; } }
@media (max-width: 520px) { .vf-result { padding: 24px; } .vf-opts span { padding: 10px 18px; } .vf-result .btn { width: 100%; } }

/* ---------- insurance quick check ---------- */
.ic { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: center; padding: 44px; border-radius: var(--radius); background: var(--c-white); box-shadow: var(--shadow); }
.ic .head { margin-bottom: 22px; }
.ic-label { display: block; font-weight: 700; margin-bottom: 8px; }
.ic select { width: 100%; min-height: 54px; padding: 12px 44px 12px 18px; border-radius: 14px; border: 2px solid var(--c-line); background: var(--c-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23555' stroke-width='2.4'/%3E%3C/svg%3E") no-repeat right 16px center / 18px; appearance: none; font: 600 1.05rem var(--f-body); color: var(--c-ink); cursor: pointer; }
.ic select:focus-visible { outline: 3px solid var(--c-accent); outline-offset: 2px; }
.ic-fine { margin-top: 10px; font-size: .82rem; color: var(--c-muted); }
.ic-card { display: grid; gap: 12px; justify-items: start; padding: 30px; border-radius: var(--radius); background: color-mix(in srgb, var(--c-accent) 18%, #fff); }
.ic-status { display: inline-flex; align-items: center; gap: 10px; font: 600 1.5rem/1.2 var(--f-heading); color: var(--c-dark); }
.ic-status::before { content: ""; width: 26px; height: 26px; flex: none; border-radius: 50%; background: var(--c-muted) no-repeat center / 14px; }
.ic-in::before { background-color: #2f7a4f; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12l5 5 9-10' fill='none' stroke='%23fff' stroke-width='3'/%3E%3C/svg%3E"); }
.ic-out::before { background-color: var(--c-primary); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h12M12 6l6 6-6 6' fill='none' stroke='%23fff' stroke-width='3'/%3E%3C/svg%3E"); }
.ic-none::before { background-color: var(--c-accent); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 20s-7-4.5-7-10a4 4 0 0 1 7-2.6A4 4 0 0 1 19 10c0 5.5-7 10-7 10z' fill='%23fff'/%3E%3C/svg%3E"); }
.ic-card .phone-link { color: var(--c-ink); } .ic-card .phone-link b { color: var(--c-primary); }
@media (max-width: 860px) { .ic { grid-template-columns: 1fr; padding: 26px; gap: 24px; } }
