:root {
  --uhp-forest: #14351f;
  --uhp-leaf: #1f4d2e;
  --uhp-green: #2e6b3e;
  --uhp-sage: #a9c3aa;
  --uhp-cream: #f4f1e9;
  --uhp-mist: #eef0e6;
  --uhp-ink: #26261f;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body {
  margin: 0;
  color: var(--uhp-ink);
  background: var(--uhp-forest);
  font-family: 'Mulish', system-ui, sans-serif;
  overflow-x: hidden;
}
a { color: var(--uhp-green); text-decoration: none; }
a:hover { color: var(--uhp-leaf); }
input, textarea, button { font-family: inherit; }
::selection { color: var(--uhp-cream); background: var(--uhp-green); }

.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block-start: 0; }
.wp-block-post-content { margin: 0; }

@keyframes uhpBlobFloat {
  0%, 100% { transform: scale(1); border-radius: 42% 58% 63% 37% / 43% 38% 62% 57%; }
  33% { transform: scale(1.12); border-radius: 60% 40% 42% 58% / 55% 55% 45% 45%; }
  66% { transform: scale(.94); border-radius: 38% 62% 55% 45% / 62% 40% 60% 38%; }
}
@keyframes uhpMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes uhpFloatSlow { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-22px) rotate(3deg); } }
@keyframes uhpSpinSlow { to { transform: rotate(360deg); } }

