@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template:   cocoon-master
Version:    1.1.3
*/

/************************************
** 子テーマ用のスタイルを書く
************************************/
/*必要ならばここにコードを書く*/

/************************************
** レスポンシブデザイン用のメディアクエリ
************************************/
/*1023px以下*/
@media screen and (max-width: 1023px){
  /*必要ならばここにコードを書く*/
}

/*834px以下*/
@media screen and (max-width: 834px){
  /*必要ならばここにコードを書く*/
}

/*480px以下*/
@media screen and (max-width: 480px){
  /*必要ならばここにコードを書く*/
}

/* Otakuwallet social UI: keep hubs clean and article sharing compact. */
.page .sns-share,
.page .sns-follow,
.single-post .sns-follow {
  display: none !important;
}

.single-post .sns-share .facebook-button,
.single-post .sns-share .hatebu-button,
.single-post .sns-share .pinterest-button,
.single-post .sns-share-message,
.single-post .sns-share .share-count {
  display: none !important;
}

.single-post .sns-share {
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
}

.single-post .sns-share-buttons {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
  gap: 8px !important;
}

.single-post .sns-share .sns-button {
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 0 !important;
  padding: 7px 12px !important;
  border: 1px solid #d7dee7 !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #34465a !important;
  box-shadow: none !important;
  line-height: 1.2 !important;
}

.single-post .sns-share .sns-button *,
.single-post .sns-share .sns-button:hover * {
  color: inherit !important;
}

.single-post .sns-share .sns-button:hover {
  background: #f5f7fa !important;
  color: #1f3349 !important;
}

.single-post .sns-share .button-caption {
  font-size: 13px !important;
}

/* Home: align the page title with the main content edge. */
.home .entry-title {
  margin-left: 0 !important;
  padding-left: 0 !important;
}

/* Keep Jetpack related-post metadata readable against the page background. */
.single #jp-relatedposts .jp-relatedposts-post-context,
.single #jp-relatedposts .jp-relatedposts-post-excerpt,
.single #jp-relatedposts .jp-relatedposts-post-date {
  color: #333 !important;
  opacity: 1 !important;
}

/* Match the existing single-post breadcrumb contrast on static pages. */
.page #breadcrumb,
.page #breadcrumb a {
  color: #666 !important;
}

/* Native button version of Cocoon's mobile "back to top" control. */
.mobile-menu-buttons .top-menu-button > button.menu-button-in {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--cocoon-black-color);
  font: inherit;
  line-height: inherit;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}

/* Native button version of Cocoon's copy-share action. */
.sns-buttons button.sns-button {
  align-content: center;
  align-items: center;
  display: inline-flex;
  justify-content: center;
  position: relative;
  text-align: center;
  cursor: pointer;
  font: inherit;
  appearance: none;
  -webkit-appearance: none;
}

.sns-share-buttons button.copy-button {
  border: 0;
}

/* Mobile footer: remove the empty sidebar action and distribute four useful actions evenly. */
@media screen and (max-width: 1023px) {
  .mobile-footer-menu-buttons .sidebar-menu-button {
    display: none !important;
  }

  .mobile-footer-menu-buttons > .menu-button {
    width: 25% !important;
  }
}


/* =========================================================
 * Otakuwallet home — payment-data editorial / dashboard
 * Draft only. Scoped to .home so article pages are unaffected.
 * ========================================================= */
.home {
  --otw-ink: #17212b;
  --otw-muted: #667085;
  --otw-line: #dbe4ea;
  --otw-soft: #f4f8fa;
  --otw-accent: #0f7b83;
  --otw-accent-strong: #0a5f67;
  --otw-hero: #102a43;
  --otw-hero-soft: #dff6f2;
  --otw-card: #ffffff;
}

.home .header-container {
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid var(--otw-line);
}

.home #header,
.home #header-in {
  min-height: 0 !important;
  height: auto !important;
}

.home #header-in {
  padding: 30px 20px 20px !important;
}

.home .tagline {
  display: none;
}

.home .site-name-text {
  color: var(--otw-ink);
  font-size: clamp(30px, 4.5vw, 42px);
  font-weight: 700;
  letter-spacing: -0.045em;
}

.home #navi {
  background: #fff;
  border-top: 1px solid #eef2f5;
}

.home #navi-in .menu-header {
  display: flex;
  justify-content: center;
  gap: 8px;
  padding: 10px 14px 12px;
}

.home #navi-in .menu-header > li > a {
  min-height: 42px;
  padding: 9px 16px;
  border-radius: 999px;
  color: #344054;
  font-weight: 600;
  transition: background-color .18s ease, color .18s ease, transform .18s ease;
}

.home #navi-in .menu-header > li > a:hover,
.home #navi-in .menu-header > li.current-menu-item > a {
  background: #eaf6f6;
  color: var(--otw-accent-strong);
  transform: translateY(-1px);
}

