html,
body {
	margin: 0;
	padding: 0;
	min-height: 100%;
	font-family: system-ui, sans-serif;
	background: #f6f7fb;
	color: #222;
}

a {
	color: #d62943;
}
h2 {
	font-size: 1.875rem;
	font-weight: 600;
	color: #1d2641;
	margin: 0.6em 0;
}
.form-label {
	margin-bottom: 0.2rem;
	font-weight: 600;
	font-size: 1.2em;
}
.bg-site {
	background: #d62943;
}
/* scroll*/
/* Ãp dá»¥ng cho toÃ n bá»™ trang */
html {
	scrollbar-width: thin; /* Firefox */
	scrollbar-color: rgba(0, 0, 0, 0.3) transparent;
}

/* Cho Chrome, Edge, Safari */
::-webkit-scrollbar {
	width: 6px;
	height: 6px;
}

::-webkit-scrollbar-track {
	background: transparent;
}

::-webkit-scrollbar-thumb {
	background-color: rgba(0, 0, 0, 0.3);
	border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
	background-color: rgba(0, 0, 0, 0.5);
}

input,
textarea,
select {
	font-size: 16px !important;
}
.form-switch-lg {
	font-size: 20px;
	min-height: 30px;
	line-height: 30px;
}
.card .form-check .form-check-input {
	margin-top: 0.25rem;
	height: 23px;
	width: 3em;
}
@media (min-width: 992px) {
	/*.col-form-label {
		text-align: right;
	}
	*/
}

.row.mb-3 {
	position: relative;
}

.row.mb-3 + .row.mb-3 {
	padding-top: 1rem;
}

.row.mb-3 + .row.mb-3:before {
	display: block;
	content: "";
	position: absolute;
	width: calc(100% - calc(var(--bs-gutter-x) / 1));
	height: 0px;
	left: calc(var(--bs-gutter-x) / 2);
	top: 0;
	border-bottom: 1px solid #ededed;
}
/*menu-header*/
#menu-header i{
	   font-size: 1.2em;
}
#menu-header .rounded-icon{
	 width: 35px;
    height: 35px;
    background-color: black;
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
}

#menu-header .menu-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

#menu-header .menu-label {
  font-size: 14px;
  text-align: center;
  color:#000
}
/*menu bottom*/
#menu-bottom{
 position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  height: calc(80px + env(safe-area-inset-bottom));
  padding-bottom: env(safe-area-inset-bottom);
  background: #fff;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.1);
  z-index: 9;
}
#menu-bottom .menu .btn{
	 line-height: 1.3;
}
#menu-bottom .menu i{
	   font-size: 2em;
	   width:100%;
}
#menu-bottom .menu .text{
	   font-size: 11px;
}
#menu-bottom .menu .active .text{
	   font-weight: bold;
}
#menu-bottom .menu .active i{
	   color: #d62943
}
#menu-bottom .menu  .badge{
	top: -9px;
	left: 67% !important;
}
#menu-bottom .like  .badge{
	
	left: 67% !important;
}
#menu-bottom .matches  .badge{
	
	left: 52% !important;
}
#menu-bottom .chat  .badge{
	
	left: 57% !important;
}



/* táº¡o Ä‘Æ°á»ng cong phÃ­a trÃªn */
#menu-bottom::before {
  content: "";
  position: absolute;
  top: -18px; /* Ä‘áº©y cong lÃªn trÃªn menu */
  left: 50%;
  transform: translateX(-50%);
  width: 120%;
  height: 80px;
  background: #ffffff;
  border-radius: 50%;
  z-index: -1;
}
/* Phone frame / content */

