/* Reset and Base Styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* General Responsive Image Styling */
img {
    max-width: 100%;
    height: auto;
    display: block; 
}

:root {
    --primary-color: #000000;
    --secondary-color: #1D1D1F;
    --accent-color: #0066CC;
    --accent-color-dark: #004C99;  /* Darker Accent Blue for hovers */
    --text-color: #1D1D1F;
    --light-gray: #F5F5F7;
    --subtle-gray: #86868B;
    --box-shadow: 0 4px 30px rgba(0,0,0,0.05);
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

body {
    font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI', Roboto, sans-serif;
}

main {
    padding-top: 0px; /* Adjust as needed to prevent overlap with fixed header */
}

/* For screen reader only text */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Logo Text Styling */
.logo-link h1 .logo-full-text {
    display: inline; /* Default: show full text */
}

.logo-link h1 .logo-short-text {
    display: none; /* Default: hide short text */
}

/* Logo Icon Styling */
.logo-icon-container {
    background-color: var(--accent-color);
    color: #ffffff; /* White icon color */
    display: inline-flex; /* Or flex, to center the icon */
    align-items: center;
    justify-content: center;
    width: 36px; /* Adjust size as needed */
    height: 36px; /* Adjust size as needed */
    border-radius: 50%; /* Makes it circular */
    margin-right: 10px; /* Space between icon and text */
}

.logo-icon-container .fa-globe {
    font-size: 1.1em; /* Adjust icon size as needed */
    /* Color is inherited from .logo-icon-container */
}

/* ==========================================================================
   Buttons
   ========================================================================== */

/* Base Button Styles */
.btn,
button { /* Apply to <button> elements and anything with .btn class */
    display: inline-block;
    padding: 10px 20px;
    font-family: inherit;
    font-size: 1em;
    font-weight: 500;
    text-align: center;
    text-decoration: none;
    border-radius: 8px;
    border: 1px solid transparent;
    cursor: pointer;
    transition: background-color 0.25s ease-in-out, 
                color 0.25s ease-in-out, 
                border-color 0.25s ease-in-out,
                transform 0.15s ease-in-out,
                box-shadow 0.25s ease-in-out;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

/* Focus-visible state for accessibility */
.btn:focus-visible,
button:focus-visible {
    outline: 2px solid var(--accent-color-dark); /* Using accent-color-dark for focus */
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgba(0, 102, 204, 0.3); /* Optional: softer outer glow for focus */
}

/* Primary Button Style (e.g., main CTAs, Send Message) */
.btn-primary {
    background-color: var(--accent-color);
    color: #ffffff;
    border-color: var(--accent-color);
}

.btn-primary:hover {
    background-color: var(--accent-color-dark);
    border-color: var(--accent-color-dark);
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(0, 76, 153, 0.2); /* Shadow related to accent color */
}

.btn-primary:active {
    transform: translateY(0px) scale(0.98);
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1); /* Inset shadow for pressed effect */
}

/* Secondary Button Style (e.g., "Learn More", "Inquire Now") */
.btn-secondary {
    background-color: var(--primary-color);
    color: #ffffff;
    border-color: var(--primary-color);
}

.btn-secondary:hover {
    background-color: var(--primary-color-dark, #333333); /* Fallback for primary-color-dark */
    border-color: var(--primary-color-dark, #333333);
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15); /* Shadow related to primary color */
}

.btn-secondary:active {
    transform: translateY(0px) scale(0.98);
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Services Section Image Styling */
#services ul li img {
    width: 100%;
    height: 200px; /* Adjust this value as needed for desired height */
    object-fit: cover;
    object-position: center;
    border-radius: 8px; /* Consistent with other potential image stylings */
    margin-bottom: 15px; /* Space below image before text */
}

.mobile-nav-toggle {
  display: block; /* Visible by default, hidden in desktop media query */
  background: transparent;
  border: 0;
  color: var(--text-color); /* Ensure this contrasts with header bg */
  cursor: pointer;
  padding: 0.25em; /* Adjust padding if needed */
  width: 40px; /* Explicit width */
  height: 40px; /* Explicit height */
  line-height: 40px; /* Center icon vertically if it's a direct child */
  text-align: center; /* Center icon horizontally */
  z-index: 1001;
  position: absolute;
  top: 10px; /* Adjust to vertically align with logo/title */
  right: 15px; /* Adjust spacing from edge */
}

.mobile-nav-toggle i { /* Target the icon directly */
  font-size: 1.5rem; /* Explicit size for the icon, e.g., 24px if 1rem=16px */
  vertical-align: middle; /* Helps if line-height isn't enough */
}

/* Enhanced Header */
.origin-badge, .language-badge {
  display: inline-flex;
  align-items: center; /* Vertically center content */
  justify-content: center; /* Horizontally center content */
  background: #f5f8fa; /* Base for language-badge, origin-badge overrides */
  color: #0066cc; /* Base for language-badge, origin-badge overrides */
  border-radius: 20px;
  padding: 6px 18px; /* Horizontal padding remains, vertical padding is part of height */
  font-size: 1rem;
  font-weight: 500;
  box-shadow: 0 2px 8px rgba(0,102,204,0.06);
  gap: 10px;
  height: 38px; /* Explicit height for both badges */
  box-sizing: border-box; /* Include padding and border in the element's total width and height */
  flex: 1; /* Make badges share space equally */
  margin-bottom: 0; /* Remove bottom margin as .hero-badges now controls it */
}

.hero-badges {
    display: flex; 
    flex-wrap: wrap; 
    gap: 15px; 
    margin-bottom: 35px; 
    justify-content: flex-start; /* Align with left-aligned text content */
}

.origin-badge, .language-badge {
    margin-bottom: 0; /* Remove bottom margin as .hero-badges now controls it */
}

.origin-badge {
  background: #fff7e6;
  color: #e67e22;
  margin-right: 0; /* Remove right margin as gap is used in .hero-badges */
}
.origin-badge .flag {
  height: 20px; /* Set to 20px */
  width: auto;  /* Allow width to adjust based on aspect ratio */
  /* margin-right: 8px; /* Removed as 'gap' on parent badge handles spacing */
  /* border-radius: 50%; /* REMOVED to stop circular clipping */
  /* object-fit: cover; /* REMOVED */
}
.language-badge i {
  font-size: 1.25em; /* Approx 20px if 1rem = 16px */
}

header {
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    position: fixed;
    width: 100%;
    z-index: 1000;
    padding: 20px 5%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: var(--transition);
}

header.scrolled {
    background: rgba(255, 255, 255, 0.95);
    box-shadow: var(--box-shadow);
}

header h1 {
    font-size: 1.5em; /* Or adjust as needed */
    font-weight: 600; /* Semi-bold font weight */
    letter-spacing: 0px; /* Neutral letter spacing */
    display: flex; /* For aligning icon and text */
    align-items: center; /* Vertically align icon and text */
    gap: 10px; /* Space between icon and text */
    margin: 0; /* Remove default h1 margins */
    color: var(--text-color); /* Ensure text color is set */
}

header a.logo-link,
header a.logo-link:hover {
    text-decoration: none;
    color: inherit; /* Inherit color from parent h1 */
}

header h1 .logo-icon-container i { /* Corrected selector for the globe icon */
    font-size: 1.2em; /* Icon slightly larger than text's 1em base within h1 */
    background: linear-gradient(145deg, var(--accent-color-dark) 0%, var(--accent-color) 50%, #4da6ff 100%); /* Sleek gradient */
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-fill-color: transparent; /* Standard property for text clipping */
    /* Consider a very subtle drop shadow for depth if needed later */
    /* text-shadow: 0px 1px 3px rgba(0,0,0,0.1); */
}

nav ul#primary-navigation {
    /* display: flex; */ /* Original - now handled by mobile-first and media query */
    gap: 40px; /* This gap will apply when display is flex (desktop or active mobile) */
    list-style: none;
    /* New styles for mobile-first approach */
    display: none; /* Hidden by default on mobile */
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(255, 255, 255, 0.98); /* Slightly transparent white for overlay */
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 1000; 
    padding: 0; 
    margin: 0; 
    transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
    transform: translateX(100%); /* Start off-screen */
    opacity: 0;
}

nav ul li a {
    color: var(--text-color);
    text-decoration: none;
    font-size: 0.95em;
    font-weight: 400; 
    position: relative;
    padding: 8px 0;
    transition: color 0.3s ease; /* Added for text color transition */
}

nav ul li a:hover {
    color: var(--accent-color); /* Text turns blue on hover */
}

nav ul li a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%; /* Start animation from center */
    transform: translateX(-50%); /* Align center */
    width: 0;
    height: 2px;
    background: var(--accent-color);
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1); /* Only transition width */
}

