/* 共通・ページ専用CSSの後に読み込む、園ログの明るいカラーテーマ。 */
:root {
    --theme-stripe: linear-gradient(90deg, var(--theme-pink) 0% 25%, var(--theme-yellow) 25% 50%, var(--theme-lime) 50% 75%, var(--theme-orange) 75%);
}

/* ページと広い面は白に統一し、色はボタン・文字・小さな装飾に使う。 */
body, .search-page { background: #fff; }
.section-cream, .section-tinted { background: #fff; }
.site-header { background: #fff; border-bottom-color: var(--c-primary-soft); }
.site-header::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--theme-stripe); pointer-events: none; }
.site-header .nav-desktop a { color: var(--c-text-sub); }
.site-header .nav-desktop a:hover { background: var(--c-primary-bg); color: var(--c-primary-dark); }
.site-header .nav-desktop a[aria-current="page"] { color: var(--c-primary-dark); }
.site-header .nav-desktop a[aria-current="page"]::after { background: var(--c-primary); }
.site-header .mobile-menu-btn { color: var(--c-primary-dark); }
.site-header .icon-btn:hover { background: var(--c-primary-bg); }
.site-header .header-member, .site-header .header-member:hover { background: var(--theme-lime); color: var(--theme-lime-ink); }
.site-header .header-contact, .site-header .header-contact:hover { background: var(--theme-orange); color: var(--theme-orange-ink); }
.site-header .header-member:hover, .site-header .header-contact:hover { box-shadow: inset 0 0 0 2px currentColor; }
.site-header .header-actions .btn:focus-visible { outline-color: var(--c-primary-dark); }
.drawer-panel { background: #fff; }
.drawer-nav a:hover { background: var(--c-primary-bg); }
.btn-primary { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }
.btn-primary:hover { background: var(--c-primary-dark); border-color: var(--c-primary-dark); }
.btn-outline { background: #fff; border-color: var(--c-primary-soft); color: var(--c-primary-dark); }
.btn-outline:hover { background: var(--c-primary-bg); border-color: var(--c-primary); }
.input:focus, .select:focus, .textarea:focus { border-color: var(--c-primary); box-shadow: 0 0 0 3px #bb3e7918; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--c-primary); }
.input::placeholder, .textarea::placeholder { color: var(--c-text-mute); }
:focus-visible { outline-color: var(--c-primary); }
.eyebrow, .text-link, .section-title { color: var(--c-primary-deep); }
.page-hero, .page-hero.has-media, .search-header, .mypage-hero {
    background: #fff;
    border-color: var(--c-border);
}
.service-icon, .category-icon, .category-hero .category-hero-icon { background: var(--theme-yellow); color: var(--theme-yellow-ink); }
.filter-panel, .office-card { border-color: var(--c-border); }
.filter-toggle, .filter-panel-title { background: #fff; }
.active-filter, .filter-chip { background: var(--c-primary-bg); color: var(--c-primary-dark); }
.page-link.active, .page-link[aria-current="page"] { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }
.badge-nursery, .badge-unlicensed { background: var(--theme-pink-wash); color: var(--theme-pink-ink); border-color: var(--theme-pink); }
.badge-kindergarten { background: var(--theme-yellow-wash); color: var(--theme-yellow-ink); border-color: var(--theme-yellow); }
.badge-certified-center { background: var(--theme-lime-wash); color: var(--theme-lime-ink); border-color: var(--theme-lime); }
.badge-small-nursery, .badge-workplace-nursery { background: var(--theme-orange-wash); color: var(--theme-orange-ink); border-color: var(--theme-orange); }
.badge-family-nursery, .badge-home-visit { background: var(--theme-sky-wash); color: var(--theme-sky-ink); border-color: var(--theme-sky); }
.fav-btn.is-saved { background: var(--c-primary-bg); color: var(--c-primary); }

/* 映像と文字をつなぐ、輪郭のない白い光と手描き風のアクセント。 */
.th-home { --th-ink: var(--c-text); --th-body: var(--c-text-sub); --th-line: var(--c-border); --th-paper: #fff; --th-orange: var(--c-primary); }
.th-home .th-hero { background: #fff; color: var(--c-text); }
.th-home .th-hero::after { background: linear-gradient(90deg, #ffffff24, #ffffff0d 45%, #ffffff00 80%), linear-gradient(0deg, #ffffff1f, transparent 55%); pointer-events: none; }
.th-home .th-hero-grid { align-items: start; }
.th-home .th-hero-copy { position: relative; z-index: 0; isolation: isolate; padding: 0; }
.th-home .th-hero-copy > :is(.th-hero-badge, .th-hero-benefits, .th-hero-link) { position: relative; z-index: 1; }
.th-home .th-hero-message { position: relative; isolation: auto; margin-bottom: 26px; }
.th-home .th-hero h1 { position: relative; margin: 0 0 14px; color: var(--c-primary-deep); font-size: clamp(30px, 3.2vw, 42px); font-weight: 500; line-height: 1.65; letter-spacing: .01em; }
.th-home .th-hero-title-line { display: block; width: fit-content; max-width: 100%; text-shadow: 0 0 .04em #fff, 0 0 .13em #fff, 0 0 .3em #fff, 0 0 .6em #fff, 0 0 1em #fff, 0 0 1.5em #fff, 0 0 2em #fff, 0 0 2.8em #fffffff2, 0 0 2.8em #ffffffd9; }
.th-home .th-hero-spark { position: absolute; top: -24px; left: -20px; width: 36px; height: 36px; color: #ffbf5d; pointer-events: none; }
.th-home .th-hero-flourish { display: block; width: 100%; max-width: 12.2em; height: auto; margin: -4px 0 0; color: #ffbd72; pointer-events: none; }
.th-home .th-hero-description { max-width: 100%; margin: 0 0 0 22px; color: var(--c-text); font-size: 19px; font-weight: 500; line-height: 1.85; letter-spacing: .045em; text-shadow: 0 1px 7px #fff, 0 0 18px #fffffff2; }
.th-home .th-hero-benefits > span { min-height: 36px; padding: 6px 10px; border: 1px solid #ffffffb3; border-radius: 999px; background: #fffffff5; color: var(--c-text-sub); box-shadow: 0 3px 12px #3538420d; font-size: 12px; line-height: 1.6; }
.th-home .th-hero-foot, .th-home .th-hero-foot > span { color: var(--c-text-sub); }
.th-home .th-hero-foot p { padding: 10px 12px; border: 1px solid #ffffffb3; border-radius: 6px; background: #fffffff2; box-shadow: 0 3px 12px #3538420d; font-size: 12px; line-height: 1.8; }
.th-home .th-hero-badge { gap: 9px; padding: 8px 14px; border-radius: 999px; background: #fff8f5ed; border-color: #f9dfe5; color: var(--c-primary-deep); box-shadow: 0 3px 16px #9f2e630a; font-size: 13px; }
.th-home .th-hero-badge > .th-hero-badge-symbol { display: inline-flex; width: 20px; height: 20px; flex: none; border-radius: 0; background: transparent; color: var(--theme-lime-ink); }
.th-home .th-hero-badge-symbol .icon { width: 20px; height: 20px; }
.th-home .th-hero .th-eyebrow { color: var(--c-primary-dark); }
.th-home .th-hero-link { justify-content: center; gap: 13px; min-width: 320px; min-height: 48px; max-width: 100%; padding: 11px 20px; border: 1px solid var(--c-primary-soft); border-radius: 999px; background: #fffffff2; color: var(--c-primary-dark); box-shadow: 0 4px 18px #9f2e630a; font-size: 14px; font-weight: 600; }
.th-home .th-hero-link .icon { width: 19px; height: 19px; }
.th-home .th-hero-link:hover { background: var(--c-primary-bg); border-color: var(--c-primary); }
.th-home .th-hero-benefits .icon { color: var(--theme-lime-ink); }
.th-home .th-hero .th-hero-search { position: relative; z-index: 1; overflow: hidden; border-radius: 24px; background: linear-gradient(145deg, rgb(255 245 250 / .86) 0%, rgb(255 255 255 / .82) 32%); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); border-color: #f7dfe9; box-shadow: 0 12px 36px #9f2e6312; }
.th-home .th-hero-search h2 { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; color: var(--c-text); font-size: 23px; font-weight: 600; }
.th-home .th-hero-search h2 .icon { width: 28px; height: 28px; flex: none; color: var(--c-primary); }
.th-home .th-search-intro { --school-width: 260px; position: relative; isolation: isolate; min-height: 112px; margin-bottom: 22px; }
.th-home .th-search-intro::before { content: ""; position: absolute; z-index: -1; top: -45px; right: -52px; width: var(--school-width); aspect-ratio: 4 / 3; background: url('../images/photos/decor-search-school.webp') center / contain no-repeat; opacity: .55; mask-image: linear-gradient(90deg, transparent, #000 45%), linear-gradient(#000 55%, transparent); mask-composite: intersect; pointer-events: none; }
.th-home .th-search-intro-copy { position: relative; min-width: 0; text-shadow: 0 1px 4px #fff, 0 0 12px #fff; }
.th-home .th-search-intro .th-form-intro { margin-bottom: 0; }
.th-home .th-hero-search .field > label { display: flex; align-items: center; gap: 6px; }
.th-home .th-hero-search .field > label .icon { width: 16px; height: 16px; flex: none; color: var(--c-primary); }
.th-home .th-form-intro { font-size: 13px; line-height: 1.9; }
.th-home .th-hero-search .th-button-primary { border-radius: 999px; }
.th-home .th-hero-search .input, .th-home .th-hero-search .select { background-color: #fff; border-color: var(--c-border-strong); }
.th-home .th-hero-search .field label, .th-home .th-form-intro, .th-home .th-quick-search > span { color: var(--c-text-sub); }
.th-home .th-button-primary { background: var(--c-primary); border-color: var(--c-primary); }
.th-home .th-button-primary:hover { background: var(--c-primary-dark); border-color: var(--c-primary-dark); }
.th-home .th-hero-foot #th-video-toggle { min-height: 44px; background: #fff; color: var(--c-primary-dark); border-color: var(--c-primary-soft); }
.th-home .th-hero-foot #th-video-toggle:hover { background: var(--c-primary-bg); }
.th-home .th-hero-foot #th-video-toggle:focus-visible { outline-color: var(--c-primary); }
@media (min-width: 801px) and (max-width: 1050px) {
    .th-home .th-hero h1 { font-size: clamp(26px, 3.2vw, 36px); }
    .th-home .th-hero-description { margin-left: 12px; font-size: 17px; }
    .th-home .th-search-intro { --school-width: 230px; }
    .th-home .th-search-intro::before { right: -46px; opacity: .45; }
}
@media (max-width: 800px) {
    .th-home .th-hero-benefits { gap: 10px; }
    .th-home .th-hero-foot #th-video-toggle { margin-top: 12px; }
}
@media (max-width: 540px) {
    .th-home .th-hero-badge { padding: 7px 10px; font-size: 11px; }
    .th-home .th-hero-message { margin-bottom: 22px; }
    .th-home .th-hero h1 { font-size: clamp(23px, 6.8vw, 34px); line-height: 1.7; }
    .th-home .th-hero-spark { top: -17px; left: -9px; width: 26px; height: 26px; }
    .th-home .th-hero-flourish { margin-top: 0; }
    .th-home .th-hero-description { margin-left: 10px; font-size: 16px; line-height: 1.9; }
    .th-home .th-hero-benefits > span { font-size: 12px; }
    .th-home .th-hero-link { width: 100%; min-width: 0; gap: 10px; padding: 11px 14px; font-size: 14px; }
    .th-home .th-hero .th-hero-search { border-radius: 18px; }
    .th-home .th-hero-search h2 { gap: 10px; font-size: 21px; }
    .th-home .th-hero-search h2 .icon { width: 25px; height: 25px; }
    .th-home .th-search-intro { --school-width: 210px; min-height: 104px; }
    .th-home .th-search-intro::before { top: -32px; right: -40px; opacity: .32; }
}
@media (max-width: 380px) {
    .th-home .th-search-intro { --school-width: 190px; }
    .th-home .th-hero-search h2 { gap: 7px; font-size: 18px; }
    .th-home .th-hero-search h2 .icon { width: 22px; height: 22px; }
}
.th-home .th-facts { background: #fff; }
.th-home .th-facts strong { color: var(--c-primary-dark); }
.th-home .th-facts .container > div:nth-child(2) strong { color: var(--theme-orange-ink); }
.th-home .th-facts .container > div:nth-child(3) strong { color: var(--theme-lime-ink); }
.th-home .th-facts .container > div > span, .th-home .th-facts .container > p, .th-home .th-facts p small { color: var(--c-text-sub); }
.th-eyebrow { color: var(--c-primary-dark); }
.th-home .th-care, .th-home .th-guide, .th-home .th-trust, .th-home .th-provider { background: #fff; }
.th-home .th-closing { background: #fff; color: var(--c-text); }
.th-home .th-closing::after { background: #fffffff2; }
.th-home .th-closing h2 { color: var(--c-primary-deep); }
.th-home .th-closing .th-eyebrow { color: var(--c-primary-dark); }
.th-home .th-closing p { color: var(--c-text-sub); }
.th-home .th-closing .btn { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }
.th-home .th-closing .btn:hover { background: var(--c-primary-dark); }
.cta, .tl-closing { background: #fff; color: var(--c-text); }
.cta h2, .tl-closing h2 { color: var(--c-primary-deep); }
.cta p, .tl-closing p { color: var(--c-text-sub); }
.cta .btn, .tl-closing .btn { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }

/* 写真や内容を変えず、カードのアクセントを4色に振り分ける。 */
:is(.th-entry, .th-care-card, .th-service, .th-step-grid > li, .category-card, .service-card) {
    --card-accent: var(--theme-pink); --card-wash: var(--theme-pink-wash); --card-ink: var(--theme-pink-ink);
    border-top: 4px solid var(--card-accent);
}
:is(.th-entry, .th-care-card, .th-service, .th-step-grid > li, .category-card, .service-card):nth-child(4n + 2) { --card-accent: var(--theme-yellow); --card-wash: var(--theme-yellow-wash); --card-ink: var(--theme-yellow-ink); }
:is(.th-entry, .th-care-card, .th-service, .th-step-grid > li, .category-card, .service-card):nth-child(4n + 3) { --card-accent: var(--theme-lime); --card-wash: var(--theme-lime-wash); --card-ink: var(--theme-lime-ink); }
:is(.th-entry, .th-care-card, .th-service, .th-step-grid > li, .category-card, .service-card):nth-child(4n + 4) { --card-accent: var(--theme-orange); --card-wash: var(--theme-orange-wash); --card-ink: var(--theme-orange-ink); }
.th-entry-image > span, .th-service-image > span, .th-step-image > span, .th-care-image > span { background: var(--card-accent); border-color: var(--card-accent); color: var(--card-ink); }
.th-care-body li, .th-care-body li a { background: var(--card-wash); color: var(--card-ink); }
.th-care-card:hover, .th-entry:hover, .th-service:hover { border-color: var(--card-accent); }
.jp-map { background: #fff; border-color: var(--c-border); }
.jp-map-head { border-color: var(--c-border); }
.jp-region-0 { --jp-bg: var(--theme-sky); --jp-ink: var(--theme-sky-ink); }
.jp-region-1 { --jp-bg: var(--theme-lime); --jp-ink: var(--theme-lime-ink); }
.jp-region-2 { --jp-bg: var(--theme-yellow); --jp-ink: var(--theme-yellow-ink); }
.jp-region-3 { --jp-bg: var(--theme-orange); --jp-ink: var(--theme-orange-ink); }
.jp-region-4, .jp-region-5 { --jp-bg: var(--theme-pink); --jp-ink: var(--theme-pink-ink); }
.jp-cell, .jp-mobile-regions a { border-color: #ffffffb3; box-shadow: 0 2px 0 #63536a10; }
.jp-map-caption strong { color: var(--c-primary-deep); }
.jp-map-caption p, .jp-map-caption > span, .jp-map-note, .jp-map-legend > span { color: var(--c-text-sub); }

/* 詳細ページ。電話番号の下の閲覧者数・移動数は常時表示する。 */
.page-office, .office-page { background: #fff; }
.office-page { --od-ink: var(--c-text); --od-body: var(--c-text-sub); --od-muted: var(--c-text-mute); --od-line: var(--c-border); --od-paper: #fff; --od-sage: #fff; --od-orange: var(--c-primary); }
.office-page .od-hero { background: #fff; color: var(--c-text); }
.office-page .od-hero::before { background: linear-gradient(90deg, #fffffffa, #fffffff5 35%, #ffffffa3 54%, #ffffff1f 80%, #ffffff0a); }
.office-page .od-hero h1 { color: var(--c-primary-deep); }
.office-page .od-office-type { background: #fff; border-color: var(--theme-pink); color: var(--c-primary-dark); }
.office-page .od-eyebrow { color: var(--c-primary-dark); }
.office-page .od-kana, .office-page .od-corporation, .office-page .od-hero-address, .office-page .od-hero-caption { color: var(--c-text-sub); }
.office-page .od-hero-address .icon, .office-page .od-hero-phone > .icon { color: var(--c-primary); }
.office-page .od-hero-phone, .office-page .od-hero-phone small { color: var(--c-text); }
.office-page .od-hero-rating, .office-page .od-hero-rating > span:first-child, .office-page .od-hero-rating .rating-score, .office-page .od-hero-rating .rating-count { color: var(--c-text); }
.office-page .od-button-primary { background: var(--c-primary); border-color: var(--c-primary); color: #fff; box-shadow: 0 2px 0 var(--c-primary-dark); }
.office-page .od-button-primary:hover { background: var(--c-primary-dark); border-color: var(--c-primary-dark); }
.office-page .od-button-light { background: #fff; border-color: var(--c-primary-soft); color: var(--c-primary-dark); }
.office-page .od-button-light:hover { background: var(--c-primary-bg); }
.office-page .od-hero .od-save { background: #fff; border-color: var(--c-primary-soft); color: var(--c-primary-dark); }
.office-page .od-hero .od-save:hover, .office-page .od-hero .od-save.is-saved { background: var(--c-primary-bg); color: var(--c-primary-dark); }
.office-page .od-hero-stats { border-top-color: var(--c-border-strong); }
.office-page .od-stat:first-child { border-right-color: var(--c-border-strong); }
.office-page .od-stat > .icon { background: #f4f5f6; color: var(--c-primary); }
.office-page .od-stat div > span, .office-page .od-stat strong small, .office-page .od-hero-stats > p { color: var(--c-text-sub); }
.office-page .od-stat strong { color: var(--c-primary-deep); }
.office-page .od-preview-art figcaption { background: #fff1f7f5; color: var(--c-primary-deep); }
.office-page .od-preview-art figcaption > span + span { color: var(--c-text-sub); }
.od-card-header { background: #fff; border-color: var(--c-border); }
.od-section { --od-heading-accent: var(--theme-pink); }
.od-hours, .od-fees, .od-nearby { --od-heading-accent: var(--theme-yellow); }
.od-care { --od-heading-accent: var(--theme-lime); }
.od-ages, .od-provider { --od-heading-accent: var(--theme-orange); }
.od-map-card, .od-spec-section { --od-heading-accent: var(--theme-sky); }
.od-card-header h2 { border-left: 4px solid var(--od-heading-accent); padding-left: 12px; }
.od-information .od-spec dt { display: flex; align-items: center; gap: 7px; }
.od-information .od-spec dt .icon { width: 17px; height: 17px; color: var(--c-primary); }
.od-content .od-card-header-illustrated { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.od-card-header-illustrated > div { min-width: 0; }
.od-header-sakura { display: block; flex: none; width: 44px; height: auto; pointer-events: none; }
.od-section-eyebrow { color: var(--c-text-sub); }
.is-extended .od-hour-bar span { background: var(--theme-orange); }
.is-after .od-hour-bar span { background: var(--theme-lime); }
.od-source-note { background: #fff; border-color: var(--theme-yellow); }
.od-map { background: #fff; border-color: var(--theme-sky); }
.office-page .od-compare thead .is-current { background: var(--c-primary); color: #fff; }
.od-current-tag { background: #ffffff26; color: #fff; }
.od-compare-link { background: var(--c-primary); }
.od-callbar { background: #fff; border-top-color: var(--theme-pink); }

/* 白い角丸カードに、TOPと同じテーマカラーの上辺を添える。 */
.od-content .od-section {
    border: 1px solid #e3e5e8;
    border-top: 3px solid var(--od-heading-accent);
    border-radius: 12px;
    background: #fff;
    box-shadow: none;
}
.od-content .od-tiles li,
.od-content .od-compare-scroll {
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.od-content { --od-divider: #e3e5e8; }
.od-content .od-main, .od-content .od-sidebar { gap: 28px; }
.od-content .od-card-header { padding: 22px 24px 16px; border-bottom: 1px solid #edf0f3; }
.od-content .od-card-body { padding: 20px 24px 24px; }
.od-content .od-tiles li { padding: 8px 0; background: transparent; }
.od-content .od-source-note { padding: 16px; border: 1px solid var(--theme-yellow); border-radius: 10px; background: #fff; }
.od-content .od-map { border: 1px solid var(--theme-sky); border-radius: 8px; }
.od-content .od-more-nearby a { border: 1px solid var(--od-divider); border-radius: 8px; padding: 10px 12px; }
.office-page [id^="sec-"] { scroll-margin-top: calc(var(--header-h) + 20px); }
@media (min-width: 1024px) {
    .od-content .od-layout { grid-template-columns: minmax(0, 1fr) 340px; column-gap: 48px; }
    .od-content .od-sidebar {
        padding-left: 0;
        align-content: start;
    }
}
@media (min-width: 1024px) and (max-width: 1199px) {
    .od-content .od-layout { grid-template-columns: minmax(0, 1fr) 300px; column-gap: 32px; }
}
@media (max-width: 1023px) {
    .od-content .od-layout { gap: 24px; }
}

/* ガイド・運営案内・会員画面・お問い合わせにも同じ配色を適用。 */
.guide-page { --gd-paper: #fff; --gd-sage: #fff; }
.guide-page .gd-hero::before { background: linear-gradient(90deg, #fff, #fffffff2 34%, #ffffffbf 59%, #ffffff3d); }
.gd-hero h1, .ab-hero h1, .ip-hero h1 { color: var(--c-primary-deep); }
.gd-toc, .gd-role { background: #fff; }
.gd-toc { border-color: var(--theme-lime); }
.gd-service-card { background: #fff; }
.gd-flow > li::before { background: var(--theme-lime); color: var(--theme-lime-ink); }
.about-page { background: #fff; }
.ab-hero, .ip-hero, .ab-tinted, .ab-overview > div { background: #fff; }
.ab-overview svg { color: var(--c-primary-dark); }
.page-information, .ip-choice-area { background: #fff; }
.auth-section, body.page-login { background: #fff; }
.auth-card, .page-login .login-card { border-top: 4px solid var(--theme-pink); }
.page-login .login-register, .page-login .login-register:hover { background: var(--theme-lime); color: var(--theme-lime-ink); }
.page-login .login-submit { background: var(--c-primary); border-color: var(--c-primary); }
.page-login .login-submit:hover { background: var(--c-primary-dark); border-color: var(--c-primary-dark); }
.page-login .login-google, .page-login .login-google:hover { background: var(--theme-sky); border-color: var(--theme-sky); color: var(--theme-sky-ink); }
.page-login .login-links a { color: var(--c-primary-dark); }
.page-login .login-form .input:focus, .hc-form :is(.input,.select,.textarea):focus { border-color: var(--c-primary); box-shadow: 0 0 0 3px #bb3e7918; }
.page-login :is(a,button):focus-visible, .page-contact :is(a,button):focus-visible { outline-color: var(--c-primary); }
.page-contact .ip-hero { background: #fff; border-color: var(--c-primary-soft); }
.page-contact .hc-container .btn-primary { background: var(--c-primary); }
.page-contact .hc-container .btn-primary:hover { background: var(--c-primary-dark); }
.hc-removal-guide { background: #fff; border-color: var(--theme-sky); }
.hc-removal-guide h2, .hc-removal-guide a { color: var(--theme-sky-ink); }
.hc-form .agree-check input { accent-color: var(--c-primary); }
.hc-confirmation a, .hc-form .agree-check a { color: var(--c-primary-dark); }

/* フッターも白地にし、色は細い帯と見出しの線に使う。 */
.site-footer { position: relative; background: #fff; color: var(--c-text-sub); }
.site-footer::before { content: ''; position: absolute; inset: 0 0 auto; height: 6px; background: var(--theme-stripe); }
.site-footer a, .site-footer .logo, .site-footer .footer-title { color: var(--c-primary-deep); }
.site-footer .footer-links a { color: var(--c-text-sub); }
.site-footer .footer-links a:hover { color: var(--c-primary-dark); }
.site-footer .footer-title { border-bottom: 2px solid var(--theme-pink); }
.site-footer .footer-links:nth-child(3) .footer-title { border-color: var(--theme-yellow); }
.site-footer .footer-links:nth-child(4) .footer-title { border-color: var(--theme-lime); }
.site-footer .footer-links:nth-child(5) .footer-title { border-color: var(--theme-orange); }
.site-footer .footer-note, .site-footer .footer-desc, .site-footer .footer-bottom { color: var(--c-text-sub); }
.site-footer .footer-bottom { border-color: var(--c-primary-soft); }
.footer-kids-illustration { display: block; width: 164px; max-width: 100%; height: auto; margin-top: 18px; pointer-events: none; }
.th-sakura-kicker { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.th-sakura-kicker img { display: block; flex: none; width: 38px; height: auto; pointer-events: none; }
.th-sakura-kicker .th-eyebrow { margin: 0; }
.scroll-top-btn { background: var(--c-primary); }
body.admin { background: #fff; }
.admin-sidebar { background: #fff; color: var(--c-text); border-right: 1px solid var(--c-primary-soft); }
.admin-sidebar nav a, .admin-sidebar-foot a, .admin-sidebar-foot button { color: var(--c-text-sub); }
.admin-sidebar nav a:hover, .admin-sidebar nav a.is-active { background: var(--c-primary-bg); color: var(--c-primary-dark); }
.admin-sidebar-foot { border-top-color: var(--c-primary-soft); }
.stat-card:nth-child(4n + 1) { border-top: 4px solid var(--theme-pink); }
.stat-card:nth-child(4n + 2) { border-top: 4px solid var(--theme-yellow); }
.stat-card:nth-child(4n + 3) { border-top: 4px solid var(--theme-lime); }
.stat-card:nth-child(4n + 4) { border-top: 4px solid var(--theme-orange); }

@media (max-width: 800px) {
    .th-home .th-hero::after { background: linear-gradient(105deg, #fffffff5, #ffffffe8); }
}
@media (max-width: 767px) {
    .office-page .od-hero::before { background: linear-gradient(90deg, #fffffffa, #fffffff5 45%, #ffffffc9 68%, #ffffff57); }
}
