/* Components CSS - Individual component styles */

/* Header Component */
.header {
  background-color: var(--background-dark);
  padding: var(--spacing-md) var(--spacing-lg);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
  position: relative;
  z-index: 10;
  background-image: linear-gradient(to bottom, rgba(46, 91, 186, 0.05), transparent);
}

.header-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: var(--spacing-xs) 0;
}

/* Logo Styling */
.logo-section {
  display: flex;
  align-items: center;
}

.logo-link {
  display: block;
  transition: transform var(--transition-normal);
}

.logo-link:hover {
  transform: scale(1.05);
}

.logo-image {
  max-height: 50px;
  width: auto;
}

/* Navigation Menu Styling */
.navigation {
  display: flex;
  align-items: center;
}

.navigation .nav-menu {
  display: flex;
  gap: var(--spacing-lg);
  align-items: center;
}

.navigation .nav-menu li {
  position: relative;
}

.navigation .nav-menu a {
  font-size: var(--font-size-nav);
  text-transform: uppercase;
  padding: var(--spacing-xs) var(--spacing-sm);
  border-radius: var(--radius-sm);
  transition: all var(--transition-normal);
  color: var(--text-white);
  font-weight: var(--font-weight-normal);
  letter-spacing: 0.5px;
  position: relative;
}

.navigation .nav-menu a:hover {
  background-color: rgba(255, 255, 255, 0.15);
  color: var(--text-white);
  transform: translateY(-2px);
  text-shadow: 0 0 8px rgba(255, 255, 255, 0.5);
}

.navigation .nav-menu a:focus {
  outline: 2px solid var(--primary-blue);
  outline-offset: 2px;
  background-color: rgba(255, 255, 255, 0.1);
  box-shadow: 0 0 0 2px rgba(46, 91, 186, 0.5);
}

.navigation .nav-menu a:active {
  transform: translateY(0);
  background-color: rgba(255, 255, 255, 0.2);
}

/* Hover effect - underline animation */
.navigation .nav-menu a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 0;
  height: 2px;
  background-color: var(--primary-blue);
  transition: all var(--transition-normal);
  transform: translateX(-50%);
  box-shadow: 0 0 8px rgba(46, 91, 186, 0.8);
}

.navigation .nav-menu a:hover::after {
  width: 80%;
}

/* Hero Section */
.hero-section {
  width: 100%;
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: var(--spacing-xl) var(--spacing-lg);
}

.hero-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--spacing-lg);
  width: 100%;
}

/* Destination Cards */
.destination-card {
  background-color: var(--card-background);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: 0 4px 12px var(--shadow-color);
  transition: transform var(--transition-normal), box-shadow var(--transition-normal), filter var(--transition-normal);
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 550px;
  margin: 0 auto;
  position: relative;
  will-change: transform; /* Performance optimization for animations */
}

.destination-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.1);
  filter: brightness(1.03);
}

/* Add subtle glow effect on hover */
.destination-card::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: var(--radius-md);
  box-shadow: 0 0 0 0 rgba(46, 91, 186, 0);
  opacity: 0;
  transition: opacity var(--transition-normal), box-shadow var(--transition-normal);
  pointer-events: none;
}

.destination-card:hover::after {
  opacity: 1;
  box-shadow: 0 0 20px 2px rgba(46, 91, 186, 0.2);
}

/* Card header with colored bars */
.card-header {
  display: flex;
  height: 10px;
  width: 100%;
  position: relative;
  overflow: hidden;
}

.header-bar {
  flex: 1;
  height: 100%;
  position: relative;
  transition: all var(--transition-normal);
}

.blue-bar {
  background-color: var(--primary-blue);
  background-image: linear-gradient(to right, rgba(255, 255, 255, 0.1), transparent);
}

.red-bar {
  background-color: var(--accent-red);
  background-image: linear-gradient(to left, rgba(255, 255, 255, 0.1), transparent);
}

/* Add subtle shine effect on hover */
.header-bar::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  transition: left 0.8s ease;
}

.destination-card:hover .header-bar::after {
  left: 100%;
}

/* Card image container with proper aspect ratio */
.card-image {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 100%; /* 1:1 square aspect ratio */
  overflow: hidden;
  background-color: #f0f0f0; /* Placeholder color while image loads */
}

.card-image img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow), filter var(--transition-normal);
  filter: brightness(0.95) contrast(1.05);
  /* Prevent layout shifts during image loading */
  contain: paint;
  /* Improve image rendering */
  image-rendering: optimizeQuality;
}

.destination-card:hover .card-image img {
  transform: scale(1.05);
  filter: brightness(1.05) contrast(1.1);
}

/* Card title overlay */
.card-title {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));
  padding: var(--spacing-lg) var(--spacing-md) var(--spacing-md);
  transition: all var(--transition-normal);
}

