/* web-design-control · mode: direction→build · ds: provisional（コンセプト作品 08 くらしの家 庭時計）
 * read: 介護施設のサイト / 親の入居や通いを考える50〜70代の家族・本人 / やわらかく落ち着いた / 行動: 見学の申し込み（電話が主）
 * core: 約束=庭の時計で、きょうも暮らす / 人格=おだやか・ていねい・ほどよくにぎやか / 印=庭時計（花びらの文字盤と小枝の針）、花びら形の写真枠 / 見せ場=庭時計（1日の暮らし）
 * refs: yamatoen.or.jp（功有会: 不定形の写真・縦書き・大きな電話）/ jiraku.or.jp（慈楽福祉会: 何をしたいかの入口・縦書きのコピー・藍の面に電話）
 * site: / · /kurashi/ · /service/ · /about/ · /contact/
 * dials: V4 M1 D3（年配の読み手: 本文 18px 以上・行送り 2・コントラスト高く・動きは最小）
 */
/* Klee One は見出し（24px 以上）にだけ使う。本文・小見出しは BIZ UDPGothic */

/* ============ トークン ============ */
:root {
  /* 色（WCAG 2.x の相対輝度で計算） */
  --bg:     #FFFAF5; /* 暖かい白。ink 12.9 / soft 6.5 */
  --white:  #FFFFFF;
  --peach:  #FBEDE6; /* 薄い桃の面。ink 11.6 / soft 5.9 */
  --skybg:  #E3F1F8; /* 空の面。ink 11.8 */
  --ink:    #3A2E2B; /* 焦げ茶の文字 */
  --soft:   #6A5853; /* 補助の文字。bg 6.5 */
  --rose:   #C24A5A; /* 撫子。ボタンと印。上の白い文字 4.75 / bg の上の撫子の文字 4.5 */
  --rose-d: #A83A4A; /* 撫子の濃い色（触れたとき）。白 6.1 */
  --rose-s: #E8A0A8; /* 淡い撫子（飾り） */
  --sky:    #5BA3C8; /* 空色（飾り） */
  --sky-d:  #2F6F92; /* 空色の文字。skybg 5.0 / bg 5.6 */
  --line:   #EAD9D0;
  --field:  #8C7A74; /* 入力欄の枠。white 4.3（枠は3:1以上） */
  --rule-dark: rgba(255, 250, 245, .2);
  --stone: #E6DACD; --stone-shade: rgba(58, 46, 43, .12); /* 飛び石 */
  --on-dark: #FFFAF5; --on-dark-dim: #E2D3CC; /* フッター（ink の上）12.9 / 9.6 */

  --display: "Klee One", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --jp: "BIZ UDPGothic", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;

  --shell: 74rem;
  --gutter: clamp(1.25rem, 5vw, 3.5rem);
  --sec-y: clamp(4.5rem, 3rem + 5vw, 8rem);
  --header-h: 5.5rem;
  --r-s: 12px; --r-m: 20px; --r-l: clamp(28px, 3.5vw, 48px);

  /* 動きは最小（出現だけ、ゆっくり） */
  --ease: cubic-bezier(.25, .8, .25, 1);
  --t-fast: .2s;
  --t-reveal: .9s;
}

/* ============ 基本 ============ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 1.5rem); }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--jp); font-size: 1.125rem; line-height: 2; letter-spacing: .04em;
  -webkit-font-smoothing: antialiased; overflow-wrap: anywhere; overflow-x: clip; word-break: auto-phrase; }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--ink); text-underline-offset: .3em; }
:focus-visible { outline: 3px solid var(--sky-d); outline-offset: 3px; }
.site-footer :focus-visible, .telband :focus-visible { outline-color: var(--white); }
h1, h2, h3, p, ul, ol, dl, dd, figure, table, fieldset { margin: 0; }
:where(ul[class], ol[class]) { list-style: none; padding: 0; }
p, li, dd, td { text-wrap: pretty; }
h1, h2 { text-wrap: balance; }
button, input, textarea { font: inherit; color: inherit; }
.shell { width: min(100% - 2 * var(--gutter), var(--shell)); margin-inline: auto; }
.skip { position: absolute; left: 1rem; top: -4rem; z-index: 100; background: var(--ink); color: var(--white); padding: .5rem 1rem; border-radius: 8px; }
.skip:focus { top: 1rem; }
.vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.note { font-size: 1rem; color: var(--soft); line-height: 1.9; margin-top: 1.25rem; }
.nw { white-space: nowrap; }

/* 花の印（時刻の札の前） */
.flower { display: inline-block; width: 1.1em; height: 1.1em; margin-right: .45em; vertical-align: -.18em; flex: none;
  background: radial-gradient(circle, var(--white) 0 18%, transparent 19%), conic-gradient(from 15deg, var(--rose-s) 0 15%, transparent 0 17%, var(--rose-s) 0 32%, transparent 0 34%, var(--rose-s) 0 49%, transparent 0 51%, var(--rose-s) 0 66%, transparent 0 68%, var(--rose-s) 0 83%, transparent 0 85%, var(--rose-s) 0 100%);
  border-radius: 50%; }

/* 小さな時計の印 */
.tick { position: relative; display: inline-block; width: 1.15em; height: 1.15em; margin-right: .5em; vertical-align: -.2em; flex: none; border-radius: 50%; border: 2px solid currentColor; }
.tick::before, .tick::after { content: ""; position: absolute; left: 50%; bottom: 50%; width: 2px; background: currentColor; transform-origin: 50% 100%; border-radius: 1px; }
.tick::before { height: 30%; transform: translateX(-50%) rotate(-60deg); }
.tick::after { height: 40%; transform: translateX(-50%); }

