body.oyh-standalone { margin:0; }
.oyh { --oyashin-green:#39713E;--oyashin-green-dark:#073526;--oyashin-green-light:#EFF5E8;--oyashin-brown:#7F573E;--oyashin-brown-light:#FBF4EB;--oyashin-cream:#FDFCF8;--oyashin-background:#FEFEFE;--oyashin-text:#2A3031;--oyashin-muted:#4E575C;--oyashin-border:#DCE5D5;--oyashin-line:#D9E4D1;--oyashin-warning:#7F573E;color:var(--oyashin-text);background:var(--oyashin-background);font-family:system-ui,-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;font-size:16px;line-height:1.7;overflow-wrap:anywhere; }
.oyh,.oyh *,.oyh *::before,.oyh *::after { box-sizing:border-box; }
.oyh img { display:block;max-width:100%;height:auto; }
.oyh a { color:var(--oyashin-green-dark);text-underline-offset:.18em; }
.oyh a:focus-visible,.oyh button:focus-visible,.oyh input:focus-visible,.oyh summary:focus-visible { outline:3px solid var(--oyashin-brown);outline-offset:3px; }
.oyh h1,.oyh h2,.oyh h3,.oyh p { margin-top:0; }
.oyh h1,.oyh h2,.oyh h3 { color:var(--oyashin-green-dark);line-height:1.42; }
.oyh .oyh-container { width:min(calc(100% - 40px),1160px);margin-inline:auto; }
.oyh .oyh-sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.oyh .oyh-skip { position:absolute;left:-9999px;top:8px;z-index:1000;background:#fff;padding:.5rem 1rem; }
.oyh .oyh-skip:focus { left:8px; }
.oyh .oyh-site-header { background:#fff; }
.oyh .oyh-header-top { display:flex;align-items:center;gap:24px;min-height:94px;padding-block:10px; }
.oyh .oyh-logo { flex:0 0 auto;display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--oyashin-green-dark); }
.oyh .oyh-logo-leaf { width:65px;height:65px;object-fit:contain; }
.oyh .oyh-logo-name { display:flex;flex-direction:column;line-height:1.05; }
.oyh .oyh-logo strong { font-size:2rem;letter-spacing:.02em; }
.oyh .oyh-logo small { font-size:.88rem;font-weight:700; }
.oyh .oyh-brand-copy { margin:0 auto 0 0;color:var(--oyashin-green-dark);font-size:.83rem;line-height:1.5;font-weight:700; }
.oyh .oyh-header-search { display:flex;min-width:0;width:260px;height:44px;border:1px solid var(--oyashin-border);border-radius:9px;overflow:hidden; }
.oyh .oyh-header-search input { min-width:0;flex:1;border:0;padding:0 11px;font:inherit;font-size:.81rem; }
.oyh .oyh-header-search button { width:44px;border:0;background:var(--oyashin-green);color:#fff;font-size:1.5rem;cursor:pointer; }
.oyh .oyh-header-link { flex:0 0 auto;text-decoration:none;font-size:.78rem; }
.oyh .oyh-nav-toggle { display:none; }
.oyh .oyh-main-nav { border-top:1px solid var(--oyashin-line);border-bottom:1px solid var(--oyashin-line);background:var(--oyashin-cream); }
.oyh .oyh-main-nav .oyh-container { display:flex;justify-content:space-between;align-items:stretch;gap:6px; }
.oyh .oyh-main-nav .oyh-nav-link { display:flex;align-items:center;min-height:48px;padding:7px 8px;white-space:nowrap;text-decoration:none;font-size:.82rem;font-weight:700; }
.oyh .oyh-main-nav a:hover,.oyh .oyh-main-nav a[aria-current] { background:var(--oyashin-green-light); }
.oyh .oyh-hero { position:relative;padding:32px 0 28px;background:linear-gradient(180deg,var(--oyashin-cream),var(--oyashin-cream));overflow:hidden; }
.oyh .oyh-hero::before,.oyh .oyh-hero::after { content:'❧';position:absolute;font-size:220px;line-height:1;color:rgba(39,113,62,.18);opacity:.62;pointer-events:none; }
.oyh .oyh-hero::before { left:-50px;top:-48px;transform:rotate(-25deg); }
.oyh .oyh-hero::after { right:-30px;top:-60px;transform:scaleX(-1) rotate(-25deg); }
.oyh .oyh-hero-intro { position:relative;z-index:1;text-align:center;min-height:116px; }
.oyh .oyh-hero-intro h1 { margin:0 0 9px;font-size:clamp(2rem,3.8vw,3.1rem);letter-spacing:.04em; }
.oyh .oyh-hero-intro p { margin-bottom:0;font-size:1rem; }
.oyh .oyh-entrance-grid { position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:14px; }
.oyh .oyh-entrance-card { min-width:0;min-height:264px;display:grid;grid-template-columns:42% minmax(0,1fr);align-items:end;gap:2px;border:7px solid #fff;border-radius:18px;overflow:hidden;box-shadow:0 8px 22px rgb(39 70 42 / 6%); }
.oyh .oyh-entrance-after { background:#FBF4EB; }
.oyh .oyh-entrance-before { background:#EFF5E8;grid-template-columns:minmax(0,1fr) 42%; }
.oyh .oyh-character { width:100%;height:245px;max-height:245px;object-fit:contain;object-position:center bottom;align-self:end; }
.oyh .oyh-entrance-copy { align-self:center;min-width:0;padding:14px 12px; }
.oyh .oyh-entrance-copy h2 { font-size:clamp(1.25rem,2vw,1.9rem);margin:0 0 11px; }
.oyh .oyh-entrance-copy p { font-size:.94rem;line-height:1.65;margin-bottom:12px; }
.oyh .oyh-button { display:inline-flex;justify-content:center;align-items:center;min-height:48px;max-width:100%;padding:9px 19px;border-radius:999px;background:var(--oyashin-green);color:#fff;text-align:center;text-decoration:none;font-weight:700;line-height:1.4; }
.oyh .oyh-button:hover { background:var(--oyashin-green-dark);color:#fff; }
.oyh .oyh-button-brown { background:var(--oyashin-brown); }
.oyh .oyh-button-brown:hover { background:#5E3F2D; }
.oyh .oyh-disabled { background:#DCE2D8;color:#344238;cursor:not-allowed; }
.oyh .oyh-search-row { padding:18px 0 10px; }
.oyh .oyh-search-row-inner { display:grid;grid-template-columns:minmax(0,1fr) 206px;gap:18px; }
.oyh .oyh-search-form { min-width:0;display:flex;align-items:center;min-height:64px;padding:8px 9px 8px 16px;background:#fff;border:1px solid var(--oyashin-line);border-radius:12px;box-shadow:0 2px 6px rgb(39 70 42 / 4%); }
.oyh .oyh-search-form > span { font-size:2rem;color:var(--oyashin-green);line-height:1; }
.oyh .oyh-search-form input { flex:1;min-width:0;height:44px;padding:0 12px;border:0;font:inherit;font-size:.92rem; }
.oyh .oyh-search-form button { min-width:100px;min-height:44px;border:0;border-radius:7px;background:var(--oyashin-green);color:#fff;font:inherit;font-weight:700;cursor:pointer; }
.oyh .oyh-faq-link { display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:64px;padding:8px 14px;border:1px solid var(--oyashin-line);border-radius:12px;text-decoration:none;font-weight:700;white-space:nowrap; }
.oyh .oyh-faq-link span:first-child { display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border-radius:50%;background:var(--oyashin-green);color:#fff; }
.oyh .oyh-section { padding:22px 0; }
.oyh .oyh-section-title { margin:0 0 16px;font-size:1.45rem; }
.oyh .oyh-section-title > span { color:var(--oyashin-green);margin-right:.3rem; }
.oyh .oyh-category-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px; }
.oyh .oyh-category-card { min-width:0;display:grid;grid-template-columns:50px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:104px;padding:12px;border:1px solid var(--oyashin-line);border-radius:10px;background:#fff;color:var(--oyashin-text);text-decoration:none;cursor:pointer; }
.oyh .oyh-category-mark { color:var(--oyashin-brown);font-size:2.15rem;text-align:center;line-height:1; }
.oyh .oyh-category-card h3 { margin:0 0 3px;font-size:1rem; }
.oyh .oyh-category-card p,.oyh .oyh-category-description { display:block;margin:0;color:var(--oyashin-muted);font-size:.8rem;line-height:1.45; }
.oyh .oyh-category-copy { min-width:0; }
.oyh .oyh-category-link { min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:flex-end;text-decoration:none;font-size:1.5rem;white-space:nowrap;padding:0 4px;writing-mode:horizontal-tb;line-height:1.2;overflow:hidden; }
.oyh .oyh-category-link-text { min-width:92px;max-width:100%;font-size:1rem;justify-content:flex-end;font-weight:700;text-overflow:ellipsis;overflow:hidden; }
.oyh .oyh-category-card:visited { color:var(--oyashin-text); }
.oyh .oyh-feature-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px; }
.oyh .oyh-feature-card { position:relative;min-width:0;min-height:235px;overflow:hidden;padding:20px 25px;border-radius:13px; }
.oyh .oyh-checksheet { background:#EFF5E8; }
.oyh .oyh-handover { background:#FBF4EB; }
.oyh .oyh-feature-card h2 { position:relative;z-index:1;margin:0 0 12px;font-size:1.5rem; }
.oyh .oyh-feature-card p { position:relative;z-index:1;margin:0 0 14px;max-width:29rem;font-size:.94rem; }
.oyh .oyh-feature-card .oyh-button { position:relative;z-index:1; }
.oyh .oyh-feature-symbol { position:absolute;right:20px;bottom:-17px;font-size:8rem;line-height:1;color:rgb(57 113 62 / 20%); }
.oyh .oyh-handover .oyh-feature-symbol { color:rgb(127 87 62 / 20%); }
.oyh .oyh-article-list { padding:0;margin:0;list-style:none; }
.oyh .oyh-article-list li { padding:10px 0;border-bottom:1px solid var(--oyashin-line);font-size:.92rem; }
.oyh .oyh-article-list a { text-decoration:none; }
.oyh .oyh-site-note { padding:12px 0 4px; }
.oyh .oyh-site-note-inner { display:grid;gap:4px;align-items:center;min-height:84px;padding:12px 16px;background:var(--oyashin-cream);border:1px solid var(--oyashin-line);border-left:7px solid var(--oyashin-green);border-radius:10px; }
.oyh .oyh-site-note-title { margin:0 0 4px;font-size:1.05rem; }
.oyh .oyh-site-note p { margin:0;max-width:50rem;font-size:.92rem;line-height:1.65; }
.oyh .oyh-site-note-link { display:inline-flex;align-self:start;margin-top:7px;min-height:40px;align-items:center;justify-content:flex-start;font-size:.94rem;font-weight:700;line-height:1.2;text-decoration:none;color:var(--oyashin-green-dark); }
.oyh .oyh-faq { padding-bottom:35px; }
.oyh .oyh-faq-list { display:grid;gap:8px; }
.oyh .oyh-faq-list details { padding:10px 16px;border:1px solid var(--oyashin-line);border-radius:9px; }
.oyh .oyh-faq-list summary { cursor:pointer;min-height:34px;font-weight:700; }
.oyh .oyh-faq-list p { margin:8px 0 3px; }
.oyh .oyh-results { margin:10px 0;padding:18px;border:1px solid var(--oyashin-line);border-radius:9px; }
.oyh .oyh-results h2 { margin-bottom:4px;font-size:1.25rem; }
.oyh .oyh-footer { padding:38px 0;background:linear-gradient(180deg,var(--oyashin-cream),#E8F2E0);border-top:1px solid var(--oyashin-line);text-align:center; }
.oyh .oyh-footer p { margin-bottom:8px;font-weight:700;color:var(--oyashin-green-dark); }
.oyh .oyh-missing-image { display:grid;place-items:center;min-height:100px;border:2px dashed var(--oyashin-warning);color:var(--oyashin-warning); }

/* v0.2.5: 実画面青線の実体選定 + 品質調整 */
.oyh a,
.oyh a:visited {
  color: var(--oyashin-green-dark);
  text-decoration-color: var(--oyashin-line);
}

.oyh .oyh-main-nav,
.oyh .oyh-main-nav .oyh-container,
.oyh .oyh-main-nav .oyh-nav-link,
.oyh .oyh-main-nav .oyh-nav-link:hover {
  border-color: var(--oyashin-line) !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

.oyh .oyh-main-nav .oyh-nav-link:visited {
  color: var(--oyashin-green-dark);
}

.oyh .oyh-main-nav .oyh-nav-link[aria-current="page"] {
  background: var(--oyashin-green-light);
}

/* v0.2.6: 対象カードと見出しに外部CSSが描く装飾線を除去 */
.oyh .oyh-entrance-card::before,
.oyh .oyh-entrance-card::after,
.oyh .oyh-entrance-card h2::before,
.oyh .oyh-entrance-card h2::after,
.oyh .oyh-category-card h3::before,
.oyh .oyh-category-card h3::after {
  content: none !important;
}

.oyh .oyh-entrance-card h2,
.oyh .oyh-category-card h3 {
  border-top: 0 !important;
  border-bottom: 0 !important;
  text-decoration: none !important;
  background-image: none !important;
}

.oyh .oyh-entrance-card {
  border-top-color: #fff !important;
  background-image: none !important;
}

/* HOMEの塗りつぶし型CTAは全状態で白文字を維持する。 */
.oyh a.oyh-button,
.oyh a.oyh-button:visited,
.oyh a.oyh-button:hover,
.oyh a.oyh-button:focus,
.oyh a.oyh-button:focus-visible,
.oyh a.oyh-button:active {
  color: #fff !important;
}

.oyh .oyh-category-card,
.oyh .oyh-site-note-inner,
.oyh .oyh-faq-list details,
.oyh .oyh-results,
.oyh .oyh-footer,
.oyh .oyh-search-form,
.oyh .oyh-faq-link,
.oyh .oyh-site-note-link,
.oyh .oyh-entrance-card,
.oyh .oyh-button:hover,
.oyh .oyh-text-link {
  text-decoration-color: var(--oyashin-line) !important;
}

.oyh .oyh-hero::before,
.oyh .oyh-hero::after,
.oyh .oyh-feature-symbol {
  color: rgba(39, 113, 62, 0.18) !important;
}

.oyh .oyh-section-title,
.oyh .oyh-site-note-title,
.oyh .oyh-faq h2,
.oyh .oyh-feature-card h2,
.oyh .oyh-categories h2 {
  border: 0 !important;
  padding-top: 0 !important;
  background: transparent !important;
}

.oyh .oyh-feature-card,
.oyh .oyh-hero,
.oyh .oyh-section,
.oyh .oyh-faq,
.oyh .oyh-site-note,
.oyh .oyh-search-row,
.oyh .oyh-footer::before,
.oyh .oyh-footer::after,
.oyh .oyh-main-nav::before,
.oyh .oyh-main-nav::after,
.oyh .oyh-category-card::before,
.oyh .oyh-category-card::after,
.oyh .oyh-faq::before,
.oyh .oyh-faq::after,
.oyh .oyh-site-note::before,
.oyh .oyh-site-note::after {
  border-color: var(--oyashin-line) !important;
  background-color: transparent !important;
}

.oyh .oyh-main-nav { border: 1px solid var(--oyashin-line); }

.oyh .oyh-main-nav .oyh-container {
  white-space: nowrap;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.oyh .oyh-main-nav .oyh-container::-webkit-scrollbar { display: none; }

@media (min-width: 768px) and (max-width: 1279px) {
  .oyh .oyh-main-nav .oyh-container {
    gap: 2px;
    justify-content: flex-start;
    overflow-x: auto;
  }
  .oyh .oyh-main-nav .oyh-nav-link {
    min-height: 46px;
    padding: 7px 6px;
    font-size: .77rem;
    flex: 0 0 auto;
  }
  .oyh .oyh-main-nav .oyh-container::before,
  .oyh .oyh-main-nav .oyh-container::after { content: none; }
}

@media (max-width: 767px) {
  .oyh .oyh-nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid var(--oyashin-line);
    background: #fff;
    border-radius: 999px;
    color: var(--oyashin-green-dark);
    font-weight: 700;
    cursor: pointer;
  }

  .oyh .oyh-nav-toggle:focus-visible {
    outline-offset: 2px;
  }

  .oyh .oyh-nav-toggle::before {
    content: '☰';
    display: inline-block;
    transform: translateY(-1px);
    font-weight: 700;
  }

  .oyh .oyh-header-top {
    flex-wrap: wrap;
    gap: 10px;
    row-gap: 8px;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    min-height: 84px;
  }

  .oyh .oyh-logo { grid-column: 1 / 2; }
  .oyh .oyh-nav-toggle { grid-column: 2 / 3; }
  .oyh .oyh-header-search { grid-column: 1 / -1; width: 100%; }

  .oyh .oyh-brand-copy { display: none; }
  .oyh .oyh-header-link { display:none; }

  .oyh .oyh-main-nav {
    display: none;
    border-top: 1px solid var(--oyashin-line);
  }

  .oyh .oyh-main-nav.is-open { display: block; }
  .oyh .oyh-main-nav .oyh-container {
    min-height: 0;
    overflow-x: visible;
    flex-wrap: wrap;
    justify-content: stretch;
    row-gap: 0;
  }
  .oyh .oyh-main-nav .oyh-nav-link {
    min-width: 0;
    width: 100%;
    border-bottom: 1px solid var(--oyashin-line);
    padding: 11px 12px;
  }
  .oyh .oyh-main-nav .oyh-nav-link:last-child { border-bottom: 0; }

  .oyh .oyh-entrance-grid,
  .oyh .oyh-feature-grid,
  .oyh .oyh-category-grid { grid-template-columns:1fr; }

  .oyh .oyh-search-row-inner {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .oyh .oyh-search-form {
    width: 100%;
    min-width: 0;
  }
  .oyh .oyh-search-form input {
    flex: 1;
    min-width: 0;
  }
  .oyh .oyh-faq-link {
    display: none !important;
  }
}

@media (max-width: 520px) {
  .oyh .oyh-container { width:min(calc(100% - 28px),1160px); }
  .oyh .oyh-logo-leaf { width:46px;height:46px; }
  .oyh .oyh-logo strong { font-size:1.5rem; }
  .oyh .oyh-logo small { font-size:.67rem; }
  .oyh .oyh-main-nav .oyh-nav-link { padding: 10px 12px; }
  .oyh .oyh-hero { padding:27px 0 20px; }
  .oyh .oyh-hero-intro h1 { font-size:1.9rem; }
  .oyh .oyh-hero-intro p { font-size:.85rem; }
  .oyh .oyh-entrance-grid { gap:13px; }
  .oyh .oyh-entrance-card { min-height:208px;grid-template-columns:38% minmax(0,1fr);border-width:5px; }
  .oyh .oyh-entrance-before { grid-template-columns:minmax(0,1fr) 38%; }
  .oyh .oyh-character { height:204px;max-height:204px; }
  .oyh .oyh-entrance-copy { padding:10px 4px; }
  .oyh .oyh-entrance-copy h2 { font-size:1.25rem;margin-bottom:6px; }
  .oyh .oyh-entrance-copy p { font-size:.78rem;line-height:1.45;margin-bottom:7px; }
  .oyh .oyh-entrance-copy .oyh-button { min-height:44px;padding:7px 9px;font-size:.75rem; }
  .oyh .oyh-search-row-inner { grid-template-columns:1fr;gap:8px; }
  .oyh .oyh-search-form { min-height:55px; }
  .oyh .oyh-search-form input { font-size:.78rem; }
  .oyh .oyh-search-form button { min-width:64px; }
  .oyh .oyh-faq-link { min-height:49px; }
  .oyh .oyh-category-card { min-height:79px; }
  .oyh .oyh-feature-card { min-height:225px;padding:17px; }
  .oyh .oyh-feature-card h2 { font-size:1.2rem; }
  .oyh .oyh-feature-card p { font-size:.84rem; }
}

/* Footer navigation only: keep the established HOME layout intact. */
.oyh .oyh-footer .oyh-footer-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;text-align:left; }
.oyh .oyh-footer .oyh-footer-grid h2 { margin:0 0 12px;font-size:1.1rem;color:var(--oyashin-green-dark); }
.oyh .oyh-footer .oyh-footer-grid ul { list-style:none;margin:0;padding:0; }
.oyh .oyh-footer .oyh-footer-grid li { margin:0 0 8px; }
.oyh .oyh-footer .oyh-footer-grid small { font-size:.82rem; }
.oyh .oyh-footer .oyh-footer-copyright { margin:24px 0 0;padding-top:16px;border-top:1px solid var(--oyashin-line);text-align:center;font-weight:400; }
@media (max-width:767px) { .oyh .oyh-footer .oyh-footer-grid { grid-template-columns:1fr;gap:20px; } }

/* HOME search text: use the established text palette instead of browser black. */
.oyh .oyh-header-search input,
.oyh .oyh-search-form input { color:var(--oyashin-text); }
