.local-partnership { padding:clamp(56px,7vw,104px) 0; background:#f5f3f8; color:#17151a; }
.local-partnership__grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:clamp(28px,5vw,76px); align-items:center; }
.local-partnership__grid > * { min-width:0; }
.local-partnership__copy h2 { margin:0; max-width:720px; font-family:var(--display); font-size:clamp(2.5rem,4.5vw,4.6rem); line-height:1.04; letter-spacing:-.055em; overflow-wrap:break-word; }
.local-partnership__copy h2 span { color:#7438ad; }
.local-partnership__copy > p:not(.eyebrow) { color:#62596c; line-height:1.75; }
.local-partnership__copy .local-partnership__lead { font-size:1.18rem; color:#30273a; margin:24px 0 14px; }
.local-partnership__copy .button { margin-top:14px; min-height:48px; }
.local-partnership__copy .local-partnership__note { font-size:.76rem; line-height:1.6; max-width:580px; margin-top:18px; }
.neighbourhood-network { padding:clamp(24px,3vw,40px); border-radius:28px; background:#fff; border:1px solid #e5deed; box-shadow:0 18px 56px rgb(37 20 54 / 7%); }
.neighbourhood-network__heading { display:flex; gap:18px; align-items:center; }
.neighbourhood-network__postcode { display:grid; place-items:center; flex-shrink:0; width:78px; height:78px; border-radius:24px; background:#efe5fa; color:#7438ad; font-size:1.5rem; font-weight:800; letter-spacing:-.04em; }
.neighbourhood-network__eyebrow { margin:0 0 5px; color:#16856f; font-size:.75rem; font-weight:750; }
.neighbourhood-network h3 { margin:0; font-family:var(--display); font-size:clamp(1.6rem,2.5vw,2.3rem); line-height:1.12; letter-spacing:-.04em; }
.neighbourhood-network__intro { margin:22px 0; color:#62596c; font-size:.94rem; line-height:1.7; }
.neighbourhood-network__steps { margin:0; padding:0; list-style:none; display:grid; gap:20px; }
.neighbourhood-network__steps li { display:flex; align-items:flex-start; gap:14px; }
.neighbourhood-network__steps li > span { display:grid; place-items:center; flex-shrink:0; width:32px; height:32px; border-radius:50%; color:#166552; background:#e2f8f1; font-size:.75rem; font-weight:750; }
.neighbourhood-network__steps strong { display:block; font-size:1rem; line-height:1.5; }
.neighbourhood-network__steps p { margin:4px 0 0; color:#62596c; font-size:.9rem; line-height:1.65; }
.neighbourhood-network__example { margin-top:26px; padding-top:22px; border-top:1px solid #e7e4ea; display:flex; align-items:center; flex-wrap:wrap; gap:10px; font-size:.85rem; font-weight:700; }
.neighbourhood-network__example i { color:#7438ad; font-style:normal; }
.neighbourhood-network__caption { margin:14px 0 0; color:#62596c; font-size:.75rem; line-height:1.65; }
@media(max-width:900px) { .local-partnership__grid { grid-template-columns:minmax(0,1fr); } .local-partnership__copy h2 { max-width:760px; } }
@media(max-width:420px) { .neighbourhood-network__heading { align-items:flex-start; gap:12px; } .neighbourhood-network__postcode { width:60px; height:60px; border-radius:18px; font-size:1.25rem; } }
.protected-postcode { padding:clamp(56px,7vw,100px) 0; background:#17121f; color:#fff; }
.protected-postcode__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:clamp(28px,5vw,76px); }
.protected-postcode__grid > * { min-width:0; }
.protected-postcode__visual { overflow:hidden; border-radius:28px; background:#f8f3ed; }
.protected-postcode__visual img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.protected-postcode__badge { margin:0; padding:20px 24px; color:#382448; font-size:.92rem; font-weight:700; }
.protected-postcode h2,.shared-high-street h2 { margin:0; font-family:var(--display); font-size:clamp(2.2rem,3.8vw,3.8rem); line-height:1.06; letter-spacing:-.05em; }
.protected-postcode h2 span { color:#aeeadd; }
.protected-postcode__copy > p:not(.eyebrow) { color:#c8c1d0; line-height:1.75; }
.protected-postcode__lead { font-size:1.12rem; margin:24px 0 14px; }
.postcode-policy { display:flex; align-items:center; flex-wrap:wrap; gap:20px; padding:22px 24px; margin:26px 0; border:1px solid #665174; border-radius:20px; background:#292033; }
.postcode-policy > strong { color:#aeeadd; font-size:clamp(3.5rem,6vw,5rem); letter-spacing:-.08em; line-height:1; }
.postcode-policy span { font-size:1.05rem; font-weight:750; }
.postcode-policy p { margin:4px 0 0; color:#c8c1d0; }
.postcode-policy__examples { list-style:none; display:grid; gap:10px; padding:0; margin:24px 0; }
.postcode-policy__examples li { padding:12px 16px; border-radius:12px; background:#292033; color:#e5dfea; line-height:1.6; }
.postcode-policy__examples strong { color:#aeeadd; }
.protected-postcode .button { margin-top:10px; min-height:48px; }
.shared-high-street { padding:clamp(56px,7vw,104px) 0; background:#fcfaf6; color:#17151a; }
.shared-high-street__heading { max-width:820px; }
.shared-high-street h2 span { color:#7438ad; }
.shared-high-street__heading > p:not(.eyebrow) { max-width:620px; margin:24px 0; font-size:1.1rem; line-height:1.75; color:#62596c; }
.community-example-label { display:inline-flex; padding:8px 14px; border:1px solid #d5e6dc; border-radius:100px; color:#166552; background:#edf6f0; font-weight:700; font-size:.85rem; }
.community-journey { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin:32px 0; padding:0; list-style:none; }
.community-journey__step { --shop-ink:#7438ad; --shop-soft:#eadff5; position:relative; min-width:0; background:#fff; border:1px solid #e5deed; border-radius:24px; box-shadow:0 10px 26px rgb(37 20 54 / 4%); }
.community-journey__step:nth-child(2) { --shop-ink:#166552; --shop-soft:#def4e9; }
.community-journey__step:nth-child(3) { --shop-ink:#9c2767; --shop-soft:#fae4ef; }
.community-journey__step:not(:last-child)::after { content:'→'; position:absolute; top:96px; right:-32px; z-index:1; width:36px; height:36px; display:grid; place-items:center; background:#fff; color:#7438ad; border:1px solid #ded5e8; border-radius:50%; font-size:20px; font-weight:700; }
.community-journey__scene { position:relative; display:grid; place-items:end center; min-height:208px; padding:34px 20px 0; border-radius:23px 23px 0 0; background:linear-gradient(160deg,#fff,var(--shop-soft)); overflow:hidden; }
.community-journey__number { position:absolute; top:16px; left:16px; display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#fff; color:var(--shop-ink); font-size:.85rem; font-weight:800; box-shadow:0 2px 8px rgb(37 20 54 / 6%); }
.community-shop { width:min(100%,190px); background:#fff; border:1px solid var(--shop-ink); border-bottom:0; border-radius:12px 12px 0 0; box-shadow:8px 8px 0 rgb(37 20 54 / 7%); }
.community-shop__sign { display:block; padding:12px 4px; text-align:center; color:var(--shop-ink); font-size:.73rem; font-weight:800; letter-spacing:.09em; }
.community-shop__awning { height:18px; background:repeating-linear-gradient(90deg,var(--shop-ink) 0 18px,var(--shop-soft) 18px 36px); border-radius:0 0 5px 5px; }
.community-journey__symbol { display:grid; place-items:center; height:100px; margin:0 16px; color:var(--shop-ink); background:linear-gradient(0deg,#fff,var(--shop-soft)); border-left:1px solid var(--shop-soft); border-right:1px solid var(--shop-soft); }
.community-journey__symbol svg { width:48px; height:48px; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.community-journey__copy { padding:24px; }
.community-journey .community-journey__kicker { margin:0 0 10px; color:var(--shop-ink); font-size:.78rem; font-weight:750; }
.community-journey h3 { margin:0; font-size:1.35rem; line-height:1.3; letter-spacing:-.03em; }
.community-journey p { color:#62596c; line-height:1.7; font-size:.94rem; margin:12px 0 0; }
.shared-high-street__footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:24px; padding:28px 32px; border-radius:20px; background:#25182f; color:#fff; }
.shared-high-street__footer p { margin:0; font-size:clamp(1.05rem,2vw,1.35rem); line-height:1.5; }
.shared-high-street__footer .shared-high-street__footer-label { margin-bottom:6px; color:#c9b5e3; font-size:.85rem; }
.shared-high-street__footer .button { min-height:48px; flex-shrink:0; }
.shared-high-street__note { max-width:800px; margin:18px 0 0; color:#62596c; font-size:.8rem; line-height:1.65; }
@media(max-width:900px) { .protected-postcode__grid { grid-template-columns:minmax(0,1fr); } .protected-postcode__visual { max-width:680px; } }
@media(max-width:800px) { .community-journey { grid-template-columns:minmax(0,1fr); gap:28px; max-width:560px; margin-left:auto; margin-right:auto; } .community-journey__step:not(:last-child)::after { content:'↓'; top:auto; right:calc(50% - 18px); bottom:-32px; } .community-journey__scene { min-height:190px; } .shared-high-street__footer { padding:24px; } }
.uk-fees { padding:80px 0; background:#f5f2fa; color:#25182f; }
.uk-fees__heading { max-width:760px; margin-bottom:28px; }
.uk-fees__nav { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 24px; }
.uk-fees__nav a { display:inline-flex; align-items:center; justify-content:space-between; gap:18px; min-height:44px; padding:10px 18px; border:1px solid #d8cbe7; border-radius:100px; background:#fff; font-weight:700; }
.uk-fees__basis { border-left:4px solid #7438ad; padding:20px 24px; margin-bottom:24px; background:#eae3f4; border-radius:0 16px 16px 0; }
.uk-fees__basis p { margin:8px 0 0; }
.uk-fees__takeaway { display:flex; flex-direction:column; gap:8px; padding:20px; margin:20px 0; background:#e2f8f1; color:#145e4c; border-radius:16px; }
.uk-fees__takeaway strong { font-size:1.2rem; line-height:1.4; }
.uk-fees__takeaway span { font-size:.88rem; line-height:1.6; }
.uk-fees__receipts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:24px; }
.uk-fees__receipt { padding:24px; border:1px solid #ded5e8; border-radius:18px; background:#f8f6fb; min-width:0; }
.uk-fees__receipt--hopprfy { background:#f0fbf6; border-color:#9ed8c4; }
.uk-fees__receipt dl { margin:24px 0 0; }
.uk-fees__receipt dl>div { display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:12px 0; }
.uk-fees__receipt dt { line-height:1.5; }
.uk-fees__receipt dd { margin:0; white-space:nowrap; font-variant-numeric:tabular-nums; font-weight:700; }
.uk-fees__receipt-total { border-top:1px dashed #aca1b8; margin-top:8px; font-weight:700; font-size:1.15rem; }
.uk-fees__receipt p { font-size:.85rem; margin-bottom:0; }
.uk-fees__details>summary { cursor:pointer; min-height:44px; align-content:center; font-weight:700; line-height:1.6; }
.uk-fees__details[open]>summary { margin-bottom:22px; }
.uk-fees__wine { margin-top:24px; border-top:1px solid #e3dce9; padding-top:16px; }
@media(max-width:800px) { .uk-fees__receipts { grid-template-columns:1fr; } }
.uk-fees .uk-fees__swipe { display:none; font-size:.8rem; margin:20px 0 8px; }
.uk-fees__card { scroll-margin-top:100px; min-width:0; }
.uk-fees h2 { font-size:clamp(2rem,4.4vw,3.5rem); letter-spacing:-.045em; line-height:1.08; margin:12px 0 20px; }
.uk-fees p { line-height:1.7; color:#62596c; }
.uk-fees__highlights { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:28px; }
.uk-fees__highlights>div { padding:24px; border:1px solid #d8cbe7; border-radius:20px; background:#fff; }
.uk-fees__highlights span { display:block; font-size:2.8rem; font-weight:800; letter-spacing:-.05em; color:#6634aa; }
.uk-fees__highlights strong { display:block; margin-top:8px; }
.uk-fees__highlights p { margin:10px 0 0; }
.uk-fees__card { padding:clamp(18px,3vw,32px); border:1px solid #ded5e8; border-radius:24px; background:white; margin-bottom:20px; }
.uk-fees h3 { font-size:clamp(1.4rem,3vw,2rem); line-height:1.2; letter-spacing:-.03em; margin:0 0 12px; }
.uk-fees h4 { font-size:1.05rem; margin:0 0 8px; }
.uk-fees__scroll { overflow-x:auto; margin-top:22px; border:1px solid #e3dce9; border-radius:14px; }
.uk-fees table { width:100%; min-width:620px; border-collapse:collapse; text-align:left; font-size:.94rem; }
.uk-fees caption { text-align:left; }
.uk-fees th,.uk-fees td { padding:18px; border-bottom:1px solid #e3dce9; vertical-align:top; line-height:1.6; }
.uk-fees thead { background:#f5f1fb; }
.uk-fees th:first-child { width:26%; }
.uk-fees tbody td:nth-child(2) { background:#f2fbf7; }
.uk-fees tbody tr:last-child>* { border-bottom:0; }
.uk-fees__result { font-size:1.08rem; background:#f2fbf7; color:#145e4c; }
.uk-fees a:not(.button) { color:#6534a0; text-decoration:underline; text-underline-offset:3px; }
.uk-fees a:not(.button):hover { text-decoration-thickness:2px; }
.uk-fees__card .uk-fees__note { font-size:.85rem; margin-bottom:0; }
.uk-fees__customer { margin-top:24px; background:#f5f2fa; padding:20px; border-radius:16px; }
.uk-fees__customer p { margin:0; }
.uk-fees__sources { padding:20px 24px; margin-bottom:24px; border:1px solid #d8cbe7; border-radius:16px; }
.uk-fees__sources summary { font-weight:700; cursor:pointer; min-height:44px; display:list-item; align-content:center; }
.uk-fees__sources li { padding:8px 0; line-height:1.65; scroll-margin-top:100px; }
.uk-fees__sources p { font-size:.85rem; margin-bottom:0; }
.uk-fees__sr { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.uk-fees :focus-visible { outline:3px solid #7542b9; outline-offset:4px; }
@media(max-width:680px) { .uk-fees { padding:48px 0; } .uk-fees__highlights { grid-template-columns:1fr; } .uk-fees__sources { padding:16px; } .uk-fees th,.uk-fees td { padding:14px; } .uk-fees .uk-fees__swipe { display:block; } .uk-fees__swipe+.uk-fees__scroll { margin-top:8px; } }
.business-tools { padding:clamp(56px,7vw,100px) 0; background:#fff; color:#17151a; }
.business-tools__heading { max-width:840px; }
.business-tools h2 { margin:12px 0 20px; font-family:var(--display); font-size:clamp(2.1rem,4vw,3.8rem); line-height:1.1; letter-spacing:-.045em; }
.business-tools h2 span { color:#7438ad; }
.business-tools__heading>p:last-child { color:#62596c; font-size:1.1rem; line-height:1.7; }
.business-tools__nav { display:flex; gap:10px; flex-wrap:wrap; margin-top:24px; }
.business-tools__nav a { display:inline-flex; align-items:center; gap:16px; min-height:44px; padding:10px 16px; border:1px solid #ded5e8; border-radius:100px; color:#6534a0; background:#f7f4fb; font-size:.85rem; font-weight:700; text-decoration:none; }
.business-tools__nav a:hover { background:#eee5fa; }
.business-tools :focus-visible { outline:3px solid #7438ad; outline-offset:4px; }
.business-tools__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:28px; }
.business-tool { display:flex; flex-direction:column; min-width:0; padding:26px; border:1px solid #e5deed; border-radius:22px; background:#fcfbfe; }
.business-tool { scroll-margin-top:100px; }
.business-tool--feature { background:#fff; box-shadow:0 12px 30px rgb(37 20 54 / 5%); }
.business-tool__art { position:relative; margin:-26px -26px 24px; border-radius:21px 21px 0 0; background:#f6f1eb; overflow:hidden; }
.business-tool__art img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.business-tool__art figcaption { position:absolute; bottom:12px; left:12px; right:12px; width:fit-content; max-width:calc(100% - 24px); padding:7px 11px; border:1px solid #e6def0; border-radius:100px; color:#35263f; background:#fff; font-size:.74rem; line-height:1.5; font-weight:700; }
.business-tool__icon { display:grid; place-items:center; width:52px; height:52px; margin-bottom:22px; border-radius:16px; background:#eee5fa; color:#7438ad; }
.business-tool:nth-child(3n+2) .business-tool__icon { background:#def4e9; color:#166552; }
.business-tool:nth-child(3n) .business-tool__icon { background:#fae4ef; color:#9c2767; }
.business-tool__icon svg { width:30px; height:30px; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.business-tool h3 { font-size:1.25rem; line-height:1.35; letter-spacing:-.025em; margin:0; }
.business-tool>p { font-size:.94rem; line-height:1.75; color:#62596c; margin:12px 0 20px; }
.business-tool__example { padding:16px; background:#f0edf5; border-radius:14px; margin-top:auto; }
.business-tool__example strong { display:block; margin-bottom:6px; color:#6534a0; font-size:.75rem; }
.business-tool__example span { font-size:.9rem; line-height:1.65; }
.business-tool .business-tool__note { font-size:.79rem; line-height:1.65; margin:14px 0 0; }
.business-tool--ask { background:#f4effc; border-color:#cbb9e5; }
.business-tools__footer { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:24px; padding:28px 32px; margin-top:32px; border-radius:20px; background:#f0f8f4; border:1px solid #d5e6dc; }
.business-tools__footer p { margin:0; line-height:1.65; }
.business-tools__footer span:not([aria-hidden]) { display:block; color:#62596c; font-size:.94rem; }
.business-tools__footer .button { min-height:48px; }
@media(max-width:1000px) { .business-tools__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:640px) { .business-tools__grid { grid-template-columns:1fr; } .business-tool { padding:24px; } .business-tool__art { margin:-24px -24px 22px; } .business-tools__footer { padding:24px; } }
