/* Shared UI foundations, migrated from style.css without changing selector order. */

/* Layout, menu interaction and typography are provided by WordPress blocks and the parent theme. */
.kwn-header {
  border-bottom: 1px solid #e5e9e6;
}

.kwn-header .wp-block-image img {
  height: auto;
}

.wp-block-navigation__responsive-container-open {
  min-width: 48px;
  min-height: 48px;
  align-items: center;
  gap: 6px;
}

.wp-block-navigation__responsive-container-open::after {
  font-size: 14px;
}

.wp-block-navigation__responsive-container.is-menu-open {
  padding: 24px!important;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  align-items: stretch;
  gap: 24px;
  padding-top: 64px;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  align-items: stretch;
  width: 100%;
  gap: 0;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  display: block;
  padding: 12px 0;
  font-size: 18px;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-search {
  width: 100%;
  max-width: 480px;
}

.wp-block-search__input {
  min-width: 0;
  font: inherit;
  border: 1px solid #a8b8af;
  border-radius: 4px;
  padding: 12px;
}

.wp-block-search__button {
  font: inherit;
  border: 0;
  border-radius: 4px;
  background: #176451;
  color: #fff;
  padding: 12px 18px;
}

.wp-block-navigation__responsive-container-close {
  min-width: 48px;
  min-height: 48px;
}

.wp-block-navigation__responsive-container-close::after {
  content: "閉じる";
  font-size: 14px;
}

.kwn-main {
  padding-block: 32px 48px;
}


a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible {
  outline: 3px solid #d48820;
  outline-offset: 3px;
}

.kwn-forms input:not([type=checkbox]):not([type=radio]),.kwn-forms textarea,.kwn-forms select {
  box-sizing: border-box;
  max-width: 100%;
  width: 100%;
  padding: 12px;
  font: inherit;
  border: 1px solid #9aaba1;
  border-radius: 4px;
  background: #fff;
  color: #243a30;
}

.kwn-forms label {
  display: block;
  margin-block: 16px;
}
.kwn-forms small {
  display: block;
  color: #56665e;
}
.kwn-forms button,.kwn-forms .button {
  display: inline-block;
  padding: 12px 18px;
  background: #176451;
  color: white;
  border: 0;
  border-radius: 4px;
  font: inherit;
  text-decoration: none;
}

.kwn-forms input[type=checkbox] {
  width: 22px;
  height: 22px;
  vertical-align: middle;
}
.kwn-forms textarea {
  min-height: 180px;
}
.kwn-forms .notice {
  padding: 16px;
  background: #f1f5f2;
}
.kwn-forms img {
  max-width: 100%;
  height: auto;
}
.kwn-forms dialog {
  max-width: min(90vw,640px);
  max-height: 85vh;
  overflow: auto;
  box-sizing: border-box;
}
.kwn-forms [hidden] {
  display: none!important;
}

@media(max-width:400px){.kwn-header .wp-block-image img {
  width: 175px;
}
.wp-block-search__button {
  padding: 12px;
}
}
.kwn-header {
  max-width: 1080px;
  margin-inline: auto!important;
  box-sizing: border-box;
}

.kwn-main {
  min-height: 0;
  padding-inline: 20px;
}


.kwn-header .wp-block-image {
  margin: 0;
  min-width: 0;
}
.kwn-header .wp-block-image img {
  width: 100%!important;
  max-width: 210px;
}
.wp-block-navigation__responsive-container-open {
  white-space: nowrap;
}


.wp-block-search__button {
  white-space: nowrap;
  flex-shrink: 0;
}
.wp-block-search__input {
  width: 0;
  flex: 1 1 auto;
}

/* Standard Query Loop: compact, readable image/title rows on every list. */
.kwn-article-list {
  padding: 0;
  list-style: none;
}

.kwn-article-list>li {
  margin: 0!important;
  padding: 22px 0;
}

.kwn-article-list>li:first-child {
  padding-top: 0;
}

.kwn-article-row {
  display: grid;
  gap: 20px;
  align-items: start;
}

.kwn-article-row>* {
  margin: 0!important;
  min-width: 0;
}

.kwn-article-row .wp-block-post-featured-image {
  width: 100%;
}

.kwn-article-row .wp-block-post-featured-image a {
  display: block;
}

.kwn-article-summary .wp-block-post-title {
  font-size: 21px;
  line-height: 1.6;
  margin: 0;
  overflow-wrap: anywhere;
}

.kwn-article-summary .wp-block-post-title a {
  text-decoration: none;
}

.kwn-article-summary .wp-block-post-title a:hover {
  text-decoration: underline;
}

.kwn-article-summary .kwn-list-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 12px;
  margin: 8px 0 0;
  font-size: 14px;
  line-height: 1.6;
  color: #56665e;
}

.kwn-list-meta .wp-block-post-date {
  margin: 0;
  font-size: inherit!important;
}

.kwn-list-views {
  white-space: nowrap;
}

@media(max-width:600px){
 .kwn-article-row {
  gap: 14px;
}

 .kwn-article-summary .wp-block-post-title {
  font-size: 17px;
  line-height: 1.6;
}

 .kwn-article-list>li {
  padding: 18px 0;
}

 .kwn-article-summary .kwn-list-meta {
  gap: 2px 10px;
  font-size: 13px;
}

}

.kwn-new-label {
  display: block;
  color: #b42318;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .04em;
  margin: 0 0 4px;
}

.kwn-featured {
  margin-block: 24px 36px;
}

.kwn-featured>h2 {
  font-size: 22px;
  margin: 0 0 16px;
}

.kwn-featured-track {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  overscroll-behavior-x: contain;
  border-radius: 8px;
  scrollbar-width: thin;
}

.kwn-featured-card {
  flex: 0 0 100%;
  min-width: 0;
  box-sizing: border-box;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  position: relative;
  background: #f3f6f2;
  border-radius: 8px;
}

.kwn-featured-link {
  display: block;
  color: #173b30;
  text-decoration: none;
}

.kwn-featured-link:hover h3 {
  text-decoration: underline;
}

.kwn-featured-card img {
  background: #f3f6f2;
}

.kwn-featured-card h3 {
  font-size: clamp(18px,3vw,26px);
  margin: 16px 20px 10px;
}

.kwn-featured-meta {
  margin: 0 20px 18px;
  font-size: 14px;
  color: #56665e;
}

.kwn-slider-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
  font-size: 14px;
}

.kwn-slider-controls[hidden] {
  display: none;
}

.kwn-slider-controls button {
  min-height: 44px;
  padding: 8px 18px;
  border: 1px solid #a8b8af;
  border-radius: 6px;
  background: #fff;
  color: #176451;
  font: inherit;
  cursor: pointer;
}

.kwn-slider-controls button:disabled {
  opacity: .45;
  cursor: default;
}

.kwn-featured-track:focus-visible {
  outline: 3px solid #d48820;
  outline-offset: 3px;
}

/* Side columns reserve room for the menu and text controls. */
.kwn-header {
  display: grid!important;
  grid-template-columns: 56px minmax(0,1fr) 56px;
  align-items: center;
  gap: 8px;
  padding-block: 12px!important;
  padding-inline: 16px;
}

.kwn-header nav {
  justify-self: start;
}

.kwn-header .wp-block-image {
  justify-self: center;
  width: min(100%,210px);
  transform: none;
}

.wp-block-navigation__responsive-container-open::after {
  content: none;
}

.wp-block-navigation__responsive-container-open {
  width: 48px;
  height: 48px;
  border: 0!important;
  padding: 10px!important;
  justify-content: center;
}

.wp-block-navigation__responsive-container-open svg {
  display: none;
}

.wp-block-navigation__responsive-container-open::before {
  content: "";
  width: 26px;
  height: 3px;
  background: currentColor;
  box-shadow: 0 -8px currentColor,0 8px currentColor;
}

.kwn-text-controls {
  justify-self: end;
  align-self: center;
  font-size: 11px;
  line-height: 1.3;
  text-align: center;
  color: #354c41;
}

.kwn-text-controls>div {
  display: flex;
  gap: 3px;
}

