/* ========== Palette & Tokens ========== */
:root {
    /* Brand palette */
    --color-primary: #30baa0;
    --color-primary-dark: #28a991;
    --color-primary-deep: #308D76;
    --color-primary-light: #d6f1ec;
    --color-secondary: #524331;
    --color-secondary--light: rgb(187, 182, 175);
    --color-accent: #d5443f;
    --color-link: #1776d5;
    /* Surfaces */
    --surface-page: #f4f0ec;
    --surface-card: #fff;
    --surface-line: color-mix(in srgb, var(--surface-page) 80%, #000 5%);
    /* Typography */
    --text-base: #524331;
    --text-muted: color-mix(in srgb, var(--text-base) 80%, #fff 20%);
    --body-font: "Helvetica Neue", Arial, "Hiragino Kcolor-mix(in srgb, var(--text-base) 100%, #fff 25%)aku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    /* Links & emphasis */
    --link-color: var(--color-link);
    --link-hover-color: color-mix(in srgb, var(--color-accent) 85%, #000 15%);
    /* Layout */
    --right-min: 300px;
    /* メニューの最小幅 */
    --gap: clamp(16px, 2.8vw, 28px);
    --gap-tight: clamp(10px, 2vw, 20px);
    --gap-wide: clamp(24px, 3.6vw, 40px);
    --container-pad: clamp(16px, 3vw, 32px);
    /* Type */
    --fz-body: clamp(17px, 1rem + 0.4vw, 18px);
    --fz-xs: clamp(12px, 0.8rem + 0.2vw, 13px);
    --fz-sm: clamp(14px, 0.85rem + 0.5vw, 16px);
    --fz-md: clamp(16px, 0.9rem + 0.8vw, 18px);
    --fz-lg: clamp(18px, 1.1rem + 1vw, 22px);
    --fz-h3: clamp(20px, 1.2rem + 1.2vw, 26px);
    --fz-h2: clamp(18px, 1.4rem + 1.8vw, 24px);
    --fz-h1: clamp(28px, 1.6rem + 2.6vw, 40px);
    --lh-tight: 1.25;
    --lh-body: 1.75;
    --measure: 65ch;
    --radius: 12px;
}

/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */
html {
    font-family: sans-serif;
    line-height: 1.15;
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%
}

body {
    margin: 0
}

article,
aside,
footer,
header,
nav,
section {
    display: block
}

h1 {
    margin: .67em 0;
    font-size: 1.2em
}

figcaption,
figure,
main {
    display: block
}

figure {
    margin: 1em 40px
}

hr {
    overflow: visible;
    box-sizing: content-box;
    height: 0
}

pre {
    font-family: monospace, monospace;
    font-size: 1em
}

a {
    background-color: rgba(0, 0, 0, 0);
    -webkit-text-decoration-skip: objects
}

a:active,
a:hover {
    outline-width: 0
}

abbr[title] {
    text-decoration: underline;
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
    border-bottom: none
}

b,
strong {
    font-weight: inherit
}

b,
strong {
    font-weight: bolder
}

code,
kbd,
samp {
    font-family: monospace, monospace;
    font-size: 1em
}

dfn {
    font-style: italic
}

mark {
    color: #000;
    background-color: #ff0
}

small {
    font-size: 80%
}

sub,
sup {
    position: relative;
    vertical-align: baseline;
    font-size: 75%;
    line-height: 0
}

sub {
    bottom: -0.25em
}

sup {
    top: -0.5em
}

audio,
video {
    display: inline-block
}

audio:not([controls]) {
    display: none;
    height: 0
}

img {
    border-style: none
}

svg:not(:root) {
    overflow: hidden
}

button,
input,
optgroup,
select,
textarea {
    margin: 0;
    font-family: sans-serif;
    font-size: 100%;
    line-height: 1.15
}

button,
input {
    overflow: visible
}

button,
select {
    text-transform: none
}

button,
html [type=button],
[type=reset],
[type=submit] {
    -webkit-appearance: button
}

button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
    padding: 0;
    border-style: none
}

button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
    outline: 1px dotted ButtonText
}

fieldset {
    margin: 0 2px;
    padding: .35em .625em .75em;
    border: 1px solid silver
}

legend {
    display: table;
    box-sizing: border-box;
    max-width: 100%;
    padding: 0;
    white-space: normal;
    color: inherit
}

progress {
    display: inline-block;
    vertical-align: baseline
}

textarea {
    overflow: auto
}

[type=checkbox],
[type=radio] {
    box-sizing: border-box;
    padding: 0
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
    height: auto
}

[type=search] {
    outline-offset: -2px;
    -webkit-appearance: textfield
}

[type=search]::-webkit-search-cancel-button,
[type=search]::-webkit-search-decoration {
    -webkit-appearance: none
}

::-webkit-file-upload-button {
    font: inherit;
    -webkit-appearance: button
}

details,
menu {
    display: block
}

summary {
    display: list-item
}

canvas {
    display: inline-block
}

template {
    display: none
}

[hidden] {
    display: none
}

/* ===== Base */
* {
    box-sizing: border-box;
    min-inline-size: 0
}

:focus {
    outline: 3px solid rgba(0, 123, 255, 0.5);
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
}

html,
body {
    height: 100%;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    scroll-margin-top: 60px;
}

body {
    margin: 0;
    font-family: var(--body-font);
    font-size: var(--fz-body);
    line-height: var(--lh-body);
    color: var(--text-base);
    background: var(--surface-page);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    text-align: center;
}

h1,
h2,
h3,
h4 {
    line-height: var(--lh-tight);
    font-weight: 700;
    margin: 0;
    font-feature-settings: "palt";
    letter-spacing: -0.02em;
}

h1 {
    font-size: var(--fz-h1)
}

h2 {
    font-size: var(--fz-h2)
}

h3 {
    font-size: var(--fz-h3)
}

h4 {
    font-size: var(--fz-lg);
    font-weight: 600
}

p,
ul,
ol,
figure,
blockquote,
table {
    margin: 0;
    list-style: none;
}

a:any-link {
    color: var(--link-color);
    text-decoration: underline;
    text-underline-offset: .2em
}

a:any-link:hover {
    text-decoration: none;
}

a:hover {
    color: var(--link-hover-color)
}


.u-prose {
    max-inline-size: var(--measure)
}

.u-center {
    margin-inline: auto
}

.u-flow-space>*+* {
    margin-block-start: clamp(12px, 2.2vw, 20px)
}

.u-sp {
    display: inline;
}

.u-pc {
    display: none;
}

.u-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;
}

