:root{--bg:#101912;--panel:#18231b;--panel2:#203026;--cream:#f6f1e5;--ink:#22342a;--sage:#ccd3ad;--muted:#adb7a9;--gold:#cfb481;--line:rgba(230,225,204,.17);--red:#f2b0a1;--shadow:0 22px 65px #050b0750;--radius:25px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:120px}body{margin:0;background:var(--bg);color:var(--cream);font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;padding-bottom:130px}h1,h2,h3,p{margin-top:0}h1,h2,h3,.serif{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.1}h1{font-size:clamp(49px,6.7vw,90px);letter-spacing:-.05em}h2{font-size:clamp(32px,4vw,52px);letter-spacing:-.035em}h3{font-size:25px;letter-spacing:-.02em}p{margin-bottom:18px}a{color:inherit}button,input,select,textarea{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:4px}[hidden]{display:none!important}.ico{height:21px;width:21px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex:none}.wrap{width:min(1200px,calc(100% - 72px));margin:auto}.narrow{width:min(780px,calc(100% - 36px));margin:auto}.eyebrow{display:flex;align-items:center;gap:10px;color:var(--sage);font-size:10px;letter-spacing:.22em;text-transform:uppercase;font-weight:700;margin-bottom:18px}.eyebrow:before{content:'';width:24px;height:1px;background:var(--gold)}.muted{color:var(--muted)}.small{font-size:12px}.eyebrow+.muted{margin-top:-5px}.icon-button{border:1px solid var(--line);background:#ffffff08;color:var(--cream);width:43px;height:43px;border-radius:50%;display:inline-grid;place-items:center}.btn{min-height:48px;padding:12px 22px;border-radius:99px;display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--line);background:#ffffff05;color:var(--cream);text-decoration:none;font-size:13px;font-weight:600;transition:transform .18s,background .18s,box-shadow .18s}.btn:hover:not(:disabled){background:#ffffff12;transform:translateY(-1px)}.btn.primary{background:var(--sage);color:#17261a;border-color:var(--sage);box-shadow:0 6px 24px #03080220}.btn.primary:hover{background:#e1e5c9}.btn.gold{border-color:#cfb48166;color:var(--gold)}.btn.danger{color:#f2b0a1;background:#4e252330;border-color:#9f666340}.btn.block{width:100%}.btn.sm{min-height:38px;font-size:12px;padding:8px 15px}.btn .ico{width:18px;height:18px}.text-btn{padding:7px 0;background:none;border:0;color:var(--sage);font-weight:600;font-size:13px;text-decoration:underline;text-underline-offset:5px}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.site-header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line);background:#101912ed;backdrop-filter:blur(18px)}.header-inner{height:84px;display:flex;align-items:center;gap:24px;justify-content:space-between}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;flex-shrink:0}.brand-logo{height:52px;width:52px;object-fit:contain;background:#fff;border-radius:50%;border:3px solid var(--cream)}.brand-name{font:19px Georgia;letter-spacing:-.035em;line-height:1.2}.brand-name small{font:9px Arial;letter-spacing:.21em;display:block;margin-top:6px;color:var(--sage);text-transform:uppercase}.top-links{display:flex;gap:24px;font-size:12px}.top-links a{text-decoration:none;color:var(--muted)}.top-links a:hover{color:var(--cream)}.account-control{display:flex;gap:9px;align-items:center}.session-chip{color:var(--sage);font-size:11px}.demo-strip{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 16px;background:#292f21;color:#dcd8b9;border-bottom:1px solid #cfb48124;font-size:11px;line-height:1.45;text-align:center}.demo-strip .text-btn{font-size:11px;color:#e4dfbc;padding:0}.hero{position:relative;min-height:740px;overflow:hidden;border-bottom:1px solid var(--line)}.hero-photo{position:absolute;inset:0 0 0 39%;width:61%;height:100%;object-fit:cover;object-position:50% 55%;opacity:.8}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#101912 27%,#101912a0 52%,#10191210 80%),linear-gradient(0deg,#101912dd,transparent 50%);z-index:1;pointer-events:none}.hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:70px;padding-top:77px;padding-bottom:120px}.hero-copy{max-width:630px}.hero-copy h1{margin-bottom:28px}.hero-copy h1 em{color:var(--sage);font-weight:400;display:block}.hero-copy p{color:#bfc9bc;max-width:440px;line-height:1.8;font-size:14px;margin-bottom:27px}.hero-foot{margin-top:26px;font-size:11px;color:var(--muted);display:flex;align-items:center;gap:10px}.tiny-dot{width:5px;height:5px;display:inline-block;border-radius:100%;background:var(--gold)}.stage{perspective:1100px;position:relative;padding:35px 0 15px;min-width:0}.stage:after{content:'';position:absolute;bottom:-24px;left:8%;right:4%;height:26px;background:#0008;border-radius:50%;filter:blur(18px);z-index:-1}.membership-card{background:radial-gradient(ellipse at 0 0,#65754950,transparent 60%),linear-gradient(120deg,#293d2a,#15271a 50%,#0c190f);border:1px solid #c4ab7260;border-radius:25px;aspect-ratio:1.58;padding:27px 30px;box-shadow:9px 11px 0 -6px #485333,16px 25px 46px #0005,inset 0 1px 0 #f7ebcd70;color:var(--cream);position:relative;overflow:hidden;isolation:isolate}.stage .membership-card{transform:rotateY(-19deg) rotateX(8deg) rotateZ(-5deg);animation:card-float 7s ease-in-out infinite;transition:transform .3s}.membership-card:before{content:'';position:absolute;width:340px;height:340px;border:1px solid #cfb4812b;border-radius:50%;right:-85px;top:-70px;z-index:-1;box-shadow:0 0 0 30px #cfb48108,0 0 0 60px #cfb48106,0 0 0 90px #cfb48104}.membership-card:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(130deg,transparent 30%,#fff1 48%,transparent 65%)}.card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.card-top img{width:69px;height:69px;object-fit:cover;border-radius:50%;box-shadow:0 0 0 5px #ffffff08}.card-top span{color:var(--gold);font-size:9px;letter-spacing:.2em;text-transform:uppercase;text-align:right}.card-name{margin-top:22px;font:clamp(21px,2.4vw,31px) Georgia}.card-bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:17px;gap:15px;font-size:10px;color:var(--sage)}.card-bottom b{font-family:monospace;font-weight:400;letter-spacing:.08em}.floating-tag{display:flex;align-items:center;gap:12px;background:#f4efdfef;color:var(--ink);border:1px solid #fff9;border-radius:16px;padding:14px 19px;box-shadow:0 14px 30px #0003;position:relative;margin:19px 0 0 36%;width:max-content;max-width:85%}.floating-tag .ico{color:#506141;width:26px;height:26px}.floating-tag b{display:block;font-size:14px;line-height:1.3}.floating-tag small{font-size:10px;display:block;color:#697260}.stats-ribbon{position:relative;z-index:4;display:grid;grid-template-columns:repeat(3,1fr);background:#1c2a20;border:1px solid #73816066;border-radius:20px;margin-top:-48px;box-shadow:var(--shadow);padding:25px 12px}.stats-ribbon>div{display:flex;align-items:center;gap:18px;padding:0 28px;border-right:1px solid var(--line)}.stats-ribbon>div:last-child{border:0}.stats-ribbon .ico{color:var(--sage);height:29px;width:29px}.stats-ribbon b{display:block;font:23px Georgia;margin-bottom:3px}.stats-ribbon small{color:var(--muted);font-size:11px}.section{padding:85px 0}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:30px}.section-heading h2{margin-bottom:0}.section-heading p{max-width:330px;font-size:13px;color:var(--muted);margin-bottom:0}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.step-card{position:relative;padding:26px 8px 15px 0;border-top:1px solid var(--line)}.step-no{color:var(--gold);font-size:11px;letter-spacing:.1em;margin-bottom:21px;display:block}.step-card h3{font-size:23px;margin-bottom:13px}.step-card p{font-size:13px;line-height:1.85;color:var(--muted);max-width:290px}.story{display:grid;grid-template-columns:.85fr 1.15fr;gap:45px;padding:40px;background:#1a291e;border:1px solid var(--line);border-radius:30px;align-items:center}.story img{display:block;width:100%;max-height:320px;object-fit:cover;object-position:50% 42%;border-radius:20px}.story h2{font-size:38px}.story p{font-size:14px;color:var(--muted);line-height:1.8}.view{animation:appear .22s ease;min-height:65vh}.page-intro{padding:46px 0 34px;position:relative;background:radial-gradient(ellipse at 90% 0,#52674435,transparent 70%)}.page-intro h1{font-size:clamp(37px,4.5vw,57px);margin-bottom:13px}.page-intro p{color:var(--muted);font-size:14px;max-width:650px;margin:0}.page-body{padding:0 0 45px}.glass{background:linear-gradient(120deg,#223126,#19271e);border:1px solid #b0b7942c;border-radius:var(--radius);padding:29px;box-shadow:0 10px 30px #07100735}.light-panel{background:var(--cream);color:var(--ink);padding:30px;border-radius:var(--radius);box-shadow:var(--shadow)}.light-panel .muted{color:#6a7466}.light-panel .eyebrow{color:#647255}.light-panel input,.light-panel select{background:white;border-color:#d7dbcc;color:#213726}.light-panel .btn{color:var(--ink);border-color:#cad0c2}.light-panel .btn.primary{background:#304b35;color:#fff;border-color:#304b35}.light-panel .btn.primary:hover{background:#3a593f}.light-panel .btn.danger{color:#823f35}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px}.card-layout{grid-template-columns:1.1fr .9fr;align-items:start}.balance-title{font:48px Georgia;margin:20px 0 7px;color:var(--cream)}.balance-title small{font:13px Arial;color:var(--muted)}.profile-status{font-size:10px;letter-spacing:.07em;text-transform:uppercase;padding:5px 10px;border:1px solid #a7b28c4f;border-radius:99px;display:inline-flex;gap:7px;align-items:center;color:var(--sage)}.profile-status.blocked{color:var(--red);border-color:#ce7f7566}.progress-line{height:6px;background:#ffffff10;border-radius:99px;overflow:hidden;margin:16px 0 9px}.progress-line>i{display:block;height:100%;background:linear-gradient(90deg,#7e9865,#c8d1a6);border-radius:99px}.qr-holder{background:#fff;display:grid;place-items:center;border-radius:17px;padding:12px;width:min(285px,100%);margin:25px auto 14px;box-shadow:0 6px 20px #09190917}.qr-holder svg{width:100%;height:auto;display:block}.code-label{font-family:monospace;letter-spacing:.12em;font-size:13px}.center{text-align:center}.gap-top{margin-top:24px}.field{margin-bottom:17px;min-width:0}.field label{display:block;color:var(--sage);font-size:11px;font-weight:600;margin-bottom:8px;letter-spacing:.03em}.field input,.field select,.field textarea{display:block;width:100%;min-height:49px;padding:13px 14px;border:1px solid #c6cfb22c;border-radius:12px;background:#09190f5c;color:var(--cream);outline:none;font-size:15px}.field input:focus,.field select:focus{border-color:var(--gold);box-shadow:0 0 0 3px #cfb48115}.field input::placeholder{color:#929d898c}.light-panel .field label{color:#56634f}.field select option{background:#203426;color:#fff}.password-wrap{position:relative}.password-wrap input{padding-right:80px}.password-wrap button{position:absolute;right:9px;top:6px;height:38px;padding:0 8px;border:0;background:none;color:var(--sage);font-size:10px}.field-hint{font-size:11px;color:var(--muted);margin-top:7px;line-height:1.5}.check{display:flex;align-items:flex-start;gap:10px;font-size:11px;color:var(--muted);margin-bottom:19px}.check input{accent-color:var(--sage);margin-top:3px;width:17px;height:17px;flex:none}.notice{padding:13px 16px;border:1px solid #d0b88633;background:#d0b8860d;color:#ddd1ad;border-radius:13px;font-size:12px;line-height:1.6}.notice.error{color:#f5b9a9;border-color:#e7a39744;background:#99211215}.notice.success{color:#cee0b6;border-color:#96ac7066;background:#4c6b3025}.light-panel .notice{color:#675c42;background:#d0b8861f}.notice p:last-child{margin:0}.error-slot:empty{display:none}.error-slot{margin-bottom:17px;padding:12px 14px;background:#71302735;border:1px solid #ac696033;color:#f7bdae;border-radius:12px;font-size:12px}.tabs{display:flex;gap:5px;padding:5px;border:1px solid var(--line);border-radius:99px;background:#0d1c1350;margin-bottom:24px}.tabs button{background:none;border:0;color:var(--muted);flex:1;min-height:40px;border-radius:99px;font-size:12px}.tabs button.active{color:var(--ink);background:var(--sage)}.history-list{display:grid;gap:0}.movement{display:flex;align-items:center;gap:12px;padding:18px 0;border-bottom:1px solid var(--line)}.movement:last-child{border:0}.movement .mov-icon{width:40px;height:40px;background:#ffffff06;border:1px solid var(--line);border-radius:13px;display:grid;place-items:center;color:var(--sage)}.movement .mov-main{flex:1;min-width:0}.movement .mov-main b{font-size:13px;font-weight:500;display:block;overflow-wrap:anywhere}.movement .mov-main small{color:var(--muted);font-size:10px}.movement .delta{color:#c0d6a2;font-size:13px;white-space:nowrap}.movement .delta.minus{color:#f0b5a7}.empty{padding:35px 15px;text-align:center;color:var(--muted);font-size:13px}.empty .ico{margin-bottom:10px;width:30px;height:30px}.empty h3{color:var(--cream);margin:5px 0 10px}.reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.reward-card{position:relative;border:1px solid var(--line);border-radius:22px;padding:25px;background:linear-gradient(150deg,#263428,#19271e);overflow:hidden;display:flex;flex-direction:column}.reward-card:before{content:'';width:130px;height:130px;position:absolute;right:-35px;top:-35px;border:1px solid #cfb48124;border-radius:50%;box-shadow:0 0 0 22px #cfb48105;pointer-events:none}.reward-discount{font:58px Georgia;color:var(--cream);letter-spacing:-.06em;line-height:1.2;margin:13px 0 7px}.reward-discount span{font-size:26px;letter-spacing:-.03em}.reward-card p{font-size:12px;color:var(--muted)}.reward-card .btn{width:100%;margin-top:auto}.reward-card .badge{display:inline-flex;color:var(--gold);font-size:10px;text-transform:uppercase;letter-spacing:.12em}.reward-card h3{font-size:20px;margin-top:16px;margin-bottom:6px}.reward-card .reward-state{min-height:31px;font-size:11px;color:var(--sage);margin:12px 0 14px}.balance-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 26px;background:#233328;border:1px solid var(--line);border-radius:20px;margin-bottom:23px}.balance-bar b{font:30px Georgia}.balance-bar .small{color:var(--muted)}.scan-layout{grid-template-columns:1fr .85fr;align-items:start}.camera-zone{position:relative;aspect-ratio:1.7;border-radius:18px;overflow:hidden;background:radial-gradient(ellipse at center,#253a2b,#101f16 70%);border:1px solid #c8d6b133;display:grid;place-items:center;text-align:center;margin-bottom:20px}.camera-zone video{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.scan-bracket{width:145px;height:120px;border:1px solid #b7c99b77;border-radius:16px;position:relative;display:grid;place-items:center;background:#05170717}.scan-bracket:before,.scan-bracket:after{content:'';position:absolute;top:-2px;bottom:-2px;width:24px;border:3px solid var(--sage);border-right:0;border-radius:14px 0 0 14px;left:-2px}.scan-bracket:after{left:auto;right:-2px;transform:rotate(180deg)}.scan-bracket .ico{width:42px;height:42px;color:var(--sage)}.camera-overlay{z-index:1;display:flex;align-items:center;flex-direction:column;gap:13px;pointer-events:none}.camera-overlay small{font-size:10px;color:var(--muted);max-width:240px}.camera-zone.running .scan-bracket{background:none}.camera-zone.running .scan-bracket .ico{opacity:0}.camera-zone.running .scan-bracket{overflow:hidden}.camera-zone.running .scan-bracket i{position:absolute;height:2px;left:0;right:0;top:0;box-shadow:0 0 12px var(--sage);background:var(--sage);animation:scan 2s linear infinite}.sep{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:10px;letter-spacing:.1em;text-transform:uppercase;margin:22px 0}.sep:before,.sep:after{content:'';flex:1;height:1px;background:var(--line)}.inline-form{display:flex;gap:9px;align-items:flex-end}.inline-form .field{flex:1;margin:0}.inline-form .btn{border-radius:12px;min-height:49px}.receipt{border:1px solid var(--line);border-radius:18px;padding:22px;background:#0f201636;margin:20px 0}.receipt-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:8px 0;font-size:12px}.receipt-row big{font:29px Georgia;color:var(--sage)}.receipt-row.total{border-top:1px dashed #c7cdaf40;margin-top:7px;padding-top:17px}.receipt-row b{font-weight:500}.customer-mini{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:20px}.avatar{width:49px;height:49px;flex:none;border-radius:50%;background:#d9dfc622;color:var(--sage);border:1px solid var(--line);display:grid;place-items:center;font:23px Georgia}.customer-mini b{font-size:15px}.customer-mini small{display:block;color:var(--muted);font-size:11px;overflow-wrap:anywhere}.pill-row{display:flex;gap:7px;flex-wrap:wrap;margin:13px 0}.pill-row button{border-radius:99px;border:1px solid var(--line);color:var(--sage);background:none;font-size:11px;padding:8px 12px}.pill-row button.selected{background:var(--sage);border-color:var(--sage);color:var(--ink)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:25px}.metric{padding:23px;background:#1b2b20;border:1px solid var(--line);border-radius:20px}.metric span{font-size:10px;color:var(--muted);letter-spacing:.05em}.metric b{font:34px Georgia;color:var(--sage);display:block;margin-top:10px}.client-list{display:grid;gap:10px;margin-top:20px}.client-item{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:15px;padding:15px;background:#ffffff03}.client-item .details{flex:1;min-width:0}.client-item b{display:block;overflow-wrap:anywhere;font-size:13px}.client-item small{font-size:10px;color:var(--muted);display:block;overflow-wrap:anywhere}.client-item .num{text-align:right;font:23px Georgia;color:var(--sage)}.client-item .num small{font:9px Arial}.client-item .avatar{width:37px;height:37px;font-size:18px}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.bottom-nav{position:fixed;bottom:max(15px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(570px,calc(100% - 26px));z-index:60;background:#15231bed;border:1px solid #a3ae8560;border-radius:25px;height:79px;box-shadow:0 13px 50px #0008;backdrop-filter:blur(22px);display:grid;grid-template-columns:1fr 1.12fr 1fr;padding:4px 8px;gap:9px}.bottom-nav a{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;color:var(--muted);font-size:10px;text-decoration:none;border-radius:19px;position:relative;transition:color .2s,background .2s}.bottom-nav a[aria-current='page']{color:var(--cream);background:#e5ebca0a}.bottom-nav a .ico{width:23px;height:23px}.bottom-nav .nav-center{background:linear-gradient(135deg,#ccd5b0,#a5b784);color:#1d3422;width:89px;height:89px;justify-self:center;margin-top:-24px;border:5px solid #16241b;border-radius:50%;box-shadow:0 0 0 1px #becc9e66,0 7px 18px #0005;font-weight:600;font-size:10px}.bottom-nav .nav-center[aria-current='page']{background:linear-gradient(135deg,#e0e7cd,#bacaa0);color:#193020}.bottom-nav .nav-center .ico{width:28px;height:28px}.menu-list{display:grid;gap:10px}.menu-link{display:flex;align-items:center;gap:17px;padding:21px;text-decoration:none;background:#1c2b21;border:1px solid var(--line);border-radius:18px}.menu-link:hover{background:#26392b}.menu-link>.ico{color:var(--sage);width:25px;height:25px}.menu-link span{flex:1}.menu-link b{display:block;font:23px Georgia}.menu-link small{font-size:11px;color:var(--muted)}.menu-link>.ico:last-child{width:18px}.footer{margin-top:50px;padding:32px 0 10px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted)}.footer a{color:var(--muted);text-decoration:none}.footer .actions{gap:16px}.modal-backdrop{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:24px;background:#040d09c9;backdrop-filter:blur(12px)}.modal{width:min(460px,100%);max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain;position:relative;border-radius:28px;background:linear-gradient(140deg,#24372a,#16271c);border:1px solid #c4caaa40;padding:32px;box-shadow:0 30px 110px #0008;animation:appear .2s}.modal.wide{width:min(670px,100%)}.modal-close{position:absolute;right:17px;top:16px}.modal-heading{padding-right:30px;margin-bottom:22px}.modal-heading h2{font-size:33px;margin:12px 0}.modal-heading p{font-size:12px;color:var(--muted);margin:0}.auth-icon{width:49px;height:49px;border:1px solid #c2cd9f44;border-radius:16px;display:grid;place-items:center;background:#a7bd7d0f;color:var(--sage);margin-bottom:18px}.auth-foot{font-size:10px;line-height:1.6;color:var(--muted);border-top:1px solid var(--line);padding-top:16px;margin-top:22px;margin-bottom:0}.toast{position:fixed;bottom:125px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);padding:14px 19px;z-index:160;border-radius:15px;background:#edf0df;color:#233626;box-shadow:0 10px 25px #0007;font-size:12px;line-height:1.5;text-align:center;pointer-events:none}.nojs{background:#fff1cb;color:#4b3820;border-bottom:1px solid #b48f4e;padding:20px;text-align:center;font-size:14px}.nojs p{margin-bottom:0}.rules-list{display:grid;gap:0;font-size:12px;color:var(--muted)}.rules-list>div{padding:16px 0;border-bottom:1px solid var(--line)}.rules-list b{color:var(--cream);font-weight:500}.skeleton{height:180px;border:1px solid var(--line);border-radius:20px;display:grid;place-items:center;color:var(--muted)}.offline-banner{padding:10px 20px;background:#613629;color:#ffe0c3;font-size:11px;text-align:center}.boot-error{margin:22px;padding:20px;border:1px solid #b98260;background:#4c2c22;border-radius:12px;color:#fff3db}.loading{animation:pulse 1s infinite;pointer-events:none}#printArea{display:none}.layout-end{display:flex;gap:15px;align-items:center;justify-content:space-between;flex-wrap:wrap}.separator{height:1px;background:var(--line);margin:22px 0}.qr-large{width:330px;max-width:100%;margin:auto}.mono{font-family:monospace;overflow-wrap:anywhere}.step-label{color:var(--gold);font-size:10px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:15px}.help-items{display:grid;gap:10px}.help-items div{padding:13px 0;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.help-items b{color:var(--cream);display:block;margin-bottom:5px}.page-body> .notice{margin-top:15px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.hidden-file{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.registration-box{max-width:520px;margin:auto}.disabled-card{filter:grayscale(1);opacity:.7}
@keyframes card-float{0%,100%{transform:rotateY(-19deg) rotateX(8deg) rotateZ(-5deg) translateY(0)}50%{transform:rotateY(-13deg) rotateX(6deg) rotateZ(-4deg) translateY(-10px)}}@keyframes appear{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes scan{0%{top:0}100%{top:100%}}@keyframes pulse{50%{opacity:.5}}
@media(min-width:1550px){.hero-photo{object-position:center 50%}}@media(max-width:1050px){.wrap{width:calc(100% - 46px)}.top-links{display:none}.hero-inner{gap:30px;padding-top:70px;grid-template-columns:1.15fr .85fr}.hero{min-height:auto}.membership-card{padding:20px}.card-top img{width:50px;height:50px}.card-name{margin-top:18px;font-size:23px}.card-bottom{font-size:9px;margin-top:17px}.stats-ribbon>div{padding:0 16px;gap:12px}.stats-ribbon b{font-size:21px}.story{gap:25px}.story h2{font-size:32px}}@media(max-width:760px){body{font-size:14px}.wrap{width:calc(100% - 36px)}.header-inner{height:74px;gap:10px}.brand-logo{width:43px;height:43px;border-width:2px}.brand-name{font-size:16px}.brand-name small{font-size:8px;letter-spacing:.17em}.brand{gap:9px}.account-control .btn{font-size:11px;padding:10px 13px;min-height:41px;gap:6px}.account-control .btn .ico{width:15px}.session-chip{display:none}.hero-photo{inset:0;width:100%;height:100%;object-position:57% 38%;opacity:.52}.hero:before{background:linear-gradient(180deg,#10191260,#10191250 36%,#101912f5 90%),linear-gradient(90deg,#101912a0,#10191210)}.hero-inner{display:block;padding-top:48px;padding-bottom:82px}.hero-copy h1{font-size:58px;line-height:.99;letter-spacing:-.05em;margin-bottom:22px}.hero-copy p{max-width:320px;font-size:13px;line-height:1.7}.hero-copy .eyebrow{font-size:9px;margin-bottom:21px}.hero-copy .btn{font-size:12px;padding:12px 16px;min-height:46px}.hero-foot{margin-top:20px;font-size:10px}.stage{max-width:345px;margin:34px auto 0;padding:12px 13px}.membership-card{padding:23px 25px;border-radius:23px}.card-name{font-size:27px;margin-top:23px}.card-top img{width:52px;height:52px}.card-bottom{margin-top:20px}.floating-tag{font-size:11px;padding:12px 16px;margin:19px 0 0 38%;border-radius:13px}.floating-tag b{font-size:12px}.floating-tag small{font-size:9px}.floating-tag .ico{width:23px}.stats-ribbon{grid-template-columns:1fr;padding:9px 20px;border-radius:22px;margin-top:-35px}.stats-ribbon>div{border-right:0;border-bottom:1px solid var(--line);padding:18px 0;gap:17px}.stats-ribbon b{font-size:23px}.stats-ribbon small{font-size:11px}.stats-ribbon .ico{width:27px;height:27px}.section{padding:58px 0}.section-heading{align-items:flex-start;flex-direction:column;gap:17px}.section-heading h2{font-size:36px}.steps{grid-template-columns:1fr;gap:16px}.step-card{padding:23px 0 9px}.step-card p{max-width:none}.step-no{margin-bottom:14px}.story{grid-template-columns:1fr;padding:20px;gap:24px;border-radius:23px}.story img{max-height:240px}.story h2{font-size:33px}.story p{font-size:13px}.story .eyebrow{font-size:9px}.two-cols,.profile-grid{grid-template-columns:1fr}.glass,.light-panel{padding:22px;border-radius:22px}.page-intro{padding:33px 0 28px}.page-intro h1{font-size:38px;line-height:1.05}.page-intro p{font-size:12px}.reward-grid{grid-template-columns:1fr 1fr;gap:12px}.reward-card{padding:19px 15px;border-radius:18px}.reward-discount{font-size:47px;margin-top:18px}.reward-discount span{font-size:23px}.reward-card h3{font-size:19px}.reward-card .btn{font-size:11px;padding:10px;min-height:42px}.reward-card .badge{font-size:8px}.reward-card .reward-state{font-size:10px;min-height:31px}.balance-bar{padding:19px 20px;gap:12px}.balance-bar b{font-size:26px}.balance-bar .small{font-size:10px}.metrics{grid-template-columns:repeat(3,1fr);gap:9px}.metric{padding:17px 12px;border-radius:16px}.metric span{font-size:9px}.metric b{font-size:25px}.client-item{padding:13px 10px;gap:9px}.client-item .btn{font-size:10px;padding:7px 10px}.client-item .num{font-size:20px}.footer{align-items:flex-start;flex-direction:column;gap:16px;padding-top:25px}.modal-backdrop{padding:14px;align-items:center}.modal{max-height:calc(100dvh - 28px);padding:27px 23px;border-radius:24px}.modal-heading h2{font-size:30px}.demo-strip{font-size:10px;gap:8px;padding:7px 12px}.demo-strip .text-btn{font-size:10px}.bottom-nav{height:74px;bottom:max(12px,env(safe-area-inset-bottom));border-radius:23px}.bottom-nav .nav-center{width:85px;height:85px;margin-top:-23px}.bottom-nav a{font-size:10px}.scan-layout{display:flex;flex-direction:column}.scan-layout>div{width:100%}.inline-form .btn{padding:10px 13px;font-size:12px}.menu-link{padding:19px}.menu-link b{font-size:22px}.menu-link small{font-size:10px}.auth-foot{font-size:10px}}@media(max-width:365px){.brand-name{font-size:14px}.brand-logo{width:37px;height:37px}.hero-copy h1{font-size:51px}.wrap{width:calc(100% - 30px)}.account-control .btn{padding:10px;font-size:10px}.account-control .btn .ico{display:none}.metrics{grid-template-columns:1fr}.reward-grid{grid-template-columns:1fr}.membership-card{padding:20px}.card-name{font-size:23px}.floating-tag{margin-left:25%}.hero-copy .actions{gap:8px}.btn{font-size:12px}.hero-copy .btn{font-size:11px;padding:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.stage .membership-card{transform:rotateY(-14deg) rotateX(5deg) rotateZ(-3deg)}}@media print{body>*{display:none!important}#printArea{display:block!important;background:#fff;color:#182c1e;text-align:center;padding:45px}#printArea img{width:95px}#printArea svg{width:270px;height:270px}body{background:#fff;padding:0}#printArea h2{font-size:30px}}

/* V17 — editable programme. Retains the original olive/champagne identity. */
.admin-tabs{display:flex;gap:7px;margin:0 0 28px;padding:6px;border:1px solid var(--line);border-radius:18px;background:#101a13;max-width:690px}.admin-tab{border:0;border-radius:12px;background:transparent;color:var(--muted);display:flex;gap:10px;align-items:center;justify-content:center;padding:14px 18px;flex:1;font-weight:600;white-space:nowrap}.admin-tab.selected{color:var(--ink);background:var(--cream);box-shadow:0 5px 18px #0002}.admin-tab span{font-size:11px;border-radius:99px;background:#ffffff18;padding:0 7px}.admin-tab.selected span{background:#20362915}.settings-section{padding:32px}.settings-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:22px}.settings-heading h2{font-size:clamp(28px,3.5vw,45px);margin:0 0 12px}.settings-heading .eyebrow{margin-bottom:12px}.settings-heading .btn{flex-shrink:0}.settings-heading .muted{max-width:540px;margin-bottom:0}.admin-rewards{display:grid;gap:12px}.admin-reward{border:1px solid var(--line);border-radius:18px;background:linear-gradient(110deg,#ffffff05,transparent);padding:21px;display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:18px}.admin-reward-icon{width:46px;height:46px;border-radius:14px;background:linear-gradient(140deg,#c5ce9f18,#c9ac7810);border:1px solid #b9c48a2a;display:grid;place-items:center;color:var(--gold)}.admin-reward-info{min-width:0}.admin-reward-info h3{margin:9px 0 5px;font-size:24px;overflow-wrap:anywhere}.admin-reward-info p{font-size:13px;line-height:1.5;color:var(--muted);margin:0 0 6px;overflow-wrap:anywhere}.admin-reward-info small{font-size:11px;color:var(--sage)}.reward-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.reward-meta .badge{font-size:10px;letter-spacing:.06em}.status-small{font-size:10px;color:var(--muted);display:flex;gap:6px;align-items:center}.status-small:before{content:'';height:5px;width:5px;border-radius:50%;background:#818775}.status-small.live:before{background:#b9c98d}.admin-reward-actions{display:flex;gap:8px;flex-wrap:wrap}.admin-reward.paused{background:#101811;opacity:.78}.settings-shield{font-size:11px;color:var(--sage);display:flex;align-items:center;gap:8px;white-space:nowrap}.earning-layout{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start}.earning-layout form .field:first-child{margin-top:0}.earning-fields{gap:14px}.earning-preview{border:1px solid #cbb28038;padding:23px;border-radius:20px;background:radial-gradient(ellipse at 100% 0,#c5b57e0c,transparent 65%),#101b14}.earning-preview h3{font-size:28px;color:var(--cream);line-height:1.25}.earning-preview .field-hint{margin-bottom:0;margin-top:18px}.example-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);font-size:13px}.example-row b{color:var(--sage)}.example-row:last-child{border-bottom:0}.settings-audit{margin:24px 0;background:#152019;border:1px solid var(--line);border-radius:18px;padding:18px 22px}.settings-audit summary{cursor:pointer;font-weight:600}.settings-audit summary span{float:right;font-size:11px;font-weight:400;color:var(--muted)}.audit-row{display:flex;gap:13px;padding:13px 0;border-bottom:1px solid var(--line)}.audit-row:last-child{border:0}.audit-row>span{color:var(--gold)}.audit-row b{display:block;font-size:12px;font-weight:500}.audit-row small{font-size:10px;color:var(--muted)}.admin-tip{display:flex;gap:18px;border:1px dashed #a6bd8740;padding:20px;border-radius:18px;margin-top:20px;color:var(--sage)}.admin-tip p{font-size:12px;margin:4px 0 0;color:var(--muted)}.admin-tip>span{padding-top:4px}.field textarea{width:100%;border:1px solid #a4b89938;border-radius:11px;background:#0c170e;color:var(--cream);padding:13px 14px;resize:vertical;line-height:1.5}.field textarea:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.modal .check{margin:18px 0}.modal .notice{margin-bottom:20px}.gift-symbol .ico{width:65px;height:65px;stroke-width:1.1}.reward-discount{font-size:clamp(36px,4vw,64px)}.reward-card h3,.reward-card p{overflow-wrap:anywhere}.receipt-reward{display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:9px;color:var(--sage)}.receipt-reward small{display:block;font-size:11px;color:var(--muted)}.rule-rewards p{margin:10px 0!important}.receipt .field-hint{margin:12px 0 0}.receipt-row span{min-width:0}.settings-section .field input{min-width:0}.admin-tabs .ico{width:19px;height:19px}.settings-heading+.notice{margin-top:0}
@media(max-width:850px){.settings-heading{flex-wrap:wrap}.earning-layout{grid-template-columns:1fr;gap:24px}.settings-section{padding:24px}.admin-reward{grid-template-columns:40px 1fr;gap:14px}.admin-reward-icon{width:40px;height:40px}.admin-reward-actions{grid-column:2}}
@media(max-width:520px){.admin-tabs{gap:3px;padding:5px;margin-bottom:20px;max-width:100%}.admin-tab{font-size:12px;padding:12px 5px;gap:6px}.admin-tab .ico{width:15px;height:15px}.admin-tab span{display:none}.admin-reward{padding:16px;gap:12px}.admin-reward-info h3{font-size:22px}.settings-section{padding:20px 16px}.settings-heading .btn{width:100%}.earning-fields.two-cols{grid-template-columns:1fr 1fr!important;gap:12px}.earning-preview{padding:18px}.settings-audit{padding:17px}.settings-audit summary span{float:none;display:block;margin-top:6px}.admin-reward-actions .btn{padding:9px 12px;font-size:11px}.settings-heading h2{font-size:30px}.settings-shield{white-space:normal}.admin-tip{padding:16px}.modal .earning-preview{margin-bottom:16px}}

/* V18 — visible, readable explanation of point availability. */
.loyalty-policy{display:flex;gap:20px;margin:30px 0;padding:26px;border:1px solid rgba(185,201,142,.3);border-radius:22px;background:linear-gradient(135deg,rgba(185,201,142,.1),rgba(185,201,142,.025));color:var(--text,#f6f1e8)}
.loyalty-policy .policy-icon{flex:0 0 44px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(185,201,142,.35);color:#c7d79c}
.loyalty-policy h3{margin:0 0 10px;font-size:23px;line-height:1.25}.loyalty-policy p{font-size:15px;line-height:1.65;margin:0;color:#c5c9bd}.loyalty-policy strong{color:#f7f3e9}.policy-example{margin-top:18px;padding-top:16px;border-top:1px solid rgba(185,201,142,.22)}.policy-example>b{display:block;color:#c7d79c;margin-bottom:7px;font-size:13px;letter-spacing:.04em}.loyalty-policy.compact{padding:18px;gap:14px;margin:20px 0}.loyalty-policy.compact h3{font-size:19px}.loyalty-policy.compact p{font-size:13px}.loyalty-policy.compact .policy-icon{width:34px;height:34px;flex-basis:34px}
@media(max-width:600px){.loyalty-policy{padding:20px;gap:13px;align-items:flex-start}.loyalty-policy .policy-icon{flex-basis:32px;width:32px;height:32px}.loyalty-policy h3{font-size:21px}.loyalty-policy p{font-size:14px}.receipt-row{gap:18px}.receipt-row span{min-width:0}.receipt-row b{white-space:nowrap}}

/* V19 — Pierre, lin et vert profond. The user's real dining-room photograph is the main visual. */
:root{--bg:#f5f2eb;--panel:#fffdf8;--panel2:#e9ece1;--cream:#233b30;--text:#233b30;--ink:#233b30;--sage:#526848;--muted:#6b7067;--gold:#92784d;--line:rgba(46,62,45,.15);--red:#9a423a;--shadow:0 18px 48px #38382d0c;--radius:24px;--forest:#233e32;--linen:#f5f2eb}
html{scroll-padding-top:108px}body{background:var(--bg);color:var(--ink);font-family:'Avenir Next',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:15px;padding-bottom:130px}h1,h2,h3,.serif{font-family:Georgia,'Times New Roman',serif}a{text-underline-offset:4px}p{line-height:1.7}.wrap{width:min(1240px,calc(100% - 80px))}.eyebrow{color:var(--sage);font-size:10px;font-weight:650;letter-spacing:.18em}.eyebrow:before{width:20px;background:#9c976b}.btn{min-height:48px;background:transparent;border-color:#c7cdbf;color:var(--forest);font-size:13px;font-weight:600;border-radius:13px;padding:13px 20px;box-shadow:none;transition:background .18s,transform .18s,border-color .18s}.btn:hover:not(:disabled){background:#e9ece1;border-color:#a6b099;transform:translateY(-2px)}.btn.primary{background:var(--forest);color:#fffaf0;border-color:var(--forest);box-shadow:0 6px 18px #213e3212}.btn.primary:hover:not(:disabled){background:#355541;border-color:#355541}.btn.gold{color:#746345;border-color:#ccc2af}.btn.danger{color:#9b4339;border-color:#d9b5ac;background:#faf0eb}.btn.sm{min-height:40px;padding:9px 14px}.text-btn{color:var(--forest)}.icon-button{border-color:#d2d8ca;background:#eef0e7;color:var(--forest)}.icon-button:hover{background:#e0e6d7}.btn:disabled{opacity:.48}.actions{gap:12px}
/* Header and persistent, working navigation. */
.site-header{background:#f7f4edf0;border-color:#dfdfd3;backdrop-filter:blur(16px)}.header-inner{height:88px;gap:22px}.brand{gap:12px}.brand-logo{width:57px;height:57px;border:0;background:#fff;border-radius:50%;box-shadow:0 0 0 1px #d4d9ca}.brand-name{font:20px/1.15 Georgia;letter-spacing:-.035em}.brand-name small{font:8px/1.3 'Avenir Next',Arial,sans-serif;letter-spacing:.18em;color:#777d67;margin-top:7px}.top-links{gap:24px}.top-links a{color:#74796d;font-size:12px}.top-links a:hover,.top-links a[aria-current="page"]{color:#294332}.account-control .btn{min-height:43px;padding:10px 16px;border-radius:999px;background:transparent;border:1px solid #b4bca8;white-space:nowrap}.account-control .btn:hover{background:#e7ece0}.account-control .btn .ico{width:17px;height:17px}.session-chip{color:#586b4c;font-size:10px}.bottom-nav{background:#233c31f5;border:1px solid #506150;border-radius:25px;backdrop-filter:blur(18px);height:80px;width:min(570px,calc(100% - 28px));box-shadow:0 14px 48px #1b2c3138;padding:4px 10px}.bottom-nav a{color:#c6cfbb;font-size:11px;gap:5px}.bottom-nav a:hover{color:#fffaf1}.bottom-nav a[aria-current='page']{color:#fffaf1;background:#eef1d311}.bottom-nav .nav-center{background:linear-gradient(145deg,#eeead8,#d9debc);color:#243e31;border:5px solid #233c31;width:90px;height:90px;box-shadow:0 0 0 1px #c1c8aa66,0 5px 15px #132b2740;font-size:10px;margin-top:-25px}.bottom-nav .nav-center[aria-current='page']{color:#243e31;background:linear-gradient(145deg,#f4f1e6,#e5e5c7)}
/* A full photographic composition, not a raster image of a website. */
.editorial-hero{display:grid;grid-template-columns:.95fr 1.15fr;gap:52px;align-items:center;padding-top:40px;padding-bottom:45px;min-height:720px}.editorial-copy{padding:30px 0 65px;max-width:520px}.editorial-copy .eyebrow{margin-bottom:29px}.editorial-copy h1{font-size:clamp(68px,7.1vw,101px);line-height:.99;letter-spacing:-.06em;margin:0 0 32px;color:#253d30;font-weight:400}.editorial-copy h1 em{font-weight:400;color:#637447}.hero-description{font-size:18px;line-height:1.55;color:#404d3c;max-width:360px;margin-bottom:14px}.hero-description.secondary-copy{font-size:14px;line-height:1.8;color:#72776c;max-width:350px;margin-bottom:28px}.hero-actions{align-items:flex-start;flex-direction:column;gap:17px}.hero-actions .btn{min-height:52px;padding:15px 23px}.hero-text-link{display:inline-flex;align-items:center;gap:18px;color:#465b3c;text-decoration:none;font-size:12px;padding:4px 0;border-bottom:1px solid #a8b09a}.hero-text-link span{font-size:17px;line-height:1}.hero-text-link:hover{color:#203b2d;border-color:#203b2d}.hero-foot{font-size:10px;line-height:1.5;color:#797e73;gap:9px;margin-top:30px}.hero-foot .ico{width:15px;height:15px;color:#7b8b69}
.restaurant-portrait{position:relative;width:100%;height:630px;border-radius:140px 24px 24px 24px;margin:0;background:#dedacb;isolation:isolate;box-shadow:0 18px 60px #3036230e}.restaurant-photo{width:100%;height:100%;object-fit:cover;object-position:center 53%;display:block;border-radius:inherit;animation:photo-appear .8s ease-out}.restaurant-portrait:after{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(0deg,#15271ac9 0,transparent 35%,transparent 80%,#17261730);z-index:0;pointer-events:none}.photo-topline{position:absolute;right:27px;top:24px;z-index:1;display:flex;align-items:center;gap:15px;font-size:8px;letter-spacing:.17em;color:#fff8e5;text-shadow:0 1px 7px #0008}.photo-topline .ico{width:22px;height:22px}.restaurant-portrait figcaption{position:absolute;inset:auto 26px 23px 28px;z-index:1;display:flex;justify-content:space-between;align-items:flex-end;gap:15px;color:#fbf5e6}.restaurant-portrait figcaption>span:first-child{font:26px/1.2 Georgia;letter-spacing:-.025em}.restaurant-portrait figcaption em{font-weight:400}.photo-address{font-size:8px;line-height:1.8;letter-spacing:.12em;color:#edeede;text-align:right}.photo-stamp{position:absolute;left:-36px;bottom:128px;z-index:3;display:flex;align-items:center;gap:14px;padding:17px 20px;border:1px solid #fff9;border-radius:14px;background:#faf8f0f0;backdrop-filter:blur(14px);box-shadow:0 12px 36px #1b2b261f;text-decoration:none;color:#30432d;transition:transform .2s}.photo-stamp:hover{transform:translateY(-3px)}.photo-stamp>.ico:first-child{width:36px;height:36px;padding:6px;border:1px solid #ccd4bd;border-radius:10px;background:#f2f3e7}.photo-stamp>.ico:last-child{width:15px;height:15px;margin-left:4px}.photo-stamp b{font-size:14px;display:block;font-weight:600;line-height:1.3}.photo-stamp small{font-size:10px;color:#7d8276;display:block;margin-top:4px}
.club-summary{display:grid;grid-template-columns:repeat(3,1fr);padding:24px 0;border-top:1px solid #d7dbcc;border-bottom:1px solid #d7dbcc;gap:22px}.club-summary>div{display:flex;align-items:center;gap:18px;min-width:0;border-right:1px solid #d7dbcc;padding-right:16px}.club-summary>div:last-child{border-right:0}.summary-number{font:italic 22px Georgia;color:#9a9d7b}.club-summary b{font-size:13px;font-weight:550;display:block;line-height:1.5}.club-summary small{font-size:10px;color:#7c8075;display:block;margin-top:3px;line-height:1.5}
/* The 3D object uses real DOM, lighting gradients and perspective; all surrounding links are interactive. */
.club-showcase{display:grid;grid-template-columns:1fr 1fr;gap:38px;align-items:center;background:#263d32;color:#f6f1e5;border-radius:28px;margin:68px 0 0;padding:56px 58px;overflow:hidden;position:relative}.showcase-copy{position:relative;z-index:2}.showcase-copy .eyebrow{color:#bbc7a1;font-size:9px;margin-bottom:20px}.showcase-copy .eyebrow:before{background:#c0bd8d}.showcase-copy h2{font-size:clamp(32px,3.6vw,46px);letter-spacing:-.04em;line-height:1.12;margin-bottom:20px;color:#f6f1e5}.showcase-copy p{color:#bfcbba;max-width:375px;font-size:13px;line-height:1.85;margin-bottom:25px}.showcase-copy .btn.primary{background:#ececd7;border-color:#ececd7;color:#2f4330;font-size:12px}.showcase-copy .btn.primary:hover{background:#fffaf0;border-color:#fffaf0}.showcase-detail{display:block;font-size:9px;color:#b9c3ad;margin-top:14px;letter-spacing:.02em}.showcase-object{position:relative;isolation:isolate;padding:10px 0;min-width:0}.showcase-object .stage{padding:28px 0}.object-orbit{position:absolute;border:1px solid #bcb68921;border-radius:50%;width:475px;height:475px;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:-1}.orbit-two{width:560px;height:560px;border-color:#bcb6890d}.object-caption{font-size:8px;letter-spacing:.22em;color:#a4b399;display:block;text-align:center;margin-top:12px}.membership-card{aspect-ratio:1.58;padding:26px 28px;border-radius:20px;background:radial-gradient(ellipse at 0 0,#7f90663b,transparent 70%),linear-gradient(120deg,#3c5140,#233728 52%,#17281d);border:1px solid #c5b98972;box-shadow:2px 3px 0 #afab7c65,7px 7px 0 -4px #687b54,12px 28px 44px #0b171f50,inset 0 1px 0 #eeebcb70;color:#f6f1e5}.membership-card .card-top img{width:58px;height:58px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px #b4b97c21}.membership-card .card-top span{font-size:8px;letter-spacing:.16em;color:#d3c39f;line-height:1.9}.membership-card .card-name{font-family:Georgia,serif;font-size:clamp(22px,2.2vw,29px);margin-top:21px;color:#f7f0dd}.membership-card .card-bottom{color:#c7d0b0;font-size:9px;margin-top:18px}.membership-card .card-bottom b{font-size:9px;color:#d3cda9;letter-spacing:.1em}.stage:after{background:#070f0b4a}.stage .membership-card{animation:card-float 9s ease-in-out infinite}.stage{max-width:480px;margin:auto}
.section{padding:72px 0}.section-heading{margin-bottom:34px}.section-heading h2{font-size:45px;line-height:1.12}.how-it-works .steps{gap:22px}.how-it-works .step-card{border:1px solid #dce0d2;background:#fbfaf5;border-radius:19px;padding:26px 25px 22px}.how-it-works .step-card .step-no{font:italic 25px Georgia;letter-spacing:-.05em;display:flex;align-items:center;justify-content:space-between;color:#73845f;margin-bottom:24px}.step-no span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#eef1e6;color:#778867}.step-no .ico{width:19px;height:19px}.how-it-works .step-card h3{font-size:23px;color:#314532}.how-it-works .step-card p{font-size:12px;line-height:1.85;color:#747b6d;margin-bottom:0;max-width:none}.restaurant-note{display:grid;grid-template-columns:.92fr 1.08fr;gap:55px;align-items:center;padding:0 0 15px;margin-top:62px}.restaurant-note-photo{height:330px;border-radius:22px;overflow:hidden}.restaurant-note-photo img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.restaurant-note h2{font-size:42px;line-height:1.13}.restaurant-note p{font-size:13px;line-height:1.85;max-width:400px;color:#727b6b}.restaurant-note .btn{font-size:12px}.footer{margin-top:65px;padding-top:27px;gap:20px;font-size:10px;color:#7b8073}.footer .actions{gap:17px}.footer a{color:#657459}.footer a:hover{color:#233e32}
/* The same soft palette continues through accounts, rewards, scanner and admin, without weakening auth. */
.view{min-height:60vh;animation:appear .25s ease}.page-intro{background:radial-gradient(ellipse at 90% 0,#dfe4cb50,transparent 60%);padding:46px 0 35px}.page-intro h1{color:#273f32;line-height:1.08}.page-intro p{color:#767e6e}.glass,.light-panel{background:#fdfbf6;color:#233b30;border:1px solid #d8ddcd;border-radius:24px;box-shadow:0 12px 32px #3d40310a;padding:29px}.glass h2,.glass h3,.light-panel h2,.light-panel h3{color:#2b4133}.light-panel .muted{color:#707865}.light-panel .eyebrow,.light-panel .field label{color:#647250}.light-panel .btn.primary{background:#294733;border-color:#294733;color:#fffaf0}.light-panel .btn.primary:hover{background:#375b40}.light-panel .btn{color:#304832;border-color:#c8d0b9}.light-panel .btn.danger{color:#97443b;background:#faf0ec}.balance-title{color:#314c37}.profile-status{background:#edf1e5;color:#516a41;border-color:#c4d1b2}.profile-status.blocked{background:#faefea;color:#9e4e41;border-color:#d7b7aa}.progress-line{background:#e6e9dc}.progress-line>i{background:linear-gradient(90deg,#72865b,#a7b38d)}.qr-holder{border:1px solid #e2e5dc;background:white;box-shadow:none}.field label{color:#5b6e4d;font-size:11px}.field input,.field select,.field textarea,.light-panel input,.light-panel select{background:#fffefa;color:#2c4030;border:1px solid #ccd5bc;border-radius:11px;box-shadow:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:#7c8e63;box-shadow:0 0 0 3px #aab79020;outline:none}.field input::placeholder{color:#98a08d}.field select option{background:#fffefa;color:#2c4030}.password-wrap button{color:#657951}.check{color:#6d765f}.check input{accent-color:#547541}.notice{background:#f4f0e3;border-color:#d9cfad;color:#76613b}.notice.error,.error-slot{background:#faf0eb;border-color:#e1b8ac;color:#a24234}.notice.success{background:#edf3e5;border-color:#c8d6b0;color:#53713e}.field-hint,.auth-foot{color:#7a816f}.tabs{background:#eaede3;border-color:#d5dccc}.tabs button.active{color:#fff7eb;background:#3c5938}.tabs button{color:#73836a}.movement .mov-icon{background:#eff2e7;color:#7a8c5f;border-color:#dbe2cd}.movement .mov-main b{color:#3e4e38}.movement .mov-main small{color:#859074}.movement .delta{color:#5d783f}.movement .delta.minus{color:#b16954}.empty{color:#7f8a73}.empty h3{color:#334933}.reward-grid{grid-template-columns:repeat(auto-fit,minmax(265px,1fr));gap:20px}.reward-card{background:linear-gradient(130deg,#fdfbf5,#eeefe3);border:1px solid #d8ddc9;border-radius:22px;padding:28px;box-shadow:0 14px 28px #35482a08}.reward-card:before{border-color:#8e9c6530;box-shadow:0 0 0 22px #a7b9830a}.reward-card .badge{color:#798553;font-weight:650;letter-spacing:.12em;font-size:11px}.reward-discount{color:#3d5437;font-size:64px;margin:21px 0 7px}.reward-card h3{color:#314b33;font-size:24px}.reward-card p{color:#79826c}.reward-card .reward-state{color:#6a7e4d}.reward-card .btn{margin-top:auto}.balance-bar{background:#e5eada;border-color:#c9d6b7;color:#394f32}.balance-bar .small{color:#7c886c}.gift-symbol .ico{color:#72894b}.camera-zone{background:radial-gradient(ellipse at center,#344d36,#213727);border-color:#587347}.camera-overlay small{color:#c2cfb0}.camera-zone .scan-bracket{border-color:#cedea266}.scan-bracket:before,.scan-bracket:after{border-color:#bfcea6}.scan-bracket .ico{color:#c8d4aa}.camera-zone.running .scan-bracket i{background:#e1e9bd;box-shadow:0 0 12px #dee6ba}.receipt{background:#edf0e5;border-color:#d4ddc4}.receipt-row.total{border-color:#b8c49f}.receipt-row big{color:#516b3b}.customer-mini{color:#334c31}.avatar{background:#ecf0e1;color:#617a43;border-color:#d0dbbd}.pill-row button{color:#6d8153}.pill-row button.selected{background:#3e5d38;color:#fffbe9;border-color:#3e5d38}.metrics .metric{background:#ecf0e4;border-color:#d3dcc6}.metric b{color:#526d39}.metric span{color:#7a8767}.client-item{background:#fefcf7;border-color:#d6ddc9}.client-item .num{color:#5b743f}.client-item b{color:#3f5536}.client-item small{color:#7c876b}.menu-link{background:#fdfbf6;border-color:#d9dfce;transition:background .15s,transform .15s}.menu-link:hover{background:#ecf0e3;transform:translateX(3px)}.menu-link>.ico{color:#7b8c5d}.menu-link b{color:#334c30}.menu-link small{color:#7d866e}.rules-list b{color:#314a30}.help-items b{color:#355335}.modal-backdrop{background:#1a2c2085;backdrop-filter:blur(9px)}.modal{background:#faf8f0;border:1px solid #d0d8bf;color:#354b31;box-shadow:0 30px 100px #14281340}.modal-heading h2{color:#334b30}.modal-heading p{color:#839075}.auth-icon{background:#edf1e3;border-color:#d0ddba;color:#778c55}.auth-foot{border-color:#dce1d2}.toast{background:#26462f;color:#faf8e9;box-shadow:0 9px 24px #1b392533}.nojs{background:#f8f0d7;border-color:#d7c697;color:#6c5c38}.boot-error{max-width:1200px;margin:20px auto;background:#faf1e1;border:1px solid #d4bc87;color:#7b6335}.offline-banner{background:#6b5540;color:#fff9ec}.skeleton{background:#f9f7f0;color:#7d8773}
/* Admin settings retain exactly the V18 controls and selectors. */
.admin-tabs{background:#e9eddf;border-color:#d2ddc1}.admin-tab{color:#718360}.admin-tab.selected{color:#fffaf0;background:#3a5935;box-shadow:0 3px 10px #2d482a15}.admin-tab.selected span{color:#fff7dc;background:#ffffff1c}.admin-tab span{background:#f7f7ee;color:#738259}.settings-section{background:#fdfbf6}.admin-reward{background:#fffdf8;border-color:#d7dfc9}.admin-reward-icon{background:#eef3e4;color:#82905c;border-color:#d4dfbd}.admin-reward-info h3{color:#384f31}.admin-reward-info p{color:#7c876a}.admin-reward-info small{color:#859464}.status-small{color:#7f896e}.status-small.live:before{background:#839b50}.admin-reward.paused{background:#eff0e7;opacity:1}.admin-reward.paused .status-small{color:#858b78}.settings-shield{color:#7a905c}.earning-preview{background:linear-gradient(135deg,#f0f3e8,#e9eddc);border-color:#d5dfc2}.earning-preview h3{color:#3f5931}.example-row b{color:#648046}.settings-audit{background:#eef1e5;border-color:#d8dfca}.audit-row>span{color:#94a06e}.audit-row small{color:#8a9579}.admin-tip{color:#738953;border-color:#c7d6af;background:#f5f7ee}.admin-tip p{color:#879572}.receipt-reward{color:#748b4e}.receipt-reward small{color:#859473}
.loyalty-policy{background:#e9eee0;border:1px solid #cfdcbd;color:#334c32;gap:20px;margin:30px 0;padding:26px;border-radius:19px}.loyalty-policy .policy-icon{border-color:#bed0a5;color:#788e54;background:#f2f6e8}.loyalty-policy h3{color:#3a5334;font-size:23px}.loyalty-policy p{color:#77866a;font-size:13px;line-height:1.8}.loyalty-policy strong{color:#3b5535}.policy-example{border-color:#c8d6b4;margin-top:15px;padding-top:14px}.policy-example>b{color:#789454;font-size:11px;letter-spacing:.07em}.loyalty-policy.compact p{font-size:12px}.loyalty-policy.compact h3{font-size:19px}
@keyframes photo-appear{from{opacity:.5}to{opacity:1}}
@media(min-width:1550px){.editorial-hero{gap:65px;padding-top:50px}.restaurant-portrait{height:660px}.editorial-copy h1{font-size:108px}}
@media(max-width:1120px){.wrap{width:calc(100% - 52px)}.top-links{display:none}.editorial-hero{grid-template-columns:1fr 1.12fr;gap:35px;min-height:650px;padding-top:32px}.restaurant-portrait{height:580px;border-top-left-radius:120px}.editorial-copy h1{font-size:79px}.editorial-copy{padding-bottom:28px}.photo-stamp{left:-20px;padding:14px}.club-showcase{padding:40px 35px;gap:27px}.membership-card{padding:24px}.membership-card .card-name{font-size:24px}.hero-description{font-size:17px}.club-summary b{font-size:12px}.club-summary small{font-size:9px}.restaurant-note{gap:32px}.restaurant-note h2{font-size:38px}}
@media(max-width:820px){.header-inner{height:77px}.brand-name{font-size:18px}.brand-logo{width:48px;height:48px}.session-chip{display:none}.editorial-hero{gap:26px}.editorial-copy h1{font-size:66px}.hero-description{font-size:16px}.hero-description.secondary-copy{font-size:12px}.restaurant-portrait{height:530px;border-top-left-radius:90px}.photo-stamp{left:-12px;gap:9px}.photo-stamp b{font-size:12px}.photo-stamp small{font-size:8px}.photo-stamp>.ico:last-child{display:none}.restaurant-portrait figcaption{left:20px;right:20px}.restaurant-portrait figcaption>span:first-child{font-size:23px}.photo-address{display:none}.club-summary{gap:12px}.club-summary>div{gap:10px}.club-showcase{grid-template-columns:1fr 1fr;gap:25px;padding:36px 30px}.showcase-copy h2{font-size:35px}.membership-card{padding:19px}.membership-card .card-top img{width:43px;height:43px}.membership-card .card-name{font-size:22px}.membership-card .card-bottom{font-size:8px}.how-it-works .step-card{padding:22px 17px}.how-it-works .step-card h3{font-size:21px}.section-heading h2{font-size:40px}.restaurant-note{grid-template-columns:1fr 1fr;gap:26px}.restaurant-note-photo{height:310px}.restaurant-note h2{font-size:35px}}
@media(max-width:650px){html{scroll-padding-top:94px}.wrap{width:calc(100% - 38px)}.header-inner{height:75px;gap:9px}.brand{gap:9px;min-width:0}.brand-name{font-size:16px;letter-spacing:-.04em;max-width:165px}.brand-name small{font-size:6.8px;letter-spacing:.1em;margin-top:4px}.brand-logo{width:43px;height:43px;flex-shrink:0}.account-control .btn{font-size:10px;min-height:39px;padding:9px 11px;gap:6px}.account-control .btn .ico{width:14px;height:14px}.editorial-hero{display:flex;flex-direction:column;gap:25px;padding-top:33px;padding-bottom:29px;min-height:0;align-items:stretch}.editorial-copy{padding:0;max-width:none}.editorial-copy .eyebrow{font-size:8px;letter-spacing:.18em;margin:0 0 20px}.editorial-copy h1{font-size:64px;line-height:.98;letter-spacing:-.06em;margin-bottom:20px}.hero-description{font-size:16px;margin-bottom:10px;line-height:1.6;max-width:290px}.hero-description.secondary-copy{font-size:12px;line-height:1.7;max-width:340px;margin-bottom:21px}.hero-actions{gap:13px}.hero-actions .btn{font-size:12px;min-height:48px;padding:13px 20px}.hero-text-link{font-size:11px;gap:16px}.hero-foot{font-size:9px;margin-top:22px}.restaurant-portrait{height:410px;border-radius:95px 18px 18px 18px}.restaurant-photo{object-position:center 57%}.photo-topline{top:19px;right:19px;font-size:7px;gap:8px}.photo-topline .ico{width:17px;height:17px}.photo-stamp{left:16px;bottom:90px;padding:13px 15px;max-width:calc(100% - 32px);gap:10px;border-radius:12px}.photo-stamp b{font-size:12px}.photo-stamp small{font-size:8.5px;line-height:1.5}.photo-stamp>.ico:first-child{height:32px;width:32px}.photo-stamp>.ico:last-child{display:block;width:13px;height:13px;margin-left:3px}.restaurant-portrait figcaption{bottom:18px;left:20px;right:20px}.restaurant-portrait figcaption>span:first-child{font-size:26px}.photo-address{display:block;font-size:7px;line-height:1.7}.club-summary{grid-template-columns:1fr;padding:9px 0;gap:0}.club-summary>div{border-right:0;border-bottom:1px solid #dde2d2;gap:18px;padding:17px 3px}.club-summary>div:last-child{border-bottom:0}.summary-number{width:28px;font-size:21px}.club-summary b{font-size:13px}.club-summary small{font-size:10px}.club-showcase{grid-template-columns:1fr;gap:12px;padding:30px 25px 28px;margin-top:36px;border-radius:24px}.showcase-copy h2{font-size:35px}.showcase-copy p{font-size:12px;line-height:1.8;max-width:none}.showcase-copy .eyebrow{font-size:8px}.showcase-copy .btn{min-height:44px;font-size:11px;padding:12px 18px}.showcase-object{padding:0}.showcase-object .stage{padding:30px 3px 16px}.showcase-detail{font-size:9px}.object-orbit{width:350px;height:350px}.orbit-two{width:425px;height:425px}.membership-card{padding:24px 23px;aspect-ratio:1.58;max-width:460px;margin:auto}.membership-card .card-top img{width:49px;height:49px}.membership-card .card-top span{font-size:7px}.membership-card .card-name{font-size:24px;margin-top:20px}.membership-card .card-bottom{font-size:8px;margin-top:20px}.membership-card .card-bottom b{font-size:8px}.section{padding:47px 0 25px}.section-heading{align-items:flex-start;flex-direction:column;margin-bottom:25px;gap:22px}.section-heading h2{font-size:36px}.section-heading .eyebrow{font-size:8px;margin-bottom:14px}.section-heading .btn{font-size:11px;min-height:43px}.how-it-works .steps{gap:12px}.how-it-works .step-card{padding:23px 22px}.how-it-works .step-no{margin-bottom:18px}.how-it-works .step-card h3{font-size:24px;margin-bottom:10px}.how-it-works .step-card p{font-size:12px;line-height:1.8}.restaurant-note{grid-template-columns:1fr;gap:27px;margin-top:40px}.restaurant-note-photo{height:275px;border-radius:18px}.restaurant-note h2{font-size:37px}.restaurant-note p{font-size:12px;line-height:1.8}.restaurant-note .btn{font-size:12px}.loyalty-policy{padding:21px 16px;gap:11px;margin:25px 0}.loyalty-policy .policy-icon{width:30px;height:30px;flex-basis:30px}.loyalty-policy h3{font-size:20px;line-height:1.3}.loyalty-policy p{font-size:12px}.policy-example>b{font-size:10px}.loyalty-policy.compact{padding:16px;gap:11px}.loyalty-policy.compact h3{font-size:18px}.page-intro{padding:34px 0 27px}.page-intro h1{font-size:39px}.page-intro p{font-size:12px}.page-intro .eyebrow{font-size:9px}.glass,.light-panel{padding:24px 20px;border-radius:20px}.glass h2,.light-panel h2{font-size:30px}.bottom-nav{height:73px;bottom:max(12px,env(safe-area-inset-bottom));border-radius:24px;width:calc(100% - 28px)}.bottom-nav .nav-center{height:84px;width:84px;margin-top:-24px}.bottom-nav a{font-size:10px}.reward-grid{grid-template-columns:1fr;gap:14px}.reward-card{padding:25px}.reward-card .reward-discount{font-size:61px;margin:18px 0 5px}.reward-card h3{font-size:25px}.reward-card .reward-state{min-height:auto;margin:6px 0 17px}.reward-card .btn{min-height:45px;font-size:12px}.reward-card .badge{font-size:11px}.reward-card p{font-size:12px}.receipt{padding:17px}.receipt-row{font-size:12px;gap:16px}.modal{padding:28px 23px;background:#faf8f0}.modal-heading h2{font-size:29px}.settings-section{padding:21px 17px}.settings-heading h2{font-size:30px}.admin-tab{font-size:11px}.metrics .metric{padding:16px 12px}.footer{margin-top:44px;font-size:9px;gap:15px;align-items:flex-start}.footer .actions{column-gap:16px;row-gap:10px}.boot-error{margin:14px 19px;font-size:12px;padding:16px}}
@media(max-width:365px){.wrap{width:calc(100% - 30px)}.brand-logo{width:37px;height:37px}.brand-name{font-size:14px;max-width:140px}.brand-name small{font-size:6px}.account-control .btn{font-size:9px;padding:9px}.account-control .btn .ico{display:none}.editorial-copy h1{font-size:58px}.restaurant-portrait{height:370px}.photo-stamp small{font-size:7.5px}.photo-address{display:none}.membership-card{padding:21px}.membership-card .card-name{font-size:21px}.showcase-copy h2{font-size:32px}.admin-tab .ico{display:none}.receipt-row{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.restaurant-photo,.view,.stage .membership-card{animation:none!important}.btn,.hero-text-link,.photo-stamp,.menu-link{transition:none}.stage .membership-card{transform:rotateY(-13deg) rotateX(5deg) rotateZ(-3deg)}}
@media print{body{background:white;color:#233b30}#printArea{background:white;color:#233b30}}
/* Readable supporting text on the mineral background. */
.loyalty-policy p,.loyalty-policy.compact p{color:#5f7152}.policy-example>b{color:#657b46}.admin-reward-info p,.admin-reward-info small,.audit-row small,.admin-tip p,.settings-audit summary span{color:#697956}.reward-card p,.reward-card .reward-state,.client-item small,.example-row{color:#677850}.field-hint,.auth-foot,.help-items div{color:#68765b}.hero-description.secondary-copy,.club-summary small,.hero-foot{color:#707769}


/* ======================================================================
   V20 · Maison & Club
   Couche visuelle uniquement. Aucun changement aux comptes, points,
   autorisations, formulaires, actions ou appels serveur.
   ====================================================================== */
:root {
  --bg:#f5f2ec; --panel:#fffdf8; --panel2:#eaece1;
  --cream:#263e34; --text:#263e34; --ink:#263e34;
  --sage:#5c6f51; --muted:#687268; --gold:#967c51;
  --line:rgba(45,67,53,.14); --forest:#1c3b30; --linen:#f5f2ec;
  --red:#9a413a; --radius:24px;
  --shadow:0 18px 45px rgba(41,53,40,.065);
}
html { scroll-padding-top:108px; }
body {
  background:radial-gradient(ellipse at 7% 22%,#e9e5d932,transparent 46%),var(--bg);
  color:var(--ink); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  font-size:15px; line-height:1.65; padding-bottom:134px;
}
.wrap { width:min(1280px,calc(100% - 80px)); }
.narrow { width:min(760px,calc(100% - 40px)); }
h1,h2,h3 { color:var(--ink); }
h2 { font-size:clamp(36px,4.1vw,56px); letter-spacing:-.045em; }
p { text-wrap:pretty; }
.eyebrow { color:#677352; letter-spacing:.17em; font-size:10px; gap:12px; }
.eyebrow:before { width:26px; background:#b29d71; }
.small { font-size:13px; }
.muted { color:var(--muted); }
.ico { stroke-width:1.55; }
.btn {
  min-height:49px; border-radius:14px; padding:13px 21px;
  font-size:13px; font-weight:600; color:#2f4a3c;
  border:1px solid #c8cbbd; background:#fffdf645;
  transition:background .2s, border-color .2s, transform .2s, box-shadow .2s;
}
.btn:hover:not(:disabled) { background:#eeefe5; border-color:#a6b198; box-shadow:0 7px 17px #263c300c; transform:translateY(-2px); }
.btn:active:not(:disabled) { transform:translateY(0); }
.btn.primary { background:linear-gradient(135deg,#345446,#1d3b30); color:#fffdf3; border-color:#2e4c3d; box-shadow:inset 0 1px 0 #fff2,0 7px 16px #1c392c14; }
.btn.primary:hover:not(:disabled) { background:linear-gradient(135deg,#42614f,#2a4839); color:#fffef7; border-color:#476450; }
.btn.gold { background:#eee9db; border-color:#dcd3bf; color:#665735; }
.btn.danger { background:#f9ece8; border-color:#edd4cc; color:#96483d; }
.btn.sm { min-height:40px; border-radius:11px; font-size:12px; }
.text-btn { color:#385440; text-decoration-thickness:1px; text-underline-offset:5px; }
:focus-visible { outline:3px solid #ad935c!important; outline-offset:4px!important; }
.icon-button { color:var(--forest); background:#f2f1e8; border-color:#d7d9ca; }

/* En-tête : lien de connexion toujours accessible, aucun faux bouton. */
.site-header { background:#f8f6efeb; border-bottom:1px solid #dcded159; box-shadow:0 3px 22px #35402d03; backdrop-filter:blur(22px); }
.header-inner { height:90px; gap:22px; }
.brand { gap:13px; }
.brand-logo { width:55px; height:55px; padding:2px; background:#fff; border:1px solid #d8dccb; box-shadow:0 3px 9px #2c38250a; }
.brand-name { font-size:21px; font-weight:400; letter-spacing:-.045em; }
.brand-name small { font-size:7.5px; letter-spacing:.21em; color:#78816d; margin-top:7px; }
.top-links { display:flex; gap:30px; font-size:13px; }
.top-links a { color:#63705f; padding:10px 0; position:relative; transition:color .18s; }
.top-links a:after { content:""; position:absolute; bottom:2px; height:1px; left:0; right:100%; background:#627248; transition:right .2s; }
.top-links a:hover { color:#273f31; }
.top-links a:hover:after { right:0; }
.account-control .btn { border-radius:999px; min-height:45px; padding:11px 18px; background:#fffdf57a; font-size:12px; }
.account-control .btn .ico { width:17px; height:17px; }
.session-chip { font-size:11px; color:#52684c; max-width:120px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.session-chip:empty { display:none; }

/* Accueil photographique, construit en HTML (le visuel n'est pas une image de site). */
.editorial-hero {
  position:relative; isolation:isolate; display:grid; grid-template-columns:.95fr 1.05fr;
  align-items:stretch; gap:0; min-height:0; height:670px; padding:0;
  margin:26px auto 0; border-radius:30px; overflow:hidden;
  background:radial-gradient(ellipse at 14% 88%,#47604b50,transparent 64%),#1b382e;
  border:1px solid #1f3a2e; box-shadow:0 22px 56px #22362914;
}
.editorial-hero:before {
  content:""; position:absolute; width:680px; height:680px; left:-310px; bottom:-540px;
  border-radius:50%; border:1px solid #b7ae7b22;
  box-shadow:0 0 0 50px #b7ae7b06,0 0 0 100px #b7ae7b06,0 0 0 150px #b7ae7b04;
  z-index:-1; pointer-events:none;
}
.editorial-copy { padding:64px 42px 42px 54px; align-self:center; max-width:none; min-width:0; position:relative; z-index:2; }
.editorial-copy .eyebrow { color:#d3cdab; margin-bottom:25px; font-size:9px; letter-spacing:.2em; }
.editorial-copy .eyebrow:before { background:#bfa876; }
.editorial-copy h1 { font:400 clamp(65px,6.8vw,98px)/.99 Georgia,serif; letter-spacing:-.06em; color:#faf5e7; margin:0 0 24px; }
.editorial-copy h1 em { color:#d6cba1; font-weight:400; }
.hero-description { font-size:17px; line-height:1.55; color:#f1eedf; max-width:370px; margin-bottom:15px; }
.hero-description.secondary-copy { color:#c3ccb9; font-size:13px; line-height:1.8; max-width:350px; margin-bottom:25px; }
.hero-actions { flex-direction:column; align-items:flex-start; gap:14px; }
.hero-actions .btn.primary { background:linear-gradient(125deg,#eee6cd,#dfd1a5); border:1px solid #eae0c1; color:#263b2e; box-shadow:inset 0 1px 0 #fff9,0 8px 20px #051b2425; min-height:51px; padding:14px 22px; border-radius:13px; }
.hero-actions .btn.primary:hover { background:#f6eed8; border-color:#fff2d5; color:#233b2d; }
.hero-text-link { color:#dce2cb; border-bottom:1px solid #a9b59460; font-size:11px; gap:22px; }
.hero-text-link:hover { color:#fff8e7; border-color:#ddd1a5; }
.hero-foot { margin-top:27px; color:#b6c3af; font-size:10px; }
.hero-foot .ico { color:#c2cbac; width:14px; height:14px; }
.restaurant-portrait { margin:0; height:100%; border-radius:125px 0 0 0; overflow:hidden; box-shadow:none; background:#203e30; min-width:0; }
.restaurant-photo { width:100%; height:100%; object-fit:cover; object-position:50% 53%; border-radius:inherit; filter:saturate(.82) brightness(.96); animation:v20-photo 1s ease-out both; }
.restaurant-portrait:after { background:linear-gradient(0deg,#112d26dc,transparent 43%),linear-gradient(90deg,#20382c29,transparent 18%); }
.photo-topline { top:26px; right:25px; font-size:8px; letter-spacing:.16em; gap:12px; }
.photo-topline .ico { width:21px; height:21px; }
.restaurant-portrait figcaption { left:35px; right:29px; bottom:29px; gap:24px; }
.restaurant-portrait figcaption>span:first-child { font-size:29px; color:#fff7e3; }
.photo-address { display:block; font-size:8px; color:#e0deca; line-height:1.9; letter-spacing:.13em; }
.photo-stamp {
  left:auto; right:25px; bottom:139px; max-width:calc(100% - 50px);
  background:#fff9e9ec; border:1px solid #fffdf4; color:#263e31;
  padding:16px 20px; gap:14px; border-radius:16px;
  box-shadow:0 18px 35px #172d2530,inset 0 1px 0 #fff;
}
.photo-stamp>.ico:first-child { background:#ebe9d7; border:1px solid #d5d8bf; border-radius:12px; padding:8px; width:42px; height:42px; }
.photo-stamp>.ico:last-child { display:block; width:16px; height:16px; }
.photo-stamp b { font-size:14px; }
.photo-stamp small { color:#72735e; font-size:10px; line-height:1.5; }
.club-summary { margin:0; padding:27px 16px 30px; border-top:0; border-bottom:1px solid #d9dccd; gap:20px; grid-template-columns:repeat(3,1fr); }
.club-summary>div { padding:0 23px 0 8px; border-right:1px solid #d9dccd; gap:16px; }
.club-summary>div:last-child { border:0; }
.summary-number { font:italic 24px Georgia; color:#9a8d6c; }
.club-summary b { font-size:12px; font-weight:600; color:#294436; }
.club-summary small { font-size:10px; color:#727a6b; margin-top:4px; }

/* Objet fidélité en relief : lumière, bords dorés, perspective douce. */
.club-showcase { background:radial-gradient(ellipse at 89% 53%,#e2ddc8 0%,transparent 51%),#eeede3; color:var(--ink); grid-template-columns:.93fr 1.07fr; margin-top:60px; padding:62px 60px; gap:56px; border:1px solid #ddded0; border-radius:28px; box-shadow:inset 0 1px 0 #fffc; }
.showcase-copy .eyebrow { color:#758065; margin-bottom:24px; font-size:9px; }
.showcase-copy h2 { font-size:clamp(36px,3.8vw,51px); line-height:1.09; color:#263f33; margin-bottom:21px; }
.showcase-copy p { color:#697262; font-size:13px; line-height:1.9; max-width:365px; margin-bottom:25px; }
.showcase-copy .btn.primary { background:linear-gradient(135deg,#385344,#213e30); color:#f8f6e7; border-color:#314b3b; }
.showcase-copy .btn.primary:hover { background:#405b46; color:#fff9ea; border-color:#405b46; }
.showcase-detail { color:#7b826f; font-size:10px; margin-top:18px; }
.showcase-object { padding:14px 0; }
.object-orbit { border-color:#999e7424; width:400px; height:400px; }
.orbit-two { width:510px; height:510px; border-color:#999e7414; }
.showcase-object .stage { padding:20px 4px 35px; }
.object-caption { color:#70765e; font-size:8px; letter-spacing:.24em; margin-top:15px; }
.stage:after { background:#283b2829; filter:blur(16px); bottom:-7px; height:22px; left:8%; right:5%; }
.membership-card {
  background:radial-gradient(ellipse at 0 0,#75846b48,transparent 58%),linear-gradient(122deg,#375546,#1c382d 60%,#11281f);
  border:1px solid #cbb57c; color:#f7f0df; padding:28px 31px;
  box-shadow:1px 2px 0 #8f8d61,3px 5px 0 -1px #b8aa7870,12px 30px 38px #253a3233,inset 0 1px 0 #fef1c77a;
  border-radius:22px; aspect-ratio:1.62; transform-style:preserve-3d;
}
.stage .membership-card { animation:v20-card 8s ease-in-out infinite; transform:perspective(1000px) rotateY(-13deg) rotateX(7deg) rotateZ(-5deg); }
.membership-card:before { width:285px; height:285px; top:-108px; right:-60px; border-color:#d9c38c44; box-shadow:0 0 0 20px #cab58110,0 0 0 45px #cab58109,0 0 0 73px #cab58108; }
.membership-card:after { background:linear-gradient(117deg,transparent 17%,#fff9da12 42%,transparent 64%); }
.membership-card .card-top img { width:60px; height:60px; box-shadow:0 0 0 4px #dec89115,0 5px 12px #0002; }
.membership-card .card-top span { color:#d6c699; font-size:8px; letter-spacing:.22em; line-height:1.8; }
.membership-card .card-name { color:#fcf2d9; font-size:30px; margin-top:23px; text-shadow:0 1px 0 #fff2,1px 2px 2px #03140f80; letter-spacing:-.035em; }
.membership-card .card-bottom { color:#cdd2b4; margin-top:24px; font-size:9px; }
.membership-card .card-bottom b { font-size:9px; }

/* Sections de lecture : moins de cadres et une hiérarchie plus claire. */
.section { padding:67px 0 40px; }
.section-heading { margin-bottom:30px; }
.section-heading .eyebrow { margin-bottom:18px; }
.section-heading h2 { font-size:clamp(35px,4vw,52px); line-height:1.1; }
.how-it-works .steps { gap:20px; }
.how-it-works .step-card { background:#fffcf6a1; padding:28px 27px; border:1px solid #dcdfd1; border-radius:20px; box-shadow:inset 0 1px 0 #fff; }
.how-it-works .step-card .step-no { display:flex; justify-content:space-between; align-items:center; margin-bottom:28px; font:italic 25px Georgia; color:#a1936d; }
.how-it-works .step-no>span { height:38px; width:38px; border:1px solid #d6ddc7; color:#5e7453; background:#edf0e4; border-radius:13px; display:grid; place-items:center; }
.how-it-works .step-no .ico { height:18px; width:18px; }
.how-it-works .step-card h3 { font-size:24px; color:#314a3b; line-height:1.17; }
.how-it-works .step-card p { font-size:12px; color:#70786a; margin-bottom:0; line-height:1.85; max-width:none; }
.restaurant-note { display:grid; grid-template-columns:1.05fr .95fr; gap:72px; align-items:center; margin-top:55px; padding-top:20px; }
.restaurant-note-photo { height:350px; border-radius:24px; overflow:hidden; box-shadow:0 14px 40px #283a240e; }
.restaurant-note-photo img { filter:saturate(.85); width:100%; height:100%; object-fit:cover; }
.restaurant-note h2 { font-size:48px; }
.restaurant-note p { max-width:390px; font-size:13px; line-height:1.85; color:#6e7968; }
.loyalty-policy { background:#e9e9dd; border:1px solid #d8dcc8; border-left:3px solid #a4ad83; border-radius:18px; padding:25px 28px; gap:18px; margin:29px 0; box-shadow:none; }
.loyalty-policy .policy-icon { background:#f9f7eb; color:#63774d; border:1px solid #d4d9c1; width:39px; height:39px; flex-basis:39px; border-radius:13px; }
.loyalty-policy h3 { color:#384e3a; font-size:23px; margin:2px 0 10px; line-height:1.2; }
.loyalty-policy p { color:#66715d; font-size:12px; line-height:1.8; }
.policy-example { background:#faf7ed80; border-color:#d6dbc6; border-radius:12px; }
.policy-example>b { color:#586a43; }
.loyalty-policy.compact { background:#e9eddf; border-color:#d5ddc5; padding:19px 22px; }
.loyalty-policy.compact h3 { font-size:21px; }

/* Écrans intérieurs : formulaires et outils habillés, mécanique inchangée. */
.page-intro { padding:42px 0 31px; background:none; }
.page-intro h1 { font-size:clamp(39px,4.5vw,61px); margin-bottom:15px; line-height:1.06; }
.page-intro p { font-size:13px; line-height:1.75; color:#74806e; max-width:750px; }
.page-intro .eyebrow { font-size:10px; margin-bottom:18px; }
.glass,.light-panel { background:#fffdf7; color:#2c4436; border:1px solid #dbdfcf; border-radius:24px; padding:30px; box-shadow:0 12px 36px #20392907,inset 0 1px 0 #fff; }
.glass h2,.light-panel h2 { color:#2c4335; font-size:35px; }
.glass h3,.light-panel h3 { color:#2d4835; }
.glass .muted,.light-panel .muted { color:#6d7868; }
.field { margin-bottom:19px; }
.field label { color:#54634e; font-size:12px; font-weight:600; letter-spacing:.01em; margin-bottom:8px; }
input,select,textarea,.field input,.field select,.field textarea { background:#f5f5ee; color:#2d4437; border:1px solid #d4dbca; border-radius:12px; min-height:49px; font-size:14px; box-shadow:inset 0 1px 3px #223c2503; }
.field input:focus,.field select:focus,.field textarea:focus { background:#fffef8; border-color:#8f9f7d; box-shadow:0 0 0 3px #97aa801c; }
input::placeholder,textarea::placeholder { color:#919987; }
.password-wrap input { padding-right:82px; }
.password-wrap button { color:#5e6f52; font-size:11px; font-weight:600; }
.field-hint,.auth-foot,.check { font-size:11px; line-height:1.7; color:#77816e; }
.check input { min-height:0; width:18px; height:18px; accent-color:#3a5a40; flex:none; }
.auth-icon { width:50px; height:50px; border-radius:15px; background:#eaeddc; border-color:#d6dec7; color:#516a46; }
.error-slot { background:#fcf0eb; border:1px solid #ecd1c5; color:#94483e; }
.notice,.light-panel .notice { background:#f1eedf; border-color:#dfd6be; color:#706446; border-radius:12px; }
.notice.success { color:#365a3a; background:#eaf0e2; border-color:#d1ddc5; }
.notice.error { color:#8f443b; background:#f9ebe4; border-color:#e9cbbd; }
.separator { border-color:#dde1d3; background:#dce0d1; }

/* Connexion en deux panneaux sur ordinateur ; une seule colonne sur mobile. */
.view:has(.registration-box) {
  width:min(1120px,calc(100% - 80px)); margin:36px auto 28px;
  display:grid; grid-template-columns:.92fr 1.08fr; gap:0;
  min-height:610px; background:#fffdf7; border:1px solid #d9decc; border-radius:28px;
  overflow:hidden; box-shadow:0 18px 55px #263e300a;
}
.view:has(.registration-box)>.page-intro {
  position:relative; padding:50px 39px; margin:0; min-height:610px; color:#faf5e7;
  background:linear-gradient(0deg,#19392ff9 0%,#19392fa0 66%,#173a2fe0),url('assets/restaurant.webp') center 48%/cover;
  display:flex; align-items:flex-start;
}
.view:has(.registration-box)>.page-intro:after { content:"LES MARRONNIERS D’ARC  /  LE CLUB"; position:absolute; left:39px; right:30px; bottom:36px; color:#d9d3b4; font-size:8px; letter-spacing:.19em; }
.view:has(.registration-box)>.page-intro>.wrap { width:100%; }
.view:has(.registration-box)>.page-intro .eyebrow { color:#d5c8a0; font-size:9px; }
.view:has(.registration-box)>.page-intro h1 { color:#fff7e7; font-size:61px; margin:20px 0 20px; line-height:1.06; }
.view:has(.registration-box)>.page-intro p { color:#d2daca; font-size:14px; }
.view:has(.registration-box)>.page-body { width:100%; margin:0; padding:0; align-self:center; }
.registration-box.glass { border:0; box-shadow:none; border-radius:0; padding:41px 47px; background:transparent; }
.registration-box h2 { font-size:34px; }
.registration-box .actions { gap:14px; }

/* Cartes & avantages : vrais éléments interactifs, effet ticket discret. */
.menu-list { gap:12px; }
.menu-link { background:#fffdf7; border:1px solid #dadfcf; padding:23px 24px; border-radius:18px; box-shadow:0 5px 16px #26442803; transition:transform .2s,border-color .2s,box-shadow .2s; }
.menu-link:hover { background:#fffff9; border-color:#acba9b; box-shadow:0 7px 23px #203c270a; transform:translateY(-2px); }
.menu-link>.ico:first-child { background:#eef0e5; border:1px solid #dce1cd; padding:10px; height:45px; width:45px; color:#5c724e; border-radius:13px; }
.menu-link b { font-size:24px; color:#304b39; }
.menu-link small { color:#7d8872; font-size:11px; }
.balance-bar { background:#e9ede0; border:1px solid #d6dec7; box-shadow:inset 0 1px 0 #fff; color:#304938; border-radius:19px; }
.balance-bar .small { color:#6b795e; }
.reward-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.reward-card { padding:31px 32px; border-radius:24px; background:#f2eddf; border:1px solid #d9ceb4; box-shadow:0 13px 28px #273a2609; }
.reward-card:before { width:220px; height:220px; right:-66px; top:-82px; border:1px solid #b2a17735; box-shadow:0 0 0 28px #baa57709,0 0 0 57px #baa57709; }
.reward-card .reward-discount { font-size:88px; color:#3c513b; line-height:1; margin:23px 0 12px; }
.reward-card .badge { width:max-content; border:1px solid #b9bca18c; background:#fbf8e66b; border-radius:999px; padding:6px 12px; color:#696745; font-size:10px; letter-spacing:.12em; }
.reward-card h3 { font-size:28px; line-height:1.18; color:#3c513b; }
.reward-card p { color:#72745d; font-size:13px; line-height:1.75; }
.reward-card .reward-state { color:#64764d; font-size:12px; min-height:34px; margin:10px 0 22px; }
.reward-card .btn { border-radius:12px; }
.reward-card:nth-child(2n+1) { background:radial-gradient(ellipse at top right,#5b73543b,transparent 60%),linear-gradient(128deg,#2f503f,#1e3b2e); border-color:#405c43; color:#f7f3df; }
.reward-card:nth-child(2n+1):before { border-color:#d6c99224; box-shadow:0 0 0 28px #d6c99208,0 0 0 57px #d6c99206; }
.reward-card:nth-child(2n+1) .badge { color:#e0d3a6; background:#bec49d10; border-color:#b9c89d45; }
.reward-card:nth-child(2n+1) .reward-discount { color:#e8dab0; }
.reward-card:nth-child(2n+1) h3 { color:#faf2df; }
.reward-card:nth-child(2n+1) p { color:#c1cbb4; }
.reward-card:nth-child(2n+1) .reward-state { color:#d5dcbf; }
.reward-card:nth-child(2n+1) .btn { background:#e9dfc3; border-color:#e9dfc3; color:#304431; }
.qr-holder { background:white; border-radius:20px; border:1px solid #dce2d4; box-shadow:0 9px 30px #3149340a; padding:16px; width:max-content; max-width:100%; margin:24px auto; }
.qr-holder svg { display:block; max-width:100%; height:auto; }
.balance-title { color:#2e4c3b; font-size:55px; letter-spacing:-.03em; }
.balance-title small { color:#6c7a62; letter-spacing:0; }
.code-label { color:#445d3e; letter-spacing:.13em; font-size:13px; }
.profile-status { color:#3f6241; background:#e6efda; border-color:#d2dfc0; }
.profile-status.blocked { color:#8c4b40; background:#f6e6df; }
.progress-line { background:#e9ecdf; height:7px; }
.progress-line i { background:linear-gradient(90deg,#839b67,#37583e); }
.empty h3 { color:#425c3f; }
.empty { color:#7a8470; }
.movement .mov-icon { border-color:#dce2cd; background:#eff2e6; color:#647b51; border-radius:13px; }
.movement .delta { color:#557442; }
.movement .delta.minus { color:#aa6855; }
.movement .mov-main b { color:#3a503b; }
.movement .mov-main small { color:#7b866f; }

/* Scanner, tableaux administrateur et dialogues. */
.camera-zone { background:radial-gradient(ellipse at center,#355443,#1c382d 75%); border:1px solid #3c6047; border-radius:18px; }
.camera-overlay small { color:#cad4bc; }
.scan-bracket { border-color:#b9c79570; }
.scan-bracket:before,.scan-bracket:after { border-color:#d4d5a8; }
.scan-bracket .ico { color:#ced5b0; }
.camera-zone.running .scan-bracket i { background:#ccd7a4; box-shadow:0 0 15px #deedc3; }
.camera-zone video { filter:none; }
.receipt { background:#f0f1e5; border:1px dashed #c2cbae; border-radius:16px; }
.receipt-row { color:#53694b; font-size:13px; }
.receipt-row.total { border-color:#c9d0b9; }
.receipt-row big { color:#345136; }
.receipt-reward { color:#526b43; }
.avatar { background:#e9efdd; border-color:#d5dec5; color:#4b693d; }
.customer-mini b { color:#364e37; }
.customer-mini small { color:#748367; }
.metrics { gap:16px; }
.metric { background:#fcfaf1; border:1px solid #d8dfc7; border-radius:20px; padding:25px; box-shadow:0 5px 13px #30442e04; }
.metric span { font-size:10px; letter-spacing:.09em; color:#7b866b; }
.metric b { font-size:39px; color:#3c5737; margin-top:9px; }
.admin-tabs { background:#e9ede0; padding:6px; border:1px solid #d7dfc8; border-radius:15px; gap:5px; }
.admin-tab { min-height:47px; border-radius:11px; color:#6f7c60; background:transparent; border:1px solid transparent; font-size:13px; }
.admin-tab.selected { background:#fffef7; border-color:#dfe5d2; color:#365032; box-shadow:0 3px 10px #20392807; }
.admin-tab.selected span { color:#3a5631; background:#e5ecd9; }
.settings-heading h2 { font-size:36px; }
.settings-heading .muted { font-size:13px; }
.admin-reward { background:#f8f8f0; border:1px solid #dce1d0; border-radius:17px; padding:20px; gap:17px; }
.admin-reward-icon { color:#577347; border:1px solid #d8e0c7; background:#ebf0df; border-radius:15px; }
.admin-reward-info h3 { font-size:25px; color:#344f32; line-height:1.2; }
.admin-reward-info p { color:#76846b; font-size:12px; }
.admin-reward-info small { color:#627e4d; }
.admin-reward .badge { color:#71804e; }
.status-small.live { color:#3b6338; background:#e5eed9; border-color:#d3dfc1; }
.admin-tip { border-color:#d7dfc7; background:#e9eddf; }
.admin-tip p { color:#70845f; }
.admin-tip b { color:#385536; }
.client-item { background:#f8f9f0; border-color:#dce3cf; padding:17px; border-radius:15px; }
.client-item .num { color:#466b38; }
.client-item small { color:#718066; }
.earning-preview { background:#ebefdf; border:1px solid #d5dfc1; box-shadow:none; }
.earning-preview h3 { color:#426435; }
.example-row { color:#657b53; border-color:#d4ddc3; }
.example-row b { color:#3d6230; }
.settings-shield { color:#6f8558; }
.settings-audit { background:#f9f9ef; border-color:#d8dfc9; }
.settings-audit summary { color:#506b40; }
.audit-row b { color:#526e42; }
.audit-row small { color:#7b896b; }
.modal-backdrop { background:#10241be0; backdrop-filter:blur(12px); }
.modal { background:#fffdf5; border:1px solid #e3e6d3; border-radius:25px; box-shadow:0 28px 100px #03150c59; padding:33px; }
.modal-heading h2 { color:#344d37; font-size:33px; }
.modal .muted { color:#75836a; }
.toast { background:#254a36; color:#f9f5e7; border:1px solid #5e775049; box-shadow:0 15px 32px #142e2826; border-radius:14px; }
.footer { color:#7e886e; font-size:10px; margin-top:60px; border-color:#dce0ce; padding-top:29px; }
.footer a { color:#617951; }
.footer a:hover { text-decoration:underline; text-underline-offset:4px; }

/* Navigation flottante. Ma carte / Scanner reste contrôlé par la session. */
.bottom-nav { background:#203d31ef; border:1px solid #60775b7d; width:min(560px,calc(100% - 26px)); height:78px; border-radius:25px; padding:5px 10px; box-shadow:0 17px 45px #183d3138,inset 0 1px 0 #ffffff12; backdrop-filter:blur(20px); }
.bottom-nav a { color:#c4d0b5; font-size:10px; letter-spacing:.01em; }
.bottom-nav a:hover { color:#fff5da; }
.bottom-nav a[aria-current='page'] { background:#dce4c613; color:#f8f4dd; }
.bottom-nav .nav-center { color:#294734; width:91px; height:91px; margin-top:-25px; border:6px solid #243f32; background:linear-gradient(138deg,#f4ecd0,#c4c99e); box-shadow:0 0 0 1px #bdc59777,0 5px 15px #112c2330,inset 0 1px 0 #fff; gap:5px; }
.bottom-nav .nav-center[aria-current='page'] { color:#284732; background:linear-gradient(138deg,#fff7de,#dce1b5); }
.bottom-nav .nav-center .ico { width:26px; height:26px; }

@keyframes v20-photo { from{opacity:.8;transform:scale(1.018)} to{opacity:1;transform:scale(1)} }
@keyframes v20-card { 0%,100%{transform:perspective(1000px) rotateY(-13deg) rotateX(7deg) rotateZ(-5deg) translateY(0)} 50%{transform:perspective(1000px) rotateY(-9deg) rotateX(5deg) rotateZ(-3deg) translateY(-7px)} }

@media(min-width:1550px){ .editorial-hero { height:715px; } .editorial-copy { padding:70px 48px 52px 60px; } .editorial-copy h1{font-size:103px;} }
@media(max-width:1120px){
  .wrap{width:calc(100% - 48px)} .top-links{display:none}
  .editorial-hero{height:626px;grid-template-columns:.95fr 1.05fr}
  .editorial-copy{padding:43px 28px 35px 38px}.editorial-copy h1{font-size:77px}.editorial-copy .eyebrow{font-size:8px}
  .hero-description{font-size:15px}.hero-description.secondary-copy{font-size:12px}
  .restaurant-portrait{height:100%;border-top-left-radius:100px}.photo-stamp{right:20px;padding:14px;bottom:145px;gap:10px}
  .photo-stamp b{font-size:12px}.photo-stamp small{font-size:9px}.photo-stamp>.ico:last-child{display:none}
  .restaurant-portrait figcaption{left:26px;right:23px}.restaurant-portrait figcaption>span:first-child{font-size:25px}.photo-address{display:none}
  .club-summary{padding:24px 0;gap:15px}.club-summary>div{gap:12px;padding:0 12px 0 3px}.club-summary b{font-size:11px}.club-summary small{font-size:9px}
  .club-showcase{padding:47px 34px;gap:35px}.showcase-copy h2{font-size:41px}.showcase-copy p{font-size:12px}
  .membership-card{padding:25px;aspect-ratio:1.6}.membership-card .card-name{font-size:25px}.membership-card .card-top img{width:52px;height:52px}.membership-card .card-bottom{margin-top:21px;font-size:8px}.membership-card .card-bottom b{font-size:8px}
  .restaurant-note{gap:44px}.restaurant-note h2{font-size:43px}.reward-card{padding:28px}
  .view:has(.registration-box){width:calc(100% - 48px);grid-template-columns:.9fr 1.1fr}
  .view:has(.registration-box)>.page-intro{padding:41px 32px}.view:has(.registration-box)>.page-intro h1{font-size:49px}
  .registration-box.glass{padding:33px}.view:has(.registration-box)>.page-intro:after{left:32px}
}
@media(max-width:850px) and (min-width:701px){
  .editorial-hero{height:630px}.editorial-copy{padding:36px 22px 28px 30px}.editorial-copy h1{font-size:66px}
  .hero-actions .btn.primary{font-size:11px;padding:13px 16px}.hero-description{font-size:14px}
  .restaurant-portrait{border-top-left-radius:75px}.photo-stamp{right:15px;max-width:calc(100% - 30px);padding:12px;gap:8px}.photo-stamp>.ico:first-child{width:33px;height:33px;padding:6px}
  .photo-stamp small{font-size:8px}.restaurant-portrait figcaption>span:first-child{font-size:24px}
  .club-showcase{gap:20px;padding:36px 28px}.showcase-copy h2{font-size:35px}.membership-card{padding:21px}.membership-card .card-name{font-size:23px}.membership-card .card-top span{font-size:6px}
  .how-it-works .steps{gap:12px}.how-it-works .step-card{padding:20px 18px}.how-it-works .step-card h3{font-size:23px}
}
@media(max-width:700px){
  html{scroll-padding-top:92px}body{padding-bottom:123px}.wrap{width:calc(100% - 32px)}.narrow{width:calc(100% - 32px)}
  .site-header{backdrop-filter:blur(18px)}.header-inner{height:77px;gap:8px}.brand{gap:9px;min-width:0}.brand-logo{width:44px;height:44px;flex:none;padding:1px}
  .brand-name{font-size:16px;line-height:1.15;letter-spacing:-.045em;white-space:normal}.brand-name small{font-size:6px;letter-spacing:.12em;margin-top:5px}
  .account-control{gap:0;flex:none}.account-control .btn{padding:10px 12px;min-height:40px;font-size:10px;gap:6px}.account-control .btn .ico{width:14px;height:14px}.session-chip{display:none}
  .editorial-hero{width:calc(100% - 24px);height:auto;min-height:0;display:flex;flex-direction:column;align-items:stretch;gap:0;margin-top:12px;padding:0;border-radius:23px;border-color:#203c2f;box-shadow:0 13px 32px #26432918;overflow:hidden}
  .editorial-hero:before{display:none}
  .restaurant-portrait{order:0;height:295px;width:100%;border-radius:0;overflow:hidden;flex:none;background:#1b382e}
  .restaurant-photo{object-position:center 44%;border-radius:0;filter:saturate(.82) brightness(.95)}
  .restaurant-portrait:after{background:linear-gradient(0deg,#1b382e 0%,#1b382e70 29%,transparent 69%),linear-gradient(180deg,#142a271a,transparent 45%)}
  .photo-topline{top:20px;right:20px;font-size:7px;gap:9px}.photo-topline .ico{height:19px;width:19px}
  .restaurant-portrait figcaption{display:none}
  .photo-stamp{right:17px;left:auto;bottom:auto;top:60px;max-width:calc(100% - 34px);padding:10px 12px;gap:9px;border-radius:13px;box-shadow:0 6px 20px #0a271c20}
  .photo-stamp b{font-size:11px}.photo-stamp small{display:none}.photo-stamp>.ico:first-child{width:30px;height:30px;border-radius:9px;padding:6px}.photo-stamp>.ico:last-child{width:13px;height:13px;display:block}
  .editorial-copy{order:1;z-index:2;padding:0 27px 32px;margin-top:-48px;max-width:none;align-self:stretch}
  .editorial-copy .eyebrow{margin:0 0 17px;color:#dcd2ae;font-size:8px;letter-spacing:.17em}.editorial-copy .eyebrow:before{width:20px}
  .editorial-copy h1{font-size:60px;line-height:.99;letter-spacing:-.055em;color:#f9f3e4;margin:0 0 19px}
  .hero-description{font-size:14px;line-height:1.55;margin-bottom:13px;max-width:none;color:#e7eadd}
  .hero-description.secondary-copy{font-size:12px;line-height:1.75;max-width:none;color:#c7d1bb;margin-bottom:20px}
  .hero-actions{gap:11px;align-items:stretch;flex-direction:column}
  .hero-actions .btn.primary{min-height:48px;font-size:12px;padding:13px 17px;border-radius:12px;justify-content:space-between}
  .hero-text-link{font-size:11px;width:max-content;align-self:center;margin-top:4px;gap:20px}
  .hero-foot{font-size:9px;margin-top:20px;color:#c3cfb5;justify-content:center;gap:8px}
  .club-summary{grid-template-columns:1fr;gap:0;padding:18px 4px 8px;border:0;margin-bottom:9px}
  .club-summary>div{border-right:0;border-bottom:1px solid #d9deca;padding:17px 7px;gap:17px}.club-summary>div:last-child{border-bottom:1px solid #d9deca}
  .summary-number{font-size:24px}.club-summary b{font-size:12px}.club-summary small{font-size:10px;line-height:1.6;margin-top:3px}
  .club-showcase{grid-template-columns:1fr;gap:9px;margin-top:35px;padding:30px 25px 24px;border-radius:23px;background:radial-gradient(ellipse at 50% 88%,#e1ddc8,transparent 45%),#eeede3}
  .showcase-copy .eyebrow{font-size:8px;margin-bottom:18px}.showcase-copy h2{font-size:37px;line-height:1.09;margin-bottom:19px}.showcase-copy p{font-size:12px;line-height:1.85;margin-bottom:21px}
  .showcase-copy .btn.primary{min-height:46px;font-size:11px}.showcase-detail{font-size:9px;margin-top:14px}.showcase-object{padding:9px 0}
  .showcase-object .stage{padding:25px 0 20px}.stage:after{bottom:1px}.membership-card{padding:23px 24px;aspect-ratio:1.61;border-radius:18px;width:100%;max-width:470px;margin:auto}
  .membership-card .card-top img{height:47px;width:47px}.membership-card .card-top span{font-size:6px}.membership-card .card-name{font-size:25px;margin-top:21px;line-height:1.1}
  .membership-card .card-bottom{font-size:7px;margin-top:22px;gap:9px}.membership-card .card-bottom b{font-size:7px}.object-orbit{width:330px;height:330px}.orbit-two{width:420px;height:420px}.object-caption{font-size:7px;margin-top:10px}
  .section{padding:44px 0 20px}.section-heading{gap:20px;align-items:flex-start;flex-direction:column;margin-bottom:25px}.section-heading h2{font-size:37px}.section-heading .eyebrow{font-size:8px;margin-bottom:17px}.section-heading .btn{min-height:43px;font-size:11px}
  .how-it-works .steps{grid-template-columns:1fr;gap:13px}.how-it-works .step-card{padding:23px 24px;border-radius:19px}.how-it-works .step-card .step-no{margin-bottom:21px}.how-it-works .step-card h3{font-size:26px;margin-bottom:13px}.how-it-works .step-card p{font-size:12px}
  .restaurant-note{grid-template-columns:1fr;gap:28px;margin-top:36px;padding-top:0}.restaurant-note-photo{height:260px;border-radius:21px}.restaurant-note h2{font-size:38px}.restaurant-note p{font-size:12px}.restaurant-note .btn{font-size:12px}
  .loyalty-policy{padding:21px 18px;gap:12px;border-radius:17px;margin:23px 0}.loyalty-policy .policy-icon{width:32px;height:32px;flex-basis:32px;border-radius:11px}.loyalty-policy .policy-icon .ico{width:18px;height:18px}.loyalty-policy h3{font-size:22px;line-height:1.2;margin-bottom:12px}.loyalty-policy p{font-size:12px}.policy-example>b{font-size:10px}.loyalty-policy.compact{padding:18px 15px;gap:11px}.loyalty-policy.compact h3{font-size:20px}
  .page-intro{padding:30px 0 25px}.page-intro h1{font-size:40px;line-height:1.09;margin-bottom:15px}.page-intro p{font-size:12px;line-height:1.8}.page-intro .eyebrow{font-size:9px;margin-bottom:17px}
  .glass,.light-panel{padding:24px 20px;border-radius:21px}.glass h2,.light-panel h2{font-size:31px}
  .two-cols{gap:18px}.field label{font-size:11px}.field input,.field select,.field textarea,input,select,textarea{font-size:16px;min-height:49px}.field{margin-bottom:17px}
  .btn{min-height:46px;padding:12px 17px;font-size:12px}.btn.sm{font-size:11px;min-height:40px}.auth-foot,.field-hint{font-size:10px}.check{font-size:11px}
  .view:has(.registration-box){display:block;width:calc(100% - 32px);margin:17px auto 24px;border-radius:23px;min-height:0;box-shadow:0 12px 36px #213f2808}
  .view:has(.registration-box)>.page-intro{padding:29px 25px;min-height:0;background:linear-gradient(90deg,#1b3b30ef,#1b3b30cc),url('assets/restaurant.webp') center 39%/cover}
  .view:has(.registration-box)>.page-intro:after{display:none}.view:has(.registration-box)>.page-intro .eyebrow{font-size:8px;margin-bottom:17px}
  .view:has(.registration-box)>.page-intro h1{font-size:43px;margin:0 0 13px}.view:has(.registration-box)>.page-intro p{font-size:12px;line-height:1.75}
  .registration-box.glass{padding:27px 23px 25px}.registration-box h2{font-size:29px}.registration-box .muted.small{font-size:12px;line-height:1.75}
  .registration-box .actions .btn{font-size:11px}.registration-box .actions .text-btn{font-size:11px}.auth-icon{width:43px;height:43px;border-radius:13px;margin-bottom:16px}
  .menu-link{padding:20px 18px;gap:13px;border-radius:17px}.menu-link b{font-size:22px}.menu-link small{font-size:10px;line-height:1.6}.menu-link>.ico:first-child{width:39px;height:39px;padding:9px}
  .balance-bar{padding:19px;align-items:flex-start;gap:13px}.balance-bar .small{font-size:11px}
  .reward-grid{grid-template-columns:1fr;gap:17px}.reward-card{padding:27px 26px;border-radius:23px}.reward-card .reward-discount{font-size:78px;margin:25px 0 13px}.reward-card h3{font-size:28px}.reward-card p{font-size:12px}.reward-card .badge{font-size:10px}.reward-card .reward-state{min-height:0;margin:12px 0 20px;font-size:11px}.reward-card .btn{min-height:46px}
  .balance-title{font-size:49px}.balance-title small{font-size:12px}.qr-holder{padding:15px;max-width:100%}.code-label{font-size:12px}.movement .mov-main b{font-size:12px}.movement .mov-main small{font-size:10px}.movement .delta{font-size:12px}.movement .mov-icon{height:35px;width:35px;flex:none}
  .metrics{gap:9px}.metric{padding:18px 13px;border-radius:16px}.metric b{font-size:33px}.metric span{font-size:8px;line-height:1.4;letter-spacing:.06em}
  .admin-tab{font-size:11px;min-height:44px;padding:10px 9px}.admin-tabs{border-radius:14px;padding:4px;gap:4px}.admin-tab .ico{height:16px;width:16px}.settings-section{padding:23px 18px}.settings-heading h2{font-size:31px}.settings-heading .muted{font-size:12px}
  .admin-reward{padding:18px 16px;gap:11px}.admin-reward-info h3{font-size:25px}.admin-reward-info p{font-size:11px}.admin-reward-info small{font-size:10px}.admin-reward-actions .btn{min-height:40px;font-size:11px}
  .client-item{padding:15px 13px;gap:10px}.client-item .btn{font-size:10px;padding:9px 11px}.client-item b{font-size:12px}.client-item .num{font-size:22px}
  .receipt{padding:19px 16px}.receipt-row{font-size:12px;gap:15px}.receipt-row big{font-size:28px}
  .modal-backdrop{padding:13px}.modal{padding:28px 23px;max-height:calc(100dvh - 26px);border-radius:22px}.modal-heading h2{font-size:29px}.modal-heading{padding-right:26px}
  .bottom-nav{height:73px;bottom:max(11px,env(safe-area-inset-bottom));border-radius:24px;width:calc(100% - 26px);padding:4px 9px}.bottom-nav .nav-center{width:85px;height:85px;margin-top:-25px;border-width:5px}.bottom-nav a{font-size:10px;gap:4px}.bottom-nav .nav-center .ico{height:25px;width:25px}
  .toast{bottom:119px;font-size:12px}.footer{margin-top:43px;flex-direction:column;align-items:flex-start;gap:15px;font-size:9px;padding-top:22px}.footer .actions{row-gap:12px;column-gap:18px}
}
@media(max-width:365px){
  .wrap{width:calc(100% - 28px)}.header-inner{height:72px}.brand-logo{width:37px;height:37px}.brand-name{font-size:14px}.brand-name small{font-size:5px}.brand{gap:7px}.account-control .btn{font-size:9px;padding:10px 11px;min-height:37px}.account-control .btn .ico{display:none}
  .editorial-hero{width:calc(100% - 20px)}.editorial-copy{padding:0 23px 29px}.editorial-copy h1{font-size:56px}.restaurant-portrait{height:273px}.hero-description{font-size:13px}.hero-description.secondary-copy{font-size:11px}
  .club-showcase{padding:28px 20px}.showcase-copy h2{font-size:34px}.membership-card{padding:20px}.membership-card .card-name{font-size:22px}.membership-card .card-top img{width:42px;height:42px}
  .admin-tab{font-size:10px;padding:10px 7px}.admin-tab .ico{display:none}.admin-tab span{font-size:9px}
}
@media (hover:none){.btn:hover:not(:disabled),.menu-link:hover,.photo-stamp:hover{transform:none}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}.restaurant-photo,.stage .membership-card,.view,.modal{animation:none!important}
  .btn,.hero-text-link,.photo-stamp,.menu-link,.top-links a:after{transition:none!important}.stage .membership-card{transform:perspective(1000px) rotateY(-10deg) rotateX(5deg) rotateZ(-4deg)}
}
@media print {body{background:#fff;color:#263e34} .site-header,.bottom-nav,.footer{display:none!important}#printArea{background:#fff;color:#263e34}#printArea .qr-holder{box-shadow:none} }

/* V21 — read-only automatic calculation in the scanner, matching the V20 design. */
.auto-points{margin:21px 0 24px;padding:21px;border:1px solid #b4bea6;border-radius:20px;background:linear-gradient(130deg,#f2f4e9,#e7edde);color:#233e32;box-shadow:0 7px 20px #233e3207}
.auto-points-heading{display:flex;gap:12px;justify-content:space-between;align-items:center;padding-bottom:16px;border-bottom:1px solid #233e321b;font-size:11px}
.auto-points-heading>span{display:flex;gap:7px;align-items:center;letter-spacing:.025em;font-weight:600}.auto-points-heading .ico{width:17px;height:17px}.auto-points-heading>b{white-space:nowrap}
.auto-points-result{display:flex;gap:18px;align-items:center;justify-content:space-between;padding:19px 0 15px}.auto-points-result h3{font-size:22px;line-height:1.2;letter-spacing:-.015em;margin:0 0 7px}.auto-points-result p{font-size:12px;line-height:1.5;color:#5f6b5b;margin:0;max-width:235px}.auto-points-result output{display:block;color:#233e32;font-weight:700;font-size:28px;line-height:1.15;font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}
.auto-points-foot{font-size:11px;line-height:1.55;margin:0;padding-top:12px;border-top:1px solid #233e321b;color:#5a6555}
#mealForm #amount{font-size:22px;font-weight:650;font-variant-numeric:tabular-nums}#mealForm #amountHint{margin-top:-6px}#mealForm #reviewMeal{margin-top:5px}
@media(max-width:520px){.auto-points{padding:17px}.auto-points-heading{flex-wrap:wrap;gap:9px}.auto-points-result{flex-wrap:wrap;gap:12px}.auto-points-result h3{font-size:22px}.auto-points-result output{font-size:34px}.auto-points-result p{max-width:none}}
