@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* ==========================================================================
   Visibility / Readability Improvements
   - Minimum font-size: 14px (all breakpoints)
   - Minimum text color: #555 on white background (contrast ratio >= 4.5:1)
   - Line-height: body 1.8, card 1.6, table 1.5
   ========================================================================== */

/* --- (#eval-v2) SWELL parent theme font-size overrides: enforce min 14px --- */
.c-pagination { font-size: 14px; }
.c-scrollHint span { font-size: 14px; }
.p-blogCard__caption { font-size: 14px; }
[data-type=type3] .p-blogCard__caption { font-size: 14px; }
.p-breadcrumb__list { font-size: 14px; }
.p-postList__meta { font-size: 14px; }
.-type-big .p-postList__meta { font-size: 14px; }
.c-prNotation[data-style=small] { font-size: 14px; }
.c-postThumb__cat { font-size: 14px; }
.-type-big .p-postList__body:after,
.-type-list2 .p-postList__body:after { font-size: 14px; }
.p-blogParts__edit { font-size: 14px; }
.c-smallNavTitle { font-size: 14px; }
.c-fixBtn__label { font-size: 14px; transform: none; -webkit-transform: none; }
.c-iconBtn__label { font-size: 14px; transform: none; -webkit-transform: none; }
/* Utility classes override */
.u-fz-10, .u-fz-11, .u-fz-12, .u-fz-13 { font-size: 14px !important; }
/* Footer & profile */
.p-profileBox__desc { font-size: 14px; }
.l-footer__nav a { font-size: 14px; }
/* Comments */
.p-commentList__body { font-size: 14px; }
/* TOC */
.p-toc__list { font-size: 14px; }
/* SNS CTA */
.p-snsCta { font-size: 14px; }
/* Tag cloud */
.wp-block-tag-cloud a, .tagcloud a { font-size: 14px !important; }

/* --- Footer copyright & small text --- */
.l-footer__copyright,
.l-footer .copyright {
  font-size: 14px;
  line-height: 1.6;
}

/* --- Post meta (date, category) --- */
.p-articleMetas,
.p-articleMetas__item,
.c-postMeta,
.c-postMeta__item {
  font-size: 14px;
  color: #555;
}

