/* Hallmark · genre: modern-minimal · macrostructure: designed-as-app (Bento Grid / H2 Split Diptych / Long Document) · theme: custom Apple product system · tone: precise, calm, warm · anchor: system blue · nav: Apple two-level global/local · footer: compact site index */
/* Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V5 */
/* Hallmark · contrast: pass (40–41) · chrome: pass (42–45) · honest/tokens: pass (46–48) · mobile: pass (34, 49–57) */
/* Hallmark · final self-rating: P5 H5 E5 S5 R5 V5 */

/* Foundation ------------------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  background: var(--color-paper);
  color: var(--color-ink-2);
  overflow-x: clip;
}

body.epb-site {
  background: var(--color-paper);
  color: var(--color-ink-2);
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-synthesis: none;
  line-height: 1.5;
  margin: 0;
  overflow-x: clip;
  text-rendering: optimizeLegibility;
}

body.epb-site :where(h1, h2, h3, h4, h5, h6, .wp-block-site-title) {
  color: var(--color-ink);
  font-family: var(--font-display);
  font-style: normal;
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.06;
  min-width: 0;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

body.epb-site h1 {
  font-size: var(--text-display-s);
}

body.epb-site h2 {
  font-size: clamp(2rem, 4vw, 3.35rem);
}

body.epb-site h3 {
  font-size: clamp(1.35rem, 2.2vw, var(--text-xl));
}

body.epb-site :where(p, li) {
  text-wrap: pretty;
}

body.epb-site :where(img, svg) {
  max-width: 100%;
}

body.epb-site img {
  height: auto;
}

body.epb-site a:not(.wp-element-button):not(.button):not(.wc-block-components-button) {
  color: var(--color-link);
  text-decoration-color: var(--color-rule-2);
  text-decoration-thickness: var(--rule-hair);
  text-underline-offset: var(--space-3xs);
  transition: color var(--dur-hover) var(--ease-out),
    text-decoration-color var(--dur-hover) var(--ease-out);
}

body.epb-site :where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: var(--space-3xs);
}

body.epb-site :where(button, input, select, textarea) {
  font: inherit;
}

body.epb-site ::selection {
  background: var(--color-accent-soft);
  color: var(--color-ink);
}

/* Navigation ------------------------------------------------------------- */
body.epb-site .epb-header {
  background: var(--color-surface);
  border: 0;
  border-bottom: var(--rule-hair) solid var(--color-rule);
  display: block;
  min-height: 0;
  padding: 0;
  position: sticky;
  text-align: start;
  top: 0;
  z-index: var(--z-sticky-nav);
}

@supports (backdrop-filter: blur(1rem)) {
  body.epb-site .wp-block-navigation__responsive-container.is-menu-open {
    -webkit-backdrop-filter: saturate(1.2) blur(var(--blur-nav));
    backdrop-filter: saturate(1.2) blur(var(--blur-nav));
  }
}

body.epb-site .epb-header::before {
  content: none;
  display: none;
}

body.epb-site .epb-service-rail {
  align-items: center;
  border-bottom: var(--rule-hair) solid var(--color-rule);
  color: var(--color-ink-2);
  display: flex;
  justify-content: center;
  min-height: 2.25rem;
  padding-inline: var(--space-sm);
}

body.epb-site .epb-service-rail :where(p, strong) {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  line-height: 1;
  margin: 0;
}

body.epb-site .epb-service-rail p {
  letter-spacing: 0.015em;
  white-space: nowrap;
}

body.epb-site .epb-service-rail strong {
  color: var(--color-accent);
  font-weight: 600;
}

body.epb-site .epb-service-rail-mobile {
  display: block;
  font-variant-numeric: tabular-nums;
  text-align: center;
}

body.epb-site .epb-service-rail-desktop {
  display: none;
}

body.epb-site .epb-masthead {
  align-items: center;
  display: grid;
  gap: var(--space-xs);
  grid-template-columns: minmax(0, 1fr) auto auto;
  min-height: var(--banner-height);
  padding-inline: var(--space-sm);
}

body.epb-site .epb-masthead-meta {
  display: none;
}

body.epb-site .epb-brand {
  align-items: center;
  color: var(--color-ink);
  display: inline-flex;
  flex: 0 0 auto;
  gap: var(--space-xs);
  justify-self: start;
  min-width: 0;
  text-decoration: none;
}

body.epb-site .epb-brand-copy {
  display: grid;
  gap: var(--space-3xs);
  min-width: 0;
}

body.epb-site .epb-brand-mark {
  align-items: center;
  background: var(--color-accent);
  border-radius: var(--radius-xs);
  color: var(--color-accent-ink);
  display: inline-flex;
  flex: 0 0 auto;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: 600;
  height: 1.875rem;
  justify-content: center;
  letter-spacing: -0.04em;
  margin: 0;
  width: 1.875rem;
}

body.epb-site .epb-brand .wp-block-site-title {
  font-size: var(--text-md);
  line-height: 1;
  margin: 0;
}

body.epb-site .epb-brand .wp-block-site-title a {
  color: var(--color-ink);
  text-decoration: none;
}

body.epb-site .kp-brand-note {
  color: var(--color-muted);
  display: none;
  font-size: var(--text-xs);
  line-height: 1;
  margin: 0;
  white-space: nowrap;
}

body.epb-site .epb-header-nav {
  align-items: center;
  display: flex;
  gap: var(--space-md);
  justify-content: flex-end;
  justify-self: end;
  min-width: 0;
}

body.epb-site .epb-nav,
body.epb-site .epb-nav .wp-block-navigation__container {
  align-items: center;
  display: flex;
  gap: var(--space-md);
  justify-content: center;
}

body.epb-site .epb-nav {
  justify-self: end;
  min-width: 44px;
}

body.epb-site .epb-nav :where(a, .wp-block-navigation-item__content) {
  align-items: center;
  color: var(--color-ink-2);
  display: inline-flex;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 600;
  line-height: 1;
  min-height: 44px;
  padding-block: var(--space-xs);
  text-decoration: none;
  white-space: nowrap;
}

body.epb-site .epb-nav .wp-block-navigation-item {
  position: relative;
}

body.epb-site.kp-page-examples .epb-nav-link--examples > .wp-block-navigation-item__content,
body.epb-site.kp-page-how-it-works .epb-nav-link--how > .wp-block-navigation-item__content,
body.epb-site.kp-page-photo-guide .epb-nav-link--photo > .wp-block-navigation-item__content,
body.epb-site.kp-page-studio-promise .epb-nav-link--promise > .wp-block-navigation-item__content,
body.epb-site.kp-page-faq .epb-nav-link--faq > .wp-block-navigation-item__content,
body.epb-site .epb-nav .wp-block-navigation-item__content[aria-current="page"] {
  color: var(--color-accent);
}

body.epb-site .wp-block-navigation__responsive-container-open,
body.epb-site .wp-block-navigation__responsive-container-close {
  align-items: center;
  color: var(--color-ink);
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
}

body.epb-site .wp-block-navigation__responsive-container.is-menu-open {
  background: var(--color-surface-glass);
  color: var(--color-ink);
  padding: var(--space-md) var(--page-gutter) var(--space-xl);
}

body.epb-site .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  padding-top: var(--space-xl);
}

body.epb-site .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content::before {
  color: var(--color-muted);
  content: "KEPTPAW · STUDIO INDEX";
  display: block;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-variant-caps: all-small-caps;
  font-weight: 600;
  letter-spacing: 0.12em;
  margin-bottom: var(--space-md);
}

body.epb-site .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  align-items: stretch;
  gap: 0;
  width: 100%;
}

body.epb-site .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
  border-top: var(--rule-hair) solid var(--color-rule);
  width: 100%;
}

body.epb-site .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:last-child {
  border-bottom: var(--rule-hair) solid var(--color-rule);
}

body.epb-site .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 300;
  justify-content: space-between;
  min-height: 3.75rem;
  padding-block: var(--space-md);
  width: 100%;
}

body.epb-site.kp-page-examples .wp-block-navigation__responsive-container.is-menu-open .epb-nav-link--examples > .wp-block-navigation-item__content::after,
body.epb-site.kp-page-how-it-works .wp-block-navigation__responsive-container.is-menu-open .epb-nav-link--how > .wp-block-navigation-item__content::after,
body.epb-site.kp-page-photo-guide .wp-block-navigation__responsive-container.is-menu-open .epb-nav-link--photo > .wp-block-navigation-item__content::after,
body.epb-site.kp-page-studio-promise .wp-block-navigation__responsive-container.is-menu-open .epb-nav-link--promise > .wp-block-navigation-item__content::after,
body.epb-site.kp-page-faq .wp-block-navigation__responsive-container.is-menu-open .epb-nav-link--faq > .wp-block-navigation-item__content::after,
body.epb-site .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content[aria-current="page"]::after {
  color: var(--color-muted);
  content: "Current";
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.04em;
}

/* Controls --------------------------------------------------------------- */
body.epb-site :where(.epb-button, .epb-nav-cta, .wp-element-button, .woocommerce .button, .wc-block-components-button) {
  align-items: center;
  background: var(--color-accent);
  border: var(--rule-hair) solid var(--color-accent);
  border-radius: var(--radius-pill);
  box-shadow: none;
  color: var(--color-accent-ink);
  cursor: pointer;
  display: inline-flex;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 600;
  justify-content: center;
  line-height: 1;
  min-height: var(--control-height);
  min-width: 0;
  padding: 0 var(--space-md);
  text-align: center;
  text-decoration: none;
  transition: background-color var(--dur-hover) var(--ease-out),
    border-color var(--dur-hover) var(--ease-out),
    color var(--dur-hover) var(--ease-out),
    box-shadow var(--dur-hover) var(--ease-out),
    transform var(--dur-press) var(--ease-out);
}

body.epb-site :where(.wp-block-button.epb-button, .wp-block-button.epb-nav-cta) {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  min-height: 0;
  padding: 0;
}

body.epb-site :where(.epb-button, .epb-nav-cta) .wp-block-button__link {
  background: var(--color-accent);
  border: var(--rule-hair) solid var(--color-accent);
  color: var(--color-accent-ink);
}

body.epb-site :where(.epb-button-secondary, .is-style-outline) .wp-block-button__link,
body.epb-site a.epb-button-secondary {
  background: transparent;
  border-color: var(--color-rule-2);
  color: var(--color-ink);
}

body.epb-site :where(button, .wp-element-button, .button, [role="button"]):active,
body.epb-site :where(.epb-button, .epb-nav-cta):active .wp-block-button__link {
  box-shadow: none;
  transform: translateY(1px);
}

body.epb-site :where(button, .wp-element-button, .button, [role="button"]):disabled,
body.epb-site :where(button, .wp-element-button, .button, [role="button"])[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: 0.5;
  pointer-events: none;
}

body.epb-site :where(button, .wp-element-button, .button, [role="button"])[aria-busy="true"] {
  cursor: progress;
  opacity: 0.72;
}

body.epb-site :where(button, .wp-element-button, .button, [role="button"])[data-state="error"] {
  background: var(--color-error);
  border-color: var(--color-error);
  color: var(--color-accent-ink);
}

body.epb-site :where(button, .wp-element-button, .button, [role="button"])[data-state="success"] {
  background: var(--color-success);
  border-color: var(--color-success);
  color: var(--color-accent-ink);
}

body.epb-site .epb-actions,
body.epb-site .wp-block-buttons {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
}

/* Shared page shell ------------------------------------------------------- */
body.epb-site .epb-content-shell,
body.epb-site .epb-shop-shell {
  background: var(--color-paper);
  margin-inline: auto;
  max-width: var(--page-shell);
  padding: clamp(var(--space-xl), 8vw, var(--space-4xl)) var(--page-gutter) var(--space-4xl);
  width: 100%;
}

body.epb-site .wp-site-blocks > .wp-block-template-part + main {
  margin-block-start: 0;
}

body.epb-site .epb-content-shell > .wp-block-post-title {
  margin: 0 0 var(--space-xl);
  max-width: 16ch;
}

