/* Unlock Integrations v9.1 polish: Contact, policies, sitemap. Builds on v7-base.css and its shared tokens
   (--v7-h1/h2/h3, --v7-space / --v7-space-tight, --v7-tile*); see design/v91-polish.md. Voice and the
   no-bent-lines rule from design/v8-human-pass.md and design/v9-balance.md still apply.
   Loads last on /contact/, /privacy-policy/, /terms/, /cookie-policy/, /accessibility/, /sitemap/.
   Overrides the older contact (site.css, flow-v6.css) and reading-room (legal-v1*.css) styles.
   Icons sit in soft tiles; lines are straight 1px rules only. No mono labels, no hooks. */

/* ---------- Shared ---------- */
/* Small tertiary text on paper needs a touch more contrast than --v7-ink-3 gives (AA at 13-14px). */
.unlock-site { --v7f-muted:#56645e; }
.v7-on-paper { background:var(--v7-paper); }
.unlock-site :is(.v7-on-paper, .v7l-head) :focus-visible { outline:2px solid var(--v7-green); outline-offset:3px; }
.unlock-site :is(.v7c-page, .v7l-head) .crumbs { margin:0 0 clamp(28px, 4vw, 48px); gap:10px; color:var(--v7f-muted); font-size:13.5px; }
.unlock-site :is(.v7c-page, .v7l-head) .crumbs a { color:inherit; text-decoration:underline; text-decoration-color:transparent; text-underline-offset:4px; transition:text-decoration-color .2s, color .2s; }
.unlock-site :is(.v7c-page, .v7l-head) .crumbs a:hover { color:var(--v7-ink-text); text-decoration-color:currentColor; }

/* Icon tile: the shared shape (base tokens), green at ~10% on paper. Sizes come only from --v7-tile*. */
.v7f-tile { --tile:var(--v7-tile); display:inline-grid; place-items:center; flex:none; width:var(--tile); height:var(--tile); border-radius:var(--v7-tile-r); background:rgba(24,103,78,.1); color:var(--v7-green); }
.v7f-tile svg { width:var(--v7-tile-icon); height:var(--v7-tile-icon); }

/* Tap targets: small inline links get at least 24px of height without changing how they look.
   Vertical padding on an inline box widens its hit area but not the line it sits on. */
.unlock-site :is(.v7c-next__more, .v7c-form__foot p, .v7c-help, .v7l-article :is(p, li, td), .v7l-more p, .v7l-index__intro p) a,
.unlock-site.page-contact .faq .lede a { padding-block:4px; }
/* Breadcrumb links are flex items (block boxes), so the extra height is taken back with a matching margin. */
.unlock-site :is(.v7c-page, .v7l-head) .crumbs a { padding-block:4px; margin-block:-4px; }

/* ---------- Contact ---------- */
.v7c-page { padding-block:var(--v7-space-tight); color:var(--v7-ink-text); }
.v7c-grid { display:grid; grid-template-columns:minmax(0, 30rem) minmax(0, 1fr); grid-template-areas:"intro form" "photo form" "include form" ". form"; grid-template-rows:auto auto auto 1fr; gap:0 clamp(48px, 7vw, 112px); align-items:start; }
.v7c-intro { grid-area:intro; }
.unlock-site .v7c-photo { grid-area:photo; margin:36px 0 0; aspect-ratio:16 / 9; }
.v7c-photo picture { display:block; height:100%; }
.v7c-include { grid-area:include; margin-top:40px; }
.v7c-formwrap { grid-area:form; }
.unlock-site .v7c-intro h1 { margin:0; max-width:13ch; color:var(--v7-ink-text); font:var(--v7-h1); letter-spacing:-.035em; word-spacing:.04em; }
.unlock-site .v7c-intro .v7c-lede { margin:24px 0 0; max-width:30em; color:var(--v7-ink-text); font-size:clamp(17px, 1.35vw, 19px); line-height:1.6; letter-spacing:-.008em; }
.unlock-site .v7c-include h2 { margin:0 0 18px; color:var(--v7-ink-text); font:var(--v7-h3); letter-spacing:-.015em; }

/* Short icon items: tile, a bold title, one line. A dense list, so the small tile. */
.v7f-items { display:grid; gap:16px; margin:0; padding:0; list-style:none; }
.v7f-items li { display:flex; align-items:center; gap:16px; }
.v7f-items .v7f-tile { --tile:var(--v7-tile-sm); }
.v7f-items li > span:last-child { display:grid; gap:2px; color:var(--v7-ink-2); font-size:15px; line-height:1.45; }
.unlock-site .v7f-items strong { color:var(--v7-ink-text); font-weight:600; font-size:15.5px; }

/* What happens next: four icon steps joined by straight segments that stop at each tile. */
.v7c-next { padding-block:var(--v7-space-tight); background:var(--v7-paper-2); color:var(--v7-ink-text); }
.unlock-site .v7c-next h2 { margin:0 0 clamp(32px, 4vw, 52px); color:var(--v7-ink-text); font:var(--v7-h2); letter-spacing:-.035em; }
.v7c-steps { --gap:32px; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:var(--gap); margin:0; padding:0; list-style:none; }
.v7c-steps li { position:relative; padding-right:clamp(0px, 1.5vw, 24px); }
.v7c-steps li:not(:last-child)::after { content:""; position:absolute; top:calc(var(--v7-tile) / 2); left:calc(var(--v7-tile) + 10px); right:calc(10px - var(--gap)); height:1px; background:#b9c6bb; }
.unlock-site .v7c-steps h3 { margin:22px 0 0; color:var(--v7-ink-text); font:var(--v7-h3); letter-spacing:-.01em; }
.unlock-site .v7c-steps p { max-width:28ch; margin:8px 0 0; color:var(--v7-ink-2); font-size:15px; line-height:1.55; }
.unlock-site .v7c-next__more { display:block; margin:clamp(36px, 4vw, 56px) 0 0; padding-top:24px; border-top:1px solid var(--v7-line-light); color:var(--v7-ink-2); font-size:15px; line-height:1.5; }
/* Inline icon, so on phones the text wraps beside it instead of dropping below it. */
.v7c-next__more svg { display:inline-block; width:20px; height:20px; margin-right:8px; vertical-align:-5px; color:var(--v7-green); }
.unlock-site .v7c-next__more a { color:var(--v7-green); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.unlock-site .v7c-next__more a:hover { text-decoration-thickness:2px; }

/* The form: one calm, framed panel. */
.unlock-site .v7c-form { display:grid; gap:30px; margin:0; padding:clamp(22px, 3.2vw, 44px); border:1px solid var(--v7-line-light); border-radius:var(--v7-r-panel); background:#fbfbf8; color:var(--v7-ink-text); scroll-margin-top:110px; }
.unlock-site .v7c-req { margin:0 0 -8px; color:var(--v7f-muted); font-size:14px; line-height:1.5; }
.v7c-form i { color:var(--v7-green); font-style:normal; }
.v7c-group { min-width:0; margin:0; padding:0; border:0; }
.v7c-group legend, .v7c-field > span { display:block; padding:0; margin:0 0 10px; color:var(--v7-ink-text); font:600 15px/1.4 var(--v7-sans); letter-spacing:-.005em; }
.v7c-group legend small, .v7c-field > span small { margin-left:4px; color:var(--v7f-muted); font:400 14px/1 var(--v7-sans); }
.v7c-fields { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:22px 20px; }
.v7c-field { display:block; min-width:0; margin:0; }

.unlock-site .v7c-form :is(input[type="text"], input[type="email"], select, textarea) {
  display:block; width:100%; min-height:52px; margin:0; padding:0 16px; border:1px solid #849089; border-radius:var(--v7-r-control);
  background:#fff; color:var(--v7-ink-text); font:400 16px/1.4 var(--v7-sans); box-shadow:none; transition:border-color .2s, box-shadow .2s; }
.unlock-site .v7c-form .v7c-field textarea { min-height:176px; padding:14px 16px; line-height:1.6; resize:vertical; }
.unlock-site .v7c-form .v7c-field select { appearance:none; -webkit-appearance:none; padding-right:44px; cursor:pointer;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2318674e' stroke-width='1.5'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E") no-repeat right 16px center / 16px 16px; }
.unlock-site .v7c-form :is(input, select, textarea)::placeholder { color:#66736d; opacity:1; }
.unlock-site .v7c-form :is(input[type="text"], input[type="email"], select, textarea):hover { border-color:var(--v7-ink-2); }
.unlock-site .v7c-form :is(input[type="text"], input[type="email"], select, textarea):focus { outline:2px solid var(--v7-green); outline-offset:2px; border-color:var(--v7-green); box-shadow:none; }
.unlock-site .v7c-form :is(input[type="text"], input[type="email"], textarea):user-invalid { border-color:#b3392c; }

/* Choice chips: a visible box (checkbox) or ring (radio) so the control type is clear. */
.v7c-chips { display:flex; flex-wrap:wrap; gap:8px; }
.v7c-chips label { position:relative; display:block; cursor:pointer; }
.v7c-chips input { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; }
.v7c-chips span { display:inline-flex; align-items:center; gap:10px; min-height:44px; padding:10px 15px 10px 13px; border:1px solid var(--v7-line-light); border-radius:var(--v7-r-control);
  background:#fff; color:var(--v7-ink-2); font:500 14.5px/1.3 var(--v7-sans); transition:border-color .2s, background-color .2s, color .2s; }
.v7c-chips span::before { content:""; flex:none; width:15px; height:15px; border:1.5px solid #849089; border-radius:3px; background:#fff center / 11px 11px no-repeat; transition:background-color .2s, border-color .2s; }
.v7c-chips--quest span::before { border-radius:50%; }
.v7c-chips label:hover span { border-color:#849089; color:var(--v7-ink-text); }
.v7c-chips input:checked + span { border-color:var(--v7-green); background:#e6f2ec; color:var(--v7-ink-text); box-shadow:inset 0 0 0 .5px var(--v7-green); }
.v7c-chips--systems input:checked + span::before { border-color:var(--v7-green); background-color:var(--v7-green);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23fff' stroke-width='1.8'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-5'/%3E%3C/svg%3E"); }
.v7c-chips--quest input:checked + span::before { border-color:var(--v7-green); background:radial-gradient(circle, var(--v7-green) 0 3.6px, #fff 4.2px); }
.v7c-chips input:focus-visible + span { outline:2px solid var(--v7-green); outline-offset:2px; }

.unlock-site .v7c-hint { display:block; margin:-4px 0 12px; max-width:44em; color:var(--v7-ink-2); font:400 14.5px/1.55 var(--v7-sans); }
.unlock-site .v7c-hint:empty { display:none; }
.unlock-site .v7c-help { margin:-16px 0 0; max-width:48em; color:var(--v7f-muted); font-size:13.5px; line-height:1.65; }
.v7c-form__foot { display:flex; flex-wrap:wrap; align-items:center; gap:16px 28px; padding-top:26px; border-top:1px solid var(--v7-line-light); }
/* Submit: the site's primary mint .btn (size comes from base). On the near-white card a hairline in the
   button's own ink defines its edge; the focus ring is the dark paper green (6.5:1 on the card). */
.unlock-site .v7c-form__foot .btn { box-shadow:inset 0 0 0 1px rgba(16,44,37,.16); }
.unlock-site .v7c-form__foot .btn:focus-visible { outline:2px solid var(--v7-green); outline-offset:3px; }
.unlock-site .v7c-form__foot p { flex:1 1 260px; margin:0; color:var(--v7f-muted); font-size:13.5px; line-height:1.6; }
.unlock-site .v7c-form a { color:var(--v7-green); text-decoration:underline; text-underline-offset:3px; }
.unlock-site .v7c-form .form-status { margin:0; padding:14px 16px; border:1px solid var(--v7-line-light); border-radius:var(--v7-r-control); background:var(--v7-paper-2); color:var(--v7-ink-text); font-size:15px; line-height:1.55; }
.unlock-site .v7c-form .form-status:empty { display:none; }
.unlock-site .v7c-form .form-status[data-state="success"] { border-color:var(--v7-green); background:#e6f2ec; color:#11523e; }
.unlock-site .v7c-form .form-status[data-state="error"] { border-color:#b3392c; background:#fbeeeb; color:#8c2a20; }
.unlock-site .v7c-form .form-status[data-state="preview"] { color:var(--v7-ink-2); }
.unlock-site .v7c-form[aria-busy="true"] .btn { opacity:.75; cursor:progress; }

/* FAQ sits on paper right after the form section; a rule separates them. */
.unlock-site.page-contact .faq { border-top:1px solid var(--v7-line-light); }

/* ---------- Policies and sitemap: header ---------- */
/* Header and body read as one paper page: no rule between them, one tight space above the body. */
.v7l-head { padding-block:var(--v7-space-tight) 0; background:var(--v7-paper); color:var(--v7-ink-text); }
.v7l-head .v7f-tile { margin-bottom:22px; }
.unlock-site .v7l-head h1 { margin:0; color:var(--v7-ink-text); font:var(--v7-h1); letter-spacing:-.035em; }
.unlock-site .v7l-head__deck { margin:22px 0 0; max-width:34em; color:var(--v7-ink-2); font-size:clamp(17px, 1.35vw, 19px); line-height:1.65; letter-spacing:-.008em; }
.unlock-site .v7l-head__date { margin:14px 0 0; color:var(--v7f-muted); font-size:14.5px; line-height:1.5; }

/* ---------- Policies: reading layout ---------- */
.v7l-body { padding-block:var(--v7-space-tight) var(--v7-space); color:var(--v7-ink-2); }
.v7l-grid { display:grid; grid-template-columns:220px minmax(0, 68ch); gap:0 clamp(48px, 8vw, 120px); align-items:start; }
.v7l-aside { grid-row:1 / span 2; position:sticky; top:calc(var(--top, 0px) + 112px); max-height:calc(100vh - var(--top, 0px) - 136px); overflow-y:auto; overscroll-behavior:contain; padding:2px 4px 4px 2px; }
.unlock-site .v7l-toc__title { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:24px; margin:0 0 10px; color:var(--v7-ink-text); font:600 14.5px/1.4 var(--v7-sans); letter-spacing:0; list-style:none; cursor:default; }
.v7l-toc__title::-webkit-details-marker { display:none; }
.v7l-toc__title svg { display:none; }
.v7l-toc ol { margin:0; padding:0; list-style:none; border-left:1px solid var(--v7-line-light); }
.unlock-site .v7l-toc a { display:block; margin-left:-1px; padding:6px 0 6px 16px; border-left:2px solid transparent; color:var(--v7-ink-2); font:400 14px/1.45 var(--v7-sans); text-decoration:none; transition:color .2s, border-color .2s; }
.unlock-site .v7l-toc a:hover { color:var(--v7-ink-text); }
.unlock-site .v7l-toc a[aria-current] { color:var(--v7-ink-text); border-left-color:var(--v7-green); }

.v7l-article { min-width:0; color:var(--v7-ink-2); font-size:17px; line-height:1.75; }
.unlock-site .v7l-article p { margin:0 0 1.1em; color:var(--v7-ink-2); }
.unlock-site .v7l-article h2 { margin:52px 0 14px; padding:0; border:0; color:var(--v7-ink-text); font:var(--v7-h3); letter-spacing:-.02em; word-spacing:.04em; scroll-margin-top:112px; }
.unlock-site .v7l-article h2:first-child { margin-top:0; }
.unlock-site .v7l-article h3 { margin:32px 0 10px; color:var(--v7-ink-text); font:600 1em/1.45 var(--v7-sans); }
.unlock-site .v7l-article a { color:var(--v7-green); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.unlock-site .v7l-article a:hover { text-decoration-thickness:2px; }
.unlock-site .v7l-article strong { color:var(--v7-ink-text); font-weight:600; }
.unlock-site .v7l-article ul { margin:0 0 1.4em; padding-left:1.2em; list-style:disc; }
.unlock-site .v7l-article ul li { margin:0 0 .7em; padding-left:.3em; }
.unlock-site .v7l-article ul li::marker { color:var(--v7f-muted); }
.unlock-site .v7l-article code { padding:1px 5px; border-radius:3px; background:var(--v7-paper-2); color:var(--v7-ink-text); font:400 .86em/1.5 var(--v7-mono); overflow-wrap:anywhere; }

/* Saved-content blocks from WordPress (classes kept from the earlier reading room).
   The summary reads as an opening paragraph, not a boxed callout. */
.unlock-site .v7l-article .legal-summary { margin:0 0 44px; padding:0 0 36px; border:0; border-bottom:1px solid var(--v7-line-light); border-radius:0; background:none; }
.unlock-site .v7l-article .legal-summary p { margin:0; color:var(--v7-ink-text); font-size:clamp(18px, 1.4vw, 19.5px); line-height:1.65; }
.unlock-site .v7l-article .legal-summary p + p { margin-top:.8em; }
.unlock-site .v7l-article .legal-meta { margin:0 0 28px !important; color:var(--v7f-muted); font-size:14.5px; }
.unlock-site .v7l-article .legal-preferences { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px 24px; margin:0 0 48px; padding:20px 24px; border:1px solid var(--v7-line-light); border-radius:var(--v7-r-panel); background:#fbfbf8; }
.unlock-site .v7l-article .legal-preferences p { flex:1 1 260px; margin:0; color:var(--v7-ink-text); font-size:15.5px; }
.unlock-site .v7l-article .legal-preferences noscript p { flex-basis:100%; }
.unlock-site .v7l-article .legal-preferences button { min-height:44px; padding:11px 18px; border:1px solid var(--v7-ink-text); border-radius:var(--v7-r-control); background:var(--v7-ink-text); color:var(--v7-paper); font:600 14px/1.2 var(--v7-sans); cursor:pointer; transition:background-color .2s, border-color .2s; }
.unlock-site .v7l-article .legal-preferences button:hover { border-color:var(--v7-green); background:var(--v7-green); }
.unlock-site .v7l-article .legal-inline-control { border:0; background:none; color:var(--v7-green); font:inherit; text-decoration:underline; text-underline-offset:3px; cursor:pointer; padding:0; }
.unlock-site .v7l-article .storage-table-wrap { margin:24px 0 32px; overflow-x:auto; border-top:1px solid var(--v7-ink-text); }
.unlock-site .v7l-article .storage-table { width:100%; min-width:560px; border-collapse:collapse; font-size:14.5px; line-height:1.6; text-align:left; }
.unlock-site .v7l-article .storage-table th, .unlock-site .v7l-article .storage-table td { padding:14px 18px 14px 0; border-bottom:1px solid var(--v7-line-light); vertical-align:top; overflow-wrap:anywhere; }
.unlock-site .v7l-article .storage-table thead th { padding-block:12px; color:var(--v7-ink-text); font:600 14px/1.4 var(--v7-sans); }
.unlock-site .v7l-article .storage-table tbody th { width:24%; color:var(--v7-ink-text); font-weight:600; }
.unlock-site .v7l-article .storage-table td { color:var(--v7-ink-2); }

/* After the policy: the other policies as icon links, then who to ask. */
.v7l-more { grid-column:2; margin-top:56px; padding-top:28px; border-top:1px solid var(--v7-line-light); color:var(--v7-ink-2); font-size:15.5px; line-height:1.65; }
.unlock-site .v7l-more h2 { margin:0 0 16px; color:var(--v7-ink-text); font:var(--v7-h3); letter-spacing:-.015em; }
.v7l-more ul { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; margin:0; padding:0; list-style:none; }
.unlock-site .v7l-more ul a { display:flex; align-items:center; gap:14px; min-height:64px; padding:10px 16px 10px 10px; border:1px solid var(--v7-line-light); border-radius:var(--v7-r-panel); background:#fbfbf8; color:var(--v7-ink-text); font-weight:600; text-decoration:none; transition:border-color .2s; }
.v7l-more ul a > span:not(.v7f-tile) { flex:1; }
.v7l-more ul a .v7f-tile { --tile:var(--v7-tile-sm); }
.v7l-more ul a > svg { width:18px; height:18px; color:var(--v7-green); transition:transform .25s var(--v7-ease); }
.unlock-site .v7l-more ul a:hover { border-color:var(--v7-green); }
.v7l-more ul a:hover > svg, .v7l-more ul a:focus-visible > svg { transform:translateX(3px); }
.unlock-site .v7l-more p { display:flex; align-items:center; gap:10px; margin:24px 0 0; color:var(--v7-ink-2); }
.v7l-more p > svg { flex:none; width:20px; height:20px; color:var(--v7-green); }
.unlock-site .v7l-more p a, .unlock-site .v7l-index a { color:var(--v7-green); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.unlock-site .v7l-more p a:hover, .unlock-site .v7l-index a:hover { text-decoration-thickness:2px; }

/* ---------- Sitemap: a quiet directory ---------- */
.v7l-index { padding-block:var(--v7-space-tight) var(--v7-space); color:var(--v7-ink-2); }
.v7l-index__intro { max-width:68ch; }
.unlock-site .v7l-index__intro .legal-summary { margin:0; padding:0; border:0; }
.unlock-site .v7l-index__intro p { margin:0; color:var(--v7-ink-2); font-size:17px; line-height:1.7; }
.unlock-site .v7l-index__intro p + p { margin-top:10px; }
.v7l-index > .wrap { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:48px clamp(40px, 5vw, 80px); }
.v7l-index__intro { grid-column:1 / -1; }
.v7l-group { min-width:0; padding-top:20px; border-top:1px solid var(--v7-line-light); }
.unlock-site .v7l-group h2 { display:flex; align-items:center; gap:14px; margin:0 0 16px; color:var(--v7-ink-text); font:var(--v7-h3); letter-spacing:-.015em; }
.v7l-group .v7f-tile { --tile:var(--v7-tile-sm); }
/* Links line up with the group title (tile + gap); each row is a comfortable target. */
.v7l-list { margin:0; padding:0 0 0 calc(var(--v7-tile-sm) + 14px); list-style:none; }
.v7l-list li { margin:0; font-size:16.5px; line-height:1.5; }
.unlock-site .v7l-list a { display:inline-block; padding-block:7px; }
.unlock-site .v7l-list a[aria-current] { color:var(--v7-ink-text); text-decoration:none; font-weight:600; }

/* ---------- Book a call (and Contact's link to it) ---------- */
.unlock-site .v7c-alt, .unlock-site .v7b-alt { margin:18px 0 0; color:var(--v7-ink-2); font-size:15.5px; line-height:1.5; }
.unlock-site :is(.v7c-alt, .v7b-alt) a { display:inline-flex; align-items:center; gap:6px; padding-block:4px; color:var(--v7-green); font-weight:600; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.unlock-site :is(.v7c-alt, .v7b-alt) a:hover { text-decoration-thickness:2px; }
:is(.v7c-alt, .v7b-alt) a svg { width:16px; height:16px; transition:transform .25s var(--v7-ease); }
:is(.v7c-alt, .v7b-alt) a:hover svg { transform:translateX(3px); }
/* Same two-column page as Contact, with a second side block in place of the photo. */
.v7b-grid { grid-template-areas:"intro form" "about form" "next form" ". form"; }
.v7b-grid .v7b-about { grid-area:about; }
.v7b-next { grid-area:next; margin-top:40px; }
.unlock-site .v7b-next h2 { margin:0 0 18px; color:var(--v7-ink-text); font:var(--v7-h3); letter-spacing:-.015em; }
.unlock-site .v7b-alt { margin-top:28px; padding-top:20px; border-top:1px solid var(--v7-line-light); }
/* Next steps: one column, a straight vertical segment from each tile to the next. */
.v7f-items.v7b-steps { grid-template-columns:minmax(0,1fr); }
.v7b-steps li { position:relative; align-items:flex-start; }
.v7b-steps li > span:last-child { padding-top:1px; }
.v7b-steps li:not(:last-child)::after { content:""; position:absolute; left:calc(var(--v7-tile-sm) / 2); top:calc(var(--v7-tile-sm) + 6px); bottom:-10px; width:1px; background:#b9c6bb; }
.v7b-wide { grid-column:1 / -1; }
.unlock-site .v7c-form .v7b-times textarea { min-height:104px; }
.unlock-site .v7b-grid .v7c-field--message textarea { min-height:140px; }

/* ---------- Responsive ---------- */
@media (max-width:1100px) {
  .v7l-grid { grid-template-columns:190px minmax(0, 1fr); gap:0 56px; }
  .v7l-index > .wrap { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .v7c-steps { grid-template-columns:repeat(2, minmax(0,1fr)); row-gap:48px; }
  .v7c-steps li:nth-child(2n)::after { display:none; }
}
@media (max-width:960px) {
  .v7c-grid { grid-template-columns:minmax(0,1fr); grid-template-areas:"intro" "include" "form"; grid-template-rows:none; }
  .v7b-grid { grid-template-areas:"intro" "about" "form" "next"; }
  .v7b-next { margin-top:48px; }
  .v7f-items.v7b-steps { grid-template-columns:minmax(0,1fr); }
  .v7c-photo { display:none; }
  .v7c-include { margin:32px 0 40px; }
  .v7f-items { grid-template-columns:repeat(2, minmax(0,1fr)); gap:18px 24px; }
  .unlock-site .v7c-intro h1 { max-width:16ch; }
  .v7c-intro { max-width:68ch; }
}
@media (max-width:860px) {
  .v7l-grid { grid-template-columns:minmax(0,1fr); gap:28px; }
  .v7l-aside { grid-row:auto; position:static; max-height:none; overflow:visible; padding:0; }
  /* Phones: the contents list is a folded panel, so the policy itself starts on the first screen. */
  .v7l-toc__box { border:1px solid var(--v7-line-light); border-radius:var(--v7-r-panel); background:#fbfbf8; }
  .unlock-site .v7l-toc__title { min-height:52px; margin:0; padding:0 16px; cursor:pointer; }
  .v7l-toc__title svg { display:block; width:18px; height:18px; color:var(--v7-green); transform:rotate(90deg); transition:transform .25s var(--v7-ease); }
  .v7l-toc__box[open] .v7l-toc__title svg { transform:rotate(-90deg); }
  .v7l-toc__box[open] .v7l-toc__title { border-bottom:1px solid var(--v7-line-light); }
  .v7l-toc ol { margin:0; padding:8px 16px 12px; border-left:0; }
  .unlock-site .v7l-toc a { margin:0; padding:9px 0; border-left:0; font-size:15px; }
  .v7l-more { grid-column:auto; margin-top:24px; }
  .v7l-more ul { grid-template-columns:minmax(0,1fr); }
  .v7l-index > .wrap { grid-template-columns:minmax(0,1fr); gap:36px; }
}
@media (max-width:700px) {
  .v7f-items { grid-template-columns:minmax(0,1fr); gap:14px; }
  /* Steps stack; a vertical segment joins each tile to the next one. */
  .v7c-steps { grid-template-columns:minmax(0,1fr); row-gap:32px; }
  .v7c-steps li { padding:0 0 0 calc(var(--v7-tile) + 20px); min-height:var(--v7-tile); }
  .v7c-steps li:not(:last-child)::after, .v7c-steps li:nth-child(2n):not(:last-child)::after { display:block; top:calc(var(--v7-tile) + 8px); bottom:-24px; left:calc(var(--v7-tile) / 2); right:auto; width:1px; height:auto; }
  .v7c-steps .v7f-tile { position:absolute; left:0; top:0; }
  .unlock-site .v7c-steps h3 { margin-top:2px; }
  .v7l-list { padding-left:0; }
  .v7c-fields { grid-template-columns:minmax(0,1fr); gap:20px; }
  .unlock-site .v7c-form { gap:26px; padding:20px 18px 22px; }
  .v7c-chips { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); }
  .v7c-chips span { display:flex; width:100%; height:100%; padding:9px 10px 9px 11px; font-size:14px; }
  .v7c-form__foot .btn { width:100%; justify-content:center; }
  .v7l-article { font-size:16.5px; line-height:1.72; }
  .unlock-site .v7l-article h2 { margin-top:44px; }
  /* The storage table stacks into one block per row; v7-forms.js labels each cell from the header row. */
  .unlock-site .v7l-article .storage-table.is-stackable { min-width:0; }
  .v7l-article .is-stackable thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .v7l-article .is-stackable :is(tbody, tr, th, td) { display:block; width:auto !important; }
  .unlock-site .v7l-article .is-stackable tr { padding:16px 0; border-bottom:1px solid var(--v7-line-light); }
  .unlock-site .v7l-article .is-stackable :is(th, td) { padding:0; border:0; }
  .unlock-site .v7l-article .is-stackable tbody th { margin-bottom:8px; font-size:15.5px; }
  .unlock-site .v7l-article .is-stackable td + td { margin-top:10px; }
  .v7l-article .is-stackable td[data-label]::before { content:attr(data-label); content:attr(data-label) / ""; display:block; color:var(--v7-ink-text); font:600 13px/1.5 var(--v7-sans); }
}
@media print {
  .v7l-aside, .v7l-more { display:none; }
  .v7l-grid { grid-template-columns:1fr; }
  .v7l-head, .v7l-body { padding-block:16px; }
}
