.cashless-ended-notice {
    width: min(72rem, calc(100% - 2rem));
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    margin: 1rem auto 0;
    padding: .95rem 1.1rem;
    border-radius: .8rem;
    background: #111827;
    color: #fff;
    box-shadow: 0 10px 24px rgb(15 23 42 / .12);
}
.cashless-ended-notice__badge { display: inline-grid; flex: none; min-width: 2.8rem; min-height: 2.2rem; place-items: center; padding: .2rem .45rem; border-radius: .45rem; background: #fff; color: #111827; font-size: .82rem; font-weight: 900; }
.cashless-ended-notice strong { display: block; font-size: 1rem; font-weight: 900; line-height: 1.45; }
.cashless-ended-notice p { margin: .24rem 0 0; color: rgb(255 255 255 / .82); font-size: .86rem; font-weight: 600; line-height: 1.65; }
.cashless-hero__status--ended { border-color: #111827; background: #111827; color: #fff; }
.cashless-hero__status--ended span { background: #fff; box-shadow: 0 0 0 4px rgb(17 24 39 / .12); }
.cashless-period-notice--ended { border-color: #94a3b8; background: #f8fafc; box-shadow: 0 12px 28px rgb(15 23 42 / .06); }
.cashless-period-notice--ended .cashless-period-notice__date { background: #111827; }
.cashless-period-notice.cashless-period-notice--ended h2 { color: #1e293b; }
.cashless-period-notice--ended .cashless-period-notice__period { background: #e2e8f0; color: #1e293b; }
.cashless-period-notice--ended .cashless-period-notice__rule { color: #475569; }
.home-cashless-campaign-banner__meta .home-cashless-campaign-banner__ended { padding: .24rem .52rem; border-radius: .4rem; background: #111827; color: #fff; font-size: .82rem; font-weight: 900; line-height: 1.15; }
.home-cashless-campaign-banner__meta .home-cashless-campaign-banner__ended::before { display: none; }

@media (max-width: 640px) {
    .cashless-ended-notice { width: min(100% - 1rem, 72rem); gap: .65rem; padding: .85rem .9rem; }
    .cashless-ended-notice strong { font-size: .92rem; }
    .cashless-ended-notice p { font-size: .78rem; }
    .home-cashless-campaign-banner__meta .home-cashless-campaign-banner__ended { padding: .2rem .42rem; font-size: .69rem; }
}

:root {
    --cashless-navy: #083c57;
    --cashless-teal: #00796f;
    --cashless-mint: #dff8f0;
    --cashless-coral: #ff715b;
    --cashless-yellow: #ffd35a;
    --cashless-ink: #112b3a;
    --cashless-muted: #526774;
    --cashless-paper: #fffdf7;
}

.cashless-guide {
    padding-bottom: 4rem;
    color: var(--cashless-ink);
    background: linear-gradient(180deg, #f6fcfb 0, #fff 34rem);
    font-family: "Noto Sans JP", sans-serif;
}

.cashless-guide__breadcrumb,
.cashless-hero,
.cashless-facts,
.cashless-period-notice,
.cashless-critical,
.cashless-jump,
.cashless-section,
.cashless-sources {
    width: min(72rem, calc(100% - 2rem));
    margin-inline: auto;
}

.cashless-guide__breadcrumb {
    padding-block: 1rem;
    overflow-x: auto;
}

.cashless-guide__breadcrumb ol {
    display: flex;
    gap: .55rem;
    margin: 0;
    padding: 0;
    color: #607482;
    font-size: .88rem;
    white-space: nowrap;
    list-style: none;
}

.cashless-guide__breadcrumb li + li::before {
    margin-right: .55rem;
    color: #a9bac1;
    content: "/";
}

.cashless-guide__breadcrumb a { color: #326b78; font-weight: 700; text-decoration: none; }

.cashless-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    min-height: 31rem;
    overflow: hidden;
    border: 1px solid #b9ded8;
    border-radius: 1.5rem;
    background: #fffdf7;
    box-shadow: 0 24px 70px rgb(4 70 80 / .12);
}

.cashless-hero__content {
    position: relative;
    z-index: 2;
    align-self: center;
    padding: clamp(1.7rem, 4vw, 3.6rem);
}

.cashless-eyebrow {
    margin: 0;
    color: var(--cashless-teal);
    font-size: .82rem;
    font-weight: 900;
    letter-spacing: .14em;
}

.cashless-hero__status {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin-top: .8rem;
    padding: .4rem .7rem;
    border: 1px solid #b9e2d7;
    border-radius: 999px;
    background: #effbf7;
    color: #126759;
    font-size: .82rem;
    font-weight: 800;
}

.cashless-hero__status span { width: .48rem; height: .48rem; border-radius: 50%; background: #16a56f; box-shadow: 0 0 0 4px rgb(22 165 111 / .12); }
.cashless-hero h1 { margin: .9rem 0 0; color: #073a52; font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 900; line-height: 1.22; letter-spacing: -.035em; }
.cashless-hero__lead { max-width: 35rem; margin: 1rem 0 0; color: #3e5d69; font-size: 1rem; font-weight: 600; line-height: 1.85; }
.cashless-hero__actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.35rem; }

.cashless-button {
    display: inline-flex;
    min-height: 3rem;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    border-radius: .75rem;
    padding: .75rem 1rem;
    font-size: .95rem;
    font-weight: 900;
    text-decoration: none;
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}

.cashless-button:hover { transform: translateY(-2px); }
.cashless-button:focus-visible, .cashless-jump a:focus-visible { outline: 3px solid #ffb92f; outline-offset: 3px; }
.cashless-button--primary { color: #fff; background: #00796f; box-shadow: 0 10px 22px rgb(0 121 111 / .22); }
.cashless-button--primary:hover { background: #00665e; }
.cashless-button--light { color: #0b5663; border: 1px solid #add6d3; background: #fff; }

.cashless-brand-row { display: flex; flex-wrap: wrap; gap: .35rem; margin: 1.2rem 0 0; padding: 0; list-style: none; }
.cashless-brand-row li { padding: .36rem .62rem; border: 1px solid #dae7e7; border-radius: .4rem; background: #fff; color: #284b58; font-size: .82rem; font-weight: 900; box-shadow: 0 3px 9px rgb(15 23 42 / .04); }

.cashless-hero__visual { position: relative; min-height: 100%; overflow: hidden; background: #cfedf3; }
.cashless-hero__visual::after { position: absolute; inset: 0 auto 0 0; width: 25%; background: linear-gradient(90deg, #fffdf7, transparent); content: ""; }
.cashless-hero__visual img { width: 100%; height: 100%; object-fit: cover; object-position: 66% center; }

.cashless-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: .7rem; margin-top: 1rem; }
.cashless-facts article { display: flex; min-width: 0; align-items: center; gap: .7rem; padding: .9rem; border: 1px solid #dbe9e7; border-radius: .85rem; background: #fff; box-shadow: 0 8px 20px rgb(15 23 42 / .05); }
.cashless-facts__icon { display: grid; flex: none; width: 2.7rem; height: 2.7rem; place-items: center; border-radius: .75rem; background: #e1f7f2; color: #00685f; font-size: .9rem; font-weight: 900; }
.cashless-facts strong { display: block; color: #123d4c; font-size: .92rem; line-height: 1.45; }
.cashless-facts p { margin: .18rem 0 0; color: #5f737d; font-size: .8rem; line-height: 1.5; }

.cashless-period-notice { display: grid; grid-template-columns: auto 1fr; gap: 1.2rem; margin-top: 1.4rem; padding: 1.4rem; border: 2px solid #e4a525; border-radius: 1rem; background: #fffaf0; box-shadow: 0 12px 28px rgb(99 72 14 / .08); }
.cashless-period-notice__date { display: grid; width: 5.5rem; min-height: 5.5rem; align-content: center; justify-items: center; border-radius: .9rem; background: #0b5360; color: #fff; }
.cashless-period-notice__date small { font-size: .72rem; font-weight: 900; }
.cashless-period-notice__date strong { margin-top: .1rem; font-size: 1.45rem; font-weight: 900; line-height: 1; }
.cashless-period-notice h2 { margin: .3rem 0 0; color: #553b00; font-size: clamp(1.2rem, 2.2vw, 1.65rem); font-weight: 900; line-height: 1.45; }
.cashless-period-notice__period { width: fit-content; margin: .7rem 0 0; padding: .45rem .7rem; border-radius: .5rem; background: #ffe29a; color: #563e08; font-size: .95rem; font-weight: 900; }
.cashless-period-notice__rule { margin: .7rem 0 0; color: #654f24; font-size: .94rem; line-height: 1.75; }
.cashless-period-notice__rule strong { color: #9a3c20; }
.cashless-period-notice__official { margin: .55rem 0 0; color: #526774; font-size: .86rem; line-height: 1.65; }
.cashless-period-notice__official a { margin-left: .35rem; color: #00756b; font-weight: 900; text-underline-offset: .18rem; }

.cashless-critical { display: grid; grid-template-columns: auto 1fr; gap: 1rem; margin-top: 2rem; padding: 1.4rem; border: 2px solid #ee4b3e; border-radius: 1rem; background: #fff7f2; }
.cashless-critical__mark { display: grid; width: 3.2rem; height: 3.2rem; place-items: center; border-radius: .85rem; background: #ec4439; color: #fff; font-size: 1.6rem; font-weight: 900; }
.cashless-critical__label { margin: 0; color: #c6322c; font-size: .8rem; font-weight: 900; letter-spacing: .08em; }
.cashless-critical h2 { margin: .25rem 0 0; color: #78231f; font-size: clamp(1.15rem, 2.2vw, 1.55rem); font-weight: 900; line-height: 1.45; }
.cashless-critical p { margin: .55rem 0 0; color: #6a3b35; font-size: .95rem; line-height: 1.7; }
.cashless-critical__sc { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: .8rem; padding: .72rem .8rem; border-radius: .65rem; background: #fff; font-size: .86rem; }
.cashless-critical__sc strong { color: #193b4a; }
.cashless-critical__sc span { color: #42606c; }
.cashless-critical__sc b { padding: .24rem .45rem; border-radius: .3rem; background: #d93632; color: #fff; }

.cashless-jump { position: sticky; z-index: 20; top: .5rem; display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; margin-top: 1rem; overflow: hidden; border: 1px solid #d1e2df; border-radius: .8rem; background: #d1e2df; box-shadow: 0 8px 20px rgb(15 23 42 / .08); }
.cashless-jump a { display: flex; min-height: 3.5rem; align-items: center; justify-content: center; gap: .45rem; background: rgb(255 255 255 / .96); color: #244b58; font-size: .85rem; font-weight: 900; text-decoration: none; backdrop-filter: blur(12px); }
.cashless-jump a:hover { background: #e7faf5; color: #00685f; }
.cashless-jump span { color: #e5674e; font-size: .8rem; }

.cashless-section { padding-block: clamp(3.5rem, 7vw, 6rem); scroll-margin-top: 5rem; }
.cashless-section--tint { width: 100%; padding-inline: max(1rem, calc((100% - 72rem) / 2)); background: #f0faf7; }
.cashless-section__header { max-width: 47rem; }
.cashless-section__header h2 { margin: .55rem 0 0; color: #0b4055; font-size: clamp(1.6rem, 3vw, 2.45rem); font-weight: 900; line-height: 1.35; letter-spacing: -.025em; }
.cashless-section__header > p:last-child { margin: .8rem 0 0; color: var(--cashless-muted); font-size: 1rem; line-height: 1.75; }

.cashless-section-visual { width: 100%; max-width: none; margin: 1.6rem 0 0; overflow: hidden; border: 1px solid #cfe1df; border-radius: 1rem; background: #fff; box-shadow: 0 12px 28px rgb(15 61 68 / .08); }
.cashless-photo-triptych { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; padding: .45rem; }
.cashless-photo-panel { position: relative; min-width: 0; overflow: hidden; border-radius: .65rem; aspect-ratio: 3 / 4; background: #eef3f2; }
.cashless-photo-panel img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.cashless-photo-label { position: absolute; right: .65rem; bottom: .65rem; left: .65rem; display: grid; min-height: 3.2rem; place-items: center; padding: .55rem .7rem; border: 1px solid rgb(255 255 255 / .9); border-radius: .7rem; background: rgb(255 255 255 / .94); box-shadow: 0 6px 18px rgb(9 48 58 / .18); color: #0b4055; font-size: clamp(.8rem, 1.25vw, .98rem); font-weight: 900; line-height: 1.35; text-align: center; backdrop-filter: blur(8px); }
.cashless-photo-label--yes { border-color: rgb(154 224 205 / .95); background: rgb(239 251 247 / .96); color: #006b5d; }
.cashless-photo-label--no { border-color: rgb(255 187 178 / .95); background: rgb(255 241 238 / .96); color: #b72f29; }
.cashless-section-visual--warning { border-color: #f0c8c1; }
.cashless-section-visual--warning .cashless-photo-label { border-color: rgb(255 220 214 / .95); background: rgb(255 247 244 / .95); color: #8b332e; }

.cashless-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 2rem; }
.cashless-steps article { position: relative; overflow: hidden; padding: 1.3rem; border: 1px solid #cde3df; border-radius: 1rem; background: #fff; box-shadow: 0 12px 28px rgb(15 61 68 / .07); }
.cashless-steps__number { position: absolute; top: 1rem; left: 1rem; color: #008b7e; font-size: .85rem; font-weight: 900; }
.cashless-steps__art { position: relative; width: 6.5rem; height: 6.5rem; margin: .25rem auto .7rem; border-radius: 50%; background: #e5f8f2; }
.cashless-steps__art span, .cashless-steps__art::before, .cashless-steps__art::after { position: absolute; display: block; content: ""; }
.cashless-steps__art--shop span { inset: 2.4rem 1.25rem 1.2rem; border: 4px solid #00796f; border-top: 0; border-radius: .2rem; }
.cashless-steps__art--shop::before { top: 1.6rem; left: 1.05rem; width: 4.4rem; height: 1.2rem; border: 4px solid #ff715b; border-radius: .25rem .25rem .5rem .5rem; transform: skew(-8deg); }
.cashless-steps__art--shop::after { bottom: 1.2rem; left: 2.65rem; width: 1.2rem; height: 1.7rem; border: 3px solid #00796f; }
.cashless-steps__art--phone span { inset: 1rem 1.8rem; border: 4px solid #0b5b73; border-radius: .7rem; }
.cashless-steps__art--phone::before { top: 2.2rem; left: 2.55rem; width: 1.35rem; height: 1.35rem; border: 4px dotted #ff715b; }
.cashless-steps__art--phone::after { bottom: 1.5rem; left: 2.95rem; width: .6rem; height: .2rem; border-radius: 999px; background: #0b5b73; }
.cashless-steps__art--receipt span { inset: 1rem 1.55rem; border: 4px solid #0b5b73; border-radius: .25rem; background: #fff; }
.cashless-steps__art--receipt::before { z-index: 2; top: 2.2rem; left: 2.35rem; width: 1.8rem; height: 1.25rem; border-top: 4px solid #ff715b; border-bottom: 4px solid #ff715b; }
.cashless-steps__art--receipt::after { z-index: 3; right: 1.2rem; bottom: 1rem; width: 2rem; height: 2rem; border-radius: 50%; background: #00796f; box-shadow: inset 0 0 0 6px #e5f8f2; }
.cashless-steps h3 { margin: .4rem 0 0; color: #164352; font-size: 1.05rem; font-weight: 900; text-align: center; }
.cashless-steps p { margin: .55rem 0 0; color: #526a74; font-size: .92rem; line-height: 1.7; }

.cashless-calculation { display: grid; grid-template-columns: repeat(3, 1fr); gap: .65rem; margin-top: 1rem; padding: 1rem; border-radius: 1rem; background: #093f57; }
.cashless-calculation div { padding: .8rem; border-radius: .65rem; background: rgb(255 255 255 / .1); text-align: center; }
.cashless-calculation small { display: block; color: #d2f1ef; font-size: .82rem; font-weight: 800; }
.cashless-calculation strong { display: block; margin-top: .2rem; color: #fff; font-size: 1rem; }
.cashless-calculation > p { grid-column: 1 / -1; margin: .2rem 0 0; color: #e1f3f3; font-size: .82rem; text-align: center; }

.cashless-store-search { margin-top: 1.5rem; padding: 1.2rem; border: 1px solid #badfd8; border-radius: 1rem; background: #fff; box-shadow: 0 10px 24px rgb(18 76 75 / .06); }
.cashless-store-search__heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; }
.cashless-store-search__heading h3 { margin: .35rem 0 0; color: #0b4055; font-size: 1.3rem; font-weight: 900; }
.cashless-store-search__heading > p { max-width: 28rem; margin: 0; color: #526a74; font-size: .88rem; line-height: 1.6; }
.cashless-store-search__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; margin-top: 1rem; }
.cashless-store-search__grid > a { position: relative; display: flex; min-height: 10rem; flex-direction: column; align-items: flex-start; padding: 1rem; border: 1px solid #d5e5e2; border-radius: .8rem; background: #f8fcfb; color: #173f4d; text-decoration: none; transition: border-color .18s ease, transform .18s ease; }
.cashless-store-search__grid > a:hover { border-color: #48a99c; transform: translateY(-2px); }
.cashless-store-search__grid > a:focus-visible { outline: 3px solid #ff9f43; outline-offset: 2px; }
.cashless-store-search__official { position: absolute; top: .75rem; right: .75rem; padding: .26rem .5rem; border-radius: 999px; background: #e1f7f2; color: #00756b; font-size: .8rem; font-weight: 900; }
.cashless-store-search__grid strong { padding-right: 2.8rem; color: #075c65; font-size: 1rem; }
.cashless-store-search__grid b { margin-top: .4rem; color: #173f4d; font-size: .86rem; }
.cashless-store-search__grid small { margin-top: .4rem; color: #596f78; font-size: .82rem; line-height: 1.55; }
.cashless-store-search__action { margin-top: auto; padding-top: .8rem; color: #00756b; font-size: .84rem; font-weight: 900; }

.cashless-store-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-top: 2rem; }
.cashless-store-card { display: flex; flex-direction: column; padding: 1.25rem; border: 1px solid #cee3df; border-radius: 1rem; background: #fff; box-shadow: 0 10px 24px rgb(18 76 75 / .06); }
.cashless-store-card--alert { border: 2px solid #ed6a57; }
.cashless-store-card__top { display: flex; align-items: center; gap: .65rem; }
.cashless-store-card__icon { display: grid; width: 2.9rem; height: 2.9rem; place-items: center; border-radius: .75rem; background: #e0f7f1; color: #00796f; }
.cashless-store-card__icon svg { width: 1.65rem; height: 1.65rem; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.cashless-store-card__category { color: #526a74; font-size: .82rem; font-weight: 900; }
.cashless-store-card h3 { margin: .8rem 0 0; color: #113e4d; font-size: 1.05rem; font-weight: 900; line-height: 1.5; }
.cashless-store-card__payments { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .7rem; }
.cashless-store-card__payments span { padding: .34rem .58rem; border-radius: 999px; background: #eaf8f5; color: #006b62; font-size: .82rem; font-weight: 900; }
.cashless-store-card--alert .cashless-store-card__payments::after { padding: .34rem .58rem; border-radius: 999px; background: #ffe5e1; color: #bc322b; content: "AEON Pay 対象外"; font-size: .82rem; font-weight: 900; }
.cashless-store-card > p { margin: .75rem 0; color: #526a74; font-size: .9rem; line-height: 1.7; }
.cashless-store-card > a { margin-top: auto; color: #00756d; font-size: .84rem; font-weight: 900; text-decoration: underline; text-underline-offset: .2rem; }
.cashless-section__footnote { margin: 1rem 0 0; padding: .9rem 1rem; border-left: 4px solid #f2a93b; background: #fff9e8; color: #6c5a2a; font-size: .9rem; line-height: 1.65; }

.cashless-payment-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-top: 2rem; }
.cashless-payment-card { --payment-color: #444; overflow: hidden; border: 1px solid #dbe4e7; border-top: 5px solid var(--payment-color); border-radius: 1rem; background: #fff; box-shadow: 0 10px 25px rgb(15 23 42 / .06); }
.cashless-payment-card--magenta { --payment-color: #b22774; }
.cashless-payment-card--orange { --payment-color: #e66c00; }
.cashless-payment-card--red { --payment-color: #d92b36; }
.cashless-payment-card--crimson { --payment-color: #ef3340; }
.cashless-payment-card--wine { --payment-color: #9a1434; }
.cashless-payment-card__heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: 1rem 1.1rem .7rem; }
.cashless-payment-card__brand { color: var(--payment-color); font-size: 1.15rem; font-weight: 900; }
.cashless-payment-card__verdict { display: inline-flex; flex: none; align-items: center; gap: .35rem; padding: .44rem .68rem; border: 1px solid #9fd8ca; border-radius: 999px; background: #e8f8f3; color: #006b5d; font-size: .82rem; font-weight: 900; }
.cashless-payment-card__verdict > span { display: grid; width: 1.2rem; height: 1.2rem; place-items: center; border-radius: 50%; background: #00866f; color: #fff; font-size: .68rem; }
.cashless-payment-card__row { display: grid; grid-template-columns: 1.65rem 1fr; gap: .55rem; margin-inline: 1rem; padding: .8rem; border-radius: .7rem; }
.cashless-payment-card__row + .cashless-payment-card__row { margin-top: .5rem; }
.cashless-payment-card__row > span { display: grid; width: 1.5rem; height: 1.5rem; place-items: center; border-radius: 50%; color: #fff; font-size: .78rem; font-weight: 900; }
.cashless-payment-card__row--yes { background: #eefaf6; }
.cashless-payment-card__row--yes > span { background: #00866f; }
.cashless-payment-card__row--no { background: #fff3f1; }
.cashless-payment-card__row--no > span { background: #e6574a; }
.cashless-payment-card__row small { color: #596f78; font-size: .82rem; font-weight: 900; }
.cashless-payment-card__row p { margin: .18rem 0 0; color: #294b57; font-size: .9rem; font-weight: 700; line-height: 1.62; }
.cashless-payment-card__when { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: .7rem 1rem 0; padding: .7rem 0; border-top: 1px dashed #d7e1e3; color: #395864; font-size: .86rem; font-weight: 800; }
.cashless-payment-card__when span { color: #667c84; font-size: .8rem; }
.cashless-payment-card > a { display: block; padding: .8rem 1rem; background: #f7f9fa; color: var(--payment-color); font-size: .82rem; font-weight: 900; text-align: right; text-decoration: none; }

.cashless-example { display: grid; grid-template-columns: auto 1fr; gap: 1rem; margin-top: 1rem; padding: 1.2rem; border: 1px solid #bdd9e8; border-radius: 1rem; background: #eef8fd; }
.cashless-example__phone { display: grid; width: 3.4rem; height: 4.8rem; place-items: center; border: 4px solid #24677f; border-radius: .65rem; background: #fff; color: #e24644; font-size: .8rem; font-weight: 900; }
.cashless-example strong { color: #174f67; }
.cashless-example p { margin: .35rem 0 0; color: #476875; font-size: .9rem; line-height: 1.7; }

.cashless-section--dark { width: 100%; padding-inline: max(1rem, calc((100% - 72rem) / 2)); background: #fff; color: var(--cashless-ink); }
.cashless-section--dark .cashless-eyebrow { color: var(--cashless-teal); }
.cashless-section--dark .cashless-section__header h2 { color: #0b4055; }
.cashless-section--dark .cashless-section__header > p:last-child { color: var(--cashless-muted); }
.cashless-excluded-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 2rem; }
.cashless-excluded-grid article { padding: 1.2rem; border: 1px solid #d7e4e5; border-radius: 1rem; background: #f7faf9; }
.cashless-excluded-grid span { font-size: 1.7rem; }
.cashless-excluded-grid h3 { margin: .55rem 0 0; color: #164352; font-size: 1rem; font-weight: 900; }
.cashless-excluded-grid p { margin: .45rem 0 0; color: #526a74; font-size: .9rem; line-height: 1.68; }
.cashless-separate-payment { margin-top: 1rem; padding: 1.1rem; border-radius: .8rem; background: #ffd35a; color: #503b00; }
.cashless-separate-payment strong { font-weight: 900; }
.cashless-separate-payment p { margin: .35rem 0 0; font-size: .9rem; line-height: 1.65; }
.cashless-health-note { margin: 1rem 0 0; color: #526a74; font-size: .9rem; line-height: 1.7; }
.cashless-health-note strong { color: #164352; }

.cashless-schedule { display: grid; grid-template-columns: repeat(5, 1fr); gap: .7rem; margin-top: 2rem; }
.cashless-schedule div { padding: 1rem .7rem; border: 1px solid #d9e6e7; border-radius: .8rem; background: #fff; text-align: center; box-shadow: 0 8px 18px rgb(15 23 42 / .04); }
.cashless-schedule strong { display: block; color: #0b5360; font-size: .9rem; }
.cashless-schedule span { display: block; margin-top: .35rem; color: #5e747c; font-size: .82rem; line-height: 1.5; }
.cashless-final-check { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2rem; margin-top: 1rem; padding: 1.5rem; border-radius: 1rem; background: #e8f8f4; }
.cashless-final-check h3 { margin: .35rem 0 0; color: #0a4e59; font-size: 1.15rem; font-weight: 900; }
.cashless-final-check ol { margin: .7rem 0 0; padding-left: 1.3rem; color: #45646e; font-size: .9rem; line-height: 1.8; }

.cashless-sources { margin-bottom: 0; padding: 1.4rem; border: 1px solid #dfe7e8; border-radius: 1rem; background: #f8faf9; }
.cashless-sources h2 { margin: 0; color: #244a56; font-size: 1rem; font-weight: 900; }
.cashless-sources > p { margin: .55rem 0 0; color: #5c717a; font-size: .86rem; line-height: 1.68; }
.cashless-sources__links { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .8rem; }
.cashless-sources__links a { padding: .5rem .7rem; border-radius: .45rem; background: #fff; color: #08746b; font-size: .82rem; font-weight: 900; text-decoration: none; box-shadow: inset 0 0 0 1px #cfe0df; }
.cashless-sources__update { color: #14705f !important; font-weight: 800; }
.cashless-sources__update span { color: #16a56f; }

@media (max-width: 900px) {
    .cashless-hero { grid-template-columns: 1fr; }
    .cashless-hero__content { order: 2; }
    .cashless-hero__visual { order: 1; min-height: 16rem; }
    .cashless-hero__visual::after { inset: auto 0 0; width: auto; height: 30%; background: linear-gradient(transparent, #fffdf7); }
    .cashless-hero__visual img { position: absolute; inset: 0; }
    .cashless-facts { grid-template-columns: repeat(2, 1fr); }
    .cashless-schedule { grid-template-columns: repeat(3, 1fr); }
    .cashless-store-search__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
    .cashless-guide__breadcrumb,
    .cashless-hero,
    .cashless-facts,
    .cashless-period-notice,
    .cashless-critical,
    .cashless-jump,
    .cashless-section,
    .cashless-sources { width: min(100% - 1rem, 72rem); }
    .cashless-guide__breadcrumb { padding-block: .65rem; }
    .cashless-hero { min-height: 0; border-radius: 1rem; }
    .cashless-hero__visual { min-height: 12.5rem; }
    .cashless-hero__visual img { object-position: 67% center; }
    .cashless-hero__content { padding: 1.25rem; }
    .cashless-hero h1 { font-size: 1.75rem; }
    .cashless-hero__lead { font-size: .95rem; }
    .cashless-hero__actions { display: grid; }
    .cashless-button { width: 100%; }
    .cashless-facts { grid-template-columns: 1fr; }
    .cashless-period-notice { grid-template-columns: 1fr; padding: 1rem; }
    .cashless-period-notice__date { width: 100%; min-height: 3.5rem; grid-auto-flow: column; align-content: center; justify-content: center; gap: .45rem; }
    .cashless-period-notice__date strong { margin-top: 0; }
    .cashless-period-notice__period { width: 100%; text-align: center; }
    .cashless-critical { grid-template-columns: 1fr; padding: 1rem; }
    .cashless-critical__mark { width: 2.5rem; height: 2.5rem; }
    .cashless-critical__sc { display: grid; align-items: start; }
    .cashless-critical__sc b { width: fit-content; }
    .cashless-jump { position: static; grid-template-columns: repeat(5, minmax(4.2rem, 1fr)); overflow-x: auto; }
    .cashless-jump a { min-height: 3.2rem; flex-direction: column; gap: .1rem; font-size: .78rem; }
    .cashless-section { padding-block: 3.2rem; }
    .cashless-section--tint, .cashless-section--dark { width: 100%; padding-inline: .5rem; }
    .cashless-section--tint .cashless-section__header, .cashless-section--dark .cashless-section__header { padding-inline: .5rem; }
    .cashless-photo-triptych { gap: .2rem; padding: .2rem; }
    .cashless-photo-panel { border-radius: .35rem; }
    .cashless-photo-label { right: .3rem; bottom: .3rem; left: .3rem; min-height: 3.15rem; padding: .4rem .28rem; border-radius: .45rem; font-size: .78rem; }
    .cashless-steps, .cashless-store-grid, .cashless-payment-grid, .cashless-excluded-grid { grid-template-columns: 1fr; }
    .cashless-store-search__heading { align-items: flex-start; flex-direction: column; gap: .5rem; }
    .cashless-store-search__grid { grid-template-columns: 1fr; }
    .cashless-calculation { grid-template-columns: 1fr; }
    .cashless-calculation > p { grid-column: auto; }
    .cashless-schedule { grid-template-columns: repeat(2, 1fr); }
    .cashless-final-check { grid-template-columns: 1fr; gap: 1rem; padding: 1.1rem; }
    .cashless-payment-card__when { align-items: flex-start; flex-direction: column; gap: .2rem; }
}

@media (prefers-reduced-motion: reduce) {
    .cashless-button { transition: none; }
}

.home-cashless-campaign-section {
    padding-top: 0;
    padding-bottom: 1rem;
    scroll-margin-top: 5rem;
}

.home-cashless-campaign-banner {
    position: relative;
    display: block;
    min-height: 8.25rem;
    overflow: hidden;
    border: 1px solid #aedbd4;
    border-radius: .8rem;
    background: #fffdf7;
    color: #0c3e51;
    box-shadow: 0 9px 22px rgb(10 77 84 / .11);
    text-decoration: none;
    isolation: isolate;
    transition: transform .18s ease, box-shadow .18s ease;
}

.home-cashless-campaign-banner:hover { transform: translateY(-2px); box-shadow: 0 13px 26px rgb(10 77 84 / .17); }
.home-cashless-campaign-banner:focus-visible { outline: 3px solid #ff9f43; outline-offset: 3px; }
.home-cashless-campaign-banner > img { position: absolute; z-index: -2; inset: 0 0 0 auto; width: 42%; height: 100%; object-fit: cover; object-position: 66% center; }
.home-cashless-campaign-banner::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, #fffdf7 0%, #fffdf7 51%, rgb(255 253 247 / .92) 62%, rgb(255 253 247 / .12) 88%); content: ""; }
.home-cashless-campaign-banner__body { display: flex; min-height: 8.25rem; width: 77%; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; }
.home-cashless-campaign-banner__copy { min-width: 0; }
.home-cashless-campaign-banner__eyebrow { margin: 0; color: #d55343; font-size: .72rem; font-weight: 900; letter-spacing: .06em; }
.home-cashless-campaign-banner h2 { margin: .28rem 0 0; color: #073f57; font-size: clamp(1.08rem, 2vw, 1.55rem); font-weight: 900; line-height: 1.28; letter-spacing: -.018em; }
.home-cashless-campaign-banner__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .28rem .75rem; margin-top: .45rem; color: #385e66; font-size: .76rem; font-weight: 800; }
.home-cashless-campaign-banner__meta strong { color: #00796f; font-size: .85rem; }
.home-cashless-campaign-banner__meta span { position: relative; }
.home-cashless-campaign-banner__meta span::before { margin-right: .75rem; color: #82aaa3; content: "/"; }
.home-cashless-campaign-banner__meta .home-cashless-campaign-banner__deadline { padding: .24rem .52rem; border: 1px solid #f0a092; border-radius: .4rem; background: #fff1ed; color: #c83f2d; font-size: 1rem; font-weight: 900; line-height: 1.15; }
.home-cashless-campaign-banner__meta .home-cashless-campaign-banner__deadline::before { display: none; }
.home-cashless-campaign-banner__cta { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .45rem; padding: .65rem .8rem; border-radius: .55rem; background: #00796f; color: #fff; font-size: .8rem; font-weight: 900; box-shadow: 0 6px 14px rgb(0 121 111 / .18); }

@media (max-width: 640px) {
    .home-cashless-campaign-section { padding-bottom: .75rem; }
    .home-cashless-campaign-banner { min-height: 9.5rem; border-radius: .7rem; }
    .home-cashless-campaign-banner > img { width: 45%; object-position: 68% center; }
    .home-cashless-campaign-banner::after { background: linear-gradient(90deg, #fffdf7 0%, #fffdf7 59%, rgb(255 253 247 / .9) 70%, rgb(255 253 247 / .1) 100%); }
    .home-cashless-campaign-banner__body { min-height: 9.5rem; width: 82%; align-items: flex-start; flex-direction: column; justify-content: center; gap: .58rem; padding: .8rem; }
    .home-cashless-campaign-banner__eyebrow { max-width: 14.5rem; font-size: .64rem; }
    .home-cashless-campaign-banner h2 { max-width: 14.5rem; font-size: 1.03rem; }
    .home-cashless-campaign-banner__meta { max-width: 15rem; gap: .16rem .45rem; margin-top: .35rem; font-size: .67rem; }
    .home-cashless-campaign-banner__meta strong { font-size: .74rem; }
    .home-cashless-campaign-banner__meta span::before { margin-right: .45rem; }
    .home-cashless-campaign-banner__meta .home-cashless-campaign-banner__deadline { padding: .2rem .42rem; font-size: .84rem; }
    .home-cashless-campaign-banner__cta { padding: .5rem .62rem; font-size: .72rem; }
}
