@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){
  /*必要ならばここにコードを書く*/
}


/* 寝具ノート案内: ホーム・記事一覧・枕ハブと共通ナビ。
   DBメニュー/Widget・投稿本文・functions.phpは変更しない。 */
.snn-guide-page {
  --snn-ink: #263e47;
  --snn-accent: #235b61;
  --snn-muted: #58666a;
  --snn-line: #d9dfdc;
  --snn-paper: #fafbf8;
  color: var(--snn-ink);
  background: var(--snn-paper);
}
.snn-guide-page #content-in { display: block; max-width: 1120px; }
.snn-guide-page #main { width: 100%; margin: 0; padding: 0 40px; background: transparent; border: 0; }
.snn-guide-page #sidebar,
.snn-guide-page .mobile-menu-buttons { display: none; }
.snn-guide-page #content { margin-top: 0; }
.snn-guide-page #header-container { background: #fff; }
.snn-guide-page #header-in { padding: 16px 24px; min-height: 0; }
.snn-guide-page .tagline { font-size: 12px; margin: 0 0 8px; color: var(--snn-muted); }
.snn-guide-page .logo-header { padding: 0; margin: 0; font-size: 23px; line-height: 1.55; }
.snn-guide-page .logo-header .site-name-text-link { padding: 0; color: var(--snn-ink); }
.snn-guide-page #footer { background: #fff; border-top: 1px solid var(--snn-line); padding: 24px 16px; }
.snn-guide-page .logo-footer { font-size: 14px; }
.snn-guide-page .copyright { font-size: 12px; }
.snn-guide { font-size: 16px; line-height: 1.8; overflow-wrap: anywhere; }
.snn-guide *, .snn-guide *::before, .snn-guide *::after { box-sizing: border-box; }
.snn-guide a { color: var(--snn-accent); text-decoration: none; }
.snn-guide a:hover { text-decoration: underline; text-underline-offset: .25em; }
.snn-guide a:focus-visible { outline: 3px solid var(--snn-accent); outline-offset: 4px; }
.snn-guide h1, .snn-guide h2, .snn-guide h3 { background: none; border: 0; border-radius: 0; padding: 0; color: var(--snn-ink); }
.snn-guide h2 { font-size: 25px; line-height: 1.6; margin: 0 0 20px; font-weight: 700; }
.snn-guide p { margin: 0; }
.snn-navigation { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 32px; padding: 14px 0; border-bottom: 1px solid var(--snn-line); }
.snn-navigation a { display: flex; align-items: center; min-height: 44px; font-size: 15px; }
.snn-navigation a[aria-current="page"] { text-decoration: underline; text-underline-offset: 8px; font-weight: 700; }
.snn-intro { padding: 56px 0 48px; }
.snn-eyebrow { color: var(--snn-accent); font-size: 14px; font-weight: 700; margin-bottom: 12px !important; }
.snn-guide .snn-intro h2 { font-size: clamp(25px, 3vw, 36px); line-height: 1.55; margin-bottom: 18px; letter-spacing: .02em; }
.snn-intro-text { max-width: 760px; line-height: 2; }
.snn-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 28px; }
.snn-guide .snn-button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; background: var(--snn-accent); color: #fff; border: 1px solid var(--snn-accent); border-radius: 4px; padding: 10px 22px; font-weight: 700; }
.snn-guide .snn-button:hover { background: #19494f; color: #fff; }
.snn-text-link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 700; }
.snn-section { padding: 40px 0; border-top: 1px solid var(--snn-line); scroll-margin-top: 24px; }
.snn-section-intro { color: var(--snn-muted); margin: -8px 0 24px !important; }
.snn-concerns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; }
.snn-concerns a { padding: 16px 20px; border-left: 3px solid var(--snn-accent); background: #fff; min-height: 92px; }
.snn-concerns strong, .snn-concerns span { display: block; }
.snn-concerns strong { font-size: 18px; color: var(--snn-ink); }
.snn-concerns span { color: var(--snn-muted); font-size: 14px; margin-top: 4px; }
.snn-concerns b { color: var(--snn-accent); margin-left: 8px; }
.snn-recommended { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 32px; align-items: start; }
.snn-recommended > .snn-card:first-child { grid-row: span 2; }
.snn-card { min-width: 0; margin: 0; }
.snn-card-link { display: block; height: 100%; }
.snn-card-image { overflow: hidden; border-radius: 4px; margin-bottom: 16px; background: #fff; }
.snn-card-image img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; margin: 0; }
.snn-category-label { display: block; color: var(--snn-accent); font-size: 13px; font-weight: 700; margin-bottom: 7px; }
.snn-guide .snn-card-title { font-size: 19px; line-height: 1.6; margin: 0 0 9px; }
.snn-card-summary { font-size: 14px; line-height: 1.85; color: var(--snn-muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.snn-card-read { display: inline-block; font-size: 13px; font-weight: 700; margin-top: 12px; }
.snn-recommended > .snn-card:not(:first-child) .snn-card-link { display: grid; grid-template-columns: 128px minmax(0, 1fr); gap: 18px; }
.snn-recommended > .snn-card:not(:first-child) .snn-card-image { margin: 0; }
.snn-recommended > .snn-card--text:not(:first-child) .snn-card-link { display: block; padding-top: 24px; border-top: 1px solid var(--snn-line); }
.snn-topic-links { display: flex; flex-wrap: wrap; gap: 12px; }
.snn-topic-links a { display: flex; align-items: center; justify-content: space-between; gap: 64px; padding: 16px 24px; min-height: 64px; background: #eef3f0; border-radius: 4px; }
.snn-topic-links strong { font-size: 21px; }
.snn-topic-links span { color: var(--snn-muted); font-size: 14px; }
.snn-article-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 40px; margin-bottom: 20px; }
.snn-article-list .snn-card { border-bottom: 1px solid var(--snn-line); padding-bottom: 24px; }
.snn-article-list .snn-card--image .snn-card-link { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 18px; }
.snn-article-list .snn-card-image { margin: 0; }
.snn-about p { max-width: 740px; margin-bottom: 16px; }
.snn-footer-links { display: flex; flex-wrap: wrap; gap: 8px 24px; border-top: 1px solid var(--snn-line); padding: 24px 0; }
.snn-footer-links a { min-height: 44px; display: flex; align-items: center; font-size: 14px; }
.snn-index-heading { padding: 40px 0 24px; }
.snn-index-heading h1 { font-size: 30px; margin: 0 0 12px; }
@media screen and (max-width: 834px) {
  .snn-guide-page #main { padding: 0 24px; }
  .snn-recommended > .snn-card:not(:first-child) .snn-card-link { grid-template-columns: 96px minmax(0, 1fr); gap: 14px; }
  .snn-navigation { gap: 4px 24px; }
}
@media screen and (max-width: 600px) {
  .snn-guide-page #main { padding: 0 20px; }
  .snn-guide-page #header-in { padding: 14px 18px; }
  .snn-guide-page .logo-header { font-size: 17px; }
  .snn-guide-page .tagline { font-size: 11px; }
  .snn-guide { font-size: 16px; }
  .snn-navigation { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; padding: 10px 0; }
  .snn-navigation a { justify-content: center; font-size: 14px; }
  .snn-intro { padding: 32px 0; }
  .snn-guide .snn-intro h2 { font-size: 25px; letter-spacing: 0; }
  .snn-intro-text { font-size: 15px; line-height: 1.95; }
  .snn-desktop-break { display: none; }
  .snn-actions { align-items: flex-start; flex-direction: column; gap: 10px; margin-top: 22px; }
  .snn-section { padding: 30px 0; }
  .snn-guide h2 { font-size: 22px; }
  .snn-concerns, .snn-recommended, .snn-article-list { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .snn-concerns a { min-height: 88px; padding: 14px 16px; }
  .snn-concerns strong { font-size: 17px; }
  .snn-recommended > .snn-card:first-child { grid-row: auto; }
  .snn-recommended > .snn-card:not(:first-child) .snn-card-link { grid-template-columns: 106px minmax(0, 1fr); gap: 14px; }
  .snn-recommended > .snn-card--text:not(:first-child) .snn-card-link { display: block; }
  .snn-guide .snn-card-title { font-size: 18px; }
  .snn-topic-links a { width: 100%; }
  .snn-article-list .snn-card--image .snn-card-link { grid-template-columns: 106px minmax(0, 1fr); gap: 14px; }
  .snn-footer-links { gap: 2px 20px; }
  .snn-guide-page #footer .footer-bottom { display: block; }
}

/* 共通ナビはドラフトのテンプレートで描画。既存メニューのDB値は保持。 */
.public-page #navi.snn-site-nav { display: block !important; height: auto; background: #fff; color: #263e47; border-bottom: 1px solid #d9dfdc; }
.snn-site-nav .snn-navigation { max-width: 1120px; margin: 0 auto; padding: 10px 24px; border: 0; line-height: 1.6; }
.snn-site-nav a { color: #235b61; text-decoration: none; }
.snn-site-nav a:hover { text-decoration: underline; text-underline-offset: 5px; }
.snn-site-nav a:focus-visible { outline: 3px solid #235b61; outline-offset: 3px; }
.public-page .mobile-menu-buttons { display: none; }
@media screen and (max-width: 600px) {
  .snn-site-nav .snn-navigation { padding: 8px 20px; }
  .public-page { padding-bottom: 0; }
}

/*
 * 寝具ノート PC refinement — isolated WPVibe draft.
 * Baseline readback matched before applying this desktop-only block.
 * Desktop only: preserve the existing <=600px layout and the header width.
 */
@media screen and (min-width: 1024px) {
  .snn-guide-page #content-in {
    max-width: 980px;
    margin-inline: auto;
  }
  .snn-guide-page .snn-intro {
    max-width: 760px;
    margin-inline: auto;
    padding: 42px 0 38px;
    text-align: center;
  }
  .snn-guide-page .snn-intro-text {
    margin-inline: auto;
  }
  .snn-guide-page .snn-intro .snn-actions {
    justify-content: center;
    margin-top: 24px;
  }

  /* Three equal-width text-first recommendations. Real images are secondary. */
  .snn-guide-page .snn-recommended {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    align-items: start;
  }
  .snn-guide-page .snn-recommended > .snn-card {
    grid-row: auto;
    grid-column: auto;
    padding-top: 18px;
    border-top: 1px solid var(--snn-line);
  }
  .snn-guide-page .snn-recommended > .snn-card .snn-card-link {
    display: flex;
    flex-direction: column;
    gap: 0;
    height: auto;
    padding: 0;
    border: 0;
  }
  .snn-guide-page .snn-recommended .snn-card-copy {
    order: 0;
  }
  .snn-guide-page .snn-recommended > .snn-card .snn-card-image {
    order: 1;
    margin: 18px 0 0;
  }
  .snn-guide-page .snn-recommended .snn-card-title {
    font-size: 19px;
    line-height: 1.65;
  }
  .snn-guide-page .snn-recommended .snn-card-summary {
    display: block;
    overflow: visible;
  }

  /* The four latest articles currently have no thumbnails: readable text rows. */
  .snn-guide-page #snn-latest .snn-article-list {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }
  .snn-guide-page #snn-latest .snn-card {
    padding: 22px 0;
  }
  .snn-guide-page #snn-latest .snn-card:first-child {
    padding-top: 0;
  }
  .snn-guide-page #snn-latest .snn-card-copy {
    max-width: 720px;
  }
  .snn-guide-page #snn-latest .snn-card--image .snn-card-link {
    grid-template-columns: 144px minmax(0, 1fr);
    gap: 24px;
    align-items: start;
  }
}

/* Home editorial refresh: isolated from article and category layouts. */
.home.snn-guide-page { --snn-paper: #faf9f5; background: var(--snn-paper); }
.home.snn-guide-page #content-in { max-width: 1200px; margin-inline: auto; }
.home.snn-guide-page #main { padding: 0 40px; min-width: 0; }
.snh-home { --snh-sand: #eee9df; --snh-clay: #a75d3f; }
.snh-home .snh-kicker { font-size: 12px; font-weight: 700; letter-spacing: .08em; color: var(--snn-accent); margin-bottom: 12px; }
.snh-home h2 { font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-weight: 700; }
.snh-hero { display: grid; grid-template-columns: .9fr 1.1fr; gap: 30px; align-items: center; padding: 48px 0 40px; }
.snh-hero--text { grid-template-columns: 1fr; }
.snh-home .snh-hero h2 { font-size: clamp(32px, 3.4vw, 46px); line-height: 1.5; letter-spacing: .02em; margin: 0 0 22px; }
.snh-lead { font-size: 16px; line-height: 2.1; color: #4a5c5f; }
.snh-home .snh-button { display: inline-flex; align-items: center; gap: 25px; min-height: 48px; padding: 10px 22px; margin-top: 26px; background: #235b61; color: #fff; font-weight: 700; border-radius: 3px; }
.snh-home .snh-button:hover { background: #183f43; text-decoration: none; }
.snh-home .snh-secondary { display: flex; width: fit-content; align-items: center; gap: 12px; min-height: 44px; font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 5px; }
.snh-hero-copy > .snh-secondary { margin-top: 5px; }
.snh-hero-visual { min-width: 0; margin: 0; }
.snh-hero-visual img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 6px; }
.snh-hero-visual figcaption { font-size: 11px; color: #65716b; margin-top: 8px; line-height: 1.65; }
.snh-topics { padding: 26px 0 38px; }
.snh-home .snh-section-heading h2 { font-size: 29px; line-height: 1.6; margin-bottom: 9px; }
.snh-section-heading > p:not(.snh-kicker) { color: var(--snn-muted); font-size: 14px; }
.snh-topic-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 22px; border-block: 1px solid #d7ded8; }
.snh-topic { display: flex; align-items: center; gap: 16px; padding: 23px 20px; border-right: 1px solid #d7ded8; }
.snh-topic:first-child { padding-left: 0; }
.snh-topic:last-child { border-right: 0; }
.snh-topic-number { color: #98674e; font-family: Georgia,serif; font-size: 23px; }
.snh-topic strong { display: block; font-size: 19px; color: var(--snn-ink); }
.snh-topic small { display: block; color: var(--snn-muted); font-size: 12px; margin-top: 4px; }
.snh-topic-arrow { margin-left: auto; }
.snh-section { padding: 45px 0; border-top: 1px solid var(--snn-line); scroll-margin-top: 20px; }
.snh-featured { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; margin-top: 26px; }
.snh-card { min-width: 0; }
.snh-card-link { display: block; height: 100%; }
.snh-card-visual { overflow: hidden; background: #edece4; border-radius: 4px; }
.snh-card-visual img { display: block; width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; margin: 0; }
.snh-card-copy { padding-top: 17px; }
.snh-home .snh-meta { display: flex; gap: 10px; align-items: center; font-size: 12px; font-weight: 700; margin-bottom: 8px; }
.snh-pr { font-size: 10px; line-height: 1.5; border: 1px solid #8b9895; padding: 0 4px; border-radius: 2px; }
.snh-home .snh-card h3 { font-size: 21px; line-height: 1.65; margin: 0 0 10px; padding: 0; }
.snh-home .snh-summary { color: var(--snn-muted); font-size: 14px; line-height: 1.85; }
.snh-read { display: inline-flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 700; margin-top: 14px; min-height: 28px; }
.snh-concerns { display: grid; grid-template-columns: .8fr 1.2fr; gap: 48px; padding: 35px; margin: 12px 0; border: 0; border-radius: 5px; background: #edf1eb; }
.snh-concern-list a { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 16px 0; border-bottom: 1px solid #cbd6cc; }
.snh-concern-list a:first-child { padding-top: 0; }
.snh-concern-list a:last-child { border-bottom: 0; padding-bottom: 0; }
.snh-concern-list strong { display: block; color: var(--snn-ink); font-size: 17px; }
.snh-concern-list small { display: block; font-size: 12px; color: var(--snn-muted); margin-top: 3px; }
.snh-latest { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 32px; margin-top: 12px; }
.snh-latest .snh-card { padding: 22px 0; border-bottom: 1px solid var(--snn-line); }
.snh-latest .snh-card--image .snh-card-link { display: grid; grid-template-columns: 128px minmax(0,1fr); gap: 18px; align-items: start; }
.snh-latest .snh-card-copy { padding-top: 0; }
.snh-home .snh-latest h3 { font-size: 17px; }
.snh-latest .snh-summary { display: none; }
.snh-latest .snh-read { margin-top: 0; }
.snh-home .snh-all-link { display: flex; align-items: center; justify-content: center; gap: 30px; width: fit-content; min-width: 220px; min-height: 48px; margin: 25px auto 0; padding: 8px 18px; border: 1px solid #849b96; border-radius: 3px; font-size: 14px; font-weight: 700; }
.snh-about { background: #ede9df; padding: 32px 40px; margin: 0 0 38px; border-left: 4px solid #a75d3f; }
.snh-home .snh-about h2 { font-size: 28px; line-height: 1.55; margin-bottom: 15px; }
.snh-about > p:not(.snh-kicker) { max-width: 650px; font-size: 14px; color: #4a5c5f; }
.snh-about .snh-secondary { margin-top: 12px; }
@media (max-width: 900px) {
  .snh-hero { gap: 24px; }
  .snh-topic { padding: 18px 12px; gap: 10px; }
  .snh-topic strong { font-size: 17px; }
  .snh-topic-number { font-size: 19px; }
  .snh-concerns { gap: 25px; padding: 28px; }
  .snh-latest .snh-card--image .snh-card-link { grid-template-columns: 94px minmax(0,1fr); gap: 12px; }
}
@media (max-width: 750px) {
  .home.snn-guide-page #main { padding: 0 22px; }
  .snh-hero { grid-template-columns: 1fr; padding: 30px 0 20px; gap: 25px; }
  .snh-home .snh-hero h2 { font-size: 36px; margin-bottom: 16px; }
  .snh-hero-visual img { aspect-ratio: 3/2; }
  .snh-topic-grid { grid-template-columns: 1fr; margin-top: 18px; }
  .snh-topic, .snh-topic:first-child { padding: 17px 0; border-right: 0; border-bottom: 1px solid #d7ded8; gap: 18px; }
  .snh-topic:last-child { border-bottom: 0; }
  .snh-topic strong { font-size: 19px; }
  .snh-concerns { grid-template-columns: 1fr; gap: 22px; padding: 24px; }
  .snh-latest { grid-template-columns: 1fr; }
}
@media (max-width: 650px) {
  .snh-featured { grid-template-columns: 1fr; gap: 30px; }
  .snh-section { padding: 32px 0; }
  .snh-concerns { padding: 24px 20px; }
  .snh-home .snh-section-heading h2 { font-size: 25px; }
  .snh-home .snh-card h3 { font-size: 19px; }
  .snh-home .snh-latest h3 { font-size: 16px; }
  .snh-latest .snh-card--image .snh-card-link { grid-template-columns: 96px minmax(0,1fr); gap: 14px; }
  .snh-about { padding: 28px 22px; }
  .snh-home .snh-about h2 { font-size: 25px; }
}
