/* ==========================================================
   Café Halisi — sign-up page
   Requires halisi.css
   ========================================================== */

:root{
  /* Swap for your own photo. Dark, close-up, low clutter. */
  --visual-image:url('/images/register-visual.jpg');
}

body.reg-body{
  min-height:100vh;background:var(--sand);
  display:flex;flex-direction:column;
}

/* ---------- background ---------- */
.reg-bg{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.reg-bg-img{
  position:absolute;inset:0;
  background:
    radial-gradient(52rem 34rem at 12% 8%,rgba(246,122,32,.20),transparent 62%),
    radial-gradient(46rem 30rem at 92% 96%,rgba(60,122,87,.16),transparent 60%);
}
.reg-bg::after{
  content:"";position:absolute;inset:0;opacity:.55;
  background-image:radial-gradient(rgba(32,22,17,.16) 1px,transparent 1px);
  background-size:22px 22px;
}

.reg-main{
  position:relative;z-index:1;flex:1;width:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:40px 24px 28px;
}
.reg-shell{width:100%;max-width:1020px}

/* ---------- step bar ---------- */
.step-bar{display:flex;align-items:center;gap:10px;margin:0 0 18px;padding:0 4px}
.step{
  width:30px;height:30px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;text-decoration:none;
  background:rgba(255,253,250,.75);color:#A3907F;border:1.5px solid var(--line);
  transition:background .25s ease,color .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.step-back{margin-right:auto;color:var(--ink-soft);font-size:13px}
.step-back:hover,.step-back:focus-visible{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.step-active{background:var(--orange);border-color:var(--orange);color:#fff;box-shadow:0 0 0 4px rgba(246,122,32,.18)}
.step-done{background:var(--ink);border-color:var(--ink);color:#fff}
.step-line{width:46px;height:2px;background:var(--line);border-radius:2px}

/* ---------- card ---------- */
.reg-card{
  display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1fr);
  border-radius:26px;background:var(--paper);overflow:hidden;
  box-shadow:0 40px 90px -40px rgba(32,22,17,.55),0 2px 0 rgba(255,255,255,.6) inset;
}

/* left: the room */
.card-visual{position:relative;min-height:560px;background:var(--ink);overflow:hidden}
.card-visual-bg{
  position:absolute;inset:0;background-color:#2B1C12;
  background-image:var(--visual-image);background-size:cover;background-position:center;
  transform:scale(1.02);
}
.card-visual::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(158deg,rgba(20,12,7,.90) 0%,rgba(20,12,7,.62) 46%,rgba(197,90,11,.70) 100%);
}
.visual-content{
  position:relative;z-index:2;height:100%;
  display:flex;flex-direction:column;justify-content:space-between;
  padding:38px 36px;color:#fff;
}
.visual-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.visual-logo{height:52px;width:auto;display:block}
.visual-badge{
  display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:999px;
  background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(6px);
  font-size:11.5px;font-weight:600;white-space:nowrap;
}
.visual-badge i{font-size:9px;color:var(--orange)}
.visual-title{
  font-family:var(--display);font-weight:800;
  font-size:clamp(30px,3.1vw,42px);line-height:1.02;letter-spacing:-.035em;margin:0;
}
.visual-title em{font-style:normal;color:var(--amber)}
.visual-subtitle{margin:14px 0 0;max-width:26ch;font-size:14.5px;line-height:1.55;color:rgba(255,255,255,.76)}
.visual-divider{width:44px;height:3px;border-radius:3px;background:var(--orange);margin:26px 0 16px}
.visual-location{margin:0;font-size:13px;font-weight:500;color:rgba(255,255,255,.82);display:flex;align-items:center;gap:9px}
.visual-location i{color:var(--orange)}

/* right: the form — a speech bubble, the wordmark's own shape */
.card-form{
  position:relative;background:var(--paper);padding:44px 52px 40px;
  display:flex;flex-direction:column;justify-content:center;
}
.card-form::before{
  content:"";position:absolute;z-index:3;left:-15px;top:78px;width:0;height:0;
  border-top:13px solid transparent;border-bottom:13px solid transparent;
  border-right:16px solid var(--paper);
}
.form-panel{width:100%;max-width:400px;margin:0 auto}
.form-step{display:none}
.form-step-active{display:block}

.form-header{margin-bottom:26px}
.form-eyebrow{
  display:block;margin:0 0 10px;
  font-size:10.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--orange);
}
.form-title{
  font-family:var(--display);font-weight:800;
  font-size:clamp(28px,3vw,36px);line-height:1.03;letter-spacing:-.035em;margin:0;color:var(--ink);
}
.form-subtitle{margin:10px 0 0;font-size:14.5px;line-height:1.55;color:var(--ink-soft)}

/* server-rendered flash (no-JS path) */
.form-flash{
  margin:0 0 22px;padding:14px 16px;border-radius:13px;
  font-size:14px;line-height:1.5;display:flex;align-items:flex-start;gap:10px;
}
.form-flash--ok{background:rgba(60,122,87,.10);border:1px solid rgba(60,122,87,.28);color:#2C5B42}
.form-flash--ok i{color:var(--leaf);margin-top:2px}

/* fields */
.fgroup{margin-bottom:18px}
.fgroup label{
  display:block;margin-bottom:8px;
  font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#7A6656;
}
.finput-wrap{position:relative;display:block}
.ficon{position:absolute;left:16px;top:50%;transform:translateY(-50%);font-size:13px;color:#BCA997;z-index:2;transition:color .2s ease}
.finput{
  width:100%;height:54px;padding:0 16px 0 43px;
  font-family:var(--body);font-size:15px;font-weight:500;color:var(--ink);
  background:#fff;border:1.5px solid var(--line);border-radius:13px;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.finput::placeholder{color:#BCA997}
.finput:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 4px rgba(246,122,32,.15)}
.finput-wrap:focus-within .ficon{color:var(--orange)}

/* phone row — one field, two controls */
.phone-wrap{
  position:relative;
  display:flex;align-items:center;height:54px;padding-left:43px;
  background:#fff;border:1.5px solid var(--line);border-radius:13px;overflow:visible;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.phone-wrap:focus-within{border-color:var(--orange);box-shadow:0 0 0 4px rgba(246,122,32,.15)}
.phone-wrap .ficon{z-index:2}
.phone-container{flex:1;display:flex;align-items:center;height:100%;min-width:0;position:relative}

/* country picker (JS replaces the select) */
.country-picker{position:relative;flex-shrink:0}
.country-picker-btn{
  display:flex;align-items:center;gap:6px;
  padding:0 12px;height:100%;
  background:transparent;border:none;border-right:1.5px solid var(--line);
  cursor:pointer;font-family:var(--body);font-size:14px;font-weight:600;color:var(--ink);
  white-space:nowrap;transition:background .2s ease;
}
.country-picker-btn:hover{background:rgba(0,0,0,.03)}
.country-flag{width:22px;height:16px;object-fit:cover;border-radius:2px;box-shadow:0 1px 2px rgba(0,0,0,.1)}
.dial-code{font-weight:500;color:var(--ink-soft)}
.country-picker-arrow{font-size:.6rem;color:#BCA997;margin-left:2px}
.phone-number-input{
  flex:1;min-width:0;height:100%;padding:0 16px;
  border:0;background:transparent;
  font-family:var(--body);font-size:15px;font-weight:500;color:var(--ink);outline:none;
}
.phone-number-input::placeholder{color:#BCA997}

/* country dropdown */
.country-dropdown{
  position:absolute;top:calc(100% + 6px);left:0;
  width:300px;max-height:320px;
  background:#fff;border:1px solid var(--line);border-radius:13px;
  box-shadow:0 16px 48px rgba(32,22,17,.15);z-index:200;
  display:none;overflow:hidden;
}
.country-dropdown.open{display:block}
.country-search{
  width:100%;padding:12px 16px;border:none;border-bottom:1px solid var(--line);
  font-family:var(--body);font-size:13px;color:var(--ink);outline:none;background:#FAFAF7;
}
.country-search::placeholder{color:#BCA997}
.country-list{max-height:260px;overflow-y:auto;overscroll-behavior:contain}
.country-list::-webkit-scrollbar{width:4px}
.country-list::-webkit-scrollbar-track{background:transparent}
.country-list::-webkit-scrollbar-thumb{background:#D5CAB9;border-radius:4px}
.country-option{
  display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;
  transition:background .15s ease;font-size:13px;color:var(--ink);
}
.country-option:hover{background:rgba(0,0,0,.03)}
.country-option.selected{background:rgba(0,0,0,.06);font-weight:600}
.country-option .country-flag{width:24px;height:18px}
.country-option-name{flex:1}
.country-option-dial{color:#9C8877;font-weight:500;font-size:12px}

/* legacy select (fallback when JS doesn't init) */
.phone-container select{
  height:100%;border:0;background:transparent;cursor:pointer;padding:0 10px 0 0;
  font-family:var(--body);font-size:14px;font-weight:600;color:var(--ink);
}
.phone-container select:focus{outline:none}
.phone-container input{
  flex:1;min-width:0;height:100%;padding:0 16px;
  border:0;border-left:1.5px solid var(--line);background:transparent;
  font-family:var(--body);font-size:15px;font-weight:500;color:var(--ink);
}
.phone-container input:focus{outline:none}
.phone-container input::placeholder{color:#BCA997}

/* errors */
.ferror{display:block;font-size:12.5px;font-weight:500;color:#C0392B;line-height:1.4}
.ferror:not(:empty){margin-top:7px}
.fgroup.error .finput,.fgroup.error .phone-wrap{border-color:#D9705C;box-shadow:0 0 0 4px rgba(192,57,43,.10)}

/* button */
.btn-submit{
  position:relative;width:100%;height:56px;margin-top:26px;
  display:flex;align-items:center;justify-content:center;gap:11px;
  font-family:var(--body);font-size:15px;font-weight:700;color:#fff;
  background:var(--orange);border:0;border-radius:13px;cursor:pointer;
  box-shadow:0 12px 26px -12px rgba(246,122,32,.85);
  transition:background .2s ease,transform .15s ease,box-shadow .2s ease;
}
.btn-submit:hover{background:var(--orange-deep);transform:translateY(-1px);box-shadow:0 16px 30px -12px rgba(197,90,11,.8)}
.btn-submit:active{transform:translateY(0)}
.btn-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}
.btn-arrow{display:inline-flex;transition:transform .2s ease}
.btn-submit:hover .btn-arrow{transform:translateX(4px)}
.btn-loader[hidden]{display:none}

.form-reassurance{margin:18px 0 0;text-align:center;font-size:12.5px;line-height:1.5;color:var(--ink-soft)}
.form-reassurance i{color:var(--leaf);margin-right:6px}

.reg-footer{margin-top:22px;text-align:center}
.reg-footer p{margin:0;font-size:12px;color:#9C8877}

/* sweetalert, if you keep it */
.swal2-styled.swal2-confirm{background:var(--orange)!important;border-radius:11px!important;font-family:var(--body)!important;font-weight:700!important}
.swal2-popup{border-radius:20px!important;font-family:var(--body)!important}
.swal2-title{font-family:var(--display)!important;letter-spacing:-.02em!important}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .reg-main{padding:26px 16px 20px}
  .reg-card{grid-template-columns:1fr;border-radius:22px}
  .card-visual{min-height:0}
  .visual-content{padding:26px 24px;gap:22px}
  .visual-title{font-size:27px}
  .visual-subtitle{margin-top:10px;max-width:none}
  .visual-divider{margin:18px 0 12px}
  .visual-logo{height:42px}
  .card-form{padding:34px 24px 30px}
  .card-form::before{
    left:44px;top:-15px;
    border-left:13px solid transparent;border-right:13px solid transparent;
    border-bottom:16px solid var(--paper);border-top:0;
  }
}
@media (max-width:420px){
  .visual-top{flex-direction:column;align-items:flex-start;gap:12px}
  .form-title{font-size:26px}
  .finput,.phone-wrap,.btn-submit{height:52px}
}
@media (prefers-reduced-motion:reduce){
  .btn-submit:hover{transform:none}
}

/* ==========================================================
   Sign-up confirmation (/success)
   ========================================================== */

.done{width:100%;max-width:560px;text-align:center}

.done__card{
  position:relative;background:var(--paper);border:1px solid var(--line);
  border-radius:26px;padding:clamp(34px,5vw,52px) clamp(26px,4vw,46px) clamp(32px,4vw,44px);
  box-shadow:0 40px 90px -44px rgba(32,22,17,.5);
}
/* the wordmark's tail, pointing down at the address line */
.done__card::after{
  content:"";position:absolute;left:50%;bottom:-15px;transform:translateX(-50%);
  width:0;height:0;
  border-left:15px solid transparent;border-right:15px solid transparent;
  border-top:16px solid var(--paper);
}

.done__logo{height:46px;width:auto;margin:0 auto}

.done__tick{
  display:flex;align-items:center;justify-content:center;
  width:58px;height:58px;margin:28px auto 0;border-radius:50%;
  background:var(--leaf);color:#fff;font-size:22px;
  box-shadow:0 0 0 8px rgba(60,122,87,.12);
}

.done__title{
  font-family:var(--display);font-weight:800;
  font-size:clamp(27px,4.2vw,38px);line-height:1.05;letter-spacing:-.035em;
  margin:24px 0 0;color:var(--ink);
}
.done__sub{margin:14px auto 0;max-width:42ch;font-size:15.5px;line-height:1.62;color:var(--ink-soft)}
.done__sub strong{color:var(--ink);font-weight:700}

.done__next{
  list-style:none;margin:30px 0 0;padding:26px 0 0;border-top:1px solid var(--line);
  display:grid;gap:16px;text-align:left;
}
.done__next li{display:flex;align-items:flex-start;gap:14px;font-size:14.5px;line-height:1.55;color:var(--ink-soft)}
.done__next i{
  flex:none;width:34px;height:34px;border-radius:10px;background:var(--sand);
  display:flex;align-items:center;justify-content:center;color:var(--orange);font-size:13px;
}

.done__actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:30px}
.done__actions .btn{flex:1 1 200px;justify-content:center}
.done__actions .btn i{transition:none}
.done__actions .btn:hover i{transform:none}

.done__foot{
  margin:32px 0 0;font-size:12.5px;font-weight:500;color:#9C8877;
  display:flex;align-items:center;justify-content:center;gap:9px;
}
.done__foot i{color:var(--orange)}

@media (max-width:480px){
  .done__actions .btn{flex:1 1 100%}
}