.kwn-text-controls button {
  font: inherit;
  font-size: 13px;
  padding: 7px 5px;
  min-height: 36px;
  min-width: 34px;
  border: 1px solid #c7d3cb;
  border-radius: 4px;
  background: #fff;
  color: #243a30;
  cursor: pointer;
}

.kwn-text-controls button[aria-pressed=true] {
  background: #176451;
  color: white;
  border-color: #176451;
}

.kwn-featured-track {
  position: relative;
  gap: 12px;
  scroll-padding-inline: 0;
  padding-right: 0;
}

.kwn-featured-card {
  flex-basis: 92%;
}
.kwn-featured-track::after {
  content: "";
  flex: 0 0 calc(8% - 12px);
}

.kwn-swipe-hint {
  font-size: 13px;
  color: #56665e;
  text-align: right;
  margin: 8px 0;
}

.kwn-swipe-hint [data-kwn-position] {
  margin-left: 12px;
}

html.kwn-large-text {
  font-size: 20px;
}

.kwn-large-text body {
  font-size: 22px;
}

.kwn-large-text .kwn-article-summary .wp-block-post-title {
  font-size: 24px;
}

.kwn-large-text .kwn-featured-card h3 {
  font-size: 28px;
}

.kwn-large-text .kwn-list-meta,.kwn-large-text .kwn-featured-meta {
  font-size: 17px!important;
}

.kwn-large-text .wp-block-navigation-item__content {
  font-size: 22px!important;
}

@media(max-width:400px){.kwn-header {
  grid-template-columns: 56px minmax(0,1fr) 56px;
  padding-inline: 10px;
  gap: 5px;
}
.kwn-large-text .kwn-article-summary .wp-block-post-title {
  font-size: 21px;
}
}
/* Navigation overlay: grouped white rows on a distinct, calm background. */


.kwn-breadcrumbs {
  font-size: 1rem;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .5em;
}
.kwn-breadcrumbs a {
  padding-block: 12px;
}
.kwn-related {
  margin-block: 40px;
  border-top: 1px solid #d7e1da;
  padding-top: 24px;
}
.kwn-related li {
  margin-block: 12px;
}
.kwn-related a {
  display: inline-block;
  padding-block: 8px;
}

/* Article readability: comfortable defaults and an explicit larger-text option. */
:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) {
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.9;
  color: #243a30;
  letter-spacing: .01em;
  overflow-wrap: anywhere;
}

:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) p {
  margin-block: 0 1.4em;
}

:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) li {
  margin-block: .55em;
}

:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) h2 {
  font-size: 1.5em;
  font-weight: 700;
  line-height: 1.5;
  margin-block: 2em 1em;
}

:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) h3 {
  font-size: 1.2em;
  font-weight: 700;
  line-height: 1.6;
  margin-block: 1.5em .7em;
}

:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) a {
  text-underline-offset: .2em;
  text-decoration: underline;
}

:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) strong {
  font-weight: 700;
}

@media(min-width:768px){:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) {
  font-size: 1.25rem;
}
}
.kwn-large-text .single-post .wp-block-post-content {
  font-size: 1.25rem;
}

/* Component states and responsive variants. */
/* Canonical site interactions. See docs/DESIGN_RULES.md. */
:root {
  --kwn-ink: #243a30;
  --kwn-brand: #176451;
  --kwn-border: #b7cdc0;
  --kwn-surface: #fff;
  --kwn-hover: #eef6f0;
  --kwn-radius: 12px;
  --kwn-gap: 12px;
  --kwn-shadow: 0 3px 0 #d5e2d9,0 5px 12px #243a300a;
  --kwn-focus: #a85d00;
}

body {
  line-break: strict;
  word-break: normal;
}

/* Fill ordinary article lines naturally; parent-theme pretty wraps differ in Safari. */
:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) :is(p, li) {
  text-wrap: wrap;
}

:is(.wp-block-post-content,.wp-block-post-title,.wp-block-navigation-item__label,.kwn-related-title) {
  overflow-wrap: anywhere;
  word-break: normal;
  white-space: normal;
}

:is(.kwn-action-link,.kwn-resource-link,.kwn-related-card,.kwn-related-all,.wp-block-button__link,.wp-block-search__button,.kwn-forms button,.kwn-slider-controls button) {
  box-sizing: border-box;
  border-radius: var(--kwn-radius);
  min-height: 48px;
  font-weight: 600;
  line-height: 1.6;
  box-shadow: var(--kwn-shadow);
  text-decoration: none;
}

:is(a,button,input,textarea,select,summary):focus-visible {
  outline: 3px solid var(--kwn-focus)!important;
  outline-offset: 3px!important;
}

:is(.kwn-action-link,.kwn-resource-link,.kwn-related-card,.kwn-related-all) {
  border-color: var(--kwn-border);
}

:is(.kwn-action-link,.kwn-resource-link,.kwn-related-all) {
  min-height: 56px;
  padding: 16px 18px;
}

:is(.wp-block-button__link,.wp-block-search__button,.kwn-forms button) {
  background: var(--kwn-brand);
  color: #fff;
  border: 1px solid var(--kwn-brand);
  border-bottom: 3px solid #104b3c;
}


.wp-block-post-content :is(p,li) {
  line-break: strict;
}

.wp-block-post-content p:empty {
  display: none;
}


@media(hover:hover){
 :is(.kwn-action-link,.kwn-resource-link,.kwn-related-card,.kwn-related-all):hover {
  border-color: var(--kwn-brand);
  box-shadow: 0 4px 0 #c7dacd,0 6px 14px #243a3012;
}


}


:is(.kwn-action-link,.kwn-resource-link,.kwn-related-card,.wp-block-button__link,.wp-block-search__button):active{
  transform: translateY(2px);
  box-shadow: 0 1px 0 #c7dacd;
}

@media(prefers-reduced-motion:no-preference){

:is(.kwn-action-link,.kwn-resource-link,.kwn-related-card,.wp-block-button__link,.wp-block-search__button){
  transition: background-color .15s,border-color .15s,box-shadow .15s,transform .15s;
}
}

/* Lists: shared metadata above an image/title pair, including saved Query blocks. */
.kwn-article-list>li {
  padding-block: 24px;
  border-bottom: 1px solid #dce5df;
}

.kwn-article-row {
  grid-template-columns: minmax(0,40%) minmax(0,1fr);
  column-gap: 20px;
  row-gap: 12px;
}

.kwn-article-row>.kwn-article-summary {
  display: contents;
}

.kwn-article-row .kwn-list-heading {
  grid-column: 1/-1;
  grid-row: 1;
  display: flex;
  flex-wrap: wrap-reverse;
  align-items: center;
  gap: 8px 10px;
  margin: 0!important;
  min-width: 0;
}

