* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}

html,
body {
  background-color: rgb(247, 247, 239);
  scroll-behavior: smooth;
  overflow-x: clip;
}

/* --- Entry Animations --- */
@keyframes slideDown {
  0% {
    opacity: 0;
    transform: translateY(-30px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideRight {
  0% {
    opacity: 0;
    transform: translateX(-40px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideLeft {
  0% {
    opacity: 0;
    transform: translateX(40px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes fadeUp {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* --- Elements --- */
.web_head {
  position: fixed;
  top: 20px;
  left: 20px;
  right: 20px;
  z-index: 20;
  margin: 0;
}

.nav_bar {
  position: relative;
  background-color: rgba(49, 48, 46, 0.555);
  border: 1px solid rgba(255, 255, 255, 0.25);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  width: 100%;
  padding: 0px 50px;
  border-radius: 45px;
  animation: slideDown 0.8s ease-out forwards;
}

.brend {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  animation: slideRight 0.8s ease-out 0.2s both;
}

.brend_logo {
  inset: 0;
  height: 80px;
  width: 80px;
  background-image: url("assets/logo/teeth.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center left;
  z-index: 2;
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.brend_name {
  margin-top: 0%;
  font-size: 1.4em;
  font-family: "Noto Sans Saurashtra", sans-serif;
  font-weight: 800;
  font-style: normal;
  color: #fffefe;
  transition: color 0.3s ease;
}

/* Brand Hover Effect */
.brend:hover .brend_logo {
  transform: scale(1.15) rotate(-10deg);
}

.brend:hover .brend_name {
  color: #e9e0e0;
}

.nav_links {
  display: flex;
  flex-direction: row;
  gap: 35px;
  list-style: none;
  margin: 0;
}

.nav_links li {
  animation: fadeUp 0.5s ease-out both;
}

/* Staggered entry delays for links */
.nav_links li:nth-child(1) {
  animation-delay: 0.3s;
}
.nav_links li:nth-child(2) {
  animation-delay: 0.4s;
}
.nav_links li:nth-child(3) {
  animation-delay: 0.5s;
}
.nav_links li:nth-child(4) {
  animation-delay: 0.6s;
}
.nav_links li:nth-child(5) {
  animation-delay: 0.7s;
}
.nav_links li:nth-child(6) {
  animation-delay: 0.8s;
}
.nav_links li:nth-child(7) {
  animation-delay: 0.9s;
}

.nav_links li a {
  text-decoration: none;
  color: rgb(255, 253, 253);
  font-size: 1rem;
  font-weight: 700;
  font-family: "Noto Sans Saurashtra", sans-serif;
  position: relative;
  padding-bottom: 4px;
  transition: color 0.3s ease;
}

/* Underline Hover Effect for Links */
.nav_links li a::after {
  content: "";
  position: absolute;
  width: 0;
  height: 2px;
  bottom: 0;
  left: 0;
  background-color: rgb(216, 208, 208);
  transition: width 0.3s ease-in-out;
}

.nav_links li a:hover {
  color: #dacfcf;
}

.nav_links li a:hover::after {
  width: 100%;
}

.signUp_btn a {
  text-decoration: none;
  font-family: "Open Sans", sans-serif;
  font-size: 1em;
  color: rgb(252, 249, 249);
  font-weight: 400;
  background-color: rgba(87, 87, 84, 0.185);
  padding: 8px 30px;
  border: 2px solid rgb(248, 245, 245);
  border-radius: 3px;
  white-space: nowrap;
  animation: slideLeft 0.8s ease-out 0.6s both;
  transition: all 0.3s ease;
}

/* Button Hover Effect */
.signUp_btn a:hover {
  background-color: black;
  color: beige;
  border-color: black;
  transform: translateY(-4px);
  box-shadow: 0 8px 15px rgba(0, 0, 0, 0.2);
}

.main_content {
  display: flex;
  flex-direction: column;
  gap: 50px;
  margin: 0%;
}

.hero_section {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 600px;
  margin: 0;
  overflow: hidden;
}

.hero_img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-image: url("assets/hero_imgs/heroimg_1.webp");
  background-size: cover;
  background-position: center;
  z-index: 1;
  animation: revealTopToBottom 1.3s ease-out forwards;
}

@keyframes revealTopToBottom {
  0% {
    clip-path: inset(0 0 100% 0);
  }
  100% {
    clip-path: inset(0 0 0 0);
  }
}

.hero_content {
  position: absolute;
  top: 28%;
  left: 6%;
  z-index: 10;
  width: 90%;
  max-width: 700px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.sub_heading_container {
  overflow-y: hidden;
}

.sub_heading {
  font-family: "Martel Sans", sans-serif;
  font-size: 1em;
  font-weight: 400;
  color: #fffcfcc2;
  animation: comingDown 2s forwards;
}

@keyframes comingDown {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0);
  }
}

.main_heading_container {
  display: flex;
  flex-direction: column;
}

.heading_container {
  overflow: hidden;
}

.main_heading {
  font-size: 5.1rem;
  color: #ffffff;
  font-family: "PT Serif", serif;
  font-weight: 400;
  text-shadow: 0px 0px 5px rgb(228, 227, 210);
  animation: comingUp 2s forwards;
}

@keyframes comingUp {
  from {
    transform: translateY(100%);
  }
  to {
    transform: translateY(0);
  }
}

.title_container {
  overflow-y: hidden;
}

.title {
  font-family: "Martel Sans", sans-serif;
  font-size: 1.1em;
  font-weight: 400;
  color: #fffcfce0;
  line-height: 1.5;
}

.luxury-cta-container {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
  font-family: "Montserrat", sans-serif;
  animation: fadingReveal 3s forwards;
}

.luxury-button {
  padding: 14px 28px;
  background-color: #988775;
  color: #ffffff;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border: none;
  border-radius: 2px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 24px;
  transition: all 0.3s ease;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.luxury-button:hover {
  background-color: #72614f;
}

.luxury-button .arrow {
  transition: transform 0.3s ease;
}

.luxury-button:hover .arrow {
  transform: translateX(4px);
}

.scroll-indicator {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
}

.circle-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid #c4b8a980;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #c4b8a9;
  font-size: 12px;
}

.scroll-text {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #c4b8a9;
}

@keyframes floatBounce {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(4px);
  }
}

.bounce {
  animation: floatBounce 2s ease-in-out infinite;
}

@keyframes fadingReveal {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* ============ HAMBURGER MENU (Mobile Only) ============ */
.hamburger {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 26px;
  height: 18px;
  cursor: pointer;
  z-index: 50;
}

.hamburger span {
  display: block;
  height: 3px;
  width: 100%;
  background-color: #fff;
  border-radius: 2px;
  transition: all 0.3s ease;
}

.hamburger.active span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.hamburger.active span:nth-child(2) {
  opacity: 0;
}
.hamburger.active span:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}

/* ============ FLUID HERO TYPOGRAPHY (sab screens) ============ */
.main_heading {
  font-size: clamp(1.8rem, 6vw, 5.1rem);
}

.sub_heading {
  font-size: clamp(0.75rem, 1.2vw, 1em);
}

.title {
  font-size: clamp(0.8em, 1.5vw, 1.1em);
}

.hero_content {
  width: 90%;
  max-width: 700px;
}

.hero_section {
  height: clamp(500px, 90vh, 900px);
}

/* ============ LAPTOP ============ */
@media (max-width: 1200px) {
  .nav_links {
    gap: 22px;
  }
  .signUp_btn a {
    padding: 8px 26px;
  }
}

/* ============ TABLET ============ */
@media (max-width: 1024px) {
  .nav_links {
    gap: 16px;
  }
  .nav_links li a {
    font-size: 0.9rem;
  }
  .signUp_btn a {
    padding: 7px 20px;
    font-size: 0.9em;
  }
}

/* ============ MOBILE ============ */
@media (max-width: 768px) {
  .brend_logo {
    height: 55px;
    width: 55px;
  }
  .brend_name {
    font-size: 1.1em;
    margin-top: 0;
  }

  .hamburger {
    display: flex;
  }

  .nav_links {
    display: none;
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    width: 100%;
    flex-direction: column;
    align-items: center;
    gap: 18px;
    padding: 20px 0;
    background-color: rgba(20, 20, 20, 0.95);
    border-radius: 20px;
    z-index: 30;
  }
  .nav_links.active {
    display: flex;
  }

  .signUp_btn {
    display: none;
  }

  .hero_content {
    top: 32%;
    left: 6%;
    width: 88%;
    gap: 14px;
  }
  .luxury-button {
    padding: 12px 20px;
    font-size: 11px;
  }
  .service_subHead {
    margin-left: 0;
    text-align: center;
  }
}

@media (max-width: 480px) {
  .hero_content {
    top: 30%;
  }
  .title br {
    display: none;
  }
}

.hero_section {
  position: sticky;
  top: 0;
  z-index: 1;
}

.service_section {
  position: relative;
  z-index: 2;
  width: 100%;
  margin: 0;
  padding: clamp(50px, 8vw, 100px) 5%;
  background-color: rgb(247, 247, 239);
  border-radius: clamp(20px, 4vw, 40px) clamp(20px, 4vw, 40px) 0 0;
  box-shadow: 0 -20px 50px rgba(0, 0, 0, 0.18);
}

.section_container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 2vw, 20px);
  text-align: center;
}

.service_subHead,
.service_mainHead {
  margin-left: 0;
  text-align: center;
}

.service_subHead h4 {
  font-family: "Roboto", sans-serif;
  font-size: clamp(0.75rem, 2vw, 1rem);
  font-weight: 400;
  letter-spacing: 0.12em;
  color: #333333d3;
}

.service_mainHead {
  overflow-y: hidden;
}

.service_mainHead h1 {
  font-size: clamp(1.9rem, 5vw, 3rem);
  line-height: 1.2;
  color: #1f1e1eea;
  font-weight: 400;
  opacity: 0;
}

.service_mainHead h1.reveal {
  opacity: 1;
  animation: comingDownMH 1s linear forwards;
}

@keyframes comingDownMH {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0);
  }
}

.services {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  margin-top: clamp(30px, 5vw, 60px);
}

/* ===== Card ===== */
.service_card {
  position: relative;
  padding: 35px 20px;
  border-radius: 18px;
  text-align: center;
  cursor: pointer;
  opacity: 0;
  transition:
    transform 0.4s ease,
    box-shadow 0.4s ease,
    background 0.4s ease;
}

.service_card.reveal {
  opacity: 1;
  animation: cardIn 0.8s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}

.service_card.reveal:nth-child(1) {
  animation-delay: 0.1s;
}
.service_card.reveal:nth-child(2) {
  animation-delay: 0.3s;
}
.service_card.reveal:nth-child(3) {
  animation-delay: 0.5s;
}
.service_card.reveal:nth-child(4) {
  animation-delay: 0.7s;
}
.service_card.reveal:nth-child(5) {
  animation-delay: 0.9s;
}
.service_card.reveal:nth-child(6) {
  animation-delay: 1.1s;
}
.service_card.reveal:nth-child(7) {
  animation-delay: 1.3s;
}
.service_card.reveal:nth-child(8) {
  animation-delay: 1.5s;
}

@keyframes cardIn {
  from {
    opacity: 0;
    transform: translateY(50px) scale(0.95);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* ===== Icon circle ===== */
.service_icon {
  width: 100px;
  height: 100px;
  margin: 0 auto 28px;
  border: 1.5px solid #3a3a3a;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #3a3a3a;
  position: relative;
  transition: all 0.45s ease;
}

.service_icon svg {
  width: 46px;
  height: 46px;
  transition: transform 0.5s ease;
}

/* pulse ring */
.service_icon::after {
  content: "";
  position: absolute;
  inset: -1.5px;
  border-radius: 50%;
  border: 1.5px solid #b8935a;
  opacity: 0;
  transform: scale(1);
}

/* ===== Text ===== */
.service_title {
  font-family: "Georgia", "Times New Roman", serif;
  font-size: 26px;
  font-weight: 400;
  color: #1f1f1f;
  margin-bottom: 14px;
  position: relative;
  display: inline-block;
  transition: color 0.3s ease;
}

.service_title::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -6px;
  width: 0;
  height: 1.5px;
  background: #b8935a;
  transition:
    width 0.4s ease,
    left 0.4s ease;
}

.service_text {
  font-size: 16px;
  line-height: 1.6;
  color: #444;
}

/* ===== Hover Effects ===== */
.service_card:hover {
  transform: translateY(-12px);
  background: #fffaf0;
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.1);
}

.service_card:hover .service_icon {
  background: #1f1f1f;
  color: #f6f1e7;
  border-color: #1f1f1f;
  transform: rotate(360deg);
}

.service_card:hover .service_icon svg {
  transform: scale(1.12);
}

.service_card:hover .service_icon::after {
  animation: ring 1s ease-out infinite;
}

@keyframes ring {
  0% {
    opacity: 0.8;
    transform: scale(1);
  }
  100% {
    opacity: 0;
    transform: scale(1.35);
  }
}

.service_card:hover .service_title {
  color: #b8935a;
}

.service_card:hover .service_title::after {
  width: 100%;
  left: 0;
}

/* ===== Responsive: Laptop ===== */
@media (max-width: 1200px) {
  .services {
    gap: 20px;
  }
  .service_card {
    padding: 30px 12px;
  }
  .service_title {
    font-size: clamp(20px, 2vw, 24px);
    line-height: 1.25;
  }
  .service_text {
    font-size: 15px;
  }
}

/* ===== Responsive: Tablet ===== */
@media (max-width: 992px) {
  .services {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }

  .service_card {
    padding: 32px 20px;
  }
  .service_title {
    font-size: 24px;
  }

  /* 2 column me delay: left pehle, right baad me */
  .service_card.reveal:nth-child(odd) {
    animation-delay: 0.1s;
  }
  .service_card.reveal:nth-child(even) {
    animation-delay: 0.3s;
  }
}

/* ===== Responsive: Mobile ===== */
@media (max-width: 576px) {
  .services {
    grid-template-columns: 1fr;
    gap: 18px;
    max-width: 380px;
    margin-left: auto;
    margin-right: auto;
  }

  .service_card {
    padding: 28px 16px;
  }

  .service_icon {
    width: 84px;
    height: 84px;
    margin-bottom: 20px;
  }

  .service_icon svg {
    width: 38px;
    height: 38px;
  }

  .service_title {
    font-size: 22px;
    margin-bottom: 10px;
  }
  .service_text {
    font-size: 15px;
  }

  /* 1 column me har card scroll par turant animate ho */
  .service_card.reveal:nth-child(n) {
    animation-delay: 0.1s;
  }
}

/* ===== Responsive: Small Mobile ===== */
@media (max-width: 380px) {
  .service_icon {
    width: 72px;
    height: 72px;
  }
  .service_icon svg {
    width: 32px;
    height: 32px;
  }
  .service_title {
    font-size: 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .service_card {
    opacity: 1;
  }
  .service_card.reveal {
    animation: none;
  }
}

.third_Section {
  position: relative;
  z-index: 2;
  padding: clamp(50px, 8vw, 100px) 5%;
  background: linear-gradient(180deg, #0f1c17 0%, #08120e 100%);
  overflow: hidden;
}

.third_section_container {
  display: flex;
  flex-direction: column;
  margin-top: -3%;
}

.heading_cont {
  margin-left: 38%;
  overflow-y: hidden;
}

.heading_cont h2.reveal {
  font-family: "Roboto", sans-serif;
  font-weight: 400;
  font-size: clamp(1.1em, 2.2vw, 1.4em);
  color: #ffffff;
  animation: comingUp 1s forwards;
}

.h_line.reveal {
  margin-top: 2%;
  margin-left: 40%;
  background-color: #b8935a;
  height: 2px;
  animation: entryLine 2s forwards;
}

@keyframes entryLine {
  from {
    width: 0%;
  }
  to {
    width: 20%;
  }
}

.images_container {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  gap: 10px;
  margin-top: 7%;
  margin-left: 3%;
  margin-right: 3%;
}

.img_container {
  overflow-y: hidden;
}

.img1 {
  width: clamp(160px, 20vw, 300px);
  aspect-ratio: 3 / 4;
  height: auto;
  background-image: url("assets/third_sec_img/img1.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  opacity: 0;
  transform: translateY(100%);
}

.img2 {
  margin-top: 3%;
  width: clamp(150px, 19vw, 285px);
  aspect-ratio: 285 / 387;
  height: auto;
  border-radius: 50px;
  background-image: url("assets/third_sec_img/img2.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  opacity: 0;
  transform: translateY(100%);
}

.img3 {
  margin-top: 2%;
  width: clamp(150px, 19vw, 285px);
  aspect-ratio: 285 / 388;
  height: auto;
  border-radius: 50px;
  background-image: url("assets/third_sec_img/img3.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  opacity: 0;
  transform: translateY(100%);
}

.img4 {
  margin-top: 2%;
  width: clamp(150px, 19vw, 285px);
  aspect-ratio: 285 / 388;
  height: auto;
  border-radius: 50px;
  background-image: url("assets/third_sec_img/img4.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  opacity: 0;
  transform: translateY(100%);
}

@keyframes imgesanimate {
  from {
    transform: translateY(100%);
  }
  to {
    transform: translateY(0);
  }
}

.img1.reveal,
.img2.reveal,
.img3.reveal,
.img4.reveal {
  opacity: 1;
  animation: imgesanimate 1s ease-out forwards;
}

.img2.reveal {
  animation-delay: 0.3s;
}
.img3.reveal {
  animation-delay: 0.6s;
}
.img4.reveal {
  animation-delay: 0.9s;
}

/* ============ RESPONSIVE: Laptop ============ */
@media (max-width: 1200px) {
  .heading_cont {
    margin-left: 30%;
  }
  .h_line.reveal {
    margin-left: 32%;
  }
}

/* ============ RESPONSIVE: Tablet ============ */
@media (max-width: 992px) {
  .third_section_container {
    margin-top: 0;
  }
  .heading_cont {
    margin-left: 15%;
  }
  .heading_cont h2.reveal {
    font-size: 1.2em;
  }
  .h_line.reveal {
    margin-left: 17%;
  }
  .images_container {
    margin-top: 10%;
    gap: 16px;
  }
  .img2,
  .img3,
  .img4 {
    margin-top: 0;
  }
}

/* ============ RESPONSIVE: Mobile ============ */
@media (max-width: 768px) {
  .heading_cont {
    margin-left: 0;
    text-align: center;
  }
  .h_line.reveal {
    margin-left: 50%;
    transform: translateX(-50%);
  }
  .images_container {
    justify-content: center;
    gap: 14px;
  }
  .img1,
  .img2,
  .img3,
  .img4 {
    width: clamp(130px, 42vw, 200px);
  }
}

/* ============ RESPONSIVE: Small Mobile ============ */
@media (max-width: 480px) {
  .third_Section {
    padding: clamp(40px, 10vw, 60px) 4%;
  }
  .heading_cont h2.reveal {
    font-size: 1em;
  }
  .images_container {
    margin-left: 0;
    margin-right: 0;
    gap: 10px;
  }
  .img1,
  .img2,
  .img3,
  .img4 {
    width: clamp(110px, 44vw, 160px);
  }
}

.booking_section {
  position: relative;
  z-index: 2;
  margin-top: -100px;
  background: linear-gradient(180deg, #0f1c17 0%, #08120e 100%);
  overflow: visible; /* hidden hata do, warna phir wahi crop hoga */
}

.bookingSec_container {
  position: relative;
  right: 10%;
  width: 120%;
  aspect-ratio: 1600 / 500;
  background-image: url("assets/booking__section/booking_section_img.webp");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}

.booking_containt {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-130%, -50%);
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 35px;
}

.b_title {
  font-family: "Martel Sans", sans-serif;
  font-size: 1.3em;
  font-weight: 400;
  color: #fffcfce0;
  line-height: 1.5;
}

/* ============ BOOKING SECTION - RESPONSIVE OVERRIDE + ENTRY ANIMATION ============ */

.bookingSec_container {
  right: 0;
  width: 100%;
  aspect-ratio: 16 / 6;
  display: flex;
  align-items: center;
}

.booking_containt {
  position: relative;
  top: auto;
  left: auto;
  transform: translateY(40px);
  margin-left: 8%;
  max-width: 480px;
  opacity: 0;
}

.booking_containt.reveal {
  animation: bookingFadeUp 1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes bookingFadeUp {
  from {
    opacity: 0;
    transform: translateY(40px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.booking_containt .main_heading {
  font-size: clamp(1.8rem, 4vw, 3.2rem);
}

.booking_containt .b_title {
  font-size: clamp(0.85em, 1.3vw, 1.1em);
}

.booking_containt .luxury-cta-container {
  animation: none; /* load pe nahi, scroll reveal isko control karega */
}

/* ============ RESPONSIVE: Laptop ============ */
@media (max-width: 1200px) {
  .booking_containt {
    margin-left: 6%;
    max-width: 420px;
  }
}

/* ============ RESPONSIVE: Tablet ============ */
@media (max-width: 992px) {
  .bookingSec_container {
    aspect-ratio: 16 / 8;
  }
  .booking_containt {
    margin-left: 5%;
    max-width: 360px;
  }
  .booking_containt .main_heading {
    font-size: clamp(1.6rem, 4.5vw, 2.4rem);
  }
}

/* ============ RESPONSIVE: Mobile ============ */
@media (max-width: 768px) {
  .bookingSec_container {
    aspect-ratio: auto;
    min-height: 480px;
    justify-content: center;
  }
  .booking_containt {
    margin-left: 0;
    max-width: 88%;
    text-align: center;
  }
  .booking_containt .main_heading_container {
    align-items: center;
  }
  .booking_containt .luxury-cta-container {
    align-items: center;
  }
}

/* ============ RESPONSIVE: Small Mobile ============ */
@media (max-width: 480px) {
  .bookingSec_container {
    min-height: 420px;
  }
  .booking_containt {
    max-width: 92%;
  }
  .booking_containt .b_title br {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .booking_containt {
    opacity: 1;
    transform: none;
  }
  .booking_containt.reveal {
    animation: none;
  }
}

/* ============ FOOTER ============ */
.site_footer {
  position: relative;
  z-index: 2;
  background: linear-gradient(180deg, #0f1c17 0%, #08120e 100%);
  padding: clamp(50px, 7vw, 90px) 5% 0;
  overflow: hidden;
}

.footer_container {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1.3fr;
  gap: 30px;
  padding-bottom: 50px;
}

.footer_col {
  opacity: 0;
  transform: translateY(25px);
}

.footer_col.reveal {
  animation: fadeUp 0.8s ease-out forwards;
}

.footer_col.reveal:nth-child(1) {
  animation-delay: 0.05s;
}
.footer_col.reveal:nth-child(2) {
  animation-delay: 0.15s;
}
.footer_col.reveal:nth-child(3) {
  animation-delay: 0.25s;
}
.footer_col.reveal:nth-child(4) {
  animation-delay: 0.35s;
}
.footer_col.reveal:nth-child(5) {
  animation-delay: 0.45s;
}

/* Brand */
.footer_brand {
  display: flex;
  align-items: center;
  gap: 12px;
}

.footer_logo {
  width: 90px;
  height: 90px;
  flex-shrink: 0;
  background-image: url("assets/logo/teeth.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.footer_brand:hover .footer_logo {
  transform: scale(1.1) rotate(-8deg);
}

.footer_brandname {
  display: flex;
  flex-direction: column;
  line-height: 1.3;
}

.footer_name {
  font-family: "Noto Sans Saurashtra", sans-serif;
  font-weight: 800;
  font-size: 1.6em;
  color: #fff;
  letter-spacing: 0.03em;
}

.footer_tagline {
  font-family: "Roboto", sans-serif;
  font-size: 0.75em;
  font-weight: 400;
  letter-spacing: 0.25em;
  color: #b8935a;
}

/* Headings */
.footer_heading {
  font-family: "Georgia", "Times New Roman", serif;
  font-size: 1.25em;
  font-weight: 400;
  color: #fff;
  margin-bottom: 22px;
  position: relative;
  display: inline-block;
}

.footer_heading::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -8px;
  width: 30px;
  height: 2px;
  background: #b8935a;
  transition: width 0.4s ease;
}

.footer_col:hover .footer_heading::after {
  width: 50px;
}

/* Links */
.footer_links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.footer_links a {
  text-decoration: none;
  color: #d8d6d2;
  font-family: "Roboto", sans-serif;
  font-size: 0.95em;
  font-weight: 400;
  position: relative;
  transition:
    color 0.3s ease,
    padding-left 0.3s ease;
}

.footer_links a::before {
  content: "";
  position: absolute;
  left: -14px;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 1px;
  background: #b8935a;
  transition: width 0.3s ease;
}

.footer_links a:hover {
  color: #b8935a;
  padding-left: 14px;
}

.footer_links a:hover::before {
  width: 10px;
}

/* Contact */
.footer_contact {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.footer_contact li {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #d8d6d2;
  font-size: 0.95em;
  font-family: "Roboto", sans-serif;
  transition:
    transform 0.3s ease,
    color 0.3s ease;
}

.footer_contact li:hover {
  color: #fff;
  transform: translateX(4px);
}

.footer_icon {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  border-radius: 50%;
  border: 1.5px solid #b8935a80;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #b8935a;
  transition: all 0.35s ease;
}

.footer_icon svg {
  width: 16px;
  height: 16px;
}

.footer_contact li:hover .footer_icon {
  background: #b8935a;
  color: #0f1c17;
  transform: rotate(360deg);
}

/* Opening Hours */
.footer_hours {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 28px;
}

.footer_hours li {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  font-family: "Roboto", sans-serif;
  font-size: 0.9em;
  color: #d8d6d2;
}

.footer_hours li span:first-child {
  color: #fff;
  font-weight: 600;
}

/* Newsletter */
.footer_newsletter_heading {
  margin-bottom: 16px;
}

.footer_newsletter {
  display: flex;
  align-items: center;
  border: 1px solid #b8935a80;
  border-radius: 40px;
  overflow: hidden;
  margin-bottom: 26px;
  transition:
    border-color 0.3s ease,
    box-shadow 0.3s ease;
}

.footer_newsletter:focus-within {
  border-color: #b8935a;
  box-shadow: 0 0 0 3px rgba(184, 147, 90, 0.15);
}

.footer_newsletter input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  padding: 12px 20px;
  font-family: "Roboto", sans-serif;
  font-size: 0.9em;
  color: #fff;
}

.footer_newsletter input::placeholder {
  color: #ffffff70;
}

.footer_newsletter button {
  background: #b8935a;
  border: none;
  width: 44px;
  height: 44px;
  margin: 3px;
  border-radius: 50%;
  color: #0f1c17;
  font-size: 1.1em;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
}

.footer_newsletter button:hover {
  background: #72614f;
  color: #fff;
  transform: translateX(2px);
}

.footer_newsletter button .arrow {
  transition: transform 0.3s ease;
}

.footer_newsletter button:hover .arrow {
  transform: translateX(3px);
}

/* Socials */
.footer_socials {
  display: flex;
  gap: 14px;
}

.footer_social {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.35s ease;
}

.footer_social svg {
  width: 18px;
  height: 18px;
}

.footer_social:hover {
  background: #b8935a;
  color: #0f1c17;
  transform: translateY(-5px);
  box-shadow: 0 8px 18px rgba(184, 147, 90, 0.35);
}

/* Bottom bar */
.footer_bottom {
  max-width: 1400px;
  margin: 0 auto;
  padding: 22px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.footer_bottom p {
  font-family: "Roboto", sans-serif;
  font-size: 0.85em;
  color: #d8d6d2;
}

.footer_bottom_links {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: "Roboto", sans-serif;
  font-size: 0.85em;
}

.footer_bottom_links span {
  color: #ffffff40;
}

.footer_bottom_links a {
  text-decoration: none;
  color: #d8d6d2;
  transition: color 0.3s ease;
}

.footer_bottom_links a:hover {
  color: #b8935a;
}

/* ===== Responsive ===== */
@media (max-width: 1200px) {
  .footer_container {
    grid-template-columns: 1fr 1fr 1fr;
  }
  .footer_brand {
    grid-column: 1 / -1;
  }
}

@media (max-width: 768px) {
  .footer_container {
    grid-template-columns: 1fr 1fr;
    text-align: left;
  }
  .footer_brand {
    grid-column: 1 / -1;
    justify-content: center;
    text-align: center;
    flex-direction: column;
  }
  .footer_bottom {
    flex-direction: column;
    text-align: center;
  }
}

@media (max-width: 480px) {
  .footer_container {
    grid-template-columns: 1fr;
  }
  .footer_hours li {
    font-size: 0.85em;
  }
}

@media (prefers-reduced-motion: reduce) {
  .footer_col {
    opacity: 1;
    transform: none;
  }
  .footer_col.reveal {
    animation: none;
  }
}

/*service section*/

.service_content {
  position: absolute;
  top: 28%;
  left: 6%;
  z-index: 10;
  width: 90%;
  max-width: 700px;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.service_img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 85%;
  background-image: url("assets/hero_imgs/heroimg_2.webp");
  background-size: cover;
  background-position: center;
  z-index: 1;
  animation: revealTopToBottom 1.3s ease-out forwards;
}

.b_title {
  font-family: "Martel Sans", sans-serif;
  font-size: 1.5em;
  font-weight: 200;
  color: #fffcfce0;
  line-height: 1.5;
}

.service_section2 {
  position: relative;
  z-index: 2;
  width: 100%;
  margin-top: -9.5%;
  padding: clamp(50px, 8vw, 100px) 5%;
  background-color: rgb(247, 247, 239);
  border-radius: clamp(20px, 4vw, 40px) clamp(20px, 4vw, 40px) 0 0;
  box-shadow: 0 -20px 50px rgba(0, 0, 0, 0.18);
}

.about_img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 85%;
  background-image: url("assets/hero_imgs/about\ img.webp");
  background-size: cover;
  background-position: center;
  z-index: 1;
  animation: revealTopToBottom 1.3s ease-out forwards;
}

.our_mission {
  display: flex;
  flex-direction: row;
  gap: 80px;
  max-width: 100%;
}

.our_mission_image {
  border-radius: 18px 4px 4px 18px;
  background-image: url("assets/about_imgs/about_intro_img.webp");
  height: 400px;
  width: 500px;
  background-size: cover;
  background-position: center;
  clip-path: inset(0 100% 0 0);
}

.our_mission_image.reveal {
  animation: revealLeftToRight 1.4s ease-in-out forwards;
}

@keyframes revealLeftToRight {
  0% {
    clip-path: inset(0 100% 0 0);
  }
  100% {
    clip-path: inset(0 0 0 0);
  }
}

.our_mission_content {
  display: flex;
  flex-direction: column;
  gap: 25px;
  margin-top: 3%;
  text-align: left;
}

.out_mission_sub_heading {
  font-family: "Martel Sans", sans-serif;
  font-size: 1em;
  font-weight: 600;
  color: #0a0a0ab4;
}

.our_mission_MH_container {
  overflow-y: hidden;
}

.our_mission_MH_container h3 {
  font-family: "Spectral", serif;
  font-size: 2.3em;
  color: #030303ea;
}

.our_mission_title_container div {
  font-family: "Martel Sans", sans-serif;
  line-height: 1.5;
  font-size: 1.3em;
  font-weight: 400;
  color: #0e0d0def;
}

.our_mission_MH_container.reveal h3 {
  animation: comingUp 2s forwards;
}

.about_services {
  margin-top: 3%;
}

.about_booking_section {
  position: relative;
  z-index: 2;
  margin-top: -30px;
  background-color: #fff;
  overflow: visible;
}

.about_bookingSec_container {
  position: relative;
  right: 10%;
  width: 120%;
  aspect-ratio: 1600 / 500;
  background-image: url("assets/about_imgs/booking_img.webp");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}

.about_booking_containt {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 35px;
}

.aboutMain_heading {
  color: #08120e;
  font-size: clamp(1.8rem, 4vw, 3rem);
}

.about_b_title {
  color: #444;
  font-family: "Martel Sans", sans-serif;
  font-size: clamp(0.85em, 1.3vw, 1.1em);
}

/* ============ OUR MISSION SECTION - RESPONSIVE ============ */
@media (max-width: 1200px) {
  .our_mission {
    gap: 50px;
  }
  .our_mission_image {
    width: 420px;
    height: 360px;
  }
  .our_mission_MH_container h3 {
    font-size: 2em;
  }
}

@media (max-width: 992px) {
  .our_mission {
    flex-direction: column;
    align-items: center;
    gap: 40px;
    text-align: center;
  }
  .our_mission_image {
    width: 100%;
    max-width: 500px;
    height: 320px;
    border-radius: 18px;
  }
  .our_mission_content {
    margin-top: 0;
    align-items: center;
    text-align: center;
  }
  .our_mission_title_container div {
    text-align: center;
  }
}

@media (max-width: 768px) {
  .our_mission_image {
    height: 280px;
  }
  .our_mission_MH_container h3 {
    font-size: 1.8em;
  }
  .our_mission_title_container div {
    font-size: 1.1em;
  }
  .our_mission_title_container div br {
    display: none;
  }
}

@media (max-width: 480px) {
  .our_mission_image {
    height: 220px;
  }
  .our_mission_content {
    gap: 18px;
  }
  .our_mission_MH_container h3 {
    font-size: 1.5em;
  }
  .our_mission_title_container div {
    font-size: 1em;
  }
}

/* ============ ABOUT BOOKING SECTION - RESPONSIVE ============ */
@media (max-width: 1200px) {
  .about_booking_containt {
    max-width: 90%;
  }
}

@media (max-width: 992px) {
  .about_bookingSec_container {
    aspect-ratio: 16 / 7;
  }
  .about_booking_containt {
    width: 85%;
    max-width: 85%;
    text-align: center;
    align-items: center;
    gap: 24px;
  }
}

@media (max-width: 768px) {
  .about_bookingSec_container {
    aspect-ratio: auto;
    min-height: 420px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .about_booking_containt {
    position: relative;
    top: auto;
    left: auto;
    transform: translateY(0);
    width: 90%;
    max-width: 90%;
    margin: 0 auto;
    text-align: center;
    align-items: center;
  }
  .about_b_title br {
    display: none;
  }
}

@media (max-width: 480px) {
  .about_bookingSec_container {
    min-height: 360px;
  }
  .about_booking_containt {
    gap: 18px;
  }
}

.doc_hero_img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 90%;
  background-image: url("assets/hero_imgs/doctors\ hero\ img.png");
  background-size: cover;
  background-position: center;
  z-index: 1;
  animation: revealTopToBottom 1.3s ease-out forwards;
}

.doctors_container {
  display: flex;
  flex-direction: row;
  gap: 70px;
  margin-left: 2%;
  margin-right: 2%;
}

.doc1_card {
  display: flex;
  flex-direction: column;
  gap: 25px;
}

.doc2_card {
  display: flex;
  flex-direction: column;
  gap: 25px;
}

.doc3_card {
  display: flex;
  flex-direction: column;
  gap: 25px;
}

.doc4_card {
  display: flex;
  flex-direction: column;
  gap: 25px;
}

.image_box {
  overflow-y: hidden;
}

.docimg1 {
  border-radius: 5px;
  background-image: url("assets/doctors_img/doc1.png");
  height: 300px;
  width: 230px;
  background-size: cover;
  clip-path: inset(0 100% 0 0);
}

.docimg2 {
  border-radius: 5px;
  background-image: url("assets/doctors_img/doc2.png");
  height: 300px;
  width: 230px;
  background-size: cover;
  clip-path: inset(0 100% 0 0);
}

.docimg3 {
  border-radius: 5px;
  background-image: url("assets/doctors_img/doc3.png");
  height: 300px;
  width: 230px;
  background-size: cover;
  clip-path: inset(0 100% 0 0);
}

.docimg4 {
  border-radius: 5px;
  background-image: url("assets/doctors_img/doc4.png");
  height: 300px;
  width: 230px;
  background-size: cover;
  clip-path: inset(0 100% 0 0);
}

.docimg1.reveal {
  animation: revealBottomToTop 1.6s ease-in-out forwards;
}
.docimg2.reveal {
  animation: revealBottomToTop 1.8s ease-in-out forwards;
}
.docimg3.reveal {
  animation: revealBottomToTop 2s ease-in-out forwards;
}
.docimg4.reveal {
  animation: revealBottomToTop 2.2s ease-in-out forwards;
}

.docimg1.reveal {
  animation-delay: 0.3s;
}
.docimg2.reveal {
  animation-delay: 0.6s;
}
.docimg3.reveal {
  animation-delay: 0.9s;
}
.docimg4.reveal {
  animation-delay: 1s;
}

@keyframes revealBottomToTop {
  0% {
    clip-path: inset(100% 0 0 0);
  }
  100% {
    clip-path: inset(0 0 0 0);
  }
}

.docCard_container {
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-align: left;
}

.doc_name {
  font-family: "Martel Sans", sans-serif;
  font-size: 1.3em;
  color: #1f1f1f;
}

.doc_feild {
  font-family: "Martel Sans", sans-serif;
  font-size: 1em;
  font-weight: 600;
  color: #1f1f1fd2;
}

.doc_experience {
  font-family: "Martel Sans", sans-serif;
  font-size: 0.8em;
  font-weight: 600;
  color: #1f1f1fd2;
}

.docsocialLinks {
  display: flex;
  gap: 12px;
  margin-top: 8px;
}

.doc_social {
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1.5px solid #1f1f1f;
  color: #1f1f1f;
  font-size: 15px;
  text-decoration: none;
  transition: all 0.35s ease;
}

.doc_social i {
  transition: transform 0.35s ease;
}

.doc_social:hover {
  transform: translateY(-5px);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18);
}

.doc_social:hover i {
  transform: scale(1.15) rotate(360deg);
}

.doc_social.facebook:hover {
  background: #1877f2;
}
.doc_social.instagram:hover {
  background: linear-gradient(45deg, #f09433, #dc2743, #bc1888);
}
.doc_social.linkedin:hover {
  background: #0a66c2;
}

/* ===== Doctor Cards: Entry Animation (text) ===== */
.docCard_container > * {
  opacity: 0;
}

.doc1_card:has(.docimgs.reveal) .docCard_container > *,
.doc2_card:has(.docimgs.reveal) .docCard_container > *,
.doc3_card:has(.docimgs.reveal) .docCard_container > *,
.doc4_card:has(.docimgs.reveal) .docCard_container > * {
  opacity: 1;
  animation: docTextIn 0.7s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}

/* image ke baad text aaye, phir ek ek karke */
.doc1_card:has(.docimgs.reveal) .docCard_container > :nth-child(1) {
  animation-delay: 1.1s;
}
.doc1_card:has(.docimgs.reveal) .docCard_container > :nth-child(2) {
  animation-delay: 1.2s;
}
.doc1_card:has(.docimgs.reveal) .docCard_container > :nth-child(3) {
  animation-delay: 1.3s;
}
.doc1_card:has(.docimgs.reveal) .docCard_container > :nth-child(4) {
  animation-delay: 1.4s;
}

.doc2_card:has(.docimgs.reveal) .docCard_container > :nth-child(1) {
  animation-delay: 1.4s;
}
.doc2_card:has(.docimgs.reveal) .docCard_container > :nth-child(2) {
  animation-delay: 1.5s;
}
.doc2_card:has(.docimgs.reveal) .docCard_container > :nth-child(3) {
  animation-delay: 1.6s;
}
.doc2_card:has(.docimgs.reveal) .docCard_container > :nth-child(4) {
  animation-delay: 1.7s;
}

.doc3_card:has(.docimgs.reveal) .docCard_container > :nth-child(1) {
  animation-delay: 1.7s;
}
.doc3_card:has(.docimgs.reveal) .docCard_container > :nth-child(2) {
  animation-delay: 1.8s;
}
.doc3_card:has(.docimgs.reveal) .docCard_container > :nth-child(3) {
  animation-delay: 1.9s;
}
.doc3_card:has(.docimgs.reveal) .docCard_container > :nth-child(4) {
  animation-delay: 2s;
}

.doc4_card:has(.docimgs.reveal) .docCard_container > :nth-child(1) {
  animation-delay: 1.9s;
}
.doc4_card:has(.docimgs.reveal) .docCard_container > :nth-child(2) {
  animation-delay: 2s;
}
.doc4_card:has(.docimgs.reveal) .docCard_container > :nth-child(3) {
  animation-delay: 2.1s;
}
.doc4_card:has(.docimgs.reveal) .docCard_container > :nth-child(4) {
  animation-delay: 2.2s;
}

@keyframes docTextIn {
  from {
    opacity: 0;
    transform: translateY(25px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ===== Doctor Cards: Hover Effect ===== */
.doc1_card,
.doc2_card,
.doc3_card,
.doc4_card {
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.doc1_card:hover,
.doc2_card:hover,
.doc3_card:hover,
.doc4_card:hover {
  transform: translateY(-10px);
}

.image_box {
  border-radius: 5px;
  transition: box-shadow 0.45s ease;
}

.doc1_card:hover .image_box,
.doc2_card:hover .image_box,
.doc3_card:hover .image_box,
.doc4_card:hover .image_box {
  box-shadow: 0 22px 40px rgba(0, 0, 0, 0.22);
}

.doc_name {
  position: relative;
  display: inline-block;
  width: fit-content;
  padding-bottom: 6px;
  transition:
    color 0.3s ease,
    letter-spacing 0.3s ease;
}

.doc_name::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 2px;
  background: #b8935a;
  transition: width 0.45s ease;
}

.doc_feild {
  transition: color 0.3s ease;
}

.doc1_card:hover .doc_name,
.doc2_card:hover .doc_name,
.doc3_card:hover .doc_name,
.doc4_card:hover .doc_name {
  color: #b8935a;
  letter-spacing: 0.02em;
}

.doc1_card:hover .doc_name::after,
.doc2_card:hover .doc_name::after,
.doc3_card:hover .doc_name::after,
.doc4_card:hover .doc_name::after {
  width: 100%;
}

.doc1_card:hover .doc_feild,
.doc2_card:hover .doc_feild,
.doc3_card:hover .doc_feild,
.doc4_card:hover .doc_feild {
  color: #1f1f1f;
}

/* Purane browsers jo :has() support nahi karte */
@supports not selector(:has(*)) {
  .docCard_container > * {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .docCard_container > * {
    opacity: 1;
    animation: none !important;
  }
}

/* ===== Doctors Page: Responsive ===== */

/* Laptop / Desktop: 4 cards grid mein, images fluid */
.doctors_container {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(20px, 3.5vw, 50px);
  margin-left: 0;
  margin-right: 0;
}

.doc1_card,
.doc2_card,
.doc3_card,
.doc4_card {
  min-width: 0;
}

.docimg1,
.docimg2,
.docimg3,
.docimg4 {
  width: 100%;
  height: auto;
  aspect-ratio: 230 / 300;
  background-position: center top;
}

.doc_name {
  font-size: clamp(1.05em, 1.6vw, 1.3em);
}

/* Small laptop */
@media (max-width: 1200px) {
  .doctors_container {
    gap: 24px;
  }
  .doc_social {
    width: 34px;
    height: 34px;
    font-size: 14px;
  }
}

/* Tablet: 2 columns */
@media (max-width: 992px) {
  .doctors_container {
    grid-template-columns: repeat(2, 1fr);
    gap: 45px 30px;
    max-width: 700px;
    margin: 0 auto;
  }

  .doc1_card,
  .doc2_card,
  .doc3_card,
  .doc4_card {
    width: 100%;
    max-width: 320px;
    justify-self: center;
  }

  .doc_name {
    font-size: 1.2em;
  }

  /* 2 row hain, isliye delay chhota rakho */
  .docimg1.reveal,
  .docimg2.reveal,
  .docimg3.reveal,
  .docimg4.reveal {
    animation-delay: 0.15s;
    animation-duration: 1.4s;
  }

  .doctors_container
    [class$="_card"]:has(.docimgs.reveal)
    .docCard_container
    > :nth-child(1) {
    animation-delay: 0.9s;
  }
  .doctors_container
    [class$="_card"]:has(.docimgs.reveal)
    .docCard_container
    > :nth-child(2) {
    animation-delay: 1s;
  }
  .doctors_container
    [class$="_card"]:has(.docimgs.reveal)
    .docCard_container
    > :nth-child(3) {
    animation-delay: 1.1s;
  }
  .doctors_container
    [class$="_card"]:has(.docimgs.reveal)
    .docCard_container
    > :nth-child(4) {
    animation-delay: 1.2s;
  }
}

/* Mobile: 1 column */
@media (max-width: 576px) {
  .doctors_container {
    grid-template-columns: 1fr;
    gap: 50px;
    max-width: 340px;
  }

  .doc1_card,
  .doc2_card,
  .doc3_card,
  .doc4_card {
    max-width: 100%;
  }

  .doc_name {
    font-size: 1.25em;
  }

  .doc_experience {
    font-size: 0.85em;
  }

  .docsocialLinks {
    gap: 10px;
  }

  /* Touch screen par hover lift halka rakho */
  .doc1_card:hover,
  .doc2_card:hover,
  .doc3_card:hover,
  .doc4_card:hover {
    transform: translateY(-5px);
  }
}

/* Chhote phones */
@media (max-width: 380px) {
  .doctors_container {
    max-width: 100%;
  }
}

/* ===== Philosophy Section ===== */
.philo_section {
  position: relative;
  z-index: 2;
  background-color: rgb(247, 247, 239);
  padding: 0 5% clamp(50px, 8vw, 100px);
}

.philo_card {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: #ece7de;
  border-radius: 15px;
  overflow: hidden;
  opacity: 0;
  transform: translateY(40px);
}

.philo_card.reveal {
  animation: philoCardIn 1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes philoCardIn {
  from {
    opacity: 0;
    transform: translateY(40px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Image */
.philo_img {
  min-height: 380px;
  background-image: url("assets/doctors_philo_img/philo_img.jpg");
  background-size: cover;
  background-position: center;
  clip-path: inset(0 100% 0 0);
}

.philo_card.reveal .philo_img {
  animation: revealLeftToRight 1.4s cubic-bezier(0.65, 0, 0.35, 1) 0.3s forwards;
}

/* Content */
.philo_content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 22px;
  padding: clamp(28px, 5vw, 60px);
}

.philo_sub {
  font-family: "Martel Sans", sans-serif;
  font-size: 0.72rem;
  font-weight: 400;
  letter-spacing: 0.22em;
  color: #6b625a;
  opacity: 0;
}

.philo_heading {
  font-family: "Spectral", serif;
  font-size: clamp(1.7rem, 3.4vw, 2.6rem);
  font-weight: 400;
  line-height: 1.2;
  color: #1f1e1e;
}

.philo_line {
  display: block;
  overflow: hidden;
}

.philo_line > span {
  display: block;
  transform: translateY(110%);
}

.philo_text {
  font-family: "Martel Sans", sans-serif;
  font-size: clamp(0.85rem, 1.1vw, 0.95rem);
  line-height: 1.8;
  color: #4a443e;
  max-width: 420px;
  opacity: 0;
}

.philo_btn {
  background-color: #8f7457;
  opacity: 0;
}

.philo_btn:hover {
  background-color: #72614f;
  transform: translateY(-3px);
}

/* Text entry (image ke saath saath, smooth stagger) */
.philo_card.reveal .philo_sub {
  animation: philoFadeUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.7s forwards;
}

.philo_card.reveal .philo_line > span {
  animation: philoLineUp 1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.philo_card.reveal .philo_line:nth-child(1) > span {
  animation-delay: 0.9s;
}
.philo_card.reveal .philo_line:nth-child(2) > span {
  animation-delay: 1.05s;
}

.philo_card.reveal .philo_text {
  animation: philoFadeUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) 1.25s forwards;
}

.philo_card.reveal .philo_btn {
  animation: philoFadeUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) 1.45s forwards;
}

@keyframes philoLineUp {
  to {
    transform: translateY(0);
  }
}

@keyframes philoFadeUp {
  from {
    opacity: 0;
    transform: translateY(22px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Tablet / Mobile */
@media (max-width: 768px) {
  .philo_card {
    grid-template-columns: 1fr;
  }
  .philo_img {
    min-height: 260px;
  }
  .philo_content {
    align-items: center;
    text-align: center;
  }
  .philo_text {
    max-width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .philo_card,
  .philo_sub,
  .philo_text,
  .philo_btn {
    opacity: 1;
    transform: none;
    animation: none !important;
  }
  .philo_img {
    clip-path: none;
    animation: none !important;
  }
  .philo_line > span {
    transform: none;
    animation: none !important;
  }
}

.galleryHero_img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 80%;
  background-image: url("assets/hero_imgs/gallery\ hero_img.jpg");
  background-size: cover;
  background-position: center;
  z-index: 1;
  animation: revealTopToBottom 1.3s ease-out forwards;
}

/* ================= GALLERY SECTION ================= */
.gallery_section {
  position: relative;
  z-index: 2;
  margin-top: calc(max(600px, clamp(500px, 90vh, 900px)) * -0.2);
  padding: clamp(50px, 7vw, 90px) 5% clamp(60px, 8vw, 110px);
  background-color: rgb(247, 247, 239);
  border-radius: clamp(20px, 4vw, 40px) clamp(20px, 4vw, 40px) 0 0;
  box-shadow: 0 -20px 50px rgba(0, 0, 0, 0.18);
}

.gallery_container {
  max-width: 1200px;
  margin: 0 auto;
}

/* ---------- Filter pills ---------- */
.gallery_filters {
  display: flex;
  justify-content: center;
  gap: 14px;
  margin-bottom: clamp(28px, 4vw, 48px);
  flex-wrap: wrap;
}

.g_pill {
  position: relative;
  overflow: hidden;
  padding: 11px 28px;
  border-radius: 40px;
  border: 1px solid rgba(31, 31, 31, 0.15);
  background: rgba(255, 255, 255, 0.55);
  color: #3a3a3a;
  font-family: "Martel Sans", sans-serif;
  font-size: 0.9rem;
  font-weight: 400;
  cursor: pointer;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(-20px);
  transition:
    color 0.35s ease,
    border-color 0.35s ease,
    transform 0.35s ease,
    box-shadow 0.35s ease;
}

.g_pill::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #2a2724;
  border-radius: inherit;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  z-index: -1;
}

.g_pill:hover {
  transform: translateY(-3px);
  border-color: #b8935a;
  color: #8f7457;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08);
}

.g_pill.active {
  color: #fff;
  border-color: #2a2724;
}

.g_pill.active::before {
  transform: scaleX(1);
}

.g_pill.active:hover {
  color: #fff;
}

.gallery_filters.is_ready .g_pill {
  animation: gPillIn 0.7s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
.gallery_filters.is_ready .g_pill:nth-child(1) {
  animation-delay: 0.05s;
}
.gallery_filters.is_ready .g_pill:nth-child(2) {
  animation-delay: 0.15s;
}
.gallery_filters.is_ready .g_pill:nth-child(3) {
  animation-delay: 0.25s;
}
.gallery_filters.is_ready .g_pill:nth-child(4) {
  animation-delay: 0.35s;
}
.gallery_filters.is_ready .g_pill:nth-child(5) {
  animation-delay: 0.45s;
}

@keyframes gPillIn {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ---------- Grid ---------- */
.gallery_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(14px, 2vw, 24px);
}

.g_item {
  margin: 0;
  min-width: 0;
  opacity: 0;
  transform: translateY(50px) scale(0.96);
  transition:
    opacity 0.35s ease,
    transform 0.35s ease;
}

.g_item[hidden] {
  display: none;
}

.g_item.is_in {
  opacity: 1;
  transform: translateY(0) scale(1);
  transition:
    opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1) var(--d, 0s),
    transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) var(--d, 0s);
}

/* ---------- Card ---------- */
.g_card {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: none;
  background: transparent;
  border-radius: 14px;
  cursor: zoom-in;
  text-align: left;
  font: inherit;
  transition:
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.5s ease;
}

.g_card:hover,
.g_card:focus-visible {
  transform: translateY(-10px);
  box-shadow: 0 24px 45px rgba(0, 0, 0, 0.2);
  outline: none;
}

.g_media {
  display: block;
  position: relative;
  overflow: hidden;
  aspect-ratio: 5 / 4;
  border-radius: 14px;
  background: linear-gradient(135deg, #e9e2d3, #d8cfbd);
  clip-path: inset(100% 0 0 0 round 14px);
}

.g_item.is_in .g_media {
  animation: gClipUp 1.3s cubic-bezier(0.65, 0, 0.35, 1) var(--d, 0s) forwards;
}

@keyframes gClipUp {
  from {
    clip-path: inset(100% 0 0 0 round 14px);
  }
  to {
    clip-path: inset(0 0 0 0 round 14px);
  }
}

.g_media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.3);
  transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}

.g_item.is_in .g_media img {
  transform: scale(1);
  transition-delay: var(--d, 0s);
}

.g_card:hover .g_media img,
.g_card:focus-visible .g_media img {
  transform: scale(1.1);
  transition-delay: 0s;
  transition-duration: 0.9s;
}

/* gold frame on hover */
.g_media::after {
  content: "";
  position: absolute;
  inset: 12px;
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 8px;
  opacity: 0;
  transform: scale(0.92);
  transition:
    opacity 0.5s ease,
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
}

.g_card:hover .g_media::after,
.g_card:focus-visible .g_media::after {
  opacity: 1;
  transform: scale(1);
}

/* overlay */
.g_overlay {
  position: absolute;
  inset: 0;
  border-radius: 14px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 4px;
  padding: 22px 24px;
  background: linear-gradient(
    180deg,
    transparent 45%,
    rgba(8, 18, 14, 0.82) 100%
  );
  opacity: 0;
  transition: opacity 0.5s ease;
  pointer-events: none;
}

.g_tag {
  font-family: "Martel Sans", sans-serif;
  font-size: 0.7rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #d9b77e;
  transform: translateY(18px);
  opacity: 0;
  transition:
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.05s,
    opacity 0.5s ease 0.05s;
}

.g_title {
  font-family: "Spectral", "Georgia", serif;
  font-size: clamp(1.05rem, 1.7vw, 1.35rem);
  color: #fff;
  transform: translateY(22px);
  opacity: 0;
  transition:
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.12s,
    opacity 0.5s ease 0.12s;
}

.g_card:hover .g_overlay,
.g_card:focus-visible .g_overlay {
  opacity: 1;
}

.g_card:hover .g_tag,
.g_card:hover .g_title,
.g_card:focus-visible .g_tag,
.g_card:focus-visible .g_title {
  transform: translateY(0);
  opacity: 1;
}

/* zoom icon */
.g_zoom {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #b8935a;
  color: #fff;
  font-size: 1.5rem;
  line-height: 1;
  transform: scale(0) rotate(-90deg);
  transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  pointer-events: none;
  z-index: 2;
}

.g_card:hover .g_zoom,
.g_card:focus-visible .g_zoom {
  transform: scale(1) rotate(0deg);
}

/* if an image fails to load */
.g_item.g_broken .g_media img {
  display: none;
}

/* touch devices: show captions without hover */
@media (hover: none) {
  .g_overlay {
    opacity: 1;
  }
  .g_tag,
  .g_title {
    opacity: 1;
    transform: none;
  }
  .g_zoom {
    display: none;
  }
}

/* ---------- Lightbox ---------- */
.g_lb {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(8, 18, 14, 0.92);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.4s ease,
    visibility 0.4s ease;
}

.g_lb.open {
  opacity: 1;
  visibility: visible;
}

.g_lb_fig {
  margin: 0;
  max-width: min(90vw, 1100px);
  text-align: center;
  transform: scale(0.92);
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.g_lb.open .g_lb_fig {
  transform: scale(1);
}

.g_lb_fig.swap img,
.g_lb_fig.swap figcaption {
  animation: gSwap 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes gSwap {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.g_lb_fig img {
  max-width: 100%;
  max-height: 78vh;
  border-radius: 12px;
  box-shadow: 0 30px 70px rgba(0, 0, 0, 0.5);
}

.g_lb_fig figcaption {
  margin-top: 16px;
  color: #f1ece2;
  font-family: "Martel Sans", sans-serif;
  letter-spacing: 0.08em;
  font-size: 0.95rem;
}

.g_lb_close,
.g_lb_nav {
  position: absolute;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.3);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  font-size: 1.2rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.35s ease;
}

.g_lb_close {
  top: 24px;
  right: 24px;
  font-size: 1.8rem;
}
.g_lb_prev {
  left: 24px;
  top: 50%;
  transform: translateY(-50%);
}
.g_lb_next {
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
}

.g_lb_close:hover,
.g_lb_nav:hover {
  background: #b8935a;
  border-color: #b8935a;
  color: #0f1c17;
}

.g_lb_close:hover {
  transform: rotate(90deg);
}
.g_lb_prev:hover {
  transform: translateY(-50%) translateX(-4px);
}
.g_lb_next:hover {
  transform: translateY(-50%) translateX(4px);
}

/* ---------- Responsive ---------- */
@media (max-width: 992px) {
  .gallery_grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .gallery_filters {
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    padding-bottom: 8px;
    scrollbar-width: none;
  }
  .gallery_filters::-webkit-scrollbar {
    display: none;
  }
  .g_pill {
    padding: 10px 22px;
    flex-shrink: 0;
  }
  .g_lb_nav {
    width: 40px;
    height: 40px;
  }
  .g_lb_prev {
    left: 10px;
  }
  .g_lb_next {
    right: 10px;
  }
}

@media (max-width: 480px) {
  .gallery_grid {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .g_pill,
  .g_item {
    opacity: 1;
    transform: none;
    animation: none !important;
    transition: none;
  }
  .g_media {
    clip-path: none;
    animation: none !important;
  }
  .g_media img {
    transform: none;
  }
}

/* =========================================================
   GALLERY HERO – FULL RESPONSIVE
   Paste at the very bottom of style.css
   ========================================================= */

/* hero height lives in one variable, so the gallery overlap stays in sync */
:root {
  --hv: 1vh;
}
@supports (height: 1svh) {
  :root {
    --hv: 1svh;
  }
}
:root {
  --hero-h: clamp(600px, calc(90 * var(--hv)), 900px);
}

.hero_section:has(.galleryHero_img) {
  height: var(--hero-h);
  min-height: 0;
}

/* gallery section overlaps the bottom 20% of the hero */
.gallery_section {
  margin-top: calc(var(--hero-h) * -0.2);
}

/* text block: centered inside the image area, always below the navbar */
.galleryHero_img + .service_content {
  top: 0;
  left: 0;
  width: 100%;
  max-width: none;
  height: 80%; /* same as .galleryHero_img */
  padding: 120px 6% 40px;
  justify-content: center;
  gap: clamp(14px, 2.2vw, 28px);
}

.galleryHero_img + .service_content > * {
  max-width: 700px;
}

.galleryHero_img + .service_content .sub_heading {
  font-size: clamp(0.8rem, 1.2vw, 1rem);
}

.galleryHero_img + .service_content .main_heading {
  font-size: clamp(3rem, 6.2vw, 5.1rem);
  line-height: 1.2;
  padding-bottom: 0.05em; /* stops the "g" from being clipped */
}

.galleryHero_img + .service_content .b_title {
  font-size: clamp(1rem, 1.9vw, 1.5rem);
  line-height: 1.5;
  text-wrap: balance;
}

/* ============ LAPTOP (navbar breathing room) ============ */
@media (max-width: 1200px) {
  .nav_bar {
    padding: 0 32px;
  }
  .nav_links {
    gap: 18px;
  }
  .nav_links li a {
    font-size: 0.95rem;
  }
}

/* ============ TABLET ============ */
@media (max-width: 1024px) {
  :root {
    --hero-h: clamp(560px, calc(70 * var(--hv)), 760px);
  }

  /* hamburger menu starts here (the navbar was too tight on tablets) */
  .hamburger {
    display: flex;
  }

  .nav_links {
    display: none;
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    width: 100%;
    flex-direction: column;
    align-items: center;
    gap: 18px;
    padding: 20px 0;
    background-color: rgba(20, 20, 20, 0.95);
    border-radius: 20px;
    z-index: 30;
  }
  .nav_links.active {
    display: flex;
  }
  .nav_links li a {
    font-size: 1rem;
  }

  .signUp_btn {
    display: none;
  }

  .nav_bar {
    padding: 0 28px;
  }
  .brend_logo {
    height: 60px;
    width: 60px;
  }

  .galleryHero_img + .service_content {
    padding: 100px 7% 30px;
  }
  .galleryHero_img + .service_content .main_heading {
    font-size: clamp(2.8rem, 7vw, 4.2rem);
  }
}

/* ============ MOBILE ============ */
@media (max-width: 768px) {
  .nav_bar {
    padding: 0 22px;
  }
  .brend_logo {
    height: 54px;
    width: 54px;
  }
  .brend_name {
    font-size: 1.1em;
    white-space: nowrap;
  }

  /* change 65% to move the image focus left/right on phones */
  .galleryHero_img {
    background-position: 65% center;
  }

  /* soft dark layer so white text stays readable on phones */
  .galleryHero_img::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
      180deg,
      rgba(8, 18, 14, 0.35) 0%,
      rgba(8, 18, 14, 0.55) 100%
    );
  }

  .galleryHero_img + .service_content {
    padding: 92px 7% 28px;
  }
}

@media (max-width: 576px) {
  :root {
    --hero-h: clamp(520px, calc(78 * var(--hv)), 700px);
  }

  .web_head {
    top: 12px;
    left: 12px;
    right: 12px;
  }
  .nav_bar {
    padding: 0 18px;
  }
  .brend_logo {
    height: 50px;
    width: 50px;
  }
  .brend_name {
    font-size: 1.05em;
  }

  .galleryHero_img + .service_content {
    padding: 84px 7% 24px;
    gap: 16px;
  }
  .galleryHero_img + .service_content .main_heading {
    font-size: clamp(2.2rem, 12vw, 3.2rem);
  }
  .galleryHero_img + .service_content .b_title {
    font-size: clamp(0.95rem, 4.2vw, 1.1rem);
    font-weight: 300;
  }
  .galleryHero_img + .service_content .b_title br {
    display: none;
  }
}

@media (max-width: 380px) {
  .brend_logo {
    height: 44px;
    width: 44px;
  }
  .brend_name {
    font-size: 0.95em;
  }
  .galleryHero_img + .service_content {
    padding-top: 78px;
  }
}

/* ============ PHONE LANDSCAPE (short screens) ============ */
@media (max-height: 520px) and (orientation: landscape) {
  :root {
    --hero-h: 520px;
  }

  .galleryHero_img + .service_content {
    padding: 84px 7% 20px;
    gap: 10px;
  }
  .galleryHero_img + .service_content .main_heading {
    font-size: clamp(1.9rem, 9vh, 3rem);
  }
  .galleryHero_img + .service_content .b_title {
    font-size: 0.95rem;
  }
}

.schedule_hero_img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 60%;
  background-image: url("assets/hero_imgs/schedulle_hero.jpg");
  background-size: cover;
  background-position: center;
  z-index: 1;
  animation: revealTopToBottom 1.3s ease-out forwards;
}

/* =========================================================
   SCHEDULE PAGE
   ========================================================= */

/* hero: same height logic as gallery, image is 60% tall */
.hero_section:has(.schedule_hero_img) {
  height: var(--hero-h, clamp(500px, 90vh, 900px));
  min-height: 0;
}

.schedule_hero_img + .service_content {
  top: 0;
  left: 0;
  width: 100%;
  max-width: none;
  height: 60%;
  padding: 100px 6% 30px;
  justify-content: center;
  gap: clamp(12px, 2vw, 26px);
}
.schedule_hero_img + .service_content > * {
  max-width: 700px;
}
.schedule_hero_img + .service_content .main_heading {
  font-size: clamp(2.4rem, 5vw, 4.2rem);
  line-height: 1.2;
  padding-bottom: 0.05em;
}
.schedule_hero_img + .service_content .b_title {
  font-size: clamp(1rem, 1.7vw, 1.4rem);
  line-height: 1.5;
  text-wrap: balance;
}
@media (max-width: 768px) {
  .schedule_hero_img + .service_content {
    padding: 92px 7% 24px;
  }
}
@media (max-width: 576px) {
  .schedule_hero_img + .service_content .main_heading {
    font-size: clamp(2rem, 10vw, 2.8rem);
  }
  .schedule_hero_img + .service_content .b_title {
    font-size: 0.95rem;
    font-weight: 300;
  }
  .schedule_hero_img + .service_content .b_title br {
    display: none;
  }
}

/* ---------- section shell ---------- */
.sch_section {
  position: relative;
  z-index: 2;
  margin-top: calc(var(--hero-h, clamp(500px, 90vh, 900px)) * -0.4);
  padding: clamp(50px, 7vw, 90px) 5% clamp(60px, 8vw, 110px);
  background-color: rgb(247, 247, 239);
  border-radius: clamp(20px, 4vw, 40px) clamp(20px, 4vw, 40px) 0 0;
  box-shadow: 0 -20px 50px rgba(0, 0, 0, 0.18);
}

.sch_container {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(28px, 5vw, 70px);
  align-items: start;
}

.sch_left {
  display: flex;
  flex-direction: column;
  gap: clamp(24px, 3vw, 34px);
}

.sch_val {
  display: inline-block;
}

/* ---------- steps ---------- */
.sch_step {
  position: relative;
  opacity: 0;
}
.sch_step:first-child {
  z-index: 5;
}

.sch_step_head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

.sch_badge {
  width: 30px;
  height: 30px;
  flex-shrink: 0;
  border-radius: 50%;
  background: #1f1e1e;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Martel Sans", sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  transition:
    transform 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275),
    background 0.3s ease;
}
.sch_step:hover .sch_badge {
  transform: rotate(360deg) scale(1.12);
  background: #b8935a;
}

.sch_step_title {
  font-family: "Martel Sans", sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  color: #1f1e1e;
  letter-spacing: 0.02em;
  transition: color 0.3s ease;
}
.sch_step:hover .sch_step_title {
  color: #8f7457;
}

/* ---------- custom select ---------- */
.sch_select {
  position: relative;
}

.sch_select_btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 18px;
  background: #fbfaf6;
  border: 1px solid rgba(31, 31, 31, 0.14);
  border-radius: 8px;
  font-family: "Martel Sans", sans-serif;
  font-size: 0.9rem;
  color: #2b2926;
  text-align: left;
  cursor: pointer;
  transition:
    border-color 0.3s ease,
    box-shadow 0.3s ease,
    transform 0.3s ease;
}
.sch_select_btn:hover {
  border-color: #b8935a;
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.07);
}
.sch_select.open .sch_select_btn {
  border-color: #b8935a;
  box-shadow: 0 0 0 3px rgba(184, 147, 90, 0.18);
}
.sch_chev {
  flex-shrink: 0;
  color: #8f7457;
  transition: transform 0.35s ease;
}
.sch_select.open .sch_chev {
  transform: rotate(180deg);
}

.sch_options {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 8px);
  list-style: none;
  padding: 6px;
  background: #fff;
  border: 1px solid rgba(31, 31, 31, 0.1);
  border-radius: 10px;
  box-shadow: 0 22px 45px rgba(0, 0, 0, 0.16);
  max-height: 260px;
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px) scale(0.98);
  transform-origin: top;
  transition:
    opacity 0.3s ease,
    transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0.3s;
}
.sch_select.open .sch_options {
  opacity: 1;
  visibility: visible;
  transform: none;
}
.sch_options li {
  position: relative;
  padding: 11px 36px 11px 14px;
  border-radius: 6px;
  font-family: "Martel Sans", sans-serif;
  font-size: 0.85rem;
  color: #3a3a3a;
  cursor: pointer;
  transition:
    background 0.25s ease,
    color 0.25s ease,
    padding-left 0.25s ease;
}
.sch_options li:hover,
.sch_options li:focus-visible {
  background: #f3ede1;
  color: #8f7457;
  padding-left: 20px;
  outline: none;
}
.sch_options li[aria-selected="true"] {
  color: #8f7457;
  font-weight: 600;
}
.sch_options li[aria-selected="true"]::after {
  content: "\2713";
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
}

/* ---------- calendar ---------- */
.sch_cal {
  background: #fbfaf6;
  border: 1px solid rgba(31, 31, 31, 0.12);
  border-radius: 12px;
  padding: 18px clamp(12px, 2vw, 22px) 16px;
  transition:
    box-shadow 0.4s ease,
    border-color 0.4s ease;
}
.sch_cal:hover {
  border-color: rgba(184, 147, 90, 0.55);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.07);
}

.sch_cal_head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}
.sch_cal_month {
  font-family: "Martel Sans", sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #1f1e1e;
}
.sch_cal_nav {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: none;
  background: transparent;
  color: #3a3a3a;
  font-size: 1.3rem;
  line-height: 1;
  cursor: pointer;
  transition:
    background 0.3s ease,
    color 0.3s ease,
    transform 0.3s ease;
}
.sch_cal_nav:hover:not(:disabled) {
  background: #1f1e1e;
  color: #fff;
  transform: scale(1.12);
}
.sch_cal_nav:disabled {
  opacity: 0.25;
  cursor: not-allowed;
}

.sch_cal_week,
.sch_cal_days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}
.sch_cal_week span {
  text-align: center;
  padding-bottom: 8px;
  font-family: "Martel Sans", sans-serif;
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  color: #6b625a;
}
.sch_cal_days {
  --base: 0.6s;
  gap: 6px 0;
  justify-items: center;
}

.sch_day {
  position: relative;
  width: clamp(30px, 3.4vw, 38px);
  aspect-ratio: 1;
  border-radius: 50%;
  border: 1px solid transparent;
  background: transparent;
  font-family: "Martel Sans", sans-serif;
  font-size: 0.8rem;
  color: #1f1e1e;
  cursor: pointer;
  opacity: 0;
  transition:
    background 0.3s ease,
    color 0.3s ease,
    border-color 0.3s ease,
    transform 0.3s ease,
    box-shadow 0.3s ease;
}
.sch_day:hover:not(:disabled):not(.is_sel) {
  background: #efe7d6;
  border-color: #b8935a;
  transform: scale(1.14);
}
.sch_day.is_today:not(.is_sel) {
  border-color: #b8935a;
  color: #8f7457;
  font-weight: 700;
}
.sch_day:disabled {
  color: rgba(31, 30, 30, 0.28);
  cursor: not-allowed;
}
.sch_day.is_sel {
  background: #1f1e1e;
  color: #fff;
  transform: scale(1.06);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.25);
}
.sch_day.is_sel::after {
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  border: 1.5px solid #b8935a;
  pointer-events: none;
  animation: schRing 0.7s ease-out;
}

/* ---------- time slots ---------- */
.sch_times {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.sch_time {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 13px 6px;
  background: #fbfaf6;
  border: 1px solid rgba(31, 31, 31, 0.12);
  border-radius: 8px;
  font-family: "Martel Sans", sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  color: #3a3a3a;
  cursor: pointer;
  opacity: 0;
  transition:
    color 0.35s ease,
    border-color 0.35s ease,
    transform 0.35s ease,
    box-shadow 0.35s ease;
}
.sch_time::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #1f1e1e;
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
  z-index: -1;
}
.sch_time:hover {
  border-color: #b8935a;
  color: #8f7457;
  transform: translateY(-4px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}
.sch_time.is_sel {
  color: #fff;
  border-color: #1f1e1e;
}
.sch_time.is_sel::before {
  transform: scaleY(1);
}
.sch_time.is_sel:hover {
  color: #fff;
}

/* ---------- summary card ---------- */
.sch_right {
  position: sticky;
  top: 110px;
}

.sch_summary {
  border: 1px solid rgba(31, 31, 31, 0.1);
  border-radius: 10px;
  background: #ece7de;
  overflow: hidden;
  opacity: 0;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
  transition:
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.5s ease;
}
.sch_summary:hover {
  transform: translateY(-8px);
  box-shadow: 0 28px 55px rgba(0, 0, 0, 0.17);
}

.sch_sum_top {
  padding: clamp(22px, 3vw, 32px) clamp(22px, 3vw, 32px) clamp(24px, 3vw, 34px);
}
.sch_sum_top > * {
  opacity: 0;
}

.sch_sum_title {
  position: relative;
  display: inline-block;
  margin-bottom: 20px;
  padding-bottom: 10px;
  font-family: "Spectral", "Georgia", serif;
  font-size: clamp(1.15rem, 1.8vw, 1.4rem);
  font-weight: 400;
  color: #1f1e1e;
}
.sch_sum_title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 30px;
  height: 2px;
  background: #b8935a;
  transition: width 0.5s ease;
}
.sch_summary:hover .sch_sum_title::after {
  width: 100%;
}

.sch_sum_service {
  margin-bottom: 8px;
  font-family: "Spectral", "Georgia", serif;
  font-size: 1.05rem;
  font-weight: 600;
  color: #1f1e1e;
}
.sch_sum_line {
  margin-bottom: 4px;
  font-family: "Martel Sans", sans-serif;
  font-size: 0.85rem;
  color: #4a443e;
}

.sch_bump {
  animation: schBump 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

/* dark panel */
.sch_sum_bottom {
  display: flex;
  flex-direction: column;
  gap: clamp(22px, 3vw, 30px);
  padding: clamp(24px, 3vw, 32px);
  background: linear-gradient(180deg, #0f1c17 0%, #08120e 100%);
}

.sch_help {
  display: flex;
  align-items: center;
  gap: 18px;
}

.sch_help_icon {
  width: 54px;
  height: 54px;
  flex-shrink: 0;
  position: relative;
  color: #e9e0d0;
  transition: color 0.3s ease;
}
.sch_help_icon svg {
  width: 100%;
  height: 100%;
  display: block;
}
.sch_help_icon path {
  stroke-dasharray: 1;
  stroke-dashoffset: 0;
}
.sch_sum_bottom:hover .sch_help_icon {
  color: #d9b77e;
}
.sch_sum_bottom:hover .sch_help_icon svg {
  animation: schShake 0.8s ease;
}

.sch_help_text {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sch_help_text strong {
  font-family: "Martel Sans", sans-serif;
  font-size: 0.95rem;
  font-weight: 600;
  color: #fff;
}
.sch_help_text span {
  font-family: "Martel Sans", sans-serif;
  font-size: 0.78rem;
  line-height: 1.5;
  color: #d8d6d2;
}
.sch_help_text a {
  position: relative;
  color: #fff;
  text-decoration: none;
  transition: color 0.3s ease;
}
.sch_help_text a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 0;
  height: 1px;
  background: #b8935a;
  transition: width 0.35s ease;
}
.sch_help_text a:hover {
  color: #d9b77e;
}
.sch_help_text a:hover::after {
  width: 100%;
}

.sch_status {
  font-family: "Martel Sans", sans-serif;
  font-size: 0.8rem;
  line-height: 1.6;
  color: #d9b77e;
  animation: schFadeUp 0.5s ease;
}
.sch_status[hidden] {
  display: none;
}

.sch_confirm {
  position: relative;
  overflow: hidden;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 16px 20px;
  background: #a58d6f;
  color: #fff;
  border: none;
  border-radius: 3px;
  font-family: "Montserrat", "Martel Sans", sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3);
  transition:
    background 0.3s ease,
    transform 0.3s ease,
    box-shadow 0.3s ease;
}
.sch_confirm::before {
  content: "";
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(
    120deg,
    transparent,
    rgba(255, 255, 255, 0.35),
    transparent
  );
  transform: skewX(-20deg);
}
.sch_confirm:hover {
  background: #b8935a;
  transform: translateY(-4px);
  box-shadow: 0 14px 26px rgba(0, 0, 0, 0.4);
}
.sch_confirm:hover::before {
  animation: schShine 0.9s ease;
}
.sch_confirm:active {
  transform: translateY(-1px);
}
.sch_arrow {
  display: inline-block;
  transition: transform 0.3s ease;
}
.sch_confirm:hover .sch_arrow {
  transform: translateX(6px);
}
.sch_confirm.is_done {
  background: #4a8a68;
}

/* focus states */
.sch_day:focus-visible,
.sch_time:focus-visible,
.sch_select_btn:focus-visible,
.sch_cal_nav:focus-visible,
.sch_confirm:focus-visible {
  outline: 2px solid #b8935a;
  outline-offset: 2px;
}

/* ---------- ENTRY ANIMATIONS (start when .sch_in is added by JS) ---------- */
.sch_in .sch_step {
  opacity: 1;
  animation: schSlideRight 0.9s cubic-bezier(0.22, 1, 0.36, 1) backwards;
  animation-delay: calc(var(--s) * 0.18s + 0.1s);
}
.sch_in .sch_badge {
  animation: schPop 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275) backwards;
  animation-delay: calc(var(--s) * 0.18s + 0.3s);
}
.sch_in .sch_day {
  opacity: 1;
  animation: schDayIn 0.5s cubic-bezier(0.22, 1, 0.36, 1) backwards;
  animation-delay: calc(var(--i) * 18ms + var(--base));
}
.sch_in .sch_time {
  opacity: 1;
  animation: schFadeUp 0.6s cubic-bezier(0.22, 1, 0.36, 1) backwards;
  animation-delay: calc(var(--i) * 0.08s + 0.9s);
}
.sch_in .sch_summary {
  opacity: 1;
  animation: schSlideLeft 1s cubic-bezier(0.22, 1, 0.36, 1) 0.25s backwards;
}
.sch_in .sch_sum_top > * {
  opacity: 1;
  animation: schFadeUp 0.7s cubic-bezier(0.22, 1, 0.36, 1) backwards;
  animation-delay: calc(var(--i) * 0.1s + 0.8s);
}
.sch_in .sch_sum_title::after {
  animation: schLine 0.8s ease 1.2s backwards;
}
.sch_in .sch_sum_bottom {
  animation: schRise 0.9s cubic-bezier(0.22, 1, 0.36, 1) 1s backwards;
}
.sch_in .sch_help_icon path {
  animation: schDraw 1.6s ease 1.4s backwards;
}

@keyframes schSlideRight {
  from {
    opacity: 0;
    transform: translateX(-50px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes schSlideLeft {
  from {
    opacity: 0;
    transform: translateX(60px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes schFadeUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes schRise {
  from {
    opacity: 0;
    transform: translateY(70px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes schPop {
  from {
    opacity: 0;
    transform: scale(0) rotate(-180deg);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes schDayIn {
  from {
    opacity: 0;
    transform: scale(0.4);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes schBump {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes schLine {
  from {
    width: 0;
  }
}
@keyframes schDraw {
  from {
    stroke-dashoffset: 1;
  }
}
@keyframes schRing {
  from {
    opacity: 0.9;
    transform: scale(1);
  }
  to {
    opacity: 0;
    transform: scale(1.7);
  }
}
@keyframes schShine {
  from {
    left: -75%;
  }
  to {
    left: 130%;
  }
}
@keyframes schShake {
  0%,
  100% {
    transform: rotate(0);
  }
  20% {
    transform: rotate(-14deg);
  }
  40% {
    transform: rotate(12deg);
  }
  60% {
    transform: rotate(-8deg);
  }
  80% {
    transform: rotate(6deg);
  }
}

/* ---------- responsive ---------- */
@media (max-width: 900px) {
  .sch_container {
    grid-template-columns: 1fr;
    max-width: 560px;
  }
  .sch_right {
    position: static;
  }
  .sch_in .sch_summary {
    animation-name: schFadeUp;
    animation-delay: 0.1s;
  }
  .sch_in .sch_sum_top > * {
    animation-delay: calc(var(--i) * 0.1s + 0.4s);
  }
  .sch_in .sch_sum_bottom {
    animation-delay: 0.7s;
  }
  .sch_in .sch_help_icon path {
    animation-delay: 1s;
  }
}
@media (max-width: 480px) {
  .sch_times {
    gap: 8px;
  }
  .sch_time {
    font-size: 0.72rem;
    padding: 12px 4px;
    letter-spacing: 0.02em;
  }
  .sch_help_icon {
    width: 46px;
    height: 46px;
  }
}
@media (hover: none) {
  .sch_summary:hover {
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .sch_step,
  .sch_day,
  .sch_time,
  .sch_summary,
  .sch_sum_top > * {
    opacity: 1;
  }
  .sch_in *,
  .sch_in *::before,
  .sch_in *::after,
  .sch_bump,
  .sch_day.is_sel::after {
    animation: none !important;
  }
}

.contect_hero_img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 80%;
  background-image: url("assets/hero_imgs/contect_hero.jpg");
  background-size: cover;
  background-position: center;
  z-index: 1;
  animation: revealTopToBottom 1.3s ease-out forwards;
}

/* =================== CONTACT SECTION =================== */
.ct_section {
  position: relative;
  z-index: 2;
  margin-top: calc(clamp(500px, 90vh, 900px) * -0.2);
  padding: clamp(50px, 7vw, 90px) 5% clamp(60px, 8vw, 110px);
  background: rgb(247, 247, 239);
  border-radius: clamp(20px, 4vw, 40px) clamp(20px, 4vw, 40px) 0 0;
  box-shadow: 0 -20px 50px rgba(0, 0, 0, 0.18);
}
.ct_container {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: clamp(24px, 3vw, 34px);
}
.ct_top {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: clamp(28px, 5vw, 60px);
  align-items: start;
}

/* ---- info list ---- */
.ct_info {
  display: flex;
  flex-direction: column;
  padding-top: 6px;
}
.ct_item {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  padding: 22px 12px 22px 8px;
  border-bottom: 1px solid rgba(31, 31, 31, 0.08);
  border-radius: 10px;
  opacity: 0;
  transition:
    transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    background 0.4s ease,
    box-shadow 0.4s ease;
}
.ct_item:last-child {
  border-bottom: none;
}
.ct_item:hover {
  transform: translateX(10px);
  background: #fbfaf6;
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.07);
}
.ct_icon {
  position: relative;
  width: 38px;
  height: 38px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid #d9b77e;
  border-radius: 50%;
  background: #f6efe1;
  color: #8f7457;
  transition:
    background 0.4s ease,
    color 0.4s ease,
    transform 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.ct_icon svg {
  width: 16px;
  height: 16px;
}
.ct_icon::after {
  content: "";
  position: absolute;
  inset: -1.5px;
  border-radius: 50%;
  border: 1.5px solid #b8935a;
  opacity: 0;
}
.ct_item:hover .ct_icon {
  background: #1f1e1e;
  color: #f6f1e7;
  border-color: #1f1e1e;
  transform: rotate(360deg);
}
.ct_item:hover .ct_icon::after {
  animation: ctRing 1s ease-out infinite;
}
.ct_item_text h4 {
  font-family: "Martel Sans", sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  color: #1f1e1e;
  margin-bottom: 6px;
  transition: color 0.3s ease;
}
.ct_item:hover h4 {
  color: #b8935a;
}
.ct_item_text p,
.ct_hours li {
  font-family: "Martel Sans", sans-serif;
  font-size: 0.78rem;
  line-height: 1.7;
  color: #4a443e;
}
.ct_item_text a {
  color: inherit;
  text-decoration: none;
  position: relative;
}
.ct_item_text a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 0;
  height: 1px;
  background: #b8935a;
  transition: width 0.35s ease;
}
.ct_item_text a:hover {
  color: #8f7457;
}
.ct_item_text a:hover::after {
  width: 100%;
}
.ct_hours {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ct_hours li {
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 12px;
}

/* ---- form card ---- */
.ct_card {
  padding: clamp(24px, 3.5vw, 38px);
  background: #fbfaf6;
  border: 1px solid rgba(31, 31, 31, 0.08);
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
  opacity: 0;
  transition:
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.5s ease;
}
.ct_card:hover {
  transform: translateY(-8px);
  box-shadow: 0 28px 55px rgba(0, 0, 0, 0.14);
}
.ct_card_title {
  position: relative;
  display: inline-block;
  margin-bottom: 24px;
  padding-bottom: 10px;
  font-family: "Spectral", "Georgia", serif;
  font-size: clamp(1.3rem, 2vw, 1.6rem);
  font-weight: 400;
  color: #1f1e1e;
}
.ct_card_title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 30px;
  height: 2px;
  background: #b8935a;
  transition: width 0.5s ease;
}
.ct_card:hover .ct_card_title::after {
  width: 100%;
}
.ct_form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.ct_field {
  display: flex;
  flex-direction: column;
  gap: 7px;
  opacity: 0;
}
.ct_field label {
  font-family: "Martel Sans", sans-serif;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  color: #8a8178;
  transition: color 0.3s ease;
}
.ct_field input,
.ct_field textarea {
  width: 100%;
  padding: 14px 16px;
  font:
    0.88rem "Martel Sans",
    sans-serif;
  color: #1f1e1e;
  background: #f4f1ea;
  border: 1px solid rgba(31, 31, 31, 0.08);
  border-radius: 8px;
  outline: none;
  resize: none;
  transition:
    border-color 0.3s ease,
    box-shadow 0.3s ease,
    background 0.3s ease,
    transform 0.3s ease;
}
.ct_field textarea {
  min-height: 130px;
}
.ct_field input:hover,
.ct_field textarea:hover {
  border-color: rgba(184, 147, 90, 0.6);
  transform: translateY(-2px);
}
.ct_field:focus-within label {
  color: #b8935a;
}
.ct_field input:focus,
.ct_field textarea:focus {
  background: #fff;
  border-color: #b8935a;
  box-shadow: 0 0 0 3px rgba(184, 147, 90, 0.18);
}
.ct_err input,
.ct_err textarea {
  border-color: #c0564b;
  box-shadow: 0 0 0 3px rgba(192, 86, 75, 0.12);
}
.ct_err label {
  color: #c0564b;
}
.ct_shake {
  animation: ctShake 0.45s ease;
}

/* ---- button ---- */
.ct_btn {
  position: relative;
  overflow: hidden;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 6px;
  padding: 16px 20px;
  background: #a58d6f;
  color: #fff;
  border: none;
  border-radius: 3px;
  font-family: "Montserrat", "Martel Sans", sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-decoration: none;
  cursor: pointer;
  opacity: 0;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
  transition:
    background 0.3s ease,
    transform 0.3s ease,
    box-shadow 0.3s ease;
}
.ct_btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(
    120deg,
    transparent,
    rgba(255, 255, 255, 0.35),
    transparent
  );
  transform: skewX(-20deg);
}
.ct_btn:hover {
  background: #b8935a;
  transform: translateY(-4px);
  box-shadow: 0 14px 26px rgba(0, 0, 0, 0.28);
}
.ct_btn:hover::before {
  animation: ctShine 0.9s ease;
}
.ct_btn:active {
  transform: translateY(-1px);
}
.ct_arrow {
  display: inline-block;
  transition: transform 0.3s ease;
}
.ct_btn:hover .ct_arrow {
  transform: translateX(6px);
}
.ct_btn.is_done {
  background: #4a8a68;
}
.ct_btn:focus-visible {
  outline: 2px solid #b8935a;
  outline-offset: 2px;
}
.ct_status {
  font-family: "Martel Sans", sans-serif;
  font-size: 0.8rem;
  line-height: 1.6;
  color: #4a8a68;
  animation: ctFadeUp 0.5s ease;
}
.ct_status[hidden] {
  display: none;
}

/* ---- find us ---- */
.ct_find {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: clamp(20px, 3vw, 36px);
  padding: 14px;
  background: #fbfaf6;
  border: 1px solid rgba(31, 31, 31, 0.08);
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
  opacity: 0;
  transition:
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.5s ease;
}
.ct_find:hover {
  transform: translateY(-8px);
  box-shadow: 0 28px 55px rgba(0, 0, 0, 0.14);
}
.ct_map {
  position: relative;
  min-height: 220px;
  overflow: hidden;
  border-radius: 10px;
  background: #e9e2d3;
  clip-path: inset(0 100% 0 0 round 10px);
}
.ct_map iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  filter: grayscale(0.85) sepia(0.15) contrast(0.95);
  transform: scale(1.15);
  transition:
    filter 0.6s ease,
    transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}
.ct_find:hover .ct_map iframe {
  filter: grayscale(0) sepia(0);
  transform: scale(1);
}
.ct_find_info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 14px 10px 0;
}
.ct_find_info h3 {
  font-family: "Spectral", "Georgia", serif;
  font-size: 1.25rem;
  font-weight: 400;
  color: #1f1e1e;
}
.ct_find_info p {
  font-family: "Martel Sans", sans-serif;
  font-size: 0.78rem;
  line-height: 1.7;
  color: #4a443e;
  margin-bottom: 8px;
}
.ct_btn_sm {
  width: auto;
  padding: 14px 26px;
  margin-top: 0;
}

/* ---- ENTRY ANIMATIONS (JS adds .ct_in) ---- */
.ct_in .ct_item {
  opacity: 1;
  animation: ctSlideRight 0.9s cubic-bezier(0.22, 1, 0.36, 1) backwards;
  animation-delay: calc(var(--i) * 0.15s + 0.1s);
}
.ct_in .ct_icon {
  animation: ctPop 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275) backwards;
  animation-delay: calc(var(--i) * 0.15s + 0.35s);
}
.ct_in.ct_top .ct_card,
.ct_top.ct_in .ct_card {
  opacity: 1;
  animation: ctSlideLeft 1s cubic-bezier(0.22, 1, 0.36, 1) 0.25s backwards;
}
.ct_in .ct_card_title::after {
  animation: ctLine 0.8s ease 1s backwards;
}
.ct_in .ct_field {
  opacity: 1;
  animation: ctFadeUp 0.7s cubic-bezier(0.22, 1, 0.36, 1) backwards;
  animation-delay: calc(var(--i) * 0.1s + 0.7s);
}
.ct_in .ct_card .ct_btn {
  opacity: 1;
  animation: ctFadeUp 0.7s cubic-bezier(0.22, 1, 0.36, 1) 1.2s backwards;
}
.ct_find.ct_in {
  opacity: 1;
  animation: ctRise 1s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}
.ct_find.ct_in .ct_map {
  animation: ctClip 1.4s cubic-bezier(0.65, 0, 0.35, 1) 0.4s forwards;
}
.ct_find.ct_in .ct_find_info > * {
  animation: ctFadeUp 0.7s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}
.ct_find.ct_in .ct_find_info > :nth-child(1) {
  animation-delay: 0.9s;
}
.ct_find.ct_in .ct_find_info > :nth-child(2) {
  animation-delay: 1s;
}
.ct_find.ct_in .ct_find_info > :nth-child(3) {
  animation-delay: 1.1s;
  opacity: 1;
}
.ct_find.ct_in .ct_btn {
  opacity: 1;
}

@keyframes ctSlideRight {
  from {
    opacity: 0;
    transform: translateX(-50px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes ctSlideLeft {
  from {
    opacity: 0;
    transform: translateX(60px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes ctFadeUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes ctRise {
  from {
    opacity: 0;
    transform: translateY(60px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes ctPop {
  from {
    opacity: 0;
    transform: scale(0) rotate(-180deg);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes ctClip {
  from {
    clip-path: inset(0 100% 0 0 round 10px);
  }
  to {
    clip-path: inset(0 0 0 0 round 10px);
  }
}
@keyframes ctLine {
  from {
    width: 0;
  }
}
@keyframes ctRing {
  from {
    opacity: 0.8;
    transform: scale(1);
  }
  to {
    opacity: 0;
    transform: scale(1.4);
  }
}
@keyframes ctShine {
  from {
    left: -75%;
  }
  to {
    left: 130%;
  }
}
@keyframes ctShake {
  0%,
  100% {
    transform: translateX(0);
  }
  20% {
    transform: translateX(-8px);
  }
  40% {
    transform: translateX(7px);
  }
  60% {
    transform: translateX(-5px);
  }
  80% {
    transform: translateX(3px);
  }
}

/* ---- responsive ---- */
@media (max-width: 900px) {
  .ct_top {
    grid-template-columns: 1fr;
    max-width: 560px;
    margin: 0 auto;
    width: 100%;
  }
  .ct_container {
    max-width: 560px;
  }
  .ct_find {
    grid-template-columns: 1fr;
  }
  .ct_map {
    min-height: 240px;
  }
  .ct_find_info {
    padding: 6px 10px 14px;
  }
}
@media (hover: none) {
  .ct_card:hover,
  .ct_find:hover,
  .ct_item:hover {
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ct_item,
  .ct_card,
  .ct_field,
  .ct_btn,
  .ct_find {
    opacity: 1;
  }
  .ct_map {
    clip-path: none;
  }
  .ct_in *,
  .ct_in {
    animation: none !important;
  }
}

.signup_hero_section {
  position: relative;
  width: 100%;
  height: 90vh;
  min-height: 600px;
  margin: 0;
  overflow: hidden;
}

.signUp_img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-image: url("assets/signUp page image/signup_img.jpg");
  background-size: cover;
  background-position: center;
  z-index: 1;
  animation: revealTopToBottom 1.3s ease-out forwards;
}

/* =========================================================
   SIGN UP PAGE
   ========================================================= */
.signup_hero_section {
  height: auto;
  min-height: 100vh;
}

/* soft dark layer so the heading stays readable */
.signUp_img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(20, 16, 12, 0.45) 0%,
    rgba(20, 16, 12, 0.12) 45%,
    rgba(20, 16, 12, 0.22) 100%
  );
}

.su_wrap {
  position: relative;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
  padding: 130px 5% 80px;
}

/* ---------- heading ---------- */
.su_head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-align: center;
}
.su_title_box {
  overflow: hidden;
  padding-bottom: 0.12em;
}
.su_title {
  font-family: "Spectral", "Georgia", serif;
  font-size: clamp(1.9rem, 3.6vw, 2.7rem);
  font-weight: 400;
  color: #fff;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.3);
  animation: suLineUp 1s cubic-bezier(0.22, 1, 0.36, 1) 0.3s backwards;
}
.su_sub {
  max-width: 440px;
  font-family: "Martel Sans", sans-serif;
  font-size: clamp(0.78rem, 1.1vw, 0.9rem);
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.82);
  animation: suFadeUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.6s backwards;
}

/* ---------- card ---------- */
.su_card {
  width: 100%;
  max-width: 480px;
  padding: clamp(24px, 4vw, 38px);
  background: rgba(251, 250, 246, 0.97);
  border-radius: 10px;
  box-shadow: 0 30px 70px rgba(0, 0, 0, 0.25);
  animation: suRise 1s cubic-bezier(0.22, 1, 0.36, 1) 0.5s backwards;
  transition:
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.5s ease;
}
.su_card:hover {
  transform: translateY(-8px);
  box-shadow: 0 40px 80px rgba(0, 0, 0, 0.32);
}

.su_card_title {
  position: relative;
  display: inline-block;
  margin-bottom: 22px;
  padding-bottom: 10px;
  font-family: "Spectral", "Georgia", serif;
  font-size: clamp(1.4rem, 2vw, 1.7rem);
  font-weight: 500;
  color: #1f1e1e;
}
.su_card_title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 2px;
  background: #b8935a;
  transition: width 0.5s ease;
  animation: suLine 0.8s ease 1.2s forwards;
}
.su_card:hover .su_card_title::after {
  width: 100%;
  animation: none;
}

/* ---------- fields ---------- */
.su_form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.su_field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  animation: suFadeUp 0.7s cubic-bezier(0.22, 1, 0.36, 1) backwards;
  animation-delay: calc(var(--i) * 0.1s + 0.8s);
}
.su_field label {
  font-family: "Martel Sans", sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #1f1e1e;
  transition: color 0.3s ease;
}
.su_field:focus-within > label {
  color: #b8935a;
}

.su_field input[type="text"],
.su_field input[type="email"],
.su_field input[type="tel"],
.su_field input[type="password"] {
  width: 100%;
  padding: 13px 16px;
  font: 0.85rem "Martel Sans", sans-serif;
  color: #1f1e1e;
  background: #f4f1ea;
  border: 1px solid rgba(31, 31, 31, 0.1);
  border-radius: 6px;
  outline: none;
  transition:
    border-color 0.3s ease,
    box-shadow 0.3s ease,
    background 0.3s ease,
    transform 0.3s ease;
}
.su_field input::placeholder {
  color: #a39b90;
}
.su_field input:hover {
  border-color: rgba(184, 147, 90, 0.65);
  transform: translateY(-2px);
}
.su_field input:focus {
  background: #fff;
  border-color: #b8935a;
  box-shadow: 0 0 0 3px rgba(184, 147, 90, 0.18);
  transform: translateY(-2px);
}

/* validation */
.su_msg {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-4px);
  font-family: "Martel Sans", sans-serif;
  font-size: 0.68rem;
  color: #c0564b;
  transition:
    max-height 0.3s ease,
    opacity 0.3s ease,
    transform 0.3s ease;
}
.su_err .su_msg {
  max-height: 22px;
  opacity: 1;
  transform: none;
}
.su_err > label {
  color: #c0564b;
}
.su_err input[type="text"],
.su_err input[type="email"],
.su_err input[type="tel"],
.su_err input[type="password"] {
  border-color: #c0564b;
  box-shadow: 0 0 0 3px rgba(192, 86, 75, 0.12);
}
.su_ok input[type="text"],
.su_ok input[type="email"],
.su_ok input[type="tel"],
.su_ok input[type="password"] {
  border-color: rgba(74, 138, 104, 0.7);
}

/* ---------- password ---------- */
.su_pass {
  position: relative;
}
.su_pass input {
  padding-right: 48px !important;
}
.su_eye {
  position: absolute;
  top: 50%;
  right: 8px;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  transform: translateY(-50%);
  border: none;
  border-radius: 50%;
  background: transparent;
  color: #8a8178;
  cursor: pointer;
  transition:
    background 0.3s ease,
    color 0.3s ease,
    transform 0.3s ease;
}
.su_eye:hover {
  background: #1f1e1e;
  color: #fff;
  transform: translateY(-50%) scale(1.1);
}
.su_eye:focus-visible {
  outline: 2px solid #b8935a;
  outline-offset: 2px;
}
.su_eye svg {
  grid-area: 1 / 1;
  width: 18px;
  height: 18px;
  transition:
    opacity 0.3s ease,
    transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.su_eye .eye_off {
  opacity: 0;
  transform: rotate(-90deg) scale(0.4);
}
.su_eye.shown .eye_on {
  opacity: 0;
  transform: rotate(90deg) scale(0.4);
}
.su_eye.shown .eye_off {
  opacity: 1;
  transform: none;
}

/* strength bar */
.su_strength {
  display: flex;
  gap: 5px;
  height: 3px;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.su_strength.show {
  opacity: 1;
}
.su_strength span {
  flex: 1;
  border-radius: 3px;
  background: rgba(31, 31, 31, 0.1);
  transition: background 0.4s ease;
}
.su_strength[data-level="1"] span:nth-child(-n + 1) {
  background: #c0564b;
}
.su_strength[data-level="2"] span:nth-child(-n + 2) {
  background: #d9a441;
}
.su_strength[data-level="3"] span:nth-child(-n + 3) {
  background: #b8935a;
}
.su_strength[data-level="4"] span:nth-child(-n + 4) {
  background: #4a8a68;
}

/* ---------- checkbox ---------- */
.su_check {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-family: "Martel Sans", sans-serif !important;
  font-size: 0.7rem !important;
  font-weight: 400 !important;
  line-height: 1.5;
  color: #4a443e !important;
}
.su_check input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.su_box {
  width: 17px;
  height: 17px;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  border: 1.5px solid #8a8178;
  border-radius: 4px;
  background: #fff;
  transition:
    background 0.3s ease,
    border-color 0.3s ease,
    transform 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.su_box svg {
  width: 12px;
  height: 12px;
  fill: none;
  stroke: #fff;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 24;
  stroke-dashoffset: 24;
  transition: stroke-dashoffset 0.35s ease 0.05s;
}
.su_check:hover .su_box {
  border-color: #b8935a;
  transform: scale(1.12);
}
.su_check input:checked + .su_box {
  background: #0f1c17;
  border-color: #0f1c17;
  transform: scale(1.1);
}
.su_check input:checked + .su_box svg {
  stroke-dashoffset: 0;
}
.su_check input:focus-visible + .su_box {
  outline: 2px solid #b8935a;
  outline-offset: 2px;
}
.su_err .su_box {
  border-color: #c0564b;
}
.su_check a {
  position: relative;
  color: #1f1e1e;
  text-decoration: none;
  transition: color 0.3s ease;
}
.su_check a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform-origin: right;
  transition: transform 0.35s ease;
}
.su_check a:hover {
  color: #b8935a;
}
.su_check a:hover::after {
  transform: scaleX(0.3);
}

/* ---------- button ---------- */
.su_btn {
  position: relative;
  overflow: hidden;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 4px;
  padding: 16px 20px;
  background: #16211c;
  color: #fff;
  border: none;
  border-radius: 4px;
  font-family: "Montserrat", "Martel Sans", sans-serif;
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22);
  animation: suFadeUp 0.7s cubic-bezier(0.22, 1, 0.36, 1) backwards;
  animation-delay: calc(var(--i) * 0.1s + 0.8s);
  transition:
    background 0.3s ease,
    transform 0.3s ease,
    box-shadow 0.3s ease;
}
.su_btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: -75%;
  width: 50%;
  height: 100%;
  background: linear-gradient(
    120deg,
    transparent,
    rgba(255, 255, 255, 0.35),
    transparent
  );
  transform: skewX(-20deg);
}
.su_btn:hover {
  background: #b8935a;
  transform: translateY(-4px);
  box-shadow: 0 16px 28px rgba(0, 0, 0, 0.3);
}
.su_btn:hover::before {
  animation: suShine 0.9s ease;
}
.su_btn:active {
  transform: translateY(-1px);
}
.su_btn:focus-visible {
  outline: 2px solid #b8935a;
  outline-offset: 2px;
}
.su_arrow {
  display: inline-block;
  transition: transform 0.3s ease;
}
.su_btn:hover .su_arrow {
  transform: translateX(6px);
}
.su_btn:disabled {
  cursor: default;
}
.su_btn.is_loading .su_arrow {
  width: 14px;
  height: 14px;
  font-size: 0;
  border: 2px solid rgba(255, 255, 255, 0.35);
  border-top-color: #fff;
  border-radius: 50%;
  animation: suSpin 0.7s linear infinite;
}
.su_btn.is_done,
.su_btn.is_done:hover {
  background: #4a8a68;
}

.su_status {
  font-family: "Martel Sans", sans-serif;
  font-size: 0.8rem;
  line-height: 1.6;
  text-align: center;
  color: #4a8a68;
  animation: suFadeUp 0.5s ease;
}
.su_status[hidden] {
  display: none;
}

/* ---------- login link ---------- */
.su_login {
  margin-top: 18px;
  text-align: center;
  font-family: "Martel Sans", sans-serif;
  font-size: 0.74rem;
  color: #4a443e;
  animation: suFadeUp 0.7s ease 1.7s backwards;
}
.su_login a {
  position: relative;
  color: #1f1e1e;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.3s ease;
}
.su_login a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 100%;
  height: 1px;
  background: #b8935a;
  transform: scaleX(0.35);
  transform-origin: left;
  transition: transform 0.35s ease;
}
.su_login a:hover {
  color: #b8935a;
}
.su_login a:hover::after {
  transform: scaleX(1);
}

/* form shake on error */
.su_shake {
  animation: suShake 0.45s ease;
}

/* ---------- keyframes ---------- */
@keyframes suLineUp {
  from { transform: translateY(110%); }
  to { transform: none; }
}
@keyframes suFadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: none; }
}
@keyframes suRise {
  from { opacity: 0; transform: translateY(70px); }
  to { opacity: 1; transform: none; }
}
@keyframes suLine {
  from { width: 0; }
  to { width: 30px; }
}
@keyframes suShine {
  from { left: -75%; }
  to { left: 130%; }
}
@keyframes suSpin {
  to { transform: rotate(360deg); }
}
@keyframes suShake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-8px); }
  40% { transform: translateX(7px); }
  60% { transform: translateX(-5px); }
  80% { transform: translateX(3px); }
}

/* ---------- responsive ---------- */
@media (max-width: 768px) {
  .su_wrap {
    padding: 110px 5% 60px;
    gap: 24px;
  }
}
@media (max-width: 480px) {
  .su_wrap {
    padding-top: 100px;
  }
  .su_card {
    padding: 22px 18px;
  }
  .su_btn {
    font-size: 0.7rem;
    letter-spacing: 0.18em;
  }
}
@media (hover: none) {
  .su_card:hover {
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .su_title,
  .su_sub,
  .su_card,
  .su_field,
  .su_btn,
  .su_login,
  .su_card_title::after {
    animation: none !important;
  }
  .su_card_title::after {
    width: 30px;
  }
}

/* =========================================================
   LOGIN PAGE (extends the sign-up styles)
   ========================================================= */

/* ---------- heading extras ---------- */
.lg_kicker {
  font-family: "Martel Sans", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.32em;
  color: #e3c48c;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
  animation: suFadeUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.1s backwards;
}

.lg_line {
  display: block;
  width: 60px;
  height: 2px;
  background: #b8935a;
  border-radius: 2px;
  animation: lgLineGrow 1s cubic-bezier(0.22, 1, 0.36, 1) 0.9s backwards;
}

@keyframes lgLineGrow {
  from {
    width: 0;
    opacity: 0;
  }
  to {
    width: 60px;
    opacity: 1;
  }
}

/* ---------- card extras ---------- */
.lg_card {
  position: relative;
  overflow: hidden;
}

/* gold bar that draws across the top of the card */
.lg_card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, #b8935a, #e3c48c, #b8935a);
  transform: scaleX(0);
  transform-origin: left;
  animation: lgBar 1.1s cubic-bezier(0.65, 0, 0.35, 1) 1s forwards;
  z-index: 3;
}

/* light shine: once on entry, again on every hover */
.lg_card::after {
  content: "";
  position: absolute;
  top: 0;
  left: -70%;
  width: 40%;
  height: 100%;
  background: linear-gradient(
    120deg,
    transparent,
    rgba(255, 255, 255, 0.6),
    transparent
  );
  transform: skewX(-20deg);
  pointer-events: none;
  z-index: 2;
  animation: lgShineIn 1.4s ease 1.8s backwards;
}
.lg_card:hover::after {
  animation: lgShine 1.1s ease;
}

@keyframes lgBar {
  to {
    transform: scaleX(1);
  }
}
@keyframes lgShineIn {
  from {
    left: -70%;
  }
  to {
    left: 140%;
  }
}
@keyframes lgShine {
  from {
    left: -70%;
  }
  to {
    left: 140%;
  }
}

/* ---------- remember me + forgot password ---------- */
.lg_row {
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: -2px;
}

.lg_forgot {
  position: relative;
  font-family: "Martel Sans", sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  color: #1f1e1e;
  text-decoration: none;
  white-space: nowrap;
  transition:
    color 0.3s ease,
    transform 0.3s ease;
}
.lg_forgot::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -3px;
  width: 100%;
  height: 1px;
  background: #b8935a;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.35s ease;
}
.lg_forgot:hover {
  color: #b8935a;
  transform: translateX(3px);
}
.lg_forgot:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}
.lg_forgot:focus-visible {
  outline: 2px solid #b8935a;
  outline-offset: 3px;
  border-radius: 2px;
}

/* ---------- responsive ---------- */
/* =========================================================
   SIGN UP BUTTON INSIDE MOBILE / TABLET MENU
   ========================================================= */

/* badi screens par hidden (wahan normal Sign Up button hai) */
.nav_signup_li {
  display: none;
}

/* hamburger menu wali screens par show */
@media (max-width: 1024px) {
  .nav_links li.nav_signup_li {
    display: block;
    width: 80%;
    max-width: 260px;
    margin-top: 4px;
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    animation-delay: 1s;
  }

  .nav_links li.nav_signup_li a {
    display: block;
    padding: 12px 24px;
    text-align: center;
    font-family: "Open Sans", sans-serif;
    font-size: 1rem;
    font-weight: 400;
    color: #fff;
    background-color: rgba(87, 87, 84, 0.185);
    border: 2px solid rgb(248, 245, 245);
    border-radius: 3px;
    transition: all 0.3s ease;
  }

  .nav_links li.nav_signup_li a::after {
    display: none;
  }

  .nav_links li.nav_signup_li a:hover {
    background-color: #b8935a;
    border-color: #b8935a;
    color: #fff;
    transform: translateY(-3px);
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.25);
  }
}

@media (min-width: 380px) {
  .lg_row {
    flex-wrap: wrap;
  }
}

@media (prefers-reduced-motion: reduce) {
  .lg_kicker,
  .lg_line,
  .lg_card::before,
  .lg_card::after {
    animation: none !important;
  }
  .lg_card::before {
    transform: scaleX(1);
  }
}

.booking a{
  text-decoration: none;
  color: #fff;
}