/* Paolino's digital stamp card – v2.2 visual prototype, fully scoped. */
.paolinos-loyalty-page{overflow:hidden}
.loyalty-hero{background-color:#f6e7cd;position:relative}
.loyalty-hero__inner{padding-top:clamp(124px,10vw,175px);padding-bottom:clamp(70px,7vw,112px);display:grid;grid-template-columns:minmax(0,1.12fr) minmax(210px,.7fr);gap:clamp(30px,6vw,100px);align-items:center;position:relative}
.loyalty-hero__text{max-width:760px}
.loyalty-hero__text h1{font-family:var(--display);font-weight:400;font-size:clamp(58px,6.8vw,108px);line-height:.97;letter-spacing:-.065em;margin:22px 0 0}
.loyalty-hero__text h1 em{color:var(--burgundy);line-height:1.13;white-space:nowrap;font-weight:400}
.loyalty-hero__underline{display:block;width:116px;height:2px;background:var(--burgundy);margin:22px 0 25px}
.loyalty-hero__text>p:last-child{max-width:520px;font-size:clamp(15px,1.26vw,19px);line-height:1.7;color:var(--muted)}
.loyalty-hero__seal{width:min(100%,320px);aspect-ratio:1;justify-self:center;border:1px solid rgba(137,37,46,.38);outline:1px solid rgba(137,37,46,.28);outline-offset:8px;border-radius:50%;color:var(--burgundy);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;transform:rotate(-9deg);font-family:var(--display);letter-spacing:.17em;text-align:center;opacity:.76}
.loyalty-hero__seal img{height:120px;width:120px;object-fit:contain;opacity:.85}
.loyalty-hero__seal-top{font-size:19px}.loyalty-hero__seal-bottom{font-size:11px}
.loyalty-section{background:#fff6e8;padding:clamp(68px,7vw,116px) 0 clamp(75px,9vw,130px)}
.loyalty-section__grid{display:grid;grid-template-columns:minmax(270px,.86fr) minmax(0,1.14fr);gap:clamp(40px,7vw,125px);align-items:start}
.loyalty-story{padding-top:clamp(10px,2vw,35px)}
.loyalty-story h2,.loyalty-faq h2{font:400 clamp(38px,4vw,64px)/1.06 var(--display);letter-spacing:-.046em;margin:19px 0 24px}
.loyalty-story h2 em,.loyalty-faq h2 em{color:var(--burgundy);font-weight:400}
.loyalty-story__lead{max-width:450px;color:var(--muted);font-size:var(--type-lead);line-height:var(--line-body)}
.loyalty-steps{list-style:none;margin:42px 0 0;padding:0}
.loyalty-steps li{display:grid;grid-template-columns:47px 1fr;gap:14px;padding:22px 0;border-bottom:1px solid rgba(124,28,39,.18)}
.loyalty-steps li:first-child{border-top:1px solid rgba(124,28,39,.18)}
.loyalty-steps li>span{font:400 28px/1.2 var(--display);color:var(--burgundy)}
.loyalty-steps strong{display:block;font:700 clamp(18px,1.45vw,22px)/1.25 var(--display)}
.loyalty-steps p{margin-top:8px;color:var(--muted);font-size:var(--type-small);line-height:var(--line-body)}
.loyalty-story__note{display:flex;gap:18px;margin-top:32px;max-width:440px;color:#7a3e3f}.loyalty-story__note>span{font-size:31px;line-height:1}.loyalty-story__note p{font-size:13px;line-height:1.75}
.loyalty-app{position:relative;max-width:670px;min-width:0;background:#fff9ee;padding:clamp(22px,3.1vw,48px);border:1px solid rgba(139,35,49,.20);box-shadow:0 14px 53px rgba(79,29,25,.065)}
.loyalty-app__topline{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:center;padding-bottom:20px;border-bottom:1px solid rgba(139,35,49,.23)}
.loyalty-app__tag{font:700 var(--type-label)/1.5 var(--sans);letter-spacing:var(--tracking-label);color:var(--burgundy-deep)}
.loyalty-app__demo-tag{font:700 10px/1.4 var(--sans);letter-spacing:.06em;padding:5px 8px;background:#e9d4b9;color:#693132}
.loyalty-app__demo-notice{margin:17px 0 0;font-size:12px;line-height:1.55;color:#7d534c}
.loyalty-app__panel{min-height:385px}
.loyalty-view{padding-top:34px;animation:loyalty-appear .23s ease}
.loyalty-view[hidden]{display:none!important}
.loyalty-view__kicker{font:700 var(--type-label)/1.4 var(--sans);letter-spacing:var(--tracking-label);color:var(--burgundy)}
.loyalty-view h2{font:400 clamp(32px,3.15vw,50px)/1.1 var(--display);letter-spacing:-.045em;color:var(--ink);margin:12px 0 19px}
.loyalty-view h2 em{color:var(--burgundy)}
.loyalty-view__intro{max-width:460px;font-size:var(--type-body);line-height:var(--line-body);color:var(--muted);margin-bottom:29px}
.loyalty-form{display:flex;flex-direction:column;gap:11px}
.loyalty-form>label:not(.loyalty-check){font:700 13px/1.5 var(--sans);color:var(--ink)}
.loyalty-form>input{width:100%;height:54px;min-height:54px;padding:12px 15px;border:1px solid #c8afa1;border-radius:0;background:#fffef9;font:400 16px var(--sans);color:var(--ink)}
.loyalty-form>input:focus-visible,.loyalty-check input:focus-visible,.loyalty-app button:focus-visible{outline:2px solid var(--burgundy);outline-offset:3px}
.loyalty-form>input[readonly]{background:#f0e7da;color:#70544a}
.loyalty-app .loyalty-action{display:flex;align-items:center;justify-content:space-between;gap:15px;width:100%;min-height:55px;margin-top:12px;padding:15px 20px;border:1px solid var(--burgundy);background:var(--burgundy);color:#fff5e4;cursor:pointer;font:700 var(--type-action)/1.3 var(--sans);letter-spacing:var(--tracking-action);text-align:left;transition:background .2s}
.loyalty-app .loyalty-action:hover{background:var(--burgundy-deep)}
.loyalty-action__arrow{font:400 27px/1 var(--sans);transform:translateY(-1px)}
.loyalty-view__fine{font-size:12px;line-height:1.7;color:#80665b;margin:17px 0 0}
.loyalty-test-code{padding:12px 15px;background:#f3e4d2;color:#6f2730;margin:-8px 0 22px;font-size:13px;line-height:1.6}
.loyalty-test-code strong{letter-spacing:.12em}
.loyalty-form__error{font-size:13px;color:#9d182e;margin:-3px 0 3px}
.loyalty-app__links{display:flex;flex-wrap:wrap;gap:13px 19px;margin:25px 0 0;align-items:center}
.loyalty-app__links button,.loyalty-app__demo-controls button{font:700 12px/1.4 var(--sans);color:var(--burgundy);text-decoration:underline;text-underline-offset:4px;background:none;border:0;padding:5px 0;cursor:pointer}
.loyalty-app__links button:hover,.loyalty-app__demo-controls button:hover{color:var(--burgundy-deep);text-decoration-thickness:2px}
.loyalty-optional{font-weight:400;color:#786963;font-size:12px}
.loyalty-check{display:flex;align-items:flex-start;gap:11px;font:400 13px/1.55 var(--sans);margin:8px 0 0;cursor:pointer}
.loyalty-check input{appearance:auto;accent-color:var(--burgundy);flex:0 0 auto;margin:3px 0 0;width:17px;height:17px}
.loyalty-check a{color:var(--burgundy);text-decoration:underline}
.loyalty-app__demo-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 15px;margin-top:33px;padding-top:19px;border-top:1px solid rgba(139,35,49,.20)}
.loyalty-app__demo-controls>span{font:700 10px/1.4 var(--sans);letter-spacing:var(--tracking-label);color:#765448;margin-right:auto}
/* The stamp card itself: a single intentional framed surface, not a boxed page. */
.loyalty-view--card{padding-top:27px}
.loyalty-card{background:#850919;color:#fff3df;padding:clamp(22px,4.2vw,40px);position:relative;overflow:hidden}
.loyalty-card:before{content:"";position:absolute;inset:8px;pointer-events:none;border:1px solid rgba(250,222,190,.35)}
.loyalty-card__header{position:relative;z-index:1;display:flex;justify-content:space-between;gap:15px;align-items:center;font:700 var(--type-label)/1.4 var(--sans);letter-spacing:var(--tracking-label);color:#efd2bb}
.loyalty-card__header img{filter:brightness(0) invert(1);opacity:.72;width:33px;height:46px}
.loyalty-card__hello{position:relative;z-index:1;margin:12px 0 6px;color:#f0c7b6;font-size:13px}
.loyalty-card h2{position:relative;z-index:1;color:#fff2df;font-size:clamp(31px,3.2vw,45px);line-height:1.11;margin:14px 0 27px}
.loyalty-card h2 em{color:#f6c59c;font-family:var(--display);font-style:italic;font-weight:400;font-size:1.1em}
.loyalty-stamps{position:relative;z-index:1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(7px,1vw,13px);margin-bottom:24px}
.loyalty-stamp{display:grid;place-items:center;aspect-ratio:1;border:1px solid rgba(255,233,208,.70);border-radius:50%;font:400 clamp(17px,2vw,23px) var(--display);color:#f7dcc6}
.loyalty-stamp.is-stamped{background:#f4dec1;border-color:#f4dec1;color:#8d1323;transform:rotate(-10deg)}
.loyalty-stamp.is-stamped span{font-size:clamp(19px,2.5vw,31px)}
.loyalty-card__progress{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;font-size:13px;color:#f7e8d4}
.loyalty-card__progress strong{font:700 18px var(--display);letter-spacing:.015em}
.loyalty-card__reward{position:relative;z-index:1;text-align:center;margin-top:22px;padding-top:14px;border-top:1px solid rgba(253,231,202,.38);font:700 var(--type-label)/1.5 var(--sans);letter-spacing:var(--tracking-label)}
.loyalty-qr{display:flex;align-items:center;gap:19px;padding:24px 0 18px;border-bottom:1px solid rgba(139,35,49,.22)}
.loyalty-qr__placeholder{width:94px;height:94px;flex:0 0 94px;display:grid;place-items:center;background:#fff;color:var(--ink);padding:7px}
.loyalty-qr__placeholder svg{width:100%;height:100%}
.loyalty-qr strong{font:700 17px/1.32 var(--display);display:block}
.loyalty-qr p{font-size:12px;color:#79625d;margin-top:7px}
.loyalty-wallet-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:22px}
.loyalty-wallet-preview button{background:#e9dfd0;color:#7c6a5d;border:1px solid #d8c7b4;border-radius:0;min-height:48px;padding:11px;font:700 11px/1.35 var(--sans);cursor:pointer}
.loyalty-app__links--card{justify-content:flex-start;margin-top:24px}
.loyalty-faq{padding:clamp(75px,8vw,125px) 0;background-color:#f6e7cd}
.loyalty-faq h2{margin-bottom:48px}
.loyalty-faq__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(25px,5vw,78px)}
.loyalty-faq h3{font:700 clamp(21px,1.8vw,28px)/1.2 var(--display);margin-bottom:14px}
.loyalty-faq p{color:var(--muted);font-size:var(--type-body);line-height:var(--line-body)}
@keyframes loyalty-appear{from{opacity:.2;transform:translateY(7px)}to{opacity:1;transform:none}}
@media(max-width:1000px){.loyalty-section__grid{gap:48px;grid-template-columns:minmax(230px,.85fr) minmax(0,1.15fr)}.loyalty-hero__seal{max-width:235px}}
@media(max-width:820px){.loyalty-section__grid{grid-template-columns:1fr;gap:55px}.loyalty-story{padding-top:0}.loyalty-story__lead{max-width:590px}.loyalty-steps{max-width:650px}.loyalty-app{max-width:670px;width:100%;margin-inline:auto}.loyalty-faq__grid{gap:28px}.loyalty-hero__inner{grid-template-columns:minmax(0,1fr) 185px;gap:17px}.loyalty-hero__seal{width:170px;outline-offset:6px}.loyalty-hero__seal img{width:80px;height:90px}.loyalty-hero__seal-top{font-size:14px}.loyalty-hero__seal-bottom{font-size:8px}}
@media(max-width:620px){.loyalty-hero__inner{display:block;padding-top:125px;padding-bottom:64px}.loyalty-hero__text h1{font-size:clamp(48px,11vw,72px)}.loyalty-hero__text>p:last-child{font-size:15px;max-width:420px}.loyalty-hero__seal{display:none}.loyalty-section{padding:55px 0 82px}.loyalty-section__grid{gap:42px}.loyalty-story h2,.loyalty-faq h2{font-size:clamp(35px,9vw,48px)}.loyalty-steps{margin-top:29px}.loyalty-app{padding:24px 20px}.loyalty-view{padding-top:27px}.loyalty-view h2{font-size:clamp(31px,8vw,41px)}.loyalty-wallet-preview{grid-template-columns:1fr}.loyalty-faq__grid{grid-template-columns:1fr;gap:34px}.loyalty-faq h2{margin-bottom:30px}.loyalty-faq{padding-block:65px 78px}}
@media(max-width:360px){.loyalty-app{padding:18px 14px}.loyalty-card{padding:20px}.loyalty-qr{gap:12px}.loyalty-qr__placeholder{width:74px;height:74px;flex-basis:74px}.loyalty-stamps{gap:7px}.loyalty-view__intro{font-size:14px}.loyalty-app__demo-tag{font-size:9px}}
@media(prefers-reduced-motion:reduce){.loyalty-view{animation:none}.loyalty-app .loyalty-action{transition:none}}

/* v2.3: information-only state if the Core plugin is missing. */
.loyalty-app__unavailable{padding:clamp(38px,5vw,66px) 0;min-height:320px;display:flex;flex-direction:column;justify-content:center}
.loyalty-app__unavailable h2{font:400 clamp(32px,3.15vw,50px)/1.1 var(--display);letter-spacing:-.045em;color:var(--ink);margin:12px 0 19px}
.loyalty-app__unavailable h2 em{color:var(--burgundy)}
.loyalty-app__unavailable > p:last-child{font-size:var(--type-body);line-height:var(--line-body);color:var(--muted);max-width:450px}

/* v2.6: Core-managed native Wallet buttons and status. */
.loyalty-wallet-preview button:disabled{cursor:not-allowed;opacity:.78}
.loyalty-wallet-preview button:not(:disabled){cursor:pointer;background:#850919;border-color:#850919;color:#fff6e8}
.loyalty-wallet-preview button:not(:disabled):hover{background:#650818}
.loyalty-wallet-preview button:focus-visible{outline:2px solid var(--burgundy);outline-offset:3px}
.loyalty-wallet-status{font:400 12px/1.6 var(--sans);color:var(--muted);margin-top:12px;overflow-wrap:anywhere}
/* Customer Homescreen install; visible only inside the live [data-view=card]. */
.loyalty-install{margin-top:24px;padding:21px;background:#f1e3d0;border:1px solid rgba(139,35,49,.22)}
.loyalty-install[hidden],.loyalty-install__guide[hidden],.loyalty-install__feedback[hidden],.loyalty-check[hidden]{display:none!important}
.loyalty-install__headline{display:flex;align-items:center;gap:13px;min-width:0}
.loyalty-install__headline img{display:block;width:52px;height:52px;flex:none;object-fit:cover;border-radius:12px}
.loyalty-install__headline h3{font:400 clamp(19px,2vw,24px)/1.16 var(--display);margin:0 0 4px;color:var(--ink)}
.loyalty-install__headline p{font:400 12px/1.5 var(--sans);margin:0;color:var(--muted)}
.loyalty-install__button{display:flex;justify-content:space-between;align-items:center;width:100%;gap:14px;margin-top:18px;border:1px solid var(--burgundy);padding:13px 15px;min-height:48px;background:var(--burgundy);color:#fff5e8;font:700 11px/1.35 var(--sans);letter-spacing:.055em;cursor:pointer;text-align:left}
.loyalty-install__button:hover{background:var(--burgundy-deep)}
.loyalty-install__button span{font-size:20px;font-weight:400}
.loyalty-install__button:focus-visible,.loyalty-install__close:focus-visible{outline:2px solid var(--burgundy);outline-offset:3px}
.loyalty-install__guide{margin-top:18px;padding:17px;background:#fff8ed;border-left:3px solid var(--burgundy)}
.loyalty-install__guide h4{margin:0 0 10px;font:700 14px/1.4 var(--sans);color:var(--burgundy)}
.loyalty-install__guide ol{list-style:decimal;padding-left:21px;margin:0 0 10px;font:400 13px/1.6 var(--sans)}
.loyalty-install__guide li{margin-bottom:5px}
.loyalty-install__guide-note,.loyalty-install__feedback{margin:7px 0 0;color:#634b47;font:400 12px/1.55 var(--sans)}
.loyalty-install__close{padding:8px 0;border:0;background:transparent;color:var(--burgundy);font:700 12px/1.5 var(--sans);text-decoration:underline;cursor:pointer}
.loyalty-install.is-highlighted{outline:2px solid #9c1526;outline-offset:4px}
@media(max-width:360px){.loyalty-install{padding:15px}.loyalty-install__headline img{width:44px;height:44px}}
