/* Evergreen utility theme, with the selected soft berry first task card.
   Replace rust utility accents, leaving the product layout,
   dark primary actions, white canvas, lilac card and rust gift mark intact. */
:root{--preview-evergreen:#28533f;--preview-green-tint:#f2f6ef;--preview-green-line:#b9cdbb;--purple:#28533f;--coral:#28533f;--brand-rust:#28533f;--brand-rust-dark:#28533f;--brand-rust-pale:#f2f6ef}
.avatar,.site-header .avatar{background:#e4eddf;color:#28533f;border-color:#b9cdbb}
.site-header nav a[aria-current=page]{background:#f2f6ef;border-color:#b9cdbb;color:#28533f}
.home-budget{background:#f2f6ef;border-color:#cbdac8}
.pill{background:#f2f6ef;border-color:#cbdac8}
.home-status-grid>.home-progress,.home-countdown-panel{background:#f2f6ef;border-color:#cbdac8}
.home-status-grid .home-progress .progress{background:#dbe6d8}
.home-status-grid .home-progress .progress-bar,.progress-bar,.status-dot{background:#28533f}
.countdown-label,.flip-unit-label,.countdown-separator{color:#28533f}
.flip-value{color:#28533f;border-color:#b9cdbb;background:linear-gradient(to bottom,#e4eddf 0%,#e4eddf 49.5%,#c4d5c3 49.5%,#c4d5c3 51%,#f2f6ef 51%,#f2f6ef 100%);box-shadow:0 2px 0 #b9cdbb}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-color:#28533f}
.back-link:hover{background:#f2f6ef;border-color:#8eac94}
.interest-card:hover:not(:disabled){border-color:#28533f;box-shadow:0 3px 12px #28533f10}
.interest-card.selected{background:#f2f6ef;border-color:#28533f}
.interest-icon{background:#e4eddf;color:#28533f}
.interest-check{border-color:#b9cdbb;color:#28533f}
.interest-card.selected .interest-check{background:#28533f;color:white;border-color:#28533f}
.interest-chips>span{background:#f2f6ef;border-color:#b9cdbb;color:#28533f}
.retailer-card.selected{border-color:#28533f;box-shadow:0 0 0 2px #28533f,0 0 0 4px white}
.orbit-card.selected{border-color:#28533f;outline-color:white;box-shadow:0 0 0 3px white,0 0 0 5px #28533f}
.flow-progress>span.active{background:#28533f;border-color:#28533f;color:white}
.flow-progress>span.done{background:#f2f6ef;border-color:#b9cdbb;color:#28533f}
.role-badge{background:#f2f6ef;border-color:#b9cdbb;color:#28533f}
.notice:not(.error):not(.success),.notice.success,.status.success,.status.saved,.invitation-status:not(.error){background:#f2f6ef;border-color:#b9cdbb;color:#28533f}
.onboarding-aside{background:#f2f6ef;border-color:#cbdac8}
.setup-count{background:#f2f6ef}
.setup-count>strong{color:#28533f}
.setup-summary>div{border-color:#cbdac8}
.setup-summary strong{color:#28533f}
.landing-kicker:before{color:#28533f}
/* Recolour just the first home task panel. The second stays its original lilac. */
.home-split>.panel-green{background:#f1dde4}
body[data-step-colour=gold] .home-split>.panel-green{background:#f3e6b6}
body[data-step-colour=berry] .home-split>.panel-green{background:#f1dde4}
body[data-step-colour=rust] .home-split>.panel-green{background:#f3ded2}
/* The brand mark is an existing image or an SVG with explicit rust strokes.
   Avoid global SVG, image, primary-button, background or body-text overrides. */

/* A dark, clearly separate footer uses the same ink as primary actions. */
.site-footer{max-width:none;width:100%;margin:0;background:#292638;border-top:0;color:#f5f1f8;padding:23px max(22px,calc((100vw - 1190px)/2))}
.site-footer .site-footer-nav{max-width:1190px;margin:0 auto;column-gap:26px;row-gap:10px}
.site-footer-nav>a,.site-footer-nav>button,.site-footer .site-footer-nav .text-button{color:#f5f1f8;background:transparent;font-size:16px;line-height:1.5;min-height:44px}
.site-footer-nav>a:hover,.site-footer-nav>button:hover,.site-footer .site-footer-nav .text-button:hover{color:#fff}
.site-footer :is(a,button):focus-visible{outline-color:#c5ddbd}
/* Centre the recipient group itself, rather than spacing its elements apart. */
.reveal>.recipient-panel{display:flex;justify-content:center!important;align-items:center;min-width:0;text-align:center;gap:22px;padding:38px}
.recipient-panel>div{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-width:0;max-width:100%}
.recipient-panel .reveal-lead{font-family:var(--serif);font-size:30px;line-height:1.25;color:#51475d}
.reveal .recipient-name{width:100%;max-width:100%;margin:14px 0 0;font-size:clamp(42px,6vw,78px);line-height:1.08;letter-spacing:-.045em;overflow-wrap:anywhere;word-break:normal;text-align:center;text-wrap:balance}
.recipient-panel .reveal-gift-mark{display:flex;justify-content:center;width:100%;margin:25px 0 0!important}
/* Keep review content on a white canvas, with a real buffer inside each card. */
.page.setup-confirmation{margin:0 auto;padding:40px clamp(22px,4.5vw,56px) 55px;max-width:1160px;border:0;border-radius:0;background:#fff}
.onboarding-layout{gap:28px}
.onboarding-form,.onboarding-aside{border-color:#cbd5cc}
.onboarding-form{background:#fff;padding:32px}
.onboarding-aside{padding:28px;background:#f2f6ef}
.onboarding-form>p,.onboarding-aside p,.onboarding-aside li,.setup-confirmation p,.setup-next-steps,.setup-review-section>p{font-size:16px;line-height:1.7;color:#494552}
.onboarding-aside h2,.onboarding-aside h3,.onboarding-form h2,.setup-review-heading h2{color:#292638}
.onboarding-aside .eyebrow,.onboarding-aside .setup-summary span{color:#465c47}
.onboarding-form .form-field{font-size:16px;line-height:1.55;color:#292638}
.onboarding-form .form-field input,.onboarding-form .form-field select,.onboarding-form .form-field textarea{border-color:#b9b3c0;color:#292638;background:#fff;font-size:16px}
.onboarding-form .form-field small,.setup-email-hint,.setup-review-details dt,.setup-review-page .organiser-row small{font-size:16px;line-height:1.6;color:#5b5363}
.setup-email-hint{padding:17px 19px;border-color:#cbd5cc;background:#f2f6ef}
.setup-review-page .setup-review-heading{gap:14px 20px;margin-bottom:22px;align-items:center}
.setup-review-page .setup-review-heading>h2,.setup-review-page .setup-review-heading>h3{margin:0}
.setup-review-page .setup-review-heading>.text-button{font-size:16px;min-height:48px;padding:11px 17px;border-color:#c5bdce;background:#fff;color:#292638}
.onboarding-form>.setup-review-section{padding-bottom:28px;margin-bottom:28px;border-bottom-color:#d6d0dd}
.setup-review-details{margin:20px 0 0;gap:22px}
.setup-review-details>div{min-width:0}
.setup-review-details dd{font-size:19px;line-height:1.5;color:#292638;overflow-wrap:anywhere}
.setup-review-page .organiser-list{margin-top:18px}
.setup-review-page .organiser-row{padding:17px 0;border-bottom-color:#ded8e4;gap:16px}
.setup-review-page .organiser-row strong{font-size:17px;color:#292638;line-height:1.5}
.setup-review-page .role-badge{font-size:16px;line-height:1.4;padding:7px 12px;background:#f2f6ef;color:#28533f;border-color:#b9cdbb}
.flow-progress{gap:12px;margin:25px 0 30px}
.flow-progress>span{font-size:16px;min-height:48px;padding:11px 17px;line-height:1.45;color:#554d5e;border-color:#c9c1d1;background:#fff}
.flow-progress>span.active{color:#fff;background:#28533f;border-color:#28533f}
.flow-progress>span.done{color:#28533f;background:#f2f6ef;border-color:#b9cdbb}
.invitation-status{padding:22px 24px;margin:24px 0;font-size:16px;line-height:1.7}
.invitation-status strong{font-size:18px;line-height:1.5}
.invitation-status p{margin:11px 0 0;font-size:16px;line-height:1.7;color:#3b5141}
.invitation-status .organiser-actions{margin-top:20px}
.setup-confirmation .onboarding-form,.setup-confirmation .onboarding-aside{min-width:0}
.setup-confirmation .organiser-actions,.setup-review-page .form-actions{gap:16px;margin-top:26px}
.setup-next-steps{padding-left:24px;margin:22px 0}
.setup-next-steps li+li{margin-top:15px}
.setup-count>span{font-size:16px;line-height:1.65;color:#3e5040}
/* The retailer picker has one plain, numbered progress line, without more pills. */
.picker-steps{margin:24px 0 30px;padding:0;background:transparent;border:0;border-radius:0}
.picker-steps ol{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0;padding:0}
.picker-steps li{display:flex;align-items:baseline;gap:9px;padding:0 0 13px;border:0;border-bottom:2px solid #dedbe2;border-radius:0;background:transparent;color:#6b626f;font-size:16px;font-weight:400;line-height:1.5;min-width:0}
.picker-steps li>span{min-width:0}
.picker-steps li>span:first-child{flex-shrink:0;font-weight:600;background:transparent;border:0;border-radius:0;padding:0;color:inherit}
.picker-steps li.step-current{border-bottom-color:#28533f;color:#28533f;font-weight:600}
.picker-steps li.step-complete{border-bottom-color:#a9bea6;color:#28533f}
.picker-steps li.step-current:before,.picker-steps li.step-complete:before{content:none}
.picker-page .picker-heading h1{font-size:clamp(38px,4.3vw,58px);line-height:1.12}
.picker-page .picker-heading .intro,.picker-page .interest-intro p,.picker-page .interest-summary p{font-size:16px;line-height:1.65;color:#494552}
.picker-step-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:15px 20px;margin:0 0 18px;min-width:0}
.picker-step-heading h2{margin:0;font-size:27px;line-height:1.3;letter-spacing:-.03em;color:#292638}
.picker-step-heading>.secondary,.picker-step-heading>.text-button{margin:0;min-height:48px;font-size:16px;line-height:1.5}
.picker-summary-line{display:block;margin:0 0 21px;padding:0;border:0;background:transparent;border-radius:0;font-size:16px;line-height:1.65;color:#494552;overflow-wrap:anywhere}
.picker-summary-line>span{display:inline;font:inherit;line-height:inherit;background:transparent;border:0;padding:0;border-radius:0;color:inherit}
.picker-page .interest-summary{padding:0 0 24px;margin:0 0 22px;border-bottom:1px solid #ded8e4;background:transparent;border-radius:0}
.picker-page .interest-intro{margin-bottom:24px}
.picker-page .interest-intro h2,.picker-page .tray-heading h2{font-size:27px;line-height:1.3;margin-top:0;color:#292638}
.picker-page .interest-actions{gap:15px;padding-top:24px;margin-top:28px}
.picker-page .interest-actions>div{min-width:0}
.picker-page .interest-actions>div>span,.picker-page .picks-tray>p,.picker-page .tray-privacy,.picker-page .card-footnote,.picker-page .globe-hint{font-size:16px;line-height:1.65;color:#494552}
.picker-page .tray-privacy{color:#494552!important}
.picker-page .picks-tray{padding:26px;border-color:#c9c1d1}
.picker-page .picks-tray .form-field{font-size:16px;color:#292638}
@media(max-width:850px){.reveal>.recipient-panel{min-height:300px;padding:32px}.reveal .recipient-name{font-size:clamp(44px,8vw,70px)}.onboarding-form{padding:27px}.onboarding-aside{padding:26px}.onboarding-layout{gap:24px}.picker-steps ol{gap:15px}.picker-step-heading h2,.picker-page .interest-intro h2,.picker-page .tray-heading h2{font-size:25px}}
@media(max-width:650px){
  .site-footer{padding:22px 20px}.site-footer .site-footer-nav{gap:10px 22px;justify-content:flex-start}.site-footer-nav>a,.site-footer-nav>button,.site-footer .site-footer-nav .text-button{font-size:16px}
  .page.setup-confirmation{padding:30px 20px 42px}.onboarding-form{padding:25px 22px}.onboarding-aside{padding:24px 22px}.onboarding-layout{gap:22px}
  .setup-review-page .onboarding-form{padding:25px 22px}.setup-review-page .setup-review-heading{gap:13px;margin-bottom:20px}.setup-review-page .setup-review-heading h2,.setup-review-page .setup-review-heading h3{font-size:24px}
  .setup-review-details dd{font-size:18px}.setup-review-page .organiser-row small{font-size:16px}.flow-progress{gap:10px;margin:23px 0 26px}.flow-progress>span{font-size:16px;padding:10px 14px}
  .invitation-status{padding:20px;margin:22px 0}.invitation-status p{font-size:16px}.setup-confirmation .organiser-actions{gap:15px}
  .reveal>.recipient-panel{min-height:285px;padding:30px 25px}.recipient-panel .reveal-lead{font-size:27px}.reveal .recipient-name{font-size:clamp(42px,11vw,62px);line-height:1.12}.recipient-panel .reveal-gift-mark{margin-top:22px!important}
  .picker-steps{margin:23px 0 27px}.picker-steps ol{gap:13px}.picker-steps li{display:block;padding-bottom:12px;font-size:15px;line-height:1.5}.picker-steps li>span:first-child{display:block;margin-bottom:3px}.picker-steps li>span+span{display:block}
  .picker-page .picker-heading h1{font-size:clamp(36px,9.8vw,46px)}.picker-page .picker-heading .intro{font-size:16px}.picker-step-heading{gap:14px;margin-bottom:17px;align-items:flex-start}.picker-step-heading h2{font-size:25px}.picker-step-heading>.secondary{width:auto;max-width:100%;min-height:48px}
  .picker-summary-line{font-size:16px;margin-bottom:20px}.picker-page .picks-tray{padding:24px 21px}.picker-page .interest-actions{gap:15px}
}
@media(max-width:360px){.page.setup-confirmation{padding-inline:16px}.onboarding-form,.setup-review-page .onboarding-form{padding:23px 19px}.onboarding-aside{padding:23px 20px}.setup-review-page .role-badge{font-size:16px;padding:7px 10px}.picker-steps ol{gap:10px}.picker-steps li{font-size:15px}.picker-step-heading h2{font-size:24px}.picker-page .picks-tray{padding:23px 19px}}
/* The app uses the ordered list itself as the progress wrapper. */
ol.picker-steps{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.picker-page .interest-summary h2{font-size:27px;line-height:1.3;color:#292638;margin:0 0 15px}
/* Keep validation feedback distinct from the evergreen informational treatment. */
.form-feedback,.onboarding-form>.form-feedback,.notice.error,.notice.error p,.invitation-status.error p{color:#953c2e}
@media(max-width:850px){ol.picker-steps{gap:15px}.picker-page .interest-summary h2{font-size:25px}}
@media(max-width:650px){ol.picker-steps{gap:13px}.picker-page .interest-summary{display:flex;flex-direction:column;align-items:flex-start;gap:15px}.picker-page .interest-summary>.secondary{margin:0}.picker-page .interest-summary h2{font-size:25px}}
@media(max-width:360px){ol.picker-steps{gap:10px}.picker-page .interest-summary h2{font-size:24px}}

/* Compact picker guide. Avoid full-width progress tracks and repeated headings. */
ol.picker-steps{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;list-style:none;margin:16px 0 22px;padding:0}
ol.picker-steps li{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:0;border:0;background:none;line-height:1.5;font-size:15px;color:#615c68}
ol.picker-steps li:not(:last-child):after{content:"/";margin-left:11px;color:#b2abb9;font-weight:400}
ol.picker-steps li.step-current{color:#28533f;font-weight:600;border:0}
ol.picker-steps li.step-complete{color:#615c68;border:0}
.picker-page .picker-heading{margin-bottom:0}
.picker-page .interest-intro{margin-bottom:20px}
.picker-page .interest-intro p{margin:0}
@media(max-width:650px){ol.picker-steps{margin:14px 0 20px;gap:0}ol.picker-steps li{display:none}ol.picker-steps li.step-current{display:inline-flex;font-size:15px;gap:5px}ol.picker-steps li.step-current:before{content:"Step " attr(data-step) " of 3 ·";font-weight:400}ol.picker-steps li:after{content:none!important}ol.picker-steps .step-index{display:none}}
/* Keep category choices compact, with examples directly beneath each label. */
.picker-page .interest-card{min-height:154px;gap:10px;padding:18px}
.picker-page .interest-card.selected{padding:17px}
.picker-page .interest-card .interest-icon{width:32px;height:32px}
.picker-page .interest-examples{margin-top:0;font-size:14px;line-height:1.45;color:#57525e}
@media(max-width:650px){.picker-page .interest-card{min-height:148px;padding:16px;gap:9px}.picker-page .interest-card.selected{padding:15px}}

/* A short screen keeps the footer at the viewport edge without stretching cards. */
html{min-height:100%}
body{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
body>.site-header,body>#preview-toolbar,body>.site-footer{flex:0 0 auto}
body>main#app{flex:1 0 auto;min-width:0;width:100%}
body>main#app:has(>.onboarding-page):not(:has(form)):not(:has(.setup-review-page)):not(:has(.setup-confirmation)){display:flex;flex-direction:column;justify-content:center}
body>main#app>.onboarding-page{width:100%}
/* Footer options are opt-in. The default footer remains the existing horizontal band. */
body[data-footer-style=dark-right]>.site-footer,
body[data-footer-style=white-right]>.site-footer,
body[data-footer-style=inset-right]>.site-footer{display:flex;justify-content:flex-end;align-items:flex-start;padding:25px max(24px,calc((100vw - 1190px)/2));min-height:0}
body:is([data-footer-style=dark-right],[data-footer-style=white-right],[data-footer-style=inset-right])>.site-footer .site-footer-nav{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;gap:0;width:auto;max-width:100%;margin:0;text-align:right}
body:is([data-footer-style=dark-right],[data-footer-style=white-right],[data-footer-style=inset-right])>.site-footer .site-footer-nav>a,
body:is([data-footer-style=dark-right],[data-footer-style=white-right],[data-footer-style=inset-right])>.site-footer .site-footer-nav>button,
body:is([data-footer-style=dark-right],[data-footer-style=white-right],[data-footer-style=inset-right])>.site-footer .site-footer-nav>.text-button{justify-content:flex-end;min-height:44px;padding:9px 0;font-size:16px;line-height:1.5;text-align:right}
body[data-footer-style=dark-right]>.site-footer{background:#292638;color:#f5f1f8}
body[data-footer-style=white-right]>.site-footer{background:#fff;border-top:1px solid #d9d3df;color:#51495a}
body[data-footer-style=white-right]>.site-footer :is(a,button){color:#51495a}
body[data-footer-style=white-right]>.site-footer :is(a,button):hover{color:#292638}
body[data-footer-style=white-right]>.site-footer :is(a,button):focus-visible{outline-color:#28533f}
body[data-footer-style=inset-right]>.site-footer{align-self:center;width:calc(100% - 48px);max-width:1190px;margin:0 24px 24px;padding:25px 30px;border-radius:20px;background:#292638;color:#f5f1f8}
@media(max-width:650px){
  body[data-footer-style=dark-right]>.site-footer,body[data-footer-style=white-right]>.site-footer{padding:21px 24px}
  body[data-footer-style=inset-right]>.site-footer{width:calc(100% - 32px);margin:0 16px 16px;padding:21px 24px;border-radius:17px}
  body:is([data-footer-style=dark-right],[data-footer-style=white-right],[data-footer-style=inset-right])>.site-footer .site-footer-nav{align-items:flex-end;gap:0}
}

@media(min-width:851px){body>main#app:has(#signin-form),body>main#app:has(#signup-form),body>main#app:has(#verify-form){display:flex;flex-direction:column;justify-content:center}}

/* Option three keeps the footer light, with only the navigation inside a dark card. */
body[data-footer-style=inset-right]>.site-footer{align-self:stretch;width:100%;max-width:none;margin:0;padding:20px max(24px,calc((100vw - 1190px)/2)) 25px;border:0;border-radius:0;background:#fff;color:#292638}
body[data-footer-style=inset-right]>.site-footer .site-footer-nav{width:240px;max-width:100%;margin-left:auto;padding:18px 22px;border-radius:18px;background:#292638;color:#f5f1f8;align-items:flex-end}
body[data-footer-style=inset-right]>.site-footer .site-footer-nav>a,body[data-footer-style=inset-right]>.site-footer .site-footer-nav>button{color:#f5f1f8;min-height:44px;font-size:16px}
#create-group-form>h3{margin-top:24px}
.admin-layout{align-items:start}
.admin-layout>.admin-card{align-self:start}
@media(max-width:650px){body[data-footer-style=inset-right]>.site-footer{width:100%;margin:0;padding:18px 20px 22px;border-radius:0}body[data-footer-style=inset-right]>.site-footer .site-footer-nav{width:240px;max-width:100%;padding:18px 22px;border-radius:17px}}
/* Accepted footer: quiet white, right-aligned vertical navigation and breathing room. */
body:not([data-footer-style])>.site-footer,
body[data-footer-style=white-right]>.site-footer{display:flex;justify-content:flex-end;align-items:flex-start;margin-top:48px;padding:25px max(24px,calc((100vw - 1190px)/2));background:#fff;border-top:1px solid #dedbe2;color:#51495a}
body:not([data-footer-style])>.site-footer .site-footer-nav{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;gap:0;width:auto;max-width:100%;margin:0;text-align:right}
body:not([data-footer-style])>.site-footer .site-footer-nav>a,
body:not([data-footer-style])>.site-footer .site-footer-nav>button,
body[data-footer-style=white-right]>.site-footer .site-footer-nav>a,
body[data-footer-style=white-right]>.site-footer .site-footer-nav>button{justify-content:flex-end;min-height:44px;padding:9px 0;background:transparent;color:#51495a;font-size:16px;line-height:1.5;text-align:right}
body:not([data-footer-style])>.site-footer :is(a,button):hover{color:#292638}
body:not([data-footer-style])>.site-footer :is(a,button):focus-visible{outline-color:#28533f}
@media(max-width:650px){body:not([data-footer-style])>.site-footer,body[data-footer-style=white-right]>.site-footer{margin-top:32px;padding:22px 24px}}

/* Compact footer: two short vertical columns, kept together on the right. */
body:not([data-footer-style])>.site-footer,
body[data-footer-style=white-right]>.site-footer{padding-top:18px;padding-bottom:18px}
body:not([data-footer-style])>.site-footer .site-footer-nav,
body[data-footer-style=white-right]>.site-footer .site-footer-nav{display:grid;grid-auto-flow:column;grid-template-rows:repeat(4,auto);grid-template-columns:repeat(2,max-content);gap:0 32px;align-items:start;justify-content:end;width:auto}
body:not([data-footer-style])>.site-footer .site-footer-nav>a,
body:not([data-footer-style])>.site-footer .site-footer-nav>button,
body[data-footer-style=white-right]>.site-footer .site-footer-nav>a,
body[data-footer-style=white-right]>.site-footer .site-footer-nav>button{font-size:14px;line-height:20px;min-height:28px;padding:4px 0;text-align:left;justify-content:flex-start}
@media(pointer:coarse){
 body:not([data-footer-style])>.site-footer .site-footer-nav>:is(a,button),
 body[data-footer-style=white-right]>.site-footer .site-footer-nav>:is(a,button){min-height:44px;padding-block:12px}
}
@media(max-width:650px){
 body:not([data-footer-style])>.site-footer,
 body[data-footer-style=white-right]>.site-footer{padding-top:14px;padding-bottom:14px}
 body:not([data-footer-style])>.site-footer .site-footer-nav,
 body[data-footer-style=white-right]>.site-footer .site-footer-nav{column-gap:28px}
}

/* Adopted Astra details: framed grid cards and a level, generously inset ribbon. */
.retailer-grid{gap:16px;padding:3px;grid-template-columns:repeat(3,minmax(0,1fr))}
.retailer-grid .retailer-card{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;min-width:0;min-height:0;height:auto;padding:12px;border:1px solid #e1dde5;border-radius:14px;background:#fff;color:#292638;box-shadow:none;overflow:visible;transform:none}
.retailer-grid .retailer-card:hover{border-color:#81998a;transform:none}
.retailer-grid .retailer-card.selected{background:#f5f8f3;border-color:#28533f;box-shadow:0 0 0 1px #28533f;outline:0}
.retailer-card-face{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;width:100%;aspect-ratio:1.65;background:var(--retailer);color:var(--brand-ink);border:1px solid #2926380d;border-radius:8px;padding:16px 10px}
.retailer-grid .retailer-card .shop-wordmark{display:flex;align-items:center;justify-content:center;width:100%;flex:1;min-height:0}
.retailer-grid .retailer-card .retailer-brand-image{width:100%;max-width:180px;max-height:58px;object-fit:contain}
.retailer-grid .retailer-card .gift-card-caption{display:block;position:static;font-size:7px;letter-spacing:.15em;line-height:1;margin:0;color:inherit}
.retailer-card-label{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:42px;padding-top:10px;text-align:left;font-size:14px;line-height:1.4;font-weight:600}
.retailer-grid .retailer-card .shop-check{position:static;display:grid;place-items:center;flex-shrink:0;width:21px;height:21px;min-width:21px;border:1px solid #bcb7c3;border-radius:50%;background:#fff;color:transparent;font-size:13px;opacity:1}
.retailer-grid .retailer-card.selected .shop-check{background:#28533f;color:white;border-color:#28533f}
.retailer-grid .retailer-card:disabled{opacity:1;cursor:default}
.home-ribbon{display:block;border:0;padding:6px 0;margin:26px 0}
.home-ribbon .ribbon-window{padding:6px 0;mask-image:linear-gradient(90deg,transparent,#000 2%,#000 98%,transparent)}
.home-ribbon .ribbon-group{gap:12px;padding-right:12px}
.home-ribbon .ribbon-card,.home-ribbon .ribbon-card:nth-child(even){width:132px;height:82px;transform:none;border-radius:8px;padding:12px 10px;gap:8px;box-shadow:0 2px 4px #29263807}
.home-ribbon .ribbon-card .brand-wordmark{font-size:17px;height:33px}
.home-ribbon .ribbon-card .retailer-brand-image{max-height:33px;max-width:110px}
.home-ribbon .ribbon-card small{font-size:7px;letter-spacing:1.3px;line-height:1;padding-top:4px}
.draw-info-step{color:#28533f;font-size:14px;font-weight:700}
@media(max-width:650px){.retailer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.retailer-grid .retailer-card{padding:9px}.retailer-card-face{padding:12px 8px;aspect-ratio:1.55}.retailer-card-label{font-size:14px}.retailer-grid .retailer-card .retailer-brand-image{max-height:40px}.home-ribbon .ribbon-card,.home-ribbon .ribbon-card:nth-child(even){width:115px;height:74px}}

.draw-info-modal{width:520px;max-width:calc(100vw - 32px);padding:36px}.draw-info-modal h2{font-size:27px;line-height:1.25}.draw-info-modal>p:not(.draw-info-step){font-size:16px;color:#69656e;line-height:1.6}.draw-info-modal .modal-close{width:44px;height:44px;min-height:44px;font-size:24px;text-decoration:none;top:6px;right:6px}.draw-info-modal .draw-info-step{margin-bottom:16px}.draw-info-modal .primary{min-height:52px}

/* Festive landing emphasis, with the original serif retained. */
.landing-copy h1 em{color:#28533f;text-decoration:underline;text-decoration-color:#b43e43;text-decoration-thickness:3px;text-underline-offset:9px;text-decoration-skip-ink:none}
