:root {
  --gk-forest: #123F35;
  --gk-forest-deep: #0B2E28;
  --gk-green: #2F8A4D;
  --gk-green-soft: #DCEFE3;
  --gk-mint: #EDF7F0;
  --gk-cream: #F7F5ED;
  --gk-paper: #FFFEFA;
  --gk-ink: #17211D;
  --gk-muted: #68736E;
  --gk-line: #D7DED8;
  --gk-orange: #E66F4D;
  --gk-yellow: #E8C76B;
  --gk-shadow: 0 22px 60px rgba(18, 63, 53, .12);
}

/* Base */
html,
body {
  background: var(--gk-cream) !important;
  color: var(--gk-ink);
}

body {
  --wp--preset--color--contrast: var(--gk-ink);
  --wp--preset--color--base: var(--gk-cream);
  --wp--preset--color--primary: var(--gk-green);
  --wp--preset--color--secondary: var(--gk-forest);
}

a {
  color: var(--gk-forest);
}

a:hover {
  color: var(--gk-green);
}

/* Header / navigation */
header,
.site-header,
.wp-site-blocks > header {
  background: rgba(255, 254, 250, .94) !important;
  border-color: var(--gk-line) !important;
}

nav a,
.wp-block-navigation a,
.site-header a {
  color: var(--gk-ink) !important;
  transition: color .2s ease, opacity .2s ease;
}

nav a:hover,
.wp-block-navigation a:hover,
.site-header a:hover {
  color: var(--gk-green) !important;
}

/* Buttons */
button,
input[type="submit"],
input[type="button"],
.wp-element-button,
.wp-block-button__link,
a.button,
.button {
  background: var(--gk-green) !important;
  color: #fff !important;
  border-color: var(--gk-green) !important;
  border-radius: 999px !important;
  box-shadow: 0 10px 24px rgba(47, 138, 77, .18);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

button:hover,
input[type="submit"]:hover,
input[type="button"]:hover,
.wp-element-button:hover,
.wp-block-button__link:hover,
a.button:hover,
.button:hover {
  background: var(--gk-forest) !important;
  border-color: var(--gk-forest) !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 14px 30px rgba(18, 63, 53, .20);
}

/* Light/secondary buttons */
.wp-block-button.is-style-outline .wp-block-button__link,
.wp-element-button.is-style-outline {
  background: transparent !important;
  color: var(--gk-forest) !important;
  border: 1px solid var(--gk-line) !important;
  box-shadow: none;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-element-button.is-style-outline:hover {
  background: var(--gk-green-soft) !important;
  color: var(--gk-forest) !important;
  border-color: #BBD8C5 !important;
}

/* Common sections/cards */
.wp-block-group,
.wp-block-cover,
.wp-block-columns,
.card,
.service-card,
.service-item {
  border-color: var(--gk-line);
}

.wp-block-cover,
.wp-block-group.has-background {
  border-radius: 28px;
}

/* Hero-style dark panels: keep the premium green rather than flat black */
.wp-block-cover[style*="background-color"],
.has-background[style*="#171717"],
.has-background[style*="#111"],
.has-background[style*="#000"] {
  background-color: var(--gk-forest) !important;
}

/* Text colors often supplied by the theme */
.has-contrast-color,
.has-black-color,
.has-black-color.has-text-color {
  color: var(--gk-ink) !important;
}

/* Form fields */
input,
select,
textarea {
  background: var(--gk-paper) !important;
  color: var(--gk-ink) !important;
  border: 1px solid var(--gk-line) !important;
  border-radius: 14px !important;
}

input:focus,
select:focus,
textarea:focus {
  border-color: #91BFA0 !important;
  box-shadow: 0 0 0 3px rgba(47, 138, 77, .10) !important;
  outline: none !important;
}

/* Accent details */
[class*="accent"],
[class*="eyebrow"],
[class*="label"],
[class*="kicker"] {
  --accent-color: var(--gk-orange);
}

/* Footer */
footer,
.site-footer,
.wp-block-template-part footer {
  background: var(--gk-forest) !important;
  color: #EAF4EE !important;
  border-color: var(--gk-forest) !important;
}

footer a,
.site-footer a,
.wp-block-template-part footer a {
  color: #EAF4EE !important;
}

footer a:hover,
.site-footer a:hover,
.wp-block-template-part footer a:hover {
  color: #BFE4CC !important;
}

/* Small decorative orange marker used sparingly */
.wp-block-separator,
hr {
  border-color: var(--gk-line) !important;
}

::selection {
  background: var(--gk-green-soft);
  color: var(--gk-forest-deep);
}

/* Responsive polish */
@media (max-width: 782px) {
  .wp-block-cover,
  .wp-block-group.has-background {
    border-radius: 20px;
  }

  button,
  input[type="submit"],
  .wp-element-button,
  .wp-block-button__link {
    min-height: 46px;
  }
}