body.epb-site .epb-content-shell > .wp-block-post-date {
  color: var(--color-muted);
  font-size: var(--text-sm);
}

body.epb-site .epb-content-shell .wp-block-post-content {
  margin: 0;
  max-width: none;
  width: 100%;
}

body.epb-site .epb-content-shell .wp-block-post-content > :where(p, h2, h3, h4, ul, ol, details, .epb-note, .epb-intake-wrap, .epb-delivery-specs, .wp-block-buttons):not(.alignwide):not(.alignfull) {
  margin-inline: auto;
  max-width: var(--page-reading);
}

body.epb-site .epb-content-shell .wp-block-post-content > h2 {
  margin-block: var(--space-3xl) var(--space-md);
}

body.epb-site .epb-content-shell .wp-block-post-content > h3 {
  margin-block: var(--space-xl) var(--space-sm);
}

body.epb-site .epb-content-shell .wp-block-post-content > :where(ul, ol) {
  padding-inline-start: var(--space-md);
}

body.epb-site .epb-content-shell .wp-block-post-content li {
  margin-block: var(--space-xs);
  padding-inline-start: var(--space-3xs);
}

body.epb-site .epb-kicker {
  color: var(--color-accent);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: 0.02em;
  margin: 0 0 var(--space-sm);
  text-transform: none;
}

body.epb-site .epb-lead {
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: clamp(var(--text-md), 2.2vw, var(--text-lg));
  font-weight: 300;
  line-height: 1.42;
  margin: 0 0 var(--space-xl);
  max-width: 36ch;
}

body.epb-site .epb-price {
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-variant-numeric: tabular-nums;
  font-weight: 300;
}

body.epb-site .epb-note {
  background: var(--color-accent-soft);
  border: 0;
  border-left: 3px solid var(--color-accent);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  color: var(--color-ink-2);
  padding: var(--space-md);
}

body.epb-site .epb-note :where(p, h2, h3) {
  margin-block: 0;
}

body.epb-site .epb-note p + p {
  margin-top: var(--space-2xs);
}

body.epb-site .epb-note p:first-child {
  color: var(--color-ink);
  font-family: var(--font-body);
  font-size: var(--text-base);
}

body.epb-site .epb-note p:last-child {
  color: var(--color-ink-2);
  font-size: var(--text-sm);
}

body.epb-site .epb-content-image,
body.epb-site .epb-content-figure {
  margin-block: var(--space-xl);
}

body.epb-site :where(.epb-content-image, .epb-content-figure) img {
  border-radius: var(--radius-image);
  display: block;
  object-fit: cover;
  width: 100%;
}

body.epb-site .epb-content-figure figcaption {
  color: var(--color-muted);
  font-size: var(--text-sm);
  margin-top: var(--space-xs);
  text-align: start;
}

/* Footer ----------------------------------------------------------------- */
body.epb-site .epb-footer,
body.home.epb-site .epb-footer {
  background: var(--color-ink);
  color: var(--color-paper-3);
  display: block;
  padding: var(--space-3xl) var(--page-gutter) var(--space-lg);
}

body.epb-site .kp-footer-statement {
  color: var(--color-paper);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 7vw, 6.25rem);
  font-weight: 300;
  letter-spacing: -0.045em;
  line-height: 0.98;
  margin: 0 auto var(--space-3xl);
  max-width: var(--page-wide);
}

body.epb-site .epb-footer-inner {
  border-top: var(--rule-hair) solid var(--color-ink-2);
  display: grid;
  gap: var(--space-xl);
  grid-template-columns: minmax(0, 2fr) repeat(2, minmax(8rem, 1fr));
  margin: 0 auto;
  max-width: var(--page-wide);
  padding-top: var(--space-lg);
}

body.epb-site .epb-footer :where(h3, .epb-brand, .wp-block-site-title, .wp-block-site-title a) {
  color: var(--color-paper);
}

body.epb-site .epb-footer h3 {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: none;
}

body.epb-site .epb-footer :where(p, a, .wp-block-navigation-item__content) {
  color: var(--color-paper-3);
  font-size: var(--text-sm);
}

body.epb-site .epb-footer p.kp-footer-statement {
  color: var(--color-paper);
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 7vw, 6.25rem);
  font-weight: 300;
  letter-spacing: -0.045em;
  line-height: 0.98;
  max-width: var(--page-wide);
}

body.epb-site .epb-footer a {
  display: inline-flex;
  margin: 0;
  min-height: 44px;
  text-decoration-color: var(--color-ink-2);
}

body.epb-site .epb-footer .wp-block-navigation__container {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 0;
}

body.epb-site .epb-footer-bottom {
  border-top: var(--rule-hair) solid var(--color-ink-2);
  color: var(--color-paper-3);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  justify-content: space-between;
  margin: var(--space-xl) auto 0;
  max-width: var(--page-wide);
  padding-top: var(--space-md);
}

/* Homepage --------------------------------------------------------------- */
body.home.epb-site .epb-home {
  background: var(--color-paper);
  overflow: visible;
}

body.home.epb-site .epb-header {
  justify-items: normal;
}

body.home.epb-site .kp-editorial-home a {
  white-space: normal;
}

body.home.epb-site .kp-editorial-home {
  background: var(--color-paper);
  color: var(--color-ink-2);
}

body.home.epb-site .kp-photo-hero {
  min-height: clamp(34rem, 78dvh, 54rem);
  overflow: hidden;
  position: relative;
}

body.home.epb-site .kp-photo-hero::after {
  background: linear-gradient(to top, var(--color-paper), transparent 62%);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

body.home.epb-site .kp-photo-hero__image {
  height: clamp(34rem, 78dvh, 54rem);
  margin: 0;
  width: 100%;
}

body.home.epb-site .kp-photo-hero__image img {
  border-radius: 0;
  display: block;
  height: 100%;
  object-fit: cover;
  object-position: center;
  width: 100%;
}

body.home.epb-site .kp-photo-hero__caption {
  bottom: clamp(var(--space-xl), 8vw, var(--space-3xl));
  inset-inline-start: max(var(--page-gutter), calc((100% - var(--page-wide)) / 2 + var(--page-gutter)));
  max-width: 36rem;
  position: absolute;
  width: calc(100% - (var(--page-gutter) * 2));
  z-index: var(--z-raised);
}

body.home.epb-site .kp-photo-hero__caption h1 {
  font-size: var(--text-display-s);
  margin: 0 0 var(--space-md);
  max-width: 11ch;
}

body.home.epb-site .kp-plate-caption {
  color: var(--color-muted);
  font-size: var(--text-sm);
  margin: 0 0 var(--space-xs);
}

body.home.epb-site .kp-hero-lede {
  color: var(--color-ink-2);
  font-size: var(--text-md);
  line-height: 1.5;
  max-width: 45ch;
}

body.home.epb-site .kp-hero-facts {
  color: var(--color-muted);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.015em;
  margin: var(--space-sm) 0 0;
}

body.home.epb-site .kp-type-link {
  align-items: center;
  color: var(--color-ink);
  display: inline-flex;
  font-weight: 600;
  min-height: 44px;
  text-decoration-color: var(--color-accent);
  white-space: nowrap;
}

body.home.epb-site .kp-type-link:active {
  transform: translateY(1px);
}

body.home.epb-site .kp-text-fold,
body.home.epb-site .kp-process,
body.home.epb-site .kp-order-fold {
  margin-inline: auto;
  max-width: var(--page-shell);
  padding-inline: var(--page-gutter);
}

body.home.epb-site .kp-text-fold {
  display: grid;
  gap: var(--space-xl);
  padding-block: var(--space-4xl);
}

body.home.epb-site .kp-text-fold h2 {
  font-size: var(--text-display-s);
  margin: 0;
  max-width: 11ch;
}

body.home.epb-site .kp-text-fold__copy {
  display: grid;
  gap: var(--space-md);
  max-width: var(--page-reading);
}

body.home.epb-site .kp-text-fold__copy p {
  margin: 0;
}

body.home.epb-site .kp-lede {
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: 300;
  line-height: 1.4;
}

body.home.epb-site .kp-archive {
  background: var(--color-paper-2);
  color: var(--color-ink-2);
  padding-block: var(--space-3xl) var(--space-4xl);
}

body.home.epb-site .kp-proof-story {
  align-items: center;
  display: grid;
  gap: clamp(var(--space-xl), 7vw, var(--space-4xl));
  grid-template-columns: minmax(16rem, 5fr) minmax(0, 7fr);
  margin-inline: auto;
  max-width: var(--page-shell);
  padding: var(--space-4xl) var(--page-gutter);
}

body.home.epb-site .kp-proof-story__copy {
  min-width: 0;
}

body.home.epb-site .kp-proof-story__copy :where(h2, p) {
  margin-block-start: 0;
}

body.home.epb-site .kp-proof-story__copy h2 {
  margin-bottom: var(--space-md);
}

body.home.epb-site .kp-preservation-list {
  border-bottom: var(--rule-hair) solid var(--color-rule);
  list-style: none;
  margin: var(--space-xl) 0 0;
  padding: 0;
}

body.home.epb-site .kp-preservation-list li {
  border-top: var(--rule-hair) solid var(--color-rule);
  display: grid;
  gap: var(--space-2xs);
  margin: 0;
  padding: var(--space-sm) 0;
}

body.home.epb-site .kp-preservation-list strong {
  color: var(--color-ink);
  font-size: var(--text-sm);
}

body.home.epb-site .kp-preservation-list span {
  color: var(--color-muted);
  font-size: var(--text-sm);
}

body.home.epb-site .kp-before-after {
  align-items: end;
  display: grid;
  gap: var(--space-sm);
  grid-template-columns: minmax(7rem, 5fr) minmax(0, 7fr);
  min-width: 0;
}

body.home.epb-site .kp-before-after__figure {
  margin: 0;
  min-width: 0;
}

body.home.epb-site .kp-before-after__figure img {
  aspect-ratio: 1;
  border-radius: var(--radius-image);
  display: block;
  object-fit: cover;
  width: 100%;
}

body.home.epb-site .kp-before-after__figure--finished img {
  aspect-ratio: 3 / 2;
}

body.home.epb-site .kp-before-after figcaption,
body.epb-site .kp-gallery-entry__pair figcaption,
body.epb-site .kp-photo-grade figcaption {
  color: var(--color-muted);
  font-size: var(--text-xs);
  margin-top: var(--space-2xs);
}

body.home.epb-site .kp-studio-example-note {
  color: var(--color-muted);
  font-size: var(--text-sm);
  grid-column: 1 / -1;
  margin: var(--space-xs) 0 0;
}

body.home.epb-site .kp-studio-example-note strong {
  color: var(--color-ink);
}

body.home.epb-site .kp-section-head {
  display: grid;
  gap: var(--space-sm);
  margin-inline: auto;
  max-width: var(--page-shell);
  padding: 0 var(--page-gutter) var(--space-2xl);
}

body.home.epb-site .kp-section-head :where(h2, p) {
  margin: 0;
}

body.home.epb-site .kp-section-head h2 {
  max-width: 13ch;
}

body.home.epb-site .kp-section-head p {
  max-width: 47ch;
}

body.home.epb-site .kp-direction-strip {
  display: grid;
  gap: clamp(var(--space-sm), 2.5vw, var(--space-lg));
  grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr));
  margin-inline: auto;
  max-width: var(--page-wide);
  padding-inline: var(--page-gutter);
}

body.home.epb-site .kp-direction-strip__item {
  margin: 0;
  min-width: 0;
}

body.home.epb-site .kp-direction-strip__item img {
  aspect-ratio: 4 / 5;
  border-radius: var(--radius-image);
  display: block;
  object-fit: cover;
  width: 100%;
}

body.home.epb-site .kp-direction-strip__item figcaption {
  display: grid;
  gap: var(--space-3xs);
  margin-top: var(--space-xs);
}

body.home.epb-site .kp-direction-strip__item figcaption strong {
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--text-md);
  font-weight: 300;
}

