/* Kaiun hub theme. Load after foundation, listing and generic-section-hub.css. */
.lani-generic-hub--kaiun {
  --kaiun-ink: #173e32;
  --kaiun-accent: #39604b;
  --kaiun-gold: #dfc27a;
  --kaiun-dark-gold: #806327;
  --kaiun-line: #dfd8c5;
  --kaiun-paper: #fbf7eb;
  --kaiun-muted: #626b60;
  color: var(--kaiun-ink);
  background: var(--kaiun-paper);
}
.lani-generic-hub--kaiun .lani-generic-hub__inner { max-width: 1200px; padding-inline: clamp(24px, 4vw, 48px); }
.lani-generic-hub--kaiun .lani-generic-hub__hero {
  position: relative;
  isolation: isolate;
  background: #173e32;
  background-image: repeating-linear-gradient(105deg, transparent 0 4px, #f5e3ac03 4px 5px);
  border-bottom: 3px solid #c3a661;
  color: var(--kaiun-paper);
}
.lani-generic-hub--kaiun .lani-generic-hub__hero::after { content: ""; position: absolute; inset: 15px; border: 1px solid #dfc27a4d; pointer-events: none; z-index: -1; }
.lani-generic-hub--kaiun .lani-generic-hub__hero-grid { position: relative; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 48px; min-height: 502px; padding-block: 42px 45px; }
.lani-generic-hub--kaiun .lani-generic-hub__kicker { color: var(--kaiun-dark-gold); font-size: 10px; font-weight: 600; letter-spacing: .24em; line-height: 1.7; }
.lani-generic-hub--kaiun .lani-generic-hub__hero .lani-generic-hub__kicker { display: flex; align-items: center; gap: 12px; color: var(--kaiun-gold); }
.lani-generic-hub--kaiun .kaiun-kicker-rule { width: 29px; height: 1px; background: var(--kaiun-gold); }
.lani-generic-hub--kaiun .lani-generic-hub__hero h1 { display: flex; align-items: center; gap: 19px; color: #fff8e7; font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif; font-size: clamp(60px, 5.8vw, 78px); font-weight: 500; line-height: 1.12; letter-spacing: .14em; margin: 0 0 18px; }
.lani-generic-hub--kaiun .kaiun-title-row { display: flex; align-items: center; gap: 19px; margin-bottom: 18px; }
.lani-generic-hub--kaiun .kaiun-title-row h1 { margin-bottom: 0; }
.lani-generic-hub--kaiun .kaiun-seal { display: inline-block; border: 1px solid #c58b6e; color: #e0a486; padding: 5px 3px; font-size: 12px; line-height: 1.2; letter-spacing: .06em; writing-mode: vertical-rl; transform: rotate(-5deg); }
.lani-generic-hub--kaiun .kaiun-hero-catch { color: #e8d29b; font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif; font-size: clamp(24px, 2.35vw, 29px); font-weight: 500; letter-spacing: .075em; line-height: 1.65; margin: 0; }
.lani-generic-hub--kaiun .lani-generic-hub__lead { color: #d5ded2; font-size: 13px; letter-spacing: .025em; margin: 16px 0 0; }
.lani-generic-hub--kaiun .lani-generic-hub__button { justify-content: space-between; background: #e1c780; border: 1px solid #eedca6; border-radius: 2px; color: #173e32; font-size: 13px; font-weight: 600; letter-spacing: .08em; gap: 38px; margin-top: 23px; padding: 13px 22px; min-height: 48px; box-shadow: none; transition: background-color .18s ease; }
.lani-generic-hub--kaiun .lani-generic-hub__button span { color: #173e32; font-size: 19px; font-weight: 400; line-height: 1; }
.lani-generic-hub--kaiun .kaiun-hero-art { width: 100%; max-width: 382px; justify-self: end; }
.lani-generic-hub--kaiun .kaiun-hero-art svg { display: block; width: 100%; }
.lani-generic-hub--kaiun .kaiun-art-caption { color: #dfc27a; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 12px; letter-spacing: .24em; text-align: center; margin: 11px 0 0; }
.lani-generic-hub--kaiun .lani-generic-hub__section { padding-block: 55px 76px; background: #fbf7eb; }
.lani-generic-hub--kaiun #lani-kaiun-articles { scroll-margin-top: 28px; }
.lani-generic-hub--kaiun .lani-generic-hub__section-header { position: relative; max-width: none; margin-bottom: 30px; padding-bottom: 25px; border-bottom: 1px solid var(--kaiun-line); }
.lani-generic-hub--kaiun .lani-generic-hub__section-header::after { content: ""; position: absolute; width: 56px; height: 3px; background: #a78946; bottom: -2px; left: 0; }
.lani-generic-hub--kaiun .lani-generic-hub__section-header .lani-generic-hub__kicker { margin-bottom: 10px; }
.lani-generic-hub--kaiun .lani-generic-hub__section-header h2 { color: var(--kaiun-ink); font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif; font-size: clamp(26px, 3vw, 34px); font-weight: 500; letter-spacing: .07em; line-height: 1.5; }
.lani-generic-hub--kaiun .lani-generic-hub__section-header > p:last-child { color: var(--kaiun-muted); font-size: 13px; margin-top: 12px; }
.lani-generic-hub--kaiun .lani-section-archive-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px 25px; }
.lani-generic-hub--kaiun .lani-section-archive-card { background: #fffdf7; border: 1px solid #ded8c8; border-radius: 3px; overflow: hidden; box-shadow: 0 3px 12px #173e3205; transition: border-color .18s ease, box-shadow .18s ease; }
.lani-generic-hub--kaiun .lani-section-archive-card > a { color: var(--kaiun-ink); border: 0; border-radius: 0; box-shadow: none; background: transparent; }
.lani-generic-hub--kaiun .lani-section-archive-card__image { background: #ede7d6; }
.lani-generic-hub--kaiun .lani-section-archive-card__image img { display: block; height: 100%; }
.lani-generic-hub--kaiun .lani-section-archive-card__body { padding: 20px 21px 22px; }
.lani-generic-hub--kaiun .lani-section-archive-card__body h3 { color: var(--kaiun-ink); font-size: 16px; font-weight: 600; line-height: 1.8; letter-spacing: .015em; }
.lani-generic-hub--kaiun .lani-section-archive-card__excerpt { color: var(--kaiun-muted); display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; font-size: 12px; line-height: 1.85; margin-top: 11px; }
.lani-generic-hub--kaiun .lani-section-archive-card time { color: var(--kaiun-muted); }
.lani-generic-hub--kaiun .lani-generic-hub__image-placeholder { position: relative; isolation: isolate; overflow: hidden; background: #204838; background-image: repeating-linear-gradient(105deg, transparent 0 4px, #f5e3ac04 4px 5px); color: #e8d49c; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 34px; letter-spacing: .14em; }
.lani-generic-hub--kaiun .lani-generic-hub__image-placeholder::before, .lani-generic-hub--kaiun .lani-generic-hub__image-placeholder::after { content: ""; position: absolute; width: 102px; height: 102px; border: 1px solid #dfc27a8c; border-radius: 50%; z-index: -1; }
.lani-generic-hub--kaiun .lani-generic-hub__image-placeholder::after { width: 117px; height: 117px; border-color: #dfc27a30; }
.lani-generic-hub--kaiun .lani-generic-hub__image-placeholder b { font-weight: 500; }
.lani-generic-hub--kaiun .lani-section-pagination .page-numbers > li > a,
.lani-generic-hub--kaiun .lani-section-pagination .page-numbers > li > span { border-color: #ded8c8; border-radius: 2px; color: #173e32; background: #fffdf7; }
.lani-generic-hub--kaiun .lani-section-pagination .page-numbers > li > .current { background: #173e32; color: #f2dfa8; border-color: #173e32; }
.lani-generic-hub--kaiun a:focus-visible { outline: 3px solid #a78946; outline-offset: 4px; }
.lani-generic-hub--kaiun .lani-generic-hub__hero a:focus-visible { outline-color: #fff8e7; }
.lani-generic-hub--kaiun .lani-section-archive-card:focus-within { outline: 3px solid #a78946; outline-offset: 3px; }
body.lani-section-kaiun.lani-section-surface-hub .lani-section-header { background: #fffdf7; border-bottom-color: #e4ddcb; }
body.lani-section-kaiun.lani-section-surface-hub .lani-section-header a,
body.lani-section-kaiun.lani-section-surface-hub .lani-section-header button { color: #173e32; }
body.lani-section-kaiun.lani-section-surface-hub .lani-section-header .lani-section-header__search { background: #173e32; border-color: #173e32; color: #f7edce; }
body.lani-section-kaiun.lani-section-surface-hub .lani-section-breadcrumb { background: #fbf7eb; color: #626b60; border-color: #e4ddcb; }
body.lani-section-kaiun.lani-section-surface-hub .lani-section-breadcrumb a { color: #536c55; }
body.lani-section-kaiun.lani-section-surface-hub .lani-section-menu__toggle { background: #fffdf7; border-color: #d8cba9; }
body.lani-section-kaiun.lani-section-surface-hub .lani-section-menu__icon i { background: #173e32; }
body.lani-section-kaiun.lani-section-surface-hub .lani-section-nav { background: #fffdf7; border-color: #e4ddcb; }
body.lani-section-kaiun.lani-section-surface-hub .lani-section-nav a { border-color: #e4ddcb; }
body.lani-section-kaiun.lani-section-surface-hub .lani-section-footer { background: #173e32; color: #dbe2d5; border-top: 3px solid #b79a54; }
body.lani-section-kaiun.lani-section-surface-hub .lani-section-footer a,
body.lani-section-kaiun.lani-section-surface-hub .lani-section-footer p { color: #dbe2d5; }
body.lani-section-kaiun.lani-section-surface-hub .lani-section-footer h2 { color: #e4cb89; }
body.lani-section-kaiun.lani-section-surface-hub .lani-section-footer__bottom { border-top-color: #dfc27a38; color: #bacab9; }
@media (hover: hover) {
  .lani-generic-hub--kaiun .lani-generic-hub__button:hover { background: #f0dca4; border-color: #f0dca4; color: #173e32; transform: none; }
  .lani-generic-hub--kaiun .lani-section-archive-card:hover { border-color: #a58c52; box-shadow: 0 7px 22px #173e3210; transform: none; }
  .lani-generic-hub--kaiun .lani-section-archive-card > a:hover { transform: none; box-shadow: none; }
  .lani-generic-hub--kaiun .lani-section-archive-card > a:hover h3 { color: #39604b; }
  .lani-generic-hub--kaiun .lani-section-pagination .page-numbers > li > a:hover { background: #eee6d0; border-color: #b99c5c; }
}
@media (max-width: 960px) {
  .lani-generic-hub--kaiun .lani-generic-hub__hero-grid { gap: 18px; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); }
  .lani-generic-hub--kaiun .lani-section-archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
}
@media (max-width: 600px) {
  .lani-generic-hub--kaiun .lani-generic-hub__inner { padding-inline: 25px; }
  .lani-generic-hub--kaiun .lani-generic-hub__hero::after { inset: 9px; }
  .lani-generic-hub--kaiun .lani-generic-hub__hero-grid { display: block; min-height: 453px; padding-block: 35px 34px; }
  .lani-generic-hub--kaiun .lani-generic-hub__hero .lani-generic-hub__kicker { font-size: 9px; gap: 8px; letter-spacing: .15em; margin-bottom: 23px; }
  .lani-generic-hub--kaiun .kaiun-kicker-rule { width: 18px; }
  .lani-generic-hub--kaiun .lani-generic-hub__hero h1 { font-size: 63px; letter-spacing: .1em; gap: 9px; margin-bottom: 29px; }
  .lani-generic-hub--kaiun .kaiun-title-row { gap: 9px; margin-bottom: 29px; }
  .lani-generic-hub--kaiun .kaiun-title-row h1 { margin-bottom: 0; }
  .lani-generic-hub--kaiun .kaiun-seal { font-size: 10px; padding: 4px 2px; }
  .lani-generic-hub--kaiun .kaiun-hero-catch { font-size: 25px; line-height: 1.6; letter-spacing: .04em; }
  .lani-generic-hub--kaiun .lani-generic-hub__lead { font-size: 12px; line-height: 2; letter-spacing: 0; }
  .lani-generic-hub--kaiun .lani-generic-hub__button { width: auto; margin-top: 21px; padding-inline: 18px; gap: 32px; }
  .lani-generic-hub--kaiun .kaiun-hero-art { position: absolute; top: 59px; right: 19px; width: 132px; }
  .lani-generic-hub--kaiun .kaiun-art-caption { display: none; }
  .lani-generic-hub--kaiun .lani-generic-hub__section { padding-block: 37px 54px; }
  .lani-generic-hub--kaiun .lani-generic-hub__section-header { padding-bottom: 21px; margin-bottom: 23px; }
  .lani-generic-hub--kaiun .lani-section-archive-grid { grid-template-columns: minmax(0, 1fr); }
  .lani-generic-hub--kaiun .lani-section-archive-card__body { padding: 18px 20px 21px; }
}
@media (max-width: 360px) {
  .lani-generic-hub--kaiun .lani-generic-hub__inner { padding-inline: 22px; }
  .lani-generic-hub--kaiun .lani-generic-hub__hero h1 { font-size: 55px; gap: 7px; margin-bottom: 35px; }
  .lani-generic-hub--kaiun .kaiun-title-row { gap: 7px; margin-bottom: 35px; }
  .lani-generic-hub--kaiun .kaiun-title-row h1 { margin-bottom: 0; }
  .lani-generic-hub--kaiun .kaiun-hero-art { width: 108px; right: 16px; top: 66px; }
  .lani-generic-hub--kaiun .kaiun-hero-catch { font-size: 23px; }
  .lani-generic-hub--kaiun .lani-generic-hub__lead { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .lani-generic-hub--kaiun .lani-generic-hub__button, .lani-generic-hub--kaiun .lani-section-archive-card { transition: none; }
}