/* 花びら形の写真枠（4つの角の丸みを変える） */
.petal { overflow: hidden; background: var(--peach); }
.petal img { width: 100%; height: 100%; object-fit: cover; }
.petal--a { border-radius: 42% 12% 42% 12% / 34% 10% 34% 10%; }
.petal--b { border-radius: 12% 42% 12% 42% / 10% 34% 10% 34%; }
.petal--c { border-radius: 40% 40% 12% 40% / 34% 34% 10% 34%; }
.petal--d { border-radius: 40% 12% 40% 40% / 34% 10% 34% 34%; }

/* ボタン */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .7rem; min-height: 3.5rem; padding: .8rem 1.75rem; border-radius: 999px; border: 2px solid transparent;
  font-weight: 700; font-size: 1.0625rem; line-height: 1.4; text-decoration: none; cursor: pointer; transition: background var(--t-fast) var(--ease), color var(--t-fast); }
.btn--rose { background: var(--rose); color: var(--white); }
.btn--line { background: var(--white); color: var(--ink); border-color: var(--ink); }
.btn--white { background: var(--white); color: var(--rose); }
.btn--wide { width: 100%; }
.arw { width: 1.2em; height: .7em; flex: none; }
.textlink { display: inline-flex; align-items: center; gap: .6rem; margin-top: 2rem; font-weight: 700; color: var(--rose); padding: .4rem 0; }
.tel-ico { width: 1.6em; height: 1.6em; flex: none; }

/* ============ ヘッダー（電話番号を常に出す） ============ */
.site-header { position: sticky; top: 0; z-index: 50; background: var(--bg); border-bottom: 1px solid transparent; transition: border-color var(--t-fast); }
.site-header.is-scrolled { border-bottom-color: var(--line); }
.site-header__inner { display: flex; align-items: center; gap: clamp(1rem, 2.5vw, 2.5rem); height: var(--header-h); }
.logo { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; color: var(--ink); flex: none; }
.logo__mark { width: 46px; height: 46px; }
.logo__type { display: grid; line-height: 1.3; }
.logo__sub { font-size: .75rem; font-weight: 700; color: var(--soft); letter-spacing: .1em; }
.logo__name { font: 600 1.3125rem/1.3 var(--display); letter-spacing: .03em; white-space: nowrap; }
.logo--light { color: var(--on-dark); } .logo--light .logo__sub { color: var(--on-dark-dim); }
.gnav { margin-left: auto; }
.gnav__list { display: flex; gap: clamp(.75rem, 1.8vw, 1.75rem); }
.gnav__link { display: block; padding: .6rem .1rem; text-decoration: none; font-weight: 700; font-size: 1rem; white-space: nowrap; position: relative; }
.gnav__link::after { content: ""; position: absolute; left: 0; right: 0; bottom: .2rem; height: 3px; border-radius: 2px; background: var(--rose); transform: scaleX(0); transition: transform var(--t-fast) var(--ease); }
.gnav__link[aria-current="page"]::after { transform: none; }
.head-tel { display: inline-flex; align-items: center; gap: .6rem; padding: .45rem 1.1rem .45rem .9rem; border-radius: var(--r-m); background: var(--rose); color: var(--white); text-decoration: none; flex: none; }
.head-tel__body { display: grid; line-height: 1.25; }
.head-tel__label { font-size: .8125rem; font-weight: 700; }
.head-tel__num { font-size: 1.4375rem; font-weight: 700; letter-spacing: .04em; white-space: nowrap; }
.head-tel__time { font-size: .875rem; }
.head-tel__short { display: none; }
.menu-btn { display: none; }
@media (max-width: 1100px) {
  .head-tel__label, .head-tel__time { display: none; }
  .head-tel__num { font-size: 1.25rem; }
}
@media (max-width: 1100px) {
  .gnav { position: absolute; left: 0; right: 0; top: var(--header-h); background: var(--bg); border-bottom: 2px solid var(--line); padding: .5rem var(--gutter) 1.5rem; display: none; margin: 0; }
  .gnav.is-open { display: block; }
  .gnav__list { flex-direction: column; gap: 0; }
  .gnav__link { padding: 1rem 0; border-bottom: 1px solid var(--line); font-size: 1.125rem; }
  .gnav__link::after { display: none; }
  .head-tel { margin-left: auto; }
  .menu-btn { display: inline-grid; justify-items: center; gap: .15rem; min-width: 3.5rem; min-height: 3.5rem; padding: .4rem; border: 2px solid var(--ink); border-radius: var(--r-s); background: var(--white); cursor: pointer; flex: none; }
  .menu-btn__bars { width: 22px; height: 12px; position: relative; margin-top: .3rem; }
  .menu-btn__bars::before, .menu-btn__bars::after { content: ""; position: absolute; left: 0; right: 0; height: 2px; background: var(--ink); transition: transform var(--t-fast); }
  .menu-btn__bars::before { top: 0; } .menu-btn__bars::after { bottom: 0; }
  .menu-btn[aria-expanded="true"] .menu-btn__bars::before { transform: translateY(5px) rotate(45deg); }
  .menu-btn[aria-expanded="true"] .menu-btn__bars::after { transform: translateY(-5px) rotate(-45deg); }
  .menu-btn__label { font-size: .6875rem; font-weight: 700; line-height: 1.2; }
}
@media (max-width: 760px) {
  .head-tel { flex-direction: column; gap: 0; padding: .3rem; border-radius: var(--r-s); width: 3.5rem; height: 3.5rem; justify-content: center; }
  .head-tel__body { display: none; }
  .head-tel__short { display: block; font-size: .75rem; font-weight: 700; line-height: 1.2; }
  .head-tel .tel-ico { width: 1.4rem; height: 1.4rem; }
}
@media (max-width: 560px) {
  :root { --header-h: 4.75rem; }
  .site-header__inner { gap: .6rem; }
  .logo { gap: .45rem; } .logo__mark { width: 40px; height: 40px; }
  .menu-btn { min-width: 3.25rem; min-height: 3.25rem; }
  .logo__sub { display: none; }
  .logo__name { font-size: 1.0625rem; letter-spacing: .02em; }
}
@media (max-width: 380px) { :root { --gutter: 1rem; } .site-header__inner { gap: .5rem; } .logo__mark { width: 34px; height: 34px; } .logo__name { font-size: .875rem; } .menu-btn { min-width: 2.75rem; min-height: 2.75rem; } .menu-btn__label { display: none; } .menu-btn__bars { margin: 0; } .head-tel { width: 3rem; height: 3rem; } }

