

/* ================================
   RESET & BASE STYLES
================================ */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  background-color: #287474;
  color: #a3d7ca; 
   font-family: Roboto, Arial, sans-serif;
}

/* ================================
   ROOT VARIABLES
================================ */

:root {
  --fs-body: clamp(1rem, 2.5vw, 1.2rem);
  --fs-small: clamp(0.9rem, 2vw, 1rem);
  --fs-h1: clamp(2rem, 6vw, 3rem);
  --fs-h2: clamp(1.4rem, 5vw, 2rem);
  --fs-h3: clamp(1.1rem, 3.5vw, 1.4rem);
  --lh-body: 1.6;
  --lh-heading: 1.25;
}


/* ================================
   TYPOGRAPHY
================================ */
h1 {
 font-family: 'Bad Script', Arial, Helvetica, sans-serif;
 font-size: var(--fs-h1);
 line-height: var(--lh-heading);
}

h2 {
  margin-top: 40px;
  margin-bottom: 20px;
  font-size: var(--fs-h2);
  line-height: var(--lh-heading);
}

h3 {
  font-size: var(--fs-h3);
  line-height: var(--lh-heading);
}

h1, h2 {
  white-space: nowrap;
  overflow: visible;
  text-overflow: unset;
}

p{
  color: white;
 letter-spacing: 1.5px;
  font-weight: 200;
  font-size: var(--fs-body);
  line-height: var(--lh-body);
    max-width: 750px;
    margin: 0 auto 1.5rem auto;
    padding: 0 1rem;
    text-align: center;
  }
  .quote{
    font-style:italic;
  }
  

.oswald-light {
  font-family: 'Oswald', sans-serif;
  font-style: normal;
  font-weight: 200;
  color: #ffffff;
}

/* ================================
   UTILITIES
================================ */
.text-center {
  text-align: center;
}

.flex {
  display: flex;
}
.flex-center {
  justify-content: center;
  align-items: center;
}
.space-between {
  justify-content: space-between;
  align-items: center;
}
.center-block {
  display: block;
  text-align: center;
  width: 100%;
}

.wrap {
  flex-wrap: wrap;
  }
.gap-15 {
  gap: 15px;
  }
  
.gap-2rem {
  gap: 2rem;
  }

.full-width {
  width: 100%;
    }

  .rounded {
    border-radius: 8px;
    }
  .shadow-light {
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    }
    .shadow {
      box-shadow: 0 4px 8px rgba(0,0,0,0.2);
    }
    
/* ================================
   HEADER & NAVIGATION
================================ */
header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background-color: #0e3a33;
  padding: 20px;
  border-bottom: 2px solid #1b5e54;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}


nav ul li a {
  color: #0A3C30;
}

nav ul {
  list-style: none;
  display: flex;
  gap: 20px;
}

nav a {
  text-decoration: none;
  color: #0A3C30 !important;
  font-weight: 400;
  font-size: 1rem;
  border: 5px #bcbaa6 solid;
  border-radius: 100px;
  background-color: #bcbaa6;
    display: inline-block;
  padding: 0.02rem 1.5rem;
  
}



nav a:hover {
  background-color: #287474;
  color: white !important; 
  border: 5px #287474 solid;
}

#menu-toggle {
  display: none;
  font-size: 2rem;
  background: none;
  border: none;
  color: #a3d7ca;
  cursor: pointer;
}

.fade-in-word {
  opacity: 0;
  display: inline-block;
  transition: opacity 1s ease;
}


/* ================================
  CONTACT FORM
================================ */

form {
  max-width: 600px;
  margin: 40px auto;          
  padding: 30px;
  background-color: #BCBAA6; 
  color: #333;             
  font-family: Oswaldo, Arial, sans-serif;

}

form h2 {
  text-align: center;
  margin-bottom: 20px;
}

form label {
  display: block;
  margin-top: 15px;
  font-weight: 500;
}

form input,
form select,
form textarea {
  padding: 10px 15px;
  margin-top: 5px;
  border: 1px solid #ccc;
  font-size: 1rem;
  font-family: inherit;
  box-sizing: border-box;
}