nav ul li a:hover::after,
nav ul li a.nav-active::after { /* Also show underline for active link */
    width: 100%;
}

nav ul#primary-navigation li a.nav-active {
    color: var(--accent-color); /* Keep text blue for active link */
    font-weight: 500; /* Ensure active link is bolder */
}

/* --- NEW RULES FOR ACTIVE MOBILE NAV --- */
nav ul#primary-navigation.active {
    display: flex; /* Show when active */
    transform: translateX(0); /* Slide in */
    opacity: 1;
}

nav ul#primary-navigation.active li a {
    font-size: 1.8em; /* Larger text for mobile overlay */
    padding: 15px 0; /* More touch-friendly padding */
    color: var(--text-color); /* Base color for mobile nav links */
    font-weight: 400; /* Reset font-weight from .nav-active if needed for consistency */
}

nav ul#primary-navigation.active li a:hover {
    color: var(--accent-color); /* Hover color for mobile nav links */
}

/* Hide ::after underlines for links in active mobile nav */
nav ul#primary-navigation.active li a::after {
    display: none;
}

/* The original rule for nav ul li a.nav-active continues after this insertion point if it had more properties or a closing brace was not part of the target. This insertion specifically targets the line shown. */
nav ul li a.nav-active {
    color: var(--accent-color); /* Keep text blue for active link */
    font-weight: 500; /* Optionally make active link slightly bolder */
}

/* Enhanced Sections */
section {
    max-width: 1200px;
    margin: 0 auto;
    padding: 120px 24px;
    opacity: 0;
    transform: translateY(20px);
    animation: fadeInUp 0.8s ease-out forwards;
}

/* Enhanced Home Section */
#home {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
    text-align: left;
    padding: 160px 5%;
    background: white;
    position: relative;
    overflow: hidden;
}