/* Inner blocks */
.l-section {
    padding-block: calc(var(--gap) * 2)
}



/* Menu (right) */
.c-side-nav {
    position: sticky;
    top: 16px;
    border: 1px solid var(--surface-line);
    border-radius: var(--radius);
    padding: clamp(14px, 2vw, 18px);
    background: #fff;
}

.c-side-nav__title {
    margin: 0 0 .5em;
    font-size: 1rem;
    color: var(--text-muted)
}

.c-side-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .5em;
}

.c-side-nav__list li {
    position: relative;
    padding-left: 1.2em;
    /* ●ぶんの余白 */
}

.c-side-nav__list li::before {
    content: "";
    position: absolute;
    top: 0.6em;
    /* 文字の中腹くらい */
    left: .2em;
    width: 0.45em;
    height: 0.45em;
    border-radius: 50%;
    background: var(--color-secondary);
    /* ここが●の色 */
}

.c-side-nav a {
    text-decoration: none;
    color: var(--color-secondary);
}

.c-side-nav a:hover {
    text-decoration: underline
}

/* common header */
/* ===== Layout: SP = 1 column ===== */
.l-page {
    display: grid;
    grid-template:
        "main" auto
        "menu" auto / min(100%, 700px);
    gap: 0;
    min-block-size: 100dvb;
    margin-inline: auto;
    text-align: left;
}

.l-page__main {
    grid-area: main;
    background: var(--surface-page);
}

.l-page__side--right {
    grid-area: menu;
    padding-top: 30px;
}

/* ===== Layout: PC >=769px = 2 columns (Main | Menu) ===== */
@media (min-width:769px) {
    .l-page {
        gap: var(--gap);
        grid-template:
            "main menu" auto /
            minmax(0, 7fr)
            /* main */
            minmax(var(--right-min), 3fr);
        /* menu (>= right-min) */
        padding-inline: var(--container-pad);
    }

    .u-sp {
        display: none !important;
    }

    .u-pc {
        display: inline !important;
    }
}

.l-header {
    background-color: #f8f8f8;
    transition: top 0.3s ease;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    z-index: 100;
    font-feature-settings: "palt";
    top: 0;
    width: 100%;
}

