/* reassure block. Page-specific declaration differences are scoped with data-page. */
.reassure{position:relative; margin-top:64px; padding-bottom:36px; display:grid; grid-template-columns:300px minmax(0,1fr); gap:0; align-items:start;}
/* メインビジュアルと同じピンクの影。写真は左にあるので影も左へ18pxずらす。 */
.reassure::before{content:""; position:absolute; left:-18px; top:0; width:300px; height:380px; z-index:0;
      background:rgba(216,111,134,0.20); border-radius:150px 150px 14px 14px; pointer-events:none;}
.reassure__photo{position:relative; z-index:3; grid-column:1; grid-row:1; height:380px; border-radius:150px 150px 14px 14px; overflow:hidden; background:var(--mist);}
.reassure__photo img{width:100%; height:100%; object-fit:cover; object-position:center 12%;}
.reassure__content{position:relative; z-index:2; grid-column:2; grid-row:1; margin:40px 0 0 -48px; padding:46px clamp(44px,4.2vw,60px) 44px clamp(72px,6vw,88px); background:#fff; border:1px solid rgba(40,34,77,.08); border-radius:20px; box-shadow:0 18px 44px rgba(40,34,77,.10);}
.reassure__eyebrow{margin-bottom:18px; font-family:var(--display); font-size:17px; font-weight:600; letter-spacing:0.12em; color:var(--accent-deep);}
.reassure__label{margin-bottom:22px; display:flex; align-items:center; gap:20px; font-size:clamp(22px,1.67vw,24px); font-weight:500; line-height:1.5;}
.reassure__label::after{content:""; display:block; flex:1; height:1px; background:rgba(40,34,77,0.4);}
.reassure p{color:var(--ink-soft); font-size:17px; font-weight:400; letter-spacing:0.05em; line-height:2;}
.reassure .reassure__eyebrow{font-size:17px;}
.reassure .reassure__label{font-size:clamp(22px,1.67vw,24px);}
.reassure .reassure__body{font-size:17px;}
.reassure__eyebrow{color:var(--accent-deep);}
.reassure__cap{display:block; margin-top:18px; text-align:right; font-size:16px; font-weight:500; letter-spacing:0.08em; color:var(--ink-soft);}