/* ============ FV（写真3枚を散らし、中央に縦書き） ============ */
.fv { padding-top: clamp(.5rem, 2vw, 1.5rem); }
.fv__shell { width: min(100% - 2 * var(--gutter), 84rem); margin-inline: auto; }
.fv__photos { display: grid; grid-template-columns: 1.2fr .5fr 1.1fr; grid-template-rows: 1fr 1fr; gap: clamp(.75rem, 1.6vw, 1.25rem); height: clamp(22rem, calc(100svh - var(--header-h) - 15rem), 34rem); }
.fv__a { grid-column: 1; grid-row: 1 / 3; }
.fv__b { grid-column: 3; grid-row: 1; width: 62%; justify-self: end; }
.fv__c { grid-column: 3; grid-row: 2; width: 100%; margin-left: -8%; }
.fv__title { grid-column: 2; grid-row: 1 / 3; writing-mode: vertical-rl; display: flex; align-items: center; justify-content: center; gap: 1rem; justify-self: center; align-self: center; }
.fv__title-main { font: 600 clamp(2rem, 1rem + 2.1vw, 3.125rem)/1.35 var(--display); letter-spacing: .1em; }
.fv__title-sub { font-size: 1rem; font-weight: 700; letter-spacing: .3em; color: var(--rose); white-space: nowrap; }
.fv__foot { display: grid; grid-template-columns: minmax(0, 1.3fr) auto minmax(0, .9fr); gap: 1.5rem clamp(1.5rem, 3vw, 3rem); align-items: center; padding-block: clamp(1.25rem, 2.5vw, 2rem) 0; }
.fv__lead { font-size: 1.125rem; line-height: 1.95; }
.fv__actions { display: grid; gap: .75rem; justify-items: start; }
.fv__tel { display: inline-flex; align-items: center; gap: .5rem; color: var(--rose); text-decoration: none; font-weight: 700; }
.fv__tel > span { display: grid; line-height: 1.25; }
.fv__tel-num { font-size: 1.75rem; letter-spacing: .04em; }
.fv__tel-time { font-size: .875rem; color: var(--soft); }
.nowcard { display: flex; align-items: center; gap: 1rem; padding: .8rem 1.25rem .8rem .8rem; border-radius: 999px 40px 40px 999px; background: var(--skybg); text-decoration: none; justify-self: end; }
.nowcard__face { width: 5.75rem; height: 5.75rem; flex: none; }
.nowcard__body { display: grid; line-height: 1.35; }
.nowcard__label { font-size: 1rem; font-weight: 700; color: var(--sky-d); }
.nowcard__time { font: 600 2rem/1.15 var(--display); letter-spacing: .02em; }
.nowcard__what { font-weight: 700; font-size: 1rem; }
@media (max-width: 1100px) {
  .fv__foot { grid-template-columns: minmax(0, 1fr) auto; }
  .nowcard { grid-column: 1 / -1; justify-self: start; }
}
@media (max-width: 760px) {
  .fv__photos { grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; height: auto; }
  .fv__a { grid-column: 1 / -1; grid-row: 1; aspect-ratio: 4 / 3.4; }
  .fv__b { grid-column: 1; grid-row: 2; width: 100%; aspect-ratio: 1; }
  .fv__c { grid-column: 2; grid-row: 2; margin: 0; aspect-ratio: 1; }
  .fv__photos { grid-template-rows: auto auto auto; }
  .fv__a { grid-row: 2; } .fv__b, .fv__c { grid-row: 3; }
  .fv__title { grid-column: 1 / -1; grid-row: 1; writing-mode: horizontal-tb; flex-direction: column-reverse; align-items: flex-start; gap: .1rem; justify-self: start; margin: .25rem 0 .25rem; }
  .fv__title-main { font-size: clamp(2rem, 9vw, 2.75rem); letter-spacing: .08em; }
  .fv__title-sub { font-size: .875rem; letter-spacing: .2em; }
  .fv__foot { grid-template-columns: 1fr; }
  .fv__actions { justify-items: stretch; }
}

/* ============ 節 ============ */
.sec { padding-block: var(--sec-y); }
.sec--tight { padding-block: clamp(2.5rem, 4vw, 3.5rem) var(--sec-y); }
.sec--peach { background: var(--peach); }
.sec--sky { background: var(--skybg); }
.sec-head { display: grid; align-content: start; gap: .6rem; margin-bottom: clamp(2rem, 3.5vw, 3rem); max-width: 44rem; }
.sec-head--center { margin-inline: auto; text-align: center; justify-items: center; }
.sec-head__time { display: inline-flex; align-items: center; white-space: nowrap; font-weight: 700; font-size: 1rem; color: var(--rose); letter-spacing: .1em; }
.h2 { font: 600 clamp(1.75rem, 1.25rem + 1.7vw, 2.625rem)/1.5 var(--display); letter-spacing: .03em; }
.lead { font-size: 1.125rem; line-height: 2; }

