/* Customer sign-in and account pages. Builds on the login-card, enquiry and form styles in styles.css. */
[data-regular-create]{min-height:44px}
.regular-orders{margin:28px 0 40px}.regular-orders>p{margin:12px 0 20px}.regular-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.regular-start{display:flex;flex-wrap:wrap;align-items:end;gap:8px;width:100%}.regular-start label{width:100%;font-size:13px}.regular-start select{min-height:44px;max-width:100%;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--cream,#fffdf8);color:var(--ink)}.regular-actions :is(a,button),.regular-staff .sbtn,.regular-editor :is(button,select,input:not([type=checkbox]):not([type=radio])),.regular-editor .check-row{min-height:44px}.regular-orders .address-card{overflow-wrap:anywhere}.regular-editor{width:min(880px,calc(100% - 24px));max-width:880px;max-height:90dvh;overflow:auto;padding:24px;border:1px solid var(--line);border-radius:16px}.regular-editor::backdrop{background:#23141bcc}.regular-editor h2{font-size:30px}.regular-editor>p{margin:14px 0 24px}.regular-editor .form-actions{position:sticky;bottom:-24px;background:var(--cream,#fffdf8);padding:16px 0}.regular-editor .form-grid{grid-template-columns:1fr}.regular-staff{padding:20px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.regular-staff article{margin-top:18px}.regular-staff h3{margin-bottom:12px}.regular-staff h4{font-size:16px}.regular-staff p{font-size:13px;margin-top:8px}.regular-source{margin-bottom:20px}@media(min-width:640px){.regular-editor .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){.regular-editor,.regular-actions>*{animation:none!important;transition:none!important}}
.auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;max-width:980px;margin:0 auto;align-items:start}
.auth-grid .login-card,.account-columns .login-card{max-width:none;margin:0}
.auth-fields{display:grid;gap:17px}
.login-card .form-status{margin:0 0 18px}
.form-success{background:#e9eee3;color:#3f4a33;border:1px solid #c6d0b8;padding:13px;font-size:12px;margin-bottom:20px}
.form-status:focus{outline:none}
/* Successful sign-in: a brief greeting above the destination page, without a page cover. */
.account-welcome{position:fixed;z-index:70;top:clamp(124px,18vh,180px);left:max(16px,calc(50% - 205px));width:min(410px,calc(100vw - 32px));padding:28px 30px 23px;border:1px solid #c5aa7d66;border-radius:26px;background:linear-gradient(145deg,#fffefa,#faf4e9);color:var(--ink);box-shadow:0 22px 70px #42232e30,0 2px 8px #42232e0d;text-align:center;overflow:hidden}
.account-welcome-emblem{width:64px;height:64px;margin:0 auto 13px}
.account-welcome-emblem svg{width:100%;height:100%;stroke-linecap:round;stroke-linejoin:round}
.welcome-ring{stroke:var(--gold,#ba945b);stroke-width:1.5;stroke-dasharray:158;animation:welcome-ring-draw .36s ease-out both}
.welcome-check{stroke:var(--wine);stroke-width:2.8;stroke-dasharray:32;animation:welcome-check-draw .24s .12s ease-out both}
.welcome-rays{stroke:var(--gold,#ba945b);stroke-width:1.5;opacity:0;transform-origin:32px 32px}
.is-new-account .welcome-rays{animation:welcome-rays-in .24s .18s ease-out both}
.account-welcome h2{font-size:32px;line-height:1.15;margin:0 0 10px;overflow-wrap:anywhere;letter-spacing:-.6px}
.account-welcome p{font-size:13px;line-height:1.7;color:var(--muted);margin:0;max-width:290px;margin-inline:auto}
.account-welcome-continue{display:inline-flex;align-items:center;gap:8px;border:0;background:none;color:var(--wine);font:600 12px var(--sans);padding:10px 14px;margin:12px 0 0;border-radius:20px;cursor:pointer;transition:background .15s,transform .15s}
.account-welcome-continue::after{content:'→';font-size:17px;font-weight:400}
.account-welcome-continue:hover{background:#762e4510}
.account-welcome-continue:active{transform:scale(.96)}
.account-welcome-continue:focus-visible{outline:2px solid var(--wine);outline-offset:3px}
.account-welcome-rule{position:absolute;left:30px;right:30px;bottom:0;height:2px;background:var(--gold,#ba945b);transform-origin:left;animation:welcome-rule-out 2.6s linear both}
@keyframes welcome-ring-draw{from{stroke-dashoffset:158}to{stroke-dashoffset:0}}
@keyframes welcome-check-draw{from{stroke-dashoffset:32}to{stroke-dashoffset:0}}
@keyframes welcome-rays-in{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}
@keyframes welcome-rule-out{to{transform:scaleX(0)}}
@media(prefers-reduced-motion:reduce){.account-welcome *{animation:none!important;transition:none!important}.is-new-account .welcome-rays{opacity:1}.account-welcome-rule{display:none}}
.guest-band{max-width:980px;margin:30px auto 0;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px 36px;border:1px solid var(--line);background:#fffdf8}
.guest-band h3{font-size:28px}
.guest-band p{font-size:12px;margin-top:6px}
.staff-link{margin-top:30px}
.staff-link .text-link{font-size:11px;margin-left:6px}
.account-note{background:var(--cream);border-left:3px solid var(--sage);padding:14px 18px;font-size:12px;line-height:1.7;margin-bottom:28px;color:var(--ink)}
.account-note a{color:var(--wine);text-decoration:underline;font-weight:600}
.account-block{margin-top:75px}
.account-block-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}
.account-block-head .eyebrow{margin-bottom:12px}
.address-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:17px}
.address-grid>.planning-empty{grid-column:1/-1;margin:0}
.address-card{border:1px solid var(--line);background:#fffdf8;padding:22px;display:flex;flex-direction:column;gap:10px}
.address-card h3{font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:0}
.address-card p{font-size:12px;line-height:1.7;overflow-wrap:anywhere}
.address-actions{display:flex;gap:18px;margin-top:auto;padding-top:6px}
.address-actions button{background:none;border:0;padding:0;font-size:11px;color:var(--wine);text-decoration:underline;cursor:pointer}
.address-form{border:1px solid var(--line);background:var(--cream);padding:28px;margin-bottom:22px}
.address-form .form-subtitle{margin-top:0}
.address-form .form-actions{margin-top:24px}
.account-columns{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:75px;align-items:start}
.account-email{font-size:13px!important;color:var(--ink)!important;margin:2px 0 0!important;overflow-wrap:anywhere}
.order-actions{margin-top:22px;display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.empty-state .button{margin-top:22px}
.saved-address select{background:#fbf6ec}
@media(max-width:860px){.auth-grid,.account-columns{grid-template-columns:1fr}}
@media(max-width:720px){.guest-band{flex-direction:column;align-items:flex-start;padding:24px}
.guest-band h3{font-size:25px}
.account-block,.account-columns{margin-top:55px}
.account-block-head{flex-direction:column;align-items:flex-start}
.address-form{padding:20px}
}
/* Forgotten password: link on the sign-in card, and the single-card reset page. */
.login-card .forgot-link{margin:12px 0 0;text-align:right}
.reset-card{max-width:520px;margin:0 auto}
.reset-card .login-card{max-width:none;margin:0}
.reset-card .login-card .small-note{margin:18px 0 0}
.reset-back{margin-top:24px}
.customer-notifications{padding:22px 24px;border:1px solid var(--line,#e8e0da);border-radius:16px;background:linear-gradient(120deg,#fffaf0,#fff);margin-bottom:24px}
.customer-notifications h3{margin:0 0 8px;font-size:18px}
.customer-notifications p{font-size:14px;line-height:1.6;margin:0 0 14px}
.customer-notifications .small-note{margin:0 0 12px}
.customer-notifications button{white-space:normal}
.support-side .customer-notifications{padding:18px;margin-bottom:18px}

/* Leaving the quotation form (quote-leave.js): the question for guests, and the reminder for signed-in customers */
.leave-dialog{max-width:min(470px,calc(100vw - 32px));padding:32px 30px 24px;background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:0 20px 60px #1d100f40}
.leave-dialog::backdrop{background:#2a1a1766}
.leave-dialog h2{font-size:32px;margin-bottom:14px}
.leave-dialog p{font-size:13px;margin-bottom:10px}
.leave-dialog p strong{color:var(--ink)}
.leave-dialog button{position:static;font-size:12px}
.leave-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.leave-actions .button{flex:1 1 auto}
.leave-dialog .leave-anyway{display:block;margin:14px auto 0;background:none;border:0;padding:6px 4px;color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.leave-dialog .leave-anyway:hover{color:var(--wine)}
.carried-note{max-width:900px;margin:0 auto 24px}
.draft-reminder{position:fixed;left:20px;bottom:20px;z-index:60;display:flex;align-items:center;gap:14px;max-width:min(470px,calc(100vw - 40px));padding:14px 14px 14px 18px;background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--wine);box-shadow:0 10px 34px #2a141a2e;animation:draft-reminder-in .35s ease;transition:opacity .3s,transform .3s}
.draft-reminder div{display:grid;gap:2px;font-size:12px;line-height:1.5}
.draft-reminder strong{font-size:13px}
.draft-reminder span{color:var(--muted)}
.draft-reminder .button{flex-shrink:0}
.draft-reminder-close{background:none;border:0;font-size:20px;line-height:1;padding:4px 6px;color:var(--muted);cursor:pointer}
.draft-reminder.is-hiding{opacity:0;transform:translateY(10px)}
@keyframes draft-reminder-in{from{opacity:0;transform:translateY(12px)}}
/* Reduce Motion: a gentle fade in and out (more specific than the blanket rule in styles.css). The arrival has no
   fill mode on purpose: a held animation stops the hiding transition from running. */
@media (prefers-reduced-motion:reduce){.draft-reminder{animation:draft-reminder-fade .2s ease!important}.draft-reminder.is-hiding{transform:none;transition:opacity .2s ease!important}}
@keyframes draft-reminder-fade{from{opacity:0}}
/* The quote button floats on phones and tablets (support.css), so the reminder rises above it up to 1000px too. */
@media (max-width:1000px){.draft-reminder{bottom:74px}}
@media (max-width:600px){
  .draft-reminder{left:12px;right:12px;bottom:74px;max-width:none;flex-wrap:wrap}
  .draft-reminder div{flex:1 1 60%}
  .leave-actions{flex-direction:column}
}