#home h2 {
    font-size: 4.5em;
    font-weight: 700;
    letter-spacing: -2px;
    line-height: 1.1;
    margin-bottom: 25px; /* Adjusted for slightly tighter spacing */
    background: linear-gradient(135deg, var(--text-color), var(--accent-color));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

#home p { /* General paragraph in hero */
    font-size: 1.4em;
    color: var(--subtle-gray);
    max-width: 550px; /* Ensure this is not too restrictive if text-align: left */
    margin-left: 0; /* Align with h2 if text-align: left */
    margin-right: 0; /* Align with h2 if text-align: left */
    margin-bottom: 30px; /* Space before badges */
    line-height: 1.6;
}

#home .hero-image { /* Style the container div */
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%; /* Make container take full height of grid row */
    overflow: hidden; /* Optional: if image somehow overflows with object-fit */
}

#home .hero-image img {
    width: 100%;
    height: 100%; /* Fill container height */
    object-fit: cover;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
    /* max-width: 100%; /* Not strictly necessary if width is 100% and container handles overflow */
}

#home .cta-group {
    /* display: flex; gap: 20px; /* Assuming these exist or are inherited */
    margin-top: 0; /* Spacing handled by .hero-badges margin-bottom */
}

/* Enhanced CTA Buttons */
.cta-group {
    display: flex;
    gap: 20px;
    margin-top: 20px;
}

.cta-button {
    display: inline-flex;
    align-items: center;
    padding: 16px 32px;
    border-radius: 30px;
    font-size: 1.1em;
    font-weight: 500;
    text-decoration: none;
    transition: var(--transition);
    position: relative;
    overflow: hidden;
}

.cta-button:first-child {
    background: var(--accent-color);
    color: white;
}

.cta-button.secondary {
    background: var(--light-gray);
    color: var(--text-color);
}

.cta-button::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255,255,255,0.1);
    transform: translateX(-100%);
    transition: var(--transition);
}

.cta-button:hover::before {
    transform: translateX(0);
}

/* Styles for 'Inquire Now' buttons for UI consistency and alignment - SUBTLE VERSION */
.service-cta {
    /* Sizing appropriate for cards, overrides .cta-button where needed */
    padding: 10px 22px;
    font-size: 0.9em;

    /* Appearance to match .cta-button.secondary for subtlety */
    background-color: var(--light-gray); /* #F5F5F7 */
    color: var(--text-color);
    border: 1px solid #e0e0e0; /* Subtle border */
    border-radius: 30px; /* Ensure border-radius is consistent if not inherited perfectly */

    /* Alignment: Pushes button to the bottom of the flex container (li) */
    margin-top: auto; /* This is key for vertical alignment across cards */
    
    /* Inherits transition and shimmer hover effect from .cta-button */
}

.service-cta:hover,
.service-cta:focus {
    background-color: var(--accent-color); /* Accent blue background on hover/focus */
    color: white;                          /* White text for contrast */
    border-color: var(--accent-color);     /* Border matches accent blue */
    /* The ::before shimmer from .cta-button will still apply */
}

/* Enhanced Services Section */
#services h2 {
    text-align: center;
    font-size: 2.8em; /* Adjusted font size for prominence */
    font-weight: 600;
    color: var(--text-color);
    margin-bottom: 60px; /* Increased bottom margin */
}

#services {
    background: white;
    border-radius: 30px;
    margin: 40px auto;
    box-shadow: var(--box-shadow);
    padding: 80px 24px; /* Reduced top/bottom padding */
}

#services ul {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 30px;
    padding: 0;
    list-style: none;
}

#services li {
    padding: 30px; /* Reduced padding */
    border: 1px solid #e8e8e8; /* Added subtle border */
    border-radius: 20px;
    background: var(--light-gray);
    transition: var(--transition);
    display: flex;
    flex-direction: column;
}

#services li:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 35px rgba(0,0,0,0.1); /* Enhanced shadow on hover */
    background: white;
    border-color: transparent; /* Make border transparent on hover */
}

#services h3 {
    font-size: 1.8em;
    margin-bottom: 20px;
    font-weight: 600;
    letter-spacing: -0.5px;
}

#services li p { /* Style for description text in service cards */
    font-size: 0.95em; /* Or adjust as needed */
    line-height: 1.6;
    color: var(--subtle-gray); /* Or var(--text-color) if more contrast is desired */
    margin-bottom: 25px; /* Space above the button */
    flex-grow: 1; /* Allows paragraph to take available space, helping button alignment */
}

#services li img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: 12px;
    margin-bottom: 20px;
    transition: transform 0.3s ease; /* Add transition for smooth scaling */
}

#services li:hover img {
    transform: scale(1.03); /* Slight zoom on image on card hover */
}

#services li p {
margin-bottom: 20px; /* Ensures space above the button */
flex-grow: 1; /* Allows paragraph to take up available space */
}

/* Enhanced Contact Form */

#contact h2 {
text-align: center;
font-size: 2.8em;
font-weight: 600;
color: var(--text-color);
margin-bottom: 60px;
}

#contact {
    /* Overrides general section padding */
    padding-top: 80px;
    padding-bottom: 80px;
}

/* Section Separation */
#about,
#contact {
    border-top: 1px solid #e0e0e0; /* Subtle top border for separation */
}