form input:focus,
form select:focus,
form textarea:focus {
  border-color: #3EBB9E;
  outline: none;
  box-shadow: 0 0 5px rgba(62, 187, 158, 0.5);
}


form button:hover {
  background-color: #2a8a72;
}


.contact-icons {
  text-align: center;
  margin-top: 25px;
}

.contact-icons a {
  color: #0e3a33;
  font-size: 2rem;
  margin: 0 15px;
  text-decoration: none;
  transition: color 0.3s ease;
}

.contact-icons a:hover {
  color: #2a8a72;
}

.btn-rounded {
border-radius: 12px;
}

.form-row {
  display: flex;
  gap: 20px;
}

.form-row .half {
  flex: 1;
}


.chip-group input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.chip-group input[type="checkbox"]:focus + .chip {
  outline: 3px solid #ffffff;       
  outline-offset: 3px;
  border-color: #ffffff;
}


.chip-group {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
}


.chip {
  padding: 0.5rem 1rem;
  border-radius: 20px;
  border: 2px solid #ccc;
  cursor: pointer;
  font-size: 0.95rem;
  user-select: none;
  transition: all 0.2s ease;
  background: #f8f8f8;
}


.chip:hover {
  border-color: #888;
}


.chip-group input[type="checkbox"]:checked + .chip {
  background: #0e3a33;   
  color: white;
  border-color: #0e3a33;
}

.section-label {
  margin: auto;
  padding: 10px;
  font-weight: 600;
  font-size: 1.1rem;
  color: #333;
  text-align: center;
}

fieldset {
  border: none;
  padding: 0;
  margin: 0;
  min-inline-size: auto; 
}

.submit-wrapper{
  text-align:center;
}

.agree-checkbox a {
  color: #287474; 
  text-decoration: underline;
}
.agree-checkbox a:hover {
  color: #1b5e54;
}



/* ================================
   IMAGES & LOGO
================================ */

#header_logo{
  max-width: 120px;

}
#dancer_logo {
  position: relative;
  width: 100%;
  z-index: 1;
  box-shadow: 0 0 10px rgba(40, 116, 116, 0.3); 
}

.worked-with {
  background-color: #0e3a33;
  margin-top: 20px;
}

.worked-with h2 {
margin: 0;
white-space: nowrap;
}

.worked-with a {
display: inline-block;}

.worked-with img {
  height: 40px; 
  width: auto;
  object-fit: contain;
  filter: grayscale(100%);
  mix-blend-mode: screen;
}

.worked-with img:hover {
  transform: scale(1.05);
  transition: transform 0.3s ease;
  filter: none;
}
.about {             
  background-color: #BCBAA6;
  padding: 2rem;
  margin: 2rem auto;
  max-width: 800px;
  display: flex;
  gap: 2rem;
  align-items: center;  
  }
  


.about h2 {
  color: #333;
  text-align: center;         
}

.about-text {
  flex: 1; 
  text-align: center;                  
}

.about p,
.about h3 {
  color: #333;
  text-align: left;
  line-height: 1.6;
  letter-spacing: 0.05em;
  padding: 0;
  margin-top: 0;
}


  h3{
    font-weight: normal;
  }
  

.about p a {
  color: #287474;
}


#headshot {
  width: auto;
  max-width: 300px;
  height: auto;
  margin: 20px 0;
  flex-shrink: 0;
  object-fit: contain;
}

.resume-actions {
  margin-top: 1.5rem;
  display: flex;
  gap: 1rem;
  flex-wrap: wrap; 
  
  justify-content: flex-start;
  width: 100%; 

}

.offerings-section, .contact-btn, .submit-btn {
  display: inline-block;
  margin: 1.5rem auto 0 auto;
  text-decoration: none;
}



.resume-btn, .contact-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 1rem;
  background-color: #287474;
  color: #fff;
  text-decoration: none;
  border: none;
  border-radius: 4px;
  font-size: 1rem;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.resume-btn i {
  font-size: 1.2rem;
}