/* ============ 3つの入口 ============ */
.doors__list { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); grid-template-rows: auto auto; gap: clamp(1rem, 2.5vw, 2rem); }
.door { background: var(--white); border-radius: var(--r-l) 12px var(--r-l) 12px; }
.door--0 { grid-row: 1 / 3; }
.door__link { padding: clamp(1rem, 2vw, 1.5rem) clamp(1rem, 2vw, 1.5rem) clamp(1.25rem, 2.5vw, 1.75rem); }
.door--1 .door__link, .door--2 .door__link { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); column-gap: 1.25rem; align-content: start; }
.door--1 .door__photo, .door--2 .door__photo { grid-row: 1 / 6; align-self: start; }
.door--1 .door__kind, .door--2 .door__kind { margin-top: 0; }
.door__link { display: grid; text-decoration: none; height: 100%; padding-bottom: .5rem; }
.door__photo { aspect-ratio: 4 / 3; }
.door__kind { margin-top: 1.25rem; font-weight: 700; color: var(--rose); font-size: 1rem; }
.door__title { font: 600 1.625rem/1.5 var(--display); margin: .2rem 0 .5rem; }
.door__text { line-height: 1.9; }
.door__go { display: inline-flex; align-items: center; justify-self: start; gap: .6rem; min-height: 3rem; margin-top: 1rem; padding: .4rem 1.25rem; border: 2px solid var(--rose); border-radius: 999px; font-weight: 700; color: var(--rose); }
@media (max-width: 860px) { .doors__list { grid-template-columns: 1fr; } .door--0 { grid-row: auto; } }
@media (max-width: 560px) { .door--1 .door__link, .door--2 .door__link { grid-template-columns: 1fr; } .door--1 .door__photo, .door--2 .door__photo { grid-row: auto; } .door--1 .door__kind, .door--2 .door__kind { margin-top: 1rem; } }

/* ============ 庭時計（見せ場） ============ */
.clocksec__panel { background: var(--skybg); border-radius: var(--r-l); padding: clamp(2rem, 5vw, 4.5rem) clamp(1.25rem, 5vw, 4.5rem); }
.face__petals ellipse { fill: var(--rose-s); opacity: .6; }
.face__petals ellipse:nth-child(3n+1) { fill: var(--rose); opacity: .45; }
.face__dial { fill: var(--white); stroke: var(--ink); stroke-width: 1.4; }
.face__nums text { font: 700 15px var(--jp); fill: var(--ink); text-anchor: middle; }
.face__h, .face__m { transform-origin: 100px 100px; transform: rotate(var(--deg)); transition: transform .8s var(--ease); }
.face__h path { stroke: var(--ink); stroke-width: 6; stroke-linecap: round; }
.face__m path { stroke: var(--ink); stroke-width: 3.5; stroke-linecap: round; fill: none; }
.face__m .face__leaf { fill: var(--sky); stroke: none; }
.face__pin { fill: var(--rose); }
.clock { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.clock__left { display: grid; justify-items: center; gap: 1.25rem; position: sticky; top: calc(var(--header-h) + 2rem); }
.dial { width: 100%; max-width: 24rem; }
.clock__now { display: grid; justify-items: center; text-align: center; line-height: 1.5; }
.clock__now-label { font-size: 1rem; font-weight: 700; color: var(--sky-d); }
.clock__now-sel { font: 600 1.75rem/1.4 var(--display); color: var(--rose); white-space: nowrap; }
.clock__now-small { margin-top: .4rem; font-size: 1rem; color: var(--soft); }
.clock__now-time { font: 600 2.25rem/1.2 var(--display); }
.clock__now-near { margin-top: .4rem; font-size: 1rem; }
.clock__now-near strong { font-size: 1.125rem; color: var(--rose); }
.slots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; margin-bottom: 1.75rem; }
.slot { display: grid; justify-items: start; gap: .1rem; width: 100%; min-height: 4.25rem; padding: .55rem 1rem; border: 2px solid var(--ink); border-radius: var(--r-m); background: var(--white); text-align: left; cursor: pointer; line-height: 1.3; transition: background var(--t-fast), color var(--t-fast); }
.slot__t { font: 600 1.375rem/1.2 var(--display); }
.slot__n { font-size: 1rem; font-weight: 700; }
.slot[aria-pressed="true"] { background: var(--rose); color: var(--white); border-color: var(--rose); }
.clock__panel[hidden] { display: none; }
.clock__photo { aspect-ratio: 3 / 2; margin-bottom: 1.25rem; }
.clock__time { font: 600 1.25rem/1.3 var(--display); color: var(--rose); }
.clock__name { font: 600 clamp(1.75rem, 1.3rem + 1.2vw, 2.25rem)/1.4 var(--display); margin-bottom: .5rem; }
.clock__text { line-height: 2; }
.clock__staff { margin-top: 1rem; padding: .8rem 1.1rem; border-radius: var(--r-s); background: var(--white); line-height: 1.8; }
.clock__staff-label { display: inline-block; margin-right: .6rem; padding: 0 .6rem; border-radius: 999px; background: var(--sky-d); color: var(--white); font-size: .9375rem; font-weight: 700; }
@media (max-width: 900px) { .clock { grid-template-columns: 1fr; } .clock__left { position: static; grid-template-columns: minmax(0, 12rem) 1fr; align-items: center; justify-items: start; } .clock__now { justify-items: start; text-align: left; } }
@media (max-width: 480px) { .slots { grid-template-columns: repeat(2, minmax(0, 1fr)); } .clock__left { grid-template-columns: 8.5rem 1fr; gap: .75rem; } .clock__now-sel { font-size: 1.375rem; white-space: normal; } }

/* ============ 季節 ============ */
.seasons__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 2rem); }
.season:nth-child(even) { margin-top: clamp(1.5rem, 4vw, 3.5rem); }
.season__photo { aspect-ratio: 4 / 5; }
.season__name { display: flex; align-items: baseline; gap: .6rem; margin-top: 1rem; }
.season__kanji { font: 600 2.25rem/1.2 var(--display); color: var(--rose); }
.season__month { font-weight: 700; color: var(--soft); }
.season__text { line-height: 1.85; }
@media (max-width: 860px) { .seasons__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 420px) { .seasons__list { grid-template-columns: 1fr; } .season:nth-child(even) { margin-top: 0; } .season__photo { aspect-ratio: 3 / 2; } }