.phone-container {
	display: flex;
	flex-direction: column;
	 min-height: 100dvh; 
	background: #f6f7fb;
	/*margin-bottom: 70px;*/
}
.site-content {
	/* flex: 1; */
	/* overflow-y: auto;  */
	padding: 16px;
}
.bg-gradiant {
	background: #f58c7d !important;
    background: linear-gradient(0deg, #f58c7d 0%, rgba(255, 255, 255, 1) 79%) !important;
}
/* MOBILE ADJUSTMENTS */
@media (min-width: 767px) {
	body {
		
	}
	.phone-container {
		max-width: 500px;
		margin: 0 auto;
		background: #f0f7fc;
		position: relative;
	}
	.site-content {
		padding: 30px 20px;
        position: relative;
        /* overflow-y: scroll; */
        /* overflow-x: hidden; */
		margin-top: 0 !important;
	}
	.logo-wrap img {
		width: 220px;
	}
	#menu-header .w-100{
		max-width: 500px !important;
		margin:0 auto;
	}
	#menu-bottom .menu{
       max-width: 500px;
		margin: 0 auto;
	}
	#actions-dating .wrap-action{
		max-width: 500px;
		margin: 0 auto;
	}
	
	.a2hs-banner{
		display:none !important;
	}
	
	.offcanvas.offcanvas-bottom {
	  position: fixed;
	  bottom: 0;
	  left: 50%;
	  transform: translate(-50%, 100%); /* Báº¯t Ä‘áº§u á»Ÿ giá»¯a ngang, áº©n dÆ°á»›i Ä‘Ã¡y */
	  width: 500px; /* hoáº·c max-width: 90vw; */
	  border-radius: 16px 16px 0 0;
	  transition: transform 0.35s ease-in-out;
	  box-shadow: 0 -5px 25px rgba(0,0,0,0.3);
}

/* Khi má»Ÿ (Bootstrap tá»± thÃªm .show) */
.offcanvas.offcanvas-bottom.show {
  transform: translate(-50%, 0);
}

/* Responsive nhá» hÆ¡n thÃ¬ co láº¡i */
  .offcanvas.offcanvas-bottom {
    width: 25%;
  }
}

/* Preloader Hompage */
#preloader {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 1000;
	transition: opacity 0.5s ease;
}
.preloader-logo {
	width: 120px;
	animation: pulse 1.2s infinite;
}
@keyframes pulse {
	0%,
	100% {
		transform: scale(1);
	}
	50% {
		transform: scale(1.1);
	}
}

/* Logo */
.logo-wrap {
	width: 100%;
	display: flex;
	justify-content: center;
	margin-bottom: 16px;
}
.logo-wrap img {
	width: 180px;
	transition: transform 0.3s ease;
}
.logo-wrap img:hover {
	transform: scale(1.1);
}

/* Login Panel */
.login-panel {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 50vh;
	background: #fff;
	border-top-left-radius: 24px;
	border-top-right-radius: 24px;
	box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.1);
	transform: translateY(100%);
	transition: transform 0.4s ease;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 20px;
	box-sizing: border-box;
	z-index: 100;
}
.login-panel.open {
	transform: translateY(0);
}
.close-btn {
	position: absolute;
	top: 12px;
	right: 16px;
	background: none;
	border: none;
	font-size: 1.5rem;
	cursor: pointer;
	line-height: 1;
	color: #1d2641;
	transition: transform 0.2s ease;
}
.close-btn:hover {
	transform: scale(1.2);
}
.login-form {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.login-form label {
	font-size: 0.95rem;
	color: #1d2641;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.login-form input {
	padding: 10px 12px;
	font-size: 16px !important;
	border: 1px solid #ccc;
	border-radius: 24px;
	outline: none;
	transition: border-color 0.2s ease;
}
.login-form input:focus {
}
/* Login panel title */
.login-title {
	font-size: 1.25rem;
	color: #1d2641;
	margin: 16px 0 8px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

#carouselhompage {
	border: none;
	border-radius: 0;
	box-shadow: none;
	background: transparent;
}
#carouselhompage .carousel-item img {
	max-width: 100%;
	  height: 40vh;
	object-fit: cover;
}
@media (max-width: 375px) {
  .banner {
    height: 35vh;
  }
}
.carousel-indicators .active {
	border-radius: 20px;
	border: 1px solid #d62943;
	box-shadow: inset 0 0 3px #d62943;
	background-color: #d62943;
}
#carouselhompage .caption-img {
	/*min-height: 110px;*/
}
#carouselhompage h2 {
	color: #1d2641;
	margin: 8px 0;
	font-size: 2rem;
}
#carouselhompage p {
	color: #666;
	font-size: 1.2rem;
}
/* Mobile login panel full-screen */
@media (max-width: 767px) {
	.login-panel {
		height: 50vh;
		border-top-left-radius: 24px;
		border-top-right-radius: 24px;
		padding: 24px;
	}
}