body.home.epb-site .kp-direction-strip__item figcaption span {
  color: var(--color-muted);
  font-size: var(--text-sm);
}

body.home.epb-site .kp-archive > .has-text-align-right {
  margin: var(--space-xl) auto 0;
  max-width: var(--page-wide);
  padding-inline: var(--page-gutter);
}

body.home.epb-site .kp-portrait-plate {
  margin-inline: auto;
  max-width: var(--page-wide);
  padding-inline: var(--page-gutter);
}

body.home.epb-site .kp-portrait-plate__image {
  margin: 0;
  min-width: 0;
}

body.home.epb-site .kp-portrait-plate__image img {
  border-radius: var(--radius-image);
  display: block;
  width: 100%;
}

body.home.epb-site .kp-portrait-plate__note {
  display: grid;
  gap: var(--space-xs);
}

body.home.epb-site .kp-portrait-plate__note :where(h3, p) {
  margin: 0;
}

body.home.epb-site .kp-portrait-plate__note p:not(.kp-plate-caption) {
  max-width: 45ch;
}

body.home.epb-site .kp-portrait-plate--wide,
body.home.epb-site .kp-portrait-plate--offset {
  display: grid;
  gap: var(--space-xl);
}

body.home.epb-site .kp-portrait-plate--wide .kp-portrait-plate__note {
  justify-self: end;
  max-width: 34rem;
}

body.home.epb-site .kp-portrait-plate--offset {
  margin-block-start: var(--space-4xl);
}

body.home.epb-site .kp-process {
  padding-block: var(--space-4xl) var(--space-3xl);
}

body.home.epb-site .kp-process .kp-section-head {
  padding-inline: 0;
}

body.home.epb-site .kp-step-sequence,
body.epb-site .kp-workflow {
  list-style: none;
  margin: 0;
  padding: 0;
}

body.home.epb-site .kp-step-sequence li,
body.epb-site .kp-workflow li {
  border-top: var(--rule-hair) solid var(--color-rule);
  display: grid;
  gap: var(--space-xs);
  padding-block: var(--space-lg);
}

body.home.epb-site .kp-step-sequence li:last-child,
body.epb-site .kp-workflow li:last-child {
  border-bottom: var(--rule-hair) solid var(--color-rule);
}

body.home.epb-site .kp-step-sequence__number,
body.epb-site .kp-step-number {
  color: var(--color-accent);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}

body.home.epb-site .kp-step-sequence strong,
body.epb-site .kp-workflow strong {
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: 300;
  line-height: 1.2;
}

body.home.epb-site .kp-step-sequence li > span:last-child,
body.epb-site .kp-workflow li > span:last-child {
  max-width: 46ch;
}

body.home.epb-site .kp-order-fold {
  display: grid;
  gap: var(--space-2xl);
  padding-block: var(--space-3xl) var(--space-4xl);
}

body.home.epb-site .kp-order-fold__offer h2 {
  font-variant-numeric: tabular-nums;
  margin-block: 0 var(--space-md);
}

body.home.epb-site .kp-spec-sheet table,
body.epb-site .kp-spec-sheet table {
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
  width: 100%;
}

body.home.epb-site .kp-spec-sheet :where(th, td),
body.epb-site .kp-spec-sheet :where(th, td) {
  background: transparent;
  border: 0;
  border-top: var(--rule-hair) solid var(--color-rule);
  color: var(--color-ink-2);
  padding: var(--space-sm) 0;
  text-align: start;
  vertical-align: top;
}

body.home.epb-site .kp-spec-sheet tr:last-child :where(th, td),
body.epb-site .kp-spec-sheet tr:last-child :where(th, td) {
  border-bottom: var(--rule-hair) solid var(--color-rule);
}

body.home.epb-site .kp-spec-sheet th,
body.epb-site .kp-spec-sheet th {
  color: var(--color-ink);
  font-weight: 600;
  width: 34%;
}

body.home.epb-site .kp-privacy-note {
  color: var(--color-muted);
  font-size: var(--text-sm);
}

body.home.epb-site .kp-letter-footer {
  display: none;
}

/* Editorial components -------------------------------------------------- */
body.epb-site .epb-detail-grid,
body.epb-site .wp-block-columns.epb-detail-grid {
  border-bottom: var(--rule-hair) solid var(--color-rule);
  display: grid;
  gap: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-block: var(--space-xl) var(--space-3xl);
}

body.epb-site .epb-detail-card {
  background: transparent;
  border: 0;
  border-top: var(--rule-hair) solid var(--color-rule);
  border-radius: 0;
  min-width: 0;
  padding: var(--space-lg) var(--space-lg) var(--space-xl) 0;
}

body.epb-site .epb-detail-card + .epb-detail-card {
  border-left: var(--rule-hair) solid var(--color-rule);
  padding-left: var(--space-lg);
}

body.epb-site .epb-detail-card :where(h3, p) {
  margin-block: 0;
}

body.epb-site .epb-detail-card p {
  color: var(--color-muted);
  font-size: var(--text-sm);
  margin-top: var(--space-sm);
}

body.epb-site .epb-process-number {
  color: var(--color-accent);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 600;
}

body.epb-site .kp-split-section {
  align-items: start;
  display: grid;
  gap: clamp(var(--space-xl), 7vw, var(--space-4xl));
  grid-template-columns: minmax(15rem, 5fr) minmax(0, 7fr);
  margin-block: var(--space-3xl);
}

body.epb-site .kp-split-section > * {
  min-width: 0;
}

body.epb-site .kp-editorial-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

body.epb-site .kp-editorial-list li {
  border-top: var(--rule-hair) solid var(--color-rule);
  display: grid;
  gap: var(--space-xs);
  margin: 0;
  padding: var(--space-lg) 0;
}

body.epb-site .kp-editorial-list li:last-child {
  border-bottom: var(--rule-hair) solid var(--color-rule);
}

body.epb-site .kp-editorial-list strong {
  color: var(--color-ink);
  font-size: var(--text-md);
}

body.epb-site .kp-gallery-story {
  display: grid;
  gap: var(--space-4xl);
  margin-block: var(--space-3xl) var(--space-4xl);
}

body.epb-site .kp-gallery-entry {
  align-items: end;
  display: grid;
  gap: var(--space-xl);
  grid-template-columns: minmax(0, 8fr) minmax(15rem, 4fr);
}

body.epb-site .kp-gallery-entry:nth-child(even) {
  grid-template-columns: minmax(15rem, 4fr) minmax(0, 8fr);
}

body.epb-site .kp-gallery-entry:nth-child(even) > .wp-block-image {
  order: 2;
}

body.epb-site .kp-gallery-entry:nth-child(even) .kp-gallery-entry__pair {
  order: 2;
}

body.epb-site .kp-gallery-entry .wp-block-image {
  margin: 0;
}

body.epb-site .kp-gallery-entry img {
  aspect-ratio: 3 / 2;
  border-radius: var(--radius-image);
  display: block;
  object-fit: cover;
  width: 100%;
}

body.epb-site .kp-gallery-entry__pair {
  align-items: end;
  display: grid;
  gap: var(--space-xs);
  grid-template-columns: minmax(6rem, 4fr) minmax(0, 6fr);
  min-width: 0;
}

body.epb-site .kp-gallery-entry__pair .wp-block-image:first-child img {
  aspect-ratio: 1;
}

body.epb-site .kp-gallery-entry__pair .wp-block-image:last-child img {
  aspect-ratio: 3 / 2;
}

body.epb-site .kp-gallery-entry :where(h2, p) {
  margin-block: 0;
}

body.epb-site .kp-gallery-entry h2 {
  font-size: var(--text-2xl);
  margin-bottom: var(--space-sm);
}

body.epb-site .kp-gallery-entry__caption {
  padding-bottom: var(--space-lg);
}

/* Photo reference and review -------------------------------------------- */
body.epb-site .kp-photo-grades {
  display: grid;
  gap: clamp(var(--space-sm), 3vw, var(--space-lg));
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-block: var(--space-2xl) var(--space-4xl);
}

body.epb-site .kp-photo-grade {
  border-bottom: var(--rule-hair) solid var(--color-rule);
  border-top: 3px solid var(--color-rule-2);
  min-width: 0;
  padding-block: var(--space-sm) var(--space-lg);
}

body.epb-site .kp-photo-grade--ready {
  border-top-color: var(--color-accent);
}

body.epb-site .kp-photo-grade--limiting {
  border-top-color: var(--color-error);
}

body.epb-site .kp-photo-grade .wp-block-image {
  margin: 0 0 var(--space-md);
  overflow: hidden;
}

body.epb-site .kp-photo-grade img {
  aspect-ratio: 1;
  border-radius: var(--radius-image);
  display: block;
  object-fit: cover;
  width: 100%;
}

body.epb-site .kp-photo-grade--limiting .wp-block-image {
  border-radius: var(--radius-image);
}

body.epb-site .kp-photo-grade--limiting img {
  border-radius: 0;
  transform: scale(1.55);
  transform-origin: 50% 36%;
}

body.epb-site .kp-photo-grade :where(h2, p) {
  margin-block: 0;
}

body.epb-site .kp-photo-grade h2 {
  font-size: var(--text-xl);
  margin-bottom: var(--space-sm);
}

body.epb-site .kp-photo-grade p {
  color: var(--color-muted);
  font-size: var(--text-sm);
}

body.epb-site .kp-photo-review {
  background: var(--color-surface);
  border: var(--rule-hair) solid var(--color-rule);
  border-radius: var(--radius-lg);
  margin-block: var(--space-3xl);
  padding: clamp(var(--space-md), 5vw, var(--space-xl));
  scroll-margin-top: calc(var(--banner-height) + var(--space-md));
}

body.epb-site .kp-photo-review > :where(h2, p) {
  margin-block-start: 0;
}

body.epb-site .kp-photo-review > p {
  max-width: 62ch;
}

/* FAQ -------------------------------------------------------------------- */
body.epb-site .kp-faq-section {
  align-items: start;
  display: grid;
  gap: clamp(var(--space-xl), 7vw, var(--space-4xl));
  grid-template-columns: minmax(12rem, 4fr) minmax(0, 8fr);
  margin-block: var(--space-3xl);
}

body.epb-site .kp-faq-section > h2 {
  margin: 0;
}

body.epb-site .kp-faq-section .kp-faq-list {
  margin: 0;
  max-width: none;
}

body.epb-site .kp-faq-list {
  border-bottom: var(--rule-hair) solid var(--color-rule);
  margin-block: var(--space-2xl) var(--space-4xl);
  max-width: var(--page-reading);
}

body.epb-site .kp-faq-list details {
  border-top: var(--rule-hair) solid var(--color-rule);
  margin: 0;
}

body.epb-site .kp-faq-list summary {
  align-items: center;
  color: var(--color-ink);
  cursor: pointer;
  display: flex;
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: 300;
  gap: var(--space-md);
  justify-content: space-between;
  list-style: none;
  min-height: 4.5rem;
  padding-block: var(--space-md);
}

body.epb-site .kp-faq-list summary::-webkit-details-marker {
  display: none;
}

body.epb-site .kp-faq-list summary::after {
  color: var(--color-accent);
  content: "+";
  flex: 0 0 auto;
  font-family: var(--font-body);
  font-size: var(--text-lg);
  font-weight: 400;
  line-height: 1;
  transition: transform var(--dur-enter) var(--ease-out);
}

body.epb-site .kp-faq-list details[open] summary::after {
  transform: rotate(45deg);
}

body.epb-site .kp-faq-list details > p {
  color: var(--color-muted);
  margin: 0;
  max-width: 62ch;
  padding: 0 var(--space-xl) var(--space-lg) 0;
}

/* Forms ------------------------------------------------------------------ */
body.epb-site .epb-intake-wrap {
  background: var(--color-surface);
  border: var(--rule-hair) solid var(--color-rule);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-float);
  margin-block: var(--space-xl) var(--space-3xl);
  max-width: var(--page-reading);
  padding: clamp(var(--space-md), 5vw, var(--space-xl));
}

body.epb-site .epb-intake-form p {
  margin-block: 0 var(--space-md);
}

