/*!
Theme Name: starter-theme
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: starter-theme
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

starter-theme is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/* ===== Base / Design Tokens ===== */
:root {
  --primary: #192b3f;
  --accent: #29b6ad;
  --canvas: #f1f7f8;
  --muted: #64717a;
  --border: #d7e1e5;
  --card: #ffffff;
  --display: 'Manrope', sans-serif;
  --body: 'DM Sans', sans-serif;
}

/* ===== Tailwind Token Fallbacks ===== */
.bg-primary { background-color: var(--primary) !important; }
.bg-accent { background-color: var(--accent) !important; }
.bg-canvas { background-color: var(--canvas) !important; }
.text-primary { color: var(--primary) !important; }
.text-accent { color: var(--accent) !important; }
.text-muted { color: var(--muted) !important; }

/* ===== Global Reset / Document Defaults ===== */
html {
  scroll-behavior: smooth;
}

body {
  min-width: 320px;
  overflow-x: hidden;
  background: var(--canvas);
  color: var(--primary);
  font-family: var(--body);
}

::selection {
  background: rgb(41 182 173 / 22%);
  color: var(--primary);
}

/* ===== Shared Typography ===== */
.display {
  font-family: var(--display);
  letter-spacing: -0.045em;
}

.eyebrow {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

/* ===== Navigation / Focus States ===== */
.glass-nav {
  border-bottom: 1px solid rgb(215 225 229 / 70%);
  background: rgb(241 247 248 / 82%);
  backdrop-filter: blur(18px);
}

.nav-link {
  position: relative;
  color: rgb(25 43 63 / 72%);
  transition: color 0.25s ease;
}

.nav-link::after {
  position: absolute;
  right: 0;
  bottom: -8px;
  left: 0;
  height: 2px;
  background: var(--accent);
  content: '';
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s ease;
}

.nav-link:hover,
.nav-link.active {
  color: var(--primary);
}

.nav-link:hover::after,
.nav-link.active::after {
  transform: scaleX(1);
}

.focus-ring:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 4px;
}

/* ===== Hero Background / Decorative Motion ===== */
.hero-image {
  background-image:
    linear-gradient(90deg, rgb(15 27 41 / 92%) 0%, rgb(15 27 41 / 76%) 46%, rgb(15 27 41 / 28%) 100%),
    url('https://images.pexels.com/photos/3184436/pexels-photo-3184436.jpeg?auto=compress&cs=tinysrgb&w=1800');
  background-position: center;
  background-size: cover;
}

.hero-grid {
  background-image:
    linear-gradient(rgb(255 255 255 / 6%) 1px, transparent 1px),
    linear-gradient(90deg, rgb(255 255 255 / 6%) 1px, transparent 1px);
  background-size: 64px 64px;
}

.float-orb {
  animation: drift 8s ease-in-out infinite;
}

@keyframes drift {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(0, -12px, 0); }
}

/* ===== Service Card Visual Treatment ===== */
.service-card {
  border: 1px solid var(--border);
  background: var(--card);
  transition: transform 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
}

.service-card:hover {
  border-color: rgb(41 182 173 / 48%);
  box-shadow: 0 18px 44px rgb(25 43 63 / 11%);
  transform: translateY(-6px);
}

.service-card img {
  transition: transform 0.55s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.service-card:hover img {
  transform: scale(1.06);
}

.service-icon {
  align-items: center;
  display: inline-flex;
  height: 2.5rem;
  justify-content: center;
  width: 2.5rem;
}

/* ===== Contact Page / Form ===== */
.contact-map {
  background: linear-gradient(135deg, #192b3f, #1e5360);
}

.form-field {
  border: 1px solid var(--border);
  background: var(--card);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.form-field:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgb(41 182 173 / 13%);
  outline: none;
}

/* ===== Entrance Animation ===== */
.reveal {
  animation: reveal 0.75s cubic-bezier(0.2, 0.7, 0.2, 1) forwards;
  opacity: 0;
  transform: translateY(22px);
}

.delay-1 { animation-delay: 0.1s; }
.delay-2 { animation-delay: 0.2s; }
.delay-3 { animation-delay: 0.3s; }
.delay-4 { animation-delay: 0.4s; }

@keyframes reveal {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ===== Reduced Motion Accessibility ===== */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    transition-duration: 0.001ms !important;
  }
}