/*end hompage*/

/* ================= Nav & Step Header ================= */

.reg-header {
	width: 100%;
	margin-bottom: 12px;
	box-sizing: border-box;
	
}
.nav-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.back-btn {
	background: none;
    border: none;
    font-size: 2.5rem;
    color: #000000;
    opacity: 0.6;
    padding: 5px 5px 5px 0px;
    line-height: 0.4em;
    cursor: pointer;
    transition: opacity 0.2s, transform 0.2s;
}
.back-btn span{
	font-size: 0.4em;
}
.back-btn:disabled {
	opacity: 0.3;
	cursor: default;
}

.step {
	display: none;
}
.step.active {
	display: block;
}
.step-indicator {
	font-size: 0.95rem;
	color: #666;
}
.step-title {
	font-size: 1.3rem;
	font-weight: 600;
	text-align: center;
	color: #1d2641;
	margin: 4px 0;
}
.step-instruction {
	font-size: 0.9rem;
	color: #666;
	text-align: center;
	margin: 0 0 16px;
}

/* ================= Gallery (Step 3) ================= */
#galleryPreview {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
}
.gallery-slot {
	position: relative;
	/* padding-bottom: 100%; */
	border: 2px dashed #222222;
	border-radius: 8px;
	aspect-ratio: 4 / 5; /* tÆ°Æ¡ng Ä‘Æ°Æ¡ng 4:6 */
}
.gallery-slot .thumb-upload {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	 flex-direction: column; /* Xáº¿p cÃ¡c pháº§n tá»­ theo cá»™t (tá»©c lÃ  2 dÃ²ng 1 cá»™t) */
  gap: 10px; /* khoáº£ng cÃ¡ch giá»¯a cÃ¡c hÃ ng (tÃ¹y chá»n) */
}
.gallery-slot .thumb-upload .icon {
	font-size: 1.3rem;
    color: #ffffff;
    background: #d62943;
    padding: 2px 4px;
    border-radius: 50%;
    line-height: 1.1em;
    width: 30px;
    height: 30px;
    text-align: center;
}
.gallery-slot .thumb-upload .text {
	font-size: 0.8rem;
	color: #222222;
	text-align: center;
}
.gallery-slot img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	cursor: pointer;
}
.gallery-slot .del-btn {
	position: absolute;
	background: #fff;
	color: #b9b9b9;
	border-radius: 50%;
	padding: 2px 5px;
	cursor: pointer;
	font-size: 1.1rem;
	line-height: 1;
	transition: background 0.2s;
	/* font-weight: bold; */
	border: solid 1px #ddd;
}
.gallery-slot .del-btn {
	top: -12px;
	right: -2px;
	z-index: 999;
}

.gallery-slot .del-btn:hover {
	background: #d62943;
	color: #fff;
}
.gallery-slot img.profile-badge {
	border: 2px solid #d62943;
}
#human-verify .gallery-slot {
	width: 100px;
	margin: 0 auto;
}
/*form-control*/
div.required .form-label:after {
	content: "* ";
	color: #f00;
	font-weight: bold;
	font-size: 21px;
}
.form-control {
	width: 100%;
	border: 1px solid #ccc;
	border-radius:18px;
	box-sizing: border-box;
	transition: border-color 0.2s;
	line-height: 1.7;
	border-bottom: 1px solid #ccc;
	background: #ffffff;
}
.form-select {
	width: 100%;
	border: 1px solid #ccc;
	border-radius: 8px;
	box-sizing: border-box;
	transition: border-color 0.2s;
	border: none;
	line-height: 1.7;
	border-bottom: 1px solid #ccc;
	background-color: #e9ecef;
}
.card .form-check label.btn-outline-primary {
	border-color: #999999;
	color: #000;
	border-radius: 18px;
}
.btn-check + .btn:hover {
	color: #000;
	background-color: #ffffff;
	border-color: #d62943;
}
.form-check .btn-check:checked + .btn,.form-check
:not(.btn-check) + .btn:active,
.form-check .btn:first-child:active,
.form-check .btn.active,
.form-check .btn.show {
	color: #ffffff;
	background-color: #d62943;
	border-color: #d62943;
}

