/* Shared editorial layouts for the site and block editor. */
.km-hero { background: var(--wp--preset--color--paper); }
.km-hero-grid { grid-template-columns: .93fr 1.07fr; min-height: auto; gap: clamp(26px, 6vw, 82px); }
.km-hero h1 { font-size: clamp(3rem, 6vw, 6.2rem); max-width: none; letter-spacing: -.052em; }
.km-hero-image img { aspect-ratio: 4 / 3; height: auto; border-radius: .5rem; }
.km-hero-copy > p:not(.km-kicker, .km-note) { font-size: clamp(1.06rem, 1.7vw, 1.26rem); }
.km-header { border-bottom: 1px solid var(--wp--preset--color--line); }
.km-kicker { letter-spacing: .14em; }
.km-section .km-kicker { margin-bottom: .85rem; }
.km-section h2 { max-width: 16ch; }
.km-portrait { margin: 0; }
.km-portrait img { display: block; width: 100%; aspect-ratio: 4 / 4.7; object-fit: cover; object-position: center 45%; border-radius: .45rem; }
.km-story .km-split { grid-template-columns: .8fr 1fr; }
.km-story .km-portrait { max-width: 410px; }
.km-story .km-host-photo { width: 100%; max-width: 390px; margin: 0; justify-self: end; }
.km-host-photo img { display: block; width: 100%; height: auto; border-radius: .45rem; }
.km-editorial-copy > p + p { margin-top: 1rem; }
.km-demo-card { padding: clamp(22px, 3.5vw, 42px); border-radius: .5rem; }
.km-demo-card .wp-block-buttons { margin-top: 1.5rem; }
.km-demo-grid { margin-bottom: 0; }
.km-guide { background: var(--wp--preset--color--linen); }
.km-guide-list { display: grid; gap: 1rem; }
.km-guide-list > .wp-block-group { padding-top: 1rem; border-top: 1px solid var(--wp--preset--color--line); }
.km-kitchen-grid { display: grid; grid-template-columns: .9fr 1fr; gap: clamp(24px, 5vw, 72px); align-items: center; }
.km-kitchen-grid img { aspect-ratio: 4 / 3; object-fit: cover; border-radius: .5rem; }
.km-main.km-page { width: min(100% - 2 * var(--km-gutter), 980px); }
.km-page-title { font-size: clamp(3rem, 7vw, 6rem); margin-bottom: .25em; }
.km-page .wp-block-post-content > p { max-width: 70ch; margin-block: .85rem; }
.km-page .wp-block-post-content > p:first-child { font-size: clamp(1.1rem, 2vw, 1.35rem); }
.km-page .wp-block-post-content > h2 { margin-top: 2.25rem; }
.km-page .km-split { margin-block: 1.5rem 2.5rem; }
.km-page .km-portrait { max-width: 360px; }
.km-inquiry {
  position: relative;
  max-width: 690px;
  margin-block: 2rem;
  padding: clamp(18px, 4vw, 38px);
  border: 1px solid var(--wp--preset--color--line);
  background: var(--wp--preset--color--linen);
  border-radius: .5rem;
  display: grid;
  gap: 1rem;
}
.km-field { display: grid; gap: .3rem; }
.km-field[hidden] { display: none; }
.km-field label { font-weight: 650; }
.km-field :where(input, select, textarea) {
  width: 100%;
  min-height: 46px;
  font: inherit;
  color: var(--wp--preset--color--ink);
  background: var(--wp--preset--color--paper);
  border: 1px solid var(--wp--preset--color--muted);
  border-radius: .25rem;
  padding: .5rem .65rem;
}
.km-field [aria-invalid=true] { border-color: #8b301d; border-width: 2px; }
.km-field [data-error]:not(:empty) { color: #8b301d; font-weight: 650; }
.km-field [data-error]:empty { display: none; }
.km-form-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.km-form-note { font-size: .91rem; }
.km-form-status { padding: .7rem 1rem; border-inline-start: 4px solid var(--wp--preset--color--forest); background: var(--wp--preset--color--paper); }
.km-inquiry button {
  justify-self: start;
  font: inherit;
  font-weight: 650;
  min-height: 48px;
  padding: .65rem 1rem;
  border: 0;
  cursor: pointer;
}
.km-inquiry button:hover:not(:disabled) { background: var(--wp--preset--color--ink); }
.km-inquiry button:disabled { opacity: .72; cursor: default; }
@media (max-width: 781px) {
  .km-hero-grid, .km-story .km-split, .km-kitchen-grid { grid-template-columns: 1fr; }
  .km-hero h1 { font-size: clamp(3.15rem, 12vw, 5.7rem); }
  .km-hero-copy .wp-block-buttons { gap: .45rem; }
  .km-story .km-split { display: flex; flex-direction: column-reverse; align-items: stretch; }
  .km-story .km-portrait { max-width: 100%; }
  .km-story .km-host-photo { align-self: center; }
  .km-story .km-editorial-copy { width: 100%; max-width: 36rem; align-self: center; }
}
@media (max-width: 420px) {
  .km-hero-copy .wp-block-button__link { padding-inline: .85rem; }
}

/* Native social blocks and a small local Lucide subset. */
.km-footer .km-footer-inner { grid-template-columns: .85fr 1.15fr 1fr; row-gap: 2rem; }
.km-footer .km-footer-inner > div { min-width: 0; }
.km-footer h2 { margin-bottom: .75rem; }
.km-footer-nav a, .km-footer-bottom a, .km-footer-follow p a { display: inline-block; padding-block: .35rem; }
.km-footer .km-social-links { margin: .25rem 0 .8rem; gap: .45rem; }
.km-footer .km-social-links .wp-social-link { color: var(--wp--preset--color--paper); background: transparent; }
.km-footer .km-social-links .wp-block-social-link-anchor {
  min-width: 44px;
  min-height: 44px;
  display: grid;
  place-items: center;
  padding: .55rem;
  border: 1px solid var(--wp--preset--color--muted);
  border-radius: .35rem;
  color: inherit;
}
.km-footer .km-social-links .wp-block-social-link-anchor:hover { background: var(--wp--preset--color--muted); }
.km-footer .km-footer-bottom {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .35rem 1rem;
  align-items: center;
  border-top: 1px solid var(--wp--preset--color--muted);
  padding-top: 1.1rem;
  font-size: .87rem;
}
.km-footer .km-footer-bottom p { margin: 0; }
.km-icon-heading::before {
  content: "";
  display: inline-block;
  width: .85em;
  height: .85em;
  margin-inline-end: .32em;
  vertical-align: -.04em;
  background: var(--wp--preset--color--forest);
  mask: var(--km-icon) center / contain no-repeat;
}
.km-icon-video { --km-icon: url("assets/icons/video.svg"); }
.km-icon-map-pin { --km-icon: url("assets/icons/map-pin.svg"); }
.km-icon-message-circle { --km-icon: url("assets/icons/message-circle.svg"); }
.km-icon-calendar-days { --km-icon: url("assets/icons/calendar-days.svg"); }
.km-icon-book-open { --km-icon: url("assets/icons/book-open.svg"); }
.km-icon-list-checks { --km-icon: url("assets/icons/list-checks.svg"); }
.km-icon-cooking-pot { --km-icon: url("assets/icons/cooking-pot.svg"); }
@media (max-width: 781px) { .km-footer .km-footer-inner { grid-template-columns: 1fr; gap: 1.3rem; } }
