/* =========================================================
   ETHEREAL PASSPORT · PERFIL CLIENTE · 8 SELLOS
========================================================= */

.passport-profile-v3,
.passport-rewards-wallet{
  background:rgba(255,255,255,.96);
  border:1px solid rgba(215,208,241,.72);
  border-radius:30px;
  box-shadow:0 20px 55px rgba(75,58,133,.10);
}

.passport-profile-v3{
  display:grid;
  grid-template-columns:minmax(260px,.78fr) minmax(540px,1.45fr);
  overflow:hidden;
}

.passport-profile-intro{
  padding:38px;
  color:#fff;
  background:
    radial-gradient(circle at 85% 15%,rgba(255,244,155,.25),transparent 30%),
    linear-gradient(145deg,#bea9e3,#9f86d2);
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:18px;
}

.passport-profile-intro h2{
  margin:0;
  max-width:390px;
  color:#fff;
  font-size:clamp(40px,4.6vw,66px);
  line-height:.98;
  letter-spacing:-.05em;
}

.passport-profile-intro p{
  margin:0;
  color:rgba(255,255,255,.94);
  font-size:15px;
  line-height:1.65;
}

.passport-profile-intro p strong{color:#fff49b}

.passport-cycle-chip{
  width:fit-content;
  padding:11px 16px;
  border:1px solid rgba(255,255,255,.35);
  border-radius:999px;
  background:rgba(255,255,255,.15);
  display:flex;
  align-items:center;
  gap:10px;
}

.passport-cycle-chip span{
  color:rgba(255,255,255,.82);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.passport-cycle-chip strong{
  color:#fff49b;
  font-size:13px;
}

.passport-profile-intro .passport-code-box{
  margin-top:8px;
  background:rgba(255,255,255,.16)!important;
  border:1px solid rgba(255,255,255,.34)!important;
}

.passport-profile-ticket-wrap{
  padding:34px;
  background:
    radial-gradient(circle at 90% 0,rgba(215,208,241,.36),transparent 29%),
    #fff;
}

.passport-profile-heading{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:20px;
}

.passport-profile-heading span{
  display:block;
  margin-bottom:6px;
  color:#9d88c5;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.11em;
}

.passport-profile-heading h3{
  margin:0;
  color:#5f4d7a;
  font-size:clamp(25px,3vw,36px);
  line-height:1.08;
}

.passport-profile-heading>b{
  color:#9c7acb;
  font-size:30px;
  line-height:1;
}

.passport-profile-progress{
  height:12px;
  margin:19px 0 12px;
  overflow:hidden;
  border-radius:999px;
  background:#efeafd;
}

.passport-profile-progress i{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,#c9b5ed,#9673cc);
  transition:width .5s ease;
}

.passport-next-text{
  margin:0 0 20px;
  color:#776b88;
  font-size:14px;
  font-weight:700;
  line-height:1.55;
}

.passport-profile-ticket{
  position:relative;
  padding:28px;
  border:2px dashed #c9b7e8;
  border-radius:25px;
  background:linear-gradient(145deg,#fffdf9,#faf6ff);
  box-shadow:0 16px 36px rgba(75,58,133,.09);
}

.passport-profile-ticket:before,
.passport-profile-ticket:after{
  content:"";
  position:absolute;
  top:50%;
  width:28px;
  height:58px;
  border-radius:50%;
  background:#fff;
  transform:translateY(-50%);
}

.passport-profile-ticket:before{left:-16px}
.passport-profile-ticket:after{right:-16px}

.passport-profile-stamps{
  position:relative;
  display:grid;
  grid-template-columns:repeat(4,minmax(100px,1fr));
  gap:27px 22px;
}

.passport-profile-stamps:before,
.passport-profile-stamps:after{
  content:"";
  position:absolute;
  left:8%;
  right:8%;
  z-index:0;
  border-top:2px dashed #ddd1f1;
}

.passport-profile-stamps:before{top:55px}
.passport-profile-stamps:after{bottom:55px}

.passport-profile-stamp{
  position:relative;
  z-index:1;
  width:112px;
  height:112px;
  margin:auto;
  border:3px solid #fff;
  outline:2px dashed #c8b7e6;
  outline-offset:-11px;
  border-radius:50%;
  background:#f6f2fc;
  color:#b2a5c8;
  box-shadow:0 11px 24px rgba(75,58,133,.12);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  transition:.25s ease;
}

.passport-profile-stamp.is-filled{
  color:#7d64a8;
  background:#fff;
  box-shadow:0 15px 28px rgba(75,58,133,.18);
  transform:translateY(-2px);
}

.passport-profile-stamp-number{
  font-family:Georgia,"Times New Roman",serif;
  font-size:38px;
  line-height:.9;
  font-weight:700;
}

.passport-profile-stamp small{
  margin-top:7px;
  font-size:17px;
}

.passport-profile-stamp strong{
  margin-top:6px;
  font-size:17px;
  line-height:1.05;
}

.passport-profile-stamp.is-discount{
  color:#7a609f;
  background:linear-gradient(145deg,#fffbd7,#fff08c);
  outline-color:#b89f60;
}

.passport-profile-stamp.is-discount:not(.is-filled){
  filter:saturate(.55);
  opacity:.7;
}

.passport-profile-stamp.is-free{
  color:#fff;
  background:linear-gradient(145deg,#aa91d5,#71549f);
  outline-color:rgba(255,255,255,.72);
}

.passport-profile-stamp.is-free:not(.is-filled){
  opacity:.62;
  filter:saturate(.55);
}

.passport-profile-stamp.is-free .passport-profile-stamp-number{font-size:30px}
.passport-profile-stamp.is-free strong{font-size:12px;letter-spacing:.04em}

.passport-profile-reward-explainer{
  margin-top:20px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:13px;
}

.passport-profile-reward-explainer article{
  padding:16px;
  border-radius:18px;
  background:#f8f5ff;
  display:flex;
  gap:13px;
  align-items:center;
}

.passport-profile-reward-explainer article>span{
  width:42px;
  height:42px;
  flex:0 0 42px;
  border-radius:50%;
  background:#d7c8ef;
  color:#6f569b;
  display:grid;
  place-items:center;
  font-size:17px;
  font-weight:900;
}

.passport-profile-reward-explainer article:last-child>span{
  color:#fff;
  background:#7d62aa;
}

.passport-profile-reward-explainer strong{
  display:block;
  margin-bottom:4px;
  color:#675379;
  font-size:14px;
}

.passport-profile-reward-explainer p{
  margin:0;
  color:#81758d;
  font-size:12px;
  line-height:1.45;
}

.passport-rewards-wallet{
  padding:28px;
}

.passport-wallet-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:22px;
  margin-bottom:20px;
}

.passport-wallet-head h3{
  margin:0;
  color:#755c9e;
  font-size:26px;
}

.passport-wallet-head small{
  max-width:390px;
  color:#8a8096;
  font-weight:700;
  line-height:1.45;
  text-align:right;
}

.passport-wallet-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:15px;
}

.passport-wallet-card{
  padding:19px;
  border:1px solid #ece4f8;
  border-radius:20px;
  background:linear-gradient(145deg,#fff,#faf7ff);
}

.passport-wallet-card.status-redeemed,
.passport-wallet-card.status-inactive,
.passport-wallet-card.status-expired{
  opacity:.66;
}

.passport-wallet-card.status-reserved{
  border-color:#eadb9d;
  background:#fffcf0;
}

.passport-wallet-top{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
}

.passport-wallet-top span{
  color:#9d8bbd;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.07em;
}

.passport-wallet-top b{
  padding:5px 9px;
  border-radius:999px;
  color:#fff;
  background:#8c6db9;
  font-size:10px;
  text-transform:uppercase;
}

.status-redeemed .passport-wallet-top b,
.status-inactive .passport-wallet-top b,
.status-expired .passport-wallet-top b{background:#9a939f}
.status-reserved .passport-wallet-top b{background:#c6a647}

.passport-wallet-card h4{
  margin:15px 0 11px;
  color:#604879;
  font-size:20px;
}

.passport-wallet-code{
  display:grid;
  grid-template-columns:1fr auto;
  gap:9px;
}

.passport-wallet-code code{
  min-width:0;
  padding:11px 12px;
  overflow-wrap:anywhere;
  border-radius:12px;
  background:#f0ebfa;
  color:#6d5592;
  font-family:Consolas,monospace;
  font-size:12px;
  font-weight:800;
}

.copy-passport-code{
  border:0;
  border-radius:999px;
  padding:0 17px;
  background:#d7c7ef;
  color:#62478b;
  font-family:inherit;
  font-weight:900;
  cursor:pointer;
}

.passport-wallet-card p{
  margin:12px 0 0;
  color:#80758d;
  font-size:12px;
  line-height:1.5;
}

.passport-wallet-empty{
  padding:23px;
  border-radius:18px;
  background:#f8f5ff;
  color:#7b6b8e;
  font-weight:700;
  text-align:center;
}

@media(max-width:980px){
  .passport-profile-v3{grid-template-columns:1fr}
  .passport-profile-intro{padding:31px}
}

@media(max-width:720px){
  .passport-profile-ticket-wrap,
  .passport-profile-intro,
  .passport-rewards-wallet{padding:22px}

  .passport-profile-heading,
  .passport-wallet-head{align-items:flex-start;flex-direction:column}
  .passport-wallet-head small{text-align:left}

  .passport-profile-ticket{padding:22px 13px}
  .passport-profile-stamps{grid-template-columns:repeat(2,1fr);gap:23px 12px}
  .passport-profile-stamps:before,
  .passport-profile-stamps:after{display:none}
  .passport-profile-stamp{width:105px;height:105px}
  .passport-profile-reward-explainer,
  .passport-wallet-grid{grid-template-columns:1fr}
}

@media(max-width:390px){
  .passport-profile-stamp{width:94px;height:94px}
  .passport-profile-stamp-number{font-size:33px}
  .passport-profile-stamp strong{font-size:14px}
  .passport-profile-stamp.is-free strong{font-size:10px}
  .passport-wallet-code{grid-template-columns:1fr}
  .copy-passport-code{min-height:40px}
}