/* ============ 働く人 ============ */
.people__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 2.5rem); }
.person__photo { aspect-ratio: 4 / 5; }
.person__photo--work { aspect-ratio: 3 / 2; }
.person__role { margin-top: 1.1rem; font-weight: 700; color: var(--rose); font-size: 1rem; }
.person__name { font: 600 1.625rem/1.4 var(--display); display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .8rem; margin: .1rem 0 .6rem; }
.person__years { font: 700 1rem/1.4 var(--jp); color: var(--soft); }
.person__quote { line-height: 1.95; }
@media (max-width: 860px) { .people__list { grid-template-columns: 1fr; } .person { display: grid; grid-template-columns: 38% 1fr; column-gap: 1.25rem; } .person__photo { grid-row: 1 / 5; align-self: start; } .person__role { margin-top: 0; } }
@media (max-width: 480px) { .person { grid-template-columns: 1fr; } .person__photo { grid-row: auto; aspect-ratio: 1; } .person__photo--work { aspect-ratio: 3 / 2; } .person__role { margin-top: 1rem; } }

/* ============ 料金の目安 ============ */
.fee__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.fee__card { background: var(--white); border-radius: 12px var(--r-l) 12px var(--r-l); padding: clamp(1.5rem, 3vw, 2.5rem); box-shadow: 0 0 0 1px var(--line); }
.fee__label { font-weight: 700; color: var(--soft); }
.fee__big { font-weight: 700; font-size: 1.25rem; margin: .3rem 0 1rem; }
.fee__num { font: 600 4rem/1 var(--display); color: var(--rose); margin-right: .1em; letter-spacing: .02em; }
.fee__per { font-size: 1rem; color: var(--soft); margin-left: .3em; }
.fee__list li { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 0; border-top: 1px dashed var(--line); }
.fee__list li span:last-child { font-weight: 700; white-space: nowrap; }
.fee__note { margin-top: .75rem; font-size: 1rem; color: var(--soft); }
@media (max-width: 860px) { .fee__grid { grid-template-columns: 1fr; } }

/* ============ 見学の流れ ============ */
.flow__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 2rem); counter-reset: f; }
.flow__step { background: var(--white); border-radius: var(--r-m); padding: 1.75rem 1.5rem 1.6rem; position: relative; }
.flow__no { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: var(--sky-d); color: var(--white); font: 600 1.375rem/1 var(--display); margin-bottom: .75rem; }
.flow__title { font-size: 1.25rem; font-weight: 700; margin-bottom: .3rem; }
@media (max-width: 860px) { .flow__list { grid-template-columns: 1fr; } }

/* 飛び石でつなぐ流れ */
.stones { position: relative; }
.flow__list.stones::before { content: ""; position: absolute; left: 1.875rem; right: calc((100% - 2 * clamp(1rem, 2.5vw, 2rem)) / 3 - 1.875rem); top: 1.4rem; height: 4px; background: repeating-linear-gradient(90deg, var(--rose-s) 0 10px, transparent 10px 18px); }
.stones .flow__step { background: none; padding: 0; }
.stones .flow__no, .stones .step__no { width: 3.75rem; height: 2.85rem; border-radius: 50% 46% 52% 48% / 56% 50% 50% 44%; background: var(--stone); color: var(--ink); position: relative; z-index: 1; box-shadow: inset -3px -4px 0 var(--stone-shade); }
.stones .flow__title { margin-top: .4rem; }
.stones--v { counter-reset: none; }
.stones--v::before { content: ""; position: absolute; left: calc(1.5rem + 1.875rem - 2px); top: 2rem; bottom: 2rem; width: 4px; background: repeating-linear-gradient(var(--rose-s) 0 10px, transparent 10px 18px); }
.stones--v .step { position: relative; grid-template-columns: 3.75rem 1fr; }
@media (max-width: 860px) { .flow__list.stones::before { left: 1.75rem; right: auto; top: 1rem; bottom: 1rem; width: 4px; height: auto; background: repeating-linear-gradient(var(--rose-s) 0 10px, transparent 10px 18px); } .stones .flow__step { display: grid; grid-template-columns: 3.75rem 1fr; column-gap: 1.25rem; } .stones .flow__no { grid-row: 1 / 3; margin: 0; } .stones .flow__title { margin-top: 0; } }

/* ============ お知らせ ============ */
.news__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.2fr); gap: 2rem; }
.news__list li { display: grid; grid-template-columns: 11rem 1fr; gap: .25rem 1.5rem; padding: 1.25rem 0; border-bottom: 1px solid var(--line); }
.news__list li:first-child { border-top: 1px solid var(--line); }
.news__list time { color: var(--soft); font-size: 1rem; }
@media (max-width: 860px) { .news__grid { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .news__list li { grid-template-columns: 1fr; } }

/* ============ 電話の帯（下層の終わりにも） ============ */
.telband { background: var(--rose); color: var(--white); padding-block: clamp(3rem, 6vw, 5rem); }
.telband__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem clamp(2rem, 5vw, 4rem); align-items: center; }
.telband__title { font: 600 clamp(1.75rem, 1.25rem + 1.6vw, 2.5rem)/1.5 var(--display); margin-bottom: .5rem; }
.telband__actions { display: grid; gap: 1rem; justify-items: start; }
.telband__tel { display: inline-flex; align-items: center; gap: .7rem; color: var(--white); text-decoration: none; }
.telband__tel > span { display: grid; line-height: 1.3; }
.telband__num { font-size: clamp(2rem, 1.4rem + 2vw, 2.875rem); font-weight: 700; letter-spacing: .04em; white-space: nowrap; }
.telband__time { font-size: .9375rem; }
.telband .tel-ico { width: 2.25rem; height: 2.25rem; }
@media (max-width: 860px) { .telband__inner { grid-template-columns: minmax(0, 1fr); } .telband__num { font-size: clamp(1.625rem, 7.5vw, 2.5rem); } }

