:root{--bg:#1D3532;--panel:#25423E;--cream:#F3EFE4;--soft:rgba(243,239,228,.78);--gold:#C2A46C;--olive:#B3BE78;--peach:#F6C5AF;--ink:#1D3532;--muted:#53615A;--line:rgba(29,53,50,.18);--serif:"Fraunces",Georgia,serif;--sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
*{scrollbar-width:none;-ms-overflow-style:none}
*::-webkit-scrollbar{display:none;width:0;height:0}
[hidden]{display:none!important}
body{background:var(--bg);color:var(--cream);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.wrap{max-width:1120px;margin:auto;padding:0 24px}
.site-header{border-bottom:1px solid rgba(243,239,228,.16);padding-top:env(safe-area-inset-top,0px)}
.header-inner{min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand img{width:180px;height:auto;display:block}
.header-links{display:flex;align-items:center;gap:24px;font-size:.88rem;font-weight:500}
.header-links a{text-decoration:none}
.header-links a:hover{color:var(--peach)}
.header-links button{border:1px solid rgba(243,239,228,.4);background:none;color:var(--cream);border-radius:999px;padding:8px 16px;cursor:pointer}
.preview-notice{margin:26px 0 34px;padding:12px 16px;border:1px solid rgba(194,164,108,.45);border-radius:12px;display:flex;align-items:center;gap:14px;background:rgba(194,164,108,.07)}
.preview-tag{flex-shrink:0;font-size:.66rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;border:1px solid var(--gold);border-radius:5px;padding:3px 7px;color:var(--cream)}
.preview-notice p{font-size:.8rem;color:var(--soft)}
.login-layout{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;margin-bottom:64px}
.eyebrow{color:var(--peach);text-transform:uppercase;letter-spacing:.13em;font-size:.7rem;font-weight:600}
h1,h2{font-family:var(--serif);font-weight:600;letter-spacing:-.025em;line-height:1.08}
.welcome-story h1{font-size:clamp(2.4rem,4vw,3.5rem);margin:16px 0 20px}
.story-copy{color:var(--soft);font-size:.97rem;max-width:39ch}
.food-photo{position:relative;margin-top:30px;border-radius:18px;overflow:hidden}
.food-photo img{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:cover}
.food-photo figcaption{position:absolute;inset:auto 0 0;padding:30px 18px 13px;background:linear-gradient(transparent,rgba(12,29,25,.85));font-size:.75rem;color:var(--cream)}
.login-card,.delivery-card{background:var(--cream);color:var(--ink);border-radius:24px;padding:38px}
.account-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;margin-bottom:20px}
.account-mark svg{width:23px;height:23px}
.login-card h2{font-size:2.3rem}
.card-intro{color:var(--muted);font-size:.9rem;margin-top:10px}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:rgba(29,53,50,.07);padding:4px;border-radius:999px;margin:26px 0 24px}
.auth-tabs button{background:none;border:0;border-radius:999px;padding:10px 8px;font-size:.85rem;font-weight:600;color:var(--ink);cursor:pointer}
.auth-tabs button[aria-pressed="true"]{background:var(--bg);color:var(--cream);box-shadow:0 2px 5px rgba(29,53,50,.12)}
.field{display:grid;gap:7px;margin-bottom:17px;min-width:0}
.field label{font-size:.8rem;font-weight:600}
.field label span{font-weight:400;color:var(--muted)}
.field input,.field select,.field textarea{min-width:0;width:100%;border:1px solid rgba(29,53,50,.26);border-radius:10px;padding:12px 13px;background:#FAF8F1;color:var(--ink);font-size:.92rem}
.field input[readonly]{background:rgba(29,53,50,.035);color:#59655E}
.field textarea{resize:vertical;min-height:90px}
.field textarea::placeholder{color:#6A746E}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--bg);outline-offset:2px}
.field [aria-invalid="true"]{border-color:#A73828}
.location-field{border:1px solid var(--line);border-radius:14px;padding:16px;margin-top:4px}
.location-help,.location-status{font-size:.74rem;color:var(--muted);line-height:1.6}
.location-status:empty{display:none}
.location-tools{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin-top:5px}
.location-use{font:inherit;font-size:.76rem;font-weight:600;padding:10px 14px;min-height:44px;border:1px solid var(--line);border-radius:999px;background:none;color:var(--ink);cursor:pointer}
.location-use:disabled{opacity:.6;cursor:wait}
.location-tools a{font-size:.76rem;font-weight:600;cursor:pointer;text-underline-offset:3px}
.address-location{font-size:.8rem;margin-top:16px}
.address-location a{font-weight:600;text-underline-offset:4px}
.sample-hint{color:var(--muted);font-size:.75rem;line-height:1.55;margin:-2px 0 12px}
.text-button{border:0;background:none;color:var(--ink);font-size:.8rem;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.forgot{display:block;margin-left:auto;padding:4px 0}
.inline-message{margin-top:12px;padding:12px;border-radius:8px;background:rgba(29,53,50,.07);font-size:.8rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:48px;border-radius:999px;padding:12px 22px;border:0;font-size:.88rem;font-weight:600;text-decoration:none;cursor:pointer}
.btn span{font-size:1.2rem;line-height:1}
.btn:disabled{opacity:.55;cursor:default}
.btn-primary{background:var(--bg);color:var(--cream)}
.btn-primary:hover{background:#31534A}
#loginButton{width:100%;margin-top:20px}
.guest-link{border-top:1px solid var(--line);margin-top:24px;padding-top:19px;text-align:center;font-size:.78rem;font-weight:500}
.guest-link a{text-decoration:none}
.guest-link a:hover{text-decoration:underline}
.guest-link span{margin-left:4px}
.account-view{margin-bottom:64px}
.account-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:40px 0 32px}
.account-heading h1{font-size:clamp(2rem,4vw,3.2rem);margin:12px 0;overflow-wrap:anywhere}
.account-heading p:last-child{color:var(--soft);font-size:.94rem}
.customer-badge{border:1px solid rgba(179,190,120,.4);border-radius:999px;padding:8px 13px;font-size:.72rem;white-space:nowrap;color:var(--cream)}
.customer-badge span{color:var(--olive);margin-right:5px;font-size:.6rem}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:24px;align-items:start}
.section-heading{display:flex;gap:16px;align-items:center;margin-bottom:28px}
.step-number{font-size:.75rem;font-weight:600;border:1px solid var(--line);border-radius:50%;width:38px;height:38px;display:grid;place-items:center;flex-shrink:0}
.section-heading h2{font-size:1.65rem}
.section-heading p{font-size:.82rem;margin-top:7px;color:var(--muted)}
.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.save-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:24px}
.save-help{font-size:.72rem;color:var(--muted)}
.form-error{background:#F9DDD0;border-radius:8px;color:#7B2C20;font-size:.8rem;padding:12px;margin-top:12px}
.saved-message{padding:12px 14px;margin-top:16px;border-radius:8px;background:#DCE4C4;color:#29422E;font-size:.8rem}
.account-sidebar{display:grid;gap:20px}
.address-card{background:var(--olive);color:var(--ink);border-radius:22px;padding:28px}
.address-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.address-top svg{width:28px;height:28px}
.mini-label{font-size:.65rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border:1px solid rgba(29,53,50,.35);border-radius:999px;padding:4px 9px}
.address-card h2{font-size:1.65rem;margin-bottom:24px}
.address-name{font-weight:600;font-size:.92rem;margin-bottom:7px;overflow-wrap:anywhere}
.address-summary,.address-phone,.address-instructions{font-size:.86rem;white-space:pre-line;overflow-wrap:anywhere}
.address-phone{margin-top:12px}
.address-instructions{border-top:1px solid var(--line);margin-top:15px;padding-top:15px}
.address-footnote{border-top:1px solid var(--line);margin-top:24px;padding-top:16px;font-size:.72rem;line-height:1.6}
.programme-card{border:1px solid rgba(243,239,228,.2);border-radius:22px;padding:28px;background:var(--panel)}
.programme-card .eyebrow{font-size:.64rem}
.programme-card h2{font-size:1.8rem;margin:16px 0}
.programme-card p:not(.eyebrow){font-size:.86rem;color:var(--soft)}
.programme-card .btn{margin-top:24px;width:100%}
.btn-outline{border:1px solid rgba(243,239,228,.55);color:var(--cream);background:none}
.btn-outline:hover{background:rgba(243,239,228,.08)}
.programme-card .programme-note{font-size:.7rem!important;text-align:center;margin-top:12px}
footer.wrap{display:flex;justify-content:space-between;gap:15px;border-top:1px solid rgba(243,239,228,.16);padding-top:22px;padding-bottom:calc(26px + env(safe-area-inset-bottom,0px));color:var(--soft);font-size:.72rem}
.noscript{margin-bottom:20px;color:var(--peach)}
@media(max-width:900px){.login-layout{gap:36px}.login-card,.delivery-card{padding:28px}.dashboard-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}}
@media(max-width:720px){.wrap{padding:0 20px}.header-inner{min-height:72px}.brand img{width:150px}.header-links{font-size:.78rem;gap:14px}.header-links button{padding:7px 12px}.preview-notice{margin:20px 0 28px;gap:10px;padding:12px}.preview-notice p{font-size:.72rem}.login-layout{grid-template-columns:1fr;gap:28px;margin-bottom:40px}.welcome-story h1{font-size:2.6rem}.welcome-story h1 br{display:none}.welcome-story h1{max-width:14ch}.welcome-story .story-copy{max-width:45ch;font-size:.92rem}.food-photo{display:none}.login-card{max-width:520px;width:100%;margin:auto}.dashboard-grid{grid-template-columns:1fr}.account-heading{align-items:flex-start;margin-top:28px;flex-direction:column;gap:16px}.account-heading h1{font-size:2.4rem}.account-sidebar{grid-template-columns:1fr 1fr;align-items:start}.address-card,.programme-card{padding:22px}.field-pair{gap:12px}footer.wrap{flex-direction:column;gap:5px}}
@media(max-width:480px){.wrap{padding-left:16px;padding-right:16px}.header-links{gap:10px}.brand img{width:132px}.login-card,.delivery-card{padding:25px 22px;border-radius:20px}.login-card h2{font-size:2rem}.account-sidebar{grid-template-columns:1fr}.field-pair{grid-template-columns:1fr;gap:0}.section-heading{gap:12px}.section-heading h2{font-size:1.45rem}.save-row .btn{width:100%}.account-heading h1{font-size:2.1rem}.header-links button{font-size:.72rem}}

.addr-rule{font-size:.82rem;line-height:1.55;color:var(--muted);background:rgba(194,164,108,.12);border-radius:10px;padding:10px 13px;margin:-6px 0 18px}.addr-rule b{color:var(--ink)}