#about .about-content p {
    font-size: 1.05em; /* Slightly larger for readability, adjust as needed */
    line-height: 1.7; /* More generous line height */
    margin-bottom: 1.5em; /* Increased space between paragraphs */
    color: var(--subtle-gray); /* Consistent with other body text */
}

#about .about-content p:last-child {
    margin-bottom: 0; /* Remove margin from the last paragraph in the block */
}
.contact-wrapper {
    background: white;
    border-radius: 30px;
    padding: 60px;
    box-shadow: var(--box-shadow);
}

form {
    display: grid;
    gap: 24px;
}

input, textarea {
    width: 100%;
    padding: 16px;
    border: 1px solid #e0e0e0; /* Subtle visible border */
    border-radius: 12px;
    background: var(--light-gray);
    font-size: 1em;
    transition: var(--transition);
}

input:focus, textarea:focus {
    border-color: var(--accent-color);
    outline: none;
    background: white;
}

textarea {
    min-height: 150px;
    resize: vertical;
}

button[type="submit"] {
    background: var(--accent-color);
    color: white;
    border: none;
    padding: 20px;
    border-radius: 12px;
    font-size: 1.1em;
    font-weight: 500;
    cursor: pointer;
    transition: var(--transition);
}

button[type="submit"]:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(0,102,204,0.2);
}

/* Integrated Footer Style */
footer {
    text-align: center;
    padding: 25px 0;
    background: var(--light-gray); /* Match page background */
    color: var(--subtle-gray);    /* Default text color for light background */
    font-size: 0.9em;
    border-top: 1px solid #ddd;   /* Lighter top border */
}

.footer-content p {
    margin: 0;
}

.footer-links {
    margin-bottom: 8px;
}

.footer-links a,
.footer-copyright {
    color: var(--subtle-gray); /* Base color for links and copyright */
    text-decoration: none;
}

.footer-links a {
    color: var(--text-color); /* Darker, more prominent link color */
    margin: 0 5px;
}

.footer-links a:hover {
    color: var(--accent-color); /* Accent color on hover */
    text-decoration: underline;
}

.footer-divider {
    color: #ccc; /* Light divider color */
    margin: 0 8px;
}

.footer-copyright {
    font-size: 0.9em; /* Already good */
    color: #aaa; /* Slightly lighter than main footer text for subtlety */
}

/* Responsive Design */

/* --- Our Story Section Enhancements --- */

.contact-card {
  background: #fff;
  border-radius: 32px;
  box-shadow: 0 8px 40px rgba(0,0,0,0.10);
  max-width: 600px;
  margin: 0 auto 64px auto;
  padding: 40px 32px 32px 32px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 32px;
}

.contact-service-buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  font-size: 1em;
  font-weight: 500;
}

