:root {
  --cream-50: #f7f4ec;
  --cream-100: #efe8d9;
  --navy-050: #eef3fb;
  --navy-700: #11284d;
  --navy-800: #081c40;
  --navy-900: #041126;
  --green-050: #eef7f0;
  --green-400: #8dc9a0;
  --green-600: #2f7a46;
  --green-800: #245936;
  --gold-400: #c79e45;
  --sky-300: #b0ddf2;
  --ink-900: #0d1d35;
  --ink-800: #1d2f4b;
  --ink-700: #2f425f;
  --ink-600: #5b6a84;
  --ink-500: #72809a;
  --ink-400: #97a4b8;
  --text-heading: #0f274b;
  --text-muted: #5b6a84;
  --text-on-dark-muted: rgba(234, 240, 251, 0.84);
  --line-200: rgba(17, 40, 77, 0.12);
  --border-strong: rgba(17, 40, 77, 0.24);
  --red-500: #c54a4a;
  --link: #245936;
  --link-hover: #1a4328;
  --font-display: "Montserrat", sans-serif;
  --font-serif: "Playfair Display", serif;
  --font-body: "Source Sans 3", sans-serif;
  --fs-sm: 0.88rem;
  --fs-body: 1rem;
  --fs-lead: 1.15rem;
  --container-md: 760px;
  --container-lg: 1180px;
  --container-xl: 1320px;
  --section-y: clamp(64px, 9vw, 128px);
  --radius-md: 12px;
  --radius-lg: 18px;
  --radius-xl: 28px;
  --radius-pill: 999px;
  --shadow-sm: 0 2px 10px rgba(8, 28, 64, 0.08);
  --shadow-xs: 0 1px 2px rgba(8, 28, 64, 0.05);
  --shadow-md: 0 10px 24px rgba(8, 28, 64, 0.12);
  --shadow-lg: 0 22px 60px rgba(8, 28, 64, 0.26);
  --dur-base: 180ms;
  --dur-slow: 280ms;
  --ease-out: cubic-bezier(0.22, 0.61, 0.36, 1);
  color-scheme: light;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--cream-50);
  color: var(--ink-700);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

img { max-width: 100%; display: block; }
a { color: var(--link); }
a:hover { color: var(--link-hover); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

.tcla-navlink { transition: color var(--dur-base); }
.tcla-navlink:hover { color: var(--green-800); }
.tcla-phone:hover { color: var(--green-800) !important; }
.tcla-gcell:hover img { transform: scale(1.05); }
.tcla-gcell img { transition: transform var(--dur-slow) var(--ease-out); }
.tcla-gcell:hover .tcla-gzoom { opacity: 1; }
.tcla-flink { transition: color var(--dur-base); }
.tcla-flink:hover { color: #fff; }

@media (max-width: 900px) {
  .tcla-nav, .tcla-phone { display: none !important; }
  .tcla-hero-copy { order: 2; }
  .tcla-stats { grid-template-columns: repeat(2, 1fr) !important; }
  .tcla-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; grid-auto-rows: 180px !important; }
  .tcla-about, .tcla-pricing, .tcla-contact, .tcla-footer {
    grid-template-columns: 1fr !important;
  }
  section [style*="grid-template-columns"] { grid-template-columns: 1fr !important; }
}

@media (max-width: 560px) {
  .tcla-gallery { grid-template-columns: 1fr !important; }
  .tcla-form2 { grid-template-columns: 1fr !important; }
}