.home #content {
  background:
    radial-gradient(circle at 10% 0%, rgba(15,123,131,.08), transparent 30rem),
    linear-gradient(180deg, #f7fafb 0%, #f3f6f8 100%);
}

.home .content-in {
  max-width: 1100px;
}

.home #main {
  border: 0;
  box-shadow: none;
}

.home .article-header {
  display: none;
}

.home .entry-content {
  color: var(--otw-ink);
}

.home .entry-content > p:first-child {
  margin: 22px 0 0;
  padding: 42px 36px 14px;
  border-radius: 26px 26px 0 0;
  background:
    radial-gradient(circle at 86% 18%, rgba(93, 218, 203, .28), transparent 22rem),
    linear-gradient(135deg, #102a43 0%, #143b52 100%);
  color: #fff;
  font-size: clamp(30px, 5vw, 48px);
  line-height: 1.2;
  letter-spacing: -0.035em;
}

.home .entry-content > p:first-child strong {
  font-weight: 750;
}

.home .entry-content > p:nth-child(2) {
  margin: 0;
  padding: 0 36px 24px;
  background: linear-gradient(135deg, #102a43 0%, #143b52 100%);
  color: #d9e6ee;
  font-size: 17px;
  line-height: 1.95;
}

.home .entry-content > p:nth-child(2) strong {
  color: #fff;
}

.home .entry-content > .wp-block-buttons:first-of-type {
  margin: 0 0 34px;
  padding: 30px 36px 38px;
  border-radius: 0 0 26px 26px;
  background: linear-gradient(135deg, #102a43 0%, #143b52 100%);
  gap: 10px;
}

.home .entry-content > .wp-block-buttons:first-of-type .wp-block-button__link {
  border: 1px solid rgba(255,255,255,.42);
  border-radius: 999px;
  background: transparent;
  color: #fff;
  font-weight: 700;
  box-shadow: none;
  transition: transform .18s ease, background-color .18s ease, border-color .18s ease;
}

.home .entry-content > .wp-block-buttons:first-of-type .wp-block-button:first-child .wp-block-button__link {
  border-color: #66d8cb;
  background: #66d8cb;
  color: #0d3140;
}

.home .entry-content > .wp-block-buttons:first-of-type .wp-block-button__link:hover {
  transform: translateY(-2px);
  background: rgba(255,255,255,.12);
}

.home .entry-content > .wp-block-buttons:first-of-type .wp-block-button:first-child .wp-block-button__link:hover {
  background: #83e2d7;
}

.home .entry-content > hr:first-of-type {
  display: none;
}

.home #toc {
  margin: 0 0 34px;
  border: 1px solid var(--otw-line);
  border-radius: 18px;
  background: rgba(255,255,255,.82);
  box-shadow: 0 8px 30px rgba(16,42,67,.04);
}

.home .entry-content h2 {
  margin-top: 2.4em;
  padding: 0 0 12px 16px;
  border-left: 5px solid var(--otw-accent);
  border-bottom: 1px solid var(--otw-line);
  background: transparent;
  color: var(--otw-ink);
  font-size: clamp(24px, 3.6vw, 32px);
  letter-spacing: -0.025em;
}

.home .entry-content a {
  text-underline-offset: 3px;
}

.home .entry-content table {
  overflow: hidden;
  border: 1px solid var(--otw-line);
  border-radius: 16px;
  background: var(--otw-card);
  box-shadow: 0 8px 24px rgba(16,42,67,.05);
}

.home .entry-content table th {
  background: #eaf4f5;
  color: #173f46;
  font-weight: 700;
}

.home .entry-content table th,
.home .entry-content table td {
  padding: 14px 16px;
  border-color: #e5ecef;
}

.home .entry-content table td strong {
  color: var(--otw-accent-strong);
  font-size: 1.04em;
}

.home .entry-content li {
  margin-bottom: .5em;
}

.home .otw-household-home-card {
  margin-top: 40px;
  padding: 26px 28px;
  border: 1px solid #cfe3e5;
  border-radius: 20px;
  background: linear-gradient(135deg, #f0f8f8 0%, #fff 68%);
  box-shadow: 0 8px 28px rgba(15,123,131,.06);
}

.home .otw-household-home-card h2 {
  margin-top: 0;
}

@media screen and (max-width: 834px) {
  .home #header-in {
    padding: 22px 16px 14px !important;
  }

  .home #navi-in {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .home #navi-in::-webkit-scrollbar {
    display: none;
  }

  .home #navi-in .menu-header {
    width: max-content;
    justify-content: flex-start;
    flex-wrap: nowrap;
    padding: 9px 14px 11px;
  }

  .home #navi-in .menu-header > li {
    flex: 0 0 auto;
  }

  .home #navi-in .menu-header > li > a {
    min-height: 38px;
    padding: 8px 13px;
    font-size: 15px;
  }

  .home #content {
    padding-top: 12px;
  }

  .home #main {
    padding-left: 14px;
    padding-right: 14px;
  }

  .home .entry-content > p:first-child {
    margin-top: 18px;
    padding: 30px 24px 12px;
    border-radius: 22px 22px 0 0;
    font-size: clamp(28px, 8vw, 38px);
  }

  .home .entry-content > p:nth-child(2) {
    padding: 0 24px 20px;
    font-size: 16px;
    line-height: 1.85;
  }

  .home .entry-content > .wp-block-buttons:first-of-type {
    padding: 28px 24px 28px;
    border-radius: 0 0 22px 22px;
  }

  .home .entry-content > .wp-block-buttons:first-of-type .wp-block-button {
    width: 100%;
  }

  .home .entry-content > .wp-block-buttons:first-of-type .wp-block-button__link {
    width: 100%;
    text-align: center;
  }

  .home #toc {
    margin-bottom: 28px;
  }

  .home .entry-content h2 {
    margin-top: 2em;
    padding-left: 12px;
    font-size: 24px;
  }

  .home .entry-content table th,
  .home .entry-content table td {
    padding: 12px 13px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home #navi-in .menu-header > li > a,
  .home .entry-content > .wp-block-buttons:first-of-type .wp-block-button__link {
    transition: none;
  }
}