.contact-service-buttons span {
  margin-right: 10px;
  color: var(--accent-color, #0066cc);
  font-weight: 600;
}

.contact-service-buttons button {
  background-color: var(--light-gray);
  color: var(--text-color);
  border: 1px solid #ddd;
  border-radius: 20px;
  padding: 8px 20px;
  font-size: 1em;
  font-family: inherit;
  cursor: pointer;
  transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease, transform 0.18s cubic-bezier(.4,0,.2,1);
  will-change: background-color, border-color, transform;
}

.contact-service-buttons button.selected,
.contact-service-buttons button:active {
  animation: btn-pop 0.22s cubic-bezier(.4,0,.2,1);
}

@keyframes btn-pop {
  0% { transform: scale(1); }
  50% { transform: scale(1.07); }
  100% { transform: scale(1); }
}


.contact-service-buttons button:not(.selected):hover {
  background-color: #e0e0e0;
  border-color: #ccc;
  color: var(--text-color);
}

.contact-service-buttons button.selected {
  background-color: var(--accent-color);
  color: white;
  border: 1px solid var(--accent-color);
}

.contact-service-buttons .service-symbol {
  display: inline-block;
  font-weight: bold;
  font-size: 1.1em;
  margin-right: 7px;
  vertical-align: middle;
  color: #0066cc;
  transition: color 0.33s cubic-bezier(.4,0,.2,1),
              transform 0.33s cubic-bezier(.4,0,.2,1),
              opacity 0.33s cubic-bezier(.4,0,.2,1);
  will-change: color, transform, opacity;
  opacity: 1;
  transform: scale(1);
}
.contact-service-buttons button.selected .service-symbol {
  color: #fff;
  animation: symbol-toggle 0.33s cubic-bezier(.4,0,.2,1);
}
@keyframes symbol-toggle {
  0% { opacity: 0; transform: scale(0.7); }
  70% { opacity: 1; transform: scale(1.15); }
  100% { opacity: 1; transform: scale(1); }
}


.contact-service-buttons button:hover,
.contact-service-buttons button:focus {
  background: #003366;
  outline: none;
}

@media (max-width: 700px) {
  .contact-card {
    padding: 24px 8px 24px 8px;
    max-width: 98vw;
  }
  .contact-service-buttons {
    gap: 8px;
    font-size: 0.98em;
  }
}

.about-card {
    background: #fff;
    border-radius: 32px;
    box-shadow: 0 8px 40px rgba(0,0,0,0.10);
    max-width: 900px;
    margin: 0 auto 64px auto;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

.about-card-image {
    width: 100%;
    aspect-ratio: 16/6;
    object-fit: cover;
    display: block;
    border-top-left-radius: 32px;
    border-top-right-radius: 32px;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    box-shadow: none;
    border: none;
    background: #f5f5f7;
    transition: transform 0.3s ease-out;
}

.about-card-image:hover {
    transform: scale(1.02);
}

.about-content {
    border-radius: 0 0 32px 32px;
    box-shadow: none;
    border-left: none;
    padding: 40px; /* Adjusted padding */
    display: flex;
    flex-direction: column;
    justify-content: center;
    font-family: inherit;
    font-size: 1.1em; /* Adjusted font size */
    color: var(--text-color);
    margin: 0;
    max-width: 100%;
    line-height: 1.7; /* Base line-height for content */
}

.about-content h2 {
    font-size: 2.2em; 
    font-weight: 600; 
    color: var(--text-color); 
    margin-bottom: 0.75em; 
    line-height: 1.3; 
}

.about-content p {
    margin-bottom: 1em; /* Adjusted margin */
}

.about-content p:last-of-type {
    margin-bottom: 0;
}

.about-content .highlight {
    background-color: #e7f0fa; 
    color: var(--accent-color); 
    padding: 0.15em 0.4em; 
    border-radius: 5px; 
    font-weight: 600; 
}

.about-content .signature {
    font-style: italic;
    text-align: right;
    margin-top: 1.5em; 
    font-size: 0.9em;  
    color: var(--subtle-gray); 
}

/* Media Query for two-column layout (Temporarily Commented Out for Debugging) */
/*
@media (min-width: 768px) {
    .about-card {
        flex-direction: row; 
        max-width: 1000px; 
    }

    .about-card-image {
        flex: 0 0 40%; 
        aspect-ratio: 3/4; 
        border-radius: 32px 0 0 32px; 
    }

    .about-content {
        flex: 1 1 60%; 
        padding: 48px; 
        border-radius: 0 32px 32px 0; 
        justify-content: flex-start; 
    }

    .about-content h2 {
        margin-top: 0; 
    }
}
*/


.highlight {
    color: var(--accent-color);
    font-weight: 600;
    border-bottom: 2px solid var(--accent-color);
    background: none;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
}

.signature {
    display: block;
    margin-top: 32px;
    text-align: right;
    font-size: 1.1em;
    font-weight: 500;
    color: var(--subtle-gray);
    font-family: inherit;
    letter-spacing: 0.5px;
    opacity: 1;
}


.about-header-image {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 36px;
}
.about-header-image img {
    width: 100%;
    max-width: 1100px;
    aspect-ratio: 16/6;
    object-fit: cover;
    border-radius: 32px;
    box-shadow: 0 6px 36px rgba(0,0,0,0.10);
    border: 1px solid #e5e5e5;
    background: #f5f5f7;
}



/* About Section Layout */
#about {
    padding: 60px 5%;
}

.about-card {
    display: flex;
    align-items: center;
    gap: 40px;
    background: #ffffff;
    padding: 40px;
    border-radius: 16px;
    box-shadow: var(--box-shadow);
}

.about-card-image { /* This is the <img> tag itself */
    flex: 0 0 40%;
    max-width: 40%;
    height: auto;
    border-radius: 12px;
    object-fit: cover;
}

.about-content {
    flex: 1;
}

.about-content h2 {
    margin-bottom: 20px;
}

.about-content p {
    margin-bottom: 15px;
}

/* Services Section Grid Layout */
#services ul {
    list-style: none;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
}

#services li {
    background: #ffffff;
    border-radius: 12px;
    padding: 25px;
    box-shadow: var(--box-shadow);
    display: flex;
    flex-direction: column;
    text-align: center;
}

#services li img {
    max-width: 100%; /* Ensure it doesn't overflow card */
    height: auto;    /* Maintain aspect ratio */
    object-fit: scale-down; /* Display at natural size or scale down if too big */
    margin: 0 auto 15px auto; /* Center image and add space below */
    border-radius: 8px;
}

#services li h3 {
    font-size: 1.5em;
    margin-bottom: 10px;
    color: var(--text-color);
}

#services li p {
    font-size: 1em; /* Will be overridden by mobile styles */
    line-height: 1.6;
    margin-bottom: 20px;
    flex-grow: 1;
}

#services li .cta-button {
    margin-top: auto;
}

@media (max-width: 900px) {
    .about-content {
        padding: 32px 12px 32px 20px;
    }
}
@media (max-width: 700px) {
    .about-content {
        padding: 20px 0;
        border-left-width: 3px;
    }
    .about-image img {
        margin-top: 16px;
        max-width: 100%;
    }
}