.form-switch .form-check-input {
  width: 3em;
  height: 1.5em;
  cursor: pointer;
}

.form-switch .form-check-input:checked  {
  background-color: #28a745;
  border-color: #28a745;
  /* Ghi Ä‘Ã¨ biá»ƒu tÆ°á»£ng SVG xanh dÆ°Æ¡ng máº·c Ä‘á»‹nh */
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}
.form-switch .form-check-input:focus:not(:checked) {
	border-color: #dee2e6;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23a3a3a3'/%3e%3c/svg%3e");
}

.form-switch .form-check-input:hover {
  box-shadow: 0 0 0 0.35rem rgba(34, 197, 94, 0.35);
}
/*form range*/
.form-range {
  accent-color: #22c55e; /* há»— trá»£ trÃ¬nh duyá»‡t má»›i (Chrome, Edge, Firefox má»›i) */
}


/* Ghi Ä‘Ã¨ thÃªm Ä‘á»ƒ há»— trá»£ toÃ n diá»‡n */
/* Tá»•ng thá»ƒ */
.form-range {
  width: 100%;
  height: 2rem; /* tÄƒng vÃ¹ng cháº¡m cho dá»… kÃ©o */
  
  accent-color: #d62943;
  background: transparent;
  cursor: pointer;
}
.form-range::-webkit-slider-runnable-track {
  
  height: 0.6rem;
  border-radius: 1rem;
  transition: background 0.3s ease;
}
/* ----- Chrome, Edge, Safari ----- */
.form-range::-webkit-slider-thumb {
  appearance: none;
  width: 1.2rem; /* to hÆ¡n */
  height: 1.2rem;
  background-color: #d62943;
  border-radius: 50%;
  border: none;
  box-shadow: 0 0 0 6px rgba(214, 41, 67, 0.25);
  transition: all 0.25s ease;
}

.form-range::-webkit-slider-thumb {
  background-color: #d62943; /* mÃ u xanh lÃ¡ */
}
.form-range::-moz-range-thumb {
  background-color:#d62943;
}
.form-range::-ms-thumb {
  background-color: #d62943;
}

/* TÃ¹y chá»n: khi hover hoáº·c active */
.form-range::-webkit-slider-thumb:hover {
  background-color: #d62943;
}
.form-range::-webkit-slider-thumb:active {
  background-color: #d62943;
}

/* Buttons */
.actions .modal-link {
	border: none;
}

