
/* Layout: one calm column of question groups. Soft sea-green ground, each group has its own muted accent on the chip outline, selected answers fill navy. Light look chosen on purpose. */
:root{
  color-scheme:light;
  --display:"Young Serif",Georgia,"Times New Roman",serif;
  --body:"Hanken Grotesk","Helvetica Neue",Arial,sans-serif;
  --bg:#EDF4F9; --panel:#FFFFFF; --ink:#1B3358; --ink-soft:#4A5E78; --line:rgba(27,51,88,.26);
  --head:#1B3358; --btn:#C8102E; --btn-ink:#FFFFFF; --band:#FFFFFF; --note:#CFE8F6; --sky:#4DB4E3;
  --navy:#1B3358; --navy-ink:#FFFFFF;
  --c1:#3B9FD0; --c2:#C8102E; --c3:#3B9FD0; --c4:#C8102E; --c5:#3B9FD0; --c6:#C8102E;
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.6;margin:0;padding-inline:20px;padding-block:24px 64px}
.wrap{max-width:680px;margin-inline:auto}
.hero{background:var(--band);padding:26px 22px 22px;border-radius:4px;margin-bottom:6px}
.flag{display:inline-block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:14px}
h1{font-family:var(--display);font-weight:400;font-size:clamp(44px,12vw,68px);line-height:1;margin:0 0 12px;color:var(--head)}
h1 span{color:var(--btn)}
.lede{max-width:52ch;color:var(--ink-soft);margin:0}
.stay{margin:14px 0 0;font-size:15px;color:var(--ink-soft)}
.stay b{color:var(--ink);font-weight:600}
form{display:flex;flex-direction:column;gap:26px;margin-top:26px}
fieldset{border:0;padding:0;margin:0;min-width:0}
fieldset:nth-of-type(6n+1){--acc:var(--c1)}
fieldset:nth-of-type(6n+2){--acc:var(--c2)}
fieldset:nth-of-type(6n+3){--acc:var(--c3)}
fieldset:nth-of-type(6n+4){--acc:var(--c4)}
fieldset:nth-of-type(6n+5){--acc:var(--c5)}
fieldset:nth-of-type(6n+6){--acc:var(--c6)}
legend{font-family:var(--display);font-size:22px;line-height:1.2;padding:0;margin-bottom:4px;color:var(--ink)}
.hint{font-size:14px;color:var(--ink-soft);margin:0 0 10px}
.opt{font-family:var(--body);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-left:6px;white-space:nowrap}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips input{position:absolute;opacity:0;width:1px;height:1px}
.chips label{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--acc);border-radius:999px;padding:8px 16px;cursor:pointer;font-size:16px;line-height:1.3;background:var(--panel);user-select:none}
.chips label:hover{border-color:var(--navy)}
.chips input:checked+label{background:var(--navy);color:var(--navy-ink);border-color:var(--navy);font-weight:600}
.chips input:checked+label::before{content:"\2713";font-size:14px}
.chips input:focus-visible+label{outline:3px solid var(--btn);outline-offset:2px}
input[type=text],textarea{width:100%;font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:10px 12px}
textarea{min-height:92px;resize:vertical}
input[type=text]:focus,textarea:focus{outline:3px solid var(--btn);outline-offset:1px}
/* calendar for longer stays */
.cal{max-width:340px;background:var(--panel);border:1.5px solid var(--acc);border-radius:4px;padding:12px}
.cal h3{font-family:var(--display);font-weight:400;font-size:18px;margin:0 0 8px;text-align:center}
.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.grid .dow{font-size:12px;letter-spacing:.08em;color:var(--ink-soft);padding-bottom:2px}
.grid button,.grid span.x{height:42px;border-radius:50%;border:0;background:none;font:inherit;font-size:15px;color:var(--ink);font-variant-numeric:tabular-nums}
.grid button{cursor:pointer;background:color-mix(in srgb,var(--acc) 14%,var(--panel))}
.grid button:hover{outline:2px solid var(--navy)}
.grid button[aria-pressed=true]{background:var(--navy);color:var(--navy-ink);font-weight:600}
.grid button:focus-visible{outline:3px solid var(--btn)}
.grid span.x{display:grid;place-items:center;color:color-mix(in srgb,var(--ink-soft) 55%,var(--panel))}
.calnote{font-size:13px;color:var(--ink-soft);margin:8px 0 0}
.step{display:inline-flex;align-items:center;border:1.5px solid var(--acc);border-radius:999px;background:var(--panel)}
.step button{width:44px;height:44px;border:0;background:none;color:var(--ink);font-size:22px;cursor:pointer;border-radius:999px}
.step button:focus-visible{outline:3px solid var(--btn);outline-offset:-3px}
.step output{min-width:44px;text-align:center;font-family:var(--display);font-size:22px;font-variant-numeric:tabular-nums}
.stepwrap{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.go{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.btn{font:inherit;font-family:var(--display);font-size:21px;background:var(--btn);color:var(--btn-ink);border:0;border-radius:3px;padding:14px 32px;cursor:pointer}
.btn:focus-visible{outline:3px solid var(--navy);outline-offset:3px}
.fine{font-size:14px;color:var(--ink-soft);max-width:54ch}
.done{padding:16px 18px;background:var(--note);border-radius:3px;color:var(--ink)}
.done strong{font-family:var(--display);font-weight:400;font-size:22px;display:block;margin-bottom:2px}

.hero{padding-bottom:26px}



.hero{padding:0;overflow:hidden;border-radius:4px;background:#fff}
.banner{height:clamp(250px,52vw,330px);background:linear-gradient(#fff 0 16.66%,var(--sky) 16.66% 33.33%,#fff 33.33% 66.66%,var(--sky) 66.66% 83.33%,#fff 83.33% 100%);display:grid;align-items:center}
.mid{display:flex;align-items:center;justify-content:center;gap:clamp(6px,2vw,18px);height:33.33%;padding-inline:8px}
.mid h1{margin:0;font-size:clamp(38px,10.5vw,70px);line-height:1;white-space:nowrap}
.st{width:clamp(24px,6.5vw,48px);height:auto;fill:var(--btn);flex:none}
.intro{padding:22px 22px 24px}
.hero .flag{margin-bottom:10px}

.poster{background:#FFFEF8;padding:34px 0 0;text-align:center;display:flex;flex-direction:column;align-items:center}
.poster h1{font-family:"Big Shoulders Inline Display","Arial Narrow",Impact,sans-serif;font-weight:800;font-size:clamp(64px,18vw,130px);letter-spacing:.02em;line-height:.95;color:#1C8FCF;margin:0}
.poster h1 span{color:var(--btn)}
.sw-city{font-family:'Allura',cursive;font-size:clamp(50px,13.2vw,95px);line-height:1;margin:-10px 0 0;color:#C8102E}   /* same proportion to the wordmark as on Places we love (Hannah's pick) */

.row-st{display:flex;gap:clamp(22px,8vw,64px);margin-top:16px}
.row-st .st{width:clamp(22px,5.5vw,38px)}
.poster .intro{padding:26px 24px 30px;max-width:520px}
.poster .lede{margin-inline:auto}
.shore{display:block;width:100%;height:clamp(150px,34vw,220px)}

.req{color:var(--btn)}
.contact,.swcontact{display:grid;gap:6px}
.contact label,.swcontact label{font-size:15px;color:var(--ink-soft);margin-top:8px}
.err{color:#9A1B1B;background:#FBE9E7;padding:10px 14px;border-radius:3px;margin:0}
.soon{padding:28px 22px;background:var(--panel);border-radius:4px;margin-top:22px}
.sw-day-note{font-size:14px;color:var(--ink-soft)}
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.cal-nav button{width:44px;height:44px;border:0;border-radius:999px;background:none;font-size:22px;color:var(--ink);cursor:pointer}
.cal-nav button:disabled{opacity:.3;cursor:default}
.cal-nav button:focus-visible{outline:3px solid var(--btn)}
.cal-nav h3{margin:0}

.plan{margin-top:22px;display:flex;flex-direction:column;gap:14px}
.plan h2{font-family:var(--display);font-weight:400;font-size:clamp(26px,6vw,34px);margin:0}
.p-intro{max-width:56ch;color:var(--ink-soft);margin:0;white-space:pre-line}
.p-day{font-family:var(--display);font-size:20px;margin:14px 0 6px;color:var(--head)}
.stop{background:var(--panel);border-left:4px solid var(--sky);border-radius:3px;padding:10px 14px;margin-bottom:8px}
.stop p{margin:0}
.stop .l1{display:flex;align-items:baseline;gap:10px}
.stop .num{flex:none;width:24px;height:24px;border-radius:999px;background:var(--head);color:#fff;font-size:13px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;align-self:center}
.stop .t{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.stop strong{font-family:var(--display);font-weight:400;font-size:20px;flex:1;min-width:0;line-height:1.25}
.stop .l2{margin:4px 0 0 34px;font-size:15px;color:var(--ink-soft);display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}
.stop .nt{color:var(--ink)}
.stop .nt.fold{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:100%}
.stop .more{background:none;border:0;padding:0;font:inherit;font-size:14px;color:var(--btn);text-decoration:underline;cursor:pointer}
.stop .lk{display:inline-flex;gap:12px}
.stop a{color:var(--btn);font-weight:600}
.p-map{display:block;margin:0 0 8px;max-width:480px}
.p-map img{display:block;width:100%;height:auto;border-radius:3px;border:1px solid rgba(27,51,88,.2)}
.p-route{margin:0 0 10px;font-size:15px;color:var(--ink-soft)}
.p-route a{color:var(--btn);font-weight:600}
.reply{background:var(--panel);border-radius:4px;padding:20px;margin-top:10px;display:flex;flex-direction:column;gap:10px}
.reply .hint{margin:0}
.r-btns{display:flex;flex-wrap:wrap;gap:10px}
.btn.alt{background:none;color:var(--ink);border:1.5px solid var(--ink)}
.link{background:none;border:0;color:var(--ink-soft);text-decoration:underline;font:inherit;cursor:pointer;align-self:flex-start;padding:6px 0}
#r-form{display:flex;flex-direction:column;gap:8px}
#r-form[hidden]{display:none}
#r-form label{font-size:15px;color:var(--ink-soft)}
.who{font-size:14px;color:var(--ink-soft);margin:0}
.stay a,.about p a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}

.sitebar{max-width:680px;margin:-8px auto 14px;display:flex;justify-content:space-between;gap:16px;font-size:15px}.sitebar a{color:var(--ink);font-weight:600;text-decoration:none;padding:8px 0;border-bottom:2px solid transparent}.sitebar a:hover,.sitebar a:focus-visible{border-bottom-color:currentColor}

/* ShallWe™ (Legal, Oct 13, 2026): small raised TM after the name, same color as "We", plain font so it renders everywhere. */
.tm{font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:.2em;line-height:0;vertical-align:top;position:relative;top:.55em;margin-left:.06em;letter-spacing:0;color:var(--btn)}
.p-sent{margin:-4px 0 14px;font-size:14px;opacity:.75}

/* Oct 14 (Hannah: ShallWe and Places we love are one thing): the planner page wears the site's own header, menu, hero and footer (site.css + places.css);
   only the form keeps its narrow column. shallwe-plan.html still uses the rules above. */
body.swform{padding:0;font-size:17px}
.swform .swrap{max-width:680px;width:100%;box-sizing:border-box;margin:8px auto 64px;padding-inline:20px}
.swform .ghero .stay{margin:4px auto 0;color:var(--psoft);font-size:16px}
.swform .ghero .stay a{color:inherit}
.swform .ghero .tm{font-size:.2em}
.swform .wrap{max-width:var(--wrap)}

/* Oct 16 (Hannah): rounded, softer buttons */
.btn{border-radius:14px;box-shadow:0 1px 2px rgba(43,33,28,.2);transition:box-shadow .18s,transform .12s}
.btn:hover{box-shadow:0 4px 12px rgba(43,33,28,.2);transform:translateY(-1px)}
.btn.alt{box-shadow:none}

/* ---- ShallWe request, one question at a time (Hannah, Oct 16) ----
   Welcome screen = the hero with "Let's begin". Then one question per screen: Hannah's question as a short
   message, answers as full-width rows (a chosen one fills navy with a small Chicago star), a red progress
   bar with a star riding its end, the answers so far as pills, and "Shall we send it?" before sending. */
.swform .sw-begin{display:block;width:100%;max-width:380px;margin:18px auto 6px;font:inherit;font-size:18px;font-weight:600;color:#fff;background:linear-gradient(180deg,#D3223B,#C20F2B);border:0;border-radius:16px;min-height:58px;box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 10px 22px rgba(200,16,46,.3);cursor:pointer}
.swform .sw-begin[hidden]{display:none}
.swform .sw-begin:hover{transform:translateY(-1px)}
.swform.sw-on main>section.band,.swform.sw-done main>section.band{display:none}
.swform.sw-on footer.contact{display:none}
.swform.sw-on .swrap{max-width:480px;margin-top:0}
.swform.sw-on #f{gap:16px;margin-top:4px}
@media (max-width:700px){.swform.sw-on #f{min-height:calc(100svh - 150px)}}
.swform #f:not([hidden]){display:flex;flex-direction:column}
.swform .sw-bar{display:grid;grid-template-columns:44px 1fr 44px;align-items:center}
.swform .sw-mid{display:flex;flex-direction:column;align-items:center;gap:4px}
.swform .sw-circ{width:44px;height:44px;border-radius:50%;background:#fff;border:1px solid #DCE5EF;display:grid;place-items:center;padding:0;color:var(--ink);box-shadow:0 1px 2px rgba(27,51,88,.06);cursor:pointer}
.swform .sw-wm{font-family:"Big Shoulders Inline Display","Arial Narrow",Impact,sans-serif;font-weight:800;font-size:28px;letter-spacing:.02em;line-height:.95;color:#1C8FCF;text-align:center}
.swform .sw-wm span{color:#C8102E}
.swform .sw-wm sup{font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:.2em;line-height:0;vertical-align:top;position:relative;top:.55em;margin-left:.06em;letter-spacing:0;color:#C8102E}
.swform .sw-count{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);text-align:center}
.swform .sw-track{position:relative;height:5px;border-radius:5px;background:#D5E0EC;margin:2px 0}
.swform .sw-track i{position:absolute;left:0;top:0;height:100%;width:0;background:linear-gradient(90deg,#D9344B,#C8102E);border-radius:5px;transition:width .35s ease}
.swform .sw-track svg{position:absolute;top:-8px;left:0;width:16px;height:16px;fill:#C8102E;transform:translateX(-50%);transition:left .35s ease;filter:drop-shadow(0 1px 2px rgba(200,16,46,.35))}
.swform .sw-pills{display:flex;flex-wrap:wrap;gap:6px}
.swform .sw-pills:empty{display:none}
.swform .sw-pill{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:13px;font-weight:600;color:var(--ink);background:#fff;border:1px solid #D5E0EC;border-radius:999px;padding:5px 12px 5px 8px;min-height:34px;cursor:pointer}
.swform .sw-pill b{width:18px;height:18px;border-radius:50%;background:#C8102E;display:grid;place-items:center;flex:none}
.swform .sw-pill.more{padding:5px 12px;color:var(--ink-soft);cursor:default}
.swform #f fieldset[hidden],.swform #f .sw-review[hidden]{display:none}
.swform #f fieldset{display:flex;flex-direction:column;gap:14px}
.swform .sw-msg{display:flex;gap:12px;align-items:flex-start}
.swform .sw-av{width:38px;height:38px;border-radius:50%;background:#1C8FCF;color:#fff;font-family:var(--display);display:grid;place-items:center;flex:none;font-size:17px;box-shadow:0 0 0 3px #E8F0F8,0 0 0 4px #C5D8EA}
.swform .sw-hb{flex:1;min-width:0;background:#fff;border-radius:6px 22px 22px 22px;padding:14px 18px 13px;box-shadow:0 1px 2px rgba(27,51,88,.05),0 12px 28px rgba(27,51,88,.08);border:1px solid #E3EBF4}
.swform .sw-q{display:block;font-family:var(--display);font-size:24px;line-height:1.25;color:var(--ink)}
.swform .sw-hb .hint{margin:4px 0 0;font-size:15px;line-height:1.4}
/* answers as rows */
.swform.sw-on .chips{display:flex;flex-direction:column;gap:0;background:#fff;border-radius:22px;overflow:hidden;border:1px solid #E3EBF4;box-shadow:0 1px 2px rgba(27,51,88,.05),0 12px 28px rgba(27,51,88,.08)}
.swform.sw-on .chips label{display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;border-top:1px solid #EAF0F6;border-radius:0;padding:0 20px;min-height:46px;font-size:17px;background:none;color:var(--ink)}
.swform.sw-on .chips label:first-of-type{border-top:0}
.swform.sw-on .chips label small{font-size:14px;color:var(--ink-soft);margin-right:auto;margin-left:4px}
.swform.sw-on .chips label:hover{background:#F4F8FC}
.swform.sw-on .chips input:checked+label{background:var(--navy);color:#fff;font-weight:600}
.swform.sw-on .chips input:checked+label small{color:#CFE0F0}
.swform.sw-on .chips input:checked+label::before{content:none}
.swform.sw-on .chips input:checked+label::after{content:"";width:14px;height:14px;flex:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60'%3E%3Cpath fill='%23fff' d='M30 2L54.2 44H5.8ZM30 58L5.8 16H54.2Z'/%3E%3C/svg%3E") center/contain no-repeat}
.swform.sw-on .chips input:focus-visible+label{outline:3px solid var(--btn);outline-offset:-3px}
.swform.sw-on fieldset[data-step="4"] .chips label,.swform.sw-on fieldset[data-step="6"] .chips label,.swform.sw-on fieldset[data-step="9"] .chips label{min-height:42px}
/* calendar */
.swform.sw-on .cal{max-width:none;background:#fff;border:1px solid #E3EBF4;border-radius:22px;padding:14px 14px 12px;box-shadow:0 1px 2px rgba(27,51,88,.05),0 12px 28px rgba(27,51,88,.08)}
.swform.sw-on .grid button{background:none;font-size:17px;height:44px}
.swform.sw-on .grid button:hover{outline:0;background:#F1F6FB}
.swform.sw-on .grid button[aria-pressed=true]{background:var(--navy);color:#fff}
.swform.sw-on .calnote{font-size:14px;color:var(--ink-soft);text-align:center;margin:10px 0 0}
/* people */
.swform.sw-on .stepwrap{flex-direction:column;justify-content:center;gap:6px;background:#fff;border:1px solid #E3EBF4;border-radius:22px;padding:26px 10px 20px;box-shadow:0 12px 28px rgba(27,51,88,.08)}
.swform.sw-on .step{gap:22px;background:none}
.swform.sw-on .step button{width:56px;height:56px;border:1px solid #D5E0EC;background:#fff;font-size:28px;box-shadow:0 1px 2px rgba(27,51,88,.06)}
.swform.sw-on .step output{font-family:var(--display);font-size:52px;min-width:70px;text-align:center}
.swform .sw-ppl{font-size:15px;color:var(--ink-soft)}
/* text boxes */
.swform.sw-on #f input[type=text],.swform.sw-on #f textarea{font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1px solid #D0DCE8;border-radius:14px;padding:13px 16px;width:100%;box-sizing:border-box;min-height:52px;box-shadow:inset 0 1px 2px rgba(27,51,88,.05)}
.swform.sw-on #f textarea{min-height:80px;line-height:1.5}
.swform.sw-on #f input[type=text]:focus,.swform.sw-on #f textarea:focus{outline:none;border-color:#3B9FD0;box-shadow:0 0 0 4px rgba(59,159,208,.18)}
.swform.sw-on #f input#c-web{position:absolute;left:-9999px;width:1px;height:1px;min-height:0;padding:0;border:0}
.swform.sw-on .swcontact label,.swform.sw-on fieldset[data-step="9"] .hint label{font-size:13px;font-weight:600;letter-spacing:.03em;color:var(--ink-soft)}
.swform.sw-on fieldset[data-nobubble] legend{position:static;width:auto;height:auto;clip-path:none;font-family:var(--body);font-size:13px;font-weight:600;letter-spacing:.03em;color:var(--ink-soft);margin:6px 0 -6px}
.swform.sw-on fieldset[data-nobubble] .hint{font-size:14px}
/* review */
.swform .sw-review{display:flex;flex-direction:column;gap:16px}
.swform .sw-sum{background:#fff;border:1px solid #E3EBF4;border-radius:22px;padding:8px 20px;box-shadow:0 1px 2px rgba(27,51,88,.05),0 12px 28px rgba(27,51,88,.08)}
.swform .sw-row{display:flex;align-items:baseline;gap:8px;padding:6px 0;font-size:16px;border-top:1px solid #EEF3F8}
.swform .sw-row:first-child{border-top:0}
.swform .sw-row .k{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);font-weight:600;flex:none}
.swform .sw-row .dots{flex:1;min-width:10px;border-bottom:2px dotted #CBD7E4;transform:translateY(-4px)}
.swform .sw-row .v{font-weight:600;text-align:right;min-width:0;overflow-wrap:anywhere;max-width:58%}
.swform .sw-row .ch{font:inherit;font-size:13px;color:#1B6FA0;background:none;border:0;padding:4px 0 4px 6px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;flex:none;min-height:32px}
.swform .sw-review .go{align-items:stretch;gap:10px}
.swform .sw-review .go .btn{font-family:var(--body);font-size:18px;font-weight:600;border-radius:16px;min-height:58px;background:linear-gradient(180deg,#D3223B,#C20F2B);box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 10px 22px rgba(200,16,46,.3)}
.swform .sw-review .privline,.swform .sw-review .fine{text-align:center;margin:0 auto}
/* nav */
.swform .sw-nav{display:flex;flex-direction:column;gap:4px;margin-top:auto;padding-top:6px}
.swform .sw-next{font:inherit;font-size:18px;font-weight:600;color:#fff;background:linear-gradient(180deg,#D3223B,#C20F2B);border:0;border-radius:16px;min-height:58px;box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 10px 22px rgba(200,16,46,.3);cursor:pointer}
.swform .sw-next[hidden],.swform .sw-skip[hidden]{display:none}
.swform .sw-skip{font:inherit;font-size:15px;color:var(--ink-soft);background:none;border:0;min-height:44px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;text-align:center}
.swform .sw-next:focus-visible,.swform .sw-begin:focus-visible,.swform .sw-circ:focus-visible,.swform .sw-pill:focus-visible{outline:3px solid #1C8FCF;outline-offset:3px}
/* sent */
.swform .sw-sent:not([hidden]){display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;max-width:420px;margin:24px auto 40px}
.swform .sw-sent:focus{outline:none}
.swform .sw-wm-l{font-size:60px}
.swform .sw-disc{width:66px;height:66px;border-radius:50%;background:var(--navy);display:grid;place-items:center;box-shadow:0 0 0 6px #DCE8F3}
.swform .sw-disc svg{width:28px;height:28px;fill:#fff}
.swform .sw-sent h2{font-family:var(--display);font-weight:400;font-size:30px;margin:6px 0 0;color:var(--ink)}
.swform .sw-sent p{margin:0;font-size:17px;line-height:1.5;color:var(--ink-soft)}
.swform .sw-ghost{width:100%;font:inherit;font-size:17px;font-weight:600;color:var(--ink);background:#fff;border:1px solid #D5E0EC;border-radius:16px;min-height:54px;box-shadow:0 1px 2px rgba(27,51,88,.06);cursor:pointer;margin-top:8px}

/* ---- Three versions for testers to vote on (Hannah, Oct 16). Guests only ever see A. ---- */
.swform .sw-seg,.swform .sw-parts,.swform .sw-back2,.swform .sw-left{display:none}
.swform .sw-try:not([hidden]){display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px dashed #9FB3C8;border-radius:16px;padding:8px 10px 8px 14px;margin:0 auto 14px;max-width:480px;font-size:14px;color:var(--ink-soft)}
.swform .sw-try-l{font-weight:600;color:var(--ink);white-space:nowrap}
.swform .sw-try-v{display:inline-flex;border:1px solid #C5D3E3;border-radius:999px;overflow:hidden;margin-left:auto}
.swform .sw-try-v button{font:inherit;font-weight:600;font-size:14px;color:var(--ink);background:#fff;border:0;border-left:1px solid #C5D3E3;min-width:44px;min-height:38px;cursor:pointer}
.swform .sw-try-v button:first-child{border-left:0}
.swform .sw-try-v button[aria-pressed=true]{background:var(--navy);color:#fff}
.swform .sw-try-go{font:inherit;font-size:14px;font-weight:600;color:#fff;background:#C8102E;border:0;border-radius:999px;min-height:38px;padding:0 16px;cursor:pointer}
.swform .sw-try-go[hidden]{display:none}
.swform .sw-vote{max-width:420px;width:calc(100% - 32px);border:0;border-radius:22px;padding:22px;color:var(--ink);background:#fff;box-shadow:0 24px 60px rgba(27,51,88,.25)}
.swform .sw-vote::backdrop{background:rgba(27,51,88,.35)}
.swform .sw-vote h2{font-family:var(--display);font-weight:400;font-size:24px;margin:0 0 6px}
.swform .sw-vote p{margin:0 0 12px;font-size:15px;color:var(--ink-soft)}
.swform .sw-vote-pick{border:0;padding:0;margin:0 0 14px;display:flex;flex-direction:column;gap:8px}
.swform .sw-vote-pick label{display:flex;gap:12px;align-items:flex-start;border:1px solid #DCE5EF;border-radius:14px;padding:12px 14px;cursor:pointer;font-size:15px;line-height:1.35}
.swform .sw-vote-pick label:has(:checked){border-color:var(--navy);box-shadow:0 0 0 1.5px var(--navy)}
.swform .sw-vote-pick input{accent-color:#1B3358;margin-top:3px;width:18px;height:18px;flex:none}
.swform .sw-vote-pick b{font-family:var(--display);font-weight:400;font-size:18px;margin-right:4px}
.swform .sw-vote-why{display:block;font-size:13px;font-weight:600;color:var(--ink-soft);margin-bottom:6px}
.swform .sw-vote-why span{font-weight:400}
.swform .sw-vote textarea{width:100%;box-sizing:border-box;font:inherit;font-size:16px;border:1px solid #D0DCE8;border-radius:14px;padding:12px 14px;min-height:80px}
.swform .sw-vote-msg{margin:10px 0 0!important;color:var(--ink)!important}
.swform .sw-vote-b{display:flex;flex-direction:column;gap:4px;margin-top:14px}

/* B · Editorial: big question on the page, ten-segment bar, answer tiles, Back / Next at the bottom */
.swform.sw-vB .sw-track,.swform.sw-vB .sw-pills,.swform.sw-vB .sw-av,.swform.sw-vB .sw-circ,.swform.sw-vB #sw-skip{display:none}
.swform.sw-vB .sw-bar{grid-template-columns:1fr auto}
.swform.sw-vB .sw-mid{align-items:flex-start;gap:6px}
.swform.sw-vB .sw-count{text-align:left;font-size:12px}
.swform.sw-vB .sw-left{display:block;font-size:14px;color:var(--ink-soft);align-self:start;padding-top:6px}
.swform.sw-vB .sw-seg{display:grid;grid-template-columns:repeat(10,1fr);gap:4px}
.swform.sw-vB .sw-seg i{height:4px;border-radius:4px;background:#D9E3EE;display:block}
.swform.sw-vB .sw-seg i.d{background:var(--navy)}.swform.sw-vB .sw-seg i.n{background:#C8102E}
.swform.sw-vB .sw-hb{background:none;border:0;box-shadow:none;padding:4px 0 0;border-radius:0}
.swform.sw-vB .sw-q{font-size:34px;line-height:1.12;letter-spacing:-.01em}
.swform.sw-vB .sw-hb .hint{font-size:16px;margin-top:8px}
.swform.sw-vB.sw-on .chips{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:none;border:0;box-shadow:none;border-radius:0;overflow:visible}
.swform.sw-vB.sw-on .chips label{position:relative;border:1px solid #DCE5EF;border-radius:16px;background:#fff;min-height:56px;padding:12px 30px 12px 14px;font-size:16px;line-height:1.25;flex-wrap:wrap;justify-content:flex-start;box-shadow:0 1px 2px rgba(27,51,88,.04)}
.swform.sw-vB.sw-on .chips label:first-of-type{border-top:1px solid #DCE5EF}
.swform.sw-vB.sw-on .chips label small{margin:0;flex-basis:100%}
.swform.sw-vB.sw-on .chips input:checked+label{background:#fff;color:var(--ink);border-color:var(--navy);box-shadow:0 0 0 1.5px var(--navy),0 8px 18px rgba(27,51,88,.12)}
.swform.sw-vB.sw-on .chips input:checked+label small{color:var(--ink-soft)}
.swform.sw-vB.sw-on .chips input:checked+label::after{position:absolute;top:9px;right:9px;width:12px;height:12px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60'%3E%3Cpath fill='%23C8102E' d='M30 2L54.2 44H5.8ZM30 58L5.8 16H54.2Z'/%3E%3C/svg%3E")}
.swform.sw-vB.sw-on .cal{box-shadow:none;border-color:#DCE5EF}
.swform.sw-vB.sw-on .grid button{border-radius:12px}
.swform.sw-vB .sw-nav{flex-direction:row;align-items:center;justify-content:space-between;border-top:1px solid #E3EBF4;padding-top:14px}
.swform.sw-vB .sw-back2{display:block;font:inherit;font-size:16px;font-weight:600;color:var(--ink-soft);background:none;border:0;min-height:48px;padding:0 4px;cursor:pointer}
.swform.sw-vB .sw-next{border-radius:999px;min-height:52px;padding:0 32px;box-shadow:0 8px 18px rgba(200,16,46,.25)}
.swform.sw-vB .sw-sum{box-shadow:none}

/* C · Booklet: everything on one white card, a three-part progress bar, a round Back and a navy Next */
.swform.sw-vC.sw-on #f{background:#fff;border-radius:28px;padding:20px 18px 18px;box-shadow:0 1px 2px rgba(27,51,88,.05),0 20px 44px rgba(27,51,88,.12)}
.swform.sw-vC .sw-track,.swform.sw-vC .sw-pills,.swform.sw-vC .sw-av,.swform.sw-vC .sw-circ,.swform.sw-vC #sw-skip{display:none}
.swform.sw-vC .sw-bar{grid-template-columns:1fr}
.swform.sw-vC .sw-count{font-family:var(--display);font-size:15px;letter-spacing:0;text-transform:none;color:#C8102E}
.swform.sw-vC .sw-parts{display:grid;grid-template-columns:3fr 3fr 4fr;gap:6px}
.swform.sw-vC .sw-parts>div{display:flex;flex-direction:column;gap:6px}
.swform.sw-vC .sw-parts i{height:6px;border-radius:6px;background:#DCE5EF;display:block;overflow:hidden;position:relative}
.swform.sw-vC .sw-parts b{position:absolute;left:0;top:0;bottom:0;width:0;background:#C8102E;border-radius:6px;transition:width .35s ease}
.swform.sw-vC .sw-parts small{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#8494AA}
.swform.sw-vC .sw-parts .on small{color:var(--ink)}
.swform.sw-vC .sw-hb{background:none;border:0;box-shadow:none;padding:4px 0 0;border-radius:0}
.swform.sw-vC .sw-q{font-size:28px;line-height:1.15}
.swform.sw-vC.sw-on .chips{box-shadow:none;border:0;border-top:1px solid #EEF3F8;border-radius:0;margin:0 -18px}
.swform.sw-vC.sw-on .chips label{padding:0 22px;border-top-color:#EEF3F8}
.swform.sw-vC.sw-on .chips input:checked+label{background:#F1F5FA;color:var(--ink);box-shadow:inset 4px 0 0 var(--navy)}
.swform.sw-vC.sw-on .chips input:checked+label small{color:var(--ink-soft)}
.swform.sw-vC.sw-on .chips input:checked+label::after{content:none}
.swform.sw-vC.sw-on .cal{box-shadow:none;border:0;padding:4px 0}
.swform.sw-vC.sw-on .grid button[aria-pressed=true]{background:#C8102E}
.swform.sw-vC.sw-on .stepwrap{box-shadow:none;border:0;background:#F6F9FC}
.swform.sw-vC .sw-sum{box-shadow:none;border:0;padding:0;border-top:1px solid #EEF3F8;border-radius:0}
.swform.sw-vC .sw-nav{flex-direction:row;align-items:center;gap:12px;border-top:1px solid #EEF3F8;margin:0 -18px;padding:14px 16px 0}
.swform.sw-vC .sw-back2{display:grid;place-items:center;flex:none;width:52px;height:52px;border-radius:50%;border:1px solid #DCE5EF;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='16' viewBox='0 0 10 16'%3E%3Cpath d='M8 2L2 8l6 6' fill='none' stroke='%231B3358' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center no-repeat;font-size:0;color:transparent;cursor:pointer}
.swform.sw-vC .sw-next{flex:1;background:var(--navy);box-shadow:none;border-radius:16px;min-height:52px}
.swform.sw-vC .sw-next[hidden]{display:none}

/* The plan request in the ShallWe page's squares (Hannah, Nov 4, 9:27pm). Uses places.css's .gmood / .gstep / .gpill; these are the extras. */
.swform.sw-on .swrap{max-width:760px}
.swq{display:block}
.swq .gstep{gap:8px}
.swq .gmood-q:focus{outline:none}
.swq .gpills:empty{display:none}
.swq #q-pills{margin:0 0 6px}
.swq .gmood-grid.sm .gmood{min-height:0;padding:14px 14px 12px}.swq .gmood-grid.sm .gmood .t{font-size:17px}
.swq-box{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;background:#fff;border:1.5px solid var(--pline);border-radius:16px;padding:12px 16px;margin-top:4px;color:var(--pink)}
.swq-box label{font-size:15px;line-height:1.4;width:100%}
.swq-box input{width:100%;font:inherit;font-size:16px;padding:12px 14px;border:1.5px solid var(--pline);border-radius:12px;background:#fff;color:var(--ink)}
.swq-box .step{display:flex;align-items:center;border:1.5px solid var(--pline);border-radius:999px;background:#fff}
.swq .opt{font-size:13px;color:var(--psoft);font-weight:400}
.swq-cal .cal{background:#fff;border:1.5px solid var(--pline);border-radius:16px;padding:12px 14px}
.swq-cal .calnote{margin:8px 0 0;font-size:14px;color:var(--psoft)}
.swq-more{display:flex;flex-direction:column;gap:6px;background:#fff;border:1.5px solid var(--pline);border-radius:16px;padding:14px 16px}
.swq-more .swq-h{margin:8px 0 0;font-size:15px;font-weight:600;color:var(--pink)}.swq-more .swq-h:first-child{margin-top:0}
.swq-more .gpill{font-size:14.5px;padding:8px 13px}
.swq-more textarea{font:inherit;font-size:16px;min-height:96px;padding:12px 14px;border:1.5px solid var(--pline);border-radius:12px;resize:vertical;color:var(--ink)}
.swq .swcontact{background:#fff;border:1.5px solid var(--pline);border-radius:16px;padding:6px 16px 16px}
.swq .swcontact input{font:inherit;font-size:16px;padding:12px 14px;border:1.5px solid var(--pline);border-radius:12px;width:100%}
.swq-sum{display:flex;flex-direction:column;background:#fff;border:1.5px solid var(--pline);border-radius:16px;overflow:hidden}
.swq-row{font:inherit;text-align:left;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"l c" "v c";gap:2px 12px;align-items:center;background:none;border:0;border-top:1px solid var(--pline);padding:12px 16px;cursor:pointer;color:var(--pink)}
.swq-row:first-child{border-top:0}.swq-row:hover{background:#F4F8FC}
.swq-l{grid-area:l;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--psoft)}
.swq-v{grid-area:v;font-size:16px;line-height:1.35}.swq-v.none{color:var(--psoft)}
.swq-c{grid-area:c;font-size:14px;text-decoration:underline;text-underline-offset:3px}
.swq-review .privline,.swq-review .fine{font-size:14px;color:var(--psoft);margin:10px 0 0;text-align:center}
.swq .err{margin:6px 0 0}
.swform.sw-on .swq-box .step button{width:40px;height:40px;border:0;box-shadow:none;font-size:22px;color:var(--pink)}
.swform.sw-on .swq-box .step output{font-size:22px;min-width:40px;color:var(--pink)}
.swq-review{display:flex;flex-direction:column;gap:12px}
.swq-review .swcontact,.swq-review .swq-more{margin:0}
.sw-top{display:inline-block;font-size:30px;text-decoration:none;text-align:left;padding:6px 0}