body.epb-site .epb-intake-form label,
body.epb-site .woocommerce form .form-row label {
  color: var(--color-ink);
  display: block;
  font-size: var(--text-sm);
  font-weight: 600;
  margin-bottom: var(--space-2xs);
}

body.epb-site :where(
  .epb-intake-form input[type="text"],
  .epb-intake-form input[type="email"],
  .epb-intake-form input[type="file"],
  .epb-intake-form select,
  .epb-intake-form textarea,
  .woocommerce input.input-text,
  .woocommerce textarea,
  .woocommerce select,
  .wc-block-components-text-input input,
  .wc-block-components-combobox-control input
) {
  background: var(--color-surface);
  border: var(--rule-hair) solid var(--color-control-border);
  border-radius: var(--radius-control);
  color: var(--color-ink-2);
  font-family: var(--font-body);
  font-size: var(--text-base);
  max-width: 100%;
  min-height: var(--control-height);
  outline: 2px solid transparent;
  outline-offset: 1px;
  padding: var(--space-xs) var(--space-sm);
  transition: background-color var(--dur-hover) var(--ease-out),
    border-color var(--dur-hover) var(--ease-out);
  width: 100%;
}

body.epb-site :where(.epb-intake-form textarea, .woocommerce textarea) {
  min-height: 8rem;
  resize: vertical;
}

body.epb-site :where(.epb-intake-form input, .epb-intake-form textarea, .woocommerce input, .woocommerce textarea)::placeholder {
  color: var(--color-muted);
  opacity: 1;
}

body.epb-site :where(
  .epb-intake-form input,
  .epb-intake-form select,
  .epb-intake-form textarea,
  .woocommerce input.input-text,
  .woocommerce textarea,
  .woocommerce select,
  .wc-block-components-text-input input,
  .wc-block-components-combobox-control input
):focus-visible {
  border-color: var(--color-ink-2);
  outline: 2px solid var(--color-focus);
  outline-offset: 1px;
}

body.epb-site :where(.epb-intake-form input, .epb-intake-form select, .epb-intake-form textarea):disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

body.epb-site :where(.epb-intake-form input, .epb-intake-form select, .epb-intake-form textarea)[aria-invalid="true"],
body.epb-site :where(.epb-intake-form input, .epb-intake-form select, .epb-intake-form textarea):user-invalid {
  background: var(--color-error-soft);
  border-color: var(--color-error);
}

body.epb-site :where(.epb-intake-form input, .epb-intake-form select, .epb-intake-form textarea)[data-state="success"] {
  background: var(--color-success-soft);
  border-color: var(--color-success);
}

body.epb-site .epb-intake-grid {
  display: grid;
  gap: var(--space-md);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.epb-site .epb-intake-form :where(small, .epb-intake-footnote) {
  color: var(--color-muted);
  display: block;
  font-size: var(--text-xs);
  margin-top: var(--space-2xs);
  min-height: 1lh;
}

body.epb-site .epb-intake-consent label {
  align-items: flex-start;
  display: flex;
  font-size: var(--text-sm);
  font-weight: 400;
  gap: var(--space-xs);
  min-height: 44px;
}

body.epb-site .epb-intake-consent input {
  accent-color: var(--color-accent);
  flex: 0 0 auto;
  height: 1.25rem;
  margin-top: var(--space-3xs);
  width: 1.25rem;
}

body.epb-site .wc-block-components-checkbox,
body.epb-site .wc-block-components-checkbox label {
  min-height: 44px;
}

body.epb-site .epb-intake-submit {
  background: var(--color-accent);
  border: var(--rule-hair) solid var(--color-accent);
  border-radius: var(--radius-pill);
  color: var(--color-accent-ink);
  cursor: pointer;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 600;
  min-height: var(--control-height);
  padding: 0 var(--space-md);
  transition: background-color var(--dur-hover) var(--ease-out),
    border-color var(--dur-hover) var(--ease-out),
    transform var(--dur-press) var(--ease-out);
}

body.epb-site .epb-intake-notice {
  border-radius: var(--radius-sm);
  display: grid;
  gap: var(--space-3xs);
  margin-bottom: var(--space-md);
  padding: var(--space-md);
}

body.epb-site .epb-intake-success {
  background: var(--color-success-soft);
  border-left: 3px solid var(--color-success);
  color: var(--color-ink);
}

body.epb-site .epb-intake-error {
  background: var(--color-error-soft);
  border-left: 3px solid var(--color-error);
  color: var(--color-ink);
}

body.epb-site .epb-intake-honeypot {
  height: 1px;
  inset-inline-start: -10000px;
  overflow: hidden;
  position: absolute;
  width: 1px;
}

/* Offer and commerce ----------------------------------------------------- */
body.epb-site .epb-delivery-specs {
  border-bottom: var(--rule-hair) solid var(--color-rule);
  border-radius: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-block: var(--space-xl) var(--space-3xl);
  overflow: visible;
}

body.epb-site .epb-delivery-specs > * {
  border-right: 0;
  border-top: var(--rule-hair) solid var(--color-rule);
  margin: 0;
  padding: var(--space-md) var(--space-md) var(--space-lg) 0;
}

body.epb-site .epb-delivery-specs > * + * {
  border-left: var(--rule-hair) solid var(--color-rule);
  padding-left: var(--space-md);
}

body.epb-site .epb-shop-shell {
  max-width: var(--page-wide);
}

body.epb-site .epb-shop-intro,
body.epb-site .epb-shop-results {
  margin-inline: auto;
  max-width: var(--page-shell);
}

body.epb-site .epb-shop-intro .wp-block-query-title {
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--text-display-s);
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.06;
  margin: 0 0 var(--space-md);
}

body.epb-site .epb-shop-results {
  margin-top: var(--space-3xl);
}

body.epb-site .epb-shop-aftercare {
  border-top: var(--rule-hair) solid var(--color-rule);
  color: var(--color-muted);
  font-size: var(--text-sm);
  margin: var(--space-2xl) auto 0;
  max-width: var(--page-shell);
  padding-top: var(--space-md);
}

body.epb-site .epb-shop-toolbar {
  align-items: center;
  border-bottom: var(--rule-hair) solid var(--color-rule);
  display: flex;
  gap: var(--space-md);
  justify-content: space-between;
  margin-bottom: var(--space-lg);
  padding-bottom: var(--space-sm);
}

body.epb-site .epb-product-grid,
body.epb-site .wp-block-columns.epb-product-grid {
  align-items: start;
  display: grid;
  gap: clamp(var(--space-xl), 6vw, var(--space-4xl));
  grid-template-columns: minmax(0, 7fr) minmax(18rem, 5fr);
  margin-block: var(--space-3xl);
}

body.epb-site .epb-product-card {
  background: transparent;
  border: 0;
  border-radius: 0;
  min-width: 0;
  overflow: visible;
}

body.epb-site .epb-product-card:first-child {
  background: var(--color-surface);
  border: var(--rule-hair) solid var(--color-rule);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-float);
  overflow: hidden;
}

body.epb-site .epb-product-art {
  background: var(--color-paper-2);
  margin: 0;
  min-height: 0;
  overflow: hidden;
}

body.epb-site .epb-product-art img {
  aspect-ratio: 3 / 2;
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}

body.epb-site .epb-product-content {
  padding: var(--space-lg);
}

body.epb-site .epb-product-card + .epb-product-card .epb-product-content {
  border-top: var(--rule-hair) solid var(--color-rule);
  padding: var(--space-lg) 0;
}

body.epb-site .epb-product-content :where(h2, p) {
  margin-block-start: 0;
}

body.epb-site .epb-product-content .wp-block-buttons {
  margin-top: var(--space-lg);
}

body.epb-site :where(
  .woocommerce ul.products li.product,
  .woocommerce div.product,
  .woocommerce-cart-form,
  .woocommerce-checkout-review-order,
  .woocommerce form.checkout_coupon,
  .woocommerce form.login,
  .wc-block-components-sidebar-layout .wc-block-components-main,
  .wc-block-components-sidebar
) {
  background: var(--color-surface);
  border: var(--rule-hair) solid var(--color-rule);
  border-radius: var(--radius-lg);
  color: var(--color-ink-2);
  padding: clamp(var(--space-md), 4vw, var(--space-xl));
}

body.epb-site .woocommerce div.product {
  margin-block: var(--space-xl);
}

body.epb-site .wp-block-woocommerce-product-details.is-style-minimal ul.tabs.wc-tabs li {
  opacity: 1;
}

body.epb-site .wp-block-woocommerce-product-details.is-style-minimal ul.tabs.wc-tabs li:not(.active) a {
  color: var(--color-muted);
}

body.epb-site .wp-block-woocommerce-product-details.is-style-minimal ul.tabs.wc-tabs li.active a {
  color: var(--color-ink);
}

body.epb-site .woocommerce div.product div.images img,
body.epb-site .epb-shop-results :where(.wc-block-components-product-image img, .wc-block-grid__product-image img) {
  border-radius: var(--radius-image);
}

body.epb-site :where(.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner) {
  background: var(--color-accent-soft);
  border: 0;
  border-left: 3px solid var(--color-accent);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  color: var(--color-ink);
}

body.epb-site :where(.woocommerce-error, .is-error.wc-block-components-notice-banner) {
  background: var(--color-error-soft);
  border-left-color: var(--color-error);
}

body.epb-site .woocommerce table.shop_table,
body.epb-site .wc-block-cart-items {
  border: 0;
  border-collapse: collapse;
}

body.epb-site .woocommerce table.shop_table :where(th, td),
body.epb-site .wc-block-cart-items :where(th, td) {
  border-bottom: var(--rule-hair) solid var(--color-rule);
  padding: var(--space-md);
}

body.epb-site .woocommerce-checkout #payment {
  background: var(--color-paper-2);
  border-radius: var(--radius-md);
  color: var(--color-ink-2);
}

body.epb-site .woocommerce-checkout #payment div.payment_box {
  background: var(--color-surface);
  color: var(--color-ink-2);
}

body.epb-site .woocommerce-checkout #payment div.payment_box::before {
  border-bottom-color: var(--color-surface);
}

body.epb-site .epb-order-panel,
body.epb-site .epb-intake-next-step {
  background: var(--color-ink);
  border-radius: var(--radius-lg);
  color: var(--color-paper-3);
  margin-block: var(--space-xl);
  padding: clamp(var(--space-md), 4vw, var(--space-xl));
}

body.epb-site :where(.epb-order-panel, .epb-intake-next-step) :where(h2, h3) {
  color: var(--color-paper);
  margin-top: 0;
}

body.epb-site :where(.epb-order-panel, .epb-intake-next-step) a:not(.button) {
  color: var(--color-paper);
}

/* Long documents --------------------------------------------------------- */
body.epb-site :where(.kp-page-privacy, .kp-page-terms, .kp-page-refunds, .kp-page-shipping, .kp-page-digital-delivery) .epb-content-shell {
  max-width: calc(var(--page-reading) + (var(--page-gutter) * 2));
}

body.epb-site .kp-policy-meta {
  border-bottom: var(--rule-hair) solid var(--color-rule);
  color: var(--color-muted);
  font-size: var(--text-sm);
  margin-bottom: var(--space-2xl);
  padding-bottom: var(--space-md);
}