.l-header__inner {
    max-width: 980px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.c-header-logo {
    padding: 0 1rem;
    width: 50%;
    max-width: 265px;

    &:hover {
        opacity: .6;
    }
}

.l-header__contact {
    padding: .6rem;
    background: #524331;
    color: #fff;
    display: flex;
    justify-content: space-between;
    line-height: 1.4;
}

.l-header__contact img {
    width: 30px;
}

.l-header__contact p {
    margin: 0;
}

.l-header__contact a:link {
    color: #fff;
    text-decoration: none;
    font-weight: 700;
}

.l-header__contact span {
    font-size: .8rem;
    display: block;
}

.l-header__tel {
    font-size: 2rem;
    font-weight: 700;
    padding-left: 10px;
    order: 2;
}

/* icon */
.c-svgicon {
    display: inline-block;
    width: 1.25em;
    height: 1.25em;
    vertical-align: middle;
    flex-shrink: 0;

    /* sprite側が currentColor を使ってる前提 */
    color: currentColor;
}

.c-svgicon--xs {
    width: 0.9em;
    height: 0.9em;
}

.c-svgicon--s {
    width: 1.1em;
    height: 1.1em;
}

.c-svgicon--m {
    width: 1.4em;
    height: 1.4em;
}

.c-svgicon--l {
    width: 1.8em;
    height: 1.8em;
}

.c-svgicon--primary {
    color: var(--color-primary);
}

.c-svgicon--secondary {
    color: var(--color-secondary);
}

.c-svgicon--accent {
    color: var(--color-accent);
}

.c-svgicon--muted {
    color: var(--text-muted);
}

.c-svgicon--white {
    color: #fff;
}

.c-svgicon--with-text {
    margin-right: .4em;
}

/* =====  サイト共通CTA ===== */
.c-cta {
    background: #fff;
    margin: min(4vw, 44px) auto 0;

    img:hover {
        opacity: 0.6;
    }
}

.c-cta--footer {
    padding: 2vw 0
}

.c-cta--top,
.c-cta--btm {
    width: 100%;
    background-size: cover;
    text-align: center;
}

.c-cta--top {
    background: url(/images/cta/cta_frame_top.svg) top/cover no-repeat;
    padding: 2vw
}

.c-cta--top picture,
.c-cta--top img {
    max-width: inherit;
    width: 100%
}

.c-cta--btm {
    background: url(/images/cta/cta_frame_btm.svg) bottom/cover no-repeat;
    padding: 0 2vw 2vw
}

.c-cta--txt {
    position: relative;
    display: inline-block;
    color: #308d76;
    font-size: .9rem;
    font-weight: bold;
    margin-top: 2vw
}

.c-cta--txt:before,
.c-cta--txt:after {
    content: "";
    position: absolute;
    border-top: 1px solid #30baa0;
    width: 20px;
    height: 1px;
    top: 0;
    bottom: 0;
    margin: auto
}

.c-cta--txt:before {
    transform: rotate(55deg);
    left: -1.7rem
}

.c-cta--txt:after {
    transform: rotate(-55deg);
    right: -1.7rem
}

a.c-cta--btnCall {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    padding: .6rem 1rem .6rem .5rem;
    width: 90%;
    max-width: 600px;
    background: linear-gradient(180deg, #30BAA0 0%, #308D76 100%);
    color: #fff;
    font-weight: bold;
    text-decoration: none;
    border-radius: 5px;
    box-shadow: 0 3px 3px rgba(0, 0, 0, .15);
    line-height: 1;

    &:hover {
        background: var(--color-primary-deep);
    }
}

.c-cta--freeTxt {
    display: inline-block;
    font-size: .8rem;
    line-height: 1.2
}

.c-cta--telNum {
    display: block;
    font-size: 2rem;
    line-height: 1
}

a.c-cta--btnBdr {
    position: relative;
    display: block;
    width: 90%;
    max-width: 600px;
    padding: 2vw 8vw 2vw 2vw;
    margin: 2vw auto;
    background: #fff;
    border: 1px solid #30baa0;
    border-radius: 5px;
    font-weight: 700
}

a.c-cta--btnBdr span {
    background: #30baa0;
    color: #fff;
    padding: 1vw 2vw;
    border-radius: 5px;
    margin-right: 2vw;
    display: inline-block
}

a.c-cta--btnBdr.c-icon--common4:before {
    position: absolute;
    top: 50%;
    right: 2vw;
    color: #30baa0;
    transform: translateY(-50%)
}

.c-pc--dn {
    display: block;
}

/* 必要なら初期値 */
.c-sp--dn {
    display: none;
}

/* “SPで非表示”用の汎用クラス */
@media (min-width: 800px) {
    .c-cta {
        background: none;
        width: 600px;
        margin: auto;
    }

    /* PCで非表示にしたい要素 */
    .c-pc--dn {
        display: none !important;

    }

    .c-sp--dn {
        display: block !important;
    }

    /* PCで表示に切り替えたい要素（任意） */
    .c-cta--pc {
        display: block !important;
    }

    /* マイ介護ホーム変更時に削除？ */
    .c-header-logo {
        width: 220px;
    }
}

/* unique */
.c-cta2 {
    display: flex;
    align-items: center;
    justify-content: space-around;
    gap: 10px;
    width: 90%;
    max-width: 600px;
    margin: 0 auto;
    padding: calc(var(--container-pad) / 2);
    border-radius: var(--radius);
    color: var(--text-base);
    text-decoration: none;
    border: 1px solid var(--surface-line);
    box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
    background: #fff;
}

a.c-cta2 {
    color: #fff;
    text-decoration: none;
    min-width: 80%;
}

.c-cta2__badge {
    display: inline-grid;
    place-items: center;
    width: 50px;
    height: 33px;
    border-radius: 999px;
    background: var(--color-accent);
    color: #fff;
    font-weight: 700;
    font-size: var(--fz-sm);
}

.c-cta2__label {
    font-weight: 800;
    font-size: var(--fz-md);
}

.c-cta2__icon {
    width: 22px;
    height: 22px;
}

.c-cta2.c-cta2--primary {
    background: var(--color-primary);
    background: linear-gradient(180deg, #30BAA0 0%, #308D76 100%);
    color: #fff;
    border-color: color-mix(in srgb, var(--color-primary) 70%, #000 10%);

    &:hover {
        background: var(--color-primary-deep);
    }
}

.c-cta2.c-cta2--primary .c-cta2__badge {
    background: #fff;
    color: var(--color-accent);
}

.p-reasons__cta {
    min-width: 400px;
    width: 90%;
    margin: auto;
}

/* ---------- Fixed CTA (tel + web) ---------- */
.p-fixed-cta {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 999;
    display: none;
    /* PCでは非表示 */
    padding: 8px 0 2px;
    background: rgba(0, 0, 0, .5);
    /* #000 + opacity 0.5 */
    font-family: var(--body-font);

    a:any-link {
        text-decoration: none;
    }
}

/* スマホで表示 */
@media (max-width: 767px) {
    .p-fixed-cta {
        display: block;
    }
}

.p-fixed-cta__note {
    margin: 0 0 6px;
    text-align: center;
    color: #fff;
    font-size: 0.75rem;
    line-height: 1.4;
}

.p-fixed-cta__columns {
    display: flex;
    gap: 8px;
    max-width: 480px;
    margin: 0 auto;
}

/* 共通ボタン */
.p-fixed-cta__btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px;
    border-radius: 8px;
    text-decoration: none;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.2;
}

/* 電話相談ボタン（左） */
a.p-fixed-cta__btn--tel {
    background: #fff;
    color: var(--text-base);
    display: flex;
    flex-wrap: wrap;
    /* 折り返しを許可 */
    align-items: center;
    justify-content: center;
    /* 1行目のアイコン＋タイトルを中央寄せ */
}

.p-fixed-cta__btn--tel img {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
}

.p-fixed-cta__title {
    display: block;
}

.p-fixed-cta__sub {
    display: block;
    margin-top: 2px;
    font-size: 0.65rem;
    font-weight: 400;
    color: var(--text-muted);
    flex: 0 0 100%;
    /* ここで1行占有させる */
    margin-top: 2px;
    font-size: 0.7rem;
    color: var(--text-muted);
    text-align: center;
    /* お好みで left にしてもOK */
}

/* WEB相談ボタン（右） */
a.p-fixed-cta__btn--web {
    background: var(--color-primary-deep);
    color: #fff;
    justify-content: center;
    position: relative;
}

/* 「から」だけ少し軽めに */
.p-fixed-cta__in {
    font-size: 0.85em;
}

/* 小さめサイズ */
.c-svgicon--s {
    width: 0.9em;
    height: 0.9em;
    margin-left: 20px;
}

/* 色はテキストと揃える（symbol側が stroke="currentColor" 前提） */
.c-svgicon--secondary {
    color: #fff;
    /* WEBボタンなので白に */
}

/* hero container */
.p-hero {
    /* レイアウト */
    position: relative;
    min-height: clamp(27rem, 52vh, 46rem);
    padding-block: clamp(28px, 6vw, 48px);
    color: #fff;
    /* レイヤー（上: human / 下: bg） */
    background-repeat: no-repeat, no-repeat;
    background-position:
        right min(6vw, 56px) top,
        /* human */
        left;
    /* bg */
    background-size:
        min(90vw, 520px) auto,
        /* humanの見え方 */
        cover;
    /* bgは全面 */
    /* 1x/2x自動切替 */
    background-image:
        image-set(url("images/fv_bg_human.png") 1x,
            url("images/fv_bg_human@2x.png") 2x),
        image-set(url("images/fv_bg.png") 1x,
            url("images/fv_bg@2x.png") 2x);
}

.p-hero__bodyu-center {
    width: 90%;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
}

/* スマホ：humanを少し右に逃がして拡大
@media (max-width: 600px) {
  .p-hero {
    padding-block: 5rem 7rem;
    background-position:
      right -12vw bottom,
      center;
    background-size:
      min(95vw, 560px) auto,
      cover;
  }
} */
/* タブレット：存在感を保ちつつ余白を確保 */
@media (min-width: 601px) and (max-width: 1024px) {
    .p-hero {
        background-position:
            right min(4vw, 48px) bottom,
            center;
        background-size:
            min(55vw, 560px) auto,
            cover;
    }
}

/* image-set非対応ブラウザ用フォールバック */
@supports not (background-image: image-set(url("x") 1x)) {
    .p-hero {
        background-image:
            url("images/fv_bg_human.png"),
            url("images/fv_bg.png");
    }
}

/* 前景（テキスト/CTA）は通常どおり */
.p-hero__body {
    position: relative;
    z-index: 1;
}

.p-hero__kicker {
    font-size: var(--fz-sm);
    opacity: .95;
    -webkit-text-stroke: 1px #fff8;
    text-shadow: 0px 2px 4px var(--color-primary-dark);
}

.p-hero__title {
    line-height: var(--lh-tight);
    -webkit-text-stroke: 1px #fff8;
    text-shadow: 0px 2px 4px var(--color-primary-dark);
}

.p-hero__brand {
    font-weight: 700;
}

.p-hero__service {
    font-weight: 700;
    font-size: var(--fz-h1);
}

/* hero専用の白ボタン（他所の .c-cta2--primary には影響しない） */
.p-hero .c-cta2--primary {
    --cta-bg: #fff;
    --cta-border: color-mix(in srgb, var(--color-accent) 22%, #000 0%);
    background: var(--cta-bg);
    color: var(--color-secondary);
    border: 2px solid var(--cta-border);
    box-shadow: 0 6px 14px rgba(0, 0, 0, .14);
    transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease, color .12s ease, border-color .12s ease;
    width: 100%;
}

/* バッジはアクセント塗り、文字は白 */
.p-hero .c-cta2--primary .c-cta2__badge {
    background: var(--color-accent);
    color: #fff;
}

/* アイコンは currentColor を継ぐ（SVGのpathがstroke=currentColorならOK） */
.p-hero .c-cta2--primary .c-cta2__icon {
    inline-size: 1.25em;
    block-size: 1.25em;
    flex: none;
}

/* hover/active/focus */
.p-hero .c-cta2--primary:hover {
    background: var(--color-secondary--light);
    box-shadow: 0 8px 18px rgba(0, 0, 0, .22);
}

a.c-cta2--tel:hover {
    background: var(--color-secondary--light);
    box-shadow: 0 8px 18px rgba(0, 0, 0, .22);

}

.p-hero__cta {
    display: grid;
    gap: 12px;
    margin-block: clamp(12px, 3vw, 20px);
}

a.c-cta2--tel {
    color: var(--color-secondary);
    background: #fff;
    width: 100%;
}

.c-cta2__telmark {
    width: 30px;
    height: 30px;
    color: var(--color-primary);
}

.c-cta2__telnum {
    font-weight: 700;
    font-size: var(--fz-h2);
}

.c-cta2__telnote {
    font-size: var(--fz-xs);
    color: var(--text-muted);
}

/* mobile type scale */
@media (max-width:768.98px) {
    .p-hero__title {
        font-size: var(--fz-h2);
    }
}

/* section shell */
.p-worries {
    position: relative;
    overflow: clip;
}

/* foreground */
.p-worries__body {
    position: relative;
    z-index: 1;
    margin: auto;
}

.p-worries__head {
    padding: 1.5rem 1.5rem 1.5rem 6vw;

    background-image: image-set(url(images/worries_img1.png) 1x,
            url(images/worries_img1@2x.png) 2x);
    background-image: -webkit-image-set(url(images/worries_img1.png) 1x,
            url(images/worries_img1@2x.png) 2x);
    background-repeat: no-repeat;
    background-position: center right;
    background-size: auto 70%;
    /* 高さを要素に合わせて、横は比率維持 */
}

/* overline */
.p-worries__overline {
    display: inline-block;
    padding: .35em .8em;
    border-radius: 999px;
    background: var(--color-primary);
    color: #fff;
    font-weight: 700;
    font-size: var(--fz-md);
}

/* title */
.p-worries__title {
    margin-block: .4em .8em;
}

.p-worries__em {
    background: none;
    color: var(--color-primary);
    font-weight: 700;
}

/* base: columnsで擬似masonry（モバイル想定） */
.p-worries__list {
    width: min(94%, 720px);
    margin: 0 auto;
    padding: 0;
    list-style: none;
    display: block;
    /* columns用にblock */
    column-count: 2;
    /* モバイルでも2段 */
    column-gap: clamp(8px, 3.5vw, 14px);
}

/* 端末が極端に狭い時だけ1段に落とす（任意） */
@media (max-width: 359px) {
    .p-worries__list {
        column-count: 1;
    }
}

/* カード */
.p-worries__item {
    background: #fff;
    border-radius: var(--radius);
    padding: .9em 1em;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .06);
    color: var(--color-secondary);
    font-weight: 600;
    line-height: var(--lh-body);
    /* columns用の落としどころ */
    margin: 0 0 clamp(8px, 3.5vw, 14px);
    break-inside: avoid;
    /* 分割防止 */
}

.p-worries__item.p-worries__item--img {
    background: none;
    box-shadow: none;
}

/* 画像liも崩れないように */
.p-worries__item img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: inherit;
}

.c-breadcrumb {
    width: 100%;
    font-size: 12px;
    font-size: .75rem;
    line-height: 1.125;
    border-bottom: dotted 1px #938685;
    border-top: dotted 1px #938685;
    overflow-x: scroll
}

.c-breadcrumb ul {
    width: 100%;
    display: flex;
    word-break: keep-all;
    white-space: nowrap;
        margin: 0;
    padding: 0;
}

.c-breadcrumb li {
    list-style: none;
    padding: 10px 20px 10px 10px;
    display: block;
    position: relative;
}

.c-breadcrumb li:not(:last-child)::after {
    content: ">";
    display: block;
    position: absolute;
    width: 10px;
    height: 15px;
    top: 50%;
    transform: translateY(-50%);
    right: 0px
}

.c-breadcrumb a:link {
    color: #524331;
    text-decoration: underline
}

.c-breadcrumb a:visited {
    color: #938685
}

@media screen and (min-width: 960px) {
    .c-breadcrumb {
        width: 1010px;
        padding: 5px 0;
        margin: 0 auto 0;
        overflow-x: inherit
    }
}

/* タブレット以上は3段にして密度アップ（好みで） */
@media (min-width: 900px) {
    .p-worries__list {
        column-count: 3;
    }
}

/* PC */
@media (min-width: 800px) {
    a[href^="tel:"] {
        pointer-events: none;
        text-decoration: none;
        color: var(--text-base);
    }
a.c-cta--btnCall{
    color: #fff;
}
    .p-worries__head {
        background-size: auto 90%;
        width: 580px;
    }

    .p-worries__overline {
        padding-inline: 32px;
        z-index: -1;
        position: relative;
    }
}

/* shell */
.p-reasons {
    position: relative;
    overflow: clip;
    text-align: center;
}

/* header */
.p-reasons__header {
    width: 100%;
    min-height: clamp(15rem, 22vh, 26rem);
    position: relative;
    z-index: 1;
    padding: clamp(48px, 26vw, 58px) clamp(28px, 6vw, 48px) 0;
    color: #fff;
    background-repeat: no-repeat;
    background-position:
        top;
    /* 1x/2x自動切替 */
    background-image:
        image-set(url("images/reason_bg.png") 1x,
            url("images/reason_bg@2x.png") 2x);
    background-size: contain;
}

.p-reasons__kicker {
    position: relative;
    display: inline-block;
    color: #fff;
    font-size: .9rem;
    font-weight: bold;
    margin-top: 2vw
}

.p-reasons__kicker:before,
.p-reasons__kicker:after {
    content: "";
    position: absolute;
    border-top: 1px solid #fff;
    width: 20px;
    height: 1px;
    top: 0;
    bottom: 0;
    margin: auto
}

.p-reasons__kicker:before {
    transform: rotate(55deg);
    left: -1.7rem
}

.p-reasons__kicker:after {
    transform: rotate(-55deg);
    right: -1.7rem
}

.p-reasons__title {
    margin-block: .4em 1em;
}

/* list */
/* 必要な変数が既にある前提。角丸だけ少し強めに */
:root {
    --radius-reason: calc(var(--radius, 12px) + 8px);
}

/* リストの余白リセット */

.p-reasons__list {
    width: 96%;
    max-width: 500px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
    display: grid;
    gap: var(--gap-wide, 24px);
}

.p-reasons__item {
    display: grid;
    gap: clamp(10px, 1.6vw, 14px);
    max-width: 500px;
}

/* 見出し行：左はカラー札、右は枠付きタイトル */
.p-reasons__head {
    display: grid;
    grid-template-columns: 80px 1fr;
    align-items: stretch;
    column-gap: 0;
}

/* 札 */
.p-reasons__badge {
    display: grid;
    place-items: center;
    align-content: center;
    gap: 6px;
    padding: 22px;
    background: var(--color-primary);
    color: #fff;
    border-top-left-radius: var(--radius);
}

.p-reasons__badge-label {
    font: 700 var(--fz-sm, 14px)/1 var(--body-font, system-ui);
}

.p-reasons__badge-num {
    font: 800 clamp(18px, 1rem + 1.6vw, 28px)/1 var(--body-font, system-ui);
}

/* タイトル枠（右側だけ角丸＋枠線） */
.p-reasons__box {
    /* ここを“縦中央コンテナ”にする */
    display: grid;
    /* flex でもOK */
    align-items: center;
    /* 縦方向センター */
    text-align: left;
    border: 1.5px solid var(--color-primary);
    border-left: 0;
    /* 左側は札と接続するので消す */
    border-bottom-right-radius: var(--radius);
    background: var(--surface-card, #fff);
    padding: clamp(14px, 1.8vw, 18px) clamp(16px, 2.2vw, 24px);
}

.p-reasons__title {
    margin: 0;
    font-weight: 400;
    font-size: var(--fz-h3, 22px);
    line-height: var(--lh-tight, 1.25);
}

.p-reasons__title .u-em {
    font-weight: 700;
}

.p-reasons__title2 {
    font-weight: 700;

    em {
        color: var(--color-primary-dark);
        font-style: normal;
    }
}

/* 本文（見出しと分離） */
.p-reasons__body {
    padding-inline: 0;
    text-align: left;
}

.p-reasons__more a {
    color: var(--link-color, var(--color-accent));
    text-underline-offset: .2em;

    /* ここからレイアウト追加 */
    display: inline-flex;
    align-items: center;
    gap: .4em;
}

.p-reasons__more a:hover {
    color: var(--link-hover-color);
    text-decoration: none;
}

/* アイコンサイズだけ個別指定 */
.p-reasons__icon {
    width: 1.1em;
    height: auto;
    flex-shrink: 0;
}


/* compare */
/* =========================================
   Compare table base
   ========================================= */
.c-compare {
    /* レイアウト強制: 他のリセットに負けないよう table を固定 */
    background: #fff;
    display: table;
    width: 90%;
    margin: 0 auto;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    color: var(--text-base);
    font-family: var(--body-font);
    line-height: var(--lh-body);
    border: 1px solid var(--color-secondary);
    overflow: hidden;
    /* compare専用 余白トークン */
    --compare-pad-block: clamp(16px, 2.4vw, 24px);
    /* 基本の上下 */
    --compare-pad-block-tight: clamp(10px, 1.8vw, 18px);
    /* 上下きゅっと */
    --compare-pad-inline: var(--container-pad);
    /* 基本の左右 */
    --compare-pad-inline-tight: clamp(10px, 2.2vw, 20px);
    /* 左右きゅっと */
}

/* 万一の display:block リセット対策（スコープ内だけ上書き） */
.c-compare thead,
.c-compare tbody,
.c-compare tfoot {
    display: table-row-group;
}

.c-compare tr {
    display: table-row;
}

.c-compare td,
.c-compare th {
    display: table-cell;
    vertical-align: top;
}

/* 列幅（左右1:1） */
.c-compare colgroup col {
    width: 50%;
}

/* =========================================
   Rows & cells
   ========================================= */
/* ヘッダの説明行（最上段フル幅） */
#compare-desc {
    background: var(--color-secondary);
    color: #fff;
    font-size: var(--fz-md);
    font-weight: 700;
    line-height: var(--lh-tight);
    padding-block: var(--compare-pad-block);
    padding-inline: var(--compare-pad-inline-tight);
}

/* 列ヘッダ（マイ介護ホーム / 自分で探す など） */
.c-compare__head {
    background: #fff;
}

.c-compare__head .c-compare__th {
    font-size: var(--fz-md);
    font-weight: 700;
    text-align: center;
    padding-block: var(--compare-pad-block);
    padding-inline: var(--compare-pad-inline-tight);
    border-bottom: 1px solid var(--surface-line);
}

.c-compare__head .c-compare__th:first-child {
    border-right: 1px solid var(--color-secondary);
}

.c-compare__title {
    display: inline-block;
    line-height: var(--lh-tight);
}

/* セクション帯（情報収集 / 比較・検討 …） */
.c-compare__bar th {
    background: var(--surface-page);
    color: var(--color-secondary);
    text-align: center;
    font-size: var(--fz-md);
    font-weight: 700;
    letter-spacing: .03em;
    padding-block: var(--compare-pad-block-tight);
    padding-inline: var(--compare-pad-inline-tight);
    border-top: 1px solid var(--surface-line);
    border-bottom: 1px solid var(--surface-line);
}

/* セル（本文） */
.c-compare__cell {
    padding-block: var(--compare-pad-block);
    padding-inline: var(--compare-pad-inline-tight);
    border-right: 1px solid var(--surface-line);
    background: #fff;
    text-align: left;
}

.c-compare__cell:last-child {
    border-right: 0;
}

/* 強調（赤字・太字） */
.c-compare__em {
    font-style: normal;
    color: var(--color-accent);
    font-weight: 700;
}

/* =========================================
   Responsive (必要ならここで上書き)
   ========================================= */
@media (max-width: 720px) {
    .c-compare {
        /* SPはちょい詰める例。気に入らなければ丸ごと消してOK */
        --compare-pad-block: clamp(12px, 2vw, 18px);
        --compare-pad-block-tight: clamp(8px, 1.6vw, 14px);
    }

    /* デフォは table のまま。内容行だけ縦積みにする */
    .c-compare__group tr+tr .c-compare__cell {
        width: 100%;
        border-right: 0;
        border-top: 1px solid var(--surface-line);
        padding-block-start: var(--compare-pad-block);
        background: #fff;
    }

    .c-compare__group tr+tr .c-compare__cell:first-child {
        border-top: 0;
        border-right: 1px solid var(--color-secondary);
    }
}

/* layout: widen on PC */
@media (min-width: 768px) {
    .p-reasons__card-title {
        font-size: var(--fz-h2);
    }
}

/* layout: 2-up reasons on wide if needed */
@media (min-width: 1100px) {
    .p-reasons__card:nth-child(5) {
        grid-column: 1 / -1;
    }

    /* center last if uneven */
}

.c-banner {
    width: 94%;
    margin: 0 auto 0;
    max-width: 450px;
    padding: 0 0 calc(var(--gap) * 2);
}

.c-banner a {
    margin-top: min(3vw, 20px);
    display: inline-block;

    &:hover {
        opacity: .6;
    }
}

/* wrapper */
.p-free {
    position: relative;
    color: #fff;
    padding-block: clamp(32px, 8vw, 56px);
    /* 好きな色に変えたいとき用の変数 */
    --overlay-color: rgba(82, 67, 49, 0.6);
    /* 写真＋半透明カラーを重ねる */
    background:
        linear-gradient(var(--overlay-color), var(--overlay-color)),
        url("images/structure_bg.png") top/cover no-repeat;
    overflow: visible;
}

.p-free :where(strong) {
    font-weight: 700;
}

/* bubble */
.p-free__bubble {
    position: relative;
    z-index: 1;
    display: inline-block;
    max-width: min(92%, 620px);
    /* セクションの中での位置 */
    margin: 0 var(--container-pad) clamp(20px, 4vw, 28px);
    /* 上に 20px はみ出させる */
    transform: translateY(-40px);
    /* バブル内の文字を一回り大きく */
    padding: 1.1em 2.1em;
    font-size: clamp(1rem, 2.7vw, 1.4rem);
    line-height: 1.6;
    color: var(--color-secondary);
    font-weight: 700;
    text-align: center;
    /* 背景は ::before に任せる */
    background: none;
    border-radius: 0;
    box-shadow: none;
}

.p-free__bubble::before {
    content: "";
    position: absolute;
    /* テキストよりひとまわり大きく */
    inset: -18px -28px -30px;
    background: url(images/bubble.svg) center/contain no-repeat;
    z-index: -1;
    /* 影が欲しければここで */
    filter: drop-shadow(0 4px 16px rgba(0, 0, 0, .18));
}

/* header */
.p-free__header {
    position: relative;
    z-index: 1;
    margin-inline: var(--container-pad);
}

.p-free__kicker {
    display: inline-block;
    padding: .35em .8em;
    color: #fff;
    font-size: var(--fz-sm);
}

.p-free__title {
    font-size: var(--fz-h1);
    line-height: var(--lh-tight);
    text-shadow: 0 2px 10px rgba(0, 0, 0, .25);
}

/* body */
.p-free__body {
    position: relative;
    z-index: 1;
    margin: clamp(10px, 2.5vw, 16px) var(--container-pad) 0;
    padding: clamp(12px, 3vw, 20px);
    background: color-mix(in srgb, #000 0%, #000 0%);
    backdrop-filter: blur(30px);
}

/* base */
.p-contact {
    text-align: center;
    position: relative;
    isolation: isolate;
    color: #fff;
    padding: 90px 2vw clamp(32px, 8vw, 56px);
    background-color: var(--color-primary-light);
    background: url(images/contact_bg.png) center / cover no-repeat;
}

.p-contact::before {
    content: "";
    position: absolute;
    top: 30px;
    right: 50%;
    transform: translateX(50%);
    width: 330px;
    aspect-ratio: 390 / 54;
    /* 元画像の比率そのまま */
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;

    /* フォールバック */
    background-image: url(images/contact_icon.png);

    /* retina対応 */
    background-image: image-set(url(images/contact_icon.png) 1x,
            url(images/contact_icon@2x.png) 2x);
    background-image: -webkit-image-set(url(images/contact_icon.png) 1x,
            url(images/contact_icon@2x.png) 2x);
}

/* header */

.p-contact__title {
    font-size: var(--fz-h2);
    line-height: var(--lh-tight);
    color: var(--color-secondary);
    background: #fff;
    padding: 10px 20px;
    border-radius: 99px;
    display: inline-block;
}

.p-contact__lead {
    color: var(--color-secondary);
    font-weight: normal;
    padding: clamp(30px, 2vw, 60px) 0 var(--gap);
    background: url(images/contact_img.png) center bottom -20px / 100% no-repeat;
    max-width: 500px;
    margin: auto;

}

.p-contact__lead .u-em {
    color: var(--color-accent);
}

.p-contact .u-em {
    font-weight: 700;
}

/* cards */
.p-contact__cards {
    display: grid;
    gap: var(--gap);
    /* margin-top: clamp(12px, 3vw, 20px); */
    max-width: 500px;
    margin: 0 auto;
}

.c-card {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: 0 6px 20px color-mix(in srgb, #000 16%, transparent);
    padding: clamp(16px, 3vw, 20px);

}

.c-card__title {
    font-size: var(--fz-lg);
    font-weight: 800;
    color: var(--color-secondary);
    padding-block: 20px;
}

.c-card__time {
    margin-top: .75em;
    font-size: var(--fz-sm);
    color: var(--text-muted);
}

/* card */
.c-card {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: 0 6px 20px color-mix(in srgb, #000 16%, transparent);
    padding: clamp(16px, 3vw, 20px);
}

.c-person {
    display: flex;
    gap: 14px;
    align-items: center;
}

/* buttons */
.c-btn {
    --pad-y: .85em;
    --pad-x: 1em;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 90%;
    max-width: 600px;
    margin: 0 auto;
    gap: .6em;
    padding: var(--pad-y) var(--pad-x);
    border-radius: 12px;
    text-decoration: none;
    font-weight: 900;
    box-shadow: 0 4px 10px color-mix(in srgb, #000 12%, transparent);
}

/* variants */
a.c-btn--line {
    background: #00B900;
    color: #fff;
    border: none;
    font-size: var(--fz-lg);
    text-decoration: none;

    &:hover {
        background: #038c03;
    }
}

a.c-btn--line .c-btn__line-logo {
    width: 1.6em;
    height: 1.6em;
}

/* chips */
.c-badge {
    display: inline-grid;
    place-items: center;
    padding: .25em .6em;
    margin-right: .2em;
    border-radius: 999px;
    background: var(--color-accent);
    color: #fff;
    font-weight: 800;
    font-size: var(--fz-sm);
}

/* section header */
.p-staff__header {
    text-align: center;
    padding: clamp(40px, 4vw, 60px) 0 var(--container-pad);
}

/* ヘッダー内の画像は全部：1行ずつ＋中央寄せ */
.p-staff__header img {
    display: block;
    margin-inline: auto;
}

/* STAFFアイコン */
.c-person__avatar {
    width: 108px;
    /* 見た目のサイズはここで調整 */
    height: auto;
    /* 元の108×54の比率を維持 */
    margin-bottom: clamp(8px, 1.6vw, 16px);
}

/* ロゴ */
.c-person__logo {
    width: 196px;
    /* 見た目のサイズ */
    height: auto;
    margin-bottom: clamp(12px, 2vw, 20px);
}

/* タイトルとの距離 */
.p-staff__title {
    margin: clamp(16px, 2.4vw, 24px) 0 0;
    font-size: var(--fz-h2);
    /* 見出しなのでh2サイズにしとく案 */
    line-height: var(--lh-tight);
    font-weight: normal;
}

/* list grid */
.p-staff__list {
    display: grid;
    gap: var(--gap);
    margin: 0 auto;
    padding: 0;
    width: min(94%, 720px);
    margin-top: calc(var(--gap));
}

@media (min-width: 1032px) {
    .p-staff__list {
        grid-template-columns: repeat(2, 1fr);
    }
}


/* avatar */
.c-person__media {
    margin: 0;
    width: 100%;
    max-width: 120px;
    aspect-ratio: 1/1;
    border-radius: 999px;
    overflow: hidden;
    background: var(--surface-page);
}

.c-person__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* text block */
.c-person__body {
    min-width: 0;
}

.c-person__role {
    display: inline-block;
    margin-bottom: .35em;
    padding: .25em .6em;
    background: var(--color-secondary);
    color: #fff;
    font-size: var(--fz-sm);
}

.c-person__reading {
    font-size: var(--fz-xs);
    color: var(--text-muted);
}

.c-person__name {
    font-size: var(--fz-h3);
    line-height: var(--lh-tight);
    color: var(--color-secondary);
    margin: .1em 0 .35em;
}

.c-person__desc {
    color: var(--text-base);
    line-height: var(--lh-body);
}

/* small helpers */
ruby rt {
    font-size: .6em;
    color: var(--text-muted);
}

.p-flow {
    max-width: 500px;
    margin: auto;
}

.p-flow__header {
    text-align: center;
    padding: clamp(100px, 18vw, 120px) 0 var(--container-pad);
    background: url("images/flow_head.png") top / 100% no-repeat;
}

/* 見出しテキスト */
.p-flow__title {
    margin: 0;
    font-size: var(--fz-h2);
    line-height: var(--lh-tight);
}

.p-flow__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
}

/* ============ card ============ */
.p-flow__item {
    border: 2px solid var(--flow-border);
    padding: clamp(16px, 2.2vw, 24px);
    display: grid;
    grid-template-columns: 1fr min(42%, 320px);
    grid-template-areas:
        "head media"
        "body body"; /* ← body 行を全幅に */
    column-gap: clamp(16px, 2vw, 24px);
    row-gap: 10px;
    align-items: start;
    color: var(--flow-text);
    border-bottom: dashed 2px var(--color-primary);
}

.p-flow__head  { grid-area: head; }
.p-flow__media { grid-area: media; }
.p-flow__body  { grid-area: body; }

/* ============ areas ============ */
.p-flow__head {
    grid-area: head;
}

.p-flow__media {
    grid-area: media;
}

.p-flow__body {
    grid-area: body;
}

/* ============ head ============ */
.p-flow__head {
    column-gap: 10px;
}

.p-flow__step {
    font-weight: 800;
    font-size: clamp(18px, 2.2vw, 24px);
    letter-spacing: .02em;
    color: var(--flow-accent);
    line-height: 1;
    position: relative;
    color: var(--color-primary-dark);
}

.p-flow__step-num {
    display: inline-block;
    margin-left: .2em;
    /* 「STEP」と数字の間のスキマ */
    font-size: 1.5em;
    /* 数字だけ大きく */
    line-height: 0.9;
    /* 上下のバランス調整 */
}

.p-flow__subtitle {
    margin: 0;
    line-height: 1.35;
    font-weight: 700;
}

/* ============ media ============ */
.p-flow__media {
    justify-self: end;
    width: 100%;
    max-width: 360px;
    /* 画像の上限。必要に応じて調整 */
}

.p-flow__media img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16/10;
    /* 見た目安定。元のw/hがあるならそのままでもOK */
    object-fit: cover;
    border-radius: 10px;
}

/* ============ responsive ============ */
@media (max-width: 720px) {
    /* .p-flow__item {
        grid-template-columns: 1fr;
        grid-template-areas:
            "head"
            "media"
            "body";
    }
    .p-flow__media {
        justify-self: stretch;
        max-width: none;
    } */
}

/* =========================
   Footer base
   ========================= */
.c-pagetop {
    display: inline-block;
    margin: 6vw auto 0;
    padding: 2vw;
    border-radius: 10px;
    background-color: #fff;
}

.c-btmInfo {
    text-align: center;
}

.c-btmTxt {
    padding-block: 2rem;
}

footer ul {
    padding: 0;
}

footer a:any-link,
footer a:link {
    color: #fff;
    white-space: nowrap;
    text-decoration: none;

    &:hover {
        text-decoration: underline;
    }
}

footer b {
    display: block;
    margin: 20px 0 0;
    color: #30baa0
}

footer span {
    display: block
}

footer a+span {
    margin-top: 10px
}

.c-footerLink {
    line-height: 1.6em;
    overflow: hidden;
    margin: 40px 0 0;
    padding: 0 20px 20px;
    text-align: left;
    color: #fff;
    background: #524331
}

.c-footerLink ul li {
    display: inline-block;
    position: relative;
    margin: .6rem 0 0 0
}

.c-footerLink ul li:not(:last-child) a::after {
    content: "｜"
}

.c-footer__legal {
    display: block;
    text-align: center;
    padding: 1.5rem 0 0
}

.c-footer__legal a {
    white-space: normal
}

.c-footerCopy {
    font-size: 16px;
    font-size: clamp(16px, 2vw, 18px);
    line-height: 1.1875;
    padding: 2vw 0;
    font-style: normal;
    text-align: center;
}

.c-myNav {
    overflow: scroll-y;
    width: 100%;
    margin: 0 auto;
    text-align: center
}

.c-myNav__list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin: 1.3333333333vw auto 0
}

.c-myNav__list li {
    padding: 1.3333333333vw 1.6vw
}

.c-myNav__list li:not(:last-child) {
    border-right: solid 1px #938685
}

@media screen and (min-width: 768px) {
    .c-footerLink a:hover {
        color: #fff
    }
}
