/* Letters, Share ideas and thank-you pages: clear reading and contribution routes.
   Loaded only on those pages, before voice.css. Colour tokens are defined in voice.css. */
/* ---------- Shared hero for the two destinations ---------- */
.invite-hero{max-width:760px;margin-bottom:22px}
.invite-kicker{display:flex;align-items:center;gap:12px;margin:0 0 14px}
.invite-kicker .eyebrow{margin:0}
.hero-medallion{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:50%;
  background:var(--voice-letters);box-shadow:inset 0 -2px 0 rgba(0,0,0,.14),0 6px 14px -8px var(--voice-shadow)}
.hero-medallion svg{width:27px;height:27px;fill:none;stroke:var(--voice-cream);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.hero-medallion .v-body{fill:var(--voice-letters)}
.hero-medallion .v-sheet{fill:var(--voice-cream);stroke:none;transform:translateY(-5px)}
.hero-medallion .v-sheet-lines{stroke:var(--voice-letters);stroke-width:1.3;transform:translateY(-5px)}
.ideas-invite .hero-medallion{background:var(--voice-ideas)}
.ideas-invite .hero-medallion svg{stroke:var(--ink)}
.ideas-invite .hero-medallion .v-glass{fill:#fff4c2}
.invite-title{font-size:clamp(36px,4.4vw,56px)!important;letter-spacing:-1.4px;text-wrap:balance;margin-bottom:12px}
.invite-lead{font-size:19px!important;line-height:1.5;color:var(--ink);max-width:40ch;text-wrap:pretty;margin-bottom:12px}
.invite-lead strong{color:var(--ink)}
.official-line{font-size:15px!important;color:var(--ink);margin:0 0 10px;padding-left:12px;border-left:3px solid #315641}
.official-line a{font-weight:700}
.official-note{margin:20px 0 0;padding:14px 16px;border-radius:10px;background:var(--theme-soft,#edf1e9);border-left:4px solid #315641;font-size:15px;color:var(--ink)}
.official-note a{font-weight:700}
.format-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:15px!important;margin:0}
.format-line a{display:inline-flex;align-items:center;gap:7px;min-height:44px;font-weight:700}
@media (max-width:700px){.format-line{gap:0 18px}.format-line>span[aria-hidden]{display:none}}
@media (max-width:430px){.format-line{gap:0 16px}.format-line svg{display:none}.format-line a{min-height:40px}}
.format-line svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* Below the letter feed: open writing form with guidelines alongside on desktop.
   Phones: writing form followed by guidelines. */
.letters-invite{max-width:1180px}
.invite-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);grid-template-rows:auto;
  grid-template-areas:"form aside";gap:22px 36px;align-items:start;margin-top:48px;padding-top:32px;border-top:1px solid var(--line)}
.invite-layout>.invite-hero{grid-area:hero;margin:0;padding-top:8px}
.invite-layout>.feedback-form{grid-area:form}
.invite-layout>.voice-quote{grid-area:quote}
.invite-layout>.review-note{grid-area:aside}
@media (max-width:900px){
  .invite-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"form" "aside";gap:22px}
}
.letters-invite>.invite-hero{max-width:900px;margin-bottom:24px}
.letters-invite .invite-lead{max-width:65ch}
.letters-invite #letters{margin-top:0;padding-top:24px}
.letters-board-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.letters-board-heading h2{margin:0;font:700 22px/1.3 Arial,Helvetica,sans-serif;letter-spacing:0}
.letters-invite .letters-board-heading{flex-direction:row;align-items:center}
.letters-invite #letters-list{max-width:850px}
.letters-invite #letters>.eyebrow{display:none}
.letters-invite #letters-message{font-size:14px;color:var(--muted);margin-bottom:12px}
.letter-write-link{border:1px solid var(--line);padding:8px 14px;min-height:44px}
@media(max-width:700px){
  .letters-invite>.invite-hero{margin-bottom:14px}
  .letters-invite .invite-kicker{display:none}
  .letters-invite .invite-title{margin-bottom:8px}
  .letters-invite .invite-lead{font-size:17px!important;margin-bottom:10px}
  .letters-invite #letters{padding-top:18px}
}
/* Smallest phones: keep the official-response line on the first screen (J3 before J4). */
@media (max-width:360px){
  .letters-invite{padding-top:16px}
  .letters-invite .invite-kicker{display:none}
  .letters-invite .invite-title{font-size:30px!important;letter-spacing:-.8px;margin-bottom:8px}
  .letters-invite .invite-lead{font-size:16px!important;margin-bottom:8px}
  .official-line{font-size:14px!important}
}
/* Social proof: a real (published) voice, not a count. */
.voice-quote{margin:0;padding:18px 20px 16px;border:1px solid var(--voice-letters-line);border-left:4px solid var(--voice-letters);background:var(--theme-surface,#fffaf6);border-radius:12px}
.voice-quote-kicker{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--theme-warm-text,#8a3a20);margin-bottom:6px}
.voice-quote blockquote{margin:0}
.voice-quote blockquote p{font-family:Georgia,'Times New Roman',serif;font-size:19px;line-height:1.45;color:var(--ink);margin:0 0 8px;text-wrap:pretty}
.voice-quote-by{font-size:14px;color:var(--theme-readable,#4b625c);margin:0}
.voice-quote a{font-weight:700}
@media (max-width:700px){
  .invite-kicker{margin-bottom:10px}
  .hero-medallion{width:34px;height:34px}
  .hero-medallion svg{width:21px;height:21px}
  .invite-title{font-size:36px!important;letter-spacing:-1px}
  .letters-invite{padding-top:26px}
  .invite-lead{font-size:18px!important}
  .voice-quote{padding:12px 14px 12px 16px}
  .voice-quote blockquote p{font-size:17px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
}

/* ---------- Letters form: write first, then choose, then send ---------- */
.letters-invite .feedback-layout{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
.letter-step+.letter-step{margin-top:30px;padding-top:26px;border-top:1px solid var(--line)}
label.step-title{display:flex!important;margin-bottom:12px!important}
.step-title{display:flex;align-items:center;gap:10px;font:700 21px/1.3 Arial,Helvetica,sans-serif!important;letter-spacing:0!important;margin:0 0 14px!important}
.step-num{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:var(--voice-letters);color:#fff;font-size:15px}
.step-intro{font-size:16px;margin:-4px 0 16px;color:var(--body)}

.starter-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.starter-hint{flex-basis:100%;margin:0 0 2px;font-size:14px;color:var(--theme-readable,#4b625c)}
.starter{font:700 14px/1.3 Arial,Helvetica,sans-serif;color:var(--theme-warm-text,#6e2a15);background:var(--theme-warm-surface,var(--voice-letters-soft));border:1px solid var(--voice-letters-line);border-radius:999px;padding:8px 13px;min-height:40px;cursor:pointer;text-align:left}
.starter:hover{background:var(--theme-warm-surface,#ffe6d6)}
.starter:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.starter-static{font-size:15px;color:var(--theme-readable,#4b625c);margin:0 0 12px}
@media (max-width:700px){
  .starter-chips{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-inline:22px;margin-inline:-22px;padding:2px 22px 6px;scrollbar-width:none}
  .starter-chips::-webkit-scrollbar{display:none}
  .starter-hint{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .starter{flex:none;scroll-snap-align:start;white-space:nowrap}
}

.letters-invite .feedback-field textarea{min-height:0;field-sizing:content;min-block-size:7.5lh;max-block-size:70vh;font-size:17px;line-height:1.6;border-radius:10px;border:1.5px solid #8ea08f;padding:14px 16px}
.letters-invite .feedback-field textarea:focus{border-color:var(--voice-letters);outline:3px solid #f3c7b3;outline-offset:0}
.field-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 14px}
.draft-status{display:inline-flex;align-items:center;gap:8px;color:var(--theme-readable,#2f6b4f);font-weight:700}
.draft-clear{font:inherit;font-size:14px;color:var(--teal);text-decoration:underline;background:none;border:0;padding:6px 2px;cursor:pointer;min-height:32px}
.draft-status button{font:inherit;font-weight:400;color:var(--teal);text-decoration:underline;background:none;border:0;padding:6px 2px;cursor:pointer;min-height:32px}
.dictation-tip{display:flex;gap:8px;align-items:flex-start;font-size:14px;color:var(--theme-readable,#4b625c);margin:10px 0 0}
.dictation-tip svg{flex:none;width:18px;height:18px;margin-top:2px;fill:none;stroke:var(--theme-readable,#4b625c);stroke-width:1.7;stroke-linecap:round}
.step-next{margin-top:16px;border:0;width:100%;font-size:16px;cursor:pointer;justify-content:center}
.write-ideas{margin:10px 0 0;font-size:15px}
.write-ideas summary{cursor:pointer;font-weight:700;color:var(--teal);min-height:32px;display:flex;align-items:center}
.write-ideas ul{margin:6px 0 4px;padding-left:20px;color:var(--theme-readable,#435a55)}
.write-ideas li{margin-bottom:4px}
.step-error{color:var(--theme-warm-text,#8a2413);font-weight:700;font-size:15px;margin:10px 0 0}

/* Choices: plain headline first, the exact consent statement beneath (unchanged wording). */
.choice-cards{display:grid;gap:12px}
.choice-card{display:grid!important;grid-template-columns:28px minmax(0,1fr);gap:4px 12px;align-items:start;margin:0!important;padding:16px 16px 16px 14px!important;
  border:1.5px solid var(--theme-border,#cfd8cc)!important;border-radius:14px;background:var(--theme-surface,#fff);cursor:pointer}
.choice-card input{width:24px!important;height:24px!important;margin:1px 0 0!important;accent-color:#2f6b4f}
/* A chosen card must look stronger than an unchosen one in both appearances. */
.choice-card:has(input:checked){border-color:var(--theme-readable,#2f6b4f)!important;background:var(--theme-soft,#f3f8f1)}
.choice-card:has(input:focus-visible){outline:3px solid var(--teal);outline-offset:2px}
.choice-title{display:flex!important;flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:17px!important;margin-bottom:6px!important;color:var(--ink)}
.choice-tag{font-style:normal;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:#edf1e9;color:#355e4a}
.choice-card.is-required .choice-tag{background:#fde6db;color:#7a2d16}
.choice-text{display:block;font-size:14.5px;line-height:1.6;color:var(--theme-readable,#435a55)}
.choice-extra{margin:0 0 4px 42px}
.choice-extra .field-help{margin-top:6px}
/* Quoting builds on publication, so it sits beneath it rather than as a peer card. */
.quote-choice{padding-left:14px;border-left:3px solid var(--theme-border,#cfd8cc)}
.quote-choice:has(input:checked){border-left-color:var(--theme-readable,#2f6b4f)}
.quote-choice .choice-card{padding:14px 14px 14px 12px!important}
.quote-choice .choice-title{font-size:16px!important}
@media (max-width:430px){
  .choice-extra{margin-left:16px}
  .quote-choice{padding-left:10px}
}

.official-inline{display:flex;gap:10px;align-items:flex-start;margin:18px 0 0;padding:14px 16px;border-radius:10px;background:var(--theme-soft,#edf1e9);border-left:4px solid #315641;font-size:15px;line-height:1.55;color:var(--ink)}
.official-inline svg{flex:none;width:20px;height:20px;margin-top:2px;fill:none;stroke:var(--teal,#315641);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Staged reveal (added by letters.js only; without scripts every step is visible).
   The entrance plays only when a visitor presses Next: on page load nothing was hidden,
   and a load-time entrance kept WebKit's layout moving while the page scrolled. */
.is-staged .letter-step.is-waiting{display:none}
@media (prefers-reduced-motion:no-preference){
  .is-revealing #step-choose,.is-revealing #step-send{transition:opacity 260ms ease,transform 260ms cubic-bezier(.2,.8,.2,1)}
  @starting-style{.is-revealing #step-choose,.is-revealing #step-send{opacity:0;transform:translateY(8px)}}
}

/* ---------- Ideas page ---------- */
.ideas-invite .invite-title{font-size:clamp(36px,5vw,56px)!important}
.kind-cards{border:0;padding:0;margin:0 0 22px;min-width:0}
.kind-cards legend{font-weight:700;color:var(--ink);margin-bottom:10px;font-size:17px}
.kind-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.kind-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:14px;border:1.5px solid var(--theme-border,#cfd8cc);border-radius:14px;background:var(--theme-surface,#fff);cursor:pointer;min-height:64px;font-weight:700;color:var(--ink);line-height:1.3}
.kind-card input{position:absolute;top:10px;right:10px;width:20px;height:20px;margin:0;accent-color:#7a5a08;cursor:pointer}
.kind-card{padding-right:38px!important}
.kind-card .kind-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--theme-soft,#f1f4ef)}
.kind-card .kind-icon svg{width:21px;height:21px;fill:none;stroke:var(--ink);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.kind-card small{display:block;font-weight:400;font-size:13px;color:var(--theme-readable,#4b625c);margin-top:2px}
.kind-card:has(input:checked){border-color:var(--theme-warm-text,#8a6a10);background:var(--theme-soft,var(--voice-ideas-soft));box-shadow:inset 0 0 0 1px var(--theme-warm-text,#8a6a10)}
.kind-card:has(input:checked) .kind-icon{background:var(--voice-ideas)}
.kind-card:has(input:checked) .kind-icon svg{stroke:#143936}
.kind-card:has(input:focus-visible){outline:3px solid var(--teal);outline-offset:2px}
.kind-date{display:inline-block;margin-top:4px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#7a2d16;background:#fde6db;border-radius:999px;padding:2px 8px;max-width:100%;white-space:normal}
.kind-more{margin-top:10px}
.kind-more summary{cursor:pointer;font-size:15px;min-height:40px;display:flex;align-items:center;color:var(--teal);font-weight:700}
.kind-more .kind-grid{margin-top:8px}
.kind-select-field[hidden]{display:none!important}
/* Phones: a compact 2 × 2 choice so the message box stays close. */
@media (max-width:540px){
  .kind-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .kind-card{grid-template-columns:1fr;align-content:start;gap:6px;padding:11px 11px 12px;min-height:0;font-size:14.5px}
  .kind-card .kind-icon{width:30px;height:30px}
  .kind-card .kind-icon svg{width:18px;height:18px}
  .kind-card small{font-size:12px;margin-top:1px}
  .kind-date{margin-top:3px;font-size:10.5px}
  .ideas-invite .invite-lead{font-size:17px!important}
  .ideas-letter-route{font-size:15px}
}

/* ---------- Sent page ---------- */
.sent-page{max-width:760px;padding-block:30px 72px}
.sent-kicker{display:flex;align-items:center;gap:12px;margin:0 0 12px}
.sent-kicker .eyebrow{margin:0;color:var(--theme-readable,#2f6b4f)}
.sent-check{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#2f6b4f}
.sent-check svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
@media (prefers-reduced-motion:no-preference){
  .sent-check path{stroke-dasharray:40;stroke-dashoffset:40;animation:sent-draw 520ms 200ms ease-out forwards}
  @keyframes sent-draw{to{stroke-dashoffset:0}}
}
.sent-page h1{font-size:clamp(32px,4.6vw,52px);letter-spacing:-1.2px;text-wrap:balance;margin-bottom:10px}
.sent-lead{font-size:17px;color:var(--ink);margin-bottom:0}
.next-card{margin-top:20px!important}
.next-card{margin-top:26px;padding:24px;border-radius:18px;border:1.5px solid #2f6b4f;background:var(--theme-soft,#f3f8f1)}
.next-card h2{font:700 23px/1.3 Arial,Helvetica,sans-serif;letter-spacing:0;margin:0 0 8px}
.next-card .next-eyebrow{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--theme-readable,#2f6b4f);margin:0 0 6px}
.next-steps{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:12px}
.next-steps li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:12px;align-items:start}
.next-steps .n{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#2f6b4f;color:#fff;font-weight:700}
.next-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.next-actions .button{gap:10px}
.button.quiet{background:var(--theme-surface,#fff);color:var(--ink);border:1.5px solid #8ea08f}
.copy-status{font-size:14px;font-weight:700;color:var(--theme-readable,#2f6b4f);min-height:1.5em;margin:6px 0 0}
.share-card{margin-top:18px;padding:22px 24px;border-radius:18px;border:1.5px solid var(--voice-letters-line);background:var(--theme-warm-surface,var(--voice-letters-soft))}
.share-card h2{font:700 20px/1.3 Arial,Helvetica,sans-serif;letter-spacing:0;margin:0 0 6px}
.share-card p{margin-bottom:12px}
.reminder-line{margin:16px 0 0;font-size:15px;color:var(--ink)}
.reminder-line a{font-weight:700}
.sent-more{margin-top:22px;font-size:15px}
.sent-more a{font-weight:700}
.sent-honest{font-size:14px;color:var(--theme-readable,#4b625c);margin-top:28px;border-top:1px solid var(--line);padding-top:16px}

.linkish{font:inherit;color:var(--teal);text-decoration:underline;background:none;border:0;padding:0;cursor:pointer}
#copy-fallback:not(.sr-only){display:block;width:100%;min-height:140px;margin-top:10px;padding:12px;border:1px solid #8ea08f;border-radius:8px;font:15px/1.5 Arial,sans-serif}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Returning after Send when no confirmation page followed (until a form redirect exists). */
.sent-return{margin:0 0 22px;padding:16px 18px;border-radius:12px;border:1.5px solid #2f6b4f;background:var(--theme-soft,#f3f8f1)}
.sent-return p{font-size:15px;margin:0 0 8px;color:var(--ink)}
.sent-return .next-actions{margin-top:10px}
/* The calendar reminder sits above #send-expectations, whose negative top margin would otherwise overlap it. */
.step-reminder{margin-bottom:24px}
.sent-return:focus{outline:3px solid var(--teal);outline-offset:3px}
.sent-return:focus:not(:focus-visible){outline:none}

/* Letters lead with the contributor's own words. Source and reuse tools remain
   outside the full-story disclosure and keep their complete attribution. */
.letters-invite .letter-card .letter-excerpt{margin-block:12px 8px;line-height:1.55}
.letters-invite .letter-card .letter-source{margin-block:8px 0;padding-block:8px 0;border-bottom:0;border-top:1px solid var(--line)}
.letters-invite .letter-card .letter-source p{margin-bottom:0}
.letters-invite .letter-card .letter-source-actions{gap:0 20px}
.letters-invite .letter-card .letter-permalink{display:inline-flex;align-items:center;min-height:44px}
.letters-invite .letter-card .letter-story{margin-block:4px 8px}
@media(max-width:700px){
  .letters-invite .letter-card{padding:18px}
  .letters-invite .letter-card .suggestion-meta{margin-block:6px 0;gap:4px 14px}
  .letters-invite .letter-card .letter-excerpt{font-size:16px}
  .letters-invite .letter-card .letter-removal{display:inline-flex;align-items:center;min-height:44px;margin-top:4px;font-size:14px}
}