@media (max-width: 768px) {
    main {
        padding-top: 0px; /* Default is 100px, reduced for smaller header on mobile */
    }

    header {
        flex-direction: row; /* Change back to row to align logo and toggle */
        justify-content: space-between; /* Space between logo and toggle */
        align-items: center;
    }

    /* Mobile Logo Text */
    .logo-link h1 .logo-full-text {
        display: none;
    }

    .logo-link h1 .logo-short-text {
        display: inline; /* Show 'USS' on mobile */
    }

    header .logo-link .logo-icon-container {
        margin-right: 5px; /* Reduced space for mobile */
    }

    .mobile-nav-toggle {
        display: block; /* Show the toggle button */
    }

    #primary-navigation { /* The ul */
        display: none; /* Hidden by default */
        flex-direction: column;
        position: absolute;
        top: 100%; /* Position below the header */
        left: 0;
        right: 0;
        background: rgba(255, 255, 255, 0.98); /* Semi-transparent white */
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
        padding: 10px 0; /* Reduced top/bottom padding, no side padding as links will have it */
        margin-top: 0; /* Reset margin from desktop */
        gap: 0; /* Reset gap from desktop */
        box-shadow: 0 4px 10px rgba(0,0,0,0.1);
        z-index: 1000;
    }

    #primary-navigation.active { /* Class to show the navigation */
        display: flex;
    }

    #primary-navigation li {
        width: 100%;
    }

    #primary-navigation li a {
        display: block; /* Make links take full width */
        padding: 12px 20px; /* Adjust padding for tappability */
        text-align: center; /* Center text */
        font-size: 1.1em;
        border-bottom: 1px solid #f0f0f0; /* Lighter separator lines */
        color: var(--text-color);
    }

    #primary-navigation li:last-child a {
        border-bottom: none; /* Remove border from last item */
    }

    /* Hide desktop nav's underline effect on mobile if not desired */
    #primary-navigation li a::after {
        display: none; 
    }

    /* General Section Typography for Mobile */
    section h2 {
        font-size: 2.2em;
        margin-bottom: 0.8em;
        line-height: 1.2; /* Added for better heading flow */
    }

    section p {
        font-size: 1.1em;
        margin-bottom: 1em;
    }

    #home h2 {
        font-size: 3em;
    }

    #home p {
        font-size: 1.2em;
        padding: 0 20px;
    }

    .cta-group {
        flex-direction: column;
    }

    .contact-wrapper {
        padding: 30px;
    }

    #home {
        grid-template-columns: 1fr;
        text-align: center;
        padding: 120px 24px;
    }

    .hero-image {
        order: -1;
        height: 300px;
        margin: 0 auto;
        max-width: 100%;
    }

    .hero-image img {
        height: 300px;
        width: 100%;
        object-fit: cover;
    }

    .about-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .about-image {
        order: -1;
    }

    .origin-badge {
        margin: 0 auto 20px;
    }

    /* Services Section Mobile Layout */
    #services ul {
        grid-template-columns: 1fr; /* Stack to a single column */
        gap: 20px; /* Adjust gap for mobile */
    }

    #services li {
        padding: 20px; /* Adjust padding for mobile */
    }

    #services li h3 {
        font-size: 1.3em; /* Adjust h3 size for mobile */
    }
    /* section p already handles general paragraph font size for mobile */

    /* Contact Section Mobile Layout */
    #contact {
        padding: 40px 5%;
    }

    .contact-card {
        padding: 25px;
    }

    .contact-service-buttons {
        flex-direction: column; /* Stack the span and buttons */
        align-items: stretch; /* Make buttons full width */
        gap: 12px;
    }

    .contact-service-buttons span {
        margin-bottom: 5px; /* Space below the 'I'm interested in' text */
        text-align: center;
        margin-right: 0; /* Remove right margin when stacked */
    }

    .select-multiple-cue-container {
        text-align: center; /* Center the cue text on mobile */
        margin-bottom: 15px; /* Adjust spacing for mobile if needed */
    }

    .contact-service-buttons button {
        width: 100%; /* Make buttons full width */
        padding: 12px 15px; /* Larger tap target */
        font-size: 1em;
    }

    #contactForm button[type="submit"] {
        width: 100%; /* Full width submit button */
        padding: 15px;
        justify-self: stretch; /* Make button take full grid cell width */
    }
}

    /* About Section Mobile Layout */
    .about-card {
        flex-direction: column;
        padding: 25px;
        gap: 25px;
    }

    .about-card-image { /* This is the <img> tag */
        flex-basis: auto; /* Reset flex-basis */
        width: 100%; /* Make image take full width of card */
        max-width: 100%; /* Ensure it's not wider than card */
        margin-bottom: 20px; /* Space below image when stacked */
    }
    /* .about-content h2 and p will inherit mobile typography from general section rules */

/* Contact Section Layout */
#contact {
    padding: 60px 5%;
    text-align: center; /* Center the H2 */
    margin-bottom: 60px; /* Space before the footer or end of page */
}

#contact h2 {
    margin-bottom: 40px;
}

.contact-card {
    background: #ffffff;
    padding: 40px;
    border-radius: 16px;
    box-shadow: var(--box-shadow);
    max-width: 800px; /* Max width for the card */
    margin: 0 auto; /* Center the card */
    text-align: left; /* Reset text-align for card content */
}

.contact-service-buttons {
    margin-bottom: 30px;
    display: flex;
    flex-wrap: wrap; /* Allow buttons to wrap */
    gap: 10px;
    align-items: center;
}

.contact-service-buttons span {
    /* margin-right: 10px; */ /* No longer needed if cue handles spacing */
    font-weight: 500;
    color: var(--text-color-dark);
}

.contact-prompt-line {
    width: 100%; /* Ensures this line takes full width, pushing buttons below */
    margin-bottom: 15px; /* Space between this line and the buttons */
    /* text-align: left; */ /* Or center, depending on desired alignment */
}

