/* Visual choices: one question, real people, a little momentum. */
.quick-booking,.visual-home { --choice-ink:#112e43; --choice-blue:#096da6; --choice-green:#116044; --choice-lime:#d4f56b; --choice-line:#dce5eb; }
.quick-booking [hidden],.visual-home [hidden] { display:none!important; }
.quick-booking { background:radial-gradient(ellipse at 10% 0%,#e0f6fa 0%,transparent 40%),#f5f7fa; }
.quick-booking .site-header { background:#ffffffed; box-shadow:none; border-bottom:1px solid #e3e9ef; }
.quick-booking .page-main.wide { max-width:1050px; padding:26px 24px 40px; }
.quick-booking .request-form-layout { display:block; max-width:100%; }
.quick-booking .request-wizard,.quick-booking .request-complete { padding:30px 40px; border:1px solid #e0e8ee; border-radius:28px; background:#fff; box-shadow:0 24px 70px #14384f0b; width:100%; }
.plan-topline { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:28px; }
.plan-topline>a { color:#496578; font-size:1rem; text-decoration:none; min-height:44px; display:inline-flex; align-items:center; }
.plan-momentum { display:flex; gap:8px; align-items:center; color:#126143; font-size:.9375rem; font-weight:750; }
.plan-momentum>span { font-size:1.5rem; color:#27734c; }
.plan-progress-heading { display:flex; justify-content:space-between; gap:12px; align-items:center; }
.quick-booking .request-step-label { margin:0; font-size:.9375rem; font-weight:800; color:#176186; }
#plan-progress-caption { font-size:.875rem; color:#617380; }
.quick-booking .request-step-badges { display:flex; gap:7px; padding:0; margin:12px 0 23px; list-style:none; }
.quick-booking .request-step-badge { flex:1; min-height:5px; height:5px; padding:0; background:#e8eef2; border:0; border-radius:6px; box-shadow:none; }
.quick-booking .request-step-badge.is-active { background:linear-gradient(90deg,#257bac,#54b9d5); box-shadow:0 0 9px #64ccec40; }
.quick-booking .request-step-badge.is-complete { background:#1d8860; }
.quick-booking .request-step-badge>span,.quick-booking .request-step-badge>b { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.quick-booking .request-step { padding:0; margin:0; border:0; outline:none; }
.quick-booking .request-step>h1 { margin:8px 0 7px; font-size:clamp(1.85rem,3.8vw,2.8rem); font-weight:800; letter-spacing:-.035em; line-height:1.16; color:#112f46; }
.quick-booking .request-step>p { margin:0 0 20px; font-size:1rem; color:#526a7b; }
.quick-booking .request-step-error { margin:14px 0; border-radius:12px; }
.mini-plan { display:flex; flex-wrap:wrap; align-items:center; gap:5px 12px; margin:-5px 0 21px; padding:0 0 14px; border-bottom:1px solid #e8edf1; }
.mini-plan button { display:inline-flex; align-items:center; gap:7px; background:none; border:0; padding:7px 0; min-height:36px; color:#23633f; font-size:.9375rem; font-weight:650; text-align:left; cursor:pointer; }
.mini-plan button+button::before { content:'·'; color:#93a3ad; margin-right:4px; }
.quick-booking .task-group-buttons { grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; margin:22px 0 17px; }
.quick-booking .task-group-buttons button,.visual-home .photo-categories button { position:relative; overflow:hidden; display:block; padding:0; isolation:isolate; border:2px solid transparent; border-radius:17px; color:#fff; background:#0c334d; box-shadow:none; min-width:0; cursor:pointer; transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.quick-booking .task-group-buttons img,.visual-home .photo-categories img { display:block; width:100%; height:100%; position:absolute; inset:0; object-fit:cover; z-index:-2; transition:transform .25s ease; }
.quick-booking .task-group-buttons button::after,.visual-home .photo-categories button::after { content:''; position:absolute; inset:0; background:linear-gradient(transparent 25%,#061b2fe8); z-index:-1; }
.quick-booking .task-group-buttons button { height:130px; text-align:left; }
.quick-booking .task-group-buttons button>span { position:absolute; bottom:11px; left:10px; right:7px; font-size:1rem; line-height:1.15; font-weight:800; }
.quick-booking .task-group-buttons button>i,.visual-home .photo-categories button>i { display:none; position:absolute; top:9px; right:9px; width:25px; height:25px; border-radius:50%; background:var(--choice-lime); color:#153322; font-size:1rem; font-style:normal; place-items:center; }
.quick-booking .task-group-buttons button[aria-pressed=true],.visual-home .photo-categories button[aria-pressed=true] { border-color:#9dbd26; box-shadow:0 0 0 3px #e0f7ae; }
.quick-booking .task-group-buttons button[aria-pressed=true]>i,.visual-home .photo-categories button[aria-pressed=true]>i { display:grid; }
.quick-booking .task-search { margin:0 0 12px; gap:12px; }
.quick-booking .task-search label { font-size:.9375rem; color:#526a7b; font-weight:650; }
.quick-booking .task-search input { min-width:0; border:0; border-bottom:1px solid #c4d5df; border-radius:0; background:transparent; min-height:48px; font-size:1rem; }
.quick-booking .task-option-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; }
.quick-booking .task-option { min-height:64px; padding:15px 4px; align-items:center; border:0; border-bottom:1px solid #dde7ed; border-radius:0; background:transparent; box-shadow:none; }
.quick-booking .task-option b { font-size:1.0625rem; line-height:1.35; font-weight:700; }
.quick-booking .task-option small { display:none; }
.quick-booking .task-option:has(input:checked) { background:linear-gradient(90deg,#eff9e7,transparent); border-color:#91b96c; box-shadow:none; }
.quick-booking .task-option:has(input:checked) small { display:block; font-size:.875rem; color:#486447; }
.quick-booking .task-option>i { width:28px; height:28px; border-color:#bacbd6; }
.task-fineprint,.story-details { font-size:.875rem; color:#516e80; margin:15px 0; }
.task-fineprint summary,.story-details summary { cursor:pointer; min-height:36px; align-content:center; }
.quick-booking .task-selection-tray { padding:0; border:0; }
.quick-booking .task-selection-tray>div { display:none; }
.quick-booking .task-selection-tray button { border:0; min-height:44px; font-size:1rem; color:#09699d; }
.quick-booking .task-selection-tray>b { font-size:.9375rem; }
.quick-schedule-block { border:0; margin:24px 0 0; padding:0; min-width:0; }
.quick-schedule-block legend { padding:0; margin:0 0 11px; font-size:1.0625rem; font-weight:750; color:#183c54; }
.quick-day-row,.quick-time-row { display:grid; grid-template-columns:minmax(0,1fr) 195px; gap:12px; align-items:stretch; }
.quick-days,.quick-times { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; min-width:0; }
.quick-times { grid-template-columns:repeat(4,minmax(0,1fr)); }
.quick-duration { display:flex; flex-wrap:wrap; gap:9px; }
.quick-booking .quick-pick { min-height:58px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; padding:12px; border:1px solid #d2dfe7; border-radius:14px; background:#f7fafc; color:#244c63; font-size:1.0625rem; font-weight:750; cursor:pointer; box-shadow:none; transition:background .18s ease,transform .18s ease,box-shadow .18s ease; }
.quick-booking .quick-pick small { font-size:.875rem; font-weight:500; color:#597284; }
.quick-booking .quick-pick[aria-pressed=true] { background:#103f58; border-color:#103f58; color:#fff; box-shadow:0 4px 12px #12415d24; }
.quick-booking .quick-pick[aria-pressed=true] small { color:#def3fa; }
.quick-booking .quick-pick:disabled { opacity:.4; cursor:default; text-decoration:line-through; }
.quick-booking .quick-duration .quick-pick { min-height:48px; flex:1; white-space:nowrap; padding:10px 13px; }
.quick-booking .date-choice,.quick-booking .time-choice { position:relative; border:1px solid #d2dfe7; border-radius:14px; padding:9px 12px 4px; margin:0; min-width:0; gap:0; }
.quick-booking .date-choice:focus-within,.quick-booking .time-choice:focus-within { border-color:#1672a5; }
.quick-booking .date-choice label,.quick-booking .time-choice label { font-size:.875rem; color:#496677; font-weight:650; margin:0; }
.quick-booking .date-choice input,.quick-booking .time-choice input { display:block; padding:0; border:0; background:none; min-width:0; width:100%; max-width:100%; min-height:38px; height:auto; font-size:1.0625rem; color:#123d57; box-sizing:border-box; }
.quick-booking input::-webkit-date-and-time-value { min-height:1.5em; text-align:left; }
.quick-time-note { font-size:.875rem; color:#627985; margin:8px 0 0; }
.schedule-flex { margin-top:19px; font-size:.9375rem; color:#456579; }
.schedule-flex summary { cursor:pointer; min-height:40px; align-content:center; }
.schedule-flex .field { max-width:420px; margin-top:10px; }
.quick-booking .wizard-actions { position:sticky; bottom:0; z-index:3; padding:17px 0 4px!important; margin-top:24px!important; display:flex; justify-content:space-between; gap:16px; border-top:1px solid #e2eaf0; background:#fffffff7; backdrop-filter:blur(12px); }
.quick-booking .wizard-primary,.quick-booking .wizard-submit { margin-left:auto; background:linear-gradient(130deg,#096c91,#10563e); border:0; color:#fff; border-radius:50px; box-shadow:0 8px 20px #0c644222; min-height:56px; padding:14px 27px; font-size:1.0625rem; }
.quick-booking .wizard-actions .secondary,.quick-booking .form-actions .secondary { border:0; box-shadow:none; background:transparent; padding-left:0; color:#4a6474; }
.quick-booking .helper-mode-card { border:1px solid #d4e0e8; border-radius:17px; box-shadow:none; min-height:110px; padding:18px; }
.quick-booking .helper-mode-card:has(input:checked) { background:#edf8e6; border-color:#83af56; box-shadow:0 0 0 2px #eaf6da; }
.quick-booking .helper-mode-card small { font-size:.9375rem; }
.quick-booking .request-for-someone { margin-top:20px; }
.quick-booking .request-context { margin:0; }
.quick-booking .request-context .selected-helper-banner { grid-template-columns:minmax(0,1fr) auto; background:none; border:0; border-bottom:1px solid #e0e9ee; border-radius:0; box-shadow:none; padding:12px 0; margin:0; }
.quick-booking .request-context .banner-icon { display:none; }
.quick-booking .request-context .banner-copy>span { font-size:.9375rem; }
.quick-booking .request-wizard:not([data-current-step="5"]) .request-context { display:none!important; }
.quick-booking .request-context .idea-request-banner { display:none; }
.quick-booking .review-section>.wizard-shine-badge { display:none; }
.quiet-support { display:block; margin:22px auto 0; width:fit-content; color:#557286; font-size:1rem; min-height:44px; align-content:center; }
.quick-booking :is(input,select,textarea) { max-width:100%; box-sizing:border-box; }
.quick-booking :is(.form-grid,.field,.request-step,.form-section) { min-width:0; }
.quick-booking .request-complete { text-align:center; }
.quick-booking .request-complete-mark { background:linear-gradient(135deg,#daf88a,#a4eebc); color:#125f41; border:6px solid #effbdc; box-shadow:0 0 0 12px #f7fbea; }
.quick-booking .request-complete-summary,.quick-booking .request-complete-followup { text-align:left; }
.connection-badge { display:inline-flex; gap:8px; margin:8px 0 15px; padding:10px 17px; border-radius:24px; background:#e5f4d4; color:#225835; font-weight:800; font-size:1rem; }
/* Homepage: the pictures are the controls. */
.visual-home .help-story { max-width:none; padding:40px max(28px,calc((100% - 1260px)/2)) 30px; background:radial-gradient(ellipse at 90% 0%,#17687c 0%,transparent 49%),linear-gradient(135deg,#092f47,#0b263b); color:#fff; }
.visual-home .story-heading { align-items:center; margin-bottom:25px; }
.visual-home .story-heading .eyebrow { color:#d3f28a; font-size:.875rem; letter-spacing:.13em; }
.visual-home .story-heading h1 { color:#fff; font-size:clamp(2.5rem,4.2vw,4.3rem); line-height:1.06; margin-top:12px; letter-spacing:-.04em; }
.visual-home .story-heading h1 span { color:#d4f56b; }
.visual-home .story-ready { background:#ffffff0e; border:1px solid #7babb461; border-radius:50px; color:#fff; box-shadow:none; padding:15px 21px; max-width:340px; }
.visual-home .story-ready small { color:#cfdee6; }
.visual-home .story-ready.has-ready-helpers { background:#e3f6d1; border-color:#d4f56b; color:#174632; box-shadow:0 0 25px #c9f47a13; }
.visual-home .story-ready.has-ready-helpers small { color:#345f43; }
.visual-home .story-stage { display:block; background:none; border:0; box-shadow:none; border-radius:0; overflow:visible; }
.visual-prompt { font-size:1.125rem; margin:0 0 16px; color:#e5f0f4; }
.visual-home .photo-categories { grid-template-columns:repeat(6,minmax(0,1fr)); gap:14px; }
.visual-home .photo-categories button { height:185px; text-align:left; }
.visual-home .photo-categories button>span { position:absolute; bottom:16px; left:13px; right:10px; font-size:1.125rem; line-height:1.2; }
.visual-home .photo-categories button[aria-pressed=true] { border-color:#d4f56b; box-shadow:0 0 0 3px #d4f56b30,0 8px 20px #0002; }
.visual-home .story-choices { margin-top:24px; padding:23px 27px 12px; background:white; color:#183d52; border-radius:22px; }
.story-choice-line { display:flex; align-items:center; justify-content:space-between; gap:15px; }
.story-choice-line h2 { font-size:1.25rem; line-height:1.3; margin:0; font-weight:800; letter-spacing:-.01em; }
.choice-spark { font-size:1.7rem; color:#147959; }
.visual-home .story-task-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 28px; min-height:0; margin-top:7px; }
.visual-home .story-task { display:flex; justify-content:space-between; align-items:center; gap:15px; min-height:57px; padding:13px 0; border:0; border-bottom:1px solid #dbe7ed; border-radius:0; background:none!important; }
.visual-home .story-task>b { font-size:1.0625rem; line-height:1.35; }
.visual-home .story-task>strong { color:#16677a; font-size:1.4rem; }
.visual-home .story-task:hover { color:#096b90; }
.visual-home .story-options-footer { margin-top:9px; flex-wrap:wrap; }
.visual-home .story-options-footer button { border:0; padding-right:0; }
.visual-home .story-options-footer p { margin-left:auto; }
.story-custom { color:#447086; font-size:1rem; min-height:44px; align-content:center; text-underline-offset:4px; }
.visual-home .story-details { margin:0; }
.visual-home .story-bottom { margin-top:20px; gap:12px; }
.visual-home .story-bottom>a { color:#e0eef4; font-size:1rem; }
.visual-home .story-bottom .story-earn { color:#133c34; background:linear-gradient(120deg,#d7f681,#abebbc); border-radius:50px; box-shadow:0 6px 20px #0001; padding:13px 22px; }
@media(hover:hover) { .quick-booking .quick-pick:not(:disabled):hover { transform:translateY(-2px); border-color:#2484a6; }.quick-booking .task-group-buttons button:hover img,.visual-home .photo-categories button:hover img { transform:scale(1.055); }.quick-booking .task-group-buttons button:hover,.visual-home .photo-categories button:hover { transform:translateY(-3px); } }
@media(max-width:1050px) { .visual-home .help-story { padding:28px 24px; }.visual-home .photo-categories { gap:11px; }.visual-home .photo-categories button { height:155px; }.visual-home .photo-categories button>span { font-size:1rem; left:10px; }.quick-booking .request-wizard { padding:28px; }.quick-booking .task-group-buttons button { height:118px; } }
@media(max-width:760px) { .quick-booking .page-main.wide { padding:16px 14px 28px; }.quick-booking .request-wizard { padding:22px; border-radius:22px; }.plan-topline { margin-bottom:20px; }.plan-momentum { font-size:.875rem; }.plan-progress-heading { align-items:flex-start; }#plan-progress-caption { display:none; }.quick-booking .task-group-buttons { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }.quick-booking .task-group-buttons button { height:110px; }.quick-booking .task-option-grid { gap:0 15px; }.quick-booking .task-option { min-height:72px; }.quick-day-row,.quick-time-row { grid-template-columns:minmax(0,1fr) 160px; }.quick-days { gap:6px; }.quick-times { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }.quick-booking .quick-pick { padding:10px 7px; font-size:1rem; }.visual-home .photo-categories { grid-template-columns:repeat(3,minmax(0,1fr)); }.visual-home .photo-categories button { height:142px; }.visual-home .story-heading { display:flex; flex-wrap:wrap; gap:18px; }.visual-home .story-ready { width:auto; }.visual-home .story-choices { padding:18px 20px 10px; }.visual-home .story-heading h1 { font-size:3rem; }.visual-home .story-task-grid { gap:0 20px; }.visual-home .story-bottom .story-earn { width:auto; } }
@media(max-width:520px) { .quick-booking .page-main.wide { padding:0 0 18px; }.quick-booking .request-wizard { border:0; border-radius:0 0 24px 24px; padding:18px 19px; }.quick-booking .site-header .site-brand span { font-size:1rem; }.quick-booking .site-header>.button { padding:9px 13px; font-size:.9375rem; min-height:44px; }.plan-topline { margin-bottom:20px; gap:10px; }.plan-topline>a { font-size:.9375rem; }.plan-momentum { max-width:165px; text-align:right; justify-content:flex-end; }.quick-booking .task-group-buttons button { height:104px; }.quick-booking .task-group-buttons button>span { font-size:.9375rem; left:8px; }.quick-booking .task-option b { font-size:1rem; }.quick-booking .task-option { gap:7px; }.quick-booking .task-search { display:flex; }.quick-booking .task-search>label { display:none; }.quick-booking .quick-day-row,.quick-booking .quick-time-row { grid-template-columns:1fr; }.quick-booking .quick-days { gap:8px; }.quick-booking .quick-times { grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }.quick-booking .date-choice,.quick-booking .time-choice { display:flex; flex-direction:row; align-items:center; gap:12px; border-radius:10px; padding:4px 12px; }.quick-booking .date-choice label,.quick-booking .time-choice label { flex-shrink:0; }.quick-booking .date-choice input,.quick-booking .time-choice input { min-height:40px; }.quick-booking .quick-duration { gap:7px; }.quick-booking .quick-duration .quick-pick { flex:0 1 auto; padding:10px 12px; font-size:1rem; }.quick-schedule-block { margin-top:21px; }.quick-booking .wizard-actions { margin-top:16px!important; gap:8px; padding-bottom:10px!important; }.quick-booking .wizard-primary { padding:13px 21px; font-size:1rem; }.quick-booking .helper-mode-choices { grid-template-columns:1fr; }.quick-booking .mini-plan { gap:3px 8px; }.visual-home .help-story { padding:28px 17px 24px; }.visual-home .story-heading h1 { font-size:2.65rem; }.visual-home .photo-categories { gap:9px; }.visual-home .photo-categories button { height:124px; border-radius:14px; }.visual-home .photo-categories button>span { font-size:.9375rem; left:9px; bottom:12px; }.visual-home .story-choices { margin-top:20px; padding:17px 18px 10px; border-radius:18px; }.visual-home .story-task-grid { grid-template-columns:1fr; }.visual-home .story-task { min-height:53px; }.visual-home .story-task>b { font-size:1rem; }.visual-home .story-options-footer p { display:none; }.visual-home .story-heading { margin-bottom:20px; }.visual-home .story-ready { padding:10px 15px; border-radius:18px; }.visual-home .story-ready small { font-size:.875rem; }.visual-home .story-bottom .story-earn { border-radius:18px; width:100%; }.visual-home .story-earn b { display:block; margin:0 0 3px; } }
@media(prefers-reduced-motion:reduce) { .quick-booking *,.quick-booking *::before,.quick-booking *::after,.visual-home .help-story * { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

.quick-booking .review-section { margin:0 0 24px; padding:0; border:0; }
.quick-booking .review-section h1 { margin:6px 0 10px; font-size:clamp(1.85rem,3.8vw,2.8rem); line-height:1.16; letter-spacing:-.035em; }
.quick-booking .review-section>p { font-size:1rem; color:#506c7e; margin:7px 0; }
.quick-booking .booking-price { border:1px solid #c9dae5; border-radius:20px; margin-top:20px; }
.quick-booking .booking-price-head { background:linear-gradient(120deg,#0c3d54,#146446); color:white; }
.quick-booking .booking-price-head>strong { color:#ddf5af; }
.quick-booking .request-review { background:transparent; border:0; padding:10px 0; }
.quick-booking .request-review>p { padding:12px 0; border-bottom:1px solid #e3ebf0; font-size:1rem; }
.quick-booking .review-change { background:none; border:0; color:#086d9b; font-size:.9375rem; text-decoration:underline; min-height:44px; }
.quick-booking .optional-details { background:transparent; border:0; border-bottom:1px solid #e1e9ef; border-radius:0; padding:13px 0; }
.quick-booking .optional-phone { margin-top:16px; }
.quick-booking .review-privacy { font-size:.9375rem; color:#587080; }
.quick-booking .signed-in-contact { border:0; border-radius:0; padding:0; background:none; }
.quick-booking .signed-in-contact .wizard-shine-badge { display:none; }

/* Review step: four visual decisions instead of one long wall of text. */
.quick-booking .review-step-intro { display:flex; align-items:flex-start; justify-content:space-between; gap:22px; margin-bottom:18px; }
.quick-booking .review-step-intro h1 { margin:4px 0 5px; color:#112f46; font-size:clamp(2rem,4vw,3rem); line-height:1.08; letter-spacing:-.035em; }
.quick-booking .review-step-intro p { margin:0; color:#536c7d; font-size:1rem; }
.quick-booking .review-kicker { display:block; color:#176b8f; font-size:.78rem; font-weight:900; letter-spacing:.12em; }
.quick-booking .review-test-chip { flex:0 0 auto; padding:11px 15px; border:1px solid #e0b642; border-radius:14px; background:#fff3bd; color:#5b4308; font-size:.82rem; font-weight:900; line-height:1.2; text-align:center; letter-spacing:.04em; }
.quick-booking .review-test-chip small { display:block; margin-top:3px; color:#765d1f; font-size:.75rem; font-weight:700; letter-spacing:0; }
.quick-booking .booking-price { margin:0 0 22px; border:0; border-radius:22px; box-shadow:0 8px 28px #14384f12; }
.quick-booking .booking-price-head { padding:20px 22px; }
.quick-booking .booking-price-head>span { font-size:.8rem; font-weight:900; letter-spacing:.12em; }
.quick-booking .booking-price-head>strong { max-width:650px; font-size:clamp(1.8rem,4vw,2.7rem); line-height:1.08; }
.quick-booking .booking-price-head>small { font-size:.92rem; }
.quick-booking .booking-price-body { padding:17px 20px 20px; }
.quick-booking .booking-price-body>p { margin-bottom:12px; color:#365266; }
.quick-booking .test-confirm-action { display:grid; grid-template-columns:minmax(0,1fr) minmax(220px,.8fr); align-items:center; gap:4px 20px; margin-top:14px; padding:16px; border:1px solid #dfbd55; border-radius:15px; }
.quick-booking .test-confirm-action>strong { margin:0; font-size:1.05rem; }
.quick-booking .test-confirm-action>p:not(.test-confirm-status) { margin:2px 0 0; font-size:.92rem; }
.quick-booking .test-confirm-action .test-confirm-button { grid-column:2; grid-row:1 / span 2; min-height:52px; margin:0; padding:12px 15px; border-radius:12px; font-size:1rem; }
.quick-booking .test-confirm-action .test-confirm-status { grid-column:1 / -1; margin:5px 0 0; font-size:.86rem; }
.quick-booking .review-plan-panel { margin-top:10px; }
.quick-booking .review-plan-heading { display:flex; align-items:end; justify-content:space-between; gap:15px; margin-bottom:12px; }
.quick-booking .review-plan-heading h2 { margin:0; color:#16384f; font-size:1.5rem; }
.quick-booking .review-plan-heading span { color:#657b89; font-size:.9rem; }
.quick-booking .request-review { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:0; }
.quick-booking .request-review .review-card { position:relative; display:grid; grid-template-columns:42px minmax(0,1fr); gap:11px; min-height:132px; padding:17px 16px; border:1px solid #cadbe4; border-radius:17px; background:#f5f9fb; }
.quick-booking .review-card[data-tone="green"] { background:#eff9eb; border-color:#b9d7a9; }
.quick-booking .review-card[data-tone="gold"] { background:#fff8df; border-color:#e8d28b; }
.quick-booking .review-card[data-tone="purple"] { background:#f5f0fb; border-color:#d6c3e7; }
.quick-booking .review-card-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:12px; background:#dceef7; font-size:1.15rem; }
.quick-booking .review-card[data-tone="green"] .review-card-icon { background:#d8eecb; }
.quick-booking .review-card[data-tone="gold"] .review-card-icon { background:#f7e7a9; }
.quick-booking .review-card[data-tone="purple"] .review-card-icon { background:#e5d9f2; }
.quick-booking .review-card>div { min-width:0; padding-right:52px; }
.quick-booking .review-card strong { display:block; color:#526c7c; font-size:.8rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.quick-booking .review-card p { margin:3px 0 5px; padding:0; border:0; background:none; color:#15344a; font-size:1.04rem; font-weight:850; line-height:1.35; overflow-wrap:anywhere; }
.quick-booking .review-card small { display:block; color:#546c7b; font-size:.86rem; line-height:1.4; }
.quick-booking .review-card .review-change { position:absolute; top:11px; right:11px; min-height:40px; padding:7px; font-size:.86rem; }
.quick-booking .review-additions { margin:20px 0; padding:0; border:1px dashed #9bb7c7; border-radius:16px; background:#f7fbfd; }
.quick-booking .review-additions>summary { min-height:66px; padding:13px 17px; }
.quick-booking .review-additions>summary>span { display:grid; gap:1px; }
.quick-booking .review-additions>summary b { font-size:1rem; }
.quick-booking .review-additions>summary small { color:#657a87; font-size:.82rem; font-weight:650; }
.quick-booking .review-additions>.request-note { margin:0; padding:18px 17px; border-top:1px solid #dde8ee; }
.quick-booking .review-additions>.form-section { padding-top:10px; }
.quick-booking .compact-account-card { margin:20px 0; padding:20px; border:1px solid #b9d7c2; border-radius:18px; background:linear-gradient(135deg,#f1faef,#f2f8fb); }
.quick-booking .compact-account-card h2 { margin:3px 0 5px; font-size:1.55rem; }
.quick-booking .compact-account-card>p { margin:0; }
.quick-booking .compact-account-card .signed-in-contact { margin:12px 0 0; }
.quick-booking .update-details { margin-top:10px; color:#3f6072; }
.quick-booking .update-details summary { min-height:42px; cursor:pointer; color:#12638e; font-size:.92rem; font-weight:800; align-content:center; }
.quick-booking .update-details p { margin:6px 0 0; font-size:.92rem; line-height:1.5; }
.quick-booking .final-send-card { margin:22px 0 0; padding:22px; border:2px solid #7eac91; border-radius:20px; background:#f4fbf5; }
.quick-booking .final-send-card h2 { margin:4px 0 5px; color:#15384e; font-size:1.75rem; }
.quick-booking .final-send-explanation { margin:0 0 16px; color:#4c6676; font-size:1rem; line-height:1.5; }
.quick-booking .confirmation-cluster { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:18px 0 12px; padding:14px; border:1px solid #b8cbd7; border-radius:18px; background:#edf6fa; }
.quick-booking .price-confirmation-slot { display:contents; }
.quick-booking .confirmation-cluster .price-confirmation-choice { grid-column:1 / -1; border-color:#78a88a; background:#f5fff4; }
.quick-booking .confirmation-cluster legend { padding:0 7px; color:#173d55; font-size:1.05rem; font-weight:900; }
.quick-booking .confirmation-cluster label.confirmation-choice { grid-template-columns:30px minmax(0,1fr); gap:3px 10px; margin:0; padding:13px; border:1px solid #8fb1c0; border-radius:13px; background:white; }
.quick-booking .confirmation-cluster .confirmation-choice>input[type="checkbox"] { width:27px; height:27px; min-width:27px; margin-top:2px; }
.quick-booking .confirmation-cluster .confirmation-hint { font-size:.78rem; line-height:1.2; }
.quick-booking .confirmation-cluster .confirmation-copy { font-size:.94rem; line-height:1.35; }
.quick-booking .review-privacy { margin:10px 0 18px; }
.quick-booking .final-send-card>.form-actions { margin:18px 0 0; padding-top:18px; border-top:1px solid #cfe0d5; }
.quick-booking .request-step { scroll-margin-top:90px; }
.quick-booking .request-wizard[data-current-step="5"] .request-context { display:none; }
.quick-booking .final-check-status { margin:12px 0 0; color:#425a69; font-size:1rem; font-weight:750; }
.quick-booking .final-check-status.is-ready { color:#176337; }
.quick-booking .final-test-note { margin:15px 0 0; color:#425a69; font-size:1rem; line-height:1.5; }
.quick-booking .confirmation-cluster .confirmation-copy { font-size:1rem; }
.quick-booking .confirmation-cluster .confirmation-hint { font-size:.875rem; }

@media(max-width:620px) {
  .quick-booking .review-step-intro { align-items:center; gap:12px; }
  .quick-booking .review-step-intro h1 { font-size:2rem; }
  .quick-booking .review-step-intro p { font-size:.92rem; }
  .quick-booking .review-test-chip { padding:9px 10px; font-size:.72rem; }
  .quick-booking .booking-price-head { padding:17px; }
  .quick-booking .booking-price-head>strong { font-size:1.85rem; }
  .quick-booking .booking-price-body { padding:14px; }
  .quick-booking .test-confirm-action { grid-template-columns:1fr; gap:4px; padding:14px; }
  .quick-booking .test-confirm-action .test-confirm-button { grid-column:1; grid-row:auto; margin-top:9px; }
  .quick-booking .test-confirm-action .test-confirm-status { grid-column:1; }
  .quick-booking .review-plan-heading { align-items:start; }
  .quick-booking .review-plan-heading span { max-width:115px; text-align:right; }
  .quick-booking .request-review { grid-template-columns:1fr; gap:9px; }
  .quick-booking .request-review .review-card { min-height:104px; padding:14px; }
  .quick-booking .confirmation-cluster { grid-template-columns:1fr; }
  .quick-booking .final-send-card { padding:18px 15px; }
  .quick-booking .final-send-card>.form-actions { flex-direction:column-reverse; }
  .quick-booking .final-send-card>.form-actions .wizard-submit { width:100%; }
}

/* All twelve illustrations stay together. Tap the tile itself to select. */
.quick-booking .task-option-grid,.visual-home .story-slider .story-slide { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.quick-booking .task-option,.visual-home .story-task-grid .story-task { display:flex; align-items:center; justify-content:flex-start; gap:10px; min-height:96px; padding:12px; border:2px solid #cbdbe4; border-radius:14px; background:#f5f9fc!important; box-shadow:none; }
.quick-booking .task-option>span:not(.task-art),.visual-home .story-task>b { flex:1; min-width:0; }
.quick-booking .task-option b,.visual-home .story-task>b { font-size:1rem; line-height:1.3; }
.quick-booking .task-option .task-choice-photo,.visual-home .story-task>.task-art { width:48px; height:48px; flex:0 0 48px; }
.quick-booking .task-option>i,.visual-home .story-task>strong,.quick-booking .task-group-buttons button>i,.visual-home .photo-categories button>i { display:none!important; }
.quick-booking .task-option small,.quick-booking .task-option:has(input:checked) small { display:none; }
.quick-booking .task-option:has(input:checked),.visual-home .story-task-grid .story-task.is-chosen { background:#c9efb0!important; border-color:#367b22; box-shadow:inset 0 0 0 1px #367b22; color:#193f12; }
.quick-booking .task-option:has(input:focus-visible),.visual-home .story-task:focus-visible { outline:3px solid #1266ac; outline-offset:3px; }
.quick-booking .task-group-buttons { margin:12px 0; }
.quick-booking .task-group-buttons button { height:102px; }
.quick-booking .plan-basket,.visual-home .plan-basket { padding:9px 14px; margin-bottom:14px; border-radius:14px; }
.quick-booking .plan-basket-top,.visual-home .plan-basket-top { display:flex; flex-wrap:nowrap; gap:10px; }
.quick-booking .plan-basket-copy,.visual-home .plan-basket-copy { flex:1; }
.quick-booking .plan-basket-status,.visual-home .plan-basket-status { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.quick-booking .plan-basket>small,.visual-home .plan-basket>small { display:none; }
.quick-booking .plan-basket-continue,.visual-home .plan-basket-continue { width:auto; min-height:46px; }
.quick-booking .plan-basket-details,.visual-home .plan-basket-details { margin-top:0; }
.quick-booking .plan-basket-icon,.visual-home .plan-basket-icon { flex-basis:36px; height:36px; font-size:1.5rem; }
.visual-home .story-task-grid.story-slider { overflow:visible; padding-bottom:4px; }
@media(max-width:760px) {
  .quick-booking .task-option-grid,.visual-home .story-slider .story-slide { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .quick-booking .task-option,.visual-home .story-task-grid .story-task { flex-direction:column; align-items:flex-start; min-height:118px; gap:6px; padding:10px; }
  .quick-booking .task-group-buttons button { height:88px; }
}
@media(max-width:520px) {
  .quick-booking .task-option-grid,.visual-home .story-slider .story-slide { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
.finder-plan { margin:0 0 18px; padding:16px; border:2px solid #81b85b; border-radius:14px; background:#effbdd; color:#214426; }
.finder-plan>strong { display:block; font-size:1.125rem; }
.finder-plan ul { margin:10px 0; padding-left:22px; font-size:1rem; line-height:1.6; }
.finder-plan a { display:inline-block; padding-block:8px; font-weight:700; color:#245d35; }
.finder.has-activity-plan .all-activities { display:none; }
.home-scroll-cue { position:fixed; right:20px; bottom:24px; z-index:40; display:flex; align-items:center; gap:12px; min-height:52px; max-width:calc(100vw - 32px); padding:12px 18px; border:2px solid #f4ce59; border-radius:999px; background:linear-gradient(120deg,#fff0a8,#ffd45d); box-shadow:0 5px 22px #102e4340; color:#173247; font-family:inherit; font-size:1rem; font-weight:800; line-height:1.35; cursor:pointer; }
.home-scroll-cue svg { flex-shrink:0; animation:scroll-cue-nudge 1.8s ease-in-out 2; }
.home-scroll-cue:hover { background:#ffe68b; }
.home-scroll-cue:focus-visible { outline:3px solid #096da6; outline-offset:4px; }
@keyframes scroll-cue-nudge { 0%,100% { transform:translateY(-3px); } 50% { transform:translateY(4px); } }
@media(max-width:900px) { .home-scroll-cue { right:16px; bottom:calc(88px + env(safe-area-inset-bottom)); } }
@media(prefers-reduced-motion:reduce) { .home-scroll-cue svg { animation:none; } }

.nearby-plan { margin:20px 0; }.nearby-plan .plan-basket { position:static; }
.nearby-booking-choices { margin:0 0 20px; padding:14px; border:2px solid #81b85b; border-radius:14px; }
.nearby-booking-choices legend { font-size:1.125rem; font-weight:800; padding:0 6px; }
.nearby-booking-choices .task-option { min-height:52px; }

/* Clear starting choices and one basket across the whole homepage. */
.home-start{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:22px 0}.home-start a{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:4px 12px;padding:22px;border-radius:18px;background:#c8f29c;color:#123d2e;text-decoration:none;border:2px solid #85b957}.home-start a+ a{background:#ffe795;border-color:#eac650;color:#553d12}.home-start span{grid-row:span 2;font-size:32px}.home-start b{font-size:clamp(19px,2vw,26px)}.home-start small{font-size:16px}.home-start a:focus-visible{outline:4px solid #268ada;outline-offset:4px}#story-groups,#ideas{scroll-margin-top:24px}
.global-plan-dock{position:fixed;z-index:900;bottom:16px;left:50%;transform:translateX(-50%);width:min(680px,calc(100% - 24px))}.global-plan-dock[hidden]{display:none}.global-plan-dock .plan-basket{position:static;margin:0!important;box-shadow:0 6px 30px #082d4a55;background:#f1ffe6;border:2px solid #448435;border-radius:18px}.global-plan-dock .plan-basket-items{max-height:30vh;overflow:auto}.has-plan-dock{padding-bottom:180px}.has-plan-dock #home-scroll-cue{display:none}.helper-next-availability{padding:12px 16px;background:#eaf6dc;border:1px solid #a7cb85;border-radius:12px;color:#23512c;font-size:18px;font-weight:800}
@media(max-width:900px){.global-plan-dock{bottom:calc(8px + env(safe-area-inset-bottom,0px))}.has-plan-dock{padding-bottom:160px}}
@media(max-width:520px){.home-start{gap:10px}.home-start a{display:block;padding:16px 12px}.home-start span{display:block}.home-start b,.home-start small{display:block;margin-top:6px}}

/* Phone-only: keep the iPad composition, but turn long stacks into compact, swipeable rows. */
@media(max-width:520px) {
  .visual-home .help-story { padding:18px 12px 16px; }
  .visual-home .story-heading { display:grid; grid-template-columns:minmax(0,1fr) 132px; gap:10px; margin-bottom:12px; }
  .visual-home .story-heading h1 { margin-top:6px; font-size:2.05rem; line-height:1.02; }
  .visual-home .story-heading .eyebrow { font-size:.75rem; }
  .visual-home .story-ready { width:100%; padding:9px 10px; }
  .visual-home .story-ready .ready-symbol { display:none; }
  .visual-home .story-ready b { font-size:.875rem; line-height:1.2; }
  .visual-home .story-ready small { font-size:.75rem; line-height:1.25; }
  .home-start { margin:12px 0; gap:8px; }
  .home-start a { min-height:72px; padding:10px; }
  .home-start span { float:left; margin-right:7px; font-size:1.35rem; }
  .home-start b { margin-top:0; font-size:1rem; line-height:1.2; }
  .home-start small { font-size:.8125rem; line-height:1.25; }
  .visual-prompt { margin-bottom:10px; font-size:1rem; }
  .visual-home .photo-categories { gap:7px; }
  .visual-home .photo-categories button { height:88px; }
  .visual-home .photo-categories button>span { left:7px; bottom:8px; font-size:.8125rem; }
  .visual-home .story-choices { margin-top:12px; padding:13px 12px 8px; }
  .story-choice-line h2 { font-size:1.0625rem; }
  .visual-home .story-task-grid.story-slider { display:flex; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .visual-home .story-task-grid.story-slider::-webkit-scrollbar { display:none; }
  .visual-home .story-slider .story-slide { flex:0 0 100%; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; scroll-snap-align:start; }
  .visual-home .story-task-grid .story-task { min-height:96px; padding:8px; gap:5px; }
  .visual-home .story-task-grid .story-task>.task-art { width:38px; height:38px; flex-basis:38px; }
  .visual-home .story-task-grid .story-task>b { font-size:.875rem; line-height:1.2; }
  .visual-home .story-options-footer { margin-top:5px; }
  .visual-home .story-details { font-size:.875rem; }
  .visual-home .story-bottom { margin-top:12px; }
  .visual-home .story-bottom>a:first-child { display:none; }
  .visual-home .story-bottom .story-earn { padding:10px 13px; font-size:.9375rem; }
  .home-scroll-cue { right:12px; bottom:calc(76px + env(safe-area-inset-bottom)); min-height:46px; padding:9px 13px; font-size:.875rem; }
  .home-scroll-cue.is-dismissed,.home-scroll-cue[hidden] { display:none!important; }
  .home-map-panel .map-card:not(.expanded) { height:360px; }
  .live-places #place-list { grid-template-rows:1fr; grid-auto-columns:76%; max-height:none; overflow-x:auto; overflow-y:hidden; }
  .idea-launchpad-section { padding-block:22px; }
  .idea-launchpad h3 { font-size:1.55rem; }
  .idea-action { min-height:86px; }
  .how-section { padding:30px 12px; }
  .connection-club { gap:18px; padding:20px 16px; }
  .club-steps li { padding:12px; }
  .club-steps li>span { width:40px; height:40px; }
  .home-vacation-mode { padding:20px 14px; }
  .home-vacation-points { grid-template-columns:1fr 1fr; gap:8px; }
  .earn-section img { min-height:190px; max-height:220px; object-fit:cover; }
  .home-about { padding:38px 16px; }
  .site-footer { gap:20px; }
}