.resume-btn:hover, .contact-btn:hover {
  background-color: #1b5e54;
}

.img-responsive {
  display: block;
  max-width: 100%;
  height: auto;
}

.center-img {
margin: 20px auto;
}

.gallery-img {
  flex: 1 1 calc(33% - 1rem); 
  max-width: calc(33% - 1rem);
  height: auto;
  object-fit: cover;  
  cursor: pointer;   
  transition: transform 0.3s ease;
}

.gallery-img:hover {
  transform: scale(1.05); 
}


/* ================================
   LAYOUT & SECTIONS
================================ */
section, #intro, #about {
  scroll-margin-top: 120px;
}

#about {
  background-color: #3EBB9E;
}

.intro-section {
  max-width: 1200px;
  margin: 3rem auto;
  padding: 1.5rem 2rem;
}

.intro-section p {
  max-width: 800px;
  margin: 0 auto;
  padding: 0;
  text-align: left;
}






/* ================================
   LOGO OVERLAY
================================ */
.logo-container {
  position: relative;
  width: 60vw; 
  max-width: 400px;
  margin: 40px auto;
}

#dancer_overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  z-index: 2;
  pointer-events: auto;
}


#dancer_overlay .s0 {
  fill: transparent;
  pointer-events: auto;
}


/* ================================
   TOOLTIP
================================ */
#tooltip {
  position: absolute;
  background-color: #0e3a33;
  color: #ffffff;
  padding: 8px 12px;
  border-radius: 6px;
  font-family: 'Oswald', sans-serif;
  font-size: 1rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
  display: none;
  pointer-events: auto;
  z-index: 1000;
  transition: opacity 0.2s ease;
}

#tooltip a {
  color: #ffffff;
  text-decoration: underline;
  font-weight: 500;
}

@keyframes pulse {
  0% {
    transform: scale(1);
  }
  40% {
    transform: scale(1.22); 
  }
  60% {
    transform: scale(1.18); 
  }
  100% {
    transform: scale(1); 
  }
}

#heart-wrapper.pulse {
  animation-name: pulse;
  animation-duration: 1s; 
  animation-iteration-count: 4;
  animation-timing-function: ease-in-out;
  transform-origin: center; 
}
.heart-text {
  font-family: "Oswald", sans-serif; 
  font-size: 14px; 
  fill: white; 
  user-select: none; 
  cursor:pointer;
}




/* ================================
   MEDIA QUERIES
================================ */

/* Small screens: max-width 768px */
@media (max-width: 768px) {
  /* Header & Navigation */
  header {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
  }
  h1, h2 {
    white-space: normal;
  }
  #fancy-heading {
    font-size: clamp(1.3rem, 5vw, 2rem);
  }

  #menu-toggle {
    display: block;
    margin-left: auto;
  }

  nav {
    width: 100%;
    order: 3;
    text-align: right;
  }

  nav ul {
    display: none;
    flex-direction: column;
    background-color: #0e3a33;
    padding: 10px 0;
    width: 100%;
    margin-top: 10px;
    align-items: flex-end;
    gap: 0;
    padding-left: 10px;
  }

  nav ul.show {
    display: flex;
  }

  nav ul li {
    text-align: right;
    width: 100%;
    padding-left: 20px;
  }
  nav a {
    background: none !important;
    border: none !important;
    color: #d9e7df !important;
    padding: 10px 0;
    font-size: 1.1rem;
    width: 100%;
    display: block;           
    text-align: right;         
  }
  nav a:hover {
    background: none !important;
    color: #a3d7ca !important;  
    border: none !important;
  }

 
  .about {
    flex-direction: column;
    text-align: center;
  }

  .about-text {
    text-align: center;
  }

}

/* Extra small screens: max-width 600px */
@media (max-width: 600px) {
  .worked-with {
    flex-direction: column;
    align-items: center;
  }

  /*
  #fancy-heading {
    display: none !important;
  }*/
}

/* Large screens: min-width 1024px */
@media (min-width: 1024px) {
  .logo-container {
    max-width: 400px;
  }
  
}