/* Home polish pass: stronger hierarchy, clearer CTAs, dashboard-style statistics. */
.home .entry-content > p:first-child::before {
  content: "PAYMENT DATA · JAPAN";
  display: block;
  margin-bottom: 14px;
  color: #80e1d6;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .16em;
  line-height: 1;
}

.home .entry-content > p:nth-child(2) {
  max-width: none;
}

.home .entry-content > .wp-block-buttons:first-of-type .wp-block-button,
.home .entry-content > .wp-block-buttons:first-of-type .wp-block-button__link {
  box-sizing: border-box !important;
}

.home .entry-content > .wp-block-buttons:first-of-type .wp-block-button__link,
.home .entry-content > .wp-block-buttons:first-of-type .wp-block-button__link:visited {
  color: #ffffff !important;
  text-decoration: none !important;
}

.home .entry-content > .wp-block-buttons:first-of-type .wp-block-button:first-child .wp-block-button__link,
.home .entry-content > .wp-block-buttons:first-of-type .wp-block-button:first-child .wp-block-button__link:visited {
  color: #0d3140 !important;
}

.home .entry-content > .wp-block-buttons:first-of-type .wp-block-button__link:focus-visible {
  outline: 3px solid #ffffff;
  outline-offset: 3px;
}

.home .entry-content > .wp-block-buttons:first-of-type .wp-block-button:first-child .wp-block-button__link:focus-visible {
  outline-color: #80e1d6;
}

/* The landing page is a dashboard, so a full article TOC adds visual friction. */
.home #toc {
  display: none;
}

/* Main statistics become the visual signature of the home page. */
.home .entry-content > .scrollable-table:first-of-type {
  overflow: visible;
  margin: 20px 0 10px;
}