/* Hover is a pointer-only enhancement ----------------------------------- */
@media (hover: hover) and (pointer: fine) {
  body.epb-site a:not(.wp-element-button):not(.button):not(.wc-block-components-button):hover {
    color: var(--color-link-hover);
    text-decoration-color: var(--color-accent);
  }

  body.epb-site .epb-nav :where(a, .wp-block-navigation-item__content):hover {
    color: var(--color-accent);
  }

  body.epb-site :where(.epb-button, .epb-nav-cta) .wp-block-button__link:hover,
  body.epb-site :where(.wp-element-button, .woocommerce .button, .wc-block-components-button):hover,
  body.epb-site .epb-intake-submit:hover {
    background: var(--color-accent-hover);
    border-color: var(--color-accent-hover);
    box-shadow: var(--shadow-control);
    color: var(--color-accent-ink);
  }

  body.epb-site :where(.epb-button-secondary, .is-style-outline) .wp-block-button__link:hover,
  body.epb-site a.epb-button-secondary:hover {
    background: var(--color-ink);
    border-color: var(--color-ink);
    color: var(--color-paper);
  }

  body.epb-site :where(
    .epb-intake-form input[type="text"],
    .epb-intake-form input[type="email"],
    .epb-intake-form input[type="file"],
    .epb-intake-form select,
    .epb-intake-form textarea,
    .woocommerce input.input-text,
    .woocommerce textarea,
    .woocommerce select
  ):hover {
    background: var(--color-paper-2);
  }

  body.epb-site .kp-faq-list summary:hover {
    color: var(--color-accent);
  }
}

/* Responsive ------------------------------------------------------------- */
@media (min-width: 40rem) {
  body.home.epb-site .kp-step-sequence li,
  body.epb-site .kp-workflow li {
    grid-template-columns: minmax(3rem, 0.5fr) minmax(10rem, 1fr) minmax(0, 2fr);
    gap: var(--space-lg);
  }
}

@media (min-width: 48rem) {
  body.epb-site .epb-service-rail {
    padding-inline: var(--page-gutter);
  }

  body.epb-site .epb-service-rail-mobile {
    display: none;
  }

  body.epb-site .epb-service-rail-desktop {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin: 0 auto;
    max-width: var(--page-wide);
    width: 100%;
  }

  body.epb-site .epb-masthead {
    gap: 0 var(--space-lg);
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    grid-template-rows: 3.5rem auto;
    min-height: 0;
    padding: var(--space-2xs) var(--page-gutter) 0;
  }

  body.epb-site .epb-masthead-meta {
    align-self: center;
    display: grid;
    gap: var(--space-3xs);
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
  }

  body.epb-site .epb-masthead-meta :where(p) {
    font-family: var(--font-body);
    line-height: 1;
    margin: 0;
    white-space: nowrap;
  }

  body.epb-site .epb-masthead-meta-label {
    color: var(--color-ink);
    font-size: var(--text-sm);
    font-weight: 600;
  }

  body.epb-site .epb-masthead-meta-note {
    color: var(--color-muted);
    font-size: var(--text-xs);
  }

  body.epb-site .epb-brand {
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
  }

  body.epb-site .epb-brand .wp-block-site-title {
    font-size: var(--text-xl);
    letter-spacing: -0.04em;
  }

  body.epb-site .kp-brand-note {
    display: block;
  }

  body.epb-site .epb-header-nav {
    grid-column: 3;
    grid-row: 1;
  }

  body.epb-site .epb-nav {
    border-top: var(--rule-hair) solid var(--color-rule);
    grid-column: 1 / -1;
    grid-row: 2;
    justify-self: stretch;
    min-height: 44px;
  }

  body.epb-site .epb-nav .wp-block-navigation__container {
    margin-inline: auto;
  }

  body.epb-site .epb-nav-link--promise {
    margin-inline-start: var(--space-xs);
    padding-inline-start: var(--space-xs);
  }

  body.epb-site .epb-nav-link--promise::before {
    background: var(--color-rule);
    content: "";
    height: 1rem;
    inset-inline-start: calc(var(--space-xs) * -1);
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: var(--rule-hair);
  }

  body.epb-site.kp-page-examples .epb-nav-link--examples::after,
  body.epb-site.kp-page-how-it-works .epb-nav-link--how::after,
  body.epb-site.kp-page-photo-guide .epb-nav-link--photo::after,
  body.epb-site.kp-page-studio-promise .epb-nav-link--promise::after,
  body.epb-site.kp-page-faq .epb-nav-link--faq::after,
  body.epb-site .epb-nav .wp-block-navigation-item:has(> .wp-block-navigation-item__content[aria-current="page"])::after {
    background: var(--color-accent);
    bottom: 0;
    content: "";
    height: 2px;
    inset-inline: 0;
    position: absolute;
  }
}

@media (min-width: 60rem) {
  body.home.epb-site .kp-text-fold,
  body.home.epb-site .kp-order-fold {
    align-items: start;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  }

  body.home.epb-site .kp-portrait-plate--wide .kp-portrait-plate__image {
    width: 82%;
  }

  body.home.epb-site .kp-portrait-plate--offset {
    align-items: end;
    grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
  }
}

@media (max-width: 64rem) {
  body.epb-site .epb-header-nav {
    gap: var(--space-xs);
  }

  body.epb-site .epb-nav,
  body.epb-site .epb-nav .wp-block-navigation__container {
    gap: var(--space-sm);
  }

  body.epb-site .epb-product-grid,
  body.epb-site .wp-block-columns.epb-product-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 47.999rem) {
  :root {
    --banner-height: 4rem;
  }

  body.epb-site .epb-masthead {
    gap: var(--space-xs);
    grid-template-columns: minmax(0, 1fr) auto auto;
    padding-inline: var(--space-sm);
  }

  body.epb-site .epb-nav {
    justify-self: end;
  }

  body.epb-site .epb-header .epb-header-actions {
    display: flex !important;
  }

  body.epb-site .epb-brand-mark {
    display: none;
  }

  body.epb-site .epb-content-shell,
  body.epb-site .epb-shop-shell {
    padding: var(--space-xl) var(--space-sm) var(--space-3xl);
  }

  body.epb-site .epb-content-shell > .wp-block-post-title {
    margin-bottom: var(--space-lg);
  }

  body.home.epb-site .kp-photo-hero {
    min-height: 0;
    overflow: visible;
  }

  body.home.epb-site .kp-photo-hero::after {
    content: none;
  }

  body.home.epb-site .kp-photo-hero__image {
    height: 52svh;
    min-height: 20rem;
  }

  body.home.epb-site .kp-photo-hero__image img {
    object-position: 68% center;
  }

  body.home.epb-site .kp-photo-hero__caption {
    background: var(--color-paper);
    max-width: none;
    padding: var(--space-lg) var(--space-sm) var(--space-2xl);
    position: static;
    width: 100%;
  }

  body.home.epb-site .kp-photo-hero__caption h1 {
    font-size: var(--text-2xl);
    max-width: 14ch;
  }

  body.home.epb-site .kp-hero-lede {
    font-size: var(--text-base);
  }

  body.home.epb-site :where(.kp-text-fold, .kp-section-head, .kp-portrait-plate, .kp-process, .kp-order-fold) {
    padding-inline: var(--space-sm);
  }

  body.home.epb-site .kp-proof-story {
    gap: var(--space-2xl);
    grid-template-columns: minmax(0, 1fr);
    padding: var(--space-3xl) var(--space-sm);
  }

  body.home.epb-site .kp-direction-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding-inline: var(--space-sm);
  }

  body.home.epb-site .kp-direction-strip__item--lead {
    grid-column: 1 / -1;
  }

  body.home.epb-site .kp-direction-strip__item--lead img {
    aspect-ratio: 3 / 2;
  }

  body.home.epb-site .kp-archive > .has-text-align-right {
    padding-inline: var(--space-sm);
  }

  body.home.epb-site :where(.kp-text-fold, .kp-process, .kp-order-fold) {
    padding-block: var(--space-3xl);
  }

  body.home.epb-site .kp-archive {
    padding-block: var(--space-3xl);
  }

  body.home.epb-site .kp-portrait-plate--offset {
    margin-block-start: var(--space-3xl);
  }

  body.home.epb-site .kp-portrait-plate--offset .kp-portrait-plate__note {
    order: 2;
  }

  body.epb-site .kp-split-section,
  body.epb-site .kp-gallery-entry,
  body.epb-site .kp-gallery-entry:nth-child(even) {
    grid-template-columns: minmax(0, 1fr);
  }

  body.epb-site .kp-gallery-entry:nth-child(even) > .wp-block-image {
    order: 0;
  }

  body.epb-site .kp-gallery-entry:nth-child(even) .kp-gallery-entry__pair {
    order: 0;
  }

  body.epb-site .kp-gallery-entry__caption {
    padding-bottom: 0;
  }

  body.epb-site .kp-photo-grades,
  body.epb-site .kp-faq-section {
    grid-template-columns: minmax(0, 1fr);
  }

  body.epb-site .kp-photo-grades {
    gap: var(--space-xl);
  }

  body.epb-site .epb-detail-grid,
  body.epb-site .wp-block-columns.epb-detail-grid,
  body.epb-site .epb-delivery-specs {
    grid-template-columns: 1fr;
  }

  body.epb-site .epb-detail-card + .epb-detail-card,
  body.epb-site .epb-delivery-specs > * + * {
    border-left: 0;
    padding-left: 0;
  }

  body.epb-site .epb-intake-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }

  body.epb-site .epb-footer-inner {
    grid-template-columns: 1fr 1fr;
  }

  body.epb-site .epb-footer-inner > div:first-child {
    grid-column: 1 / -1;
  }
}

/* WordPress switches the navigation from its native sheet to inline links at
   600px. Give that in-between range a dedicated two-row masthead so five
   destinations never compete with the brand and purchase action. */
@media (min-width: 37.5rem) and (max-width: 47.999rem) {
  body.epb-site .epb-masthead {
    gap: 0 var(--space-lg);
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: 3.5rem auto;
    min-height: 0;
    padding: var(--space-2xs) var(--page-gutter) 0;
  }

  body.epb-site .epb-brand {
    grid-column: 1;
    grid-row: 1;
  }

  body.epb-site .epb-header-nav {
    grid-column: 2;
    grid-row: 1;
  }

  body.epb-site .epb-nav {
    border-top: var(--rule-hair) solid var(--color-rule);
    grid-column: 1 / -1;
    grid-row: 2;
    justify-self: stretch;
    min-height: 44px;
  }

  body.epb-site .epb-nav .wp-block-navigation__container {
    margin-inline: auto;
  }

  body.epb-site .epb-nav-link--promise {
    margin-inline-start: var(--space-xs);
    padding-inline-start: var(--space-xs);
  }

  body.epb-site .epb-nav-link--promise::before {
    background: var(--color-rule);
    content: "";
    height: 1rem;
    inset-inline-start: calc(var(--space-xs) * -1);
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: var(--rule-hair);
  }

  body.epb-site.kp-page-examples .epb-nav-link--examples::after,
  body.epb-site.kp-page-how-it-works .epb-nav-link--how::after,
  body.epb-site.kp-page-photo-guide .epb-nav-link--photo::after,
  body.epb-site.kp-page-studio-promise .epb-nav-link--promise::after,
  body.epb-site.kp-page-faq .epb-nav-link--faq::after,
  body.epb-site .epb-nav .wp-block-navigation-item:has(> .wp-block-navigation-item__content[aria-current="page"])::after {
    background: var(--color-accent);
    bottom: 0;
    content: "";
    height: 2px;
    inset-inline: 0;
    position: absolute;
  }
}

