
* {
  box-sizing: border-box
}

html {
  
}

body {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow-x: hidden;
  color: var(--main-text);
  font-family: Poppins,"Segoe UI",Arial,sans-serif;
  background-color: #fff;
  line-height: 1.45
}

.registration-page:before,.registration-page:after {
  content: "";
  position: absolute;
  top: 0;
  z-index: 0;
  width: clamp(90px,11vw,168px);
  aspect-ratio: 168 / 338;
  background-position: top center;
  background-repeat: no-repeat;
  background-size: contain;
  pointer-events: none
}

.registration-page:before {
    left: 0;
    background-image: url("../systemFiles/leaf-left.png")
}

.registration-page:after {
    right: 0;
    background-image: url("../systemFiles/leaf-right.png")
}

.registration-page {
    width: 100%;
    flex: 1 1 auto;
    position: relative;
    z-index: 1;
    background-color: #fff;
    background-image: url("../systemFiles/register-image-bg.png");
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-position: center calc(100% + 100px);
}

.page-shell {
  width: min(1800px,100%);
  margin: auto;
  display: grid;
  position: relative;
  z-index: 1;
  grid-template-columns: 36% 64%;
  padding: clamp(24px,43.2px,56px) clamp(28px,5.7vw,116px)
}

.brand-panel {
  position: relative;
  padding: 0 4.5vw 0 0
}

.brand-content {
  max-width: 500px
}

.event-logo {
  display: block;
  width: 230px;
  max-width: 100%;
  margin: 0 0 48px
}

.brand-panel h1 {
  margin: 0 0 24px;
  color: #15526b;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4
}

.brand-panel h1 span {
  color: #8bc53e
}

.event-intro {
  max-width: 485px;
  margin: 0;
  color: #111;
  font-size: 12px;
  font-weight: 500;
  text-align: justify
}

.event-meta {
  display: grid;
  gap: 30px;
  margin-top: 48px
}

.meta-item {
  display: flex;
  align-items: center;
  gap: 24px
}

.meta-icon {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  flex: none;
  border-radius: 50%
}

.meta-icon.green {
  background: #85c43a
}

.meta-icon.blue {
  background: #0072bc
}

.meta-icon img {
  width: 20px;
  height: 20px;
  object-fit: contain
}

.meta-item strong,.meta-item div span {
  display: block;
  color: #15526b
}

.meta-item strong {
  font-size: 14px
}

.meta-item div span {
  font-size: 12px
}

.form-area {
  display: flex;
  align-items: flex-start;
  min-width: 0;
  padding-left: 1.5vw
}

.registration-card {
  width: 100%;
  min-width: 0;
  padding: 50px 72px 34px;
  background: #fff;
  border: 1px solid #c9c9c9;
  border-radius: 20px;
  box-shadow: 0 1px 5px rgba(0,0,0,.27)
}

.section-heading {
  display: flex;
  align-items: center;
  gap: 38px;
  margin-bottom: 48px
}

.section-icon {
  display: grid;
  width: 60px;
  height: 60px;
  place-items: center;
  flex: none;
  border: 5px solid #80c239;
  border-radius: 50%
}

.section-icon img {
  width: 30px;
  height: 30px
}

.section-heading h3 {
  margin: 0;
  color: #0072bc;
  font-size: clamp(24px,2vw,36px);
  font-weight: 700
}