/* ============ フッター ============ */
.site-footer { background: var(--ink); color: var(--on-dark); padding-block: clamp(3rem, 5vw, 4.5rem) 2rem; }
.site-footer a { color: var(--on-dark); }
.footer__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 2rem; }
.footer__addr { margin-top: 1.25rem; font-size: 1rem; line-height: 1.9; color: var(--on-dark-dim); }
.footer__list { display: grid; grid-template-columns: 1fr 1fr; gap: .25rem 1.5rem; align-content: start; font-weight: 700; }
.footer__list a { display: inline-block; padding: .45rem 0; text-decoration: none; }
.footer__legal { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--rule-dark); font-size: .875rem; line-height: 1.8; color: var(--on-dark-dim); }
@media (max-width: 760px) { .footer__grid { grid-template-columns: 1fr; } }

/* ============ 下層の頭（骨組みは共通、見せ方はページの中身で変える） ============ */
.crumbs { display: flex; flex-wrap: wrap; gap: .5rem; font-size: .9375rem; margin-bottom: 1.25rem; }
.crumbs li + li::before { content: "›"; margin-right: .5rem; color: var(--soft); }
.phead { padding-block: clamp(2rem, 4vw, 3.5rem) clamp(2.5rem, 5vw, 4.5rem); }
.phead__time { display: inline-flex; align-items: center; font-weight: 700; color: var(--rose); margin-bottom: .5rem; }
.phead__title { font: 600 clamp(2.25rem, 1.5rem + 2.6vw, 3.5rem)/1.4 var(--display); letter-spacing: .04em; }
.phead__lead { margin-top: 1rem; max-width: 40rem; line-height: 2; }
/* 暮らし: 桃の面に、時刻の札を並べる */
.phead--kurashi { background: var(--peach); border-radius: 0 0 var(--r-l) var(--r-l); }
.phead__chips { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.75rem; }
.phead__chips a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: .3rem 1rem; border-radius: 999px; background: var(--white); text-decoration: none; font-weight: 700; font-size: 1rem; }
/* サービス: 横長の庭の写真に札 */
.phead--service { padding: 0; }
.phead__wide img { width: 100%; height: clamp(16rem, 34vw, 28rem); object-fit: cover; object-position: 50% 60%; }
.phead__over { position: relative; margin-top: clamp(-8rem, -9vw, -4rem); }
.phead__card { background: var(--bg); border-radius: 12px var(--r-l) 0 0; padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1.25rem, 3vw, 2.5rem) 0; max-width: 44rem; }
/* 私たちについて: 施設長の写真 */
.phead__split { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.phead__group { aspect-ratio: 3 / 2; }
@media (max-width: 860px) { .phead__split { grid-template-columns: 1fr; } }
/* 見学・相談: 文字だけの頭と、大きな電話番号 */
.phead--contact { background: var(--skybg); border-radius: 0 0 var(--r-l) var(--r-l); }
.phead__contact { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); grid-template-areas: "crumbs crumbs" "time photo" "title photo" "lead photo" "tel photo"; column-gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
.phead__contact .crumbs { grid-area: crumbs; } .phead__contact .phead__time { grid-area: time; } .phead__contact .phead__title { grid-area: title; }
.phead__contact .phead__lead { grid-area: lead; } .phead__contact .bigtel { grid-area: tel; justify-self: start; }
.phead__greet { grid-area: photo; align-self: center; aspect-ratio: 4 / 3; }
@media (max-width: 860px) { .phead__contact { grid-template-columns: minmax(0, 1fr); grid-template-areas: "crumbs" "time" "title" "lead" "tel" "photo"; } .phead__greet { margin-top: 2rem; } }
.bigtel { display: inline-flex; align-items: center; gap: 1rem; margin-top: 2rem; padding: 1.25rem 2rem 1.25rem 1.5rem; border-radius: var(--r-m); background: var(--rose); color: var(--white); text-decoration: none; max-width: 100%; }
.bigtel > span { display: grid; line-height: 1.35; min-width: 0; }
.bigtel .tel-ico { width: 2.75rem; height: 2.75rem; }
.bigtel__label { font-weight: 700; font-size: 1rem; }
.bigtel__num { font-size: clamp(1.75rem, 1rem + 2.2vw, 2.75rem); font-weight: 700; letter-spacing: .04em; white-space: nowrap; }
.bigtel__time { font-size: .9375rem; }
@media (max-width: 480px) { .bigtel { display: flex; padding: 1rem; gap: .5rem; } .bigtel .tel-ico { width: 2rem; height: 2rem; } .bigtel__num { font-size: clamp(1.5rem, 7.4vw, 2.25rem); } }

/* ============ 暮らしと1日 ============ */
.tl { display: grid; gap: clamp(2.5rem, 5vw, 4rem); position: relative; }
.tl::before { content: ""; position: absolute; left: 3.25rem; top: 1rem; bottom: 1rem; width: 2px; background: repeating-linear-gradient(var(--rose-s) 0 6px, transparent 6px 12px); }
.tl__item { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr) minmax(0, 1fr); gap: 1rem clamp(1.5rem, 3.5vw, 3rem); align-items: center; scroll-margin-top: calc(var(--header-h) + 2rem); }
.tl__time { align-self: start; position: relative; z-index: 1; display: grid; place-items: center; width: 6.5rem; height: 6.5rem; border-radius: 50%; background: var(--white); box-shadow: 0 0 0 2px var(--rose-s); font: 600 1.5rem/1 var(--display); color: var(--rose); }
.tl__photo { aspect-ratio: 3 / 2; }
.tl__name { font: 600 1.75rem/1.4 var(--display); margin-bottom: .4rem; }
.tl__staff { margin-top: .8rem; line-height: 1.8; }
.tl__item:nth-child(even) .tl__photo { order: 3; }
@media (max-width: 860px) { .tl::before { left: 2.25rem; } .tl__item { grid-template-columns: 4.5rem minmax(0, 1fr); } .tl__time { width: 4.5rem; height: 4.5rem; font-size: 1.125rem; } .tl__photo, .tl__item:nth-child(even) .tl__photo { order: 0; grid-column: 2; } .tl__body { grid-column: 2; } }
.meal { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.meal__photo { aspect-ratio: 3 / 2; }
.menu { width: 100%; border-collapse: collapse; background: var(--white); border-radius: var(--r-m); overflow: hidden; }
.menu caption { text-align: left; font-weight: 700; padding-bottom: .6rem; }
.menu th, .menu td { padding: .9rem 1.2rem; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; line-height: 1.8; }
.menu tr:last-child > * { border-bottom: 0; }
.menu th { width: 5.5rem; color: var(--rose); white-space: nowrap; }
@media (max-width: 860px) { .meal { grid-template-columns: 1fr; } }
.cal { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); }
.cal__list { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .75rem; }
.cal__m { display: grid; gap: .2rem; padding: 1rem; border-radius: var(--r-s); background: var(--white); box-shadow: 0 0 0 1px var(--line); }
.cal__m--photo { background: var(--peach); box-shadow: none; }
.cal__month { font: 600 1.375rem/1.2 var(--display); color: var(--rose); }
.cal__what { font-size: 1rem; line-height: 1.6; }
.cal__photos { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1rem, 2.5vw, 2rem); }
.cal__photos .petal { aspect-ratio: 3 / 2; }
.cal__photos p { margin-top: .5rem; font-weight: 700; font-size: 1rem; }
@media (max-width: 960px) { .cal__list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 520px) { .cal__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cal__photos { grid-template-columns: 1fr; } }
.places { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.25rem, 3vw, 2.5rem); }
.places .petal { aspect-ratio: 4 / 3; margin-bottom: 1rem; }
.places h3 { font: 600 1.5rem/1.4 var(--display); margin-bottom: .3rem; }
@media (max-width: 860px) { .places { grid-template-columns: 1fr; } }