@media (max-width: 30rem) {
  body.epb-site h1 {
    font-size: clamp(2.25rem, 13vw, 3rem);
    overflow-wrap: anywhere;
  }

  body.epb-site .wp-block-buttons,
  body.epb-site .epb-actions {
    align-items: stretch;
    flex-direction: column;
    width: 100%;
  }

  body.epb-site .wp-block-buttons > .wp-block-button,
  body.epb-site .wp-block-buttons .wp-block-button__link,
  body.epb-site .epb-actions > .wp-block-button,
  body.epb-site .epb-actions .wp-block-button__link {
    width: 100%;
  }

  body.epb-site .epb-masthead {
    gap: var(--space-xs);
    padding-inline: var(--space-xs);
  }

  body.epb-site .epb-header .epb-header-actions {
    align-items: center;
    flex-direction: row;
    width: auto;
  }

  body.epb-site .epb-header .epb-header-actions > .wp-block-button,
  body.epb-site .epb-header .epb-header-actions .wp-block-button__link {
    width: auto;
  }

  body.epb-site .epb-nav-cta .wp-block-button__link {
    font-size: var(--text-xs);
    padding-inline: var(--space-xs);
  }

  body.home.epb-site .kp-direction-strip {
    grid-template-columns: minmax(0, 1fr);
  }

  body.home.epb-site .kp-direction-strip__item--lead {
    grid-column: auto;
  }

  body.home.epb-site .kp-direction-strip__item--lead img {
    aspect-ratio: 4 / 5;
  }

  body.home.epb-site .kp-spec-sheet :where(th, td),
  body.epb-site .kp-spec-sheet :where(th, td) {
    display: block;
    width: 100%;
  }

  body.home.epb-site .kp-spec-sheet th,
  body.epb-site .kp-spec-sheet th {
    border-bottom: 0;
    padding-bottom: 0;
  }

  body.home.epb-site .kp-spec-sheet td,
  body.epb-site .kp-spec-sheet td {
    border-top: 0;
    padding-top: var(--space-3xs);
  }

  body.epb-site .epb-footer-inner {
    grid-template-columns: 1fr;
  }

  body.epb-site .epb-footer-inner > div:first-child {
    grid-column: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  body.epb-site *,
  body.epb-site *::before,
  body.epb-site *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }

  body.epb-site :where(button, .wp-element-button, .button, [role="button"]):active,
  body.home.epb-site .kp-type-link:active {
    transform: none;
  }
}

/* Apple-first two-level navigation --------------------------------------- */
body.epb-site .epb-header {
  background: transparent;
  border: 0;
  border-bottom: var(--rule-hair) solid var(--color-rule);
  display: block;
  isolation: isolate;
  min-height: 0;
  padding: 0;
  position: sticky;
  text-align: start;
  top: 0;
  z-index: var(--z-sticky-nav);
}

body.epb-site .epb-header::before {
  background: var(--color-surface-glass);
  content: "";
  display: block;
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}

@supports (backdrop-filter: blur(1rem)) {
  body.epb-site .epb-header::before {
    -webkit-backdrop-filter: saturate(1.35) blur(var(--blur-nav));
    backdrop-filter: saturate(1.35) blur(var(--blur-nav));
  }
}

body.epb-site :where(.epb-global-nav, .epb-local-nav) {
  margin: 0 auto;
  max-width: var(--page-nav);
  padding-inline: var(--space-sm);
  position: relative;
  width: 100%;
  z-index: var(--z-base);
}

body.epb-site .epb-global-nav {
  align-items: center;
  display: grid;
  column-gap: var(--space-sm);
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 2.75rem;
  row-gap: 0;
  z-index: var(--z-raised);
}

body.epb-site .epb-global-nav > * {
  margin-block: 0;
}

body.epb-site .epb-brand {
  align-items: center;
  color: var(--color-ink);
  display: inline-flex;
  gap: var(--space-2xs);
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  min-width: 0;
}

body.epb-site .epb-brand-mark {
  align-items: center;
  background: var(--color-ink);
  border-radius: var(--radius-xs);
  color: var(--color-paper);
  display: inline-flex;
  flex: 0 0 auto;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: 600;
  height: 1.5rem;
  justify-content: center;
  letter-spacing: -0.04em;
  margin: 0;
  width: 1.5rem;
}

body.epb-site .epb-brand .wp-block-site-title {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: -0.015em;
  line-height: 1;
  margin: 0;
}

body.epb-site .epb-brand .wp-block-site-title a {
  color: var(--color-ink);
  text-decoration: none;
  white-space: nowrap;
}

body.epb-site .epb-nav,
body.epb-site .epb-nav .wp-block-navigation__container {
  align-items: center;
  display: flex;
  gap: var(--space-sm);
  justify-content: flex-end;
}

body.epb-site .epb-nav {
  border: 0;
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
  min-height: 44px;
}

body.epb-site .epb-nav .wp-block-navigation-item {
  border: 0;
  margin: 0;
  padding: 0;
  position: relative;
}

body.epb-site .epb-nav-link--promise {
  margin-inline-start: 0;
  padding-inline-start: 0;
}

body.epb-site .epb-nav-link--promise::before,
body.epb-site.kp-page-examples .epb-nav-link--examples::after,
body.epb-site.kp-page-how-it-works .epb-nav-link--how::after,
body.epb-site.kp-page-photo-guide .epb-nav-link--photo::after,
body.epb-site.kp-page-studio-promise .epb-nav-link--promise::after,
body.epb-site.kp-page-faq .epb-nav-link--faq::after,
body.epb-site .epb-nav .wp-block-navigation-item:has(> .wp-block-navigation-item__content[aria-current="page"])::after {
  content: none;
  display: none;
}

body.epb-site .epb-nav :where(a, .wp-block-navigation-item__content) {
  color: var(--color-ink-2);
  display: inline-flex;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: 400;
  line-height: 1;
  min-height: 44px;
  padding: 0;
  text-decoration: none;
  white-space: nowrap;
}

body.epb-site.kp-page-examples .epb-nav-link--examples > .wp-block-navigation-item__content,
body.epb-site.kp-page-how-it-works .epb-nav-link--how > .wp-block-navigation-item__content,
body.epb-site.kp-page-photo-guide .epb-nav-link--photo > .wp-block-navigation-item__content,
body.epb-site.kp-page-studio-promise .epb-nav-link--promise > .wp-block-navigation-item__content,
body.epb-site.kp-page-faq .epb-nav-link--faq > .wp-block-navigation-item__content,
body.epb-site .epb-nav .wp-block-navigation-item__content[aria-current="page"] {
  color: var(--color-ink);
  font-weight: 600;
}

body.epb-site .epb-local-nav {
  align-items: center;
  border-top: var(--rule-hair) solid var(--color-rule);
  display: grid;
  gap: var(--space-sm);
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 3.5rem;
}

body.epb-site .epb-local-identity {
  display: grid;
  gap: var(--space-3xs);
  min-width: 0;
}

body.epb-site .epb-local-identity :where(p),
body.epb-site .epb-local-actions > p {
  font-family: var(--font-body);
  margin: 0;
}

body.epb-site .epb-local-title {
  color: var(--color-ink);
  font-size: var(--text-md);
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1;
  white-space: nowrap;
}

body.epb-site .epb-local-subtitle,
body.epb-site .epb-local-spec {
  color: var(--color-muted);
  font-size: var(--text-xs);
  line-height: 1;
  white-space: nowrap;
}

body.epb-site .epb-local-actions {
  align-items: center;
  display: flex;
  gap: var(--space-sm);
  justify-content: flex-end;
  margin-block: 0;
  min-width: 0;
}

body.epb-site .epb-local-spec {
  display: none;
}

body.epb-site .epb-header-actions {
  align-items: center;
  display: flex;
  flex-direction: row;
  width: auto;
}

body.epb-site .epb-header .epb-header-actions > .wp-block-button,
body.epb-site .epb-header .epb-header-actions .wp-block-button__link {
  width: auto;
}

body.epb-site .epb-header .epb-nav-cta .wp-block-button__link {
  font-size: var(--text-xs);
  min-height: 44px;
  padding-inline: var(--space-sm);
  white-space: nowrap;
}

body.epb-site .epb-header .epb-nav-cta:active .wp-block-button__link {
  transform: scale(0.97);
}

body.epb-site .wp-block-navigation__responsive-container.is-menu-open {
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  background: var(--color-surface);
  color: var(--color-ink);
  padding: var(--space-md) var(--page-gutter) var(--space-xl);
}

body.epb-site .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  align-items: stretch;
  justify-content: flex-start;
  padding-top: var(--space-md);
}

body.epb-site .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content::before {
  color: var(--color-ink);
  content: "KeptPaw";
  display: block;
  font-family: var(--font-body);
  font-size: var(--text-md);
  font-variant-caps: normal;
  font-weight: 600;
  letter-spacing: -0.02em;
  margin-bottom: var(--space-lg);
}

body.epb-site .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  align-items: stretch;
  gap: var(--space-2xs);
  width: 100%;
}

body.epb-site .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
body.epb-site .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:last-child {
  border: 0;
  width: 100%;
}

body.epb-site .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  color: var(--color-ink);
  font-family: var(--font-body);
  font-size: var(--text-xl);
  font-weight: 600;
  justify-content: space-between;
  letter-spacing: -0.025em;
  min-height: 3.5rem;
  padding: var(--space-2xs) 0;
  width: 100%;
}

body.epb-site.kp-page-examples .wp-block-navigation__responsive-container.is-menu-open .epb-nav-link--examples > .wp-block-navigation-item__content::after,
body.epb-site.kp-page-how-it-works .wp-block-navigation__responsive-container.is-menu-open .epb-nav-link--how > .wp-block-navigation-item__content::after,
body.epb-site.kp-page-photo-guide .wp-block-navigation__responsive-container.is-menu-open .epb-nav-link--photo > .wp-block-navigation-item__content::after,
body.epb-site.kp-page-studio-promise .wp-block-navigation__responsive-container.is-menu-open .epb-nav-link--promise > .wp-block-navigation-item__content::after,
body.epb-site.kp-page-faq .wp-block-navigation__responsive-container.is-menu-open .epb-nav-link--faq > .wp-block-navigation-item__content::after,
body.epb-site .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content[aria-current="page"]::after {
  color: var(--color-muted);
  content: "Current";
  display: inline;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0;
}

@media (min-width: 37.5rem) {
  body.epb-site :where(.epb-global-nav, .epb-local-nav) {
    padding-inline: var(--page-gutter);
  }

  body.epb-site .epb-global-nav {
    min-height: 2.75rem;
  }
}

@media (min-width: 60rem) {
  body.epb-site .epb-local-spec {
    display: block;
  }
}

@media (max-width: 22rem) {
  body.epb-site .epb-local-title {
    font-size: var(--text-base);
  }

  body.epb-site .epb-header .epb-nav-cta .wp-block-button__link {
    padding-inline: var(--space-xs);
  }
}

@media (hover: hover) and (pointer: fine) {
  body.epb-site .epb-nav :where(a, .wp-block-navigation-item__content):hover {
    color: var(--color-ink);
  }
}

@media (prefers-reduced-transparency: reduce) {
  body.epb-site .epb-header::before,
  body.epb-site .wp-block-navigation__responsive-container.is-menu-open {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background: var(--color-surface);
  }
}

@media (prefers-contrast: more) {
  body.epb-site .epb-header::before,
  body.epb-site .wp-block-navigation__responsive-container.is-menu-open {
    background: var(--color-surface);
  }

  body.epb-site .epb-header {
    border-bottom-color: var(--color-rule-2);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.epb-site .epb-header .epb-nav-cta:active .wp-block-button__link {
    transform: none;
  }
}

/* Apple product system · 2.3.7 ------------------------------------------ */
body.epb-site {
  background: var(--color-paper);
  color: var(--color-ink-2);
  font-family: var(--font-body);
  font-size: var(--text-base);
  letter-spacing: -0.011em;
  line-height: 1.5;
}

body.epb-site :where(h1, h2, h3, h4, h5, h6, .wp-block-site-title) {
  color: var(--color-ink);
  font-family: var(--font-display);
  font-style: normal;
  font-weight: 700;
  letter-spacing: -0.04em;
}

body.epb-site :where(.epb-button, .epb-nav-cta) .wp-block-button__link,
body.epb-site :where(.wp-element-button, .woocommerce .button, .wc-block-components-button),
body.epb-site .epb-intake-submit {
  background: var(--color-accent);
  border-color: var(--color-accent);
  border-radius: var(--radius-pill);
  color: var(--color-accent-ink);
  font-family: var(--font-body);
  font-weight: 600;
  min-height: 44px;
  transition: background-color var(--dur-hover) var(--ease-out),
              border-color var(--dur-hover) var(--ease-out),
              transform var(--dur-press) var(--ease-out);
  white-space: nowrap;
}

body.epb-site :where(.epb-button-secondary, .is-style-outline) .wp-block-button__link,
body.epb-site a.epb-button-secondary {
  background: transparent;
  border-color: var(--color-accent);
  color: var(--color-accent);
}

body.epb-site :where(.epb-button, .epb-nav-cta) .wp-block-button__link:active,
body.epb-site :where(.wp-element-button, .woocommerce .button, .wc-block-components-button):active,
body.epb-site .epb-intake-submit:active {
  background: var(--color-accent-pressed);
  border-color: var(--color-accent-pressed);
  transform: scale(0.98);
}

body.epb-site :where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 3px;
}