.section-heading h3:after {
  content: "";
  display: block;
  width: 155px;
  height: 6px;
  margin-top: 13px;
  background: linear-gradient(90deg,#80c239 55%,transparent);
  border-radius: 5px
}

.section-help {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0
}

.form-label {
  margin-bottom: 17px;
  color: #214d25;
  font-size: 14px;
  font-weight: 700
}

.required {
  color: var(--required-red)
}

.optional {
  font-weight: 400;
  color: #68766e
}

.form-control,.form-select,.input-group>.form-control {
  min-height: 46px;
  border: 1px solid var(--input-border);
  border-radius: 9px;
  color: #222;
  font-size: 14px
}

.form-control:focus,.form-select:focus {
  border-color: #0072bc;
  box-shadow: 0 0 0 3px rgba(0,114,188,.15)
}

.input-with-icon {
  position: relative
}

.input-with-icon i {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 14px;
  color: #aaa;
  font-size: 20px;
  transform: translateY(-50%)
}

.input-with-icon input {
  padding-left: 54px
}

.field-validation-valid,.field-validation-error {
  display: block;
  min-height: 19px;
  padding-top: 3px;
  color: #d63333;
  font-size: 12.16px
}

.is-invalid {
  border-color: #d63333!important
}

.btn {
  min-height: 46px;
  border-radius: 18px;
  font-weight: 700
}

.btn:focus-visible {
  outline: 3px solid rgba(0,114,188,.35);
  outline-offset: 2px
}

.btn-main,.btn-submit {
  border-color: #79ae31;
  background: #c9fa00;
  color: #17451d
}

.btn-main:hover,.btn-submit:hover {
  border-color: #5d9220;
  background: #b9e900;
  color: #173d1a
}

.btn-main {
  min-width: 150px
}

.step-divider {
  display: flex;
  align-items: center;
  margin: 18px 0 38px
}

.step-divider:before,.step-divider:after {
  content: "";
  height: 2px;
  flex: 1;
  background: #7bc143
}

.details-toggle {
  display: grid;
  width: 38px;
  height: 38px;
  min-height: 38px;
  margin: 0 20px;
  padding: 0;
  place-items: center;
  flex: none;
  border: 0;
  border-radius: 50%;
  background: #80c239;
  color: #fff;
  cursor: pointer
}

.details-toggle:disabled {
  cursor: not-allowed;
  opacity: 1
}

.details-toggle:not(:disabled):hover {
  background: #67a52c
}

.details-toggle:focus-visible {
  outline: 3px solid rgba(0,114,188,.35);
  outline-offset: 3px
}

.locked-placeholder {
  position: relative;
  display: flex;
  min-height: 235px;
  align-items: center;
  margin-top: 0;
  padding: 45px 80px;
  border: 1px solid #e0e0e0;
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 4px 5px rgba(0,0,0,.23);
  overflow: hidden
}

.locked-placeholder p {
  position: relative;
  z-index: 1;
  margin: 0;
  color: #090909;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.55;
  text-align: justify
}

.placeholder-mark {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    background: url("../systemFiles/logo-mark.png") left center/68px auto no-repeat;
    opacity: 15%
}

.personal-details {
  padding-top: 2px
}

.personal-details.is-revealing {
  animation: reveal .45s ease both
}

.personal-details .section-heading {
  margin-bottom: 26px
}

.personal-details .row {
  --bs-gutter-x: 32px;
  --bs-gutter-y: 4.8px
}

.country-code {
  max-width: 75px;
  background: #f3f6f4;
  font-weight: 700;
  text-align: center
}

.form-actions {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-top: 24px
}

.form-actions .btn-outline-secondary {
  min-width: 150px;
  border-color: #ff6100;
  color: #ef5c12;
  background: #fff
}

.form-actions .btn-outline-secondary:hover {
  background: #fff5ef
}

.btn-submit {
  min-width: 190px;
  padding-inline: 23px
}

.success-modal {
  border: 0;
  border-radius: 20px
}

.success-modal .modal-body {
  padding: 45px
}

.success-mark {
  display: grid;
  width: 66px;
  height: 66px;
  margin: auto;
  place-items: center;
  border-radius: 50%;
  background: #7bc143;
  color: #fff;
  font-size: 28.8px
}

.site-footer {
  min-height: 31px;
  margin-top: -2px;
  padding: 6px 12px;
  flex: none;
  position: relative;
  z-index: 1;
  background: linear-gradient(90deg,#aafa3d,#cae4af,#72a9e8);
  color: #111;
  font-size: 11.84px;
  font-weight: 600;
  text-align: center
}


@keyframes reveal {
  from {
  opacity: 0;
  transform: translateY(-14px)
}

to {
  opacity: 1;
  transform: none
}


}


@media(min-width:992px) and (max-height:900px) {
  .page-shell {
  padding-top: 32.4px;
  padding-bottom: 43.2px
}

.registration-card {
  min-height: 0;
  padding-top: 35px
}

.event-logo {
  margin-bottom: 25px
}

.event-meta {
  margin-top: 28px;
  gap: 20px
}

.section-heading {
  margin-bottom: 28px
}

.locked-placeholder {
  min-height: 180px
}

  .brand-panel {
  padding-bottom: 0
}


}


@media(max-width:1199px) {
.page-shell {
  grid-template-columns: 35% 65%;
  padding: 35px 28px
}

.brand-panel {
  padding-right: 24px
}

.registration-card {
  padding: 40px
}

.event-logo {
  margin-bottom: 32px
}

.section-heading {
  gap: 24px
}

.section-icon {
  width: 78px;
  height: 78px
}

.locked-placeholder {
  padding: 38px 55px
}


}


@media(max-width:991px) {
  .page-shell {
  display: block;
  padding: 30px
}

.brand-panel {
  padding: 0 0 56px
}

.brand-content {
  max-width: 700px
}

.event-meta {
  grid-template-columns: 1fr 1fr
}

.form-area {
  padding: 0
}

.registration-card {
  min-height: 0
}

.event-logo {
  width: 360px
}


}


@media(max-width:767.98px) {
.registration-page:before,.registration-page:after {
  width: clamp(64px,22vw,100px);
  opacity: .72
}

.page-shell {
  padding: 22px 12px
}

.brand-panel {
  padding: 0 10px 40px
}

.event-logo {
  width: 310px;
  margin-bottom: 25px
}

.brand-panel h1 {
  font-size: 28.8px
}

.event-intro {
  font-size: 13.12px
}

.event-meta {
  grid-template-columns: 1fr;
  gap: 15px;
  margin-top: 28px
}

.meta-icon {
  width: 55px;
  height: 55px
}

.meta-icon img {
  width: 32px;
  height: 32px
}

.form-area {
  margin-top: 12px
}

.registration-card {
  padding: 28px 18px;
  border-radius: 16px
}

.section-heading {
  gap: 16px;
  margin-bottom: 32px
}

.section-icon {
  width: 64px;
  height: 64px;
  border-width: 4px
}

.section-icon img {
  width: 36px;
  height: 36px
}

.section-heading h3 {
  font-size: 18px
}

.section-heading h3:after {
  width: 115px;
  height: 4px
}

.locked-placeholder {
  min-height: 180px;
  padding: 32px 30px 32px 55px
}

.locked-placeholder p {
  font-size: 14px;
  text-align: left
}

.form-actions {
  flex-direction: column-reverse
}

.form-actions .btn {
  width: 100%
}

.site-footer {
  padding-block: 8px
}

.success-modal .modal-body {
  padding: 35px 22px
}


}


@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior: auto
}

*,*:before,*:after {
  animation-duration: .01ms!important;
  transition-duration: .01ms!important
}


}