.select-multiple-cue {
    font-size: 0.85em;
    font-weight: normal; /* Or keep bold if preferred */
    font-style: italic;
    color: var(--text-color-light);
    margin-left: 8px; /* Adds space after "I'm interested in:" */
}

.contact-service-buttons button {
    /* Base styles from 'button' selector are inherited (font, base padding, transitions etc.) */
    background-color: #f0f0f0;
    color: var(--text-color-dark);
    border: 1px solid #ddd;
    padding: 8px 15px;   /* Specific padding */
    border-radius: 20px; /* Specific radius */
    font-size: 0.9em;    /* Specific font size */
    /* cursor: pointer; is inherited */
    /* transition: is inherited and more specific now */
}

.contact-service-buttons button:hover { /* Hover for NON-SELECTED buttons */
    background-color: #e0e0e0; /* Slightly darker grey */
    border-color: #ccc;
    color: var(--text-color-dark);
    transform: translateY(-2px); /* Standard hover lift */
    box-shadow: 0 4px 8px rgba(0,0,0,0.05); /* Softer shadow */
}

.contact-service-buttons button.selected {
    background-color: var(--primary-color); /* Black */
    color: #ffffff;
    border-color: var(--primary-color);
    /* Selected buttons can also have a subtle lift or shadow if desired */
    /* transform: translateY(-2px); */
    /* box-shadow: 0 2px 5px rgba(0,0,0,0.1); */ 
}

.contact-service-buttons button.selected:hover {
    background-color: var(--primary-color-dark, #333333); /* Darken selected state on hover */
    border-color: var(--primary-color-dark, #333333);
    color: #ffffff;
    /* transform: translateY(-2px); /* Maintain or enhance lift */
    /* box-shadow: 0 4px 10px rgba(0,0,0,0.15); /* Enhance shadow */
}

/* Styles for symbols inside service buttons and the contact form itself */
.contact-service-buttons button .service-symbol {
    margin-right: 5px;
    font-weight: bold;
}

#contactForm {
    display: grid;
    gap: 20px;
}

#contactForm input[type="text"],
#contactForm input[type="email"],
#contactForm textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid #ccc;
    border-radius: 8px;
    font-size: 1em;
    box-sizing: border-box; /* Important for width: 100% */
}

#contactForm textarea {
    min-height: 120px;
    resize: vertical;
}

#contactForm button[type="submit"] {
    /* Inherits from global 'button' for:
       - display, font-family, text-align, text-decoration
       - border-radius (8px), base border (1px solid transparent)
       - cursor, base transition properties, appearance
       - font-weight (500)
    */
    background-color: var(--accent-color); /* Consistent with .btn-primary */
    color: #ffffff;                       /* Consistent with .btn-primary */
    border-color: var(--accent-color);    /* Consistent with .btn-primary, overrides base transparent border */
    
    padding: 12px 20px;   /* Specific padding */
    font-size: 1.1em;    /* Specific font size */
    justify-self: start; /* Layout specific for grid item */
    /* transition is now fully inherited from 'button' and is more comprehensive */
}

#contactForm button[type="submit"]:hover {
    background-color: var(--accent-color-dark); /* Consistent with .btn-primary:hover */
    border-color: var(--accent-color-dark);   /* Consistent with .btn-primary:hover */
    color: #ffffff;                           /* Ensure text color remains white */
    transform: translateY(-2px);              /* Consistent with .btn-primary:hover */
    box-shadow: 0 4px 10px rgba(0, 76, 153, 0.2); /* Consistent with .btn-primary:hover */
}

#contactForm button[type="submit"]:active { /* Adding active state */
    background-color: var(--accent-color-dark); /* Can be same as hover or slightly darker if defined */
    border-color: var(--accent-color-dark);
    transform: translateY(0px) scale(0.98);      /* Consistent with .btn-primary:active */
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1); /* Consistent with .btn-primary:active */
}

/* Add additional breakpoint for very small devices */
@media (max-width: 480px) {
    .hero-image {
        height: 200px;
    }

    .hero-image img {
        height: 200px;
    }
}

/* Animations */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Logo Styles */
/* .logo {
  color: var(--accent-color);
  margin-right: 10px;
  font-size: 1.6em;
  vertical-align: middle;
} */

/* New Logo Styles */
.logo-icon-container {
    display: inline-flex; 
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background-color: #e7f0fa; /* Lighter, softer blue */
    border-radius: 50%;
    margin-right: 10px;
}

.logo-icon-container .fas.fa-globe {
    font-size: 18px; /* Adjusted to fit the smaller container */
    background: linear-gradient(45deg, var(--accent-color), #007bff);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    /* text-fill-color: transparent; */ /* Removed as -webkit- is sufficient and to clear lint */
    line-height: 1; /* Helps with precise centering of icon fonts */
}

@media (max-width: 600px) {
  header h1 {
    font-size: 1.1em;
  }
  /* Styles for .logo-icon-container or its icon can be added here if needed for this breakpoint */
  header {
    padding: 12px 3%;
  }
}

.hero-content {
    max-width: 600px;
}

.hero-image {
    position: relative;
    height: 100%;
}

.hero-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 20px;
    box-shadow: var(--box-shadow);
}

/* About Section Updates */


.about-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 20px;
    box-shadow: var(--box-shadow);
}

/* Image Hover Effects */
.hero-image img,
.about-image img,
#services li img {
    transition: var(--transition);
}