/* ============ サービスと料金 ============ */
.kinds { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.25rem, 3vw, 2.5rem); }
.kind { scroll-margin-top: calc(var(--header-h) + 2rem); }
.kind .petal { aspect-ratio: 4 / 3; margin-bottom: 1rem; }
.kind__tag { display: inline-block; padding: .1rem .9rem; border-radius: 999px; background: var(--rose); color: var(--white); font-weight: 700; font-size: 1rem; }
.kind__title { font: 600 1.625rem/1.4 var(--display); margin: .5rem 0 .4rem; }
.kind__dl { margin-top: 1rem; border-top: 1px solid var(--line); }
.kind__dl div { display: flex; gap: 1rem; padding: .6rem 0; border-bottom: 1px solid var(--line); }
.kind__dl dt { width: 3.5rem; flex: none; color: var(--soft); font-weight: 700; }
@media (max-width: 860px) { .kinds { grid-template-columns: 1fr; } }
.table-wrap { overflow-x: auto; border-radius: var(--r-m); background: var(--white); }
.fee-table { width: 100%; border-collapse: collapse; min-width: 30rem; }
.fee-table th, .fee-table td { padding: 1.1rem 1.4rem; text-align: left; border-bottom: 1px solid var(--line); }
.fee-table thead th { background: var(--ink); color: var(--white); font-size: 1rem; }
.fee-table tbody tr:last-child > * { border-bottom: 0; }
.fee-table td { font-size: 1.25rem; font-weight: 700; white-space: nowrap; }
@media (max-width: 600px) {
  .fee-table { min-width: 0; }
  .fee-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .fee-table tr { display: grid; grid-template-columns: 1fr 1fr; gap: .2rem 1rem; padding: 1rem 1.2rem; border-bottom: 1px solid var(--line); }
  .fee-table tbody tr:last-child { border-bottom: 0; }
  .fee-table th { grid-column: 1 / -1; padding: 0; border: 0; font-size: 1.0625rem; }
  .fee-table td { padding: 0; border: 0; font-size: 1.125rem; }
  .fee-table td::before { display: block; font-size: .875rem; font-weight: 700; color: var(--soft); }
  .fee-table td:nth-of-type(1)::before { content: "住まい（月額）"; }
  .fee-table td:nth-of-type(2)::before { content: "通い（1日）"; }
}
.incl { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-top: 2rem; }
.incl > div { background: var(--white); border-radius: var(--r-m); padding: 1.5rem; }
.incl__title { font-size: 1.125rem; font-weight: 700; margin-bottom: .5rem; }
.incl ul { padding-left: 1.2em; }
@media (max-width: 760px) { .incl { grid-template-columns: 1fr; } }
.med { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.med__list { display: grid; gap: 1rem; }
.med__list li { padding: 1.1rem 1.3rem; border-radius: var(--r-m); background: var(--peach); line-height: 1.9; }
.med__list strong { display: block; color: var(--rose); }
.med__photo { aspect-ratio: 3 / 2; }
@media (max-width: 860px) { .med { grid-template-columns: 1fr; } }
.steps { display: grid; gap: 1rem; max-width: 46rem; margin-inline: auto; }
.step { display: grid; grid-template-columns: 3.5rem 1fr; gap: 1.25rem; align-items: start; background: var(--white); border-radius: var(--r-m); padding: 1.4rem 1.5rem; }
.step__no { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 50%; background: var(--sky-d); color: var(--white); font: 600 1.5rem/1 var(--display); }
.step__title { font-size: 1.25rem; font-weight: 700; }

/* ============ 私たちについて ============ */
.promises { display: grid; gap: clamp(2.5rem, 5vw, 4rem); }
.promise { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.promise:nth-child(even) .promise__photo { order: 2; }
.promise__photo { aspect-ratio: 3 / 2; }
.promise__no { display: grid; place-items: center; width: 4rem; height: 4rem; margin: 0 0 1rem; border-radius: 50%; background: var(--peach); color: var(--rose); font: 600 1.75rem/1 var(--display); }
.promise__title { font: 600 1.5rem/1.5 var(--display); margin-bottom: .6rem; }

@media (max-width: 860px) { .promise { grid-template-columns: 1fr; } .promise:nth-child(even) .promise__photo { order: 0; } }
.msg { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 5vw, 4.5rem); }
.msg__body { display: grid; gap: 1.25rem; font-size: 1.1875rem; line-height: 2.1; }
.msg__sign { text-align: right; font: 600 1.25rem/1.6 var(--display); }
.msg__photo { aspect-ratio: 4 / 4.4; max-width: 22rem; }
@media (max-width: 860px) { .msg { grid-template-columns: 1fr; } }
.house__photos { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1rem, 2.5vw, 2rem); }
.house__photos .petal { aspect-ratio: 3 / 2; }
.house__text { margin-top: 1.5rem; max-width: 46rem; }
@media (max-width: 760px) { .house__photos { grid-template-columns: 1fr; } }
.info { border-top: 1px solid var(--line); }
.info div { display: grid; grid-template-columns: 10rem 1fr; gap: .25rem 1.5rem; padding: 1.1rem 0; border-bottom: 1px solid var(--line); }
.info dt { font-weight: 700; color: var(--soft); }
@media (max-width: 600px) { .info div { grid-template-columns: 1fr; } }