.home .entry-content > .scrollable-table:first-of-type table {
  display: block;
  width: 100%;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.home .entry-content > .scrollable-table:first-of-type thead {
  display: none;
}

.home .entry-content > .scrollable-table:first-of-type tbody {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  width: 100%;
}

.home .entry-content > .scrollable-table:first-of-type tr {
  display: flex;
  min-width: 0;
  min-height: 178px;
  flex-direction: column;
  padding: 18px;
  border: 1px solid var(--otw-line);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(16,42,67,.05);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.home .entry-content > .scrollable-table:first-of-type tr:hover {
  transform: translateY(-2px);
  border-color: #b9d9dc;
  box-shadow: 0 12px 30px rgba(16,42,67,.09);
}

.home .entry-content > .scrollable-table:first-of-type td {
  display: block;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

.home .entry-content > .scrollable-table:first-of-type td:first-child {
  min-height: 48px;
  color: var(--otw-ink);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.55;
}

.home .entry-content > .scrollable-table:first-of-type td:first-child a {
  color: var(--otw-ink);
  text-decoration: none;
}

.home .entry-content > .scrollable-table:first-of-type td:first-child a::after {
  content: " ↗";
  color: var(--otw-accent);
  font-size: .9em;
}

.home .entry-content > .scrollable-table:first-of-type td:nth-child(2) {
  margin-top: 10px;
  color: var(--otw-accent-strong);
  font-size: 18px;
  line-height: 1.45;
}

.home .entry-content > .scrollable-table:first-of-type td:nth-child(2) strong {
  color: inherit;
  font-size: inherit;
}

.home .entry-content > .scrollable-table:first-of-type td:nth-child(3) {
  align-self: flex-start;
  margin-top: auto;
  padding: 5px 9px !important;
  border-radius: 999px !important;
  background: #eef5f6 !important;
  color: #527078;
  font-size: 12px;
  font-weight: 700;
}

/* Turn selected overview lists into compact editorial cards. */
.home .entry-content h2:has(#toc3) + ul,
.home .entry-content h2:has(#toc8) + ul,
.home .entry-content h2:has(#toc9) + ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding-left: 0;
  list-style: none;
}

.home .entry-content h2:has(#toc3) + ul > li,
.home .entry-content h2:has(#toc8) + ul > li,
.home .entry-content h2:has(#toc9) + ul > li {
  margin: 0;
  padding: 16px 17px;
  border: 1px solid var(--otw-line);
  border-radius: 14px;
  background: rgba(255,255,255,.78);
}

.home .entry-content h2:has(#toc3) + ul > li strong {
  color: var(--otw-accent-strong);
}

/* Long-form history list: calm numbered index rather than a default ordered list. */
.home .entry-content h2:has(#toc4) ~ ol:first-of-type {
  counter-reset: otw-history;
  padding-left: 0;
  list-style: none;
}

.home .entry-content h2:has(#toc4) ~ ol:first-of-type > li {
  position: relative;
  margin: 0;
  padding: 13px 12px 13px 48px;
  border-bottom: 1px solid #e4eaee;
}

.home .entry-content h2:has(#toc4) ~ ol:first-of-type > li::before {
  counter-increment: otw-history;
  content: counter(otw-history, decimal-leading-zero);
  position: absolute;
  left: 4px;
  top: 15px;
  color: var(--otw-accent);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
}

@media screen and (max-width: 834px) {
  .home .entry-content > .wp-block-buttons:first-of-type {
    gap: 12px;
  }

  .home .entry-content > .wp-block-buttons:first-of-type .wp-block-button {
    display: block;
    width: 100% !important;
    margin: 0 !important;
  }

  .home .entry-content > .wp-block-buttons:first-of-type .wp-block-button__link {
    display: flex !important;
    width: 100% !important;
    min-height: 54px;
    align-items: center;
    justify-content: center;
    padding: 13px 16px !important;
    line-height: 1.35;
  }

  .home .entry-content > .scrollable-table:first-of-type tbody {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .home .entry-content > .scrollable-table:first-of-type tr {
    min-height: 168px;
    padding: 15px;
    border-radius: 15px;
  }

  .home .entry-content > .scrollable-table:first-of-type td:first-child {
    min-height: 44px;
    font-size: 13px;
  }

  .home .entry-content > .scrollable-table:first-of-type td:nth-child(2) {
    font-size: 16px;
  }

  .home .entry-content h2:has(#toc3) + ul,
  .home .entry-content h2:has(#toc8) + ul,
  .home .entry-content h2:has(#toc9) + ul {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 380px) {
  .home .entry-content > .scrollable-table:first-of-type tbody {
    grid-template-columns: 1fr;
  }

  .home .entry-content > .scrollable-table:first-of-type tr {
    min-height: 150px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home .entry-content > .scrollable-table:first-of-type tr {
    transition: none;
  }
}


/* =========================================================
 * Stripe-informed refinement — principles, not imitation.
 * Strong hierarchy, metric-first cards, directional CTAs,
 * and restrained motion/geometry for a financial-data feel.
 * ========================================================= */

/* Give the hero a little more depth without adding imagery. */
.home .entry-content > p:first-child {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  box-shadow: inset 0 3px 0 rgba(102,216,203,.78);
}

.home .entry-content > p:first-child::before,
.home .entry-content > p:first-child strong {
  position: relative;
  z-index: 2;
}

.home .entry-content > p:first-child::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: -62%;
  right: -8%;
  width: 50%;
  height: 230%;
  opacity: .42;
  transform: rotate(14deg);
  background:
    linear-gradient(90deg,
      transparent 0 10%,
      rgba(128,225,214,.30) 10% 13%,
      transparent 13% 27%,
      rgba(128,225,214,.15) 27% 30%,
      transparent 30% 48%,
      rgba(255,255,255,.11) 48% 51%,
      transparent 51% 72%,
      rgba(128,225,214,.20) 72% 75%,
      transparent 75% 100%);
  pointer-events: none;
}

/* Directional CTA language: the action reads immediately. */
.home .entry-content > .wp-block-buttons:first-of-type .wp-block-button__link::after {
  content: "→";
  display: inline-block;
  margin-left: .55em;
  font-weight: 800;
  transition: transform .18s ease;
}

.home .entry-content > .wp-block-buttons:first-of-type .wp-block-button__link:hover::after {
  transform: translateX(3px);
}

.home .entry-content > .wp-block-buttons:first-of-type .wp-block-button:first-child .wp-block-button__link {
  box-shadow: 0 12px 28px rgba(36,190,176,.18);
}

/* Stripe-style information hierarchy: lead with the number, then explain it. */
.home .entry-content > .scrollable-table:first-of-type tr {
  position: relative;
  overflow: hidden;
  border-color: #d6e3e7;
}

.home .entry-content > .scrollable-table:first-of-type tr::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: linear-gradient(90deg, #0f7b83, #66d8cb 58%, transparent);
  opacity: .8;
}

.home .entry-content > .scrollable-table:first-of-type td:nth-child(2) {
  order: 1;
  margin-top: 2px;
  color: #0b6971;
  font-size: clamp(20px, 2.1vw, 25px);
  font-weight: 800;
  letter-spacing: -.025em;
}

.home .entry-content > .scrollable-table:first-of-type td:first-child {
  order: 2;
  min-height: 0;
  margin-top: 12px;
  color: #243746;
  font-size: 14px;
  font-weight: 700;
}

.home .entry-content > .scrollable-table:first-of-type td:nth-child(3) {
  order: 3;
  margin-top: auto;
}

/* Create a stronger editorial rhythm between major sections. */
.home .entry-content h2 {
  position: relative;
}

.home .entry-content h2::after {
  content: "";
  position: absolute;
  left: 15px;
  bottom: -1px;
  width: 64px;
  height: 2px;
  background: linear-gradient(90deg, var(--otw-accent), #66d8cb);
}

/* Modular cards: quiet surface treatment with a clear interactive cue. */
.home .entry-content h2:has(#toc3) + ul > li,
.home .entry-content h2:has(#toc8) + ul > li,
.home .entry-content h2:has(#toc9) + ul > li {
  position: relative;
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(16,42,67,.035);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.home .entry-content h2:has(#toc3) + ul > li::before,
.home .entry-content h2:has(#toc8) + ul > li::before,
.home .entry-content h2:has(#toc9) + ul > li::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background: linear-gradient(180deg, var(--otw-accent), #66d8cb);
  opacity: .72;
}

.home .entry-content h2:has(#toc3) + ul > li:hover,
.home .entry-content h2:has(#toc8) + ul > li:hover,
.home .entry-content h2:has(#toc9) + ul > li:hover {
  transform: translateY(-2px);
  border-color: #bdd9dc;
  box-shadow: 0 11px 28px rgba(16,42,67,.07);
}

/* Make the home feel like one system, not a stack of WordPress blocks. */
.home .entry-content > p:nth-child(2),
.home .entry-content > .wp-block-buttons:first-of-type {
  background:
    linear-gradient(135deg, rgba(102,216,203,.035), transparent 45%),
    linear-gradient(135deg, #102a43 0%, #143b52 100%);
}

@media screen and (max-width: 834px) {
  .home .entry-content > p:first-child::after {
    right: -24%;
    width: 72%;
    opacity: .30;
  }

  .home .entry-content > .scrollable-table:first-of-type td:nth-child(2) {
    font-size: 19px;
  }

  .home .entry-content > .scrollable-table:first-of-type td:first-child {
    margin-top: 10px;
    font-size: 13px;
    line-height: 1.5;
  }

  .home .entry-content h2::after {
    left: 11px;
    width: 52px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home .entry-content > .wp-block-buttons:first-of-type .wp-block-button__link::after,
  .home .entry-content h2:has(#toc3) + ul > li,
  .home .entry-content h2:has(#toc8) + ul > li,
  .home .entry-content h2:has(#toc9) + ul > li {
    transition: none;
  }
}


/* =========================================================
 * Otakuwallet site-wide design system
 * Extends the home visual language to articles, pages,
 * archives and search results without changing content.
 * ========================================================= */
body:not(.home) {
  --otw-ink: #17212b;
  --otw-muted: #667085;
  --otw-line: #dbe4ea;
  --otw-soft: #f4f8fa;
  --otw-accent: #0f7b83;
  --otw-accent-strong: #0a5f67;
  --otw-hero: #102a43;
  --otw-card: #ffffff;
  color: var(--otw-ink);
}

/* Shared brand header */
body:not(.home) .header-container {
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid var(--otw-line);
}

body:not(.home) #header,
body:not(.home) #header-in {
  min-height: 0 !important;
  height: auto !important;
}

body:not(.home) #header-in {
  padding: 24px 20px 17px !important;
}

body:not(.home) .tagline {
  display: none;
}

body:not(.home) .site-name-text {
  color: var(--otw-ink);
  font-size: clamp(28px, 4vw, 38px);
  font-weight: 700;
  letter-spacing: -.045em;
}

body:not(.home) #navi {
  background: #fff;
  border-top: 1px solid #eef2f5;
}

body:not(.home) #navi-in .menu-header {
  display: flex;
  justify-content: center;
  gap: 8px;
  padding: 9px 14px 11px;
}

body:not(.home) #navi-in .menu-header > li > a {
  min-height: 40px;
  padding: 8px 15px;
  border-radius: 999px;
  color: #344054;
  font-weight: 600;
  transition: background-color .18s ease, color .18s ease, transform .18s ease;
}

body:not(.home) #navi-in .menu-header > li > a:hover,
body:not(.home) #navi-in .menu-header > li.current-menu-item > a,
body:not(.home) #navi-in .menu-header > li.current-post-ancestor > a {
  background: #eaf6f6;
  color: var(--otw-accent-strong);
  transform: translateY(-1px);
}

/* Page canvas and reading surface */
body:not(.home) #content {
  background:
    radial-gradient(circle at 9% 0%, rgba(15,123,131,.065), transparent 28rem),
    linear-gradient(180deg, #f7fafb 0%, #f3f6f8 100%);
  padding-top: 24px;
}

body.single-post #main,
body.page:not(.home) #main {
  overflow: hidden;
  border: 1px solid rgba(219,228,234,.95);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 14px 42px rgba(16,42,67,.055);
}

/* Article/page hero */
body:not(.home) .article-header {
  position: relative;
}

body:not(.home) .entry-title {
  position: relative;
  margin-bottom: 18px;
  padding-top: 18px;
  color: var(--otw-ink);
  font-size: clamp(30px, 4vw, 44px);
  line-height: 1.28;
  letter-spacing: -.035em;
}

body:not(.home) .entry-title::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 78px;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--otw-accent), #66d8cb);
}

body:not(.home) .eye-catch-wrap,
body:not(.home) .eye-catch,
body:not(.home) .eye-catch img {
  border-radius: 18px;
}

body:not(.home) .eye-catch {
  overflow: hidden;
}

body:not(.home) .cat-label {
  border-radius: 999px;
  background: #0f7b83 !important;
  color: #fff !important;
  font-weight: 700;
}

body:not(.home) .date-tags {
  color: #5f6f7c;
  font-size: 13px;
}

/* Editorial navigation and metadata */
body:not(.home) #breadcrumb,
body:not(.home) #breadcrumb a {
  color: #5f6f7c !important;
}

body:not(.home) #toc {
  margin: 30px 0 38px;
  overflow: hidden;
  border: 1px solid var(--otw-line);
  border-radius: 18px;
  background: linear-gradient(135deg, #f7fbfb, #fff);
  box-shadow: 0 8px 26px rgba(16,42,67,.04);
}

body:not(.home) #toc .toc-title {
  color: #213746;
  font-weight: 800;
}

body:not(.home) #toc a {
  color: #315466;
  text-decoration: none;
}

/* Long-form information hierarchy */
body:not(.home) .entry-content h2 {
  position: relative;
  margin-top: 2.5em;
  padding: 0 0 12px 16px;
  border-left: 5px solid var(--otw-accent);
  border-bottom: 1px solid var(--otw-line);
  background: transparent;
  color: var(--otw-ink);
  font-size: clamp(24px, 3vw, 31px);
  letter-spacing: -.025em;
}

body:not(.home) .entry-content h2::after {
  content: "";
  position: absolute;
  left: 15px;
  bottom: -1px;
  width: 62px;
  height: 2px;
  background: linear-gradient(90deg, var(--otw-accent), #66d8cb);
}

body:not(.home) .entry-content h3 {
  margin-top: 2em;
  padding-left: 13px;
  border-left: 3px solid #66d8cb;
  color: #203443;
  font-size: clamp(20px, 2.4vw, 25px);
}

body:not(.home) .entry-content a {
  color: #08727a;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

body:not(.home) .entry-content a:hover {
  color: #064f56;
}

/* Data tables */
body:not(.home) .entry-content .scrollable-table {
  margin: 24px 0;
}

body:not(.home) .entry-content table {
  overflow: hidden;
  border: 1px solid var(--otw-line);
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 7px 22px rgba(16,42,67,.035);
}

body:not(.home) .entry-content table th {
  padding: 13px 15px;
  border-color: #dfe8ec;
  background: #eaf4f5;
  color: #183f46;
  font-weight: 800;
}

body:not(.home) .entry-content table td {
  padding: 13px 15px;
  border-color: #e6ecef;
}

body:not(.home) .entry-content table tr:nth-child(even) td {
  background: rgba(246,250,251,.62);
}

/* Notes / quotations / source-oriented callouts */
body:not(.home) .entry-content blockquote {
  position: relative;
  margin: 28px 0;
  padding: 20px 22px 20px 26px;
  border: 1px solid #d8e7e9;
  border-left: 4px solid var(--otw-accent);
  border-radius: 14px;
  background: #f6fbfb;
  color: #314754;
}

body:not(.home) .entry-content hr {
  height: 1px;
  border: 0;
  background: linear-gradient(90deg, transparent, #d9e4e8 14%, #d9e4e8 86%, transparent);
}

/* Archive/search cards */
body.archive .entry-card-wrap,
body.category .entry-card-wrap,
body.search .entry-card-wrap {
  margin-bottom: 14px;
  overflow: hidden;
  border: 1px solid var(--otw-line);
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 7px 24px rgba(16,42,67,.035);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

body.archive .entry-card-wrap:hover,
body.category .entry-card-wrap:hover,
body.search .entry-card-wrap:hover {
  transform: translateY(-2px);
  border-color: #bfdcdf;
  box-shadow: 0 12px 30px rgba(16,42,67,.07);
}

body.archive .entry-card-title,
body.category .entry-card-title,
body.search .entry-card-title {
  color: var(--otw-ink);
  letter-spacing: -.015em;
}

/* Sidebar modules inherit the same quiet card language. */
body:not(.home) .sidebar .widget {
  overflow: hidden;
  border: 1px solid var(--otw-line);
  border-radius: 17px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 7px 22px rgba(16,42,67,.03);
}

body:not(.home) .sidebar .widget-title {
  border-bottom: 1px solid var(--otw-line);
  color: #233b49;
}

/* Footer becomes the visual anchor of the system. */
body:not(.home) .footer {
  background: #102a43;
  color: #dbe7ed;
}

body:not(.home) .footer a {
  color: #e9f5f3;
}

body:not(.home) .footer .site-name-text {
  color: #e9f5f3;
}

/* Static-page buttons follow the home CTA grammar. */
body.page:not(.home) .entry-content .wp-block-button__link {
  border-radius: 999px;
  background: var(--otw-accent);
  color: #fff !important;
  font-weight: 700;
  text-decoration: none;
  box-shadow: none;
  transition: transform .18s ease, background-color .18s ease;
}

body.page:not(.home) .entry-content .wp-block-button__link:hover {
  transform: translateY(-2px);
  background: var(--otw-accent-strong);
}

@media screen and (max-width: 834px) {
  body:not(.home) #header-in {
    padding: 20px 16px 13px !important;
  }

  body:not(.home) #navi-in {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  body:not(.home) #navi-in::-webkit-scrollbar {
    display: none;
  }

  body:not(.home) #navi-in .menu-header {
    width: max-content;
    justify-content: flex-start;
    flex-wrap: nowrap;
    padding: 8px 14px 10px;
  }

  body:not(.home) #navi-in .menu-header > li {
    flex: 0 0 auto;
  }

  body:not(.home) #navi-in .menu-header > li > a {
    min-height: 38px;
    padding: 8px 13px;
    font-size: 15px;
  }

  body:not(.home) #content {
    padding-top: 13px;
  }

  body.single-post #main,
  body.page:not(.home) #main {
    border-radius: 18px;
  }

  body:not(.home) .entry-title {
    padding-top: 15px;
    font-size: clamp(27px, 8vw, 36px);
  }

  body:not(.home) .entry-title::before {
    width: 62px;
    height: 3px;
  }

  body:not(.home) .entry-content h2 {
    margin-top: 2.1em;
    padding-left: 12px;
    font-size: 24px;
  }

  body:not(.home) .entry-content h2::after {
    left: 11px;
    width: 52px;
  }

  body:not(.home) .entry-content table th,
  body:not(.home) .entry-content table td {
    padding: 11px 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body:not(.home) #navi-in .menu-header > li > a,
  body.archive .entry-card-wrap,
  body.category .entry-card-wrap,
  body.search .entry-card-wrap,
  body.page:not(.home) .entry-content .wp-block-button__link {
    transition: none;
  }
}


/* =========================================================
 * Post-publish QA polish
 * Covers special Otakuwallet modules, archives, forms and
 * embedded data surfaces found during representative-page QA.
 * ========================================================= */

/* Keep the home footer inside the same visual system. */
.home .footer {
  background: #102a43;
  color: #dbe7ed;
}

.home .footer a,
.home .footer .site-name-text {
  color: #e9f5f3;
}

/* Archive/search headings were outside .entry-title. */
body.archive .archive-title,
body.search .archive-title {
  position: relative;
  margin-bottom: 24px;
  padding: 18px 0 14px 16px;
  border-left: 5px solid var(--otw-accent);
  border-bottom: 1px solid var(--otw-line);
  color: var(--otw-ink);
  font-size: clamp(27px, 3.4vw, 36px);
  line-height: 1.3;
  letter-spacing: -.025em;
}

body.archive .archive-title::after,
body.search .archive-title::after {
  content: "";
  position: absolute;
  left: 15px;
  bottom: -1px;
  width: 62px;
  height: 2px;
  background: linear-gradient(90deg, var(--otw-accent), #66d8cb);
}

/* Inline technical labels in catalog / methodology pages. */
body:not(.home) .entry-content :not(pre) > code {
  padding: .16em .42em;
  border: 1px solid #d6e5e8;
  border-radius: 6px;
  background: #f0f7f7;
  color: #15545a;
  font-size: .9em;
}

/* Flourish charts should breathe like first-class data modules. */
body:not(.home) .entry-content .flourish-embed {
  min-width: 0;
  margin: 30px 0 34px;
}

/* Custom data cards / navigation modules used in household content. */
body:not(.home) .entry-content .otw-data-card,
body:not(.home) .entry-content .otw-household-router,
body:not(.home) .entry-content .otw-household-catalog,
body:not(.home) .entry-content .otw-next-question {
  position: relative;
  margin: 30px 0;
  padding: 22px 24px;
  overflow: hidden;
  border: 1px solid #d6e5e8;
  border-radius: 17px;
  background: linear-gradient(135deg, #f1f8f8 0%, #fff 72%);
  box-shadow: 0 7px 24px rgba(16,42,67,.035);
}

body:not(.home) .entry-content .otw-data-card::before,
body:not(.home) .entry-content .otw-household-router::before,
body:not(.home) .entry-content .otw-household-catalog::before,
body:not(.home) .entry-content .otw-next-question::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, var(--otw-accent), #66d8cb);
}

body:not(.home) .entry-content .otw-data-card > :first-child,
body:not(.home) .entry-content .otw-household-router > :first-child,
body:not(.home) .entry-content .otw-household-catalog > :first-child,
body:not(.home) .entry-content .otw-next-question > :first-child {
  margin-top: 0;
}

body:not(.home) .entry-content .otw-data-card > :last-child,
body:not(.home) .entry-content .otw-household-router > :last-child,
body:not(.home) .entry-content .otw-household-catalog > :last-child,
body:not(.home) .entry-content .otw-next-question > :last-child {
  margin-bottom: 0;
}

body:not(.home) .entry-content .otw-data-card strong {
  color: var(--otw-accent-strong);
  letter-spacing: .02em;
}

body:not(.home) .entry-content .otw-household-router ol,
body:not(.home) .entry-content .otw-household-catalog ul,
body:not(.home) .entry-content .otw-next-question ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px 14px;
  margin: 14px 0 0;
  padding-left: 1.5em;
}

body:not(.home) .entry-content .otw-household-router li,
body:not(.home) .entry-content .otw-household-catalog li,
body:not(.home) .entry-content .otw-next-question li {
  margin: 0;
}

/* Jetpack contact form: match the site without changing form behavior. */
body.page-id-1758 .jetpack-contact-form-container {
  margin-top: 28px;
  padding: 24px;
  border: 1px solid var(--otw-line);
  border-radius: 18px;
  background: #f8fbfc;
}

body.page-id-1758 .jetpack-contact-form__form .grunion-field-wrap {
  margin-bottom: 18px;
}

body.page-id-1758 .jetpack-contact-form__form .grunion-field-label {
  display: block;
  margin-bottom: 7px;
  color: #2a414f;
  font-weight: 700;
}

body.page-id-1758 .jetpack-contact-form__form input[type="text"],
body.page-id-1758 .jetpack-contact-form__form input[type="email"],
body.page-id-1758 .jetpack-contact-form__form textarea {
  box-sizing: border-box;
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #cfdde2;
  border-radius: 12px;
  background: #fff;
  color: var(--otw-ink);
  font: inherit;
  transition: border-color .18s ease, box-shadow .18s ease;
}

body.page-id-1758 .jetpack-contact-form__form textarea {
  min-height: 190px;
  resize: vertical;
}

body.page-id-1758 .jetpack-contact-form__form input:focus,
body.page-id-1758 .jetpack-contact-form__form textarea:focus {
  outline: none;
  border-color: var(--otw-accent);
  box-shadow: 0 0 0 3px rgba(15,123,131,.12);
}

body.page-id-1758 .jetpack-contact-form__form input[type="submit"],
body.page-id-1758 .jetpack-contact-form__form button[type="submit"] {
  min-height: 46px;
  padding: 11px 22px;
  border: 0;
  border-radius: 999px;
  background: var(--otw-accent);
  color: #fff;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

@media screen and (max-width: 834px) {
  body.archive .archive-title,
  body.search .archive-title {
    margin-bottom: 18px;
    padding: 14px 0 12px 12px;
    font-size: 26px;
  }

  body.archive .archive-title::after,
  body.search .archive-title::after {
    left: 11px;
    width: 52px;
  }

  body:not(.home) .entry-content .otw-data-card,
  body:not(.home) .entry-content .otw-household-router,
  body:not(.home) .entry-content .otw-household-catalog,
  body:not(.home) .entry-content .otw-next-question {
    padding: 18px 18px 18px 20px;
    border-radius: 15px;
  }

  body:not(.home) .entry-content .otw-household-router ol,
  body:not(.home) .entry-content .otw-household-catalog ul,
  body:not(.home) .entry-content .otw-next-question ul {
    grid-template-columns: 1fr;
  }

  body.page-id-1758 .jetpack-contact-form-container {
    padding: 18px;
    border-radius: 15px;
  }

  /* Legacy tables without a Gutenberg/Cocoon scroll wrapper stay usable on narrow screens. */
  body:not(.home) .entry-content > table {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.page-id-1758 .jetpack-contact-form__form input[type="text"],
  body.page-id-1758 .jetpack-contact-form__form input[type="email"],
  body.page-id-1758 .jetpack-contact-form__form textarea {
    transition: none;
  }
}
