/* base/reset.css */
/* Minimal reset shared by every template. */
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}

/* base/tokens.css */
/* tokens block. Page-specific declaration differences are scoped with data-page. */
:root{--ink:#28224d; --ink-soft:rgba(40,34,77,0.80); --ink-faint:rgba(40,34,77,0.66);
      --paper:#ffffff; --mist:#f0efed; --line:rgba(40,34,77,0.14); --line-soft:rgba(40,34,77,0.08);
      --accent:#d86f86; --accent-deep:#c0546c; --green:#687c61;
      --display:YakuHanJP,"Zen Kaku Gothic New","Hiragino Sans","Noto Sans JP",sans-serif;
      --sans:YakuHanJP,"Zen Kaku Gothic New","Noto Sans JP","Hiragino Sans",sans-serif;
      --serif:Georgia,"Times New Roman",serif;
      /* 写真をサイトの淡い配色へ寄せる。彩度を落とし、わずかに明るく・コントラストを弱める。 */
      --photo-tone:saturate(.68) contrast(.94) brightness(1.04);
      --house:polygon(50% 0.6%, 55.5% 3.1%, 96% 21%, 99.6% 23.9%, 100% 25.5%, 100% 97.8%, 99.4% 99.6%, 95.7% 100%, 4.3% 100%, 0.6% 99.6%, 0% 97.8%, 0% 25.5%, 0.4% 23.9%, 4% 21%, 44.5% 3.1%);}
:root{--ink:#28224d; --ink-soft:rgba(40,34,77,0.80); --ink-faint:rgba(40,34,77,0.66);
      --paper:#ffffff; --mist:#f0efed; --line:rgba(40,34,77,0.14); --line-soft:rgba(40,34,77,0.08);
      --accent:#d86f86; --accent-deep:#c0546c; --green:#687c61;
      --display:YakuHanJP,"Zen Kaku Gothic New","Hiragino Sans","Noto Sans JP",sans-serif;
      --sans:YakuHanJP,"Zen Kaku Gothic New","Noto Sans JP","Hiragino Sans",sans-serif;
      --serif:Georgia,"Times New Roman",serif;
      /* 写真をサイトの淡い配色へ寄せる。彩度を落とし、わずかに明るく・コントラストを弱める。 */
      --photo-tone:saturate(.68) contrast(.94) brightness(1.04);}

