:root{
  --se-public-purple:#5b32f4;
  --se-public-purple-2:#7c5cff;
  --se-public-ink:#111827;
  --se-public-text:#344054;
  --se-public-muted:#667085;
  --se-public-line:#e6e9f2;
  --se-public-soft:#f8f9fc;
}

.se-public-hero,.se-listings,.se-feature-row,.se-room-detail,.se-confirmation{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
}
.se-public-hero{
  border-radius:0 0 28px 28px;
  overflow:hidden;
}
.se-public-hero:before{
  background:linear-gradient(90deg,rgba(15,23,42,.78),rgba(45,27,145,.34) 58%,rgba(15,23,42,.62))!important;
}
.se-public-nav strong{
  font-family:Inter,ui-sans-serif!important;
  font-weight:900;
}
.gold,.se-search-strip button,.se-public-room a,.se-booking-form button,.se-public-filters button{
  border:0!important;
  border-radius:12px!important;
  background:linear-gradient(135deg,var(--se-public-purple),var(--se-public-purple-2))!important;
  color:#fff!important;
  box-shadow:0 16px 30px rgba(91,50,244,.28);
  transition:transform .16s ease,box-shadow .16s ease;
}
.gold:hover,.se-search-strip button:hover,.se-public-room a:hover,.se-booking-form button:hover,.se-public-filters button:hover{
  transform:translateY(-1px);
  box-shadow:0 20px 36px rgba(91,50,244,.34);
}

.se-search-strip{
  border:1px solid rgba(230,233,242,.9);
  border-radius:18px!important;
  box-shadow:0 24px 70px rgba(15,23,42,.18)!important;
  gap:0!important;
}
.se-search-strip label{
  border-right:1px solid var(--se-public-line);
  color:#475467!important;
}
.se-search-strip input,.se-search-strip select,
.se-public-filters input,.se-public-filters select,
.se-booking-form input,.se-booking-form select,.se-booking-form textarea{
  min-height:44px;
  border:1px solid var(--se-public-line)!important;
  border-radius:12px!important;
  background:#fff!important;
  color:var(--se-public-text)!important;
  padding:11px 13px!important;
  font-size:15px!important;
  outline:0!important;
  transition:border-color .16s ease,box-shadow .16s ease;
}
.se-search-strip input,.se-search-strip select{
  border:0!important;
  border-radius:0!important;
  padding:0!important;
  min-height:auto;
}
.se-public-filters input:focus,.se-public-filters select:focus,
.se-booking-form input:focus,.se-booking-form select:focus,.se-booking-form textarea:focus{
  border-color:rgba(91,50,244,.65)!important;
  box-shadow:0 0 0 4px rgba(91,50,244,.12)!important;
}

.se-feature-row article{
  background:#fff;
  border:1px solid var(--se-public-line);
  border-radius:18px;
  padding:18px;
  box-shadow:0 14px 34px rgba(15,23,42,.06);
}
.se-feature-row i{
  border:0!important;
  background:#f3f0ff;
  position:relative;
}
.se-feature-row i:before{
  content:"";
  position:absolute;
  inset:15px;
  border-radius:8px;
  background:var(--se-public-purple);
  box-shadow:14px 0 0 rgba(91,50,244,.28),0 14px 0 rgba(91,50,244,.18);
}