.destination-card:hover .card-title {
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.9));
  padding-bottom: calc(var(--spacing-md) + 4px); /* Slightly increase padding on hover */
}

.card-title h2 {
  color: var(--text-white);
  font-size: var(--font-size-title);
  font-weight: var(--font-weight-normal);
  letter-spacing: 0.5px;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
  transition: all var(--transition-normal);
  margin-bottom: var(--spacing-xs);
}

.card-description {
  color: var(--text-light-gray);
  font-size: calc(var(--font-size-footer) + 1px);
  opacity: 0.9;
  max-width: 90%;
  margin: 0;
  transform: translateY(0);
  transition: all var(--transition-normal);
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
}

.destination-card:hover .card-title h2 {
  transform: translateY(-2px);
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.7);
  letter-spacing: 0.7px; /* Slightly increase letter spacing for emphasis */
}

.destination-card:hover .card-description {
  opacity: 1;
  transform: translateY(-1px);
}

/* Specific styling for each card */
.china-card .card-image {
  background-color: #f5f5f5; /* Fallback color if image fails to load */
}

.aotearoa-card .card-image {
  background-color: #e8f4f8; /* Fallback color if image fails to load */
}

/* Footer Component */
.footer {
  background-color: var(--background-dark);
  padding: var(--spacing-lg) var(--spacing-lg) calc(var(--spacing-lg) + 10px);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  margin-top: auto;
  background-image: linear-gradient(to top, rgba(46, 91, 186, 0.05), transparent);
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.15);
  position: relative;
  z-index: 5;
}

/* Add subtle texture to footer */
.footer::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3E%3Cpath fill='%23ffffff' fill-opacity='0.03' d='M1 3h1v1H1V3zm2-2h1v1H3V1z'%3E%3C/path%3E%3C/svg%3E");
  opacity: 0.5;
  pointer-events: none;
  z-index: -1;
}

.footer-container {
  max-width: var(--container-max-width);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-md);
  text-align: center;
}

/* Footer Logo Styling */
.footer-logo {
  display: flex;
  align-items: center;
  transition: transform var(--transition-normal);
  position: relative;
}

/* Add subtle divider above logo, matching the certifications */
.footer-logo::before {
  content: '';
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.3), transparent);
}

.footer-logo:hover {
  transform: translateY(-2px);
}

.footer-logo .logo-link {
  display: block;
  position: relative;
}

/* Add subtle glow effect to logo on hover */
.footer-logo .logo-link::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  box-shadow: 0 0 0 rgba(46, 91, 186, 0);
  opacity: 0;
  transition: opacity var(--transition-normal), box-shadow var(--transition-normal);
  pointer-events: none;
}

.footer-logo .logo-link:hover::after {
  opacity: 1;
  box-shadow: 0 0 15px 2px rgba(46, 91, 186, 0.3);
}

.footer-logo .logo-image {
  max-height: 40px;
  width: auto;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
}

/* Footer Info Section */
.footer-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-md);
}

/* Copyright Text Styling */
.copyright {
  font-size: var(--font-size-footer);
  color: var(--text-light-gray);
  opacity: 0.8;
  letter-spacing: 0.5px;
  font-weight: var(--font-weight-normal);
  transition: all var(--transition-normal);
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  margin: 0;
}

.footer:hover .copyright {
  opacity: 1;
  transform: translateY(-1px);
}

/* Certification Badges Section */
.certifications {
  display: flex;
  justify-content: center;
  gap: var(--spacing-lg);
  align-items: center;
  padding: var(--spacing-sm) 0;
  position: relative;
}

.certifications a {
  display: block;
  border-radius: var(--radius-sm);
  transition: all var(--transition-normal);
}

.certifications a:focus {
  outline: 2px solid var(--primary-blue);
  outline-offset: 4px;
  box-shadow: 0 0 0 4px rgba(46, 91, 186, 0.3);
}

/* Add subtle divider above certifications */
.certifications::before {
  content: '';
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.3), transparent);
}

.certification-badge {
  max-height: 45px;
  width: auto;
  border-radius: var(--radius-sm);
  transition: all var(--transition-normal);
  filter: grayscale(0.2) brightness(0.95);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.certification-badge:hover {
  transform: translateY(-3px) scale(1.05);
  filter: grayscale(0) brightness(1.05);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3), 0 0 10px rgba(46, 91, 186, 0.3);
}

/* Contact Page Components */
.contact-section {
  width: 100%;
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: var(--spacing-xl) var(--spacing-lg);
}

.contact-section h1 {
  color: var(--text-white);
  font-size: calc(var(--font-size-title) + 8px);
  font-weight: var(--font-weight-bold);
  text-align: center;
  margin-bottom: var(--spacing-lg);
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
  letter-spacing: 1px;
}