.hero-image img:hover,
.about-image img:hover,
#services li img:hover {
    transform: scale(1.02);
}

/* Add this new style for the origin badge */
.origin-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    background: rgba(222, 41, 16, 0.1);
    color: #DE2910;
    border-radius: 20px;
    font-size: 0.9em;
    margin-bottom: 20px;
}

.flag {
    width: 40px;
    height: 32px;
    vertical-align: middle;
}

@media (min-width: 769px) {
    .mobile-nav-toggle {
        display: none !important; /* Force hide on desktop */
    }

    nav ul#primary-navigation {
        display: flex !important; /* Crucial for desktop override */
        position: static;
        width: auto;
        height: auto;
        background: transparent;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        flex-direction: row;
        align-items: center; 
        justify-content: flex-start; /* Default alignment, adjust as needed */
        gap: 40px; 
        padding: 0; 
        margin: 0; 
        transform: none; 
        opacity: 1; 
        transition: none; 
    }

    /* Reset active state transforms for desktop, as nav is always visible */
    nav ul#primary-navigation.active {
        transform: none;
    }

    /* Restore original link styles for desktop */
    nav ul#primary-navigation li a {
        position: relative; /* For ::after positioning */
        font-size: 0.95em;
        padding: 8px 0;
        color: var(--text-color);
        font-weight: 400; /* Base font-weight */
    }

    nav ul#primary-navigation li a:hover {
        color: var(--accent-color);
    }
    
    nav ul#primary-navigation li a.nav-active {
       color: var(--accent-color);
       font-weight: 500; /* Active link font-weight */
    }

    /* Restore ::after underlines for desktop */
    nav ul#primary-navigation li a::after {
       content: '';
       display: block; 
       width: 0; /* Initial width for animation */
       height: 2px; /* Thickness of the underline */
       position: absolute; /* Needed for bottom positioning */
       bottom: -2px; /* Position underline slightly below text */
       left: 50%; /* Center the underline */
       transform: translateX(-50%); /* Adjust for centering */
       background: var(--accent-color);
       transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }
   nav ul#primary-navigation li a:hover::after,
   nav ul#primary-navigation li a.nav-active::after {
       width: 100%; /* Underline on hover/active for desktop */
   }
}

/* Privacy Policy Page Styles */
.content-section {
    padding: 40px 20px;
    max-width: 900px;
    margin: 40px auto;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: var(--box-shadow);
}

.content-section h2 {
    font-size: 2.5em;
    color: var(--text-color);
    margin-bottom: 30px;
    text-align: center;
}

.content-section h3 {
    font-size: 1.8em;
    color: var(--text-color);
    margin-top: 30px;
    margin-bottom: 15px;
}

.content-section p {
    font-size: 1.1em;
    line-height: 1.7;
    color: var(--text-color-light, #555);
    margin-bottom: 15px;
}

.content-section p strong {
    color: var(--text-color);
}

.content-section em {
    color: var(--subtle-gray);
    font-style: italic;
}

/* Style for the 'Last Updated' date paragraph */
.content-section h2 + p {
    text-align: center; /* Center it like the H2 */
    margin-top: -15px;  /* Adjust to bring it closer to H2 */
    margin-bottom: 40px; /* More space before the first H3 */
    font-size: 0.9em;   /* Make it slightly smaller */
}

/* The 'Last Updated' text itself (already italic via <em>) */
.content-section h2 + p em {
    color: var(--subtle-gray);
}

/* Adjust H3 margins for better section separation */
.content-section h3 {
    font-size: 1.8em;
    color: var(--text-color);
    margin-top: 40px; /* Increased from 30px */
    margin-bottom: 20px; /* Increased from 15px */
}

/* New styles for H4 sub-headings */
.content-section h4 {
    font-size: 1.4em;
    color: var(--text-color);
    font-weight: 600;
    margin-top: 30px;
    margin-bottom: 10px;
}

/* Styles for unordered lists */
.content-section ul {
    list-style-type: disc;
    margin-left: 20px;
    padding-left: 20px;
    margin-bottom: 20px;
}

.content-section ul li {
    margin-bottom: 10px;
    line-height: 1.6;
    color: var(--text-color-light, #555);
}

/* Ensure strong and em tags within paragraphs maintain their existing styles */
.content-section p strong {
    color: var(--text-color);
    font-weight: 600;
}

/* Horizontal rule for section separation */
.content-section hr {
    border: 0;
    height: 1px;
    background-color: var(--light-gray); /* A subtle line color */
    margin: 40px 0; /* Space above and below the line */
}

.placeholder-notice {
    background-color: var(--light-gray);
    border-left: 4px solid var(--accent-color);
    padding: 15px;
    margin-top: 20px;
    border-radius: 4px;
}

.placeholder-notice strong {
    color: var(--accent-color);
}

/* Styling for links in the footer, if not already covered by global styles */
footer .footer-links a, footer p a {
    color: var(--accent-color);
    text-decoration: none;
    transition: color 0.3s ease;
}

footer .footer-links a:hover, footer p a:hover {
    color: var(--accent-color-dark);
    text-decoration: underline;
}

/* Push down main content on pages like privacy policy to prevent header overlap */
main:has(#privacy-policy) {
    padding-top: 80px; /* Adjust this value if needed based on actual header height */
}