.se-listings{
  max-width:1260px!important;
  color:var(--se-public-ink)!important;
}
.se-section-head{
  gap:16px;
}
.se-section-head span{
  color:var(--se-public-purple)!important;
  letter-spacing:.08em;
}
.se-section-head h2{
  font-family:Inter,ui-sans-serif!important;
  font-weight:900;
  letter-spacing:0;
}
.se-section-head a{
  border-color:#ded6ff!important;
  color:var(--se-public-purple)!important;
  border-radius:12px!important;
  background:#fff;
}
.se-public-filters{
  grid-template-columns:2fr 1fr 1fr 1fr auto!important;
  padding:14px;
  border:1px solid var(--se-public-line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 16px 40px rgba(15,23,42,.06);
}
.se-public-filters button{
  min-height:44px;
  padding:0 22px;
  font-weight:850;
  cursor:pointer;
}

.se-room-list{
  gap:26px!important;
}
.se-public-room{
  border-radius:20px!important;
  border-color:var(--se-public-line)!important;
  box-shadow:0 18px 44px rgba(15,23,42,.08)!important;
  transition:transform .18s ease,box-shadow .18s ease;
}
.se-public-room:hover{
  transform:translateY(-3px);
  box-shadow:0 28px 64px rgba(15,23,42,.12)!important;
}
.se-public-room img{
  height:230px!important;
  background:#eef1f6;
}
.se-public-room h3{
  font-family:Inter,ui-sans-serif!important;
  font-weight:900;
  color:var(--se-public-ink);
}
.se-public-room p,.se-public-room span{
  color:var(--se-public-muted)!important;
  line-height:1.45;
}
.se-public-room p a{
  color:var(--se-public-purple)!important;
  text-decoration:none;
  font-weight:850;
}
.se-public-room footer{
  border-top:1px solid #edf0f6;
  padding:16px 18px 18px!important;
}
.se-public-room strong{
  color:var(--se-public-ink);
  display:grid;
  gap:2px;
}
.se-public-room small{
  color:var(--se-public-muted)!important;
  font-weight:700;
}
.se-public-room a{
  padding:11px 16px!important;
  font-size:12px;
  white-space:nowrap;
}

.se-room-detail{
  align-items:start;
}
.gallery img,.detail-copy,.se-booking-form{
  border-radius:20px!important;
  border-color:var(--se-public-line)!important;
  box-shadow:0 18px 44px rgba(15,23,42,.08)!important;
}
.detail-copy h2,.se-booking-form h3{
  font-family:Inter,ui-sans-serif!important;
  font-weight:900;
  color:var(--se-public-ink);
}
.pricing span{
  background:#f3f0ff!important;
  color:#3b258f;
  border:1px solid #ded6ff;
  border-radius:14px!important;
}
.se-booking-form{
  gap:14px!important;
  padding:26px!important;
}
.se-booking-form label{
  color:#344054;
  font-size:13px;
  font-weight:820;
}
.se-booking-form label:has(input[required])::after,
.se-booking-form label:has(select[required])::after{
  content:" *";
  color:#ef3e5c;
}
.se-booking-form textarea{min-height:110px!important;resize:vertical}
.se-booking-form input[type="checkbox"]{
  width:18px;
  height:18px;
  min-height:18px;
  accent-color:var(--se-public-purple);
}
.terms{
  gap:10px!important;
  color:var(--se-public-muted)!important;
  font-weight:700!important;
}
.se-booking-response{
  min-height:24px;
  line-height:1.45;
  color:#0f7a45;
  font-weight:850;
}
.se-confirmation{
  border-color:#bbf7d0!important;
  background:linear-gradient(135deg,#f0fdf4,#fff)!important;
  border-radius:18px!important;
  box-shadow:0 18px 44px rgba(22,167,101,.12);
}

@media(max-width:980px){
  .se-public-filters{grid-template-columns:1fr 1fr!important}
  .se-public-filters button{grid-column:1 / -1}
}
@media(max-width:700px){
  .hero-copy{padding-top:70px!important}
  .hero-copy h1{font-size:38px!important}
  .se-search-strip label{border-right:0;border-bottom:1px solid var(--se-public-line)}
  .se-public-filters,.pricing,.se-room-detail .gallery{grid-template-columns:1fr!important}
  .se-section-head{display:grid!important}
  .se-section-head a{justify-self:start}
  .se-public-room footer{display:grid!important;align-items:start!important}
  .se-public-room a{width:100%}
}

.se-public-hero{
  min-height:720px!important;
}
.hero-copy{
  text-shadow:0 12px 36px rgba(0,0,0,.28);
}
.hero-copy h1{
  max-width:760px;
  letter-spacing:0!important;
}
.hero-copy p{
  color:rgba(255,255,255,.9);
}
.se-public-nav a{
  color:#fff;
  text-decoration:none;
}
.se-search-strip button{
  min-height:100%;
  border-radius:0!important;
}
.se-public-filters{
  align-items:center;
  margin-bottom:30px!important;
}
.se-room-list{
  align-items:stretch;
}
.se-public-room{
  display:flex;
  flex-direction:column;
  min-height:100%;
}
.se-public-room div{
  flex:1;
}
.se-public-room h3{
  font-size:21px!important;
  line-height:1.2;
}
.se-public-room footer{
  margin-top:auto;
}
.se-public-room strong{
  font-size:21px!important;
}
.se-public-room a:after{
  content:"";
  width:12px;
  height:12px;
  border-top:2px solid currentColor;
  border-right:2px solid currentColor;
  transform:rotate(45deg);
  margin-left:2px;
}
.se-public-empty{
  grid-column:1 / -1;
  display:grid;
  place-items:center;
  gap:8px;
  min-height:180px;
  padding:32px;
  border:1px dashed #d9d6f8;
  border-radius:20px;
  background:linear-gradient(135deg,#fff,#fbfaff);
  color:var(--se-public-muted);
  text-align:center;
  box-shadow:0 14px 34px rgba(15,23,42,.05);
}
.se-public-empty:before{
  content:"";
  width:50px;
  height:50px;
  border-radius:18px;
  background:
    linear-gradient(var(--se-public-purple),var(--se-public-purple)) 15px 15px/20px 20px no-repeat,
    #f3f0ff;
}
.se-public-empty strong{
  color:var(--se-public-ink);
  font-size:18px;
}
.se-public-empty span{
  max-width:460px;
}
.detail-copy{
  line-height:1.6;
}
.detail-copy ul{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  padding:0;
  margin:18px 0 0;
  list-style:none;
}
.detail-copy li{
  border:1px solid var(--se-public-line);
  border-radius:12px;
  padding:10px 12px;
  background:#fff;
  color:var(--se-public-text);
  font-weight:760;
}
.se-booking-form button{
  min-height:48px;
  font-size:14px;
}

@media(max-width:980px){
  .se-public-hero{min-height:auto!important}
  .se-room-detail{
    gap:18px!important;
    padding-top:22px!important;
  }
  .gallery img{height:300px!important}
}
@media(max-width:700px){
  .se-public-hero{
    padding-left:20px!important;
    padding-right:20px!important;
    border-radius:0 0 18px 18px;
  }
  .se-public-nav{
    height:82px!important;
  }
  .se-search-strip{
    border-radius:16px!important;
  }
  .se-search-strip button{
    border-radius:0 0 16px 16px!important;
    min-height:52px;
  }
  .se-feature-row{
    margin-top:28px!important;
  }
  .se-public-filters{
    padding:12px;
    border-radius:16px;
  }
  .se-public-room img{
    height:205px!important;
  }
  .gallery img,.gallery img+img{
    height:240px!important;
  }
  .detail-copy ul{
    grid-template-columns:1fr;
  }
  .se-booking-form{
    padding:20px!important;
  }
}

.stayease-icon{
  width:20px;
  height:20px;
  min-width:20px;
  min-height:20px;
  flex:0 0 20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--se-public-purple);
  line-height:1;
  vertical-align:-3px;
  overflow:hidden;
}
.stayease-icon-card{
  width:24px;
  height:24px;
  min-width:24px;
  min-height:24px;
  flex:0 0 24px;
  color:var(--se-public-purple);
}
.stayease-icon-btn{
  width:40px;
  height:40px;
}
.stayease-icon-muted{color:var(--se-public-muted)}
.stayease-icon-success{color:#16a765}
.stayease-icon-danger{color:#ef3e5c}
.stayease-icon svg{
  width:20px!important;
  height:20px!important;
  min-width:20px!important;
  min-height:20px!important;
  max-width:20px!important;
  max-height:20px!important;
  display:block!important;
  flex:0 0 20px!important;
  overflow:visible;
}
.stayease-icon-card svg{
  width:24px!important;
  height:24px!important;
  min-width:24px!important;
  min-height:24px!important;
  max-width:24px!important;
  max-height:24px!important;
  flex-basis:24px!important;
}
.stayease-icon-btn svg,.stayease-icon-btn .stayease-icon svg{
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  min-height:18px!important;
  max-width:18px!important;
  max-height:18px!important;
  flex-basis:18px!important;
}
.se-public-room a .stayease-icon,.se-booking-form button .stayease-icon,.gold .stayease-icon{color:currentColor}
.se-feature-row article>.stayease-icon-card{
  grid-row:span 2;
  width:54px;
  height:54px;
  padding:14px;
  border-radius:18px;
  background:#f3f0ff;
  box-shadow:inset 0 0 0 1px #ded6ff;
}
.se-public-room h3,.se-public-room p,.se-public-room span,.se-public-room strong,.se-public-room a,.se-booking-form h3{
  display:flex;
  align-items:center;
  gap:8px;
}
.se-booking-form label{
  display:grid!important;
  grid-template-columns:20px 1fr;
  align-items:center;
  gap:7px 8px!important;
}
.se-booking-form label input,.se-booking-form label select,.se-booking-form label textarea{
  width:100%;
  grid-column:1 / -1;
}
.se-booking-form .terms{
  display:flex!important;
  align-items:center;
}

.stayease-login-required{
  width:100vw;
  min-height:100vh;
  margin-left:calc(50% - 50vw);
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#f7f8fc,#fff);
  padding:32px;
}
.stayease-login-required>div{
  width:min(440px,100%);
  display:grid;
  justify-items:center;
  gap:12px;
  padding:34px;
  border:1px solid var(--se-public-line);
  border-radius:24px;
  background:#fff;
  box-shadow:0 22px 70px rgba(15,23,42,.1);
  text-align:center;
}
.stayease-login-required h2{
  margin:4px 0 0;
  font-size:24px;
  color:var(--se-public-ink);
}
.stayease-login-required p{
  margin:0 0 8px;
  color:var(--se-public-muted);
}
.stayease-login-required .primary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 20px;
  border-radius:12px;
  background:linear-gradient(135deg,var(--se-public-purple),var(--se-public-purple-2));
  color:#fff!important;
  text-decoration:none;
  font-weight:850;
  box-shadow:0 16px 30px rgba(91,50,244,.24);
}