.actions {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 10px;
	box-sizing: border-box;
	text-align: center;
	z-index: 2;
	margin-top: 50px;
}
.actions .btn {
	padding: 12px;
	font-size: 1rem;
	font-weight: 500;
	border-radius: 30px;
	cursor: pointer;
	transition: background 0.3s ease, box-shadow 0.3s ease, transform 0.2s ease;
	width: 100%;
	padding: clamp(0.6rem, 1.8vw, 0.9rem) clamp(1.2rem, 3vw, 2rem);
	font-size: 1rem;
	border-radius: 30px;
}
.actions .btn:hover {
	transform: translateY(-2px);
}
.actions .btn-light i {
	border: solid 1px #444;
	padding: 4px 9px;
	border-radius: 50%;
}
.btn-primary {
	background: #d62943;
	color: #fff;
	border-color: #d62943;
}
.btn:disabled,
.btn.disabled,
fieldset:disabled .btn {
	color: #fff;
	pointer-events: none;
	background-color: #d62943;
	border-color: #d62943;
	opacity: 0.8;
}
.btn-primary:hover {
	box-shadow: 0 4px 12px rgba(214, 41, 67, 0.4);
	background-color: #940f23;
}
.bg-multiselect {
	border-radius: 18px;
	background-color: #ffffff;
}
.btn-multiselect {
	border-radius: 18px;
	color: #000;
	position: relative;
	padding-right: 2rem; /* chá»«a chá»— cho icon bÃªn pháº£i */
	text-align: left;
	min-height: 41px;
	border-color: #dddddd;
	background-color: #ffffff;
}
.btn.btn-multiselect:hover,
.btn.btn-multiselect.active,
.btn.btn-multiselect.show,
.btn.btn-multiselect:active {
	border-color: #dddddd;
	background-color: #ffffff;
	color: #000;
}
.btn.btn-multiselect::after {
	content: "";
	position: absolute;
	right: 0.75rem; /* cÃ¡ch mÃ©p pháº£i má»™t chÃºt */
	top: 50%; /* cÄƒn giá»¯a theo chiá»u dá»c */
	transform: translateY(-50%); /* cÄƒn giá»¯a chÃ­nh xÃ¡c */
	display: inline-block;
	width: 0;
	height: 0;
	margin-left: 0.255em;
	vertical-align: 0.255em;
	border-top: 0.6em solid currentColor;
	border-right: 0.5em solid transparent;
	border-left: 0.5em solid transparent;
}
/* card-header multi-select*/
/*verify*/
.code-input-container input {
	 border: 1px solid #dddddd; 
}
/* offcanvas*/
.offcanvas {
	--bs-offcanvas-height: 80%;
}
/*selfie-img*/
#selfie-img img {
	width: 100px;
}
/*profile*/
.profile-grid	.profile-info {
				position: absolute;
				bottom: 0;
				left: 0;
				right: 0;
				padding: 0px;
				color: #fff;
			}

	/* lá»›p ná»n má» */
	.profile-grid .profile-info .profile-bg {
	  position: absolute;
	  top: 0;
	  left: 0;
	  width: 100%;
	  height: 100%;
	  background-color: #000; /* ná»n Ä‘en */
	  opacity: 0.5;           /* má» nhÆ° modal-backdrop */
	  z-index: 1;             /* náº±m dÆ°á»›i ná»™i dung */
	}

	/* ná»™i dung */
	.profile-grid .profile-info .profile-content {
	  position: relative;
	  z-index: 2; /* cao hÆ¡n background */
	  color: #fff;
	}
		.profile-grid	.profile-info .gender {
				width: 30px;
				height: 30px;
				border-radius: 50%;
				background-color: #ffffff;
				display: flex;
				align-items: center;
				justify-content: center;
				color: #beff6e;
				font-size: 14px;
				box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
				transition: all 0.3s ease;
				margin-top:-6px;
			}
			
			.profile-grid 	.profile-info .info h2 {
				margin: 0;
				color: #ffffff
			}
/* NÃºt hÃ nh Ä‘á»™ng */
			.action-buttons {
				position: fixed;
				  left: 50%;
				  transform: translateX(-50%);
				  width: 100%;
				  z-index: 25;
					bottom: calc(70px + env(safe-area-inset-bottom));
					padding: 0 10%;
				}
				.action-buttons .wrap-action{
					display: flex;
				  justify-content: space-around;
				  align-items: center;
				}
			.action-btn {
				width: 68px;
				height: 68px;
				border-radius: 50%;
				border: none;
				display: flex;
				align-items: center;
				justify-content: center;
				font-size: 30px;
				color: white;
				cursor: pointer;
				box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
				background: #fff;
				transition: transform 0.15s ease;
			}

			.action-btn:hover {
				transform: scale(1.1);
			}

			.btn-closex{
				    width: 68px;
					height: 68px;
					background: transparent;
					background: url('../image/icon-close.png') no-repeat #ffffff;
					background-size: 40px;
					background-position: center;
					background-repeat: no-repeat;
					display: flex;
					align-items: center;
					justify-content: center;
					border: none;
					transition: all 0.3s ease;
			}
			.btn-like {
				color: rgba(175, 11, 11, 1);
			}
			.btn-chat {
				color: #4b4b4b
			}
			.no-hover:hover {
				background-color: transparent !important;
				color: inherit !important;
				border-color: currentColor !important;
			}
			
			@media(max-width: 480px) {
				.action-btn {
					width: 60px;
					height: 60px;
					font-size: 26px;
				}
			}
			
/*register*/
#account-register textarea {
	background: #dddddd;
	height: 85px;
}

.location .input-group-text {
	border-color: transparent;
    background: #ffffff;
    /* border: none; */
    border: 1px solid #ccc;
    border-radius: 18px;
}

.location input {
	border-right: none;
}

/*show hide*/
.show {
	display: block;
}
.hide {
	display: none;
}
.online {
	color: #beff6e;
}
.offline {
	color: #d62943;
}