/* Translucent global and local navigation. */
body.epb-site .epb-header {
  border-bottom-color: var(--color-rule);
}

body.epb-site .epb-header::before {
  background: var(--color-surface-glass);
}

body.epb-site .epb-global-nav {
  min-height: 2.75rem;
}

body.epb-site .epb-brand-mark {
  background: var(--color-ink);
  border-radius: var(--radius-xs);
  color: var(--color-surface);
  display: inline-flex;
}

body.epb-site .epb-brand .wp-block-site-title,
body.epb-site .epb-brand .wp-block-site-title a {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: -0.02em;
}

body.epb-site .epb-nav :where(a, .wp-block-navigation-item__content) {
  color: var(--color-ink-2);
  font-size: var(--text-xs);
  letter-spacing: -0.01em;
}

body.epb-site .epb-local-nav {
  border-top-color: var(--color-rule);
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 3.5rem;
}

body.epb-site .epb-local-title {
  font-size: var(--text-base);
  font-weight: 600;
  letter-spacing: -0.025em;
}

body.epb-site .epb-local-subtitle {
  color: var(--color-muted);
  font-size: var(--text-xs);
}

body.epb-site .epb-local-links {
  align-items: center;
  display: none;
  gap: var(--space-sm);
  margin: 0;
}

body.epb-site .epb-local-links p {
  margin: 0;
}

body.epb-site .epb-local-links a {
  align-items: center;
  color: var(--color-ink-2);
  display: inline-flex;
  font-size: var(--text-xs);
  min-height: 44px;
  text-decoration: none;
  white-space: nowrap;
}

body.epb-site .epb-local-links a[aria-current="page"] {
  color: var(--color-muted);
  pointer-events: none;
}

body.epb-site .epb-local-spec {
  display: none;
}

body.epb-site .epb-header .epb-nav-cta .wp-block-button__link {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: var(--color-accent-ink);
  font-size: var(--text-xs);
  min-height: 44px;
  padding-inline: var(--space-sm);
}

/* Better Interface deep audit · commerce and account corrections. */
body.epb-site .epb-shop-results .epb-shop-product-info {
  margin: 0;
  min-width: 0;
}

body.epb-site .epb-shop-results .epb-shop-product-info > * {
  margin-block-start: 0;
}

body.epb-site .epb-shop-results .epb-shop-product-info .wp-block-post-title {
  font-size: var(--text-xl) !important;
  line-height: 1.1;
  margin-bottom: var(--space-sm);
}

body.epb-site .epb-shop-results .epb-shop-product-info .wp-block-post-title a {
  color: var(--color-ink);
  text-decoration: none;
}

body.epb-site .epb-shop-results .epb-shop-product-info .wp-block-woocommerce-product-price {
  color: var(--color-ink-2);
  font-size: var(--text-md) !important;
  font-variant-numeric: tabular-nums;
  margin-bottom: var(--space-lg);
}

body.epb-site .epb-shop-results .epb-shop-product-info .wp-block-woocommerce-product-button {
  margin: 0;
}

body.epb-site.kp-page-my-account .woocommerce {
  margin-inline: auto;
  max-width: 40rem;
  width: 100%;
}

body.epb-site .woocommerce form .show-password-input {
  height: 44px;
  min-height: 44px;
  min-width: 44px;
  transform: translateY(-50%);
  width: 44px;
}

body.epb-site .woocommerce.product div.images .woocommerce-product-gallery__trigger {
  align-items: center;
  display: inline-flex;
  height: 44px;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
  width: 44px;
}

body.epb-site.kp-page-my-account .woocommerce form .form-row input.input-text {
  font-size: var(--text-base);
}

body.epb-site.kp-page-my-account .woocommerce form .woocommerce-form-login__rememberme {
  align-items: center;
  display: flex;
  gap: var(--space-2xs);
  min-height: 44px;
}

body.epb-site.kp-page-my-account .woocommerce form .woocommerce-form-login__rememberme input[type="checkbox"] {
  flex: 0 0 auto;
  height: 1rem;
  margin: 0;
  width: 1rem;
}

@media (min-width: 48rem) {
  body.epb-site .epb-shop-results .wp-block-woocommerce-product-template > .wc-block-product {
    align-items: center;
    column-gap: clamp(var(--space-xl), 6vw, var(--space-4xl));
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(18rem, 5fr);
  }

  body.epb-site .epb-shop-results .wc-block-components-product-image {
    margin: 0;
    min-width: 0;
  }
}

@media (max-width: 47.999rem) {
  body.epb-site .epb-shop-results .epb-shop-product-info {
    padding-top: var(--space-md);
  }
}

body.epb-site .wp-block-navigation__responsive-container.is-menu-open {
  background: var(--color-surface-glass-heavy);
}

@supports (backdrop-filter: blur(1rem)) {
  body.epb-site .wp-block-navigation__responsive-container.is-menu-open {
    -webkit-backdrop-filter: saturate(1.45) blur(var(--blur-nav));
    backdrop-filter: saturate(1.45) blur(var(--blur-nav));
  }
}

/* Homepage product stage. */
body.home.epb-site .kp-apple-home {
  background: var(--color-paper);
  color: var(--color-ink-2);
  padding-block-end: var(--space-xl);
}

body.home.epb-site .kp-apple-home a {
  white-space: nowrap;
}

body.home.epb-site .kp-apple-hero {
  background: var(--color-surface);
  display: grid;
  grid-template-areas:
    "visual"
    "copy";
  margin: 0;
  min-height: 0;
  overflow: hidden;
  position: relative;
}

body.home.epb-site .kp-apple-hero::after {
  content: none;
}

body.home.epb-site .kp-apple-hero .kp-photo-hero__image {
  grid-area: visual;
  height: auto;
  margin: 0;
  min-height: 0;
  width: 100%;
}

body.home.epb-site .kp-apple-hero .kp-photo-hero__image img {
  aspect-ratio: 4 / 3;
  border-radius: 0;
  display: block;
  height: auto;
  object-fit: cover;
  object-position: 62% center;
  width: 100%;
}

body.home.epb-site .kp-apple-hero .kp-photo-hero__caption {
  align-content: center;
  background: var(--color-surface);
  display: grid;
  grid-area: copy;
  inset: auto;
  max-width: none;
  padding: var(--space-xl) var(--space-sm) var(--space-3xl);
  position: static;
  width: 100%;
}

body.home.epb-site .kp-apple-hero .kp-plate-caption {
  color: var(--color-accent);
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: -0.01em;
  margin-bottom: var(--space-sm);
}

body.home.epb-site .kp-apple-hero .kp-photo-hero__caption h1 {
  font-size: clamp(2.75rem, 12vw, 4.25rem);
  font-weight: 700;
  letter-spacing: -0.055em;
  line-height: 0.98;
  margin: 0 0 var(--space-md);
  max-width: 11ch;
}

body.home.epb-site .kp-apple-hero .kp-hero-lede {
  color: var(--color-ink-2);
  font-size: var(--text-base);
  line-height: 1.45;
  margin: 0;
  max-width: 38ch;
}

body.home.epb-site .kp-apple-hero .epb-actions {
  gap: var(--space-xs);
  margin-top: var(--space-lg);
}

body.home.epb-site .kp-apple-hero .kp-hero-facts {
  color: var(--color-muted);
  font-size: var(--text-xs);
  font-weight: 400;
  letter-spacing: 0;
  margin-top: var(--space-sm);
}

/* Large proof card. */
body.home.epb-site .kp-apple-proof {
  align-items: center;
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  display: grid;
  gap: var(--space-xl);
  grid-template-columns: minmax(0, 1fr);
  margin: var(--space-md) var(--space-sm) 0;
  max-width: none;
  padding: var(--space-xl) var(--space-md);
}

body.home.epb-site .kp-apple-proof h2 {
  font-size: var(--text-display-s);
  font-weight: 700;
  letter-spacing: -0.05em;
  line-height: 1;
}

body.home.epb-site .kp-apple-proof .kp-lede {
  color: var(--color-ink-2);
  font-family: var(--font-body);
  font-size: var(--text-md);
  font-weight: 600;
}

body.home.epb-site .kp-apple-proof .kp-preservation-list {
  border-bottom: var(--rule-hair) solid var(--color-rule);
  display: grid;
  gap: 0;
  margin-top: var(--space-lg);
}

body.home.epb-site .kp-apple-proof .kp-preservation-list li {
  background: transparent;
  border: 0;
  border-top: var(--rule-hair) solid var(--color-rule);
  border-radius: 0;
  padding: var(--space-sm) 0;
}

body.home.epb-site .kp-apple-proof .kp-preservation-list strong {
  color: var(--color-ink);
  font-size: var(--text-base);
}