/* --- Breadcrumb readability --- */
.p-breadcrumb {
  font-size: 14px;
  line-height: 1.6;
}
.p-breadcrumb__text {
  color: #555;
}
.p-breadcrumb a .p-breadcrumb__text {
  color: var(--color_link, #0369a1);
}

/* --- Table readability (post_content) --- */
.post_content table th,
.post_content table td {
  line-height: 1.5;
  font-size: 14px;
}

/* --- FAQ accordion readability --- */
.flavor-faq__body p {
  line-height: 1.8;
}

/* --- FAQ box (non-accordion) unified styling --- */
.faq-box {
  margin: 2em 0;
}
.faq-item {
  border-bottom: 1px solid #e2e8f0;
  padding: 1em 0;
}
.faq-item:last-child {
  border-bottom: none;
}
.faq-item h3 {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 8px;
  color: var(--color_main, #0c4a6e);
  line-height: 1.5;
}
.faq-item h3::before {
  content: "Q. ";
  color: var(--color_main, #0c4a6e);
  font-weight: 800;
}
.faq-item [itemprop="acceptedAnswer"] p {
  margin: 0;
  line-height: 1.8;
}

/* --- h3 margin in post_content --- */
.post_content h3 {
  margin: 1.5em 0 0.8em;
  line-height: 1.4;
}

/* --- "Awasete yomitai" box unified class --- */
.flavor-related-box {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 1.5em;
  margin: 2em 0;
}
.flavor-related-box strong:first-child,
.flavor-related-box p:first-child strong {
  display: block;
  margin-bottom: 0.5em;
  font-size: 15px;
  color: var(--color_main, #0c4a6e);
}

/* --- (#227) Category page H1: clean title --- */
.archive .c-pageTitle__cat-label,
.archive .c-pageTitle__label,
.archive .c-pageTitle__subTitle {
  display: none;
}
.archive .c-pageTitle {
  font-size: clamp(22px, 4vw, 32px);
  font-weight: 700;
}

/* --- (#209) Category page enhancement --- */
.archive .l-mainContent {
  padding-top: 32px;
}
.archive .p-archiveHeader {
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--color_main, #0c4a6e);
}

/* --- (#218, #230) Table design unification --- */
.table-scroll-wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 1em 0;
}
.post_content table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #e2e8f0;
}
.post_content table th {
  background: var(--color_main, #0c4a6e);
  color: #fff;
  font-weight: 700;
  padding: 10px 14px;
  text-align: left;
}
.post_content table td {
  padding: 10px 14px;
  border-bottom: 1px solid #e2e8f0;
}
.post_content table tr:nth-child(even) td {
  background: #f8fafc;
}
.post_content table tr:hover td {
  background: #e0f2fe;
}

/* --- (#241) Thumbnail empty alt indicator (accessibility) --- */
.p-postList__thumb img[alt=""] {
  outline: 2px dashed #dc3545;
}

/* --- Dark mode fixes --- */
@media (prefers-color-scheme: dark) {
  .flavor-eeat__date {
    color: #94a3b8;
  }
  .flavor-eeat__desc {
    color: #cbd5e1;
  }
  .post_content table th {
    background: #1e3a5f;
  }
  .post_content table td {
    border-color: #334155;
  }
  .post_content table tr:nth-child(even) td {
    background: #1e293b;
  }
  .post_content table tr:hover td {
    background: #1e3a5f;
  }
  .table-scroll-wrapper {
    border-color: #334155;
  }

  /* FAQ accordion dark mode */
  .flavor-faq__item {
    background: #1e293b;
    border-color: #334155;
  }
  .flavor-faq__title {
    color: #e2e8f0;
  }
  .flavor-faq__body {
    color: #cbd5e1;
  }
  .flavor-faq__body p {
    color: #cbd5e1;
  }

  /* details/summary generic dark mode */
  .post_content details {
    border-color: #334155;
  }
  .post_content summary {
    color: #e2e8f0;
  }

  /* PR disclosure dark mode */
  .flavor-pr-disclosure {
    background: #1e293b !important;
    border-color: #334155 !important;
    color: #94a3b8 !important;
  }
  .flavor-pr-disclosure__badge {
    background: #334155 !important;
    color: #94a3b8 !important;
  }

  /* Seasonal banner dark mode */
  .flavor-seasonal-banner {
    background: #1e3a5f !important;
    color: #cbd5e1 !important;
  }

  /* Inline info box dark mode (blue left-border boxes) */
  .post_content div[style*="border-left"][style*="#0369a1"] {
    background: #1e293b !important;
    color: #cbd5e1 !important;
  }
  .post_content div[style*="border-left"][style*="#0369a1"] p,
  .post_content div[style*="border-left"][style*="#0369a1"] li {
    color: #cbd5e1 !important;
  }
  /* Inline info box with background #f0f9ff */
  .post_content div[style*="background:#f0f9ff"],
  .post_content div[style*="background: #f0f9ff"] {
    background: #1e293b !important;
    color: #cbd5e1 !important;
  }
  .post_content div[style*="background:#f0f9ff"] p,
  .post_content div[style*="background:#f0f9ff"] li,
  .post_content div[style*="background: #f0f9ff"] p,
  .post_content div[style*="background: #f0f9ff"] li {
    color: #cbd5e1 !important;
  }

  /* Sidebar profile widget dark mode */
  .flavor-profile-widget {
    background: #1e293b !important;
    color: #cbd5e1 !important;
  }
  .flavor-profile-widget h3 {
    color: #e2e8f0 !important;
  }

  /* Frame backgrounds in dark mode */
  .-frame-on .l-mainContent {
    background: #1e293b !important;
  }
  .-frame-on-sidebar #sidebar .c-widget {
    background: #1e293b !important;
  }
  .-frame-on-sidebar #sidebar .p-profileBox {
    background: #1e293b !important;
    color: #cbd5e1 !important;
  }

  /* Post meta & breadcrumb in dark mode */
  .p-articleMetas,
  .p-articleMetas__item,
  .c-postMeta,
  .c-postMeta__item {
    color: #94a3b8;
  }
  .p-breadcrumb__text {
    color: #94a3b8;
  }
  .p-breadcrumb a .p-breadcrumb__text {
    color: var(--color_link, #7dd3fc);
  }

  /* Price display in dark mode */
  .product-card__price {
    color: #f87171;
  }

  /* Thumbnail empty alt — dark mode outline */
  .p-postList__thumb img[alt=""] {
    outline-color: #f87171;
  }

  /* SWELL navigation / gnav submenu dark */
  .c-gnav .sub-menu {
    background: #1e293b !important;
    color: #e2e8f0 !important;
  }
  .c-gnav .sub-menu a {
    color: #e2e8f0 !important;
  }

  /* Pagination dark */
  [class*="page-numbers"] {
    background-color: #334155;
    color: #e2e8f0;
  }

  /* FAQ box (non-accordion) dark mode */
  .faq-box {
    border-color: #334155;
  }
  .faq-item {
    border-color: #334155;
  }
  .faq-item h3 {
    color: #7dd3fc;
  }
  .faq-item h3::before {
    color: #7dd3fc;
  }
  .faq-item [itemprop="acceptedAnswer"] p {
    color: #cbd5e1;
  }

  /* Yellow border box dark mode (awasete-yomitai, tips) */
  .post_content div[style*="background:#fffbeb"],
  .post_content div[style*="background: #fffbeb"] {
    background: #1e293b !important;
    border-color: #ca8a04 !important;
    color: #cbd5e1 !important;
  }
  .post_content div[style*="background:#fffbeb"] p,
  .post_content div[style*="background:#fffbeb"] li,
  .post_content div[style*="background: #fffbeb"] p,
  .post_content div[style*="background: #fffbeb"] li {
    color: #cbd5e1 !important;
  }

  /* Gray border box dark mode (awasete-yomitai variant) */
  .post_content div[style*="background:#f8fafc"],
  .post_content div[style*="background: #f8fafc"] {
    background: #1e293b !important;
    border-color: #334155 !important;
    color: #cbd5e1 !important;
  }
  .post_content div[style*="background:#f8fafc"] p,
  .post_content div[style*="background:#f8fafc"] li,
  .post_content div[style*="background: #f8fafc"] p,
  .post_content div[style*="background: #f8fafc"] li {
    color: #cbd5e1 !important;
  }

  /* Related box unified dark mode */
  .flavor-related-box {
    background: #1e293b !important;
    border-color: #334155 !important;
    color: #cbd5e1 !important;
  }
  .flavor-related-box a {
    color: #7dd3fc !important;
  }

  /* Table inline-style header dark mode override */
  .post_content table tr[style*="background:#0c4a6e"],
  .post_content table tr[style*="background: #0c4a6e"] {
    background: #1e3a5f !important;
  }
  .post_content table tr[style*="background:#f8fafc"] td,
  .post_content table tr[style*="background: #f8fafc"] td {
    background: #1e293b !important;
  }
}

/* --- (#234) Unified H2/H3/Box styling across old and new articles --- */
.post_content h2 {
  font-size: clamp(20px, 3.5vw, 26px);
  font-weight: 700;
  line-height: 1.4;
  margin: 2em 0 0.8em;
  padding: 0.5em 0 0.3em;
  border-bottom: 3px solid var(--color_main, #0c4a6e);
}
.post_content h3 {
  font-size: clamp(17px, 3vw, 20px);
  font-weight: 700;
  line-height: 1.4;
  margin: 1.5em 0 0.8em;
  padding-left: 0.8em;
  border-left: 4px solid var(--color_main, #0c4a6e);
}
/* Info/Tip box (blue left-border) - unified */
.post_content .swell-block-cap-box,
.post_content div[style*="border-left:3px solid"] {
  border-radius: 6px;
  padding: 1em 1.2em;
  margin: 1.5em 0;
  font-size: 14px;
  line-height: 1.8;
}

/* --- Print styles for article pages --- */
@media print {
  /* Hide non-essential UI elements */
  .l-header,
  .l-fixHeader,
  .l-sidebar,
  .l-footer,
  .p-breadcrumb,
  .c-shareBtns,
  .p-relatedPosts,
  .c-widget,
  .p-toc,
  .flavor-pr-disclosure,
  .flavor-last-updated,
  .product-card__links,
  .c-scrollHint {
    display: none !important;
  }

  /* Clean layout */
  .l-content {
    max-width: 100%;
  }
  .l-mainContent {
    width: 100%;
    float: none;
  }

  /* Ensure readability */
  body,
  .post_content,
  .post_content p,
  .post_content li {
    color: #000 !important;
    font-size: 12pt;
    line-height: 1.6;
  }
  .post_content h2 {
    font-size: 16pt;
    color: #000 !important;
    border-color: #000 !important;
    page-break-after: avoid;
  }
  .post_content h3 {
    font-size: 14pt;
    color: #000 !important;
    page-break-after: avoid;
  }

  /* Tables */
  .post_content table th {
    background: #333 !important;
    color: #fff !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* Product cards */
  .product-card {
    break-inside: avoid;
    border: 1px solid #ccc;
    box-shadow: none;
  }
  .product-card__img {
    max-width: 120px;
  }

  /* Links show URL */
  .post_content a[href]::after {
    content: " (" attr(href) ")";
    font-size: 10pt;
    color: #666;
  }
  .post_content a[href^="#"]::after,
  .post_content a[href^="javascript"]::after {
    content: "";
  }
}


/* === SNS share fixed (sticky) button: hide to avoid obstructing content === */
.c-shareBtns.-fix {
  display: none !important;
}

/* === Migration-011: A3-06 min font 14px (SWELL core overrides) === */
/* SWELL header bar catchphrase: 12px → 14px */
.l-header__bar .c-catchphrase {
  font-size: 14px !important;
}
/* SWELL SP head menu items: 12px → 14px */
.p-spHeadMenu .menu-item {
  font-size: 14px !important;
}
/* WP core .button class: 13px → 14px */
.button,
input.button,
button.button {
  font-size: 14px !important;
}
/* SWELL series header catchphrase: 13px → 14px */
.-series .l-header__logo .c-catchphrase {
  font-size: 14px !important;
}
/* TOC expand button: 13px → 14px */
.p-toc .p-toc__expandBtn {
  font-size: 14px !important;
}
.p-toc[data-omit=nest] .p-toc__expandBtn {
  font-size: 14px !important;
}
/* Previous/Next links font: 13px → 14px */
.p-pnLinks__item {
  font-size: 14px;
}
/* Any inline 12px/13px in post content */
.post_content * {
  min-font-size: 14px;
}
/* Catch-all for computed small sizes in post body */
.post_content .wp-block-table td,
.post_content .wp-block-table th,
.post_content figcaption,
.post_content cite,
.post_content small {
  font-size: max(14px, inherit);
}

/* === Migration-011: mid-CTA & persona dark mode === */
@media (prefers-color-scheme: dark) {
  /* flavor-mid-cta dark */
  .flavor-mid-cta {
    background: linear-gradient(135deg, #1e293b, #0f172a) !important;
    border-color: #3b82f6 !important;
  }
  .flavor-mid-cta p {
    color: #e2e8f0 !important;
  }
  /* flavor-persona-recommend dark */
  .flavor-persona-recommend {
    background: #1e293b !important;
    border-color: #4ade80 !important;
  }
  .flavor-persona-recommend h3 {
    color: #86efac !important;
  }
  .flavor-persona-recommend > div > div {
    background: #0f172a !important;
    color: #e2e8f0 !important;
  }
  .flavor-persona-recommend p {
    color: #cbd5e1 !important;
  }
}