/* Header */
.uhp-scroll-progress {
  position: fixed;
  z-index: 1200;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  background: transparent;
}
.uhp-scroll-progress > span {
  display: block;
  width: 0;
  height: 100%;
  background: linear-gradient(90deg, #2e6b3e, #9db59e);
  transform-origin: left;
}
.uhp-header {
  position: fixed;
  z-index: 1100;
  top: 3px;
  right: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 74px;
  padding: 20px clamp(20px, 5vw, 64px);
  background: transparent;
  transition: background .4s, padding .4s, box-shadow .4s, backdrop-filter .4s;
}
.uhp-header.is-scrolled {
  padding: 14px clamp(20px, 5vw, 64px);
  background: rgba(244, 241, 233, .86);
  box-shadow: 0 1px 0 rgba(31, 77, 46, .10);
  backdrop-filter: blur(12px);
}
.uhp-header .wp-block-site-logo { line-height: 0; }
.uhp-header .wp-block-site-logo img {
  display: block;
  width: auto;
  height: 34px;
  max-width: none;
}
.uhp-main-nav { gap: 0; }
.uhp-main-nav .wp-block-navigation__container {
  gap: clamp(16px, 2.6vw, 40px);
}
.uhp-main-nav .wp-block-navigation-item__content {
  color: var(--uhp-leaf);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.uhp-main-nav .wp-block-navigation-item__content:hover { color: var(--uhp-green); }
.uhp-main-nav .uhp-nav-contact > .wp-block-navigation-item__content {
  padding: 11px 22px;
  color: #fff;
  background: var(--uhp-leaf);
  border-radius: 999px;
}
.uhp-main-nav .uhp-nav-contact > .wp-block-navigation-item__content:hover {
  color: #fff;
  background: var(--uhp-green);
}

/* Shared */
.uhp-grain { position: relative; }
.uhp-grain::after {
  content: '';
  position: absolute;
  z-index: 2;
  inset: 0;
  pointer-events: none;
  opacity: .5;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
}
.uhp-eyebrow {
  margin: 0 0 20px;
  color: var(--uhp-green);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .28em;
  text-transform: uppercase;
}
.uhp-display-title {
  margin: 0;
  color: var(--uhp-forest);
  font-family: 'Newsreader', serif;
  font-size: clamp(44px, 7vw, 88px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.025em;
}
.uhp-motion-ready .uhp-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .9s cubic-bezier(.2, .7, .2, 1), transform .9s cubic-bezier(.2, .7, .2, 1);
}
.uhp-motion-ready .uhp-reveal.is-visible { opacity: 1; transform: none; }

/* Hero */
.uhp-hero {
  position: relative;
  display: flex;
  min-height: 100vh;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 150px clamp(20px, 6vw, 80px) 120px;
  overflow: hidden;
  text-align: center;
  background: linear-gradient(180deg, #eef0e4 0%, #f4f1e9 60%, #e9ede0 100%);
}
.uhp-hero > .uhp-hero-inner,
.uhp-scroll-hint { position: relative; z-index: 4; }
.uhp-hero-blob,
.uhp-botanical-ring {
  position: absolute;
  z-index: 1;
  pointer-events: none;
  translate: var(--uhp-parallax-x, 0) var(--uhp-parallax-y, 0);
  will-change: transform, translate;
}
.uhp-hero-blob-one {
  top: -8%;
  right: -6%;
  width: 46vw;
  height: 46vw;
  max-width: 640px;
  max-height: 640px;
  background: radial-gradient(circle at 35% 35%, rgba(157, 181, 158, .55), rgba(46, 107, 62, .16) 70%);
  filter: blur(24px);
  animation: uhpBlobFloat 16s ease-in-out infinite;
}
.uhp-hero-blob-two {
  bottom: -12%;
  left: -8%;
  width: 40vw;
  height: 40vw;
  max-width: 520px;
  max-height: 520px;
  background: radial-gradient(circle at 60% 40%, rgba(46, 107, 62, .30), rgba(20, 53, 31, .05) 72%);
  filter: blur(30px);
  animation: uhpBlobFloat 21s ease-in-out infinite reverse;
}
.uhp-hero-blob-three {
  top: 28%;
  left: 12%;
  width: 22vw;
  height: 22vw;
  max-width: 260px;
  max-height: 260px;
  background: radial-gradient(circle, rgba(203, 217, 201, .7), transparent 70%);
  filter: blur(16px);
  animation: uhpFloatSlow 9s ease-in-out infinite;
}
.uhp-botanical-ring {
  width: min(74vw, 720px);
  height: min(74vw, 720px);
  color: var(--uhp-leaf);
  opacity: .10;
  animation: uhpSpinSlow 90s linear infinite;
}
.uhp-hero-inner { width: 100%; max-width: 1180px; }
.uhp-hero .uhp-eyebrow {
  position: relative;
  margin-bottom: 30px;
  font-size: clamp(11px, 1.4vw, 14px);
  letter-spacing: .34em;
}
.uhp-hero-title {
  position: relative;
  margin: 0;
  color: var(--uhp-forest);
  font-family: 'Newsreader', serif;
  font-size: clamp(92px, 21vw, 260px);
  font-weight: 400;
  line-height: .86;
  letter-spacing: -.03em;
}
.uhp-hero-title sup {
  color: var(--uhp-green);
  font-size: .32em;
  font-weight: 300;
  vertical-align: super;
}
.uhp-hero-tagline {
  position: relative;
  margin: 26px 0 50px;
  color: #5b6b58;
  font-family: 'Newsreader', serif;
  font-size: clamp(22px, 3.4vw, 34px);
  font-style: italic;
}
.uhp-hero-button { position: relative; }
.uhp-hero-button .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 18px 40px;
  color: #fff;
  background: var(--uhp-leaf);
  border-radius: 999px;
  box-shadow: 0 16px 40px rgba(31, 77, 46, .28);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  transition: all .25s;
}
.uhp-hero-button .wp-block-button__link:hover {
  color: #fff;
  background: var(--uhp-green);
  transform: translateY(-2px);
}
.uhp-hero-button .wp-block-button__link::after {
  content: '';
  display: inline-block;
  width: 20px;
  height: 1.5px;
  background: currentColor;
}
.uhp-scroll-hint {
  position: absolute;
  bottom: 30px;
  left: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: #8aa68c;
  transform: translateX(-50%);
}
.uhp-scroll-hint span { font-size: 10px; letter-spacing: .3em; text-transform: uppercase; }
.uhp-scroll-hint i {
  display: block;
  width: 1px;
  height: 44px;
  background: linear-gradient(#8aa68c, transparent);
  animation: uhpFloatSlow 3s ease-in-out infinite;
}

/* Marquee */
.uhp-marquee {
  position: relative;
  padding: 26px 0;
  overflow: hidden;
  color: #cdd9c9;
  background: var(--uhp-forest);
  border-top: 1px solid rgba(255, 255, 255, .06);
}
.uhp-marquee-track {
  position: relative;
  z-index: 3;
  display: flex !important;
  width: max-content;
  max-width: none !important;
  gap: 0 !important;
  animation: uhpMarquee 32s linear infinite;
  will-change: transform;
}
.uhp-marquee-track > p {
  flex: none;
  margin: 0;
  font-family: 'Newsreader', serif;
  font-size: clamp(26px, 3.6vw, 46px);
  font-style: italic;
  white-space: nowrap;
}

/* Manifesto */
.uhp-manifesto {
  position: relative;
  padding: clamp(110px, 16vw, 200px) clamp(20px, 6vw, 80px);
  overflow: hidden;
  color: var(--uhp-mist);
  background: var(--uhp-leaf);
}
.uhp-manifesto-glow {
  position: absolute;
  z-index: 1;
  top: -14%;
  left: -6%;
  width: 50vw;
  height: 50vw;
  max-width: 620px;
  max-height: 620px;
  background: radial-gradient(circle, rgba(157, 181, 158, .22), transparent 70%);
  filter: blur(30px);
  translate: var(--uhp-parallax-x, 0) var(--uhp-parallax-y, 0);
}
.uhp-manifesto-inner { position: relative; z-index: 4; max-width: 1080px; }
.uhp-manifesto .uhp-eyebrow { margin-bottom: 30px; color: var(--uhp-sage); letter-spacing: .3em; }
.uhp-manifesto-text {
  margin: 0;
  color: var(--uhp-cream);
  font-family: 'Newsreader', serif;
  font-size: clamp(30px, 5vw, 62px);
  font-weight: 300;
  line-height: 1.18;
  letter-spacing: -.015em;
}
.uhp-manifesto-text em { color: #cdd9c9; font-style: italic; }

/* Stats */
.uhp-stats {
  position: relative;
  padding: clamp(56px, 8vw, 90px) clamp(20px, 6vw, 80px);
  color: var(--uhp-mist);
  background: var(--uhp-forest);
}
.uhp-stats-grid {
  position: relative;
  z-index: 4;
  display: grid !important;
  max-width: 1180px !important;
  margin: 0 auto;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: clamp(28px, 4vw, 56px);
}
.uhp-stat { text-align: center; }
.uhp-stat-number {
  margin: 0;
  color: var(--uhp-cream);
  font-family: 'Newsreader', serif;
  font-size: clamp(48px, 7vw, 82px);
  line-height: 1;
}
.uhp-stat-label {
  margin: 12px 0 0;
  color: var(--uhp-sage);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
}

/* About */
.uhp-about {
  position: relative;
  padding: clamp(100px, 13vw, 170px) clamp(20px, 6vw, 80px);
  background: var(--uhp-cream);
}
.uhp-about-inner { max-width: 1180px !important; margin: 0 auto; }
.uhp-about-intro {
  display: grid !important;
  align-items: end;
  margin-bottom: clamp(56px, 8vw, 96px);
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: clamp(30px, 5vw, 70px);
}
.uhp-about .uhp-display-title { font-size: clamp(42px, 6.4vw, 80px); }
.uhp-about-summary {
  max-width: 420px;
  margin: 0;
  color: #55554a;
  font-size: 17px;
  line-height: 1.7;
}
.uhp-card-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(18px, 2vw, 28px);
}
.uhp-info-card {
  position: relative;
  min-width: 0;
  padding: clamp(34px, 4vw, 52px);
  overflow: hidden;
  background: #fbfaf5;
  border: 1px solid rgba(31, 77, 46, .10);
  border-radius: 22px;
  transition: transform .5s, box-shadow .5s;
}
.uhp-info-card > * { position: relative; z-index: 4; }
.uhp-info-card:hover { transform: translateY(-6px); box-shadow: 0 26px 50px rgba(31, 77, 46, .12); }
.uhp-info-card-tall { grid-row: span 2; }
.uhp-card-heading {
  display: flex !important;
  align-items: baseline !important;
  margin-bottom: 18px;
  gap: 16px !important;
}
.uhp-card-kicker {
  flex: none;
  margin: 0;
  color: #cdd9c9;
  font-family: 'Newsreader', serif;
  font-size: 40px;
  line-height: 1;
}
.uhp-card-title {
  margin: 0;
  color: var(--uhp-leaf);
  font-family: 'Newsreader', serif;
  font-size: 28px;
  font-weight: 500;
}
.uhp-card-copy {
  margin: 0;
  color: #4b4b42;
  font-size: 16.5px;
  line-height: 1.75;
}

/* Team */
.uhp-team {
  position: relative;
  padding: clamp(100px, 13vw, 170px) clamp(20px, 6vw, 80px);
  overflow: hidden;
  background: var(--uhp-mist);
}
.uhp-team-inner { position: relative; z-index: 4; max-width: 1280px !important; margin: 0 auto; }
.uhp-section-heading { margin-bottom: clamp(52px, 7vw, 90px); text-align: center; }
.uhp-team-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(224px, 1fr));
  gap: clamp(20px, 2.6vw, 34px);
}
.uhp-member-card { min-width: 0; margin: 0; }
.uhp-member-image {
  position: relative;
  aspect-ratio: 3 / 4;
  margin: 0;
  overflow: hidden;
  background: #dfe3d6;
  border-radius: 18px;
  box-shadow: 0 16px 38px rgba(31, 77, 46, .14);
}
.uhp-member-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .7s cubic-bezier(.2, .7, .2, 1);
}
.uhp-member-overlay {
  position: absolute;
  z-index: 3;
  inset: 0;
  display: flex;
  align-items: flex-end;
  padding: 20px;
  opacity: 0;
  color: #cdd9c9;
  background: linear-gradient(to top, rgba(20, 53, 31, .82) 0%, rgba(20, 53, 31, .05) 48%, transparent 70%);
  font-size: 13.5px;
  font-weight: 600;
  transition: opacity .5s;
  pointer-events: none;
}
.uhp-member-card:hover .uhp-member-image img { transform: scale(1.07); }
.uhp-member-card:hover .uhp-member-overlay { opacity: 1; }
.uhp-member-name {
  margin: 18px 0 0;
  color: var(--uhp-forest);
  font-family: 'Newsreader', serif;
  font-size: 22px;
  font-weight: 400;
  line-height: 1.2;
}
.uhp-member-role { margin: 5px 0 0; color: #6b6b60; font-size: 13.5px; line-height: 1.5; }

/* Contact */
.uhp-contact {
  position: relative;
  padding: clamp(100px, 13vw, 170px) clamp(20px, 6vw, 80px) 0;
  overflow: hidden;
  color: var(--uhp-mist);
  background: var(--uhp-forest);
}
.uhp-contact-glow {
  position: absolute;
  z-index: 1;
  top: 6%;
  right: -8%;
  width: 46vw;
  height: 46vw;
  max-width: 560px;
  max-height: 560px;
  background: radial-gradient(circle, rgba(46, 107, 62, .4), transparent 70%);
  filter: blur(40px);
  translate: var(--uhp-parallax-x, 0) var(--uhp-parallax-y, 0);
}
.uhp-contact-inner { position: relative; z-index: 4; max-width: 1180px !important; margin: 0 auto; }
.uhp-contact .uhp-section-heading { margin-bottom: clamp(52px, 7vw, 84px); }
.uhp-contact .uhp-eyebrow { color: var(--uhp-sage); }
.uhp-contact .uhp-display-title { color: var(--uhp-cream); }
.uhp-contact-grid {
  display: grid !important;
  align-items: start;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(40px, 6vw, 80px);
}

/* Standard pages */
.uhp-standard-page { min-height: 70vh; padding: 140px 20px 90px; background: var(--uhp-cream); }
.uhp-standard-page > .wp-block-post-title { font-size: clamp(42px, 6vw, 72px); }

@media (max-width: 782px) {
  .uhp-header { padding: 14px 20px; background: rgba(244, 241, 233, .9); backdrop-filter: blur(12px); }
  .uhp-header.is-scrolled { padding: 12px 20px; }
  .uhp-header .wp-block-site-logo img { height: 30px; }
  .uhp-main-nav .wp-block-navigation__responsive-container-open,
  .uhp-main-nav .wp-block-navigation__responsive-container-close { color: var(--uhp-forest); }
  .uhp-main-nav .wp-block-navigation__responsive-container.is-menu-open {
    padding: 28px;
    background: var(--uhp-cream);
  }
  .uhp-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    align-items: flex-start;
    gap: 22px;
  }
  .uhp-main-nav .wp-block-navigation__responsive-container.is-menu-open .uhp-nav-contact > .wp-block-navigation-item__content { display: inline-block; }
  .uhp-hero { min-height: 92vh; padding-top: 130px; }
  .uhp-hero-title { font-size: clamp(88px, 27vw, 170px); }
  .uhp-botanical-ring { width: 92vw; height: 92vw; }
  .uhp-info-card-tall { grid-row: auto; }
}