body.home.epb-site .kp-apple-proof .kp-before-after {
  align-items: stretch;
  gap: var(--space-xs);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.home.epb-site .kp-apple-proof .kp-before-after__figure {
  background: transparent;
  border-radius: 0;
  display: flex;
  flex-direction: column;
  overflow: visible;
}

body.home.epb-site .kp-apple-proof .kp-before-after__figure img,
body.home.epb-site .kp-apple-proof .kp-before-after__figure--finished img {
  aspect-ratio: 1;
  border-radius: var(--radius-md);
  flex: 1;
  height: 100%;
  object-fit: cover;
}

body.home.epb-site .kp-apple-proof .kp-before-after figcaption {
  color: var(--color-muted);
  padding: var(--space-xs) 0 0;
}

body.home.epb-site .kp-apple-proof .kp-studio-example-note {
  color: var(--color-muted);
  margin-top: var(--space-xs);
}

/* Apple-style asymmetric portrait tiles. */
body.home.epb-site .kp-apple-gallery {
  background: transparent;
  margin-inline: auto;
  max-width: var(--page-wide);
  padding: var(--space-3xl) var(--space-sm);
}

body.home.epb-site .kp-apple-gallery .kp-section-head {
  max-width: var(--page-shell);
  padding: 0 0 var(--space-xl);
}

body.home.epb-site .kp-apple-gallery .kp-section-head h2 {
  font-size: var(--text-display-s);
  font-weight: 700;
  letter-spacing: -0.05em;
  line-height: 1;
  max-width: 14ch;
}

body.home.epb-site .kp-apple-gallery .kp-section-head p {
  color: var(--color-muted);
  font-size: var(--text-md);
}

body.home.epb-site .kp-apple-gallery .kp-direction-strip {
  display: grid;
  gap: var(--space-sm);
  grid-template-columns: minmax(0, 1fr);
  max-width: none;
  padding: 0;
}

body.home.epb-site .kp-apple-gallery .kp-direction-strip__item,
body.home.epb-site .kp-apple-gallery .kp-direction-strip__item--lead {
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  display: flex;
  flex-direction: column;
  grid-column: auto;
  grid-row: auto;
  height: auto;
  margin: 0;
  min-height: 0;
  overflow: hidden;
}

body.home.epb-site .kp-apple-gallery .kp-direction-strip__item img,
body.home.epb-site .kp-apple-gallery .kp-direction-strip__item--lead img {
  aspect-ratio: 4 / 3;
  border-radius: 0;
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}

body.home.epb-site .kp-apple-gallery .kp-direction-strip__item figcaption {
  gap: var(--space-2xs);
  margin: 0;
  padding: var(--space-md) var(--space-md) var(--space-lg);
}

body.home.epb-site .kp-apple-gallery .kp-direction-strip__item figcaption strong {
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: 700;
  letter-spacing: -0.035em;
}

body.home.epb-site .kp-apple-gallery .kp-direction-strip__item figcaption span {
  color: var(--color-muted);
  font-size: var(--text-base);
}

body.home.epb-site .kp-apple-gallery > .has-text-align-right {
  margin: var(--space-md) 0 0;
  max-width: none;
  padding: 0;
}

body.home.epb-site .kp-type-link {
  color: var(--color-accent);
  text-decoration: none;
}

/* Four-step product workflow. */
body.home.epb-site .kp-apple-process {
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  margin: 0 auto var(--space-md);
  max-width: var(--page-wide);
  padding: var(--space-xl) var(--space-sm);
}

body.home.epb-site .kp-apple-process .kp-section-head,
body.home.epb-site .kp-apple-faq .kp-section-head {
  margin-inline: 0;
  max-width: none;
  padding: 0 0 var(--space-xl);
  width: 100%;
}

body.home.epb-site :where(.kp-apple-process, .kp-apple-faq) .kp-section-head h2 {
  font-size: var(--text-display-s);
  font-weight: 700;
  letter-spacing: -0.05em;
  line-height: 1;
  max-width: 13ch;
}

body.home.epb-site :where(.kp-apple-process, .kp-apple-faq) .kp-section-head p {
  color: var(--color-muted);
  font-size: var(--text-base);
}

body.home.epb-site .kp-apple-process .kp-step-sequence {
  display: grid;
  gap: var(--space-xs);
  grid-template-columns: minmax(0, 1fr);
}

body.home.epb-site .kp-apple-process .kp-step-sequence li {
  align-content: start;
  background: var(--color-paper);
  border: 0;
  border-radius: var(--radius-md);
  display: grid;
  gap: var(--space-sm);
  grid-template-columns: minmax(0, 1fr);
  min-height: 14rem;
  padding: var(--space-lg);
}

body.home.epb-site .kp-apple-process .kp-step-sequence__number {
  color: var(--color-accent);
  font-size: var(--text-sm);
  font-weight: 600;
}

body.home.epb-site .kp-apple-process .kp-step-sequence strong {
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.15;
}

body.home.epb-site .kp-apple-process > p:last-child {
  margin-bottom: 0;
  margin-top: var(--space-md);
}

/* FAQ stays open and spacious rather than becoming card-in-card. */
body.home.epb-site .kp-apple-faq {
  background: transparent;
  border-radius: 0;
  display: grid;
  gap: var(--space-xl);
  margin: 0 auto;
  max-width: var(--page-wide);
  padding: var(--space-3xl) var(--space-sm);
}

body.home.epb-site .kp-apple-faq .kp-faq-list {
  border-bottom: 0;
  display: grid;
  gap: var(--space-xs);
  margin: 0;
  max-width: none;
}

body.home.epb-site .kp-apple-faq .kp-faq-list details {
  background: var(--color-surface);
  border: 0;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

body.home.epb-site .kp-apple-faq .kp-faq-list summary {
  color: var(--color-ink);
  font-size: var(--text-base);
  font-weight: 600;
  min-height: 4.5rem;
  padding: var(--space-md) var(--space-xl) var(--space-md) var(--space-md);
}

body.home.epb-site .kp-apple-faq .kp-faq-list details > p {
  color: var(--color-muted);
  padding: 0 var(--space-md) var(--space-md);
}

body.home.epb-site .kp-apple-faq > p:last-child {
  margin: 0;
}

/* Dark purchase stage: one clear action and one clear price. */
body.home.epb-site .kp-apple-offer {
  background: var(--color-ink);
  border-radius: var(--radius-lg);
  color: var(--color-paper-3);
  display: grid;
  gap: var(--space-xl);
  margin: 0 var(--space-sm) var(--space-md);
  max-width: none;
  padding: var(--space-xl) var(--space-md);
}

body.home.epb-site .kp-apple-offer :where(h2, h3, th, strong) {
  color: var(--color-surface);
}

body.home.epb-site .kp-apple-offer .kp-order-fold__offer h2 {
  font-size: var(--text-display-s);
  font-weight: 700;
  letter-spacing: -0.055em;
  line-height: 0.96;
}

body.home.epb-site .kp-apple-offer .kp-order-fold__offer > p {
  color: var(--color-paper-3);
  font-size: var(--text-md);
  max-width: 32ch;
}

body.home.epb-site .kp-apple-offer .kp-spec-sheet :where(th, td) {
  border-color: var(--color-ink-2);
  color: var(--color-paper-3);
}

body.home.epb-site .kp-apple-offer .kp-privacy-note,
body.home.epb-site .kp-apple-offer .kp-privacy-note a {
  color: var(--color-paper-3);
}

body.home.epb-site .kp-apple-offer :where(.epb-button-secondary, .is-style-outline) .wp-block-button__link {
  border-color: var(--color-paper-3);
  color: var(--color-surface);
}

/* Interior routes share the same product surfaces. */
body.epb-site:not(.home) :where(.epb-content-shell, .epb-shop-shell) {
  background: var(--color-surface);
}

body.epb-site :where(.epb-detail-card, .kp-summary-panel, .woocommerce ul.products li.product) {
  border-radius: var(--radius-md);
}

/* Compact light site index. */
body.epb-site .epb-footer,
body.home.epb-site .epb-footer {
  background: var(--color-paper);
  border-top: var(--rule-hair) solid var(--color-rule);
  color: var(--color-muted);
  padding: var(--space-2xl) var(--page-gutter) var(--space-lg);
}

body.epb-site .epb-footer p.kp-footer-statement,
body.epb-site .kp-footer-statement {
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-weight: 700;
  letter-spacing: -0.045em;
  line-height: 1;
  margin-bottom: var(--space-2xl);
  max-width: var(--page-shell);
}

body.epb-site .epb-footer-inner {
  border-top-color: var(--color-rule);
  max-width: var(--page-shell);
}

body.epb-site .epb-footer :where(h3, .epb-brand, .wp-block-site-title, .wp-block-site-title a) {
  color: var(--color-ink);
}

body.epb-site .epb-footer :where(p, a, .wp-block-navigation-item__content) {
  color: var(--color-muted);
  font-size: var(--text-sm);
}

body.epb-site .epb-footer a {
  text-decoration: none;
  white-space: nowrap;
}

body.epb-site .epb-footer-bottom {
  border-top-color: var(--color-rule);
  color: var(--color-muted);
  max-width: var(--page-shell);
}

@media (min-width: 40rem) {
  body.home.epb-site .kp-apple-proof,
  body.home.epb-site .kp-apple-offer {
    margin-inline: var(--space-md);
    padding: var(--space-2xl);
  }

  body.home.epb-site .kp-apple-process,
  body.home.epb-site .kp-apple-faq {
    padding-inline: var(--space-md);
  }

  body.home.epb-site .kp-apple-process .kp-step-sequence {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 40rem) and (max-width: 59.999rem) {
  body.home.epb-site .kp-apple-hero .kp-photo-hero__image img {
    aspect-ratio: 16 / 9;
  }

  body.home.epb-site .kp-apple-hero .kp-photo-hero__caption {
    padding-block: var(--space-xl) var(--space-2xl);
  }

  body.home.epb-site .kp-apple-hero .kp-photo-hero__caption h1 {
    font-size: clamp(3rem, 8vw, 4rem);
    max-width: 13ch;
  }
}

@media (min-width: 60rem) {
  body.epb-site .epb-local-nav {
    grid-template-columns: minmax(0, 1fr) auto auto;
  }

  body.epb-site .epb-local-links {
    display: flex;
  }

  body.home.epb-site .kp-apple-hero {
    border-radius: var(--radius-xl);
    grid-template-areas: "copy visual";
    grid-template-columns: minmax(22rem, 5fr) minmax(0, 7fr);
    margin: var(--space-md) auto 0;
    max-width: calc(var(--page-wide) - (var(--space-md) * 2));
    min-height: clamp(38rem, 74dvh, 47rem);
    width: calc(100% - (var(--space-md) * 2));
  }

  body.home.epb-site .kp-apple-hero .kp-photo-hero__image {
    height: 100%;
  }

  body.home.epb-site .kp-apple-hero .kp-photo-hero__image img {
    aspect-ratio: auto;
    height: 100%;
    object-position: 58% center;
  }

  body.home.epb-site .kp-apple-hero .kp-photo-hero__caption {
    padding-block: var(--space-2xl) var(--space-3xl);
    padding-inline: clamp(var(--space-xl), 5vw, var(--space-3xl));
  }

  body.home.epb-site .kp-apple-hero .kp-photo-hero__caption h1 {
    font-size: var(--text-hero);
  }

  body.home.epb-site .kp-apple-hero .kp-hero-lede {
    font-size: var(--text-md);
  }

  body.home.epb-site .kp-apple-proof {
    gap: clamp(var(--space-xl), 5vw, var(--space-3xl));
    grid-template-columns: minmax(18rem, 5fr) minmax(0, 7fr);
    margin: var(--space-md) auto 0;
    max-width: calc(var(--page-shell) - (var(--space-md) * 2));
    padding: var(--space-2xl);
  }

  body.home.epb-site .kp-apple-gallery {
    padding: var(--space-4xl) var(--space-md);
  }

  body.home.epb-site .kp-apple-gallery .kp-direction-strip {
    grid-auto-rows: 18rem;
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }

  body.home.epb-site .kp-apple-gallery .kp-direction-strip__item--lead {
    grid-column: span 7;
    grid-row: span 2;
  }

  body.home.epb-site .kp-apple-gallery .kp-direction-strip__item:not(.kp-direction-strip__item--lead) {
    grid-column: span 5;
  }

  body.home.epb-site .kp-apple-gallery .kp-direction-strip__item img,
  body.home.epb-site .kp-apple-gallery .kp-direction-strip__item--lead img {
    aspect-ratio: auto;
    flex: 1 1 auto;
    height: 0;
    min-height: 0;
  }

  body.home.epb-site .kp-apple-process {
    margin: 0 auto var(--space-md);
    max-width: var(--page-wide);
    padding: var(--space-2xl) var(--space-md);
  }

  body.home.epb-site .kp-apple-process .kp-step-sequence {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  body.home.epb-site .kp-apple-faq {
    align-items: start;
    grid-template-columns: minmax(18rem, 5fr) minmax(0, 7fr);
    padding: var(--space-4xl) var(--space-md);
  }

  body.home.epb-site .kp-apple-faq > p:last-child {
    grid-column: 2;
  }

  body.home.epb-site .kp-apple-offer {
    align-items: start;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    margin: 0 auto var(--space-md);
    max-width: calc(var(--page-shell) - (var(--space-md) * 2));
    padding: var(--space-2xl);
  }
}

@media (hover: hover) and (pointer: fine) {
  body.epb-site .epb-local-links a:hover,
  body.home.epb-site .kp-type-link:hover {
    color: var(--color-accent-hover);
  }

  body.epb-site :where(.epb-button, .epb-nav-cta) .wp-block-button__link:hover,
  body.epb-site :where(.wp-element-button, .woocommerce .button, .wc-block-components-button):hover,
  body.epb-site .epb-intake-submit:hover {
    background: var(--color-accent-hover);
    border-color: var(--color-accent-hover);
    box-shadow: none;
    color: var(--color-accent-ink);
  }

  body.home.epb-site .kp-apple-gallery .kp-direction-strip__item:hover img {
    transform: scale(1.012);
  }

  body.home.epb-site .kp-apple-gallery .kp-direction-strip__item img {
    transition: transform var(--dur-enter) var(--ease-out);
  }
}

@media (prefers-reduced-transparency: reduce) {
  body.epb-site .epb-header::before,
  body.epb-site .wp-block-navigation__responsive-container.is-menu-open {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background: var(--color-surface);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.home.epb-site .kp-apple-gallery .kp-direction-strip__item img {
    transform: none;
    transition: none;
  }
}

/* Selected KeptPaw identity: Little step paw, shared by header and footer. */
body.epb-site .epb-brand-mark.kp-paw-logo {
  width: 2rem;
  height: 2rem;
  background: transparent;
  color: var(--color-ink);
  border-radius: 0;
  box-shadow: none;
  padding: 0;
  line-height: 0;
}
body.epb-site .kp-paw-logo svg {
  display: block;
  width: 100%;
  height: 100%;
}