.intro-text {
  text-align: center;
  margin-bottom: var(--spacing-xxl);
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

.intro-text p {
  color: var(--text-light-gray);
  font-size: calc(var(--font-size-nav) + 1px);
  line-height: var(--line-height-normal);
  opacity: 0.9;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

/* Team Grid Layout */
.team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--spacing-xl);
  width: 100%;
  margin-top: var(--spacing-lg);
}

/* Team Member Cards */
.team-member-card {
  background-color: var(--card-background);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3), 0 2px 6px rgba(0, 0, 0, 0.2);
  transition: all var(--transition-normal);
  display: flex;
  flex-direction: column;
  position: relative;
  will-change: transform;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.team-member-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3);
  border-color: rgba(46, 91, 186, 0.3);
}

/* Add subtle glow effect on hover */
.team-member-card::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: var(--radius-lg);
  box-shadow: 0 0 0 0 rgba(46, 91, 186, 0);
  opacity: 0;
  transition: opacity var(--transition-normal), box-shadow var(--transition-normal);
  pointer-events: none;
}

.team-member-card:hover::after {
  opacity: 1;
  box-shadow: 0 0 25px 3px rgba(46, 91, 186, 0.15);
}

/* Member Photo Section */
.member-photo {
  position: relative;
  width: 100%;
  height: 280px;
  overflow: hidden;
  background-color: #f5f5f5;
  display: flex;
  align-items: center;
  justify-content: center;
}

.member-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow), filter var(--transition-normal);
  filter: grayscale(0.1) brightness(0.95);
}

.team-member-card:hover .member-photo img {
  transform: scale(1.05);
  filter: grayscale(0) brightness(1.02);
}

/* Placeholder Text Overlay */
.placeholder-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: rgba(0, 0, 0, 0.8);
  color: var(--text-white);
  padding: var(--spacing-sm) var(--spacing-md);
  border-radius: var(--radius-sm);
  font-size: var(--font-size-footer);
  font-weight: var(--font-weight-bold);
  text-align: center;
  letter-spacing: 0.5px;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(4px);
  transition: all var(--transition-normal);
}

.team-member-card:hover .placeholder-text {
  background-color: rgba(46, 91, 186, 0.9);
  border-color: rgba(255, 255, 255, 0.3);
  transform: translate(-50%, -50%) scale(1.05);
}

/* Member Info Section */
.member-info {
  padding: var(--spacing-lg);
  background: linear-gradient(to bottom, var(--card-background), #f8f9fa);
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
}

/* Add subtle top border to info section */
.member-info::before {
  content: '';
  position: absolute;
  top: 0;
  left: var(--spacing-md);
  right: var(--spacing-md);
  height: 2px;
  background: linear-gradient(to right, var(--primary-blue), var(--accent-red));
  border-radius: 1px;
}

.member-name {
  color: var(--background-dark);
  font-size: calc(var(--font-size-title) + 2px);
  font-weight: var(--font-weight-bold);
  margin-bottom: var(--spacing-xs);
  letter-spacing: 1px;
  text-transform: uppercase;
  transition: all var(--transition-normal);
}

.team-member-card:hover .member-name {
  color: var(--primary-blue);
  transform: translateY(-2px);
}

.member-title {
  color: var(--accent-red);
  font-size: var(--font-size-nav);
  font-weight: var(--font-weight-bold);
  margin-bottom: var(--spacing-md);
  letter-spacing: 0.5px;
  text-transform: uppercase;
  transition: all var(--transition-normal);
}

.team-member-card:hover .member-title {
  transform: translateY(-1px);
  color: #d63384;
}

/* Member Contact Section */
.member-contact {
  margin-top: auto;
  padding-top: var(--spacing-sm);
  border-top: 1px solid rgba(44, 62, 80, 0.1);
}

.contact-details {
  color: var(--background-dark);
  font-size: var(--font-size-footer);
  opacity: 0.8;
  margin: 0;
  line-height: var(--line-height-normal);
  transition: all var(--transition-normal);
}

.team-member-card:hover .contact-details {
  opacity: 1;
  transform: translateY(-1px);
}

/* Active navigation state for contact page */
.contact-page .navigation .nav-menu a[href="contact.html"],
.contact-page .navigation .nav-menu a.current-page {
  background-color: rgba(46, 91, 186, 0.2);
  color: var(--text-white);
  border: 1px solid rgba(46, 91, 186, 0.4);
  box-shadow: 0 0 8px rgba(46, 91, 186, 0.3);
}

.contact-page .navigation .nav-menu a[href="contact.html"]::after,
.contact-page .navigation .nav-menu a.current-page::after {
  width: 80%;
  background-color: var(--primary-blue);
}