@media (max-width: 520px) {
  .uhp-hero { min-height: 88vh; padding-right: 20px; padding-left: 20px; }
  .uhp-hero .uhp-eyebrow { max-width: 310px; margin-right: auto; margin-left: auto; line-height: 1.7; }
  .uhp-hero-button .wp-block-button__link { padding: 16px 28px; }
  .uhp-scroll-hint { display: none; }
  .uhp-card-grid { grid-template-columns: 1fr; }
  .uhp-team-grid { grid-template-columns: 1fr; }
  .uhp-member-card { width: 100%; max-width: 360px; margin-right: auto; margin-left: auto; }
  .uhp-contact-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .uhp-marquee-track,
  .uhp-hero-blob,
  .uhp-botanical-ring,
  .uhp-scroll-hint i { animation: none !important; }
  .uhp-motion-ready .uhp-reveal { opacity: 1; transform: none; transition: none; }
  [data-parallax] { translate: none !important; }
}

/* Gutenberg editor: keep every section recognisable and editable. */
.editor-styles-wrapper { background: var(--uhp-cream); font-family: 'Mulish', system-ui, sans-serif; }
.editor-styles-wrapper .uhp-header { position: relative; top: 0; background: var(--uhp-cream); }
.editor-styles-wrapper .uhp-reveal { opacity: 1 !important; transform: none !important; }
.editor-styles-wrapper .uhp-marquee-track { animation: none; transform: none; }
.editor-styles-wrapper .uhp-hero-blob,
.editor-styles-wrapper .uhp-botanical-ring,
.editor-styles-wrapper .uhp-scroll-hint,
.editor-styles-wrapper .uhp-manifesto-glow,
.editor-styles-wrapper .uhp-contact-glow { pointer-events: none; }