/* ============ 見学・相談 ============ */
.formwrap { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.formwrap__photo { aspect-ratio: 4 / 3; }
.form { display: grid; gap: 1.5rem; background: var(--white); border-radius: var(--r-l); padding: clamp(1.5rem, 3.5vw, 2.75rem); box-shadow: 0 0 0 1px var(--line); }
.field { display: grid; gap: .5rem; border: 0; padding: 0; min-width: 0; }
.field label, .field legend { font-weight: 700; padding: 0; }
.req { margin-left: .6rem; padding: 0 .5rem; border-radius: 4px; background: var(--rose); color: var(--white); font-size: .8125rem; vertical-align: .1em; }
.field input[type="text"], .field input[type="tel"], .field input[type="date"], .field textarea { width: 100%; min-height: 3.5rem; padding: .8rem 1rem; border: 2px solid var(--field); border-radius: var(--r-s); background: var(--white); font-size: 1.125rem; }
.check { display: inline-flex; align-items: center; gap: .6rem; min-height: 2.75rem; margin-right: 1.25rem; font-weight: 400 !important; }
.check input { width: 1.4rem; height: 1.4rem; accent-color: var(--rose); }
.form__msg { padding: 1rem 1.25rem; border-radius: var(--r-s); background: var(--skybg); font-weight: 700; }
.formwrap__note { margin-top: 1.5rem; padding: 1.25rem 1.5rem; border-radius: var(--r-m); background: var(--peach); }
.formwrap__note-title { font-weight: 700; margin-bottom: .4rem; }
.formwrap__note ul { padding-left: 1.2em; }
.formwrap__tel { display: inline-flex; align-items: center; gap: .4rem; margin-top: .75rem; font-size: 1.5rem; font-weight: 700; color: var(--rose); text-decoration: none; letter-spacing: .03em; }
@media (max-width: 860px) { .formwrap { grid-template-columns: 1fr; } .formwrap__photo { display: none; } }
.access { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.info--access div { grid-template-columns: 5rem 1fr; }
.amap { width: 100%; height: auto; }
.amap__bg { fill: var(--white); }
.amap__road { fill: none; stroke: var(--line); stroke-width: 18; stroke-linecap: round; }
.amap__route { fill: none; stroke: var(--rose); stroke-width: 4; stroke-dasharray: 2 8; stroke-linecap: round; }
.amap__st { fill: var(--ink); } .amap__po { fill: var(--skybg); } .amap__home circle { fill: var(--rose); }
.amap__t { font: 700 13px var(--jp); text-anchor: middle; fill: var(--ink); } .amap__t--w { fill: var(--white); }
@media (max-width: 860px) { .access { grid-template-columns: 1fr; } }
.faq { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.2fr); gap: 2rem; }
.faq__item { border-bottom: 1px solid var(--line); }
.faq__item:first-child { border-top: 1px solid var(--line); }
.faq__item summary { display: flex; gap: 1rem; align-items: center; min-height: 3.5rem; padding: 1rem 0; font-weight: 700; cursor: pointer; list-style: none; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after { content: "＋"; margin-left: auto; color: var(--rose); font-size: 1.25rem; }
.faq__item[open] summary::after { content: "－"; }
.faq__item p { padding: 0 0 1.25rem; line-height: 2; }
@media (max-width: 860px) { .faq { grid-template-columns: 1fr; } }

/* ============ 触れたとき（マウスのみ） ============ */
@media (hover: hover) {
  .btn--rose:hover { background: var(--rose-d); }
  .btn--line:hover { background: var(--peach); }
  .btn--white:hover { background: var(--peach); }
  .gnav__link:hover::after { transform: none; }
  .head-tel:hover, .bigtel:hover { background: var(--rose-d); }
  .door__link:hover .door__title, .textlink:hover { color: var(--rose-d); }
  .dial__btn:hover { background: var(--peach); }
  .dial__btn[aria-pressed="true"]:hover { background: var(--rose-d); }
}

/* ============ 動き（出現だけ。減らす設定では止める） ============ */
@media (prefers-reduced-motion: no-preference) {
  .js-motion [data-reveal] { opacity: 0; transform: translateY(16px); transition: opacity var(--t-reveal) var(--ease), transform var(--t-reveal) var(--ease); }
  .js-motion [data-reveal].is-in { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) { .dial__hand { transition: none; } }
