/*
Theme Name: RHADS
Author: RHADS アプリ開発
Description: RHADS アプリ開発のサイト用ブロックテーマです。ヘッダー・フッター・各ページ・アプリ紹介はすべてWordPressのエディターで編集できます。保育園向けの無料ツール「小規模保育事業A型 損益シミュレーター」を同梱しています。
Version: 2.3.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: rhads
*/

/* theme.json で表せない見た目だけをここに書く */
:root { --rh-ink:#18261f; --rh-soft:#52625a; --rh-deep:#143a2b; --rh-leaf:#2f6e52; --rh-mint:#e6f1ea; --rh-cream:#faf7ef; --rh-line:#dde5df; --rh-amber:#e8a33d; }
html { scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } *, *::before, *::after { transition:none !important; } }
body { -webkit-font-smoothing:antialiased; }
:where(.wp-site-blocks) :focus-visible { outline:3px solid var(--rh-amber); outline-offset:3px; border-radius:6px; }

/* ヘッダー */
.site-header { position:sticky; top:0; z-index:50; background:rgba(251,252,251,.9); backdrop-filter:saturate(1.4) blur(10px); -webkit-backdrop-filter:saturate(1.4) blur(10px); border-bottom:1px solid rgba(221,229,223,.8); }
.admin-bar .site-header { top:32px; }
@media (max-width:782px) { .admin-bar .site-header { top:46px; } }
.site-header .wp-block-site-title a { text-decoration:none; }
.site-header .wp-block-navigation a { padding:6px 12px; border-radius:999px; transition:background .18s; }
.site-header .wp-block-navigation a:hover, .site-header .wp-block-navigation .current-menu-item > a { background:var(--rh-mint); }
.site-header .wp-block-navigation .is-style-rhads-nav-cta > a, .site-header .wp-block-navigation .rhads-nav-cta > a { background:var(--rh-leaf); color:#fff; }
.site-header .wp-block-navigation .rhads-nav-cta > a:hover { background:var(--rh-deep); }
.wp-block-navigation__responsive-container.is-menu-open { padding:24px; }

/* ブロックスタイル：グループ */
.is-style-rhads-hero { position:relative; overflow:hidden; border-radius:32px; color:#fff;
  background:radial-gradient(900px 460px at 95% -15%, rgba(232,163,61,.30), transparent 60%), radial-gradient(800px 460px at -10% 120%, rgba(120,190,150,.28), transparent 60%), linear-gradient(135deg,#123426 0%,#1f5a41 55%,#2f6e52 100%) !important; }
.is-style-rhads-hero::after { content:""; position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,.08) 1px, transparent 1px); background-size:22px 22px; -webkit-mask-image:linear-gradient(90deg, transparent 45%, #000); mask-image:linear-gradient(90deg, transparent 45%, #000); pointer-events:none; }
.is-style-rhads-hero > * { position:relative; z-index:1; }
.is-style-rhads-hero :where(h1,h2,h3,p) { color:#fff; }
.is-style-rhads-hero p { color:#d9eadf; }
.is-style-rhads-hero mark, .is-style-rhads-hero .rh-em { background:linear-gradient(transparent 64%, rgba(232,163,61,.55) 64%) !important; color:inherit !important; }
.is-style-rhads-band { border-radius:30px; color:#fff; background:radial-gradient(600px 300px at 80% 0%, rgba(232,163,61,.25), transparent 60%), linear-gradient(135deg,#143a2b,#2f6e52) !important; }
.is-style-rhads-band :where(h1,h2,h3) { color:#fff; }
.is-style-rhads-band p { color:#d9eadf; }
.is-style-rhads-card { background:#fff; border:1px solid var(--rh-line); border-radius:22px; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.is-style-rhads-card:hover { transform:translateY(-3px); box-shadow:0 14px 30px rgba(20,58,43,.10); border-color:#b9d2c3; }
.is-style-rhads-soft { background:var(--rh-cream); border:1px solid #ece4cf; border-radius:22px; }
.is-style-rhads-mint { background:var(--rh-mint); border-radius:20px; }

/* ブロックスタイル：段落・見出し */
.is-style-rhads-kicker { font-size:.78rem !important; font-weight:700; letter-spacing:.16em; color:var(--rh-leaf); text-transform:uppercase; margin-bottom:.3em !important; }
.is-style-rhads-hero .is-style-rhads-kicker, .is-style-rhads-band .is-style-rhads-kicker { color:#cfe6d8; }
.is-style-rhads-eyebrow { display:inline-flex; align-items:center; gap:10px; font-size:.8rem !important; font-weight:700; letter-spacing:.14em; }
.is-style-rhads-eyebrow::before { content:""; width:30px; height:2px; background:var(--rh-amber); }
.is-style-rhads-number { font-family:"Zen Kaku Gothic New",sans-serif; font-weight:900; font-size:1.7rem !important; color:var(--rh-amber); line-height:1 !important; margin-bottom:.4em !important; }
.is-style-rhads-tag { display:inline-block; font-size:.74rem !important; font-weight:700; padding:3px 12px; border-radius:999px; background:var(--rh-mint); color:var(--rh-deep); }

/* ブロックスタイル：ボタン */
.wp-block-button__link { transition:transform .18s ease, box-shadow .18s ease, background .18s ease; }
.wp-block-button.is-style-rhads-amber .wp-block-button__link { background:var(--rh-amber); color:#2a1c00; box-shadow:0 10px 24px rgba(20,58,43,.22); }
.wp-block-button.is-style-rhads-amber .wp-block-button__link:hover { background:#f2b556; transform:translateY(-2px); }
.wp-block-button.is-style-rhads-ghost-light .wp-block-button__link { background:transparent; color:#fff; border:2px solid rgba(255,255,255,.5); }
.wp-block-button.is-style-rhads-ghost-light .wp-block-button__link:hover { background:rgba(255,255,255,.12); }
.wp-block-button.is-style-outline .wp-block-button__link { border-width:2px; }

/* ブロックスタイル：リスト・表 */
.is-style-rhads-check { list-style:none; padding-left:0 !important; }
.is-style-rhads-check li { position:relative; padding-left:30px; margin-bottom:.45em; }
.is-style-rhads-check li::before { content:""; position:absolute; left:0; top:.5em; width:16px; height:16px; border-radius:50%; background:var(--rh-mint); box-shadow:inset 0 0 0 5px var(--rh-leaf); }
.is-style-rhads-steps { list-style:none; padding-left:0 !important; counter-reset:rh; display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:14px; }
.is-style-rhads-steps li { counter-increment:rh; background:var(--rh-mint); border-radius:18px; padding:20px 18px 18px; font-size:.93rem; }
.is-style-rhads-steps li::before { content:counter(rh); display:flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; background:var(--rh-leaf); color:#fff; font-weight:900; margin-bottom:10px; }
.is-style-rhads-info table { border-collapse:collapse; width:100%; }
.is-style-rhads-info td { border:none; border-bottom:1px solid var(--rh-line); padding:16px 12px; vertical-align:top; }
.is-style-rhads-info td:first-child { width:9.5em; color:var(--rh-deep); font-weight:700; }
.is-style-rhads-info thead { border:none; }

/* 画像 */
.is-style-rhads-shot img { border-radius:16px; box-shadow:0 26px 54px rgba(0,0,0,.30); }
.is-style-rhads-tilt img { border-radius:16px; box-shadow:0 26px 54px rgba(0,0,0,.35); transform:rotate(1.8deg); }
@media (max-width:781px) { .is-style-rhads-tilt img { transform:none; } }

/* よくある質問（詳細ブロック） */
.wp-block-details { background:#fff; border:1px solid var(--rh-line); border-radius:14px; padding:0 20px; margin-block-start:10px !important; }
.wp-block-details[open] { border-color:#b9d2c3; background:#fbfdfc; }
.wp-block-details summary { cursor:pointer; font-weight:700; list-style:none; padding:16px 28px 16px 0; position:relative; }
.wp-block-details summary::-webkit-details-marker { display:none; }
.wp-block-details summary::after { content:"＋"; position:absolute; right:0; top:50%; transform:translateY(-50%); color:var(--rh-leaf); font-weight:900; }
.wp-block-details[open] summary::after { content:"－"; }
.wp-block-details > :not(summary) { color:var(--rh-soft); padding-bottom:16px; margin-top:0; }

/* 一覧カード（クエリーループ） */
.rh-cards .wp-block-post { display:flex; }
.rh-cards .wp-block-post > .wp-block-group { flex:1; overflow:hidden; }
.rh-cards .wp-block-post-featured-image { margin:0 !important; }
.rh-cards .wp-block-post-featured-image img { aspect-ratio:16/10; object-fit:cover; width:100%; display:block; }
.rh-cards .wp-block-post-title a { text-decoration:none; color:var(--rh-ink); }
.rh-cards .wp-block-post-title a:hover { color:var(--rh-leaf); }
.rh-cards .wp-block-post-terms a { display:inline-block; font-size:.72rem; font-weight:700; padding:2px 10px; border-radius:999px; background:var(--rh-mint); color:var(--rh-deep); text-decoration:none; }
.rh-news .wp-block-post { border-bottom:1px solid var(--rh-line); padding:16px 4px; margin:0 !important; }
.rh-news .wp-block-post:first-child { border-top:1px solid var(--rh-line); }
.rh-news .wp-block-post-title a { text-decoration:none; color:var(--rh-ink); }
.rh-news .wp-block-post-date { min-width:7.5em; color:var(--rh-soft); }

/* 本文の見出し（固定ページ・アプリ紹介） */
.rh-prose h2 { padding-bottom:10px; border-bottom:2px solid var(--rh-mint); position:relative; }
.rh-prose h2::after { content:""; position:absolute; left:0; bottom:-2px; width:64px; height:2px; background:var(--rh-leaf); }
.rh-prose h3 { padding-left:14px; border-left:4px solid var(--rh-amber); }

/* フッター */
.site-footer a { text-decoration:none; }
.site-footer a:hover { color:var(--rh-amber) !important; }

/* お問い合わせフォーム */
.rh-form { display:grid; gap:18px; }
.rh-form label { display:block; font-weight:700; margin-bottom:6px; }
.rh-form .req { display:inline-block; font-size:.7rem; background:var(--rh-amber); color:#2a1c00; border-radius:4px; padding:0 6px; margin-left:6px; vertical-align:middle; }
.rh-form input[type=text], .rh-form input[type=email], .rh-form input[type=tel], .rh-form select, .rh-form textarea { width:100%; box-sizing:border-box; padding:12px 14px; border:1px solid #c9d6ce; border-radius:12px; font:inherit; background:#fff; color:var(--rh-ink); }
.rh-form textarea { min-height:180px; resize:vertical; }
.rh-form input:focus, .rh-form select:focus, .rh-form textarea:focus { outline:none; border-color:var(--rh-leaf); box-shadow:0 0 0 4px rgba(47,110,82,.15); }
.rh-form .rh-hp { position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }
.rh-form button { justify-self:start; background:var(--rh-leaf); color:#fff; border:none; border-radius:999px; padding:15px 34px; font:inherit; font-weight:700; cursor:pointer; }
.rh-form button:hover { background:var(--rh-deep); }
.rh-form .rh-agree { font-size:.9rem; color:var(--rh-soft); }
.rh-notice { border-radius:14px; padding:16px 20px; margin-bottom:18px; }
.rh-notice.ok { background:var(--rh-mint); color:var(--rh-deep); }
.rh-notice.ng { background:#fdecea; color:#922b21; }
.rh-plain { list-style:none; padding-left:0 !important; }
