:root {
  --knd-color-primary: #171717;
  --knd-color-primary-contrast: #ffffff;
  --knd-color-secondary: #ece9e3;
  --knd-color-accent: #788a7b;
  --knd-color-text: #171717;
  --knd-color-muted: #66625d;
  --knd-color-background: #ffffff;
  --knd-color-surface: #f3f2f0;
  --knd-color-border: #d8d4ce;
  --knd-container-content: 1200px;
  --knd-container-wide: 1200px;
  --knd-radius-sm: 0;
  --knd-radius-md: 0;
  --knd-radius-lg: 0;
}

.knd-split {
  max-width: var(--knd-container-wide);
}

.knd-editorial + .knd-fullwidth-image {
  display: none;
}

.knd-editorial--with-image .knd-editorial__content {
  align-self: center;
}

.knd-editorial--with-image .knd-section-title {
  text-align: left;
}

.knd-editorial--with-image .knd-divider {
  margin-left: 0;
}

.knd-site-intro .knd-section-title,
.knd-person .knd-section-title,
.knd-editorial .knd-section-title {
  letter-spacing: .015em;
}

/* KNDev WordPress 0.2: native Gutenberg page structure. */
.knd-native-hero,
.knd-native-editorial,
.knd-native-prices,
.knd-native-team,
.knd-native-gallery-section {
  margin-inline: auto;
  max-width: var(--knd-container-wide);
  padding: var(--knd-space-section) 1.25rem 0;
}

.knd-native-hero { padding-top: 0; }
.knd-native-hero figure { margin: 0; }
.knd-native-hero.is-layout-constrained > .knd-native-hero__images,
.knd-native-hero.is-layout-constrained > .knd-native-aveda,
.knd-native-editorial.is-layout-constrained > .knd-native-editorial__layout,
.knd-native-team.is-layout-constrained > .knd-native-team__grid,
.knd-native-gallery-section.is-layout-constrained > .knd-native-gallery {
  max-width: none !important;
  width: 100%;
}
.knd-native-hero__images {
  display: grid;
  gap: .75rem;
  grid-template-areas: "main top" "main bottom";
  grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr);
  grid-template-rows: repeat(2, minmax(0, 1fr));
  height: clamp(520px, 54vw, 660px);
}
.knd-native-hero__images img { display: block; height: 100%; object-fit: cover; width: 100%; }
.knd-native-hero__main { grid-area: main; }
.knd-native-hero__top { grid-area: top; }
.knd-native-hero__bottom { grid-area: bottom; }

.knd-native-aveda {
  align-items: stretch;
  display: grid;
  gap: .75rem;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr) minmax(0, 1fr);
  margin-top: var(--knd-space-section);
}
.knd-native-aveda > * { min-height: 100%; }
.knd-native-aveda figure { height: 100%; margin: 0; min-width: 0; overflow: hidden; }
.knd-native-aveda figure img { display: block; height: 100%; object-fit: cover; width: 100%; }
.knd-native-aveda__content { background: var(--knd-color-surface); padding: clamp(2rem, 4vw, 3.5rem); }
.knd-native-aveda__content h2 { font-size: clamp(1.4rem, 2.2vw, 2rem); margin-top: 0; }

.knd-native-editorial__layout {
  align-items: stretch;
  display: grid;
  gap: clamp(2.5rem, 6vw, 5rem);
  grid-template-areas: "content image";
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
.knd-native-editorial__content { align-self: center; grid-area: content; }
.knd-native-editorial__image { grid-area: image; margin: 0; }
.knd-native-editorial__image img { display: block; height: 100%; object-fit: cover; width: 100%; }
.knd-native-editorial h2 { margin-top: 0; text-transform: uppercase; }

.knd-native-prices { background: var(--knd-color-surface); max-width: none; padding-bottom: var(--knd-space-section); }
.knd-native-prices > * { margin-inline: auto; max-width: 760px; }
.knd-native-price-table table { border-collapse: collapse; width: 100%; }
.knd-native-price-table td { border: 0; border-bottom: 1px solid var(--knd-color-border); padding: .75rem 0; }
.knd-native-price-table td:last-child { font-weight: 700; text-align: right; white-space: nowrap; }
.knd-native-price-note { color: var(--knd-color-muted); font-size: .875rem; }
.knd-native-prices > .knd-booking-link { display: flex; margin: 1.75rem auto 0; width: max-content; }

.knd-native-team__grid { display: grid; gap: clamp(2rem, 5vw, 4rem); grid-template-columns: repeat(6, minmax(0, 1fr)); }
.knd-native-team-card { grid-column: span 2; text-align: center; }
.knd-native-team-card:nth-child(1), .knd-native-team-card:nth-child(2) { grid-column: span 3; }
.knd-native-team-card figure { margin: 0 auto 1.5rem; max-width: 260px; }
.knd-native-team-card img { aspect-ratio: 4 / 5; display: block; object-fit: cover; width: 100%; }
.knd-native-team-card h3 { margin-bottom: .35rem; }
.knd-native-team-card__role { color: var(--knd-color-muted); font-size: .9rem; margin-top: 0; }

.knd-native-gallery { display: grid !important; gap: clamp(.5rem, 1.2vw, 1rem) !important; grid-auto-flow: dense; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.knd-native-gallery > figure { aspect-ratio: 1; margin: 0 !important; overflow: hidden; width: auto !important; }
.knd-native-gallery > figure:nth-child(7n + 1), .knd-native-gallery > figure:nth-child(7n + 5) { grid-column: span 2; grid-row: span 2; }
.knd-native-gallery img { cursor: zoom-in; display: block; height: 100% !important; object-fit: cover; width: 100% !important; }

@media (max-width: 781px) {
  .knd-native-hero__images { display: grid; height: auto; grid-template-areas: "main" "top" "bottom"; grid-template-columns: 1fr; grid-template-rows: auto; }
  .knd-native-hero__images figure { aspect-ratio: auto; }
  .knd-native-hero__images img { height: auto; object-fit: contain; }
  .knd-native-aveda { grid-template-columns: 1fr; }
  .knd-native-editorial__layout { grid-template-areas: "image" "content"; grid-template-columns: 1fr; }
  .knd-native-editorial__image img { height: auto; }
  .knd-native-team__grid { grid-template-columns: 1fr; }
  .knd-native-team-card, .knd-native-team-card:nth-child(1), .knd-native-team-card:nth-child(2) { grid-column: auto; }
}

@media (max-width: 520px) {
  .knd-native-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .knd-native-gallery > figure:nth-child(7n + 1), .knd-native-gallery > figure:nth-child(7n + 5) { grid-column: span 2; grid-row: span 2; }
}