.kwn-category-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  min-width: 0;
  max-width: 100%;
  margin: 0 0 6px;
}
.kwn-category {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  max-width: 100%;
  padding: 3px 9px;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
  white-space: normal;
  overflow-wrap: anywhere;
  text-decoration: none!important;
}
.kwn-category:focus-visible { outline: 3px solid #a85d00; outline-offset: 3px; }
.kwn-large-text .kwn-category { font-size: 17px; }
/* Keep labels together; a date that does not fit wraps above them. */
.kwn-list-labels {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  width: max-content;
  max-width: 100%;
  min-width: 0;
}

.kwn-list-heading .kwn-category-badges {
  display: contents;
}
/* Keep every badge visible without covering the eyecatch, including expiry labels. */
.kwn-featured-card>.kwn-category-badges,
.kwn-featured-card>.kwn-featured-label-row {
  padding: 12px;
  margin: 0;
}

.kwn-list-heading .kwn-category {
  padding: 5px 9px;
  font-size: 13px;
  line-height: 1.4;
  border-radius: 6px;
}

.kwn-list-heading .kwn-new-label {
  display: inline-block;
  margin: 0;
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: .02em;
  white-space: nowrap;
}

.kwn-list-published {
  flex: 0 0 auto;
  text-align: right;
  margin-left: auto;
  color: #627268;
  font-size: 13px;
  line-height: 1.5;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.kwn-article-row>.wp-block-post-featured-image {
  grid-column: 1;
  grid-row: 2;
  margin: 0!important;
  align-self: start;
  overflow: hidden;
  border-radius: 8px;
  background: #f3f6f2;
}

.kwn-article-row .wp-block-post-featured-image img {
  display: block;
  width: 100%;
  height: auto!important;
  aspect-ratio: 4/3!important;
  object-fit: fill!important;
  border-radius: 0;
}

.kwn-article-row .kwn-list-title {
  text-wrap: wrap;
  grid-column: 2;
  grid-row: 2;
  margin: 0!important;
  align-self: start;
  font-size: 21px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.kwn-article-row .kwn-list-title a {
  display: block;
  min-height: 48px;
  text-decoration: none;
  text-underline-offset: 4px;
}

.kwn-article-row:not(:has(.wp-block-post-featured-image)) {
  grid-template-columns: minmax(0,1fr);
}

.kwn-article-row:not(:has(.wp-block-post-featured-image)) .kwn-list-title {
  grid-column: 1/-1;
}

.kwn-article-row .kwn-photo-credit {
  font-size: 9px;
  padding: 2px 4px;
  right: 4px;
  bottom: 4px;
}

.kwn-large-text .kwn-list-heading .kwn-category {
  font-size: 15px!important;
}

.kwn-large-text .kwn-list-heading .kwn-new-label,.kwn-large-text .kwn-list-published {
  font-size: 15px;
}

@media(max-width:600px){
 .kwn-article-list>li {
  padding-block: 20px;
}

 .kwn-article-row {
  grid-template-columns: minmax(0,45%) minmax(0,1fr);
  column-gap: 14px;
  row-gap: 12px;
}

 .kwn-article-row .kwn-list-title {
  font-size: 18px;
  line-height: 1.65;
}

 .kwn-large-text .kwn-article-row .kwn-list-title {
  font-size: 22px;
  line-height: 1.65;
}

}
@media(hover:hover){.kwn-article-row .kwn-list-title a:hover {
  text-decoration: underline;
}
}

/* Mobile navigation: sticky header with a constant size while scrolling. */
@media(max-width:782px){
 body .wp-site-blocks>header.wp-block-template-part {
  position: sticky;
  top: 0;
  z-index: 40;
  background: #fff;
}

 body.admin-bar .wp-site-blocks>header.wp-block-template-part {
  top: 46px;
}

 .kwn-header {
  box-sizing: border-box;
  width: 100%;
  gap: 8px;
  padding-inline: 12px!important;
}

 .kwn-header .wp-block-image {
  box-sizing: border-box;
  width: clamp(120px,36vw,172px);
  min-width: 0;
}

 .kwn-header .wp-block-image img {
  display: block;
  width: 100%!important;
  max-width: 100%;
}

 .kwn-text-controls button {
  box-sizing: border-box;
  min-width: 40px;
  min-height: 44px;
}

}
@media(min-width:601px) and (max-width:782px){body.admin-bar .wp-site-blocks>header.wp-block-template-part {
  top: 32px;
}
}
@media(max-width:359px){.kwn-header {
  gap: 6px;
  padding-inline: 8px!important;
}
}
/* Shared reader CTA and clear secondary navigation. */


.kwn-article-actions .kwn-friend-button img{
  width: 194px!important;
  height: auto!important;
  max-width: 100%!important;
}

.kwn-article-actions .kwn-friend-button {
  min-height: 60px;
  max-width: 100%;
  padding: 8px 0;
}


/* Home hero: standalone full-width band; no header or article-list overrides. */
.kwn-hero {
  box-sizing: border-box;
  position: relative;
  isolation: isolate;
  width: 100%;
  max-width: none!important;
  margin: 0!important;
  background: #2f6450;
  color: #fff;
  padding: 24px 0 20px;
}

.kwn-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: linear-gradient(#0007,#0007),url("https://kawanishi-navi.com/wp-content/uploads/2026/10/kawanishi-hero-landscape.jpg");
  background-size: cover;
  background-position: center;
}

.kwn-hero-inner {
  max-width: 960px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

.kwn-hero h1 {
  margin: 0!important;
  color: #fff;
  font-size: clamp(26px,4vw,36px);
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: .02em;
}

.kwn-hero p {
  margin: 8px 0 16px!important;
  color: #fff;
  font-size: 16px;
  line-height: 1.6;
}

:is(.kwn-hero-categories,.kwn-category-chips) {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 4px;
  scrollbar-width: none;
  padding: 4px 24px 4px 4px;
  -webkit-mask-image: linear-gradient(to right,#000 calc(100% - 20px),transparent);
  mask-image: linear-gradient(to right,#000 calc(100% - 20px),transparent);
}

:is(.kwn-hero-categories,.kwn-category-chips)::-webkit-scrollbar {
  display: none;
}

:is(.kwn-hero-categories,.kwn-category-chips) a {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 48px;
  padding: 8px 18px;
  border-radius: 999px;
  background: #fff;
  color: #2f6450;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none;
  white-space: nowrap;
  scroll-snap-align: start;
}

:is(.kwn-hero-categories,.kwn-category-chips) a:focus-visible {
  outline: 3px solid #ffdf7f;
  outline-offset: 1px;
}

.kwn-large-text .kwn-hero h1 {
  font-size: clamp(30px,4.6vw,42px);
}

.kwn-large-text .kwn-hero p,.kwn-large-text :is(.kwn-hero-categories,.kwn-category-chips) a {
  font-size: 20px;
}

@media(min-width:783px){.kwn-hero {
  padding-block: 32px 24px;
}
}

/* Featured cards: uniform crop, three-line titles and aligned dates. */
.kwn-featured-track {
  align-items: stretch;
}

.kwn-featured-card {
  display: flex;
  flex-direction: column;
  height: auto;
  overflow: hidden;
}

.kwn-featured-card img {
  display: block;
  width: 100%!important;
  max-width: none!important;
  height: auto!important;
  aspect-ratio: 4/3!important;
  object-fit: fill!important;
  object-position: center!important;
  margin: 0!important;
}

.kwn-featured-card h3 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  min-height: 4.8em;
  max-height: 4.8em;
  line-height: 1.6;
}

.kwn-featured-card h3 .kwn-new-label {
  display: inline;
  margin-right: .5em;
}

.kwn-featured-card .kwn-featured-meta {
  margin-top: auto!important;
  padding-top: 8px;
}

/* Keep the hero in normal flow and reduce only the gap before featured content. */
.kwn-hero {
  height: auto;
  min-height: 0;
  overflow: visible;
  clear: both;
}

.kwn-hero+.kwn-main {
  margin-block-start: 0!important;
  padding-top: 16px;
}

.kwn-hero+.kwn-main>.kwn-featured:first-child {
  margin-top: 0;
}

/* Shared rounded category chips and compact archive heading spacing. */
.kwn-category-chips a {
  border: 1px solid #b7cbbf;
}

.kwn-category-chips a[aria-current="page"] {
  background: #2f6450;
  color: #fff;
  border-color: #2f6450;
}

.kwn-category-strip {
  background: #fafcfb;
  margin: 0!important;
  padding: 6px 0;
  border-bottom: 1px solid #d6e1db;
}

.kwn-category-strip-inner {
  max-width: 960px;
  margin: 0 auto;
  padding: 0 16px;
  box-sizing: border-box;
}

.kwn-large-text .kwn-category-chips a {
  font-size: 20px;
}

.category .kwn-main {
  margin-block-start: 0!important;
  padding-top: 12px;
}

.category .kwn-main>h1:first-child {
  margin-top: 0!important;
}

/* Separate opening/closure labels retain the shared badge shape. */
.kwn-category--opening {
    background: #ffe4e6;
    color: #9f1239;
}
.kwn-category--closing {
    background: #e2e8f0;
    color: #334155;
}

/* Shared footer: equal gutters, readable statement and one set of useful links. */
.kwn-footer { box-sizing:border-box; border-top:1px solid #dce5de; padding:32px 16px; color:#425b4e; font-size:1rem; }
.kwn-footer .kwn-footer-inner { box-sizing:border-box; width:100%; max-width:960px; margin-inline:auto; }
.kwn-footer .kwn-reader-promise { box-sizing:border-box; width:100%; max-width:none; margin:0; padding:20px; border:1px solid #dce5de; border-radius:12px; background:#f4f7f4; line-height:1.85; }
.kwn-footer .kwn-reader-promise p { max-width:none; margin:0; text-wrap:wrap; overflow-wrap:anywhere; }
.kwn-footer .kwn-reader-promise p + p { margin-top:12px; }
.kwn-footer .kwn-footer-title { font-weight:700; color:#243a30; }
.kwn-footer .kwn-footer-nav { margin-top:20px; }
.kwn-footer .kwn-footer-links { display:grid; grid-template-columns:minmax(0,1fr); gap:0; margin:0; padding:0; list-style:none; }
.kwn-footer .kwn-footer-links li { min-width:0; margin:0; padding:0; border-bottom:1px solid #dce5de; }
.kwn-footer .kwn-footer-links a { box-sizing:border-box; display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:56px; padding:12px 4px; color:#245b46; font-size:1rem; line-height:1.65; text-decoration:none; overflow-wrap:anywhere; }
.kwn-footer .kwn-footer-links a::after { content:'›'; flex:none; font-size:1.25em; }
.kwn-footer .kwn-footer-links a:focus-visible { outline:3px solid #a85d00; outline-offset:2px; }
.kwn-footer .kwn-footer-copyright { margin:24px 0 0; font-size:.875rem; line-height:1.7; }
@media(min-width:600px) { .kwn-footer .kwn-footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:32px; } }
@media(hover:hover) { .kwn-footer .kwn-footer-links a:hover { text-decoration:underline; text-underline-offset:.2em; } }

/* Sponsor information: scoped media guide. */

.page:has(.kwn-sponsor) .kwn-main{max-width:1120px;margin-inline:auto;padding-top:24px}
.page:has(.kwn-sponsor) .kwn-main>.wp-block-post-title{max-width:100%;font-size:1rem;color:#526c5e;letter-spacing:.04em;margin:0 0 20px}
.page:has(.kwn-sponsor) :is(.kwn-forms,.wp-block-post-content){max-width:none!important;width:100%}
.kwn-sponsor{max-width:none!important;width:100%;--sponsor-ink:#214b3b;--sponsor-soft:#f2f6f1;--sponsor-gold:#a57936;color:#273e33;font-size:1.125rem;line-height:1.9;overflow-wrap:anywhere}
.kwn-sponsor,.kwn-sponsor *{box-sizing:border-box}
.kwn-sponsor p{margin:0 0 1.25em}
/* Match article body wrapping; do not balance paragraph line lengths. */
.kwn-sponsor :is(p,li,dd,figcaption){text-wrap:wrap;word-break:normal;line-break:strict}
.kwn-sponsor :is(h2,h3){color:var(--sponsor-ink);line-height:1.5;text-wrap:pretty}
.kwn-sponsor h2{font-size:clamp(1.55rem,2.5vw,2.25rem);margin:0 0 24px;padding:0;border:0;background:none}
.kwn-sponsor h3{font-size:1.2rem;margin:0 0 12px;padding:0;border:0;background:none}
.kwn-sponsor .kwn-sponsor-eyebrow{font-size:.875rem;font-weight:700;letter-spacing:.08em;color:#566e53;margin:0 0 12px}
.kwn-sponsor-intro{padding:40px 36px 0;background:var(--sponsor-soft);border-radius:16px;overflow:hidden}
.kwn-sponsor-intro h2{font-size:clamp(2rem,4.5vw,3.5rem);letter-spacing:.02em;margin-bottom:16px}
.kwn-sponsor .kwn-sponsor-lead{font-size:clamp(1.15rem,2vw,1.55rem);font-weight:600;line-height:1.75}
.kwn-sponsor-lead span{display:inline-block}
.kwn-sponsor-intro>p:not(.kwn-sponsor-eyebrow){max-width:42em}
.kwn-sponsor .kwn-sponsor-button{display:inline-flex;align-items:center;justify-content:center;gap:16px;max-width:100%;min-height:56px;padding:14px 24px;border:1px solid #214b3b;border-bottom-width:3px;border-radius:12px;background:#214b3b;color:#fff;text-decoration:none;font-size:1rem;font-weight:700;line-height:1.6;text-align:center}
.kwn-sponsor-button:focus-visible{outline:3px solid #b77b20;outline-offset:4px}
.kwn-sponsor-button:active{transform:translateY(2px)}
.kwn-sponsor-button span{flex-shrink:0}
.kwn-sponsor .kwn-sponsor-landscape{margin:32px -36px 0}
.kwn-sponsor-landscape img{display:block;width:100%;height:auto;aspect-ratio:21/8;object-fit:cover;object-position:center 60%}
.kwn-sponsor-section{padding:48px 8px;border-bottom:1px solid #dce5dd}
.kwn-sponsor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.kwn-sponsor-card{background:var(--sponsor-soft);border:1px solid #dce5dd;padding:24px;border-radius:12px}
.kwn-sponsor-card p{font-size:1rem;margin:0}
.kwn-sponsor-number{display:block;font-size:1.4rem;font-weight:700;letter-spacing:.08em;color:#846128;margin-bottom:16px}
.kwn-sponsor-options{margin:0}
.kwn-sponsor-options>div{display:grid;grid-template-columns:14rem 1fr;gap:24px;padding:24px 0;border-top:1px solid #dce5dd}
.kwn-sponsor-options dt{font-weight:700;color:var(--sponsor-ink)}
.kwn-sponsor-options dd{margin:0}
.kwn-sponsor .kwn-sponsor-note{font-size:1rem;background:#faf7ef;border-left:3px solid #a57936;padding:16px 20px;margin:16px 0 0}
.kwn-sponsor-founder{margin-top:40px;padding:32px;background:#f6f7f2;border:1px solid #dce5dd;border-radius:12px}
.kwn-sponsor .kwn-sponsor-founder-line{margin:24px 0 0;padding-top:24px;border-top:1px solid #ccd8cf}
.kwn-sponsor-founder-line strong{display:block;color:var(--sponsor-ink)}
.kwn-sponsor-flow{counter-reset:sponsor-step;list-style:none;padding:0;margin:0}
.kwn-sponsor-flow li{position:relative;counter-increment:sponsor-step;padding:0 0 24px 56px}
.kwn-sponsor-flow li:last-child{padding-bottom:0}
.kwn-sponsor-flow li::before{content:counter(sponsor-step);position:absolute;left:0;top:0;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:#fff;background:#2f6450;font-size:1rem;font-weight:700}
.kwn-sponsor-flow p{margin:0}
.kwn-sponsor-faq{border-top:1px solid #dce5dd}
.kwn-sponsor-faq summary{cursor:pointer;font-weight:600;min-height:56px;padding:16px 8px;color:var(--sponsor-ink)}
.kwn-sponsor-faq p{padding:0 8px 12px;margin:0}
.kwn-sponsor-contact{scroll-margin-top:160px;margin-top:40px;padding:36px;border-radius:16px;background:#214b3b;color:#fff}
.kwn-sponsor-contact h2{color:#fff}
.kwn-sponsor-contact .kwn-sponsor-eyebrow{color:#d9e7cb}
.kwn-sponsor-contact .kwn-sponsor-button{background:#fff;color:#214b3b;border-color:#c8dacd}
.kwn-sponsor .kwn-sponsor-small{font-size:.875rem;line-height:1.8;margin:16px 0 0}
@media(hover:hover){.kwn-sponsor-button:hover{background:#173d2f}.kwn-sponsor-contact .kwn-sponsor-button:hover{background:#e8f0e8}}
@media(max-width:767px){.kwn-sponsor-intro{padding:28px 20px 0}.kwn-sponsor .kwn-sponsor-landscape{margin-inline:-20px}.kwn-sponsor-landscape img{aspect-ratio:16/9}.kwn-sponsor-grid{grid-template-columns:1fr}.kwn-sponsor-section{padding:32px 0}.kwn-sponsor-options>div{grid-template-columns:1fr;gap:8px;padding-block:20px}.kwn-sponsor-founder{padding:24px 20px}.kwn-sponsor-contact{padding:28px 20px}.kwn-sponsor .kwn-sponsor-button{width:100%;padding-inline:16px}.kwn-sponsor h2{margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){.kwn-sponsor-button:active{transform:none}}

/* Media guide: scoped service selection, transparent pricing and fees. */
.kwn-sponsor-intro h2{text-wrap:balance}
.kwn-sponsor :is(section[id],h2[id]){scroll-margin-top:160px}
.kwn-sponsor-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0}
.kwn-sponsor-choice a{display:flex;flex-direction:column;gap:8px;padding:20px;border:1px solid #668577;border-bottom:3px solid #214b3b;border-radius:12px;background:#fff;color:#214b3b;text-decoration:none;min-height:56px}
.kwn-sponsor-choice a span{font-size:1rem}
.kwn-sponsor-choice a span:last-child{text-decoration:underline;text-underline-offset:4px}
.kwn-sponsor-choice a:focus-visible{outline:3px solid #b77b20;outline-offset:4px}
.kwn-sponsor .kwn-sponsor-subheading{margin-top:32px}
.kwn-sponsor-pricing{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0}
.kwn-sponsor-plan{padding:28px;border:1px solid #a9bfb1;border-top:5px solid #2f6450;border-radius:12px;background:#fff}
.kwn-sponsor-plan ul{padding-left:1.4em;margin:20px 0}
.kwn-sponsor-plan li{margin-bottom:10px}
.kwn-sponsor .kwn-sponsor-price{font-size:clamp(2rem,3.2vw,2.75rem);font-weight:700;color:#214b3b;line-height:1.3;margin:16px 0}
.kwn-sponsor-price span{display:block;font-size:1rem;font-weight:400;margin-top:8px}
.kwn-sponsor-plan .kwn-sponsor-button{margin-top:24px;width:100%}
.kwn-sponsor-support{display:grid;grid-template-columns:1fr 1.4fr;gap:32px;background:#f2f6f1;margin:24px 0}
.kwn-sponsor-fees{margin:20px 0;border-top:1px solid #dce5dd}
.kwn-sponsor-fees>div{display:grid;grid-template-columns:1fr 1.5fr;gap:24px;padding:20px 8px;border-bottom:1px solid #dce5dd}
.kwn-sponsor-fees dt{font-weight:600}
.kwn-sponsor-fees dd{margin:0}
.kwn-sponsor-fees dd span{display:block;margin-top:8px;font-size:1rem}
.kwn-sponsor-faq summary:focus-visible{outline:3px solid #b77b20;outline-offset:3px}
@media(max-width:767px){.kwn-sponsor-choice,.kwn-sponsor-pricing,.kwn-sponsor-support,.kwn-sponsor-fees>div{grid-template-columns:1fr}.kwn-sponsor-plan{padding:20px}.kwn-sponsor-fees>div{gap:8px}.kwn-sponsor-support{gap:16px}.kwn-sponsor-choice a{padding:16px}}

/* Media guide chooser: one clear destination per row. */
.kwn-sponsor-choice--simple{grid-template-columns:1fr;margin:8px 0 32px;gap:16px}
.kwn-sponsor-choice--simple a{flex-direction:row;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px}
.kwn-sponsor-choice--simple a strong{font-weight:600;line-height:1.7}
.kwn-sponsor-choice--simple a span:last-child{flex:none;font-size:1.25rem;text-decoration:none}
@media(max-width:767px){.kwn-sponsor-choice--simple a{padding:18px 16px;gap:12px}}

/* Purpose colors on the service chooser only; wording also identifies each path. */
.kwn-sponsor-choice--simple a[href*="/article-guide/"]{background:#fff5e6;color:#5a360d;border-color:#9b661d}
.kwn-sponsor-choice--simple a[href*="/sponsor-guide/"]{background:#edf7f8;color:#164950;border-color:#387b82}
.kwn-sponsor-choice--simple a span:last-child{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.75)}
@media(hover:hover){.kwn-sponsor-choice--simple a[href*="/article-guide/"]:hover{background:#ffebcd}.kwn-sponsor-choice--simple a[href*="/sponsor-guide/"]:hover{background:#dceff1}}

/* LP illustrations: natural proportions and restrained size. */
.kwn-sponsor .kwn-sponsor-visual{margin:24px auto;max-width:100%}
.kwn-sponsor .kwn-sponsor-visual img{display:block;width:100%;height:auto;border-radius:8px}
.kwn-sponsor .kwn-sponsor-visual figcaption{margin-top:8px;font-size:.75rem;font-weight:400;line-height:1.6;color:#52655c;text-align:left}
.kwn-sponsor .kwn-sponsor-visual--landscape{width:520px}
.kwn-sponsor .kwn-sponsor-visual--operator{float:right;width:220px;margin:0 0 20px 28px}
.kwn-sponsor-founder::after{content:"";display:table;clear:both}
@media(max-width:767px){.kwn-sponsor .kwn-sponsor-visual--operator{float:none;width:200px;margin:0 auto 24px}.kwn-sponsor .kwn-sponsor-visual--landscape{margin-block:20px}}

/* Category badges and menu accents share one palette. */
:is(.kwn-category--childcare,.kwn-menu-category--childcare){--kwn-category-tint:#e0f2fe;--kwn-category-ink:#075985;}
:is(.kwn-category--food,.kwn-menu-category--food){--kwn-category-tint:#ffedd5;--kwn-category-ink:#9a3412;}
:is(.kwn-category--civic,.kwn-menu-category--civic){--kwn-category-tint:#dbeafe;--kwn-category-ink:#1e40af;}
:is(.kwn-category--event,.kwn-menu-category--event){--kwn-category-tint:#f3e8ff;--kwn-category-ink:#6b21a8;}
:is(.kwn-category--outing,.kwn-menu-category--outing){--kwn-category-tint:#dcfce7;--kwn-category-ink:#166534;}
:is(.kwn-category--opening,.kwn-menu-category--opening){--kwn-category-tint:#ffe4e6;--kwn-category-ink:#9f1239;}
:is(.kwn-category--closing,.kwn-menu-category--closing){--kwn-category-tint:#e2e8f0;--kwn-category-ink:#334155;}
:is(.kwn-category--life,.kwn-menu-category--life){--kwn-category-tint:#ccfbf1;--kwn-category-ink:#115e59;}
:is(.kwn-category--home,.kwn-menu-category--home){--kwn-category-tint:#fef3c7;--kwn-category-ink:#854d0e;}
:is(.kwn-category--town,.kwn-menu-category--town){--kwn-category-tint:#e0e7ff;--kwn-category-ink:#3730a3;}
:is(.kwn-category--other,.kwn-menu-category--other){--kwn-category-tint:#e5e7eb;--kwn-category-ink:#374151;}
:is(.kwn-category--shops,.kwn-menu-category--shops){--kwn-category-tint:#ffe4e6;--kwn-category-ink:#9f1239;}
.kwn-category[class*="kwn-category--"]{background:var(--kwn-category-tint,#e5e7eb);color:var(--kwn-category-ink,#374151)}


/* Article pagination: generous targets, explicit current page, natural wrapping. */
.kwn-main .wp-block-query-pagination{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px;align-items:center;margin-block:32px 12px;padding-block:24px 8px;border-top:1px solid #d7e1da}
.kwn-main .wp-block-query-pagination>*{margin:0!important;min-width:0}
.kwn-main .wp-block-query-pagination :is(a.page-numbers,.page-numbers.current,.wp-block-query-pagination-previous,.wp-block-query-pagination-next){display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;min-width:56px;min-height:56px;padding:12px;border:1px solid #a9bfb2;border-radius:10px;background:#fff;color:#245b46;font-size:1.125rem;font-weight:600;line-height:1.5;text-align:center;text-decoration:none;box-shadow:0 2px 0 #dce6df}
.kwn-main .wp-block-query-pagination-numbers{grid-column:1/-1;grid-row:2;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px}
.kwn-main .wp-block-query-pagination .page-numbers.current{background:#2f6450;border-color:#2f6450;color:#fff;box-shadow:none}
.kwn-main .wp-block-query-pagination .page-numbers.dots{display:inline-flex;align-items:center;justify-content:center;min-width:16px;padding:0 2px;line-height:1.5;color:#52635a}
.kwn-main .wp-block-query-pagination-previous{grid-column:1;grid-row:1;gap:8px}
.kwn-main .wp-block-query-pagination-next{grid-column:2;grid-row:1;gap:8px}
.kwn-main .wp-block-query-pagination-previous::before{content:'‹';font-size:1.4em;line-height:1}
.kwn-main .wp-block-query-pagination-next::after{content:'›';font-size:1.4em;line-height:1}
.kwn-main .wp-block-query-pagination a:focus-visible{outline:3px solid #a85d00;outline-offset:3px}
.kwn-main .wp-block-query-pagination a:active{transform:translateY(2px);box-shadow:none}
@media(hover:hover){.kwn-main .wp-block-query-pagination a:hover{background:#eaf3ed;border-color:#2f6450;text-decoration:underline;text-underline-offset:.2em}}
@media(min-width:768px){.kwn-main .wp-block-query-pagination{grid-template-columns:minmax(100px,1fr) auto minmax(100px,1fr)}.kwn-main .wp-block-query-pagination-numbers{grid-column:2;grid-row:1}.kwn-main .wp-block-query-pagination-previous{justify-self:start;min-width:100px}.kwn-main .wp-block-query-pagination-next{grid-column:3;justify-self:end;min-width:100px}}
@media(max-width:359px){.kwn-main .wp-block-query-pagination :is(a.page-numbers,.page-numbers.current){min-width:48px;padding-inline:8px}}
@media(prefers-reduced-motion:reduce){.kwn-main .wp-block-query-pagination a:active{transform:none}}

/* Contact: reveal only the fields relevant to the selected enquiry. */
.kwn-contact{max-width:760px;margin-inline:auto}
.kwn-contact-intro{margin-bottom:24px!important}
.kwn-contact .kwn-contact-form{margin:0;padding:0;border:0;background:transparent;box-shadow:none}
.kwn-contact fieldset{min-width:0;padding:0;margin:0 0 24px;border:0}
.kwn-contact legend{font-weight:700;margin-bottom:12px}
.kwn-contact .kwn-required{display:inline-block;color:#93401d;font-size:.8em;font-weight:600;margin-left:4px}
.kwn-contact-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.kwn-contact .kwn-contact-options label{display:flex;align-items:center;gap:12px;min-height:64px;box-sizing:border-box;margin:0;padding:16px;border:1px solid #a8bdb0;border-radius:12px;background:#fff;cursor:pointer;font-weight:600;line-height:1.6}
.kwn-contact .kwn-contact-options label:has(:checked){border:2px solid #2f6450;padding:15px;background:#edf5ef;color:#234e3d}
.kwn-contact input[type=radio],.kwn-contact input[type=checkbox]{width:24px;height:24px;min-width:24px;flex:none;margin:0;accent-color:#2f6450}
.kwn-contact .kwn-contact-details{display:grid;gap:20px;padding:24px;border:1px solid #d1dfd6;border-radius:16px;background:#f6f9f6}
.kwn-contact [hidden]{display:none!important}
.kwn-contact .kwn-contact-details>label{display:block;margin:0;font-weight:600;line-height:1.7}
.kwn-contact .kwn-contact-details :is(input:not([type=checkbox]),textarea){box-sizing:border-box;width:100%;min-height:56px;margin-top:8px;padding:12px;border:1px solid #849b8d;border-radius:8px;background:#fff;color:#243a30;font:inherit;font-weight:400}
.kwn-contact textarea{resize:vertical;min-height:180px;line-height:1.7}
.kwn-contact :is(input,textarea,button):focus-visible{outline:3px solid #a85d00;outline-offset:3px}
.kwn-contact .kwn-contact-hint,.kwn-contact .kwn-contact-line{margin:0;font-size:.95em;line-height:1.8}
.kwn-contact .kwn-contact-help{margin:0;font-size:.85em;line-height:1.8;color:#52645a}
.kwn-contact .kwn-contact-consent{display:flex!important;align-items:flex-start;gap:12px;font-weight:400!important;padding-block:8px;min-height:48px;cursor:pointer}
.kwn-contact .kwn-contact-consent input{margin-top:5px}
.kwn-contact button[type=submit]{width:100%;min-height:60px;padding:16px;border:0;border-radius:12px;background:#2f6450;color:white;font:inherit;font-weight:700;cursor:pointer;box-shadow:0 3px 0 #214a3a}
.kwn-contact button:disabled{opacity:.65;cursor:wait}
.kwn-contact-errors{padding:20px;margin-bottom:24px;border:2px solid #a84328;border-radius:12px;background:#fff5ef}
.kwn-contact [aria-invalid=true]{border-color:#a84328!important}
.kwn-contact-success{padding:24px;border:1px solid #adc4b5;border-radius:16px;background:#f0f7f2}
@media(max-width:600px){.kwn-contact-options{grid-template-columns:1fr}.kwn-contact .kwn-contact-details{padding:16px}.kwn-contact .kwn-contact-options label{padding:12px 16px}.kwn-contact .kwn-contact-options label:has(:checked){padding:11px 15px}}
/* Clear two-line menu actions, 2026-10-04. */


/* Shopping is distinct from food and public-service information. */
:is(.kwn-category--shopping,.kwn-menu-category--shopping){--kwn-category-tint:#fce7f3;--kwn-category-ink:#9d174d;}

/* Whole eyecatch in the existing frame: owner-approved stretch, 2026-10-09. */
.wp-block-post-featured-image img,
.kwn-featured-card img,
.kwn-related img { object-fit: fill!important; }

/* Article component contract: one owner for static article presentation.
 * Core block HTML and the editor use the same semantic classes.
 */
:root {
  --kwn-article-panel-padding: 20px;
  --kwn-article-panel-gap: 24px;
  --kwn-article-panel-radius: 10px;
  --kwn-article-list-indent: 1.5em;
}
:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) h2 {
  /* Override the parent theme’s pretty wrapping so article headings use the available line width. */
  text-wrap: wrap;
  background: #eef4ef; border-left: 5px solid #176451;
  border-radius: 0 8px 8px 0; padding: 14px 18px; scroll-margin-top: 28px;
}
:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) h3 {
  padding-bottom: 8px; border-bottom: 2px solid #d7e4db; scroll-margin-top: 28px;
}
:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) :is(.kwn-summary, .kwn-note-box, .kwn-step) {
  box-sizing: border-box; min-width: 0;
  padding: var(--kwn-article-panel-padding);
  margin-block: var(--kwn-article-panel-gap);
  border: 1px solid #cad9cf; border-radius: var(--kwn-article-panel-radius);
  background: #f1f6f2;
}
:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) .kwn-note-box {
  background: #fff8eb; border-left: 4px solid #aa6825;
}
:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) .kwn-summary h2 {
  background: none; border: 0; border-radius: 0; padding: 0; margin-top: 0;
}
:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) :is(.kwn-summary, .kwn-note-box, .kwn-step) > :first-child {
  margin-block-start: 0;
}
:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) :is(.kwn-summary, .kwn-note-box, .kwn-step) > :last-child {
  margin-block-end: 0;
}
:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) .kwn-deadline {
  display: block; font-size: 1.35em; color: #813e12; font-weight: 700;
}
:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) > :is(ul, ol),
:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) :is(.kwn-summary, .kwn-note-box, .kwn-step) > :is(ul, ol) {
  padding-inline-start: var(--kwn-article-list-indent);
}
:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) ol.kwn-steps {
  list-style: decimal; padding-inline-start: var(--kwn-article-list-indent);
}
:is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) ol.kwn-steps > li {
  display: list-item; padding: 12px; border: 1px solid #d6e2da;
  border-radius: 8px; background: #f7faf7;
}
@media (max-width:480px) {
  :root { --kwn-article-panel-padding: 16px; }
  :is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) h2 { padding: 12px 14px; }
  :is(.single-post .wp-block-post-content, .editor-styles-wrapper .entry-content) .kwn-summary h2 { padding: 0; }
}
/* Leave room for the sticky mobile header, including large text/admin toolbar. */
@media (max-width:782px) {
  .single-post .wp-block-post-content :is(h2, h3) { scroll-margin-top: 160px; }
}

/* Article sharing: separate from the existing reader subscription component. */
.kwn-line-share {
  box-sizing: border-box;
  margin-block: 32px 0;
  padding: 24px;
  border: 1px solid var(--kwn-border, #b7cdc0);
  border-radius: var(--kwn-radius, 12px);
  background: var(--kwn-surface, #fff);
  color: var(--kwn-ink, #243a30);
  text-align: center;
  overflow-wrap: anywhere;
}
.kwn-line-share h2 {
  margin: 0 0 20px;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.6;
}
.kwn-line-share .kwn-line-share-button {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  max-width: 400px;
  min-height: 60px;
  padding: 12px 20px;
  border: 2px solid #075b32;
  border-radius: var(--kwn-radius, 12px);
  background: #06c755;
  color: #fff;
  box-shadow: 0 3px 0 #075b32;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
}
/* White/LINE-green alone is 2.2:1. A dark halo provides the glyph contrast. */
.kwn-line-share-button span {
  text-shadow: -1px -1px 0 #075b32, 0 -1px 0 #075b32, 1px -1px 0 #075b32,
    -1px 0 0 #075b32, 1px 0 0 #075b32, -1px 1px 0 #075b32, 0 1px 0 #075b32, 1px 1px 0 #075b32;
}
.kwn-line-share-icon { flex: 0 0 32px; display: block; }
.kwn-line-share .kwn-line-share-button:focus-visible { outline: 3px solid var(--kwn-focus, #a85d00); outline-offset: 4px; }
.kwn-line-share .kwn-line-share-button:active { transform: translateY(2px); box-shadow: 0 1px 0 #075b32; }
.kwn-line-share .kwn-line-share-note { margin: 16px 0 0; color: inherit; font-size: .9375rem; line-height: 1.8; }
@media (hover:hover) { .kwn-line-share .kwn-line-share-button:hover { background: #05b84e; } }
@media (max-width:600px) { .kwn-line-share { padding: 20px 16px; } .kwn-line-share .kwn-line-share-button { max-width: none; } }

/* Native share / copy fallback, 2026-10-10. */
.kwn-line-share .kwn-line-share-button { font-family: inherit; cursor: pointer; }
.kwn-share-status:empty { display: none; }
.kwn-line-share .kwn-share-status { font-size: 1rem; line-height: 1.7; margin: 16px 0 0; }
.kwn-share-copy[hidden] { display: none; }
.kwn-share-copy { margin-top: 16px; text-align: left; }
.kwn-share-copy input { box-sizing: border-box; width: 100%; min-height: 48px; font: inherit; padding: 8px; background: #fff; color: #243a30; border: 1px solid #647c70; border-radius: 8px; }

/* Reader subscription: concrete benefits, then one official action. */
.single-post .wp-block-post-content .kwn-reader-signup {
  padding: 0; border: 1px solid #b7ccc2; border-top: 0;
  border-radius: 16px; overflow: hidden; background: #fff;
  box-shadow: 0 8px 24px #153c2f0d;
}
.kwn-reader-signup .kwn-reader-intro { background: #174e3e; color: #fff; padding: 28px; }
.single-post .wp-block-post-content .kwn-reader-signup .kwn-reader-brand {
  color: #d6eadf; font-size: 1rem; font-weight: 600; line-height: 1.5; margin: 0 0 14px;
}
.single-post .wp-block-post-content .kwn-reader-signup h2 {
  color: #fff; font-size: 1.75rem; font-weight: 700; line-height: 1.5; margin: 0 0 14px;
}
.kwn-reader-signup h2 span { display: inline-block; }
.single-post .wp-block-post-content .kwn-reader-signup .kwn-reader-benefit {
  color: #fff; font-size: 1.125rem; line-height: 1.8; margin: 0; max-width: 34em;
}
.kwn-reader-signup .kwn-reader-action { padding: 22px 28px 24px; text-align: center; }
.single-post .wp-block-post-content .kwn-reader-signup .kwn-reader-free {
  margin: 0 0 12px; color: #174e3e; font-size: 1rem; line-height: 1.5; font-weight: 700;
}
.kwn-reader-signup .kwn-reader-action .kwn-friend-button {
  box-sizing: border-box; display: flex; width: 100%; max-width: 400px; min-height: 76px;
  justify-content: center; margin: 0 auto; padding: 8px 16px;
  border: 0; border-radius: 10px; background: transparent;
  box-shadow: none;
}
.kwn-reader-signup .kwn-reader-action .kwn-friend-button img {
  width: 194px!important; height: auto!important; max-width: 100%!important;
}
.single-post .wp-block-post-content .kwn-reader-signup .kwn-reader-action > p:has(> .kwn-friend-button) { margin: 0; }
.single-post .wp-block-post-content .kwn-reader-signup .kwn-reader-help {
  margin: 14px 0 0; font-size: 1rem; line-height: 1.7; color: #4a6055;
}
.kwn-reader-signup .kwn-friend-button:focus-visible { outline: 3px solid #a85d00; outline-offset: 4px; }

@media (max-width:600px) {
  .kwn-reader-signup .kwn-reader-intro { padding: 22px 20px; }
  .single-post .wp-block-post-content .kwn-reader-signup h2 { font-size: 1.5rem; }
  .kwn-reader-signup .kwn-reader-action { padding: 20px; }
}

/* Mobile article gutters: keep a single 16px outer margin. */
@media (max-width:480px) {
  .single-post .kwn-main,
  .editor-styles-wrapper .kwn-main:has(.entry-content) {
    padding-inline: 16px;
  }
}

/* Header reader LINE: equal side targets keep the logo centered. */
.kwn-header > .wp-block-image a { display: block; }
.kwn-header .wp-block-navigation__responsive-container-open {
  width: 56px;
  height: 56px;
  background: transparent;
  box-shadow: none;
  outline: none;
}
.kwn-header-line {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  justify-self: end;
  gap: 3px;
  width: 56px;
  min-height: 56px;
  padding: 3px 0;
  color: #087d3e;
  background: #fff;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
  border-radius: 8px;
}
.kwn-header-line svg { display: block; flex: none; color: #06c755; }
.kwn-header-line:visited { color: #087d3e; }
.kwn-header-line:active { transform: translateY(2px); }
@media (hover:hover) {
  .kwn-header-line:hover { background: #eef6f0; }
}


/* Navigation overlay: approved two-column menu; WordPress owns focus and closing.
 * Grid display and menu padding override core navigation's flex/zero-padding rules. */
.kwn-main-menu .wp-block-navigation__responsive-container.is-menu-open {
  background:#eef4ef!important;
  color:#243a30!important;
  padding:16px!important;
}
.kwn-main-menu .is-menu-open .wp-block-navigation__responsive-dialog { max-width:560px; margin-inline:auto; }
.kwn-main-menu .is-menu-open .wp-block-navigation__responsive-container-content { align-items:stretch; gap:0; padding-top:0!important; padding-bottom:max(24px,env(safe-area-inset-bottom)); }
.kwn-main-menu .kwn-menu-heading { display:flex; align-items:center; min-height:48px; padding-right:64px; margin-bottom:12px; }
.kwn-main-menu .kwn-menu-heading img { display:block; width:180px; max-width:100%; height:auto; }
.kwn-main-menu .is-menu-open .wp-block-navigation__responsive-container-close {
  position:fixed; top:calc(16px + var(--wp-admin--admin-bar--height,0px)); right:max(16px,calc((100vw - 560px)/2));
  z-index:5; display:flex; align-items:center; justify-content:center; width:48px; height:48px; padding:10px;
  border:1px solid #b8cec3; border-radius:10px; background:#fff; color:#243a30;
}
.kwn-main-menu .is-menu-open .wp-block-navigation__responsive-container-close::after { content:none; }
.kwn-main-menu .kwn-text-controls { display:flex; align-items:center; align-self:stretch; flex-wrap:wrap; gap:12px; margin:0 0 16px; font-size:14px; font-weight:600; text-align:left; }
.kwn-main-menu .kwn-text-controls > div { display:flex; gap:8px; }
.kwn-main-menu .kwn-text-controls button { box-sizing:border-box; min-width:64px; min-height:48px; padding:8px 12px; border-radius:8px; font-size:16px; }
.kwn-main-menu .is-menu-open .wp-block-search { box-sizing:border-box; width:100%; max-width:none; padding:0; margin:0; border:0; background:transparent; }
.kwn-main-menu .is-menu-open .wp-block-search__label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.kwn-main-menu .is-menu-open .wp-block-search__inside-wrapper { display:flex; gap:8px; padding:0; border:0; }
.kwn-main-menu .is-menu-open .wp-block-search__input { box-sizing:border-box; width:100%; min-width:0; min-height:48px; padding:10px 12px; border:1px solid #a8b8af; border-radius:10px; background:#fff; color:#243a30; font-size:16px; font-weight:400; }
.kwn-main-menu .is-menu-open .wp-block-search__button { flex:none; min-height:48px; margin:0; padding:10px 16px; border-radius:10px; font-size:16px; font-weight:600; }
.kwn-main-menu .is-menu-open .kwn-menu-section { margin:20px 0 12px; color:#243a30; font-size:18px; font-weight:700; line-height:1.5; }
.kwn-main-menu .is-menu-open .wp-block-navigation__container { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; gap:10px!important; width:100%; padding:0; margin:0; }
/* "All articles" is a full-width action, so the ten topics form five meaningful pairs. */
.kwn-main-menu .is-menu-open .kwn-menu-latest { grid-column:1/-1; }
.kwn-main-menu .is-menu-open .wp-block-navigation-item { display:block; min-width:0; width:100%; margin:0; }
.kwn-main-menu .is-menu-open .wp-block-navigation-item__content {
  box-sizing:border-box; display:flex; align-items:center; justify-content:space-between; gap:6px; width:100%; height:100%; min-height:64px;
  padding:12px!important; border:1px solid #b8cec3; border-left:3px solid var(--kwn-category-ink,#176451); border-radius:10px;
  background:#fff; box-shadow:none; color:#243a30; font-size:18px; font-weight:600; line-height:1.5; text-decoration:none; text-align:left;
}
.kwn-main-menu .is-menu-open .wp-block-navigation-item__label { flex:1; min-width:0; line-height:1.5; overflow-wrap:anywhere; }
.kwn-main-menu .is-menu-open .wp-block-navigation-item__content::after { content:'›'; display:block; flex:0 0 10px; width:10px; color:#176451; font-size:22px; line-height:1; }
.kwn-main-menu .is-menu-open .wp-block-navigation-item__content[aria-current=page] { background:var(--kwn-category-tint,#e0eee5); border-color:var(--kwn-category-ink,#176451); }
.kwn-main-menu .is-menu-open :is(.kwn-menu-business,.kwn-menu-reader-line) { grid-column:1/-1; }
.kwn-main-menu .is-menu-open .kwn-menu-business { margin-top:10px; padding-top:16px; border-top:1px solid #b8cec3; }
.kwn-main-menu .kwn-menu-business::before { content:'お店・企業の皆さまへ'; display:block; margin-bottom:8px; color:#52635a; font-size:14px; font-weight:600; line-height:1.5; }
.kwn-main-menu .is-menu-open .kwn-menu-business .wp-block-navigation-item__content { height:auto; min-height:72px; border-left-width:1px; padding:12px 14px!important; }
.kwn-main-menu .kwn-menu-business .wp-block-navigation-item__label { display:flex; flex-direction:column; gap:4px; }
.kwn-main-menu .kwn-menu-action-title { color:#243a30; font-size:16px; font-weight:700; line-height:1.5; }
.kwn-main-menu .kwn-menu-action-note { color:#52635a; font-size:14px; font-weight:400; line-height:1.5; }
.kwn-main-menu .is-menu-open .kwn-menu-reader-line { margin-top:6px; }
.kwn-main-menu .is-menu-open .kwn-menu-reader-line .wp-block-navigation-item__content { display:block; height:auto; min-height:0; padding:14px!important; border:1px solid #d0e2d5; background:#e2f1e5; }
.kwn-main-menu .kwn-menu-reader-line .wp-block-navigation-item__label { display:flex; flex-direction:column; gap:8px; }
.kwn-main-menu .kwn-menu-line-title { color:#176451; font-size:17px; font-weight:700; line-height:1.5; }
.kwn-main-menu .kwn-menu-line-note { color:#52635a; font-size:14px; font-weight:400; line-height:1.5; }
.kwn-main-menu .kwn-menu-line-action { display:flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:8px 12px; box-sizing:border-box; border-radius:8px; background:#06c755; color:#07391e; font-size:16px; font-weight:700; line-height:1.5; }
.kwn-main-menu .is-menu-open .kwn-menu-reader-line .wp-block-navigation-item__content::after { content:none; }
.kwn-main-menu .is-menu-open .wp-block-navigation-item__content:focus-visible { outline:3px solid #bd7414; outline-offset:3px; }
.kwn-main-menu .is-menu-open .wp-block-navigation-item__content:active { transform:translateY(2px); }
.kwn-large-text .kwn-main-menu .kwn-menu-action-title,.kwn-large-text .kwn-main-menu .kwn-menu-line-title { font-size:20px; }
.kwn-large-text .kwn-main-menu .kwn-menu-action-note,.kwn-large-text .kwn-main-menu .kwn-menu-line-note { font-size:17px; }
@media(hover:hover) {
  .kwn-main-menu .is-menu-open .wp-block-navigation-item__content:hover { background:var(--kwn-category-tint,#e0eee5); border-color:#176451; }
}
@media(prefers-reduced-motion:reduce) {
  .kwn-main-menu .is-menu-open .wp-block-navigation-item__content:active { transform:none; }
}

/* Home sponsor recruitment: a restrained, accessible secondary CTA. */
.kwn-sponsor-invite { margin-block:16px 28px; }
.kwn-sponsor-invite__link {
  box-sizing:border-box;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:20px;
  min-height:116px;
  padding:20px 24px;
  border:1px solid #d8e3dc;
  border-radius:16px;
  background:#f8faf8;
  color:#203b32;
  text-decoration:none;
  line-height:1.5;
  transition:background-color .18s ease,border-color .18s ease;
}
.kwn-sponsor-invite__copy { min-width:0; overflow-wrap:anywhere; }
.kwn-sponsor-invite__eyebrow {
  display:block;
  margin-bottom:4px;
  color:#587467;
  font-size:12px;
  font-weight:600;
  letter-spacing:.02em;
}
.kwn-sponsor-invite__title {
  display:block;
  color:#203b32;
  font-size:clamp(18px,2vw,23px);
  font-weight:700;
  line-height:1.5;
  letter-spacing:.005em;
  text-wrap:balance;
}
.kwn-sponsor-invite__description {
  display:block;
  margin-top:4px;
  color:#526a5e;
  font-size:14px;
  line-height:1.55;
}
.kwn-sponsor-invite__action {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:48px;
  padding:11px 18px;
  border-radius:10px;
  background:#176a55;
  color:#fff;
  font-size:15px;
  font-weight:700;
  line-height:1.4;
  white-space:nowrap;
}
.kwn-sponsor-invite__arrow { font-size:20px; line-height:1; }
.kwn-sponsor-invite__link:focus-visible {
  outline:3px solid var(--kwn-focus,#a85d00);
  outline-offset:3px;
}
.kwn-sponsor-invite__link:active { transform:translateY(1px); }
@media(hover:hover) {
  .kwn-sponsor-invite__link:hover { background:#f3f7f3; border-color:#a5c0af; }
  .kwn-sponsor-invite__link:hover .kwn-sponsor-invite__action { background:#125442; }
}
@media(max-width:700px) {
  .kwn-sponsor-invite__link {
    grid-template-columns:minmax(0,1fr);
    gap:14px;
    min-height:0;
    padding:18px;
    border-radius:14px;
  }
  .kwn-sponsor-invite__title { font-size:18px; }
  .kwn-sponsor-invite__action { width:100%; box-sizing:border-box; }
}
@media(prefers-reduced-motion:reduce) {
  .kwn-sponsor-invite__link { transition:none; }
  .kwn-sponsor-invite__link:active { transform:none; }
}