/* base/typography.css */
/* typography block. Page-specific declaration differences are scoped with data-page. */
body{background:var(--mist);}
img{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
a:hover{color:var(--accent-deep);}
ul{list-style:none;}
/* word-break:auto-phrase は文節単位で折り返すため、ボックス端まで届かず手前で改行する。
   text-wrap:pretty も行末を整えようとして行を詰める。日本語は既定の禁則処理で読めるので既定値へ戻す。 */
p,h1,h2,h3,span,a{text-wrap:wrap; word-break:normal; line-break:auto;}

/* layout/container.css */
/* container block. Page-specific declaration differences are scoped with data-page. */
.container{width:1280px; margin-inline:auto;}

/* layout/page.css */
/* page block. Page-specific declaration differences are scoped with data-page. */
.page[data-page="main"]{position:relative; width:100%; max-width:1440px; overflow:hidden; overflow:clip;
      color:var(--ink); font-family:var(--sans); font-size:17px;
      font-feature-settings:"palt" 1; -webkit-font-smoothing:antialiased;
      background:
        url(../../images/paw-pink.svg) no-repeat 26px 940px / 200px,
        url(../../images/paw-green.svg) no-repeat calc(100% - 40px) 1720px / 160px,
        /* お悩み一覧の終盤では、文字と重ならないよう肉球を左端へ逃がす。 */
        url(../../images/paw-pink.svg) no-repeat -120px 2680px / 138px,
        url(../../images/paw-green.svg) no-repeat calc(100% - 66px) 3620px / 184px,
        url(../../images/paw-pink.svg) no-repeat calc(100% - 150px) 4880px / 128px,
        url(../../images/paw-green.svg) no-repeat 34px 5820px / 168px,
        linear-gradient(180deg,#ffffff 0%, #fff6f8 100%);}
.page > *{position:relative; z-index:1;}
.page[data-page="fudosan-soudan"]{position:relative; width:100%; max-width:1440px; overflow:hidden; overflow:clip;
      color:var(--ink); font-family:var(--sans); font-size:17px;
      font-feature-settings:"palt" 1; -webkit-font-smoothing:antialiased;
      background:
        url(../../images/paw-green.svg) no-repeat calc(100% - 40px) 2180px / 158px,
        url(../../images/paw-pink.svg) no-repeat 52px 3180px / 132px,
        url(../../images/paw-green.svg) no-repeat calc(100% - 70px) 4180px / 172px,
        linear-gradient(180deg,#ffffff 0%, #fff6f8 100%);}
.page[data-page="souzoku"]{position:relative; width:100%; max-width:1440px; overflow:hidden; overflow:clip;
      color:var(--ink); font-family:var(--sans); font-size:17px;
      font-feature-settings:"palt" 1; -webkit-font-smoothing:antialiased;
      background:
        url(../../images/paw-green.svg) no-repeat calc(100% - 40px) 2180px / 158px,
        url(../../images/paw-pink.svg) no-repeat 52px 3180px / 132px,
        url(../../images/paw-green.svg) no-repeat calc(100% - 70px) 4180px / 172px,
        linear-gradient(180deg,#ffffff 0%, #fff6f8 100%);}
.page[data-page="chintai-kanri"]{position:relative; width:100%; max-width:1440px; overflow:hidden; overflow:clip;
      color:var(--ink); font-family:var(--sans); font-size:17px;
      font-feature-settings:"palt" 1; -webkit-font-smoothing:antialiased;
      background:
        url(../../images/paw-green.svg) no-repeat calc(100% - 40px) 2180px / 158px,
        url(../../images/paw-pink.svg) no-repeat 52px 3180px / 132px,
        url(../../images/paw-green.svg) no-repeat calc(100% - 70px) 4180px / 172px,
        linear-gradient(180deg,#ffffff 0%, #fff6f8 100%);}
.page[data-page="company"]{position:relative; width:100%; max-width:1440px; overflow:hidden; overflow:clip;
      color:var(--ink); font-family:var(--sans); font-size:17px;
      font-feature-settings:"palt" 1; -webkit-font-smoothing:antialiased;
      background:linear-gradient(180deg,#ffffff 0%, #fff6f8 100%);}
/* 会社概要は落ち着いたトーンにするため肉球を置かない。 */
/* お問い合わせは左側の肉球2つを置かない（フォームの入力に視線を集めるため）。 */
.page[data-page="contact"]{position:relative; width:100%; max-width:1440px; overflow:hidden; overflow:clip;
      color:var(--ink); font-family:var(--sans); font-size:17px;
      font-feature-settings:"palt" 1; -webkit-font-smoothing:antialiased;
      background:
        url(../../images/paw-green.svg) no-repeat calc(100% - 40px) 2180px / 158px,
        url(../../images/paw-green.svg) no-repeat calc(100% - 70px) 4180px / 172px,
        linear-gradient(180deg,#ffffff 0%, #fff6f8 100%);}
/* 解約のお手続きは落ち着いたトーンにするため、パンダと肉球を置かない。 */
.page[data-page="kaiyaku"]{position:relative; width:100%; max-width:1440px; overflow:hidden; overflow:clip;
      color:var(--ink); font-family:var(--sans); font-size:17px;
      font-feature-settings:"palt" 1; -webkit-font-smoothing:antialiased;
      background:linear-gradient(180deg,#ffffff 0%, #fff6f8 100%);}
.page[data-page="privacy"]{position:relative; width:100%; max-width:1440px; overflow:hidden; overflow:clip;
      color:var(--ink); font-family:var(--sans); font-size:17px;
      font-feature-settings:"palt" 1; -webkit-font-smoothing:antialiased;
      background:
        url(../../images/paw-pink.svg) no-repeat 26px 1240px / 190px,
        url(../../images/paw-green.svg) no-repeat calc(100% - 40px) 2180px / 158px,
        url(../../images/paw-pink.svg) no-repeat 52px 3180px / 132px,
        url(../../images/paw-green.svg) no-repeat calc(100% - 70px) 4180px / 172px,
        linear-gradient(180deg,#ffffff 0%, #fff6f8 100%);}
.page[data-page="column-list"]{position:relative; width:100%; max-width:1440px; overflow:hidden; overflow:clip;
      color:var(--ink); font-family:var(--sans); font-size:17px;
      font-feature-settings:"palt" 1; -webkit-font-smoothing:antialiased;
      background:
        url(../../images/paw-pink.svg) no-repeat 26px 1240px / 190px,
        url(../../images/paw-green.svg) no-repeat calc(100% - 40px) 2180px / 158px,
        url(../../images/paw-pink.svg) no-repeat 52px 3180px / 132px,
        url(../../images/paw-green.svg) no-repeat calc(100% - 70px) 4180px / 172px,
        linear-gradient(180deg,#ffffff 0%, #fff6f8 100%);}
.page[data-page="column-article"]{position:relative; width:100%; max-width:1440px; overflow:hidden; overflow:clip;
      color:var(--ink); font-family:var(--sans); font-size:17px;
      font-feature-settings:"palt" 1; -webkit-font-smoothing:antialiased;
      background:
        url(../../images/paw-pink.svg) no-repeat 26px 1240px / 190px,
        url(../../images/paw-green.svg) no-repeat calc(100% - 40px) 2180px / 158px,
        url(../../images/paw-pink.svg) no-repeat 52px 3180px / 132px,
        url(../../images/paw-green.svg) no-repeat calc(100% - 70px) 4180px / 172px,
        linear-gradient(180deg,#ffffff 0%, #fff6f8 100%);}

/* layout/section.css */
/* section block. Page-specific declaration differences are scoped with data-page. */
.section{width:940px; margin-inline:auto; padding-top:180px;}
.page[data-page] .section[data-tone="tint"]{position:relative; z-index:0; padding-bottom:140px;}
.page[data-page] .section[data-tone="tint"]::before{content:""; position:absolute; z-index:-1; top:-54px; height:calc(100% + 168px); left:calc(50% - 720px); width:960px;
      background:rgba(232,150,170,0.09); border-radius:0 28px 28px 0;}
.page[data-page] .section[data-tint="right"]::before{left:auto; right:calc(50% - 720px); border-radius:28px 0 0 28px;}
.page[data-page] .section[data-tone="worry"]{position:relative; z-index:0; padding-bottom:120px;}
.page[data-page] .section[data-tone="worry"]::before{content:""; position:absolute; z-index:-1; top:-54px; height:calc(100% + 168px); left:calc(50% - 720px); width:960px;
      background:rgba(104,124,97,0.07); border-radius:0 28px 28px 0;}
.page[data-page] .section[data-tint="full"]{padding-top:110px; padding-bottom:80px;}
.page[data-page] .section[data-tint="full"]::before{top:0; height:100%; width:1440px; background:#f7edef; border-radius:0;}
/* 一覧上（24px）の1.5倍。余りが出ないよう高さは内容に任せる。 */
.page[data-page="souzoku"] .section[data-tint="full"]{padding-bottom:36px;}
/* 相続ページ: ピンクの帯を診断バナーの下まで伸ばし、写真の直前で白へ溶かす。
   バナーが「上のセクションの中にある」ように見せるため。
   フェード距離 378px = バナー上72 + バナー234 + バナー下72。 */
.page[data-page="souzoku"] .section[data-tint="full"]::before{
      height:calc(100% + 378px);
      background:linear-gradient(180deg,#f7edef 0,#f7edef calc(100% - 378px),rgba(247,237,239,0) 100%);}
/* ヘッダーが固定のため、アンカーで飛んだとき見出しが隠れないようにする。 */
.page[data-page] .section[id]{scroll-margin-top:130px;}

/* layout/site-footer.css */
/* site-footer block. Page-specific declaration differences are scoped with data-page. */
.site-footer{margin-top:170px; padding:80px 50px 15px; border-top:1px solid var(--line); background:rgba(255,255,255,0.56);}
.site-footer__inner{width:100%; margin-inline:auto;}

@media (min-width:1101px){
  .site-footer{padding-inline:80px;}
}

/* layout/site-header.css */
/* site-header block. Page-specific declaration differences are scoped with data-page. */
/* すりガラス。背面をぼかしつつ彩度を少し上げ、下の色がほんのり透ける。 */
.site-header{position:sticky; top:0; z-index:30; background:rgba(255,255,255,0.66);
      -webkit-backdrop-filter:blur(22px) saturate(1.6); backdrop-filter:blur(22px) saturate(1.6);
      border-bottom:1px solid var(--line-soft);}
/* backdrop-filter が効かない環境では文字が読めなくなるため、白を濃く戻す。 */
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .site-header{background:rgba(255,255,255,0.94);}
}
.site-header__inner{width:100%; padding:0 50px; height:104px; display:flex; align-items:center; justify-content:space-between; gap:40px;}

/* components/accessibility.css */
/* Keyboard focus and assistive-text utilities. */
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.screen-reader-text:focus,.skip-link:focus{position:fixed;top:12px;left:12px;z-index:10000;width:auto;height:auto;padding:12px 18px;margin:0;overflow:visible;clip-path:none;background:#fff;color:#28224d;border:2px solid #d86f86;border-radius:6px}
:where(a,button,input,select,textarea):focus-visible{outline:3px solid #c0546c;outline-offset:4px}
.form-unconnected{margin-top:18px;padding:12px 16px;border-left:4px solid #d86f86;background:#fff8fa;color:#28224d;font-size:14px}

/* components/animations.css */
/* animations block. Page-specific declaration differences are scoped with data-page. */
@keyframes mv-fade{0%{ opacity:0 } 5.5%{ opacity:1 } 33.3%{ opacity:1 } 38.9%{ opacity:0 } 100%{ opacity:0 }}
@keyframes mv-pan-right{0%{transform:scale(1.02) translate3d(-.8%,0,0)}38.9%,100%{transform:scale(1.02) translate3d(.8%,0,0)}}
@keyframes mv-pan-left{0%{transform:scale(1.02) translate3d(.8%,0,0)}38.9%,100%{transform:scale(1.02) translate3d(-.8%,0,0)}}
/* 拡大や上下移動を入れると大きな写真が「ブワッ」と広がって見えるため、透明度だけで出す。 */
@keyframes photo-in{from{ opacity:0 } to{ opacity:1 }}
@keyframes echo-slide{from{ opacity:0; transform:translateX(0) } to{ opacity:1; transform:translateX(110px) }}
@keyframes mv-scroll{from{ translate:0 0 } to{ translate:calc(-50% - 10px) 0 }}
@keyframes panda-peek-wiggle{0%,100%{transform:none}3%{transform:rotate(-5deg) scale(1.03)}6.6%{transform:rotate(4deg) scale(1.02)}9.6%{transform:rotate(-2.5deg) scale(1.02)}12.9%{transform:rotate(0deg) scale(1)}}
@keyframes cta-peek-pop{from{ opacity:0; translate:0 72%; scale:.96 } to{ opacity:1; translate:0 0; scale:1 }}
@keyframes float-diag-in{
  0%{opacity:0;visibility:hidden;pointer-events:none;transform:translate3d(calc(100% + 28px),0,0)}
  1%{visibility:visible}
  100%{opacity:1;visibility:visible;pointer-events:auto;transform:translate3d(0,0,0)}
}

/* components/badge.css */
/* badge block. Page-specific declaration differences are scoped with data-page. */
.badge{font-size:12px; font-weight:700; letter-spacing:0.08em; border-radius:4px; padding:3px 8px; line-height:1;}
.badge[data-status="required"]{color:#ffffff; background:var(--accent);}
.badge[data-status="optional"]{color:var(--ink-soft); background:rgba(40,34,77,0.08);}

/* components/brand-mark.css */
/* brand-mark block. Page-specific declaration differences are scoped with data-page. */
/* 箱の中心は文字ロゴと揃っているが、絵の余白で見た目の重心が下がるため少し持ち上げる。 */
.brand-mark{width:84px; height:84px; object-fit:contain; flex:none; transform:translateY(-3px);}

/* components/brand-word.css */
/* Header wordmark. Keep it close to the panda mark as one compact logo unit. */
.brand-word{width:180px; height:56px; object-fit:cover; object-position:center 54%; flex:none; padding:0;}

/* components/tel-ico.css */
/* tel-ico block. SP header phone button from the approved SP comps; hidden on PC. */
/* ヘッダーがすりガラスでも、電話ボタンの中は白のままにする。 */
.tel-ico{display:none;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--line);border-radius:999px;background:#ffffff;color:var(--ink)}
.tel-ico svg{width:20px;height:20px}
@media (max-width:768px){
  .tel-ico{display:flex}
}

/* components/brand.css */
/* brand block. Page-specific declaration differences are scoped with data-page. */
.brand{display:flex; align-items:center; gap:0;}

/* components/breadcrumb.css */
/* breadcrumb block. Page-specific declaration differences are scoped with data-page. */
.breadcrumb{display:flex; align-items:center; gap:8px; margin-bottom:26px; font-size:14px; font-weight:400; letter-spacing:0.04em; color:var(--ink-faint);}
.breadcrumb > a{flex:0 0 auto; white-space:nowrap;}
.breadcrumb svg{flex:0 0 auto; width:12px; height:12px;}
.breadcrumb .current{min-width:0; max-width:36em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}

/* components/btn-line.css */
/* btn-line block. Page-specific declaration differences are scoped with data-page. */
.btn-line{border:1px solid transparent;background:var(--accent);color:#ffffff;box-shadow:none;transition:background-color .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease,transform .22s ease;}
@media (hover:hover) and (pointer:fine){
  .btn-line:hover{border-color:var(--accent);background:#ffffff;color:var(--accent);box-shadow:0 12px 26px rgba(216,111,134,0.28);transform:translateY(-2px);}
}
.btn-line:focus-visible{border-color:var(--accent);background:#ffffff;color:var(--accent);box-shadow:0 0 0 4px rgba(216,111,134,0.20),0 12px 26px rgba(216,111,134,0.24);outline:0;transform:translateY(-2px);}
@media (prefers-reduced-motion:reduce){.btn-line{transition:none}.btn-line:hover,.btn-line:focus-visible{transform:none}}

/* components/btn-outline.css */
/* btn-outline block. Page-specific declaration differences are scoped with data-page. */
.btn-outline{background:#ffffff;color:var(--ink);border:1px solid var(--line);box-shadow:none;transition:background-color .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease,transform .22s ease;}
@media (hover:hover) and (pointer:fine){
  .btn-outline:hover{border-color:var(--line);background:#ffffff;color:rgba(40,34,77,.68);box-shadow:0 12px 26px rgba(216,111,134,.22);transform:translateY(-2px);}
}
.btn-outline:focus-visible{border-color:var(--line);background:#ffffff;color:rgba(40,34,77,.68);box-shadow:0 0 0 4px rgba(216,111,134,.16),0 12px 26px rgba(216,111,134,.22);outline:0;transform:translateY(-2px);}
@media (prefers-reduced-motion:reduce){.btn-outline{transition:none}.btn-outline:hover,.btn-outline:focus-visible{transform:none}}

/* components/btn-submit.css */
/* btn-submit block. Page-specific declaration differences are scoped with data-page. */
.btn-submit{width:300px; border:none; cursor:pointer; font-family:var(--sans);}
/* 同意チェック前は送信できない。透かすと文字が読みにくいので、不透明のまま色で示す。 */
.btn-submit:disabled,.btn-submit[disabled]{opacity:1; border-color:#8a8397; background:#8a8397; color:#ffffff; box-shadow:none; cursor:not-allowed;}
.btn-submit:disabled:hover,.btn-submit[disabled]:hover,.btn-submit:disabled:focus-visible,.btn-submit[disabled]:focus-visible{border-color:#8a8397; background:#8a8397; color:#ffffff; box-shadow:none; transform:none;}

/* components/btn.css */
/* btn block. Page-specific declaration differences are scoped with data-page. */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:11px; width:100%; min-height:58px; border-radius:999px; font-size:18px; font-weight:700; line-height:1; white-space:nowrap;}

/* components/bubble.css */
/* bubble block. Page-specific declaration differences are scoped with data-page. */
.bubble{--bub:#fcfaf6; position:relative; flex-grow:1; padding:24px 30px; border-radius:10px; background:var(--bub);
      filter:drop-shadow(0 10px 20px rgba(40,34,77,0.06)) drop-shadow(0 2px 4px rgba(40,34,77,0.03));}
.bubble::before{content:""; position:absolute; left:-22px; top:44%; width:22px; height:15px; background:var(--bub); clip-path:polygon(100% 0, 0 0, 100% 100%);}
.bubble p{font-size:19px; font-weight:500; letter-spacing:0.03em; line-height:1.8;}
.page[data-page="chintai-kanri"] .worry-foot--owner .bubble{min-width:0;}
.page[data-page="chintai-kanri"] .worry-foot--owner .bubble p{font-size:17px;line-height:1.8;overflow-wrap:anywhere;}

/* components/cat-pill.css */
/* cat-pill block. Page-specific declaration differences are scoped with data-page. */
.page[data-page="column-list"] .cat-pill{display:inline-flex; align-items:center; font-size:15px; font-weight:500; letter-spacing:0.05em;
      padding:7px 22px; line-height:1.6; border:1px solid var(--line); border-radius:999px; color:var(--ink-soft); background:rgba(255,255,255,0.7);}
.page[data-page] .cat-pill.is-active{border-color:var(--accent-deep); color:var(--accent-deep); background:rgba(216,111,134,0.08);}
.page[data-page="column-article"] .cat-pill{display:inline-flex; align-items:center; font-size:14px; font-weight:500; letter-spacing:0.05em;
      padding:9px 22px; border:1px solid var(--line); border-radius:999px; color:var(--ink-soft); background:rgba(255,255,255,0.7);}

/* components/check-row.css */
/* check-row block. Page-specific declaration differences are scoped with data-page. */
/* チェックを左に固定し、同意文とリンクは通常のインラインとして折り返す。
   font-size を継承し、上余白は親の行箱（1.7em）とチェック寸法の差にする。 */
.check-row{display:block; font-size:15px; letter-spacing:0.03em; line-height:1.7; --check-size:18px;}
.check-row::after{content:""; display:table; clear:both;}
.check-row input{float:left; font-size:inherit; width:var(--check-size); height:var(--check-size); margin:calc((1.7em - var(--check-size)) / 2) 10px 0 0; accent-color:var(--accent);}
.check-row .wpcf7-form-control-wrap{float:left; margin-right:10px;}
.check-row .wpcf7-form-control-wrap input{float:none; margin:calc((1.7em - var(--check-size)) / 2) 0 0;}
.check-row__text{min-width:0;}
.check-row a{color:var(--accent-deep); text-decoration:underline; text-underline-offset:3px;}

/* components/column-card.css */
/* column-card block. Page-specific declaration differences are scoped with data-page. */
.column-card__thumb{aspect-ratio:16/9; border-radius:10px; overflow:hidden;}
.column-card__thumb img{display:block; width:100%; height:100%; object-fit:cover;}
.column-card__cat{margin:16px 0 8px; display:inline-block; align-self:start; justify-self:start; width:fit-content; padding:3px 12px 4px;
      border:1px solid rgba(104,124,97,0.45); border-radius:999px;
      font-size:12px; font-weight:500; letter-spacing:0.08em; line-height:1.5; color:var(--green);}
/* 見出しは全文出力し、表示だけ最大2行。PHPでは切らない。 */
.column-card h3{display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-clamp:2; overflow:hidden;
      font-size:18px; font-weight:500; letter-spacing:0.03em; line-height:1.75;}
.column-card time{display:block; margin-top:10px; font-family:var(--sans); font-size:14px; color:var(--ink-faint); letter-spacing:0.02em;}
/* 日付を下端でそろえる（タイトル行数が違ってもカード内で整列） */
.page[data-page] .column-card{display:flex;flex-direction:column}
.page[data-page] .column-card time{margin-top:auto}

/* components/column-foot.css */
/* column-foot block. Page-specific declaration differences are scoped with data-page. */
.page[data-page="main"] .column-foot{position:relative; margin-top:48px; padding-top:24px; border-top:1px solid var(--line);}
.page[data-page="fudosan-soudan"] .column-foot{margin-top:48px; padding-top:24px; border-top:1px solid var(--line);}
.page[data-page="souzoku"] .column-foot{margin-top:48px; padding-top:24px; border-top:1px solid var(--line);}
.page[data-page="chintai-kanri"] .column-foot{margin-top:48px; padding-top:24px; border-top:1px solid var(--line);}
.page[data-page="company"] .column-foot{margin-top:48px; padding-top:24px; border-top:1px solid var(--line);}
.page[data-page="contact"] .column-foot{margin-top:48px; padding-top:24px; border-top:1px solid var(--line);}
.page[data-page="kaiyaku"] .column-foot{margin-top:48px; padding-top:24px; border-top:1px solid var(--line);}
.page[data-page="privacy"] .column-foot{margin-top:48px; padding-top:24px; border-top:1px solid var(--line);}
.page[data-page="column-list"] .column-foot{margin-top:48px; padding-top:24px; border-top:1px solid var(--line);}
.page[data-page="column-article"] .column-foot{margin-top:48px; padding-top:24px; border-top:1px solid var(--line);}

/* components/column-grid.css */
/* column-grid block. Page-specific declaration differences are scoped with data-page. */
.column-grid{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:28px;}

/* components/contact-card.css */
/* contact-card block. Page-specific declaration differences are scoped with data-page. */
.contact-card{padding:34px 44px; display:grid; grid-template-columns:minmax(0,1fr) 300px 170px; gap:44px; align-items:center;
      border-radius:22px; background:rgba(255,255,255,0.94); box-shadow:0 18px 44px rgba(40,34,77,0.10), 0 2px 6px rgba(40,34,77,0.04);}

/* components/contact-lead.css */
/* contact-lead block. Page-specific declaration differences are scoped with data-page. */
/* 56em（1064px）だと末尾「す。」だけ2行目に落ちる。 */
.contact-lead{max-width:58em; margin-bottom:44px; font-size:19px; font-weight:500; letter-spacing:0.04em; line-height:2;}
.contact-lead strong{color:var(--accent-deep); font-weight:700;}

/* components/contact-qr.css */
/* contact-qr block. Page-specific declaration differences are scoped with data-page. */
.contact-qr{display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center;}
.contact-qr img{width:128px; height:128px; border:1px solid var(--line); border-radius:8px; padding:7px; background:#fff;}
.contact-qr small{font-size:12px; font-weight:400; color:var(--ink-soft); letter-spacing:0.04em; line-height:1.7;}

/* components/contact-tel-text.css */
/* contact-tel-text block. Page-specific declaration differences are scoped with data-page. */
.contact-tel-text{max-width:56em; margin-top:36px; color:var(--ink-soft); font-size:15px; font-weight:400; letter-spacing:0.04em; line-height:2;}

/* components/cta-actions.css */
/* cta-actions block. Page-specific declaration differences are scoped with data-page. */
.cta-actions{width:820px; margin:36px auto 0; padding-top:34px; border-top:1px solid var(--line);
      /* 電話側が1frで左端まで伸びて左右に離れていたため、両方を中身の幅にして中央へ寄せる。 */
      display:grid; grid-template-columns:auto 300px; justify-content:center; gap:64px; align-items:center; text-align:left;}

/* components/cta-card.css */
/* cta-card block. Page-specific declaration differences are scoped with data-page. */
.cta-card{--cta-radius:40px; --cta-gold-inset:10px; position:relative; z-index:1; padding:72px 96px 64px; border-radius:var(--cta-radius); background:#ffffff;
      box-shadow:0 28px 70px rgba(40,34,77,0.10), 0 3px 8px rgba(40,34,77,0.04); text-align:center;}
.cta-card__label{display:flex; flex-direction:column; align-items:center; gap:12px; margin-bottom:22px; font-family:var(--serif); font-size:76px; font-weight:400; letter-spacing:0.02em; line-height:1; color:rgba(40,34,77,0.16);}
.cta-card__label span{font-family:var(--sans); font-size:14px; font-weight:400; letter-spacing:0.08em; color:var(--ink-soft);}
.cta-card__title{font-family:var(--display); font-size:28px; font-weight:500; letter-spacing:0.02em; line-height:1.7;}
.page[data-page="main"] .cta-card__text{max-width:none; margin:20px auto 0; color:var(--ink-soft); font-size:17px; font-weight:400; letter-spacing:0.05em; line-height:1.95;}
.page[data-page="fudosan-soudan"] .cta-card__text{max-width:640px; margin:20px auto 0; color:var(--ink-soft); font-size:17px; font-weight:400; letter-spacing:0.05em; line-height:1.95;}
.page[data-page="souzoku"] .cta-card__text{max-width:640px; margin:20px auto 0; color:var(--ink-soft); font-size:17px; font-weight:400; letter-spacing:0.05em; line-height:1.95;}
.page[data-page="chintai-kanri"] .cta-card__text{max-width:640px; margin:20px auto 0; color:var(--ink-soft); font-size:17px; font-weight:400; letter-spacing:0.05em; line-height:1.95;}
.page[data-page="company"] .cta-card__text{max-width:640px; margin:20px auto 0; color:var(--ink-soft); font-size:17px; font-weight:400; letter-spacing:0.05em; line-height:1.95;}
.page[data-page="contact"] .cta-card__text{max-width:640px; margin:20px auto 0; color:var(--ink-soft); font-size:17px; font-weight:400; letter-spacing:0.05em; line-height:1.95;}
.page[data-page="kaiyaku"] .cta-card__text{max-width:640px; margin:20px auto 0; color:var(--ink-soft); font-size:17px; font-weight:400; letter-spacing:0.05em; line-height:1.95;}
.page[data-page="privacy"] .cta-card__text{max-width:640px; margin:20px auto 0; color:var(--ink-soft); font-size:17px; font-weight:400; letter-spacing:0.05em; line-height:1.95;}
.page[data-page="column-list"] .cta-card__text{max-width:640px; margin:20px auto 0; color:var(--ink-soft); font-size:17px; font-weight:400; letter-spacing:0.05em; line-height:1.95;}
.page[data-page="column-article"] .cta-card__text{max-width:640px; margin:20px auto 0; color:var(--ink-soft); font-size:17px; font-weight:400; letter-spacing:0.05em; line-height:1.95;}
/* 白いボックスの内側2pxに、濃淡のある細い金の線。派手にせず、上品さだけを足す。
   単色だと安く見えるため、透明度でふわっと濃淡をつける。 */
.cta-card::after{content:""; position:absolute; inset:var(--cta-gold-inset); border-radius:calc(var(--cta-radius) - var(--cta-gold-inset));
      padding:1px; pointer-events:none;
      background:linear-gradient(135deg,
        rgba(201,169,97,0) 0%, rgba(201,169,97,.80) 16%, rgba(212,188,139,.28) 36%,
        rgba(201,169,97,.88) 56%, rgba(201,169,97,.22) 78%, rgba(201,169,97,0) 100%);
      -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
      -webkit-mask-composite:xor; mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
      mask-composite:exclude;}

/* components/cta-panda.css */
/* cta-panda block. Page-specific declaration differences are scoped with data-page. */
.cta-panda{position:absolute; right:132px; bottom:100%; width:220px; height:150px; padding-top:18px; overflow:hidden; overflow:clip; z-index:0; pointer-events:none;}
.cta-panda img{display:block; width:100%; filter:drop-shadow(0 8px 16px rgba(40,34,77,0.12));
      animation:cta-peek-pop 0.8s cubic-bezier(0.34,1.62,0.6,1) both; animation-timeline:view(); animation-range:entry 12% entry 58%;}
@media (prefers-reduced-motion:reduce){.page[data-page] .cta-panda img{animation:none;}}

/* components/cta-section.css */
/* cta-section block. Page-specific declaration differences are scoped with data-page. */
.cta-section{position:relative; width:1160px; margin:200px auto 0;}

/* components/diagnosis-widget.css */
/* Diagnosis modal. Variants: data-inline=true; data-result=safe|mid|risk; data-color=primary|line|ghost. */
.diagnosis-widget{--diag-ink:#28224d;--diag-soft:#57516f;--diag-faint:#716e8a;--diag-accent:#d86f86;--diag-deep:#c0546c;--diag-green:#687c61;--diag-line:rgba(40,34,77,.16);--diag-line-soft:rgba(40,34,77,.08);font-family:YakuHanJP,"Zen Kaku Gothic New","Noto Sans JP","Hiragino Sans",sans-serif;color:var(--diag-ink)}
.diagnosis-widget__overlay{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(40,34,77,.48);backdrop-filter:blur(8px)}
.diagnosis-widget__overlay[data-open="true"]{display:flex}
.diagnosis-widget[data-inline="true"]{width:min(520px,calc(100% - 32px));margin-inline:auto}
.diagnosis-widget[data-inline="true"] .diagnosis-widget__overlay{position:static;display:flex;padding:0;background:none;backdrop-filter:none}
/* /diagnosis/ の入口ではヘッダー帯を出さない。設問・結果では現在地が分かるよう帯を出す。 */
/* ページ埋め込みでは閉じる操作がないため、×は出さない。 */
.diagnosis-widget[data-inline="true"] .modal__close{display:none}
.diagnosis-widget[data-inline="true"][data-view="intro"] .modal__bar{display:none}
.diagnosis-widget[data-inline="true"][data-view="intro"] .modal__body{padding-top:34px}
.diagnosis-widget__noscript{width:min(620px,100%);margin:20px auto;padding:20px;background:#fff}
.diagnosis-widget .modal{width:520px;max-width:100%;max-height:calc(100vh - 40px);overflow:auto;border:1px solid var(--diag-line-soft);border-radius:28px;background:#fff;box-shadow:0 30px 70px rgba(40,34,77,.16)}
.diagnosis-widget[data-inline="true"] .modal{max-height:none}
/* 開いた瞬間にダイアログへフォーカスを移すが、枠線は出さない。
   ダイアログ内の操作要素には :focus-visible のリングが残るのでキーボード操作は損なわれない。 */
.diagnosis-widget .modal:focus{outline:none}
.diagnosis-widget .modal:focus-visible{outline:none}
.diagnosis-widget .modal__bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px 16px;border-bottom:1px solid var(--diag-line-soft);background:rgba(255,255,255,.96)}
.diagnosis-widget .modal__brand{display:flex;align-items:center;gap:12px}
.diagnosis-widget .modal__brand img{width:38px;height:38px;object-fit:contain}
.diagnosis-widget .modal__bar{justify-content:space-between;gap:10px}
.diagnosis-widget .modal__brand{flex:1;min-width:0}
.diagnosis-widget[data-view="intro"] .modal__brand{display:none}
.diagnosis-widget[data-view="intro"] .modal__close{margin-left:auto}
.diagnosis-widget .modal__brand-text{display:none;font-size:14px;font-weight:600;letter-spacing:.04em;line-height:1.45;color:var(--diag-ink)}
.diagnosis-widget .modal__brand-line{display:inline-block}
.diagnosis-widget[data-view="quiz"] .modal__brand-text,
.diagnosis-widget[data-view="result"] .modal__brand-text{display:block}
.diagnosis-widget .modal__state{flex:none;padding:6px 14px;border-radius:999px;background:rgba(216,111,134,.12);
      color:var(--diag-deep);font-size:12px;font-weight:700;letter-spacing:.08em;line-height:1.5;white-space:nowrap}
.diagnosis-widget .modal__state[hidden]{display:none}
.diagnosis-widget .modal__close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--diag-line);border-radius:999px;background:#fff;color:var(--diag-soft);cursor:pointer}
.diagnosis-widget .modal__close svg{width:14px;height:14px}
.diagnosis-widget .modal__body{padding:42px 40px 46px}
.diagnosis-widget .intro{text-align:center}
/* パンダを左、吹き出しを右に並べて、本題の見出しを画面の上のほうへ持ち上げる。 */
.diagnosis-widget .intro__greet{display:flex;align-items:center;gap:12px;margin-bottom:24px;text-align:left}
.diagnosis-widget .intro__panda{width:92px;flex:none;margin:0}
.diagnosis-widget .intro__bubble{position:relative;margin:0;padding:13px 18px;border:1px solid var(--diag-line);border-radius:18px;background:#fff7f8;font-size:15px;font-weight:500;letter-spacing:.03em;line-height:1.6}
.diagnosis-widget .intro__bubble::before{content:"";position:absolute;left:-7px;top:50%;width:12px;height:12px;margin-top:-6px;transform:rotate(45deg);border-left:1px solid var(--diag-line);border-bottom:1px solid var(--diag-line);background:#fff7f8}
.diagnosis-widget .intro__eyebrow{display:flex;align-items:center;justify-content:center;gap:10px;font-family:Georgia,"Times New Roman",serif;font-size:15px;letter-spacing:.04em;color:var(--diag-deep)}
.diagnosis-widget .intro__eyebrow::before,.diagnosis-widget .intro__eyebrow::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--diag-accent)}
.diagnosis-widget .intro__title{margin:10px 0 30px;font-size:26px;font-weight:600;letter-spacing:0;line-height:1.5;white-space:nowrap}
.diagnosis-widget .intro__desc{color:var(--diag-soft);font-size:15px;font-weight:400;letter-spacing:.04em;line-height:1.95}
.diagnosis-widget .intro__meta{display:flex;justify-content:center;gap:0;margin:26px 0 28px}
.diagnosis-widget .intro__meta div{display:inline-flex;align-items:baseline;justify-content:center;gap:4px;padding:0 18px;border-left:1px solid var(--diag-line);white-space:nowrap}
.diagnosis-widget .intro__meta div:first-child{border-left:0}
.diagnosis-widget .intro__meta b{display:inline;font-family:var(--sans);font-size:30px;line-height:1;letter-spacing:-.04em;color:var(--diag-accent)}
.diagnosis-widget .intro__meta span{display:inline;font-size:12px;font-weight:500;letter-spacing:.06em;color:var(--diag-soft)}
.diagnosis-widget .btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:58px;border:0;border-radius:999px;font-size:19px;font-weight:700;letter-spacing:.04em;line-height:1;text-decoration:none;cursor:pointer}
.diagnosis-widget .btn[data-color="primary"],.diagnosis-widget .btn[data-color="line"]{background:var(--diag-accent);color:#fff;box-shadow:0 8px 20px rgba(216,111,134,.22)}
.diagnosis-widget .btn[data-color="line"] svg{width:22px;height:22px}
.diagnosis-widget .btn[data-color="ghost"]{min-height:52px;border:1px solid var(--diag-line);background:#fff;color:var(--diag-ink);font-size:16px;font-weight:600}
.diagnosis-widget .btn-note{margin-top:14px;font-size:12px;font-weight:400;color:var(--diag-faint);letter-spacing:.03em;line-height:1.8;text-align:center}
/* 診断結果の注記（AI受付の説明）は本文と同じ左ぞろいにする。 */
/* 結果画面の注記は本文と同じ左ぞろい。誘い文は文節で改行させ2行に整える（中央ぞろい）。 */
.diagnosis-widget [data-diagnosis-view="result"] .btn-note{text-align:left}
.diagnosis-widget .cta-lead{text-wrap:balance}
.diagnosis-widget .q-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.diagnosis-widget .q-count{font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--diag-soft)}
.diagnosis-widget .q-count b{margin-right:2px;color:var(--diag-accent);font-family:var(--sans);font-size:26px;letter-spacing:-.03em;vertical-align:-2px}
.diagnosis-widget .q-back{display:flex;align-items:center;gap:6px;border:0;background:none;color:var(--diag-faint);font-size:13px;font-weight:500;cursor:pointer}
.diagnosis-widget .q-back svg{width:12px;height:12px}
.diagnosis-widget .progress{height:6px;margin-bottom:30px;overflow:hidden;border-radius:999px;background:#f8f7f5}
.diagnosis-widget .progress__fill{width:10%;height:100%;border-radius:999px;background:linear-gradient(90deg,#f2c8d1,var(--diag-accent));transition:width .25s}
.diagnosis-widget .q-row{display:flex;align-items:flex-start;gap:16px;margin-bottom:30px}
.diagnosis-widget .q-row .panda{width:76px;flex-shrink:0;margin-top:2px}
.diagnosis-widget .q-text{font-size:21px;font-weight:600;letter-spacing:.02em;line-height:1.7}
.diagnosis-widget .q-choices{display:flex;flex-direction:column;gap:12px}
.diagnosis-widget .choice{display:flex;align-items:center;gap:16px;min-height:64px;padding:0 24px;border:1.5px solid var(--diag-line);border-radius:16px;background:#fff;color:var(--diag-ink);font-size:19px;font-weight:600;letter-spacing:.04em;cursor:pointer}
.diagnosis-widget .choice__key{display:flex;align-items:center;justify-content:center;min-width:62px;height:34px;padding:0 14px;flex-shrink:0;border:1.5px solid var(--diag-line);border-radius:999px;color:var(--diag-faint);font-size:14px;font-weight:600;white-space:nowrap}
/* タッチ端末では :hover が押したまま残り、次の設問でも選択済みに見えてしまう。 */
@media (hover:hover) and (pointer:fine){
  .diagnosis-widget .choice:hover{border-color:var(--diag-accent);background:#fff7f8;color:var(--diag-deep)}
}
.diagnosis-widget .choice:focus-visible{border-color:var(--diag-accent);background:#fff7f8;color:var(--diag-deep)}
.diagnosis-widget .q-tip{margin-top:22px;padding-top:18px;border-top:1px solid var(--diag-line-soft);color:var(--diag-faint);font-size:13px;font-weight:400;letter-spacing:.03em;line-height:1.8}
.diagnosis-widget .result__top{margin-bottom:24px;text-align:center}
.diagnosis-widget .result__panda{width:112px;margin:0 auto 10px}
.diagnosis-widget .badge{display:inline-block;padding:9px 22px;border-radius:999px;font-size:15px;font-weight:700;letter-spacing:.08em}
.diagnosis-widget .badge[data-result="safe"]{background:#eef3eb;color:var(--diag-green)}
.diagnosis-widget .badge[data-result="mid"]{background:#f2c8d1;color:var(--diag-deep)}
.diagnosis-widget .badge[data-result="risk"]{background:rgba(192,84,108,.12);color:var(--diag-deep)}
.diagnosis-widget .result__score{display:flex;align-items:baseline;justify-content:center;gap:6px;margin:18px 0 6px}
.diagnosis-widget .result__score b{font-family:var(--sans);font-size:52px;line-height:1;letter-spacing:-.05em}
.diagnosis-widget .result__score span{color:var(--diag-soft);font-size:14px;font-weight:500}
.diagnosis-widget .result__score[data-result="safe"] b{color:var(--diag-green)}
.diagnosis-widget .result__score[data-result="mid"] b,.diagnosis-widget .result__score[data-result="risk"] b{color:var(--diag-accent)}
.diagnosis-widget .result__title{margin-top:10px;font-size:26px;font-weight:700;letter-spacing:.02em;line-height:1.5}
.diagnosis-widget .result__title[data-result="safe"]{color:var(--diag-green)}
.diagnosis-widget .result__title[data-result="mid"],.diagnosis-widget .result__title[data-result="risk"]{color:var(--diag-deep)}
.diagnosis-widget .result__desc{padding:22px 24px;margin-bottom:26px;border-radius:18px;background:#f8f7f5;color:var(--diag-ink);font-size:15px;font-weight:400;letter-spacing:.04em;line-height:2}
.diagnosis-widget .cta-lead{margin-bottom:16px;text-align:center;font-size:16px;font-weight:600;letter-spacing:.03em;line-height:1.7}
.diagnosis-widget .result__sub{margin-top:14px}
.diagnosis-widget .result__again{display:block;margin:20px auto 0;border:0;background:none;color:var(--diag-faint);font-size:13px;font-weight:500;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.diagnosis-widget .panda{filter:drop-shadow(0 6px 14px rgba(40,34,77,.12))}
@media (max-width:600px){.diagnosis-widget .modal__body{padding:34px 22px 38px}.diagnosis-widget .intro__greet{gap:10px;margin-bottom:20px}.diagnosis-widget .intro__panda{width:78px}.diagnosis-widget .intro__bubble{padding:11px 12px;font-size:13px}.diagnosis-widget .intro__title{margin-bottom:26px;font-size:min(22px,calc((100vw - 84px) / 12))}.diagnosis-widget .intro__meta div{gap:3px;padding:0 6px}.diagnosis-widget .intro__meta b{font-size:26px}.diagnosis-widget .intro__meta span{font-size:11px;letter-spacing:.02em}.diagnosis-widget .q-row{gap:10px}.diagnosis-widget .q-text{font-size:18px}.diagnosis-widget .choice{padding:0 16px;font-size:16px}}
@media (prefers-reduced-motion:reduce){.diagnosis-widget .progress__fill{transition:none}}

/* components/faq-a.css */
/* faq-a block. Page-specific declaration differences are scoped with data-page. */
.faq-a{margin-top:16px; display:grid; grid-template-columns:44px minmax(0,1fr); gap:16px; align-items:baseline;}
.faq-a .mark{font-family:var(--serif); font-size:28px; line-height:1; color:var(--green);}
.faq-a p{color:var(--ink-soft); font-size:17px; font-weight:400; letter-spacing:0.05em; line-height:2;}

/* components/faq-item.css */
/* faq-item block. Page-specific declaration differences are scoped with data-page. */
.faq-item{padding:30px 0; border-top:1px solid var(--line);}
.faq-item:last-of-type{border-bottom:1px solid var(--line);}

/* components/faq-panda-row.css */
/* faq-panda-row block. Page-specific declaration differences are scoped with data-page. */
.faq-panda-row{margin-top:44px; display:flex; align-items:center; justify-content:flex-end;}
.faq-panda-row .panda{width:104px; flex-shrink:0; margin-left:18px; transform:rotate(3deg);}
.faq-panda-row__msg{--bub:#f5f7f3; position:relative; padding:22px 30px; border-radius:10px; background:var(--bub);
      filter:drop-shadow(0 10px 20px rgba(40,34,77,0.06)) drop-shadow(0 2px 4px rgba(40,34,77,0.03));
      font-size:18px; font-weight:500; letter-spacing:0.03em; line-height:1.8;}
.faq-panda-row__msg::before{content:""; position:absolute; right:-22px; top:44%; width:22px; height:15px; background:var(--bub); clip-path:polygon(0 0, 100% 0, 0 100%);}
.page[data-page="company"] .faq-panda-row__msg{--bub:#fff;}

/* components/faq-q.css */
/* faq-q block. Page-specific declaration differences are scoped with data-page. */
.faq-q{display:grid; grid-template-columns:44px minmax(0,1fr); gap:16px; align-items:baseline;}
.faq-q .mark{font-family:var(--serif); font-size:28px; line-height:1; color:var(--accent);}
.faq-q h3{font-size:19px; font-weight:500; letter-spacing:0.03em; line-height:1.7;}

/* components/field.css */
/* field block. Page-specific declaration differences are scoped with data-page. */
.field__label{display:flex; align-items:center; gap:10px; margin-bottom:10px; font-size:16px; font-weight:700; letter-spacing:0.05em;}
.field__input, .field__select, .field__textarea{width:100%; padding:15px 18px; border:1px solid var(--line); border-radius:12px;
      background:rgba(255,255,255,0.92); color:var(--ink); font-family:var(--sans); font-size:16px; letter-spacing:0.03em; outline:none;}
.field__input:focus, .field__select:focus, .field__textarea:focus{border-color:var(--accent); box-shadow:0 0 0 3px rgba(216,111,134,0.14);}
.field__input::placeholder, .field__textarea::placeholder{color:rgba(40,34,77,0.32);}
.field__select-wrap{position:relative;}
.field__select{appearance:none;}
.field__select-wrap svg{position:absolute; right:16px; top:50%; translate:0 -50%; width:16px; height:16px; color:var(--ink-soft); pointer-events:none;}
/* 空のときは下限、入力に合わせて伸びる。rows による固定高さは使わない。 */
.field__textarea{min-height:180px; height:auto; field-sizing:content; resize:vertical; line-height:1.9;}

/* components/cf7-response.css */
/* cf7-response block. Contact Form 7 の送信結果メッセージをサイトのトーンに合わせる（文言は CF7 設定のまま）。 */
.wpcf7 form .wpcf7-response-output{margin:24px 0 0;padding:16px 20px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.92);color:var(--ink);font-size:15px;line-height:1.8}
.wpcf7 form.sent .wpcf7-response-output{border-color:var(--accent);background:#fbf4f6;color:var(--accent-deep)}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.unaccepted .wpcf7-response-output,.wpcf7 form.failed .wpcf7-response-output,.wpcf7 form.aborted .wpcf7-response-output,.wpcf7 form.spam .wpcf7-response-output{border-color:#b3453f;background:#fdf3f2;color:#b3453f}
.wpcf7-not-valid-tip{margin-top:6px;color:#b3453f;font-size:13px}
.wpcf7-spinner{display:none}

/* components/float-diag-wrap.css */
/* float-diag-wrap block. Page-specific declaration differences are scoped with data-page. */
.page[data-page="main"] .float-diag-wrap{position:absolute; right:0; top:1640px; z-index:20;}
.page[data-page="fudosan-soudan"] .float-diag-wrap{position:absolute; right:0; top:1220px; z-index:20;}
.page[data-page="souzoku"] .float-diag-wrap{position:absolute; right:0; top:1220px; z-index:20;}
.page[data-page="chintai-kanri"] .float-diag-wrap{position:absolute; right:0; top:1220px; z-index:20;}
.page[data-page="company"] .float-diag-wrap{position:absolute; right:0; top:1220px; z-index:20;}
.page[data-page="contact"] .float-diag-wrap{position:absolute; right:0; top:1220px; z-index:20;}
.page[data-page="kaiyaku"] .float-diag-wrap{position:absolute; right:0; top:1220px; z-index:20;}
.page[data-page="privacy"] .float-diag-wrap{position:absolute; right:0; top:1220px; z-index:20;}
.page[data-page="column-list"] .float-diag-wrap{position:absolute; right:0; top:1220px; z-index:20;}
.page[data-page="column-article"] .float-diag-wrap{position:absolute; right:0; top:1220px; z-index:20;}

/* site-ui.js moves the banner below body so .page's overflow does not clip viewport following. */
.float-diag-wrap.is-floating{--float-diag-delay:1.5s;position:fixed;right:0;top:auto;bottom:clamp(36px,8vh,88px);z-index:820;
      opacity:0;visibility:hidden;pointer-events:none;transform:translate3d(calc(100% + 28px),0,0);will-change:transform,opacity;}
.float-diag-wrap.is-floating.is-home-sequence{--float-diag-delay:3.9s;}
.float-diag-wrap.is-floating.is-floating-ready{animation:float-diag-in 1.15s cubic-bezier(.22,.85,.27,1) var(--float-diag-delay) both;}
.float-diag-wrap.is-floating>.float-diag,.float-diag-wrap.is-floating>.float-diag__peek{transition:opacity .28s ease,transform .34s cubic-bezier(.22,.8,.36,1);}
/* .btn／フッターに重なる位置、および診断ポップアップが開いている間はすっと引っ込める。
   スクロールで戻れば重なりが解けて再び出る。 */
.float-diag-wrap.is-floating.is-colliding>.float-diag,.float-diag-wrap.is-floating.is-colliding>.float-diag__peek{opacity:0;transform:translate3d(18px,0,0);pointer-events:none;}

@media (max-width:768px){
  .float-diag-wrap.is-floating{bottom:34px;max-width:calc(100vw - 18px);}
}
@media (prefers-reduced-motion:reduce){
  .float-diag-wrap.is-floating,.float-diag-wrap.is-floating.is-floating-ready{opacity:1;visibility:visible;pointer-events:auto;transform:none;animation:none;will-change:auto;}
  .float-diag-wrap.is-floating>.float-diag,.float-diag-wrap.is-floating>.float-diag__peek{transition:none;}
}

/* components/float-diag.css */
/* float-diag block. Page-specific declaration differences are scoped with data-page. */
.float-diag{position:relative; display:flex; align-items:center; gap:14px; padding:15px 28px;
      border:1px solid var(--line); border-right:none; border-radius:999px 0 0 999px;
      background:rgba(255,255,255,0.94); backdrop-filter:blur(18px); box-shadow:0 18px 40px rgba(40,34,77,0.10);}
/* 下端だけを切ってバーの裏から覗かせる。overflow:hidden だと揺れたとき左右が切れるため clip-path を使う。 */
.float-diag__peek{position:absolute; right:56px; bottom:100%; width:104px; padding-top:14px; overflow:hidden; overflow:clip; overflow-clip-margin:0; pointer-events:none;}
@supports (clip-path: inset(0)){.float-diag__peek{overflow:visible; clip-path:inset(-40% -40% 0 -40%);}}
.float-diag__peek img{display:block;width:100%;filter:drop-shadow(0 5px 10px rgba(40,34,77,0.12));}
.float-diag-wrap.is-floating .float-diag__peek img{opacity:0;translate:0 72%;scale:.96;}
.float-diag__peek img{transform-origin:50% 100%;}
.float-diag-wrap.is-floating.is-floating-ready .float-diag__peek img{
      animation:cta-peek-pop .5s cubic-bezier(.2,1.5,.38,1) calc(var(--float-diag-delay) + .34s) both,
                panda-peek-wiggle 10s ease-in-out calc(var(--float-diag-delay) + 6s) infinite;}
.float-diag b{display:block; font-size:15px; font-weight:700; letter-spacing:0.04em; line-height:1.5;}
.float-diag span{display:flex; align-items:center; gap:5px; font-size:14px; font-weight:500; color:var(--accent-deep); letter-spacing:0.04em; line-height:1.5;}
.float-diag svg{width:13px; height:13px;}
@media (max-width:768px){
  .float-diag-wrap.is-floating .float-diag{right:auto;bottom:auto;gap:12px;padding:13px 20px;}
  .float-diag-wrap.is-floating .float-diag__peek{right:38px;width:80px;padding-top:12px;}
  .float-diag-wrap.is-floating .float-diag b{font-size:14px;line-height:1.5;}
  .float-diag-wrap.is-floating .float-diag span{gap:5px;font-size:13px;line-height:1.4;}
  .float-diag-wrap.is-floating .float-diag svg{width:13px;height:13px;}
}
@media (prefers-reduced-motion:reduce){.float-diag-wrap.is-floating .float-diag__peek img{opacity:1;translate:0 0;scale:1;transform:none;animation:none;}}

/* components/flow-grid.css */
/* flow-grid block. Page-specific declaration differences are scoped with data-page. */
.flow-grid{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:0 36px;}

/* components/flow-ico-wrap.css */
/* flow-ico-wrap block. Page-specific declaration differences are scoped with data-page. */
.page[data-page="main"] .flow-ico-wrap{width:96px; height:96px; display:grid; place-items:center; background:#ffffff; border-radius:53% 47% 46% 54% / 45% 53% 47% 55%;}
.page[data-page="fudosan-soudan"] .flow-ico-wrap{width:96px; height:96px; display:grid; place-items:center; background:#ffffff; border-radius:53% 47% 46% 54% / 45% 53% 47% 55%;}
.page[data-page="souzoku"] .flow-ico-wrap{width:96px; height:96px; display:grid; place-items:center; background:#ffffff; border-radius:53% 47% 46% 54% / 45% 53% 47% 55%;}
.page[data-page="chintai-kanri"] .flow-ico-wrap{width:96px; height:96px; display:grid; place-items:center; background:#ffffff; border-radius:53% 47% 46% 54% / 45% 53% 47% 55%;}
.page[data-page="company"] .flow-ico-wrap{width:96px; height:96px; display:grid; place-items:center; background:rgba(216,111,134,0.14); border-radius:53% 47% 46% 54% / 45% 53% 47% 55%;}
.page[data-page="contact"] .flow-ico-wrap{width:96px; height:96px; display:grid; place-items:center; background:rgba(216,111,134,0.14); border-radius:53% 47% 46% 54% / 45% 53% 47% 55%;}
.page[data-page="kaiyaku"] .flow-ico-wrap{width:96px; height:96px; display:grid; place-items:center; background:rgba(216,111,134,0.14); border-radius:53% 47% 46% 54% / 45% 53% 47% 55%;}
.page[data-page="privacy"] .flow-ico-wrap{width:96px; height:96px; display:grid; place-items:center; background:rgba(216,111,134,0.14); border-radius:53% 47% 46% 54% / 45% 53% 47% 55%;}
.page[data-page="column-list"] .flow-ico-wrap{width:96px; height:96px; display:grid; place-items:center; background:rgba(216,111,134,0.14); border-radius:53% 47% 46% 54% / 45% 53% 47% 55%;}
.page[data-page="column-article"] .flow-ico-wrap{width:96px; height:96px; display:grid; place-items:center; background:rgba(216,111,134,0.14); border-radius:53% 47% 46% 54% / 45% 53% 47% 55%;}

/* components/flow-ico.css */
/* flow-ico block. Page-specific declaration differences are scoped with data-page. */
.flow-ico{display:block; width:46px; height:46px; color:var(--accent-deep);}

/* components/flow-num.css */
/* flow-num block. Page-specific declaration differences are scoped with data-page. */
.flow-num{font-family:var(--serif); font-size:24px; font-weight:400; line-height:1; letter-spacing:-0.03em; color:var(--accent);}

/* components/flow-step.css */
/* flow-step block. Page-specific declaration differences are scoped with data-page. */
.flow-step{padding:30px 0; border-top:1px solid var(--line);}
.flow-step:nth-child(n+4){border-bottom:1px solid var(--line);}
.page[data-page="main"] .flow-step:nth-child(2) .flow-ico-wrap{border-radius:46% 54% 55% 45% / 53% 45% 55% 47%;}
.flow-step:nth-child(3) .flow-ico-wrap{border-radius:52% 48% 44% 56% / 55% 46% 54% 45%;}
.page[data-page="main"] .flow-step:nth-child(4) .flow-ico-wrap{border-radius:45% 55% 53% 47% / 47% 55% 45% 53%;}
.flow-step:nth-child(5) .flow-ico-wrap{border-radius:55% 45% 48% 52% / 52% 48% 52% 48%;}
.page[data-page="main"] .flow-step:nth-child(6) .flow-ico-wrap{border-radius:47% 53% 54% 46% / 46% 54% 46% 54%;}
.flow-step h3{margin:18px 0 10px; display:flex; align-items:baseline; gap:12px; font-family:var(--display); font-size:19px; font-weight:500; letter-spacing:0.03em;}
.flow-step p{color:var(--ink-soft); font-size:17px; font-weight:400; letter-spacing:0.05em; line-height:1.85;}
.page[data-page] .flow-step[data-position="last"]{position:relative; padding-bottom:110px;}
.page[data-page="fudosan-soudan"] .flow-step:nth-child(2) .flow-ico-wrap{border-radius:46% 54% 55% 45% / 53% 45% 55% 47%;}
.page[data-page="fudosan-soudan"] .flow-step:nth-child(4) .flow-ico-wrap{border-radius:45% 55% 53% 47% / 47% 55% 45% 53%;}
.page[data-page="fudosan-soudan"] .flow-step:nth-child(6) .flow-ico-wrap{border-radius:47% 53% 54% 46% / 46% 54% 46% 54%;}
.page[data-page="souzoku"] .flow-step:nth-child(2) .flow-ico-wrap{border-radius:46% 54% 55% 45% / 53% 45% 55% 47%;}
.page[data-page="souzoku"] .flow-step:nth-child(4) .flow-ico-wrap{border-radius:45% 55% 53% 47% / 47% 55% 45% 53%;}
.page[data-page="souzoku"] .flow-step:nth-child(6) .flow-ico-wrap{border-radius:47% 53% 54% 46% / 46% 54% 46% 54%;}
.page[data-page="chintai-kanri"] .flow-step:nth-child(2) .flow-ico-wrap{border-radius:46% 54% 55% 45% / 53% 45% 55% 47%;}
.page[data-page="chintai-kanri"] .flow-step:nth-child(4) .flow-ico-wrap{border-radius:45% 55% 53% 47% / 47% 55% 45% 53%;}
.page[data-page="chintai-kanri"] .flow-step:nth-child(6) .flow-ico-wrap{border-radius:47% 53% 54% 46% / 46% 54% 46% 54%;}
.page[data-page="company"] .flow-step:nth-child(2) .flow-ico-wrap{border-radius:46% 54% 55% 45% / 53% 45% 55% 47%; background:rgba(104,124,97,0.15);}
.page[data-page="company"] .flow-step:nth-child(4) .flow-ico-wrap{border-radius:45% 55% 53% 47% / 47% 55% 45% 53%; background:rgba(104,124,97,0.15);}
.page[data-page="company"] .flow-step:nth-child(6) .flow-ico-wrap{border-radius:47% 53% 54% 46% / 46% 54% 46% 54%; background:rgba(104,124,97,0.15);}
.flow-step:nth-child(2n) .flow-ico{color:var(--green);}
.page[data-page="contact"] .flow-step:nth-child(2) .flow-ico-wrap{border-radius:46% 54% 55% 45% / 53% 45% 55% 47%; background:rgba(104,124,97,0.15);}
.page[data-page="contact"] .flow-step:nth-child(4) .flow-ico-wrap{border-radius:45% 55% 53% 47% / 47% 55% 45% 53%; background:rgba(104,124,97,0.15);}
.page[data-page="contact"] .flow-step:nth-child(6) .flow-ico-wrap{border-radius:47% 53% 54% 46% / 46% 54% 46% 54%; background:rgba(104,124,97,0.15);}
.page[data-page="kaiyaku"] .flow-step:nth-child(2) .flow-ico-wrap{border-radius:46% 54% 55% 45% / 53% 45% 55% 47%; background:rgba(104,124,97,0.15);}
.page[data-page="kaiyaku"] .flow-step:nth-child(4) .flow-ico-wrap{border-radius:45% 55% 53% 47% / 47% 55% 45% 53%; background:rgba(104,124,97,0.15);}
.page[data-page="kaiyaku"] .flow-step:nth-child(6) .flow-ico-wrap{border-radius:47% 53% 54% 46% / 46% 54% 46% 54%; background:rgba(104,124,97,0.15);}
.page[data-page="privacy"] .flow-step:nth-child(2) .flow-ico-wrap{border-radius:46% 54% 55% 45% / 53% 45% 55% 47%; background:rgba(104,124,97,0.15);}
.page[data-page="privacy"] .flow-step:nth-child(4) .flow-ico-wrap{border-radius:45% 55% 53% 47% / 47% 55% 45% 53%; background:rgba(104,124,97,0.15);}
.page[data-page="privacy"] .flow-step:nth-child(6) .flow-ico-wrap{border-radius:47% 53% 54% 46% / 46% 54% 46% 54%; background:rgba(104,124,97,0.15);}
.page[data-page="column-list"] .flow-step:nth-child(2) .flow-ico-wrap{border-radius:46% 54% 55% 45% / 53% 45% 55% 47%; background:rgba(104,124,97,0.15);}
.page[data-page="column-list"] .flow-step:nth-child(4) .flow-ico-wrap{border-radius:45% 55% 53% 47% / 47% 55% 45% 53%; background:rgba(104,124,97,0.15);}
.page[data-page="column-list"] .flow-step:nth-child(6) .flow-ico-wrap{border-radius:47% 53% 54% 46% / 46% 54% 46% 54%; background:rgba(104,124,97,0.15);}
.page[data-page="column-article"] .flow-step:nth-child(2) .flow-ico-wrap{border-radius:46% 54% 55% 45% / 53% 45% 55% 47%; background:rgba(104,124,97,0.15);}
.page[data-page="column-article"] .flow-step:nth-child(4) .flow-ico-wrap{border-radius:45% 55% 53% 47% / 47% 55% 45% 53%; background:rgba(104,124,97,0.15);}
.page[data-page="column-article"] .flow-step:nth-child(6) .flow-ico-wrap{border-radius:47% 53% 54% 46% / 46% 54% 46% 54%; background:rgba(104,124,97,0.15);}

/* components/footer-bottom.css */
/* footer-bottom block. Page-specific declaration differences are scoped with data-page. */
.footer-bottom{display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:76px; padding-top:22px; border-top:1px solid var(--line);
      color:var(--ink-soft); font-size:13px; font-weight:400; letter-spacing:0.05em;}
.footer-bottom__sep{margin:0 10px; opacity:.45;}

/* components/footer-brand.css */
/* footer-brand block. Page-specific declaration differences are scoped with data-page. */
.footer-brand__logo{display:flex; align-items:center; gap:14px; margin-bottom:26px;}
.footer-brand__logo img.mark{width:76px; height:76px; object-fit:contain;}
.footer-brand__logo img.word{width:262px; height:80px; object-fit:cover; object-position:center 54%;}

/* components/footer-column.css */
/* footer-column block. Page-specific declaration differences are scoped with data-page. */
.footer-column__title{margin-bottom:18px; color:var(--green); font-size:13px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase;}

/* components/footer-grid.css */
/* footer-grid block. Page-specific declaration differences are scoped with data-page. */
.footer-grid{display:grid;grid-template-columns:minmax(320px,1fr) repeat(3,minmax(104px,max-content));gap:clamp(40px,4vw,60px);align-items:start;}

/* components/footer-list.css */
/* footer-list block. Page-specific declaration differences are scoped with data-page. */
.footer-list{display:flex; flex-direction:column; gap:12px;}
.footer-list li, .footer-list li a{color:var(--ink-soft); font-size:15px; font-weight:400; letter-spacing:0.05em; line-height:1.8;}
.footer-grid > .footer-column .footer-list{gap:0;}
.footer-grid > .footer-column .footer-list a{display:inline-flex; min-height:32px; align-items:center;}
.footer-note{display:inline-block; margin-top:6px; font-size:12px; line-height:1.7; letter-spacing:0.03em; color:var(--ink-faint);}

/* components/footer-sns.css */
/* footer-sns block. Page-specific declaration differences are scoped with data-page. */
.footer-sns{margin-top:4px; display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border:1px solid var(--line); border-radius:999px; color:var(--ink);}
.footer-sns svg{width:19px; height:19px;}

/* components/form-grid.css */
/* form-grid block. Page-specific declaration differences are scoped with data-page. */
.form-grid{display:flex; flex-direction:column; gap:26px; width:760px;}

/* components/form-submit.css */
/* form-submit block. Page-specific declaration differences are scoped with data-page. */
.form-submit{margin-top:10px;}

/* components/hero-btns.css */
/* hero-btns block. Page-specific declaration differences are scoped with data-page. */
.hero-btns{display:flex; flex-direction:column; gap:12px;}

/* components/hero-tel.css */
/* hero-tel block. Page-specific declaration differences are scoped with data-page. */
.page[data-page="main"] .hero-tel{display:flex; flex-direction:column; gap:10px;}
.hero-tel__label b{color:var(--accent-deep);}
.page[data-page="main"] .hero-tel__label{font-size:15px; font-weight:700; letter-spacing:0.14em; color:var(--ink);}
.hero-tel__num{display:flex; align-items:center; gap:10px; font-family:var(--sans); font-variant-numeric:lining-nums tabular-nums; font-size:38px; font-weight:700; line-height:1.05; letter-spacing:0.01em; color:var(--ink);}
.hero-tel__num svg{width:38px; height:38px; flex:none; color:var(--accent);}
.page[data-page="main"] .hero-tel__note{font-size:13px; font-weight:400; letter-spacing:0.03em; line-height:1.7; color:var(--ink-soft);}
.page[data-page="fudosan-soudan"] .hero-tel{display:flex; flex-direction:column; gap:6px;}
.page[data-page="fudosan-soudan"] .hero-tel__label{font-size:13px; font-weight:500; letter-spacing:0.14em; color:var(--ink-soft);}
.page[data-page="fudosan-soudan"] .hero-tel__note{font-size:13px; font-weight:400; letter-spacing:0.03em; line-height:1.7; color:var(--ink-faint);}
.page[data-page="souzoku"] .hero-tel{display:flex; flex-direction:column; gap:6px;}
.page[data-page="souzoku"] .hero-tel__label{font-size:13px; font-weight:500; letter-spacing:0.14em; color:var(--ink-soft);}
.page[data-page="souzoku"] .hero-tel__note{font-size:13px; font-weight:400; letter-spacing:0.03em; line-height:1.7; color:var(--ink-faint);}
.page[data-page="chintai-kanri"] .hero-tel{display:flex; flex-direction:column; gap:6px;}
.page[data-page="chintai-kanri"] .hero-tel__label{font-size:13px; font-weight:500; letter-spacing:0.14em; color:var(--ink-soft);}
.page[data-page="chintai-kanri"] .hero-tel__note{font-size:13px; font-weight:400; letter-spacing:0.03em; line-height:1.7; color:var(--ink-faint);}
.page[data-page="company"] .hero-tel{display:flex; flex-direction:column; gap:6px;}
.page[data-page="company"] .hero-tel__label{font-size:13px; font-weight:500; letter-spacing:0.14em; color:var(--ink-soft);}
.page[data-page="company"] .hero-tel__note{font-size:13px; font-weight:400; letter-spacing:0.03em; line-height:1.7; color:var(--ink-faint);}
.page[data-page="contact"] .hero-tel{display:flex; flex-direction:column; gap:6px;}
.page[data-page="contact"] .hero-tel__label{font-size:13px; font-weight:500; letter-spacing:0.14em; color:var(--ink-soft);}
.page[data-page="contact"] .hero-tel__note{font-size:13px; font-weight:400; letter-spacing:0.03em; line-height:1.7; color:var(--ink-faint);}
.page[data-page="kaiyaku"] .hero-tel{display:flex; flex-direction:column; gap:6px;}
.page[data-page="kaiyaku"] .hero-tel__label{font-size:13px; font-weight:500; letter-spacing:0.14em; color:var(--ink-soft);}
.page[data-page="kaiyaku"] .hero-tel__note{font-size:13px; font-weight:400; letter-spacing:0.03em; line-height:1.7; color:var(--ink-faint);}
.page[data-page="privacy"] .hero-tel{display:flex; flex-direction:column; gap:6px;}
.page[data-page="privacy"] .hero-tel__label{font-size:13px; font-weight:500; letter-spacing:0.14em; color:var(--ink-soft);}
.page[data-page="privacy"] .hero-tel__note{font-size:13px; font-weight:400; letter-spacing:0.03em; line-height:1.7; color:var(--ink-faint);}
.page[data-page="column-list"] .hero-tel{display:flex; flex-direction:column; gap:6px;}
.page[data-page="column-list"] .hero-tel__label{font-size:13px; font-weight:500; letter-spacing:0.14em; color:var(--ink-soft);}
.page[data-page="column-list"] .hero-tel__note{font-size:13px; font-weight:400; letter-spacing:0.03em; line-height:1.7; color:var(--ink-faint);}
.page[data-page="column-article"] .hero-tel{display:flex; flex-direction:column; gap:6px;}
.page[data-page="column-article"] .hero-tel__label{font-size:13px; font-weight:500; letter-spacing:0.14em; color:var(--ink-soft);}
.page[data-page="column-article"] .hero-tel__note{font-size:13px; font-weight:400; letter-spacing:0.03em; line-height:1.7; color:var(--ink-faint);}

/* components/intro-lead.css */
/* intro-lead block. Page-specific declaration differences are scoped with data-page. */
.intro-lead{max-width:56em; margin-bottom:48px; color:var(--ink); font-size:19px; font-weight:500; letter-spacing:0.04em; line-height:2;}

/* components/line-ico.css */
/* line-ico block. Page-specific declaration differences are scoped with data-page. */
/* アイコンと文言が詰まって見えるため、既存のgapに少し足す。 */
.line-ico{width:22px; height:22px; flex:none; margin-right:4px;}

/* components/more-link.css */
/* more-link block. Page-specific declaration differences are scoped with data-page. */
.more-link{display:inline-flex; align-items:center; gap:8px; font-size:16px; font-weight:500; letter-spacing:0.06em;}
.more-link svg{width:14px; height:14px;}

/* components/nav.css */
/* nav block. Page-specific declaration differences are scoped with data-page. */
.nav{display:flex; align-items:center; gap:clamp(16px,calc(6.95vw - 66.08px),34px);}
.nav__link{position:relative; padding-block:12px; font-size:15px; font-weight:500; letter-spacing:0.04em; line-height:1;}
.nav__link::after{content:""; position:absolute; left:50%; bottom:2px; width:5px; height:5px; border-radius:50%; background:var(--accent); opacity:0; transform:translate(-50%,-2px) scale(.7); transition:opacity 160ms ease,transform 180ms cubic-bezier(.23,1,.32,1);}
@media (hover:hover) and (pointer:fine){
  .nav__link:hover::after{opacity:1; transform:translate(-50%,0) scale(1);}
}
.nav__link:focus-visible::after,.nav__link.is-current::after{opacity:1; transform:translate(-50%,0) scale(1);}
.nav__cta{display:inline-flex; align-items:center; gap:9px; padding:15px 28px; border-radius:999px; background:var(--accent); color:#ffffff; font-size:15px; font-weight:700; line-height:1; box-shadow:none; transition:background-color 180ms ease,box-shadow 180ms ease;}
@media (hover:hover) and (pointer:fine){
  .nav__cta:hover{background:#e18499; color:#ffffff; box-shadow:0 10px 24px rgba(216,111,134,.28);}
}
.nav__cta:focus-visible{background:#e18499; color:#ffffff; outline:3px solid rgba(216,111,134,.28); outline-offset:3px; box-shadow:0 10px 24px rgba(216,111,134,.28);}
.nav__cta svg{width:19px; height:19px;}
.nav__link.is-current{color:var(--accent-deep); font-weight:700;}
@media (prefers-reduced-motion:reduce){.nav__link::after{transition:opacity 120ms ease}.nav__cta{transition:none}}

/* components/page-hero.css */
/* page-hero block. Page-specific declaration differences are scoped with data-page. */
.page-hero{position:relative; height:520px; overflow:hidden;}
.page-hero img.bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.page-hero .veil{position:absolute; inset:0;
      background:linear-gradient(100deg, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.90) 36%, rgba(255,255,255,0.66) 68%, rgba(255,255,255,0.40) 100%);}
.page-hero__inner{position:relative; z-index:2; width:940px; margin-inline:auto; padding:120px 0 64px;}
.page-hero__inner .sec-head{margin-bottom:22px;}
.page-hero__lead{max-width:34em; margin-top:48px; color:var(--ink-soft); font-size:18px; font-weight:500; letter-spacing:0.05em; line-height:2;}
.page-hero__panda{position:absolute; right:118px; bottom:0; width:180px; z-index:2; pointer-events:none;}
/* パンダを大きくするのはサービス3ページだけ。会社概要・コラム・お問い合わせなどは元のまま。 */
.page:is([data-page="fudosan-soudan"],[data-page="souzoku"],[data-page="chintai-kanri"]) .page-hero__panda{width:270px;}
/* お問い合わせのパンダは足先が画像の最下行に接しており、bottom:0 だと
   ヒーローの境目と重なって切れて見える。少し持ち上げて足元に余白を作る。 */
.page[data-page="contact"] .page-hero__panda{bottom:16px;}
/* パンダは画像ごとに余白と縦横比が違うため、幅ではなく「絵の中の身長」を揃える。
   基準はお問い合わせの panda-phone（幅180pxのとき表示身長 約162px）。 */
.page:is([data-page="company"],[data-page="column-list"],[data-page="column-article"]) .page-hero__panda{width:282px;}
/* コラム一覧は見出しに近づきすぎるため、右端へ寄せる。 */
.page:is([data-page="column-list"],[data-page="column-article"]) .page-hero__panda{right:40px;}
.page[data-page="kaiyaku"] .page-hero__panda{width:243px;}

/* components/panda.css */
/* panda block. Page-specific declaration differences are scoped with data-page. */
.panda{filter:drop-shadow(0 6px 14px rgba(40,34,77,0.12));}

/* components/partner-block.css */
/* partner-block block. Page-specific declaration differences are scoped with data-page. */
.partner-block{margin-top:72px; padding-top:48px; border-top:1px solid var(--line);}
.page[data-page="fudosan-soudan"] .partner-block h3{font-family:var(--display); font-size:21px; font-weight:500; letter-spacing:0.03em; margin-bottom:14px;}
.partner-block p{max-width:56em; color:var(--ink-soft); font-size:17px; font-weight:400; letter-spacing:0.05em; line-height:1.9; margin-bottom:24px;}
.page[data-page="souzoku"] .partner-block h3{display:flex; align-items:center; gap:12px; font-family:var(--display); font-size:21px; font-weight:500; letter-spacing:0.03em; margin-bottom:14px;}
.page[data-page="chintai-kanri"] .partner-block h3{font-family:var(--display); font-size:21px; font-weight:500; letter-spacing:0.03em; margin-bottom:14px;}
.page[data-page="company"] .partner-block h3{font-family:var(--display); font-size:21px; font-weight:500; letter-spacing:0.03em; margin-bottom:14px;}
.page[data-page="contact"] .partner-block h3{font-family:var(--display); font-size:21px; font-weight:500; letter-spacing:0.03em; margin-bottom:14px;}
.page[data-page="kaiyaku"] .partner-block h3{font-family:var(--display); font-size:21px; font-weight:500; letter-spacing:0.03em; margin-bottom:14px;}
.page[data-page="privacy"] .partner-block h3{font-family:var(--display); font-size:21px; font-weight:500; letter-spacing:0.03em; margin-bottom:14px;}
.page[data-page="column-list"] .partner-block h3{font-family:var(--display); font-size:21px; font-weight:500; letter-spacing:0.03em; margin-bottom:14px;}
.page[data-page="column-article"] .partner-block h3{font-family:var(--display); font-size:21px; font-weight:500; letter-spacing:0.03em; margin-bottom:14px;}

/* components/partner-list.css */
/* partner-list block. Page-specific declaration differences are scoped with data-page. */
/* 長い団体名が折り返したときの行間。1行のときは変わらない。 */
.partner-list{display:flex; flex-wrap:wrap; row-gap:16px;}
.partner-list span{padding:8px 20px; border-left:1px solid var(--line); font-size:15px; font-weight:400; color:var(--ink-soft); letter-spacing:0.04em; line-height:1.7;}
.partner-list span:first-child{border-left:none; padding-left:0;}

/* components/price-block.css */
/* price-block block. Page-specific declaration differences are scoped with data-page. */
.price-block p{max-width:56em; color:var(--ink-soft); font-size:17px; font-weight:400; letter-spacing:0.05em; line-height:2;}
.price-block p + p{margin-top:20px;}

/* components/reveal-soft.css */
/* Quiet scroll reveal for major content areas. JavaScript adds states only when supported. */
.reveal-soft{opacity:0;transform:translate3d(0,18px,0);transition:opacity .72s ease,transform .72s cubic-bezier(.22,.8,.36,1);will-change:opacity,transform;}
.reveal-soft.is-revealed{opacity:1;transform:translate3d(0,0,0);will-change:auto;}
@media (prefers-reduced-motion:reduce){
  .reveal-soft,.reveal-soft.is-revealed{opacity:1;transform:none;transition:none;will-change:auto;}
}

/* components/room-band.css */
/* 帯の写真は白〜ミストの薄いベールを重ね、サイトの淡い配色に馴染ませる。
   濃さは linear-gradient の透明度（.34 / .46）で調整する。
   room-band block. Page-specific declaration differences are scoped with data-page. */
.page[data-page="main"] .room-band{width:1440px; height:clamp(560px,74vh,780px); margin:180px auto 0; border-radius:0; position:sticky; top:0; z-index:0; overflow:hidden; overflow:clip;
      background-image:url(../../images/photo-sato-04.jpg); background-size:cover; background-position:center 22%; background-repeat:no-repeat;}
.room-band + .section .sec-head{margin-left:-14px;}
.page[data-page="main"] .room-band + .section{position:relative; z-index:2; width:1440px; margin-top:-80px; padding:130px 250px; border-radius:40px 40px 0 0; background:#faf1f3;}
.page[data-page="fudosan-soudan"] .room-band{width:1440px; height:420px; margin:0 auto; border-radius:0;
      background-image:url(../../images/photo-sato-04.jpg); background-size:cover; background-position:center 22%; background-repeat:no-repeat;}
.page[data-page="fudosan-soudan"] .room-band + .section{padding-top:130px;}
.page[data-page="souzoku"] .room-band{width:1440px; height:420px; margin:72px auto 0; border-radius:0;
      background-image:linear-gradient(180deg,rgba(255,255,255,.16),rgba(240,239,237,.26)),url(../../images/photo-house-detached.jpg); background-size:cover; background-position:center 55%; background-repeat:no-repeat;}
.page[data-page="souzoku"] .room-band + .section{padding-top:130px;}
.page[data-page="chintai-kanri"] .room-band{width:1440px; height:420px; margin:0 auto; border-radius:0;
      background-image:linear-gradient(180deg,rgba(255,255,255,.16),rgba(240,239,237,.26)),url(../../images/photo-apartment-green.jpg); background-size:cover; background-position:center 50%; background-repeat:no-repeat;}
.page[data-page="chintai-kanri"] .room-band + .section{padding-top:130px;}
.page[data-page="company"] .room-band{width:1440px; height:420px; margin:180px auto 0; border-radius:40px 40px 0 0;
      background-image:url(../../images/photo-sato-04.jpg); background-size:cover; background-position:center 22%; background-repeat:no-repeat;}
.page[data-page="company"] .room-band + .section{padding-top:130px;}
.page[data-page="contact"] .room-band{width:1440px; height:420px; margin:180px auto 0; border-radius:40px 40px 0 0;
      background-image:url(../../images/photo-sato-04.jpg); background-size:cover; background-position:center 22%; background-repeat:no-repeat;}
.page[data-page="contact"] .room-band + .section{padding-top:130px;}
.page[data-page="kaiyaku"] .room-band{width:1440px; height:420px; margin:180px auto 0; border-radius:40px 40px 0 0;
      background-image:url(../../images/photo-sato-04.jpg); background-size:cover; background-position:center 22%; background-repeat:no-repeat;}
.page[data-page="kaiyaku"] .room-band + .section{padding-top:130px;}
.page[data-page="privacy"] .room-band{width:1440px; height:420px; margin:180px auto 0; border-radius:40px 40px 0 0;
      background-image:url(../../images/photo-sato-04.jpg); background-size:cover; background-position:center 22%; background-repeat:no-repeat;}
.page[data-page="privacy"] .room-band + .section{padding-top:130px;}
.page[data-page="column-list"] .room-band{width:1440px; height:420px; margin:180px auto 0; border-radius:40px 40px 0 0;
      background-image:url(../../images/photo-sato-04.jpg); background-size:cover; background-position:center 22%; background-repeat:no-repeat;}
.page[data-page="column-list"] .room-band + .section{padding-top:130px;}
.page[data-page="column-article"] .room-band{width:1440px; height:420px; margin:180px auto 0; border-radius:40px 40px 0 0;
      background-image:url(../../images/photo-sato-04.jpg); background-size:cover; background-position:center 22%; background-repeat:no-repeat;}
.page[data-page="column-article"] .room-band + .section{padding-top:130px;}

/* トップ: 写真をパララックスさせ、次のサービスセクションが上へかぶさる。
   対応ブラウザでのみ動かし、非対応と「動きを減らす」設定では静止画として成立させる。 */
@media (min-width:769px){
  .page[data-page="main"] .room-band::before{
    content:""; position:absolute; left:0; right:0; top:-14%; bottom:-14%;
    background:url(../../images/photo-sato-04.jpg) center 22%/cover no-repeat;
  }
}
/* 写真は画面上部で止まり、以降のセクションがその上へ重なって覆っていく。 */
@media (min-width:769px){
  .page[data-page="main"] .room-band::before{
    content:""; position:absolute; inset:0;
    background:url(../../images/photo-sato-04.jpg) center 30%/cover no-repeat;
  }
  .page[data-page="main"] .room-band ~ *{position:relative; z-index:2;}
  /* サービスセクションが覆いきったら消す。以降のセクションの背景に写真が透けないようにする。 */
  .page[data-page="main"] .room-band.is-covered{visibility:hidden;}
}
@media (max-width:768px){
  /* SPは帯が低く、貼り付くと見え方が不自然になるため通常配置に戻す。 */
  .page[data-page="main"] .room-band{position:relative; top:auto; height:250px;}
}

/* 帯の写真をサイトのトーンへ寄せる（トップは ::before 側で適用済み） */
/* トーン調整はストック写真を使う2ページだけ。佐藤様ご本人の写真は加工しない。 */
.page[data-page="souzoku"] .room-band,
.page[data-page="chintai-kanri"] .room-band{filter:var(--photo-tone);}

/* components/sec-head.css */
/* sec-head block. Page-specific declaration differences are scoped with data-page. */
.sec-head{position:relative; margin-bottom:56px;}

/* components/sec-sub.css */
/* sec-sub block. Page-specific declaration differences are scoped with data-page. */
.page[data-page="main"] .sec-sub{display:block; margin-top:-24px; padding-left:6px; color:var(--ink); font-size:18px; font-weight:500; letter-spacing:0.08em; line-height:1; text-shadow:0 0 10px rgba(255,255,255,0.8), 0 1px 2px rgba(255,255,255,0.6);}
.sec-sub__num{font-family:var(--sans); font-variant-numeric:lining-nums; font-size:150%; font-weight:600; padding:0 2px; color:inherit;}
.page[data-page="fudosan-soudan"] .sec-sub{display:block; margin-top:-24px; padding-left:6px; color:var(--ink); font-size:18px; font-weight:500; letter-spacing:0.08em; line-height:1;}
.page[data-page="souzoku"] .sec-sub{display:block; margin-top:-24px; padding-left:6px; color:var(--ink); font-size:18px; font-weight:500; letter-spacing:0.08em; line-height:1;}
.page[data-page="chintai-kanri"] .sec-sub{display:block; margin-top:-24px; padding-left:6px; color:var(--ink); font-size:18px; font-weight:500; letter-spacing:0.08em; line-height:1;}
.page[data-page="company"] .sec-sub{display:block; margin-top:-24px; padding-left:6px; color:var(--ink); font-size:18px; font-weight:500; letter-spacing:0.08em; line-height:1;}
.page[data-page="contact"] .sec-sub{display:block; margin-top:-24px; padding-left:6px; color:var(--ink); font-size:18px; font-weight:500; letter-spacing:0.08em; line-height:1;}
.page[data-page="kaiyaku"] .sec-sub{display:block; margin-top:-24px; padding-left:6px; color:var(--ink); font-size:18px; font-weight:500; letter-spacing:0.08em; line-height:1;}
.page[data-page="privacy"] .sec-sub{display:block; margin-top:-24px; padding-left:6px; color:var(--ink); font-size:18px; font-weight:500; letter-spacing:0.08em; line-height:1;}
.page[data-page="column-list"] .sec-sub{display:block; margin-top:-24px; padding-left:6px; color:var(--ink); font-size:18px; font-weight:500; letter-spacing:0.08em; line-height:1;}
.page[data-page="column-article"] .sec-sub{display:block; margin-top:-24px; padding-left:6px; color:var(--ink); font-size:18px; font-weight:500; letter-spacing:0.08em; line-height:1;}

/* components/sec-title.css */
/* sec-title block. Page-specific declaration differences are scoped with data-page. */
.sec-title{font-family:var(--serif); font-size:136px; font-weight:400; line-height:0.86; letter-spacing:0.02em; color:rgba(40,34,77,0.13);}

/* components/service-card.css */
/* service-card block. Page-specific declaration differences are scoped with data-page. */
.service-card{padding:30px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column;}
.service-card__illust{width:215px; align-self:center; aspect-ratio:1; object-fit:contain; margin-bottom:10px;}
.page[data-page="main"] .service-card__en{display:block; font-family:var(--serif); font-size:20px; font-weight:700; line-height:1.15; letter-spacing:0.02em; color:var(--accent);}
.page[data-page="main"] .service-card__title{margin:14px 0; font-family:var(--display); font-size:24px; font-weight:700; letter-spacing:0.03em; line-height:1.5;}
.service-card__text{color:var(--ink-soft); font-size:17px; font-weight:400; letter-spacing:0.05em; line-height:1.85; flex-grow:1;}
.service-card__more{margin-top:18px; display:inline-flex; align-items:center; gap:7px; font-size:15px; font-weight:500; letter-spacing:0.06em; color:var(--ink);}
.service-card__more svg{width:14px; height:14px;}
.service-card__head{display:flex; align-items:center; gap:20px;}
.page[data-page="fudosan-soudan"] .service-card:nth-of-type(2) .service-ico-wrap{border-radius:46% 54% 56% 44% / 52% 44% 56% 48%;}
.service-card:nth-of-type(3) .service-ico-wrap{border-radius:52% 48% 43% 57% / 56% 47% 53% 44%;}
.page[data-page="fudosan-soudan"] .service-card:nth-of-type(4) .service-ico-wrap{border-radius:44% 56% 52% 48% / 47% 56% 44% 53%;}
.page[data-page="fudosan-soudan"] .service-card__en{display:block; font-family:var(--serif); font-size:21px; line-height:1.15; letter-spacing:0.04em; color:var(--accent);}
.page[data-page="fudosan-soudan"] .service-card__title{margin-top:4px; font-family:var(--display); font-size:23px; font-weight:500; letter-spacing:0.03em; line-height:1.5;}
.service-card__list{margin-top:20px; display:flex; flex-direction:column;}
.service-card__list li{padding:11px 0; border-top:1px solid var(--line-soft); font-size:16px; font-weight:400; color:var(--ink-soft); letter-spacing:0.04em; line-height:1.7;}
.service-card__list li:first-child{border-top:none;}
.page[data-page="souzoku"] .service-card:nth-of-type(2) .service-ico-wrap{border-radius:46% 54% 56% 44% / 52% 44% 56% 48%; background:rgba(104,124,97,0.15);}
.page[data-page="souzoku"] .service-card:nth-of-type(4) .service-ico-wrap{border-radius:44% 56% 52% 48% / 47% 56% 44% 53%; background:rgba(104,124,97,0.15);}
.service-card:nth-of-type(2n) .service-ico{color:var(--green);}
.page[data-page="souzoku"] .service-card__en{display:block; font-family:var(--serif); font-size:21px; line-height:1.15; letter-spacing:0.04em; color:var(--accent);}
.page[data-page="souzoku"] .service-card__title{margin-top:4px; font-family:var(--display); font-size:23px; font-weight:500; letter-spacing:0.03em; line-height:1.5;}
.page[data-page="chintai-kanri"] .service-card:nth-of-type(2) .service-ico-wrap{border-radius:46% 54% 56% 44% / 52% 44% 56% 48%;}
.page[data-page="chintai-kanri"] .service-card:nth-of-type(4) .service-ico-wrap{border-radius:44% 56% 52% 48% / 47% 56% 44% 53%;}
.page[data-page="chintai-kanri"] .service-card__en{display:block; font-family:var(--serif); font-size:21px; line-height:1.15; letter-spacing:0.04em; color:var(--accent);}
.page[data-page="chintai-kanri"] .service-card__title{margin-top:4px; font-family:var(--display); font-size:23px; font-weight:500; letter-spacing:0.03em; line-height:1.5;}
.page[data-page="company"] .service-card:nth-of-type(2) .service-ico-wrap{border-radius:46% 54% 56% 44% / 52% 44% 56% 48%; background:rgba(104,124,97,0.15);}
.page[data-page="company"] .service-card:nth-of-type(4) .service-ico-wrap{border-radius:44% 56% 52% 48% / 47% 56% 44% 53%; background:rgba(104,124,97,0.15);}
.page[data-page="company"] .service-card__en{display:block; font-family:var(--serif); font-size:26px; line-height:1.15; letter-spacing:-0.02em; color:var(--accent);}
.page[data-page="company"] .service-card__title{margin-top:4px; font-family:var(--display); font-size:21px; font-weight:500; letter-spacing:0.03em; line-height:1.5;}
.page[data-page="contact"] .service-card:nth-of-type(2) .service-ico-wrap{border-radius:46% 54% 56% 44% / 52% 44% 56% 48%; background:rgba(104,124,97,0.15);}
.page[data-page="contact"] .service-card:nth-of-type(4) .service-ico-wrap{border-radius:44% 56% 52% 48% / 47% 56% 44% 53%; background:rgba(104,124,97,0.15);}
.page[data-page="contact"] .service-card__en{display:block; font-family:var(--serif); font-size:26px; line-height:1.15; letter-spacing:-0.02em; color:var(--accent);}
.page[data-page="contact"] .service-card__title{margin-top:4px; font-family:var(--display); font-size:21px; font-weight:500; letter-spacing:0.03em; line-height:1.5;}
.page[data-page="kaiyaku"] .service-card:nth-of-type(2) .service-ico-wrap{border-radius:46% 54% 56% 44% / 52% 44% 56% 48%; background:rgba(104,124,97,0.15);}
.page[data-page="kaiyaku"] .service-card:nth-of-type(4) .service-ico-wrap{border-radius:44% 56% 52% 48% / 47% 56% 44% 53%; background:rgba(104,124,97,0.15);}
.page[data-page="kaiyaku"] .service-card__en{display:block; font-family:var(--serif); font-size:26px; line-height:1.15; letter-spacing:-0.02em; color:var(--accent);}
.page[data-page="kaiyaku"] .service-card__title{margin-top:4px; font-family:var(--display); font-size:21px; font-weight:500; letter-spacing:0.03em; line-height:1.5;}
.page[data-page="privacy"] .service-card:nth-of-type(2) .service-ico-wrap{border-radius:46% 54% 56% 44% / 52% 44% 56% 48%; background:rgba(104,124,97,0.15);}
.page[data-page="privacy"] .service-card:nth-of-type(4) .service-ico-wrap{border-radius:44% 56% 52% 48% / 47% 56% 44% 53%; background:rgba(104,124,97,0.15);}
.page[data-page="privacy"] .service-card__en{display:block; font-family:var(--serif); font-size:26px; line-height:1.15; letter-spacing:-0.02em; color:var(--accent);}
.page[data-page="privacy"] .service-card__title{margin-top:4px; font-family:var(--display); font-size:21px; font-weight:500; letter-spacing:0.03em; line-height:1.5;}
.page[data-page="column-list"] .service-card:nth-of-type(2) .service-ico-wrap{border-radius:46% 54% 56% 44% / 52% 44% 56% 48%; background:rgba(104,124,97,0.15);}
.page[data-page="column-list"] .service-card:nth-of-type(4) .service-ico-wrap{border-radius:44% 56% 52% 48% / 47% 56% 44% 53%; background:rgba(104,124,97,0.15);}
.page[data-page="column-list"] .service-card__en{display:block; font-family:var(--serif); font-size:26px; line-height:1.15; letter-spacing:-0.02em; color:var(--accent);}
.page[data-page="column-list"] .service-card__title{margin-top:4px; font-family:var(--display); font-size:21px; font-weight:500; letter-spacing:0.03em; line-height:1.5;}
.page[data-page="column-article"] .service-card:nth-of-type(2) .service-ico-wrap{border-radius:46% 54% 56% 44% / 52% 44% 56% 48%; background:rgba(104,124,97,0.15);}
.page[data-page="column-article"] .service-card:nth-of-type(4) .service-ico-wrap{border-radius:44% 56% 52% 48% / 47% 56% 44% 53%; background:rgba(104,124,97,0.15);}
.page[data-page="column-article"] .service-card__en{display:block; font-family:var(--serif); font-size:26px; line-height:1.15; letter-spacing:-0.02em; color:var(--accent);}
.page[data-page="column-article"] .service-card__title{margin-top:4px; font-family:var(--display); font-size:21px; font-weight:500; letter-spacing:0.03em; line-height:1.5;}

/* components/service-grid.css */
/* service-grid block. Page-specific declaration differences are scoped with data-page. */
.service-grid{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:28px;}
.page[data-page] .service-grid[data-columns="2"]{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:40px 64px;}

/* components/service-ico-wrap.css */
/* service-ico-wrap block. Page-specific declaration differences are scoped with data-page. */
.page[data-page="fudosan-soudan"] .service-ico-wrap{width:88px; height:88px; flex:none; display:grid; place-items:center; background:#ffffff; border-radius:54% 46% 47% 53% / 44% 52% 48% 56%;}
.page[data-page="souzoku"] .service-ico-wrap{width:88px; height:88px; flex:none; display:grid; place-items:center; background:rgba(216,111,134,0.14); border-radius:54% 46% 47% 53% / 44% 52% 48% 56%;}
.page[data-page="chintai-kanri"] .service-ico-wrap{width:88px; height:88px; flex:none; display:grid; place-items:center; background:#ffffff; border-radius:54% 46% 47% 53% / 44% 52% 48% 56%;}
.page[data-page="company"] .service-ico-wrap{width:88px; height:88px; flex:none; display:grid; place-items:center; background:rgba(216,111,134,0.14); border-radius:54% 46% 47% 53% / 44% 52% 48% 56%;}
.page[data-page="contact"] .service-ico-wrap{width:88px; height:88px; flex:none; display:grid; place-items:center; background:rgba(216,111,134,0.14); border-radius:54% 46% 47% 53% / 44% 52% 48% 56%;}
.page[data-page="kaiyaku"] .service-ico-wrap{width:88px; height:88px; flex:none; display:grid; place-items:center; background:rgba(216,111,134,0.14); border-radius:54% 46% 47% 53% / 44% 52% 48% 56%;}
.page[data-page="privacy"] .service-ico-wrap{width:88px; height:88px; flex:none; display:grid; place-items:center; background:rgba(216,111,134,0.14); border-radius:54% 46% 47% 53% / 44% 52% 48% 56%;}
.page[data-page="column-list"] .service-ico-wrap{width:88px; height:88px; flex:none; display:grid; place-items:center; background:rgba(216,111,134,0.14); border-radius:54% 46% 47% 53% / 44% 52% 48% 56%;}
.page[data-page="column-article"] .service-ico-wrap{width:88px; height:88px; flex:none; display:grid; place-items:center; background:rgba(216,111,134,0.14); border-radius:54% 46% 47% 53% / 44% 52% 48% 56%;}

/* components/service-ico.css */
/* service-ico block. Page-specific declaration differences are scoped with data-page. */
.service-ico{display:block; width:42px; height:42px; color:var(--accent-deep);}

/* components/sp-drawer.css */
/* Mobile navigation drawer. State axis: data-open="true|false". */
.sp-menu{display:none;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:0;background:transparent;color:#28224d;cursor:pointer}
.sp-menu__icon,.sp-menu__icon::before,.sp-menu__icon::after{display:block;width:25px;height:1px;background:currentColor;transition:transform .2s,opacity .2s}
.sp-menu__icon{position:relative}
.sp-menu__icon::before,.sp-menu__icon::after{position:absolute;left:0;content:""}
.sp-menu__icon::before{top:-8px}.sp-menu__icon::after{top:8px}
.sp-menu[aria-expanded="true"] .sp-menu__icon{background:transparent}
.sp-menu[aria-expanded="true"] .sp-menu__icon::before{top:0;transform:rotate(45deg)}
.sp-menu[aria-expanded="true"] .sp-menu__icon::after{top:0;transform:rotate(-45deg)}
body[data-drawer-open="true"]{overflow:hidden}
.sp-drawer{position:fixed;inset:0;z-index:900;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .2s,visibility 0s linear .2s}
.sp-drawer[data-open="true"]{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .2s,visibility 0s}
.sp-drawer__overlay{position:absolute;inset:0;border:0;background:rgba(40,34,77,.38);cursor:pointer}
.sp-drawer__panel:focus{outline:none}
.sp-drawer__panel{position:absolute;top:0;right:0;width:min(88vw,360px);height:100%;padding:92px 28px 36px;overflow-y:auto;background:rgba(255,255,255,.96);box-shadow:-18px 0 48px rgba(40,34,77,.14);transform:translateX(100%);transition:transform .24s ease}
.sp-drawer[data-open="true"] .sp-drawer__panel{transform:translateX(0)}
.sp-drawer__close{position:absolute;top:18px;right:18px;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid rgba(40,34,77,.16);border-radius:50%;background:#fff;color:#28224d;font-size:24px;cursor:pointer}
.sp-drawer__nav{display:grid;gap:0}
.sp-drawer__nav a{display:flex;align-items:center;min-height:58px;border-bottom:1px solid rgba(40,34,77,.1);color:#28224d;font-size:16px;font-weight:600;letter-spacing:.04em;text-decoration:none}
.sp-drawer__nav .sp-drawer__line{justify-content:center;margin-top:22px;border:0;border-radius:999px;background:#d86f86;color:#fff}
.sp-drawer__tel{display:block;margin-top:14px;padding:14px 12px 16px;border:1px solid rgba(40,34,77,.16);border-radius:22px;color:#28224d;font-size:13px;font-weight:600;line-height:1.5;text-align:center;text-decoration:none}
/* ドロワーでは電話番号をすぐ押せるよう大きく出す。 */
.sp-drawer__tel b{display:block;margin-top:2px;font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;font-size:26px;font-weight:700;letter-spacing:.01em;line-height:1.2;color:#c0546c}
@media (max-width:768px){.sp-menu{display:flex}}

/* components/taio-close.css */
/* taio-close block. Page-specific declaration differences are scoped with data-page. */
.taio-close{margin-top:36px; color:var(--ink-soft); font-size:17px; font-weight:400; letter-spacing:0.04em; line-height:1.9;}

/* components/voice-card.css */
/* voice-card block. Page-specific declaration differences are scoped with data-page. */
.voice-card{position:relative; padding:50px 36px 30px; border-radius:18px; background:rgba(255,255,255,0.9);
      box-shadow:0 14px 34px rgba(40,34,77,0.08), 0 2px 6px rgba(40,34,77,0.04);}
/* 引用符の上の余白が下より狭く見えるので、下の余白に合わせて下げる。 */
.voice-card::before{content:"\201C"; position:absolute; left:26px; top:14px; font-family:var(--serif); font-size:64px; line-height:1; color:rgba(216,111,134,0.4);}
.voice-card p{color:var(--ink); font-size:17px; font-weight:400; letter-spacing:0.04em; line-height:2;}
.voice-card footer{margin-top:16px; font-size:14px; color:var(--ink-faint); letter-spacing:0.06em;}

/* components/voice-grid.css */
/* voice-grid block. Page-specific declaration differences are scoped with data-page. */
.voice-grid{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:28px;}

/* components/worry-foot.css */
/* worry-foot block. Page-specific declaration differences are scoped with data-page. */
.worry-foot{margin-top:44px; display:flex; align-items:center;}
.worry-foot .panda{width:112px; flex-shrink:0; margin-right:18px; transform:rotate(-4deg);}
.worry-line{display:none;}
.page[data-page="main"] .worry-foot{width:fit-content; max-width:100%; margin-inline:auto;}
.page[data-page="main"] .worry-foot .bubble{flex:0 1 auto; width:max-content; max-width:calc(100% - 130px);}
/* 吹き出しが横いっぱいに伸びて間延びしないよう、文字の幅に合わせる（TOPと同じ扱い）。 */
.page[data-page="contact"] .worry-foot,
.page[data-page="souzoku"] .worry-foot,
.page[data-page="fudosan-soudan"] .worry-foot{width:fit-content; max-width:100%; margin-inline:auto;}
.page[data-page="contact"] .worry-foot .bubble,
.page[data-page="souzoku"] .worry-foot .bubble,
.page[data-page="fudosan-soudan"] .worry-foot .bubble{flex:0 1 auto; width:max-content; max-width:calc(100% - 130px);}
@media (min-width:769px){
  .page[data-page="main"] .worry-foot .bubble p{white-space:nowrap;}
}

/* components/worry-list.css */
/* worry-list block. Page-specific declaration differences are scoped with data-page. */
.worry-list{display:flex; flex-direction:column;}

/* components/worry-note.css */
/* worry-note block. Page-specific declaration differences are scoped with data-page. */
.worry-note{margin-top:22px; color:var(--ink-soft); font-size:15px; font-weight:400; letter-spacing:0.05em; line-height:1.9;}
.worry-note--framed{--worry-note-radius:20px;--worry-note-gold-inset:6px;position:relative;width:min(940px,100%);margin:28px auto 0;padding:28px 32px;border:1px solid rgba(201,169,97,.72);border-radius:var(--worry-note-radius);background:#fff;box-shadow:0 14px 36px rgba(40,34,77,.08),0 2px 6px rgba(40,34,77,.04);font-size:16px;line-height:1.8;}
.worry-note--framed::after{content:"";position:absolute;inset:var(--worry-note-gold-inset);border-radius:calc(var(--worry-note-radius) - var(--worry-note-gold-inset));padding:1px;pointer-events:none;background:linear-gradient(135deg,rgba(201,169,97,0) 0%,rgba(201,169,97,.80) 16%,rgba(212,188,139,.28) 36%,rgba(201,169,97,.88) 56%,rgba(201,169,97,.22) 78%,rgba(201,169,97,0) 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;}

/* components/worry.css */
/* worry block. Page-specific declaration differences are scoped with data-page. */
.worry{display:grid; grid-template-columns:44px minmax(0,1fr); gap:24px; align-items:center;
      padding:26px 0; border-top:1px solid var(--line);
      font-size:19px; font-weight:500; letter-spacing:0.04em; line-height:1.8;}
.worry:last-of-type{border-bottom:1px solid var(--line);}
.worry__mark{display:flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%; border:1px solid rgba(104,124,97,0.34); color:var(--green);}
.worry__mark svg{width:19px; height:19px;}
